On a call the other day, Erich mentioned that right before his own keynote, Marc Fleury of JBoss gave a keynote in full hip hop gear. This sorta went over my head at the time, but Erich pinged me a link to some pictures, and they're amazing.[Read More]
Jazz platform development
Alright, it's vacation time so I no reason not to play along since Pete Lacey was nice enough to tag me ...
5 Things You Don't Know About Me
Back to vacation...
28 Dec 2006 Update: All of my taggees have responded (sorted by promptness, descending):Read More]
billhiggins 1000006JUS 1,992 Visits
I'd meant to take a few days off from the computer, but I read something in Brand's How Buildings Learn that I had to quote. Talking about the relative merits of top-down design vs. iterative design through experience, Brand says:
The Darwinian mechanism of vary-and-select, vary-and-select has one enormous difference from the process of design. It operates by hindsight rather than foresight. Evolution is always away from known problems rather than toward imagine goals. It doesn't seek to maximize theoretical fitness; it minimizes experienced unfitness. Hindsight is better than foresight. That's why evolutionary forms such as vernacular building types always work better than visionary designs such as geodesic domes. They grow from experience rather than from somebody's forehead.
By 'vernacular building types', Brand means a class of buildings such as the Cape Cod house that aren't designed based on theory or fashion of the day, but rather by the practical lessons learned over many years by a community of 'layman' builders.[Read More]
Yesterday, Brady Forrest of O'Reilly wrote a blog entry discussing the open sourcing of the Google Web Toolkit (GWT). In his original post, Brady seemed to indicate that Google built their excellent Gmail and Google Maps Ajax applications with GWT. This struck my interest because ever since GWT came out, I've heard numerous people comment that Gmail and Google Maps were built with GWT. Given the release dates of Gmail/Maps vs. GWT, and given the relative immaturity of GWT*, I thought this highly unlikely. But when I read the GWT homepage, I found the following somewhat confusing: (emphasis mine)
Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers ...
To paraphrase the sentence above, "It's possible to build a class of web applications we call 'Ajax' applications using GWT; Gmail and Google Maps are examples of world class Ajax applications." What it does not say is that Google built Gmail and Google Maps with GWT. I asked Brady in his entry to clarify whether he knew whether or not Gmail and Google Maps were indeed created with GWT (because I honestly didn't know) and I pointed out the easy-to-misinterpret wording. He agreed that it was now unclear so he emailed a contact in Google. DeWitt Clinton of Google replied:
To clarify, while the Google Web Toolkit is designed for rich user experiences on the scale of Gmail and Google Maps (hence the wording in our announcement), those products predate GWT and were not built exclusively using the toolkit.
I'm not so sure about that statement. It's admirable that the GWT folks intend for their toolkit to make designing applications like Gmail/Maps possible, but let's be realistic:
Now don't get me wrong, as someone who works for Rational, I'm a strong believer in the value of both tools and frameworks. But Gmail and Google Maps are both incredible applications (especially when you consider that they were released before Ajax was mainstream) so they feel to like the wrong sorts of applications to list as examples, especially considering that as per DeWitt, they weren't built with GWT. And also I must say DeWitt was still a tad coy in his response - when he says that Gmail/Maps were not built exclusively with GWT, what does that mean? Does that mean major parts of them were built with GWT? Or a few small parts? Or any parts?
I think it's highly likely that most people who visit the GWT homepage know what Ajax is. So it would be much more useful for teams evaluating GWT for the GWT homepage to just say "GWT makes it easy to build Ajax applications. Here are a few examples of real, non-trivial applications that were built primarily with GWT" and then provide demos of several real Ajax applications built with GWT and perhaps provide interviews with the developers on how GWT improved their productivity and their applications. Now that would be convincing. And since GWT's been around for a few months now and has gotten lots of attention, there may indeed be some good emerging applications built primarily with GWT. Then the examples would be grounded in tangible results rather than intents.
* Re: "given the relative immaturity of GWT" - no disrespect intended; Ajax is a relatively new programming style and all Ajax frameworks are relatively immature, but getting better every day.[Read More]
billhiggins 1000006JUS 1,737 Visits
Well, I just finished my last bit of work for 2006 and now am off for a few weeks.
My New Year's resolution? Don't deliver code changes to the integration codebase after it's declared frozen ... like I did last night :-(
In fact, I think I'll begin observing that resolution right ... now :-)
Hopefully more blog postings on the way over the long break, but now it's time to take a nap!
billhiggins 1000006JUS 1,500 Visits
My mom was down from Pennsylvania over Thanksgiving break (she'll soon be here for Christmas/New Years - yay!). While she was here, I asked her with a smile if she'd read my first Ajax and REST article (the 2nd was not published at that point). She said "no, but I'll try to read it if you help me understand it". I said "sure" and shortly after we pulled it up online, she asked "So what is Ajax exactly?" After struggling for a minute to put it in simple, straightforward terms, I decided to try to explain it by showing her Google Maps, which is a spectacular example of what's possible with Ajax. But this demonstration had unintended consequences. After finding and examining her current neighborhood in Pennsylvania, she asked me to look up her childhood address in Montana. Then she asked me to show her how to search, pan, and zoom herself. She was engrossed and had forgotten all about my techy, abstract article.
There's an American saying "a picture is worth a thousand words"; in this case a good example was worth more than 3,278 words :-)[Read More]
I've got exactly four work days until I go on vacation for the rest of 2006. My vacation will be of the nice, relaxing, hang around kind, so hopefully I'll do a little more blogging than I have in the past several months (kids + Jazz + sleep = not much time for blogging).
I've been slowly working my way through an excellent book that Grady recommended a long time ago called How Buildings Learn by Stewart Brand which discusses how buildings change over time and considerations for building buildings that wear well.
Anyhow, you probably guessed that I'm going to draw parallels between Brand's book on building architecture and my profession of software development. Naturally I see lots of parallels - surely some real and some imagined :-)
I want to quote something from page 63 that to me perfectly explains much of my views on software design, and why trying to get everything right up front is not feasible.
Chris Alexander likes to make on-site adjustment to a building as it's being constructed. "Architects are supposed to be good visualizers, and we are," he says, "but still, most of the time we're wrong. Even when you build the things yourself and you're doing good, you're still making nine mistakes for every success. So you take the time to correct them. The more at each stage you can approach being able to experience the contemplated reality, the more it will give you feedback and you'll be able to intelligently develop it".
I think the key sentence is (sadly) the one that's most difficult to comprehend. To repeat:
The more at each stage you can approach being able to experience the contemplated reality, the more it will give you feedback and you'll be able to intelligently develop it
This is talking about the different between an abstract and concrete understanding of a design and how you can only make good decisions until you've descended from 50,000 feet, gotten your hands dirty, made some mistakes, and re-evaluated your design with the benefit of concrete experience. See also my post "Coding to Learn".
More on How Buildings Learn in future posts.[Read More]
billhiggins 1000006JUS 1,652 Visits
... is here. Your brain must be able to follow five concurrent interleaving conversations for it to make any sense :-)
In summary I thought it was lots of fun and I think there was some good knowledge sharing, though I must admit everyone on the chat was already sold on Ajax, so there weren't any good food fights. The chat was run using an IRC-like Ajax chat client, and I must admit that I was half expecting it to die/crash midway through the chat just because we were all talking about how great Ajax is. But thankfully it worked just fine (thanks dW folks)!
We had good representation from IBM Rational (Grady Booch, Josh Staiger, Richard Backhouse, Jonathan Ellis, Matt Lavin, myself, others), WebSphere (Jared Jurkiewicz, Pat Mueller), Dojo (Adam Peller), the Eclipse Ajax Toolkit Framework (Bob Goodman, Gino Bustelo), Redmonk (Coté, Anne Zelenka), and several folks from IBM developerWorks, among others. Thanks so much to everyone who joined the chat.
A reminder that Grady will be hosting a chat later today (Thursday, 7 December) on the new Rational products that GA'd on the 5th. I will likely be there unless I end up having too much fun at the annual IBM holiday social. Re: the new products, Simon Johnston of Rational talks a bit about them here.[Read More]
billhiggins 1000006JUS 1,553 Visits
Chat details are on this page. I sent an invite for the chat to a number of IBMers and judging from the positive responses, we should have some good IBM representation (Software Group and IGS) on the call besides myself. But remember this chat is open to everyone so please join if you're interested in Ajax in whatever capacity (novice to expert).
Please remember to get an IBM ID if you don't already have one (it takes 2 minutes).
If you plan on joining, join a little early (12:50 EST / 5:50 GMT) in case you have any setup difficulties. In case you need help, non-IBMers can IM me at 'wph110' on AOL IM; IBMers can IM me at 'email@example.com' on Sametime.
Update: I've gotten a few questions on the format of the chat. It will be a text chat (like IRC), not a voice chat. Naturally the chat client is an Ajax app (what were you expecting... an Applet?!)[Read More]
I'll be hosting a live chat on Ajax on IBM developerWorks, Wednesday Dec. 6th at 1pm Eastern US time. Please join if you're interested in Ajax - whether an experienced developer, somone considering Ajax for your project, or just curious what the heck Ajax is.
I believe you'll need to have an IBM ID to join the chat (sorry!) - you can get one here. The process is pretty painless these days.[Read More]