|
||||||
Currently writing about GWT, Ajax, Leopard, iPhone Development, and Java.Dr. Dobb's Article: Hands-On Google Web ToolkitMonday, December 17, 2007
"Hands-On Google Web Toolkit," an article I co-authored with Ed Burnette, is in this month's issue of Dr. Dobb's Journal. The article details the creation of GWTFlow, an Ajax Cover Flow Mash-up. To view your Flickr photos using this application, visit the GWTFlow Project Page.
GWT Conference Wrap-upSunday, December 16, 2007
I had a great time at the Voices That Matter: Google Web Toolkit conference. Many thanks to Barbara Gavin at Pearson for organizing the event.
The highlight of the week was moderating Wednesday afternoon's GWT Tools Panel. We had a great group of panelists on stage to discuss widget libraries, components, and IDE plugins (pretty much anything to make a GWT developers' life easier): ![]()
Selected quotes from the week's sessions:
GWT Leopard FixedWednesday, November 07, 2007
Google Web Toolkit now works on Mac OS 10.5. Google's team posted a link to the unofficial test build of GWT 1.4.61 in the issue tracker (comment #46):
http://code.google.com/p/google-web-toolkit/issues/detail?id=1792#c46 According to the post, this is not an official release and is still under testing, so report any problems to GWT Issue 1792. I've tested the patch on Leopard with the Hello World, Kitchen Sink, and my GWTFlow applications. Everything works great. I had no problems launching GWT applications via shell scripts or debugging them from Eclipse. Other users report similar successes with IntelliJ JetBrains and Cypal Studio.If you're interested in the gory details of the GWT/Leopard incompatibilities, view the history in the issue notes. The first two problems stemmed from changes in Apple's AWT subsystem initialization and Webkit's Carbon interop. The third problem was a ClassLoader bug in Leopard's 1.5 JVM when starting Java with -XstartOnFirstThread. Many thanks to Google's Kelly Norton* and members of the GWT community for tracking this issue down. *If you want to thank Kelly in person and hear some in-depth talks on GWT and Ajax, register for the upcoming Google Web Toolkit Conference (Dec 3-6, 2007 in San Francisco). Take $100 off registration with discount code GW-ADAM. Google Web Toolkit ConferenceTuesday, November 06, 2007
Pearson's GWT Conference is coming in less than a month! Voices That Matter: Google Web Toolkit will take place December 3-6, 2007 at the Palace Hotel in San Francisco. There's a fantastic collection of speakers:
![]()
Discount Code: Save $100! Pearson was nice enough to provide me with a discount code to share with my readers. If you're interested in attending, please register with the following code to receive $100 off the conference price: GW-ADAM. I look forward to meeting some of the great members of the GWT Community! Announcing GWTFlow: Ajax Cover Flow photo galleryWednesday, October 24, 2007
![]() View GWTFlow version 0.1 GWTFlow is a mashup photo viewer I wrote using the Google Web Toolkit (GWT) for an upcoming Dr. Dobbs article. GWTFlow uses CoverFlow-like effects for navigating through photos. Currently you can view photos from Flickr, but it's designed to support other image services like Picasa Web Albums. The article, which I co-authored with Ed Burnette, gives a hands-on look at GWT development using GWTFlow as our sample application. It is scheduled to be published in the December issue of Dr. Dobbs Journal. GWTFlow's user interface is inspired by the .Mac Web Gallery, which was redesigned in August 2007 to make extensive use of the Prototype & Script.aclo.us frameworks. Apple's web gallery has three viewing modes: grid, mosaic, and carousel. Grid and mosaic modes are great examples of Ajax applications (if slightly resource intensive). Unfortunately, the Cover Flow-like carousel mode initially used Flash instead of Ajax*. This led to some criticism from Ajaxian readers, wishing that Apple had done the entire application in Ajax. GWTFlow, I'm proud to say, is 100% Flash-free. : ) GWTFlow uses standard GWT widgets for positioning the images and callouts to Script.aculo.us for the effects. All of the photos are just Image objects placed on an AbsolutePanel, with a little math behind the scenes to determine positioning & simulate perspective. Albums & images are retrieved via RPC calls to a Java service, which then calls out to Flickr's public API using flickrj. GWT made development & debugging a breeze, with history & cross-browser support basically coming for free. Not being a JavaScript expert, this would have been a nightmare for me to build by hand and expect it to work on Internet Explorer, Firefox, and Safari. As a 0.1 release, there are obviously some bugs. Performance is dependent on the client machine; everything runs smoothly on my workstation, but the effects are a little jumpy on my laptop and downright ugly on my iPhone (poor 620mhz ARM processor). Larger photo albums also degrade performance. There's a known bug where some Flickr accounts aren't getting loaded properly, possibly due to spaces in the username. In future versions, I'd like to add Picasa support, more options for navigating through photos (keyboard, slider, etc), and integration with Adam Tacy's gwt-fx effects library. I'd also like to angle the images & add reflections to make it more like Cover Flow, but I'm a little worried about hurting performance. The latest GWTFlow version should always be available at http://www.adamhoughton.com/GWTFlow. Any feedback is appreciated! Once the Dr. Dobbs article is published, I'll post a link. I should have the complete source code online soon. * Since I first starting working on GWTFlow, it looks like Apple rolled out a version of Carousel mode that uses Ajax instead of Flash. Good for them. Book Review: Google Web Toolkit SolutionsWednesday, August 22, 2007
This book review was originally published on Ed Burnette's ZDNet blog. Ed received a preview copy of the book from Addison-Wesley and was kind enough to let me review it.
I'm not a very good tennis player. Yet when I signed up for tennis lessons a few months ago, for some reason I checked "Intermediate" skill level. Not Beginner or even Advanced Beginner - no, I signed up for Intermediate. So when everyone in class focused on speeding up their top spin or disguising their back spin, I'd be happy just to get the ball over the net. I settled into my role as a ball feeder to the other students, who really were Intermediate. Which brings us to Google Web Toolkit Solutions: More Cool & Useful Stuff by David Geary & Rob Gordon. This upcoming book is written for an Intermediate audience - developers who have (at least) installed the Google Web Toolkit (GWT), created an ajax-y app, and debugged it via Eclipse. There are great resources for Beginner GWT and Advanced Beginner GWT, such as Google's online developer guide or Ed's excellent e-book and gwtPowered web site. If you are just picking up GWT for the first time, I highly recommend you start there. But when you're ready to add a little spin to your ball, GWT Solutions is a good next step.Right from the start, this book helps lay the framework for creating production-level applications. The first chapter covers two important topics: browser history and internationalization (i18n). Neither is necessary for creating Hello World, but definitely make a difference in real world applications. Support for browser history has always been tricky in web applications, especially in the Ajax world ("please use my special previous arrow, not the big one you click everywhere else!!!"). Luckily, GWT provides integration with browser history via HistoryListeners. It's pretty painless to implement, but definitely easiest if you build it into your app at the beginning. Ditto with i18n - no developer looks forward to removing hard-coded strings from 20,000 lines of code. This book makes you eat your broccoli from the start: a couple extra minutes of work that you'll be thankful for weeks later when the boss decides it's time to translate the application into Dutch. In addition to covering the important plumbing, Google Web Toolkit Solutions shows off a few of the framework's flashy possibilities. The fun really starts in Chapters 4 and 5, with examples of dragging viewports, iPhone-like gestures, and Yahoo Map mashups (and this is all before the halfway point of the book). These implementations are chock full of useful GWT tips, and the authors provide source code for using or extending them. But they also help illustrate one of the authors' main themes: that GWT is a feature-rich, world-class environment for developing GUIs. The fact that they could reproduce iPhone gestures with cross-browser compatibility in just a couple days of coding really shows the power of the framework. The authors encourage developers to think beyond traditional web frameworks like Struts and Ruby on Rails, and to treat GWT as a competitor (successor?) to Swing & Eclipse's Rich Client Platform. The areas of the book I find most helpful are the instructions for real-world deployment and integration of Google Web Toolkit applications. It's easy enough to launch GWT apps from Eclipse in hosted mode, but your local playpen is probably not an ideal server for thousands of users. The last three chapters cover the nuts and bolts of deploying GWT apps to external servers and integrating with ORM frameworks like Hibernate. And as much fun as it would be to rewrite everything in GWT, upper management usually isn't keen to throw away perfectly fine code that took years to develop. GWT Solutions shows how to integrate with Struts-based legacy applications and mix-in external Javascript libraries like Script.aculo.us. (Once your GWT component is sitting on a sidebar of the company web page, it can begin its quest for site-wide domination.) The format of the book is long code examples with follow-up discussion and tips scattered throughout. This makes for interesting reading and helped me discover quite a few new techniques. The only downside is that the discussion of some features is spread out over different examples and chapters, which made it easy to forget where I found something and difficult to focus in on help with a specific feature. The examples are written using version 1.3.3 of GWT, but the authors note areas where the upcoming 1.4 version fixes bugs and improves on functionality. Overall, I'd recommend Google Web Toolkit Solutions. The extensive examples and tips go a long way in progressing GWT skills from Intermediate to Advanced. ![]() |
||||||
|
|
Blog - Apps - About Adam
![]()
© Copyright 2007, Adam Houghton
Developed in Durham, NC