Sunday, January 27, 2008

Wherigo Brings Narrative to GPS Games

I enjoy the outdoors and have been an on-again/off-again geocacher for some time. Which is why I was fascinated by Garmin's work to create a platform for merging GPS technology and some kind of electronic game narrative. Wherigo is a platform for building GPS based games or tours. These tours, called cartridges, can be created by anyone with a GPS and the Wherigo software, uploaded to the Wherigo site, downloaded, and played by anyone with a Wherigo-compatible device. Cartridges could contain:
  • a virtual tour of a historic area complete with audio-visual annotation on the device
  • a virtual pub crawl for your friends
  • a scavenger hunt
The possibilities for this are unlimited. How about locative/interactive art? Sound familiar? Of course you have to have a compatible device to play Wherigo cartridges. So far that's limited to Garmin's latest Colorado line of GPS receivers and a few handheld windows devices. That will hopefully improve over time. This is certainly an interesting development and it may inspire a whole new wave in outdoor gameplay. A great way to mix gadgets and exercise. Lets go out and play!

Technorati Tags: , ,

Saturday, January 26, 2008

A Whole Lotta Air In There

There is no question that the MacBook Air is another innovated feat of design and engineering by Apple. It's a gorgeous lust-bucket of metal and silicon. I heard Nick Carr, on a recent Gillmor Gang, call this computer a flat version of the Cube. I don't think this is fair. There are a number of technological innovations in the Air besides packaging which was the only thing really innovative about the Cube. The Air is like a concept car. It's sleek, sexy, loaded with interesting features, but ultimately impractical for daily use by most people. Unlike concept cars its one you can at least actually buy and drive around. However, even the most irrational Apple fanboys out there have to admit it's not the most practical computer out there. I don't think anyone who actually does serious software development could use it. It's probably not even a practical office machine. So who is this machine built for? I think mainly this computer, technological advances aside, was meant for rich technology fashionistas who want that status symbol travel computer. The kind of people who's main computing workload, is email, browsing, presentations and the occasional spreadsheet. (View only mind you not serious number crunching.) This isn't a bad thing. There are people like this in the world and I think Apple will sell quite a few of these machines, but I don't think this will be the lasting legacy of this machine. I think besides being a rich kids toy this machine will influence laptop design for the next 5 year. So when you roll your eyes at the first guy you see whip out an Air in Starbucks or at some meeting somewhere just think pretty soon you'll be able to get one of those machines, that actually has enough balls to do real work, at a lower price point, real soon.

Thursday, January 10, 2008

Building Grails Applications With Hudson

We're doing some retooling of our development environment. One of the changes we are making is swtiching from CruiseControl to Hudson. These tools provide automated builds for all of our projects and we found that Hudson was just a bit simpler to set up and manage. Our Ant and Maven based projects were a breeze to set up under Hudson but our Grails apps gave us a bit more trouble. Most of my issues stemmed from trying to use the generated Ant build.xml in the grails application. There were a lot of tricks I had to do with environments or in editing the build.xml that I did not like. Each fix seemed to make the project less portable. So I switched from using Ant to just using Hudson's "Execute Shell" build option and everything worked great. Basically, all the environment variable setup that needed to bet set for the build under Hudson (JAVA_HOME, GRAILS_HOME) could be done in the Hudson configuration for the build and not in the project files in Subversion. My script ended up looking like: JAVA_HOME=/usr/jdk/latest; export JAVA_HOME GRAILS_HOME=/opt/grails; export GRAILS_HOME cd trunk $GRAILS_HOME/bin/grails upgrade <<FOO y FOO $GRAILS_HOME/bin/grails test $GRAILS_HOME/bin/grails war The script executes immediately after the project is checked out in the Hudson workspace. The odd bit of shell code that performs the Grails "upgrade" is necessary when checking out for the first time from Subversion. This is explained on the Grails site. The "here doc" is required because the Grails upgrade command needs some interactive input from the user. Normally that's not a problem but when using an automated build you need to push the answer into the command. This setup works perfectly, gives me the control I need to perform the build, and keeps my project artifacts free from environmental specificity. If anyone knows a better way I'd love to hear about it.

Technorati Tags: , , ,

Thursday, January 03, 2008

Is Your Community a Ghetto?

By now the second volley fired by Zed at the Rails community has made the rounds. Other than being completely hilarious it seems to expose a few more steaming turds in the Rails meadow. Ah well nothing's perfect. I have played a bit with Rails and found that it is an eye-opening programming experience. I have no experience running it in production but it sounds like a work in progress. I am a happy user of commercial Rails applications and I'm pretty happy with the reliability. I'm not sure if that is due to very busy watchdog processes or that VMs and deployment environments are making things better. I'm an old C/C++/Perl/Java programmer. So I can appreciate a lot of what Zed is laying down. While the Rails community was optimizing for developer experience they really seem to miss the fact that these applications have to run reliably and scale quickly without having to throw a bunch of hardware at the problem. So while I was suffering the insults of early Rails evangelists poo-pooing the Java community, my production Java apps were running quite happily without restarts servicing lots of transactions per second. What I found interesting was the praise Zed had for the JRuby guys. Sun has poured some funds down the JRuby hole and they have a pretty good story to tell to corporate technology managers that running Ruby and Ruby on Rails applications on a Java EE stack, using NetBeans as a development platform isn't a bad idea. It's kind of funny that the community that snubbed Java, Java EE, etc. may actually be a big beneficiary of Sun's product development dollars. Still the Ruby/Rails community is very small, way smaller than the Java community, so I'd be curious to see what kind of return JRuby really does bring Sun and it's shareholders. Zed seems to be betting that Ruby/Rails is heading the way of the DoDo or at least the way of Cobol. So I guess we know how he stands on that bet. I've sort of skipped JRuby altogether and have written a few production apps using Groovy and Grails. I find the experience just as eye-opening and productive without the overhead of having to toss Java compatibility and with a gentler transition to meta object programming. At first my Groovy code looked more like Java but now it's getting more "Groovy". Performance is improving with each release. Sun has largely ignored Groovy in lieu of courting the Ruby/Rails community. They see this as a pragmatic move which they are hoping will grow their slice of the developer pie but is Ruby/Rails really a big enough market that any incursion would help Sun? I'm not sure. I wish Zed the best of luck for 2008. The guy's got balls. What a way to start the New Year. Freaking hilarious. Zed if your in NJ let me know and I'll buy you a beer. Better yet it might be fun to have you address our development team. I'll pay you better than Net-30.

Technorati Tags: , , , ,

Wednesday, January 02, 2008

Please Mr. Steve, Give Me Cut/Past

I really could use cut and past on the iPhone. MacRumors.com thinks that cut and paste may be heading our way in update 1.1.3. Let's hope so. I'm tired of writing long conference numbers down on scrap paper so I can type them into my phone when it's time to jump on a call.