I'm back from the hospital and starting to recover. It'll be a couple of weeks before I'm anywhere near full strength. The operation executed perfectly; no complications, nor problems expected down the road.
Monday, March 15, 2004
Now that I'm hosting this blog at my domain, I've switched back to the full RSS feed. JavaBlogs.com no longer seems to have an issue ... something about the mix of JavaBlogs.com and BlogSpot was toxic. I suspect that somewhere between them was a mis-configured web server or firewall. Hosting myself will also give me better access to statistics on page viewing.
Sunday, March 14, 2004
JavaBlogs.com once more can't process this blog's RSS site feed. I'm pretty sure its a problem on their side and the fingers are a-pointing. Using the short site feed seems to fix things.
This, of course, causes another problem: the formatting of the site is geared towards a fairly large display using Internet Explorer. Smaller screens and other browsers (such as Safari) are having problems. Given everything else going on right now, I won't have a chance to address that for a bit.
Saturday, March 13, 2004
It's strange how things can coincide. Right on top of the HiveMind announcement, I now have on my kitchen table twenty-four copies of Tapestry in Action. That's copies for me, for parents, for the Quincy library, for friends ... and a bunch held back for other purposes. Suzanne and I are just giddy!
My big concern was the readability of some of the larger screen captures from later in the book ... turns out, they look terrific. The book reads great, and even though a couple of juicy chapters are available online, to get the best stuff, you're going to have to pick up a copy! Should be in book stores and available online in about two weeks.
In other news ... I have a sudden, serious medical condition. I don't want to go into details or be melodramatic; it's entirely treatable and I have an excellent prognosis: we won't be testing how well Tapestry can survive without Howard at this time. It does mean I'll be largely off-line for at least a couple of weeks, starting next Wednesday. It also means I'll be missing my speaking engagements in New York and Wisconsin.
My other appearances, including Boston, Virginia, Colorado and Las Vegas, should not be affected.
Friday, March 12, 2004
From: Geir Magnusson Jr
Subject: [VOTE RESULT] HiveMind as Jakarta sub-project Date: Fri, 12 Mar 2004 15:03:44 -0500 To: Jakarta General List The vote has been running a week now (actually longer), the count has been unanimously supportive (there were two +0 votes, all the rest were +1), so HiveMind is now a Jakarta sub-project. Congratulations to Howard and the rest of the HiveMind community. -- Geir Magnusson Jr 203-247-1713(m) firstname.lastname@example.org
Pretty much says it all. We have that, we have the book (expected on my doorstop shortly), life is pretty good!
Wednesday, March 10, 2004
Manning has published two sample chapters for Tapestry in Action.
Chapter 02 introduces the basics of Tapestry, and shows how to use DirectLink, Conditional, Foreach and Image components.
Chapter 05 skips ahead a bit and discusses Tapestry input validation subsystem, which is very powerful. Alas, the screenshots were done a couple of months ago, and show the older, uglier version of the DatePicker component.
I think it was Geoff who suggested chapter 05, something along the lines of "let's blow the tops of their heads off!"
Tuesday, March 09, 2004
I've been spending the day working on Tapestry 3.0 ... fixing as many bugs as possible, updating documentation, and so forth. I've also been categorizing which fixes and enhancements will go into 3.1. A bit more of this, and I'll be ready to call a vote to release 3.0-rc-1. I'd really like to have 3.0 in at least RC (release canddiate) stage before the book shows up in stores.
Along the way, I made a very useful enhancements to the DatePicker component. It now uses a clickable button to show and hide the pop-up calendar (and the button can be customized to your app's look and feel). This is a big improvement over the old look, which used a button labeled with a "V". That was a bit tacky, the new look is pretty much ideal.
Friday, March 05, 2004
A major feature of Tapestry that has been ported into HiveMind is line precise error reporting. When errors occur, Tapestry and HiveMind will isolate the problem down to a particular line or a particular file ... not just when parsing an HTML template or a specification file (or a HiveMind module descriptor), but later, at runtime. Line precise error reporting is a major part of an overall attitude, a discipline, about reporting errors. It takes great effort to consistently catch and report errors, and to maintain that location information. Its very important however, because without it, your user's frustration levels will go through the roof.
I know I'm going to alienate a couple of people here so I apologize in advance. I may be a whiz in my own world, but at the moment, I'm a trembling newbie in the Hibernate world. So I'm putting together a couple of simple mapping files, and making use of the Ant schemaexport task. Now, I've done something wrong, and at this time, I don't yet know what. But see what I have to go on:
bash-2.05b$ ant export Buildfile: build.xml compile: [copy] Copying 1 file to C:\workspace\ProjectRegistry\target\classes export: BUILD FAILED file:c:/workspace/ProjectRegistry/build.xml:44: Schema text failed: net.sf.hibernate.MappingException: invalid mapping Total time: 1 second
See what I mean? Not enough effort has been expended on a) describing the actual problem (which mapping? what's actually wrong with it? how do I fix it?) and b) telling me what file is broken (never mind the line!).
This is one important aspect of HiveMind: when using HiveMind's XML support, you get much checking and much reporting for free. A hypothetical HiveMind message for this might be:
Unable to process attribute cascade (of element class/set, at file://..../Project.xbm.xml, line 27, column 35): 'deleted' is not a recognized enumerated value.
Again, I don't want this to be considered a dig at Hibernate. The core competency of Hibernate and its crew is to marshall data between Java objects and databases, something they have years and years of experience at. The core competency of HiveMind is to organize services and parse XML into objects and report errors while doing it. It might be nice for Hibernate (as well as virtually every other framework, open-source or closed) to prioritize a little bit of effort into these issues. I also look forward to a day when more frameworks leverage HiveMind for these purposes, offloading this XML parsing and error reporting burden onto it.
Thursday, March 04, 2004
I've restored the pre-built distributions of HiveMind available at the temporary download location. However, those only go as far as alpha-3, and the current code (provisionally alpha-4, but likely to become beta-1) is only available via CVS and has many cool features not available in the earlier versions. Get Maven and build it yourself.
After a bit of experimentation, I was finally able to get this blog back up on Java Blogs. I changed my RSS preferences to "short" (just the first paragraph of each post, no markup) and that makes Java Blogs happy. Previously, the RSS included the full text of each posting, with markup.
I'll be giving a talk about HiveMind at a one-day seminar in New York City on April 3rd: Developing Web Apps using Open Source Tools. In fact, I'll be presenting on HiveMind, not Tapestry, to sort of celebrate the fact that HiveMind is now back on track. It'll be a chance to mix it up with some folks like Rod Johnson, Ted Husted, and the like.
At long last, I'm getting a chance to really dig into Hibernate. I took a cursory look at it about a year ago, but realized I didn't have enough time to design and build a new application (for the end of the Tapestry book) and stay on schedule. Now that I've promised Jay Zimmerman a session on using Tapestry and Hibernate, I need to actually learn the technology.
So far, I'm liking what I'm seeing. I'm also, in the back of my mind, thinking in terms of Hibernate/HiveMind integration (Hivernate?). I could peek at what the Spring folks have done, but that would be cheating. Likewise, I'm not looking at what others have done in terms of Tapestry / Hibernate integration either, at least until I take my first pass at it.
It's clear that Gavin and team have hit the same issues and requirements I've encountered over the last 10 (!) years. It's kind of fun ... I'm seeing the echos of their design decisions over the last few years, the rough edges they've smoothed out by extending their DTDs and APIs. Someone on the outside of Tapestry looking in would see the same thing.