Blogging Roller

Dave Johnson on open web technologies, social software and software development


Leo at 10 months old.

Just in time for my birthday, Leo takes his first steps. Here is what he looks like now at 10 months old. My Dad took the picture with his fantastic new digital SLR (a Canon 10D).
Tags: family

Eclipse books start to hit the racks.

Michael Yuan points out that a couple of books on Eclipse are about to hit the racks. Very cool. Yet another sign that <a href= "http://www.rollerweblogger.org/page/roller/20021107#the_eclipse_dominates_scenario">Eclipse will dominate. It's not just an IDE, it's the universal tool platform.

Tags: Java

It's a boy.

The blog Raible Designs - We Build Web Apps has claimed your blog Blogging Roller as its parent. You can view your blog's genealogy at this location: http://www.blogtree.com/blogtree.php?blogid=4073 Congratulations!
Thanks Matt. I'm honored.
Tags: Blogging

When types are indeterminate.

Charles Miller: I'm aware the Refactoring Browser originated in Smalltalk. What I fail to understand is how truly automatic refactoring is possible when types are indeterminate.

Tags: General

Nuggets.

Lance Lavandowska: I've started a wiki for Castor

Andy Oliver: I wish javablogs was opensource.

James Robertson: Gemstone is like Da Vinci - brilliantly ahead of it's time, simply outside the grasp of the current crop of developers....

Rafe Colburn: It's official, the IT job market still sucks.

Patrick Chanezon: Guido van Rossum (Python creator) started a weblog, at Artima.

David Czarnecki: FindBugs is already proving to be useful with the blojsom codebase.

Don Box: Honestly, I'm not sure why folks in the Java camp don't just use Tomcat + Xerces + Axis and declare victory.

Tags: General

Matt's goin' nuts.

In case you haven't noticed Matt Raible is goin' nuts with cool ideas for Roller development including integration of Struts menu into the Roller Editor UI, blogging via Jabber, and moblogging via Russell Beattie's Manywhere Moblogger.

Tags: Roller

Re: Roller suggestions.

I just noticed that Arjun Ram has a nice list of Roller enhancements. All of them sound good, but I'm not sure why we would want the my.yahoo.com look and feel. Maybe he just wants Roller to be a Portal or a Portlet within a Portal. He also requested some Steal These Buttons (actually he suggested these) style Roller badges. Here are my feeble first attempts (UPDATE: I took down the badges that included Sun logo images):

Powered by Roller  

Tags: Roller

Crippled languages that dominate the mainstream.

Stuart Halloway also has some words on Ted Neward's persistence posts.
Tags: Java

Ultimate Weblogging System

Lance discusses how well Roller meets Matthew Thomas' requirements for the Ultimate Weblogging System.
Tags: Roller

More about Neward's persistence items.

I've been thinking about Java persistence and O/R mapping a lot over the last year or two, so I was excited to see Ted Neward's latest items from his upcoming book Effective Enterprise Java. According to Ted, there are four approaches to Java persistence: object-first, relational-first, procedural-first, and hierarchical-first. I really like the way Ted introduces the approaches, exploring the history and the developer motivations behind each, but I do think there is room for improvement. Here are the short-comings from my point-of-view.

The approaches need more differentiation. Apart from the hierarchical-first approach, which I will ignore because it involves using XML rather than a relational database, the approaches, in the end, are very similar. When you get right down to it, they all involve building an encapsulation layer that stores and retrieves objects. The approaches differ only in the extent to which either the underlying database schema is exposed or the overarching object model is preserved.

More guidance is needed on choosing an approach. How do you know when to use each of these different approaches? For example, if you have an existing database schema, possibly one that is imposed upon you by your database administrator, does that mean you have to use the relational-first approach and use JDBC, RowSets, or SQLJ as Ted shows? I would say no, but Ted does not really make this clear. Conversely, if you start with a nice object model, does that mean you have to use the object-first approach and use O/R mapping, JDO, or EJB? I think the answer is no here too, but Ted does not explain this. How do you choose an approach and how do you know when circumstances have imposed an approach on you?

Characterizing the approaches as procedural-first, relational-first, and object-first is useful from the story-telling historical perspective, but I think it might be lacking for the practical how-to perspective. For an alternative, take a look at the way the Hibernate guys break it down, cookbook style. The Hibernate site describes four approaches to O/R mapping: top-down, bottom-up, middle-out, and meet-in-the-middle. These terms/approaches are useful even if you are not using Hibernate. Here are my summaries of the four approaches (from an earlier post of mine):

  • Top-down: Starting with an existing JavaBeans object model, develop a mapping that maps those objects to tables in your database, generate DDL to create your database, and then use a persistance API to persist those objects to that database.
  • Bottom-up: Starting with an existing database schema, describe your database schema using using XML or some other meta-data representation, generate your JavaBeans object model, optionally add business logic to those objects, and use a persistence API to store and retrieve your objects.
  • Middle-out: Starting with a meta-data description of your object model, generate your JavaBeans object model, generate DDL to create your database, and use a persistence API to store and retrieve your objects.
  • Meet-in-the-middle: Starting with an existing database schema and an existing JavaBeans object model, develop a mapping to map between the two, and use a persistence API to store and retrieve your objects.

I was kind of hoping that I would read Ted's new chapters and realize "damn, I'm doing it all wrong" but that didn't happen and I guess that is not all bad. The chapters and the talk I attended this week by Ken Hygh both confirmed that the Persistence Manager/DAO encapsulation layer approach is a good approach to take in a database-driven web application. All of that being said, I think Ted's book is going to be a great resource for Java developers and I'm looking forward to buying a copy.

Tags: Java

Neward on Persistence.

Great stuff on Ted Neward's weblog today on object first, relational first, procedural first, and hierarchical first approaches to persistence - all from his upcoming book Effective Enterprise Java. I'm printing them out now and cancelling all appointments this morning ;-)

Tags: Java

WROX sale is complete.

Wiley has purchased 35 or so of the WROX titles and APress has purchased the rest. So there is still some small hope that Apress will help Professional JSP 2.0 to see the light of day (so don't post those chapters just yet Matt ;-).

Tags: General

The virtue (and vanity) of an open source stack.

Roller sits on a big fat stack of software including Struts, Velocity, Hibernate (or Castor), Servlet Container, Database, and etc. When we encounter a problem, it is often deep down in the stack. Since the stack is open source, we can get the code, fix the bug, and even ship the patched jar, if we so desire. This is what Lance just did. He found that Roller had problems on HSQL-DB due to Castor's limited support of the SQL LIMIT keyword, he fixed it, and submitted a patch to the Castor folks. Now, as the guardian of the Roller Hibernate implementation, I guess I need to do the same thing for Hibernate.

Tags: Roller

Mike is stirring up the Struts fans again.

But are they going to notice that tiny glimmer in their rear-view mirror? Mike describes the Webwork-2 feature set.
Tags: Java

« Previous page of month (May 2003) | Main | Next month (Jun 2003) »