J2EE Configuration Hassles

I decided I'm going to use my new found blogging freedom to rant a little bit. Yesterday I spent almost an entire day debugging a class loading issue with JBoss. In the end it turns out JBoss wasn't even at fault, but I'm still going to rant about ridiculously complicated J2EE configurations. What is up with tons of XML and other configuration files? Why is it so hard to figure out which file does what? Why are there so many files in the first place? Sometimes JBoss really drives me nuts. The same goes for the Spring Framework which we are now using at work. It's pretty cool and all, but I'm not really sure how it's supposed to make things simpler. Having to edit the application context XML file every time I add a new bean or want to inject another dependency is a real PITA. It really doesn't save me any time there. Why can't it just automatically detect that stuff by introspecting my code? Or what about annotations? I guess that's why everybody loves Ruby on Rails -- because it "just works". Anyway, enough ranting for today.

Welcome to my new Homepage

So I've finally gotten on the blogging bandwaggon. Hence my newly designed homepage with a blog! I will try to post blog entries when interesting things come to my mind.

The page is powered by Drupal, an excellent, open-source, PHP-based CMS. I've built a few websites on Drupal and it's never let me down. I highly recommend it to anyone looking for a good CMS. It has many excellent modules and it's very easy to get started and develop your own customizations.

File Type Manager

File Type Manager is a Windows utility program that allows you to manage Windows file types, actions and shell extensions. It offers far more functionality than similar programs or the built-in Windows tool. Apart from that it is one of the only programs available that allows you to manage shell extensions.

New features in version 2.0 of File Type Manager:

  • updated user interface
  • faster performance
  • search feature
  • support for file type flags
  • support for new shell extension types
  • documentation

Version 2.0.1 fixes a small bug that caused FTM to hang in some circumstances when querying CLSIDs.

Downloads

Source Code

 Due to the renewed popularity of File Type Manager (mainly because of Windows Vista) I've decided to make the source code available. Maybe somebody else feels like working on this program some more. Keep in mind that I wrote this when in high school and just learning how to program, so it probably isn't the greatest code. Also it's written in Visual Basic 6. Ugh.

File Type Manager 2.0.1 Source Code

I've licensed it under the LGPL. It includes an ActiveX control that displays the file types, so you could re-use that somewhere else if you wanted to.

Screenshots

(download)

Taginator

Taginator is a program that allows you to batch write MP3 Tags for multiple MP3 files at once. Assuming that all your files are named in a standard format, you give Taginator a format template and it extracts the needed information from the file name. For example, if all your files have the name format "Artist - Title.mp3" then you can give Taginator the file name template "%Artist% - %Title%". It will then extract the correct information and write the MP3 tag for the file.

Download Taginator

(download)

Linux & Gnome

I used to do some work around Linux & Gnome, but it's been a while since I've contributed anything. I got into contributing since I use Linux and GNOME both personally and at work. As a result I started playing around with the different open source technologies and projects. My motivation came from learning something new and feeling good about contributing to the common good.

My main interest is the GNOME project and related projects. I follow GNOME development quite closely and have made several contributions myself. For example, I re-wrote the "Run Program" dialog and did some work on the Nautilus file manager around opening files with the correct associated applications and other bug fixes.

Previously I contributed to the Direct Rendering Open Source Project. I designed a new website for the project with an automated FAQ system utilizing PHP and MySQL. I also wrote automated driver installation and packaging scripts. The packaging script allows developers to easily create binary driver packages. The installation script lets users easily install new DRI drivers by automatically upgrading and configuring system libaries, kernel modules and the X server.

(download)