Top Ten Tools

I was surfing around today, and saw this article about the top ten tools you use.

As far as getting work done on the computer (I’m taking the computer for granted and not counting it as a tool, although for it all to come together it’s worth noting I use an Apple MacBookPro with 4GB of RAM) my top applications are:

  1. Eclipse: my favorite Java IDE with a good set of plugins (JBoss Tools, MyEclipseIDE, WTP, Mylyn, and others)
  2. iGTD:  a great GTD task manager for the Mac.  I use it for work, personal projects, home errands, etc…  I used to use KinklessGTD in OmniOutliner, but now I swear by iGTD.  The upcoming Omni Focus will have to bring something amazing to the table to get to me to pay to switch.
  3. SSH/SCP/Terminal: I manage and deploy to many servers.  Being able to SSH into them and move files securely is critical.  I’m handy with the command line, bash scripting, and all that, so I end up doing things that way often.
  4. Emacs: I can handle vi, but when I’m on a remote server making changes or looking through files trying to figure something out, Emacs is my favorite tool for the job.
  5. Safari: I spend a lot of time on the web researching, reading, and looking at the applications I’m building.  I also use Camino, but Safari 3 is my favorite browser and is always open.
  6. Adium: I love staying in touch with my friends, family, and co-workers.  Adium lets me keep in touch on AIM, Yahoo, MSN, GTalk, and more in a very nice application.
  7. iTunes: Music helps me get into the zone and keeps me happy.  Plus I like to watch the occasional TV show:)
  8. Pages: as an architect I often have to generate documentation around projects.  I also write letters (yes the non-e-mail kind).  Pages is a great word processor and making professional looking easy to read documents is a snap.
  9. JBoss: JBoss is a fantastic application server.  It’s free, open source, fast, and powerful.
  10. Postgres: Postgres is a database with all the great attributes I listed for JBoss.  I used to use MySQL but at the time I switched it was lacking many critical features (sub-selects, foreign keys, etc..).  After using postgres for a while, I haven’t looked back.

Those are the applications that I have running on my laptop basically 24/7 and I use each of them every single day.

What are yours?  I’m not trying to get into an emacs versus vi flamewar, but I’d like to hear about what applications get you through your day a little easier.

JBoss Tools Properties Editor Surprise

No, not the kind of surprise with cake.

The latest JBoss Tools Eclipse plugin, which if like me you are running on a platform that they haven’t released RedHat Developer Studio for is a pretty good option, which can be installed through Eclipse using this update URL:

http://download.jboss.org/jbosstools/updates/development

Sets up your default editor of .properties files to be the new Red Hat Properties Editor. It looks very snazzy. However, at least on my machine (Eclipse 3.3, JDK 1.5, OS X 10.4.10), whenever it opens a properties file, it happily strips out all of the equals signs separating property names from their values. They still look good in the graphical portion of the Red Hat Editor, but of course don’t work very well anywhere else.

You can fix this by going into the Eclipse Preferences, General, Editors, File Associations, scrolling down until you see the “*.properties” entry and choosing the “Properties File Editor” as your default.

seam-gen and multiple projects part two

This is a follow-up from my post two days ago “seam-gen and multiple projects“.

After some feedback from “atao” in this thread on the JBoss Seam forum, I have taken a different approach to the problem, and have enhanced seam-gen to generate targets within the generated project’s ant build script, which in turn call the related seam-gen tasks. This is more elegant for two reasons. Firstly, the projects are independent and don’t rely on special configs kept outside of the project. Secondly, you can run those tasks from within your IDE (Eclipse for me) while doing development. You don’t have to fire up a command prompt, navigate to your seam installation, and run the seam-gen commands there. All in all a much better solution. Thank you very much “atao” for the better approach.

The changes made to the seam-gen related files are slightly more extensive than the previous approach, but well worth it.

Continue reading

seam-gen and multiple projects

seam-gen is a command line tool (although the new JBoss Tools eclipse plugin supports an Eclipse driven version as well) which can be used to create new Seam projects with a basic set of files, configs, and templates. It can also update the Seam jars in the project, do deployments, echo settings, create new actions, new forms, new entities, and so on. It is very handy, not only for developers who are just starting out with Seam, but also for experienced Seam developers (who might have customized the template resources which seam-gen uses to create the project framework).

The one big gap with seam-gen is that it keeps it’s project settings in a build.properties file in the seam-gen directory of the seam project (which I checkout from CVS as an Eclipse project, making it easy to update). What this means is that there is only one project supported. If I use seam-gen to create a new project called shoestore, then I create another project called yourspace, now I can’t use seam-gen to create a new form in shoestore, or update shoestore to the latest Seam jars.

Obviously if you’re only working on one project at a time, this isn’t a problem, but I tend to have multiple projects going at once. A couple existing applications in maintenance mode, a couple projects under development, and maybe a project or two to test something out in. So tonight I’ve made a couple of tiny changes to to the seam-gen tool, and the ant build.xml file it uses, which allow you to create, and continue to work with, any number of projects using seam-gen.

The two files to change are the seam (or seam.bat if you are using Windows) executable file (found in the root directory of your Seam downloaded (or checked-out) project) and the build.xml ant build file found inside the seam-gen directory, within the Seam project.

Continue reading

Seam example project structure

For me, one of the hardest things about getting started with developing with Seam was getting a project setup that I could work with. The examples that ship with Seam only build within the whole Seam super-project, which doesn’t work for developing your own projects. Most of the other guides on setting up a project (using Eclipse WTP, or other things) either didn’t work for me, or seemed overly complicated, or used a structure that just seemed odd to me.

If they work for you, that’s great. If they don’t, I’ve posted up a zipped up version of the base seam project that I use. I use Eclipse 3.2 and MyEclipseIDE as my development environment, so you may need to make a few tweaks. You have to configure your JBoss installation location, and the ant script will build and deploy an exploded ear file as it’s default target. The project I used for the base structure is the Seam Booking example, so just replace things as you like.

Get the base seam project here!