I’ve been lasered!

This blog went an entire week without entries, which is quite unusual. The week before that was quite quiet, too. I don’t think Blue Sky On Mars has ever had that lengthy a quiet period.

It started with a trip to Niagara Falls, for a JSTOR-wide company retreat. That was a packed couple of days, but it was a good chance to meet people from our New York office. Things were busy after getting back, because we’re full-steam-ahead on our project at work, and I’m pair programming all day these days.

The weekend after Niagara Falls, I wound up with a nasty little cold, that I’m only now just about done with.

Then, last Friday, I finally had LASIK performed on my heretofore unaltered eyes. I’ve had a pretty easy recovery thus far, my vision is pretty good (but still stabilizing). I’d certainly recommend it for anyone who is not afraid of having their eyes tampered with and whose vision will likely be restored to 20/20. After years of wearing glasses or contacts, it is a huge change to be able to see so well without any additional apparatus. For me, the procedure was fully painless.

One word of advice: if they have a monitor in the pre-op area that is showing a LASIK procedure that is currently underway, don’t look at it. I was doing fine before the operation until I saw a 20″ (diagonal) eye being kind of abused. I still did fine after that, but the sight made me a little more tense. I found it much easier to go through in the first person than to view in the third.

My LASIK was performed by Dr. Sensoli at TLC in Ann Arbor. He’s performed thousands of these procedures and did great for me.

Strike That Out, Sam

[strike out] is a neat site that shows a little insight into Microsoft marketing folks in the form of Microsoft Word’s “Track Changes” feature. It looks like there are even people in Microsoft who don’t know how to use this feature correctly when posting a document online. The author of “Strike Out” found that 5% of the documents that tracked down on Microsoft’s site had deletions still tucked away within the document.

In truth, I don’t think that what you see on “Strike Out” is all that different from the types of edits that go on in marketing departments everywhere as marketeers try to hone their message for best response.

Mike Hogan’s RDF web app framework suggestion

Mike Hogan pitches an application architecture that should yield superior productivity. He talks about using RDF as his data model, though he admits that there isn’t very good tool support for RDF at this point. That’s certainly one trouble I’ve seen with putting RDF to practical application.

He talks about storing the data in Prevayler. Sure, there is a class of applications for which having all of your data in memory is fine. But, there are also plenty of applications where a larger data store is needed.

I’ve been thinking of this problem a little bit recently. I used Zope extensively for about a year, and find that the ZODB provides really great transparent persistence and doesn’t require you to have your entire database in memory. Of course, you have to be using Python to use the ZODB.

Recently, I also came across the IO Language, which seems like an unfortunate name because searching for “IO” on Google does not retrieve useful results. That said, I noticed something interesting in IO’s SQLLite interface: a “Soup” module. A “Soup” is a concept from the Newton. It’s basically an object store that indexes on named properties of your choosing.

Once you’ve worked with flexible, transparent persistence, you don’t want to go back. Hibernate is reasonably transparent (at least about as transparent as you can get in Java), but it still requires all of the maintenance of an SQL database. Yes, yes, I know that no one has yet made an object database that can scale as well as an RDBMS. But, there are a whole lot of applications you can do that fit within the scale that various object databases can accomodate.

I hope that Groovy will help to bring a little bit of dynamic behavior to the sometimes overly static world of Java. Nanoweb seems like a good start, because there’s just way too much housekeeping required for a typical Java webapp.

Mike Spille’s informative Groovy review

Groovy: First Contact provides a detailed look at Groovy’s features and Mike Spille’s likes and dislikes thereof. Here was my comment about the review:

Excellent post, indeed.

I think it’s important for Groovy to have a Java-like syntax, because that makes it easier to move back and forth between the two languages. I also agree that having more than one way to do things is the slippery slope to Perl (resulting in write/execute-only code — don’t try to read it).

But, if Groovy is *too* close to Java, as I think BeanShell is, you lose part of the reason to have a scripting system at all. The “->” and “.” thing seems like exactly the kind of thing that will throw Java folks off at first, but is useful when you’re trying to quickly put a script together. The optional parenthesis and semicolon can be nice for interactive use of a Groovy command line.

I haven’t looked under the hood, but I wouldn’t be surprised if operator overloading is used to provide some of the conveniences for Maps and Lists. Sure, you’ll have someone out there trying to multiply a GIF image by a JDBC ResultSet, but that’s really their problem. If someList.add(“foo”) can be replaced by someList + “foo”, I think that’s a win in a scripting language.

This article is the best one I’ve seen so far for giving people an idea of whether or not Groovy is for them.