Links

Patrick Mueller elsewhere: muellerware.org, twitter.com/pmuellr

Saturday, April 01, 2006

Annual pilgramage to Busch Gardens

Went to Busch Gardens Williamsburg on Friday. Great weather, great trip. Park was pretty empty, we rarely had to wait more than 10 minutes in a line. Here are a few tips:

  • Curse of DarCastle is pretty dumb, but not as dumb as Escape from Pompeii
  • The waiting area for DarCastle is quite chilly, I'm sure it'll be a great place to cool off when it gets hot.
  • Instead of waiting in the insanely slow lines to get tickets, they now have ticket kiosks that no one seems to use.

Wednesday, March 29, 2006

VMware Player

I'd been meaning to try the VMware Player for a while now, and this weekend, I finally took it for a test drive. Easy installation, with a suggested reboot, which I did (note: I reboot my Wintel laptop once a day anyway, so this doesn't bother me too much. One of the prices of running Windows).

Next, I downloaded a "Breezy Badger" Ubuntu release from this page. I've installed Ubuntu several times now over the last year, it's the Linux distro I'm most comfortable at this point. Unpack that .zip, create some shortcuts, and I'm off and running.

The boot time seems a little slow compared to a native Ubuntu boot, and so I was concerned that the entire runtime story would also be paying this penalty. But, I was happy to find out this wasn't true. Once booted, things were quite snappy.

Here's a few things I learned along the way, which may not be obvious:

  • The initial 'admin' user is 'ubuntu', and that's the password as well. I wanted my own userid, which was simple enough to add, but to get sudo support for this, make sure you add that new user to the admin group. If you do that, you don't need to touch the /etc/sudoers configuration
  • The clock is slow. Visibly slow. And you will probably be on the wrong timezone after rebooting as well. But the slow clock is just ... weird. I guess that's ok, it's just a temporal thing. As long as you are just fixing the clock by jumping it ahead, things probably won't get too confused about being out of sync. Things like make anyway.
  • I thought I'd try to 'fix' the clock issue by enabling NTP synchronization. In the clock widget, right click, adjust time, pick the synchronize with time server option. Wops. NTP support not installed, do you want to install it? Sure. Fine, please insert your Breezy Badget CD. Ut oh. OK. I used to keep a BB CD in my backpack, but couldn't find it. So, I thought, let me just download another one. Start the iso download. Now, while I've got some time on my hands, I'm wondering, is VMware going to recognize my laptop's CD drive as it's own? Else, what do I do? Also think, I might as well give Nero ImageDrive a try before burning the CD, maybe that will even work. And guess what? Run ImageDrive on the iso, see it loaded as a virtual CD drive in windows, and a file explorer simultaneously popped up in my VMware session on the CD. Very, very cool. Saved burning a CD.
  • Even with time synchronization, the slew is so bad, I don't think using NTP is going to cut the mustard. Instead, I think I'll just manually synchronize the time when I remember to do this. How do the 'real' versions of VMware handle this? I'm not sure I could really work like this, with the time more or less ALWAYS behind.
  • Ran eclipse 3.1.x under the gcj java that Ubuntu ships. Just to see if it would come up. And it did, though it gave me some error 'pane' where the project navigator should have been. Didn't really look into it.

All in all, I'm definitely impressed, but worried about the clock. The only other really nagging issue was the screen size. I run my laptop at 16x12, and the Ubuntu display driver maxxed out at 1024x768 (I think). Too small. Want bigger. And I know enough about X to know that there's no way I'm going to try to reconfigure that. It would also be nice if there were some way of allowing a native directory/directories to leak through to the VMware session somehow. I'd like to actually host my home directory on my real drive instead of the VMware one. I suspect I can set up file sharing to do this somehow, maybe the performance would be acceptable. Or maybe just backing up my home directory somehow (zip it up, ftp it back to the native OS) would do the trick. More experimentation required.

I think I could see doing some lightweight development, or at least screwing around, here. Don't know that I'd want to use this for full-time development, though I don't know what the other, 'real' versions of the product can do either.

Monday, March 27, 2006

Tate on Continuations

Just read Bruce Tate's article Crossing borders: Continuations, Web development, and Java programming. I pretty much grok continuations; I definitely get the block concept ala Smalltalk, and once you get that, things like continuations don't look so unusual.

But here are some odd points that he made, at the bottom of the article:

New advances in Web development are rapidly making the continuations approach much more important. Rather than fetching whole Web pages with the traditional request/response models, Ajax applications can asynchronously fetch a small part of a Web page and weave the results into an existing page. But Ajax applications tend to force an application to maintain a connection to a user for long periods of time to keep applications responsive and keep state tracking easy to code. That practice defeats the purpose of stateless programming because you do need to hold resources for each connected user. With continuations, you can keep the state in a continuation and restore the state on demand.

I'm not sure that Bruce gets the whole Ajax thing. Ajax doesn't force any kind of connection as he suggests. The thing with Ajax is that you finally get to do client-side programming; keeping the state on the client, where it belongs. I have no idea what he's even trying to say here.

In the near future, hardware improvements will make the added resource consumption of continuations less critical. Without a major overhaul, Web development frameworks will still be too complicated. Ajax threatens to complicate Web development even more. These factors are all converging to drive the acceptance of continuation servers. In two years, most new Web development will use some continuation server or some simulation of continuations.

What hardware improvements are these? Hardware improvements that will make it cheaper to do continuations in Java? I doubt it; it seems to me there are few hardware changes that impact Java at all; it is a virtual machine, after all! I imagine he must be thinking about virtualization stuff that's coming. But I don't think the enhancements for virtualization are intended to scale to virtualizing our servers over thousands of users. But you never know; I used to use VM/CMS for development back in the day, and it in fact virtualized a 'machine' over hundreds of users. Still, isn't virtualizing a machine for a single web user a bit overkill?

w/r/t Ajax complexity: I know some folks who have recently switched from a traditional J2EE web app development story to an Ajax-based one, and from what I hear (and see, from the app), they are making a lot more headway in getting the app done than they were with the traditional tools. Is it complicated? It's different; not sure it's any less complicated than the traditional tools. It certainly appears to be much more productive.

In two years, I would be very suprised if most new web development is using continuations. Since I don't see a PHP version.