The Reponse to Why Don't you Ship Swing Apps
May 9th, 2005
It's been a while since I posted my original weblog on why some developers aren't shipping Swing apps, and it's gotten over a hundred responses! This makes me happy because it means there are a lot of you out there who really care about desktop Java and want to ship good apps. It's our goal to make Swing the best way to write a quality desktop application, so all of this feedback is great.
Mac OS X 10.4 has arrived, with a Hi-Rez secret
April 29th, 2005
As everyone on this side of the galaxy must know by now, Tiger, version 10.4 of Mac OS X (will they ever hit Mac OS XI?), has finally arrived. If you're a Mac head like me you've been eagerly awaiting it at least since the previews last summer, if not from day 2 of 10.3's release.
A Hi-Rez Future
April 21st, 2005
I've been working from home in Atlanta since I started at Sun. I have two homes under renovation and a lot of things to take care of before I can move out west, so working from home for a few months seemed like the best solution. The problem is I only own a laptop, my new iBook. Coding and writing for 10 hours a day on a 1024x768 screen really is no fun. I've got a USB hub, mouse, and keyboard to make it feel more like a desktop, but nothing can replace having a good screen. Today I bought a flatpanel.
Sometimes you only need a little.
April 11th, 2005
The book is done and I'm up to my ears in Windows bugs so I thought I'd take a break and work on some Mac stuff. There are a few features I've always wanted from Java and needed anyway for another side project (I've got about 3 dozen, of course). The result is a few teeny, tiny classes I've added to the new JDIC Misc project. This project is meant as a catchall for small APIs, things that require only one class or perhaps even one method. The implementation may be complicated as all get-out, but to use it you need only call a function or two.
The Portable MiniApp: Mortgage Calculator
April 7th, 2005
Hey guys. A while back I started talking about something called a MiniApp and presented several examples (Weather, Christmas, Storm, and RSI Buster). I wrote another installment some time ago but never got around to finishing it because other projects (namely the book) took precedence. Now that Chris and I have turned in our final draft (yay!) I have more time to finish up the next MiniApp.
Quick Tip for OSX Users
March 31st, 2005
If you are like me you have broken finger bindings. Probably from years of bash
use or maybe you just have to switch platforms all the time. Since finger bindings are difficult to change this little utility will change the key bindings instead.
Why don't you ship Swing apps?
March 31st, 2005
Time and time again I hear that there are no Swing apps (or no good swing apps). We can come up with lots of excuses and explanations but that doesn't get us any closer to having more Swing apps. So I'd simply like to ask all of you. Starting with the assumption that all of you are Java developers in some fashion or another, but not necesarily Swing developers, I want to ask you:
Subversion Rename Rocks!
March 24th, 2005
I don't like revision control systems
I should start off by saying that I'm not a big fan of revision control systems. What I want out of an RCS is simple. Let me check files in and out so that my code is backed up and I can revert and merge as needed. I have found that branches rarely get used except in the biggest of projects. Though your RCS system can probably handle it, developers are still people and you can end up in a lot of trouble when you work on more than one branch at a time. Over the years I have used PVCS, RCS, Contiuum, Source Safe, Star Team (I think that was the name) and a few others. I keep coming back to CVS because it does exactly what I want (backup and store revisions of a tree of files) and does it with a few simple commands. It also has the advantage of being supported everywhere.
No Session-y Goodness for Me.
March 13th, 2005
As many of you have discovered, your submissions to JavaOne were rejected. Don't feel bad. Only one of my 6 proposals were accepted, and I'm now a Sun employee myself. I the competition was fierce. The upside is we should have a really rocking JavaOne conference coming up.
Big news. I'm going West.
February 23rd, 2005
Hello All. I know it's been a while since I've been posted, so I'd like to let you all know what I've been working on. Lots of good things have happened or are coming soon. First of all....
Apple's latest efforts are the triumph of software over hardware.
January 12th, 2005
Normally I don't comment on new products, especially hotly anticipated ones that a million others will pontificate endlessly. However, I'm breaking my rule because I'm quite amazed by the new iPod Shuffle and iMac Mini. Not because of the products themselves but because of what they represent. They are both the triumph of software over hardware.
XML to Swing and the Gradual API
December 7th, 2004
I know it's been a while since I've posted, and sadly it's going to be a while until I do again. Work, my opensource projects, and my book are keeping me slammed. I've lots of good stuff cooking, so stay tuned.
Webstart Rant
October 25th, 2004
Send me your ideas of what you'd like to see out of webstart. What are the missing features. What are the most important bugs? I want to figure out what we can do through addons and what requires changes from Sun.
Please: think of the users!
October 18th, 2004
Usability is the number one concern when designing software. And I don't mean "today with modern computing and the lack of new types of software usability is easier and growing in importance". I mean computers have no other purpose than to serve humans, and a better computer serves humans better. End of story. Software that doesn't conform to the way humans do things is bad software. (bad!) I don't care how cool and awesome your software is, if it's not understandable then it's useless.
Countdown to Christmas: a Customizable MiniApp
October 3rd, 2004
Back when the Web was just emerging (you know, from the primordial soup of standards) many developers put effort into making it easy for lay people to create websites. While most focused on WYSIWYG development tools or content management systems, some developers tried to sell Applets and JavaScript libraries. These were small programs that could be embedded easily into a website and customized without the use of code. No need to write your own tree control: just set a few properties on this library and you're good to go.
Weather Watcher: Release Deux
September 29th, 2004
One of the things I love about Java is that I can quickly change things. With an army of libraries and Java's renowned platform independence I can quickly hack on a new feature or move code from the client to the server. A couple of days ago I showed off a webstart app with, umm, a few issues. I now proudly present :
A New Rich Client: WeatherWatcher
September 27th, 2004
I think this MiniApp idea is starting to have legs. Thinking about all that Java Web Start provides we can start to imagine an application category: the so called "Rich Client". The key to a successful rich client is that it must do something that neither webapps nor native programs can do well. It must exist outside of the webrowser (the rich part), use the network for something (the client part), and not require installation (or as minimal as possible). I think my new MiniApp does this quite well.
New MiniApp: Storm Drain
September 22nd, 2004
While playing around some more with this miniapp idea, I came across geographer Tyler Mitchell's weblog post about hurricane tracking using Web Map Service urls. I thought this would make an interesting MiniApp and give me a good opportunity to play with a few webservices. Starting from his base (and with some greatly appreciated clarification emails from Tyler), I've created StormDrain, a simple program that loads WMS data and displays it graphically. Here's what it looks like:
mouth.whereIs().put(new Money())
September 10th, 2004
Hmm. Perhaps it should have been mouth.getLocation() instead. That would present a more consistent BadJoke API. :)
Visions of truly portable applications.
September 5th, 2004
I've been thinking about the miniapps idea some more. I still think it's a good idea, but I want to extend it a bit. Miniapps are great and all, 'cause they're, well, mini.. but I want more. Java is supposed to by write once run anywhere, but in practice any given program only runs on one computer. I'm not talking about whether it can be on Mac or Windows. I mean that I typically install the software on one computer and that's it. If we've got this great portable runtime then why aren't our applications truely portable?