February 26, 2004

The Passion of The Christ

Go see it

Posted by Dave at 02:28 AM | TrackBack

February 25, 2004


must you have a scraggly beard as you progress from trimmed to full?

Posted by Dave at 12:34 AM | TrackBack

February 23, 2004

coastal ice formations

Geology field trip. Lake Michigan. saturday. afternoon. Frozen ice. big. cool. the pictures are worth a thousand words and i'm not so good with words today

Posted by Dave at 09:51 PM | TrackBack

February 18, 2004


stupidness abounds. i don't like stupidness invading my life.

Posted by Dave at 11:15 PM | TrackBack

February 16, 2004

cathartic sneeze

Posted by Dave at 08:24 PM | TrackBack

February 12, 2004

wrapping your head around it

I've almost got my head wrapped all the way around struts. And it hasn't been as painful as it sounds :-)

I've been implementing a webapp in struts for forrestbot (getting paid to work on open source!) and it hasn't always been too straightforward. Learning the big picture of a library or paradigm or pattern can be tough. Everywhere you look there are API references and snippets of code to do specific things, but there's nothing like that for organizing an entire application. Even looking at existing applications doesn't work because few apps are "normal"; they frequently have some oddity which requires a variation from a standard design pattern. And other sample apps (often used in "getting started" articles) are too simplistic. They don't show how you start organizing your files when you have multiple forms and actions, for example.

One way to learn this would be to have a concise but complete overview of the "black box" you are trying to learn. For example we'll continue using struts. It's a library that provides lots of neat stuff beyond the servlet container's capabilites. We'll assume we know how servlet containers work (I don't completely yet, but enough). We have struts-config.xml, tlds, tiles definitions, jsp layouts, resources, classes (actions, forms, models) and jsps using jstl & struts tags. That's a lot. Especially looking at the struts-config it can be confusing to understand what names and references correspond to what other things. There's lots of "connections" that go on behind the scenes (meanging: in the struts library) that are unseen and thus not understood. The overview would literally give you all the different type of inputs and tell you the outputs (how the app works). A simple example (I can't remember the specifics for the rest, like tiles or resources) would be saying that struts-config.xml is specified as the config file in web.xml which is read by the servlet. This is how struts knows how this app is configured. Or another: In struts-config, group several elements that specify what form classes you have. Here you specify various things, like if it is a dynaform or not, and what form fields it will handle. You must specify the form fields or they will not be accessable in your java action and form classes. They're also used for validation (I think).

This is a big form of documentation lacking in current software, libraries, languages, etc.

Posted by Dave at 02:54 PM | TrackBack

February 05, 2004

run away, run away!

my birthday is upon me!

Posted by Dave at 07:00 AM | TrackBack

February 04, 2004

CSX BookConnection

some incredible stats for BookConnection: almost 1000 users (~ 1/4 of calvin's student body), almost 3000 books in the database, and over $21,000 worth of books sold. I was the main developer on getting it going for CSX so I'm pretty proud. I don't think I've ever done anything that's affected so many people directly. wow.

Posted by Dave at 10:53 PM | TrackBack

weblog spam

i got some weblog spam twice now. it sucked because there was a comment on every entry with links to online casinos and the like and I had to delete each comment individually. fortunately moveabletype (the program behind this weblog) has a plugin for blacklisting certain keywords and allowing you to easily delete a lot of comments at once

Posted by Dave at 10:51 PM | TrackBack