Wednesday, March 30, 2005

Easy way to run Tomcat on port 80 (not as root)

I am sure that I am not the only Java developer to suffer a little while configuring Apache and Tomcat. The Apache foundation has a project common daemon that supports starting a Java process as root, binding sockets lower than 1024, and then switching to a non-root account to actually run Tomcat. This was easy to set up under Linux, more of a hassle under OS X.

This is especially cool/useful for me because the web applications that I develop have little or no static content, so running Tomcat through Apache never did make much sense for my applications. Check it out!

More on Sony PSP

After work last night I had more time to play with my new PSP and I also read more PSP reviews, etc. on the web. I like the reliance on the UMD micro-DVD style disks: the NAMCO Ridge Racer game has an unbelievably rich set of different race courses that to me more than make up for longer game loading times (as compared, for example, with game cartridges). I watched more of the bundled Spider Man II movie also: the PSP really is a good portable movie viewing device.

My brother in San Diego also just bought a PSP. When I see him, we will be able to try out the automatic networked game functionality. My brother bought a 256 MB memory card so he could load up his PSP with music and some family pictures, etc. I am not so interested in that: my iBook is portable enough and also has a cloned copy of my entire development environment.

The Ridge Racer car dynamics are not realistic (I took a three day professional racing class at Laguna Seca race course, so I have a valid opinion on this :-) but the important thing is that the game play is superb.

Unfortunately, the cost of entry for game developers is probably high for the PSP. I would like to see Sony do two things:
  • Provide a free or very low cost development system that worked by having a special boot loader use the USB interface to use a PC development system as a simulated UMD drive
  • Market UMD disks that hold many individual games written by individuals and small gaming companies

Tuesday, March 29, 2005

I bought a Sony PSP today

I just played a full game of NAMCO's Ridge Racer a little while go - my adrenaline level is getting back to normal :-)

I love Sony stuff: my old (now broken) Vaio super-slim laptop, my 5 year old Sony camera, now the PSP: all great design and great toy-appeal.

My PSP came with the movie SpiderMan 2 - I will see how it is to watch a movie on the PSP tonight if I have the time. I have heard that Netflix is planning on also renting movies in the UDM format, so this might get interesting.

I have directions for streaming video from a PC to the PSP, but I am unlikely to have time to mess with that for a while.

I love racing games (really, the only kind of video game I play - I would rather watch paint dry than play sports video games - yuck!). I helped design and build a full motion platform racing car simulator about 9 years ago (force feedback on the steering wheel, great motion effects, SGI Reality Engine graphics). The PSP can not compete with a full on VR system, but it does compete by providing great game-play (assuming that games are well designed and implemented :-) I also helped write a networked PC Hovercraft game about 7 years ago - that was great fun, and I especially enjoy doing the "AI" for other vehicles in racing games.

Tuesday, March 22, 2005

Compromises: Apple's Music Store

First my personal prejudices: I love Apple's Music Store. I don't mind the DRM because it does allow me to burn a few audio CDRs to back up the music. I am getting really annoyed with people trying to circumvent iTunes DRM.

People who produce content own it. Period. I earn my living by authoring published books and writing proprietary software for customers. I also enjoy writing free web books and releasing major projects like KBtextmaster as open source. My choice in what to do with stuff that I create.

I don't like the music industry because they tend to screw over musicians, but the world is not a perfect place. Steve Jobs did a great job negotiating with the music industry to set up Apple's Music Store. I enjoy it and I am willing to follow the terms and conditions of use. People who don't like it should not try to spoil it for other people.

BTW, I am a huge fan of Lawrence Lessig (I was once the featured commoner on the Creative Commons web site, which was fun). He strikes such a reasonable balance in copyright issues. The free mix CD in Wired magazine was cool and fun.

Monday, March 21, 2005

LOL: Ruby on Rails vs. J2EE pontification

The ServerSide has some amusing arguments back and forth about the advantages of RoR vs. J2EE. In my opinion, nothing beats a J2EE stack (or, more likely just the parts that you need) for complex and robust web applications. In recent history I wrote a "Sharepoint like" web application using a partial J2EE stack that simply runs forever without any intervention except for system backups. I also helped a customer architect another partial J2EE stack large scale web application based on JMS (i.e., "duct tape") that my customer recently told me has been running for 6 months without any fuss.

That said, I believe in the right tool for the right job. The only exception to this is that as developers we can not spend all of our time learning new stuff. Last year, based on the raves on Python from several Google engineers that I spoke with, I invested time working through Mark Pilgrim's fantastic book "Dive Into Python" - that was time well spent.

This year, I am investing real time getting into Ruby (the second edition of "Programming Ruby" is fantastically good). I have implemented a few simple web applications using Ruby on Rails - I like it so far. I have just been using WEBrick so far, but I plan on starting to use Apache + FastCGI + Ruby on Rails in the future. The only thing about RoR that is still missing for me is the the personal experience of writing a Apache + FastCGI + Ruby on Rails based web application and have it run for 6 months with no intervention or hassles. My gut feeling is that this combination will approach the solidness of J2EE.

In the mean time, I use Python and Ruby where those languages make sense, and stick with J2EE where that makes sense.

Wednesday, March 16, 2005

Reports of Java developers becoming addicted to Ruby programming

I think that I am one of them :-)

Seriously, ever since I received my copy of "Programming Ruby" (second edition) I have found it difficult to not spend at least an hour a day working through the book and writing some code. My little fun project is recoding my categorization algorithms in as little Ruby code as possible - Ruby is a very concise programming notation!

Monday, March 14, 2005

NetBeans 4.1 beta: UI builder, etc.: wow!

I needed to build the framework for a Java client application this afternoon. Usually, I just code directly to the JFC API, but I decided to download the latest NetBeans and use the GUI builder instead. Glad I did!

The NetBeans 4.1 GUI builder is intuitive and easy to use. I like the new project views also. I usually use IntelliJ, but have been using Eclipse more recently because of useful plugins for C++/Ruby/Python development, semantic web, etc. Anyway, having three great Java IDEs (2 of them free!) is great :-)

If for nothing else besides the GUI builder, NetBeans is a great addition to my working environment. When version 4.1 is released (non Beta) I will try to get some time to 'kick the tires' of the web app support also.

Open Source as a business done right: SugarCRM

OK, I admit that I don't know how much revenue the SugarCRM people are making, but based on how often they make major system improvements, the look of their web site, and the services that they offer - I bet that they are doing OK.

Could SugarCRM be better? Sure, it could be written in Java instead of PHP :-)

While I also use PHP and (lately) Ruby on Rails, I just don't yet have the warm feeling of solid-ness for large scale web applications that I get with the subset of the J2EE stack that I usually use.

Tuesday, March 08, 2005

SWT and Java: a good combination

I spent a little play time this afternoon writing two simple SWT Java standalone applications. It took about 15 minutes to get Eclipse set up properly (a little annoying), but once I corrected my mistakes, it was easy to build and run SWT standalone applications.

I don't have time for this today, but I would very much like to try out using GNU gcj + SWT to build native applications. One problem I have with this idea is that the GNU gcj libraries are huge, so I wonder how large a simple standalone application that is statically linked would be. I would settle for 5 MB or less :-)

On OS X, the SWT runtime JAR and JNILIB files total about 1.2 MB - not bad.

There are two good articles on using GCJ and SWT (search for "Kirk Vogen gcj SWT" to find them).

Monday, March 07, 2005

Best of breed vs. general purpose tools

Usually I favor focused 'best of breed' software tools (e.g., IntelliJ for Java and web application development).

Lately though, I find myself using Eclipse a lot more because I can do so much in one environment (Java, Ruby, Python, and C++ development).

Eventually, for me, moving to a general purpose platform will reach a tipping point when more tools are written for the Eclipse platform. My wish list for Eclipse tools is:
  • free UML tool with round trip for Java, Python, and Ruby
  • Semantic web tools like Protege
  • interface to an RDF repository like Sesame
  • general purpose client that works with all relational databases that I need to use in my development
Some of these tools already exist in some form. I don't think that Eclipse will ever be as good as IntelliJ for pure Java develpment, but at some point it might be good enough.

new free Enhydra J2EE stack available

My friend David Young used to be president of Lutris (company that created Enhydra originally) and Lutris' CTO Paul Morgan hired me as a consultant to add web services support to their commercial version of Enhydra several years ago. I don't believe that Lutris is still in business, but fortunately Enhydra is now supported by the European ObjectWeb organization (they provide a lot of high quality software - check them out if you have not already done so).

Enhydra is available here.

I open sourced my Java KBtextmaster project

KBtextmaster reads a variety of document formats (Word, Powerpoint, PDF, OpenOffice.org, AbiWord) and performs categorization, summarization, part of speech tagging, document clustering, and indexing/search using Lucene.

You can get it here. It is released under the GPL, with alternative licenses available if the GPL does not work for your project.

Saturday, March 05, 2005

I restored my open source web page

A few people have asked me why I had removed my open source web page. Mostly it was vanity: I had two Java projects that I had started when Java was at version 1.0 - these projects were "krufty", and I decided to blow them away. Still, sometimes even old crufty code can be useful :-)

Wednesday, March 02, 2005

I wish that this was written in Java

As seen on Slashdot: Adobe releases 2 open source C++ packages for handling data constraints in UIs and a UI layout manager. I read the overview of 'Adam and Eve' - this stuff looks great. Apple has something roughly similar in their ObjectiveC UI framework.