March 18, 2007
As I mentioned my post about Guice, I’m finally motivated to start playing with code again.
Based on how cool Guice seemed, I figured I should finally take a look at GWT and see what it was all about. First, it is certainly different from writing any other web application. There is some very cool stuff. You can very quickly and easily write JavaScript style logic in actual Java. That is a great improvement over anything else.
One issue I found out of the gate was the CSS support. I found a post documenting CSS in GWT that is helpful. However, it appears that all instances of Button use the same class (gwt-Button). After a little digging I found the addStyleName and setStyleName methods. This allows you to assign a CSS class name to any object to allow it to be styled in CSS. This alleviates some of the fears I had about having too much of the look/feel in your code.
It took a little while for me to digest the fact that the Java code I was writing would be compiled down to JavaScript. When you start a GWT project, there is a x.y.z.client package, that will contain Java files that will be compiled down to JavaScript. The issue I had was that I figured I would make calls to ‘real’ Java files here to load my initial data for the page (just like in a Servlet, JSP, etc.). Of course, this isn’t allowed. You must create a web service like class on the server and make a RPC call from your client Java to the server code. This all makes sense, but takes a bit of time to sink in when you start hacking away. It also ads a layer of indirection as any 2q objects you pass between the service and client must also live in the client package and not contain any code that can’t be compiled down to JavaScript.
The biggest conclusion I’ve drawn, and probably the most obvious, is that GWT appears to be really good for building web applications with a very small amount of pages. If you look at gmail or Google Reader, these are obvious model applications. There is heavy use of AJAX, keyboard interaction, and other rich navigation. Gmail/Google Reader are heavily data driven, but the data is all the same type (email, blog posts). GWT is certainly something I will keep in mind for future projects, but it is a very specific ‘hammer’ for a very specific use.
March 16, 2007
In my day job my coding time has become pretty limited. I’ve also recently been pretty uninterested in ‘The Newest Thing’.
That all changed (for an hour) today as I downloaded and began to play with Guice. Guice is a dependency injection framework (similar in concept to part of Spring) from Google. It allows you to write self contained modular code that is easy to unit test, and ‘clean’.
I found an hour or so to play with Guice yesterday to read through the user’s guide and build a quick prototype. As I found myself working through the features, I had an overwhelming desire to go build something with it. It rekindled a fire.
This certainly isn’t a comprehensive comparison of Spring and Guice, or a claim that Guice is th end-all-be-all, but I found its use of Annotations, Generics, and concise and flexible configuration code to be very interesting. It was certainly a much more exciting experience than when I first sat down with Spring’s dependency injection code (and its XML).
It is limited to JDK 1.5, which I think is GOOD. Yes, it wouldn’t work for everyone on every project, but as we learned from Apple, forcing people to upgrade and abandoning backwards compatibility can produce much exciting results.
On a larger note, I’m very excited to see Google start make major contributions to Java and Open Source. The Google Web Toolkit is still on my list of things to play with, and Guice has certainly moved up on my tinker list. I’m off to make up a project to generate an excuse to use Guice. Maybe I should finally do JES version 2.
March 9, 2007
Matt Cutts has a great post about how Google doesn’t trap a user’s data.
I think this is part of what makes Google so attractive. If you contrast this post with the ongoing tussle over office document formats (ODS versus Microsoft’s Open XML). Part of Microsoft Office’s dominance has been their ownership of the default format.
Microsoft isn’t the only (or even worst) offender here. I’ve been recently frustrated by the closed data system of Adobe Elements, and the lack of a document tagging/category system in general. Vista has gotten some heat (I think Jon is correct that there isn’t an obvious right/wrong) about how Vista has ‘corrupted’ some image files by writing tag data into their meta data.
Apple is another offender. My ongoing effort to maintain the ability easily export your Playlist data from iTunes is to compensate for a feature that really should exist in iTunes. At least they made the data relatively easy to access (XML).
I also noticed Matt’s post didn’t touch on Picasa. Google isn’t perfect, and a lot of their existing sharing is for data that has well established formats (Email, Calendar, Docs, etc). Maybe we need a unified approach for Image tagging/categorization.
March 8, 2007
I recently bought a D-Link DSM-320 media player. The device plugs into your TV/Stereo and streams music, video, and pictures from another PC. Overall, it works reasonably well. My first step was to remove the default server software and install the open source TVersity server. This software allowed me much better control over what media to share and seemed to support a lot more formats.
I unplugged my Airport Express that I had been using to serve music, since the DSM-320 provide that and more.
After using it this way for a while, I plugged my Airport Express back in. Both functioned fine actually playing music. However, I found the Airport Express much more enjoyable to use to select what was playing. With the DSM-320, I had to use a normal remote and the TV as a display to select the music, etc. This worked OK, especially if I wanted to play a specific playlist. However, if I wanted to play a specific song, it was significantly faster to open up my laptop and use iTunes to navigate my music (which automatically connects to the Airport Express).
So I now have both plugged in, because I do like to have the option to stream videos to my TV. I’ve found that I’ve never really used the photo option. For music, I only use the Airport Express.
Is this a single win for Apple in my household, or the beginning of a wholesale takeover. Only time will tell…
March 2, 2007
One of the issues I struggle with is how to manage all of our digital photographs. I really like to have all of my stuff organized and I currently use Photoshop Elements to manage our digital pictures.
The problem I have is that this is installed on our desktop computer (with the BIG hard drive). All of our pictures and digital video are stored, organized, and edited here. However, my wife also likes to have a copy of the pictures, and often downloads them to her computer, and adds her own organization. However, her laptop hard drive won’t scale, and I don’t really want to have two separate organizational methods.
Ideally, I’d just have her use the desktop computer to download and organize, but I’ve tried that approach and failed.
I’m not a huge fan up uploading all of these pictures into ’the cloud’, aka Flickr, etc. I guess this would work, but I’m concerned about having our own local copies, in original format, etc.
What I really want is to be able to have her run Photoshop Elements on her computer against a shared drive and manipulate the same library. I’m not sure how happy Elements would be if I tried to do this.
Does anyone have any better ideas? What works for you?
March 1, 2007
I released a new version of my iTunes Export utility.
iTunes Export exports your iTunes playslists as M3U or WPL files, allowing you to setup playlists in iTunes and use them with other software or devices.
This release adds the ability to export playlists as WPL files, and now handles playlist folders. Thanks to Rishi Dhupar for helping with both of these features.
http://www.ericdaugherty.com/dev/itunesexport/
I have received several new feature requests and bug reports recently and I plan on getting to them soon. Don’t be afraid to ask for new features (eric@ericdaugherty.com).
Edited - 3/1 - That is release 1.2.0, not 1.1.0.
February 24, 2007
The net has been buzzing recently about Google’s announcement of Google Apps Premier Edition. I’ve heard a lot of talk, mostly how this is the Microsoft killer, or that the apps are useless and humble in comparison to Microsoft Office.
I think these are both true, to a degree. I have used Google Docs and Spreadsheets (as well as Reader, Adsense, Blogger, Gmail, Search, and probably others, so maybe I’m just a Google fanboy) and I think it does an excellent job at what it is.
I’ve spent most of my time in Spreadsheet. I have used it collaboratively as well as for my personal documents. For collaborative efforts, it certainly outshines the typical ’email around a document and everyone revise’ workflow. There was a case recently where I was on the phone with a coworker and we were working up a spreadsheet to model something. This worked brilliantly for this task, as we could both update it and see the updates in real time. I’ve also had another situation where I wished we had gone down this path. Instead, we were all looking at the same Excel document (each on our own computer) trying to explain the concepts to each other without being able to illustrate our points.
It is not Excel. As far as I can tell, you can’t graph or import graphs. It is a basic math spreadsheet. If you want a graph, or fancy formatting, etc. you will need Excel. This is OK for many people but some people will need to use features in Excel that are not in Google Spreadsheet.
Over time, the feature set will improve, and if Google does well with reliability and security, people will gain confidence in the service. If we trust the web for our Email, RSS Feeds, etc. why not to edit documents?
After all, the network is the computer, right?
February 24, 2007
This past Wednesday was Chief Illiniwek’s last dance at the final home game this season for the University of Illinois men’s basketball team.
The battle over the chief has been long and the best the ‘Save the Chief’ side can ever really manage is status quo. It does appear though that the battle is over, so we may as well enjoy the last dance.
Chief Illiniwek’s Last Dance
The beginning is a montage of the history, and his actual last dance starts about the 2 minute mark.
I certainly wish I could have been there, but I’m glad I was able to enjoy it during my time as a student. Hopefully the Chief will live on in future generations just as American Pie and O’Mally’s has.
February 19, 2007
As I run through my feeds in Google Reader today, I find that my prediction from my last post rings true (well, close enough) for more than just my own blog. Every post I’ve read today that mentions new subscriber numbers from Google Reader show huge increases. Here is a quick rundown:
Parent Hacks - 60%
EricDaugherty.com - 43%
John Battelle’s Searchblog - 42%
CrazyBob.org - 34%
AllThingsFinancial - 33%
Tim Bray - ~30%
I’m sure the blogs with the biggest jumps are more prone to report this news, but if this is representative of the average blog, Google Reader looks to own at least 30% of the feed reader market.
Not every one of Google’s new products is a hit, but I think it is safe to say Google Reader is well on its way. I’m certainly a fan.
February 16, 2007
This is a bit of an ‘inside baseball’ post, but…
Online feed readers, such as Bloglines, Google Reader, etc. allow many people to subscribe to a single feed without actually querying the feed for each user. This means that tools such as FeedBurner are unable to track the number of subscribers accurately unless the tools report the number of readers. Bloglines has done this for a while, but today Google announced that they are now reporting the number as well. Finally.
Feedburner says the number will be incorporated into their reports tonight, so tomorrow my number should double… to 2. :)
Google is a little late the the party here, but I’m glad they finally showed up.