Vita Rara: A Life Uncommon

2007: A Retrospective


Categories: | | | | |

Personal Life

Sylva and I got married on April 28. It's been a real whirl wind since then. We are expecting our first child on April 1, 2008. My time with Sylva is special and precious. I have a great partner, and look forward to raising a family together.

Overall business issues have dominated this year. I doubt that will be that case next year.

Business

It was a hard business year, but prospects for the future look good.

Quadran

Quadran has arrived. About 63,000 lines of Groovy, Java and JSP, with some XML files to wire it all together, and it's up and running. We turned on our first Quadran installation on December 5, 2007. This was the culmination of a process that began with an initial meeting in September of 2004, and the consummation of the development agreement in July of 2006.

Quadran: Shakedown Run


Categories: | |

Today is the first day we have our client's complete staff using Quadran. It's a good feeling. This is a day years in the making. We had our first meeting about this project in the fourth quarter of 2004. That's a long time ago. We started the actual project in July of 2006. Today we have everyone in the business running on Quadran, and using their old system in parallel. There are issues, but nothing fundamental, no burning houses, or staff jumping off the ship. Overall it has been a calm deliberate test.

We have created more automated test cases for this project that any other project I have ever worked on. In the early going I opted for Struts 2, POJO service beans, and JPA, because they were testable. I think this has paid off pretty well, because it's quiet here. I'm not hearing screaming and gnashing of teeth. We'll see what the rest of the day brings.

Solution for Very Slow Time Machine Backup


Categories: | |

Tonight I added an additional external disk to my Time Machine managed backups. This leaves me with the following configuration:

  • Drobo with 2 * 500GB HD acting as the Time Machine Disk
  • 250 GB Internal being backed up by Time Machine
  • 2 * 250 GB FW External Drives being backed up by Time Machine

After adding the second external drive to the Time Machine Backup I kicked off a backup manually. I proceeded to ignore it and do some coding. After a few hours it hadn't completed backing 40G of data. I did a rough calculation and it was averaging aproximately 300-400 kBs. Needless to say that's is quite disappointing. At first I suspected the Drobo. (I'll admit I'm not a USB fan.) After some searching I realized it probably wasn't the Drobo.

Replacement Systems are Really Hard


Categories: | |

Create a list of the hardest things to accomplish in software development and I'm sure near, if not at the top of the list, will be replacing an existing system. Especially a system that runs the lion's share of a business' operations. Especially when you can't look at the source of the system you're replacing.

For the past year I've been working on my Quadran project. Quadran is a drop in replacement for a system my client has been using for about five years. Completing Quadran has been just about the hardest things I've ever done. It has felt like an IT death march.

Multi-Model Forms in Ruby on Rails


Categories: |

This isn't going to be an exhaustive tutorial on multi-model forms, but more of some observations from my learning to work with them over the past week. For a great introduction to multi-model forms see Railscasts. The major issue I've found if that the error messages when things go wrong, particularly at the view layer are almost meaningless or at worse utterly and totally misleading.

Walking into the Light: A Week With Ruby on Rails


Categories: |

This past week or so two developers whom I greatly respect and admire really opened my eyes. It's been an interesting time since then. On October 23 on the Struts Developer list Craig McClanahan wrote:

Why the long winded diatribe? Because while I'd *love* to see life made simpler for Java web developers, and a lot of the things happening in Struts2 are going that way -- it won't be me doing it. I've gone over to the dark side :-) and much prefer to develop in Rails -- for the conciseness mentioned above, but also because I don't ever have to do a "build" or "deploy" step during my development cycle any more. But you guys and gals need to be reminded that *this* is the kind of thing you are competing against if you expect to attract Rails developers ... or to avoid even more "previously Java web developer" defectors like me :-).

To which Ted Husted followed up:

Personally, I'd characterize going over to Rails as walking into the light :)

Using Globally Unique Id's in Ruby on Rails


Categories:

I'm starting to play with Ruby on Rails a bit, and liking it so far. Over the past year I have been so preoccupied with work on ongoing projects that I really haven't had the time to experiment with RoR. I'll write more about why I finally got off the mark and tried it out later. Short story is I like to so far.

For years now I have moved away from using incrementing integers as id's in my database designs. I have been using string based globally unique id's. I really don't want to leave these behind, plus I'm looking at interoperating with some databases that use them already. So, I had to find a solution. It took a bit of Google'ing, but I think I've found a solution.

OS X Leopard: First Impressions and Installation Solutions


Categories: | | |

I picked up my copy of Leopard on Friday evening and dove into an upgrade on my Mac Pro on Saturday. Things didn't go as smoothly as I would have hoped. I fell prey to two issues that long time users of OS X are most susceptible to.

  1. My current account started out on OS X 10.1, and has been migrated from a G4, to a G5, to my Mac Pro. Accounts that are this old need to have their authentication credentials reset, or they don't work. [Solution]
  2. For some reason I had Application Enhancer installed on my machine, which caused the Leopard Blue Screen of Death/Love.[Solution]

ApacheCon Training Session: Using Groovy with Struts 2


Categories: | | |

On Tuesday, November 13 I will be presenting a training session at ApacheCon 2007 in Atlanta, GA, Using Groovy with Struts 2. Learn how to use Groovy with Struts 2. Topics covered will include: Integrating Groovy into the Struts 2 Maven archetype; implementing actions, and service beans in Groovy; using Spring to wire Groovy service beans and action classes; using dynamic Groovy actions that do not require a server restart; writing Data Access Objects in Groovy and using Spring based transaction support with Java Persistence API (JPA).

Quadran Update


Categories: | |

We're in the final push to getting our first release of Quadran out the door. We' implemented a lot of functionality over the past two weeks. The data model has grown and morphed as time has gone on. We look to have a running system up within two weeks.

As I mentioned in another post we're starting to use Scrum to manage our software projects. The transition with Quadran has been interesting. Quadran is a fork lift replacement of an existing system that runs our client's complete operation. About the only thing that isn't in Quadran is invoicing and receivables. This makes the conversion to Scrum a little hard, because we're so close to finishing the first release. And we can't deploy the new system until it does everything else the old system does. (The old system took five man years to develop in the bad old days of EJB 1.1.)