An Architect's View

CFML, Clojure, Software Design, Frameworks and more...

An Architect's View

Entries for month: August 2006

My wife is a cat show judge!

August 30, 2006 ·

We got the notification this morning that the TICA board (The International Cat Association) voted to approve Jay's application to become a probationary specialty judge, the first of four tiers of judging. As those who know us well probably understand, we're very excited about this! To get to this stage you have to pass a six-month open-book exam (180 questions, mostly essay style) and complete at least 40 hands-on training sessions with other cat show judges, followed by four solo judging rings under supervision. That's at least 22 two-day cat shows and a proportion of them have to be at least 500 miles from home. Jay started her exam in May 2004 and we did a lot of traveling in 2005 for all those shows! To be eligible to take the exam in the first place, you have to have been a TICA member for at least five years and bred a number of championship level cats in multiple categories as well as exhibited cats in a certain number of shows, become a certified ring clerk, acted as entry clerk (several times), master clerk (several times) and show manager. The path from probationary specialty is: approved specialty then provisional allbreed and finally approved allbreed. Hopefully Jay will reach that point around 2010! I love my wife very much and I'm very proud of her - she's worked incredibly hard to get to this point and it's very much her dream. I'm very happy that I can support her in achieving her dream!

Tags: personal

The Other ORM

August 30, 2006 ·

A lot of buzz and excitement surrounds Doug Hughes' Reactor ORM project (and rightly so) but it isn't the only game in town. As those of you who've seen my talk on OO and persistence (download the preso and code from the "software" pod on my blog, if you haven't), I talk about four ORM frameworks that appeared at roughly the same time: Arf!, objectBreeze, Reactor and Transfer. Arf! was intended to be a quick prototyping tool, inspired by ActiveRecord (from Ruby on Rails) but the other three were aimed at solving production scale problems. Reactor was the most ambitious and seems to have attracted all the attention. The other two got a bit lost in Reactor's shadow. I recently started taking a second look at the Transfer ORM library by Mark Mandel and it's really grown up a lot since I last looked at it. It takes a different approach to Reactor (and Arf!), not relying on the ActiveRecord idiom, but instead assuming intelligent business objects for which Transfer provides persistence. It may seem a subtle difference but it's an important one. A business object does not know how to create / read / update / delete itself - that's the job of Transfer itself - but Transfer provides the infrastructure to create and manage the business objects (as well as persist them). Transfer provides a solid event model (before / after observers for persistence operations) and has recently added full decorator support so you can write easily customizable business object CFCs that are "attached" to a persistable CFC that handles the core business object data. Transfer also provides very sophisticated caching machinery (which I haven't fully gotten into yet). Installation is clean and straightforward. Although Java code is used, no special attention needs to be paid to the JAR it needs because Transfer has its own class loader built in to take care of the JAR. Very slick! It also seems to be a very low overhead ORM, in terms of raw performance. Currently supports SQL Server, MySQL, Oracle and PostgreSQL but the approach it takes is much more generic than Reactor so adding additional databasess should be very easy. It doesn't use database introspection so there's less "magic" going on (which probably also contributes to the lower overhead in performance). Definitely worth another look. If you don't like the ActiveRecord style of persistence, Transfer might be just what you're looking for. Oh, and Mark Mandel created a #transfer IRC channel on so if you have questions, pop in and he'll be there (during the Australian day time). I'll be there too.

Tags: coldfusion · orm

Google Notebook

August 27, 2006 ·

For some reason I missed this when it was released (back in May I think) but Google Notebook is something I've been looking for for ages! When I'm browsing, I often see something interesting and want to make a note of it, with the URL etc, for future reference or blogging or whatever. I've always done this manually in the past, often copying the URL into an email and then copying the highlighted text into that email and leaving it in my drafts until I'm ready to use it. But that didn't really work for just keeping raw information and bookmarking all those pages didn't really help either since I'd end up with a sea of bookmarks and often have no idea why I'd bookmarked it months earlier. Google Notebook installs into your (Firefox) browser and you just highlight text, right-click and add to your notebook. You can have multiple notebooks, different sections in a notebook and you can also make notebooks public.

Tags: oss

Useful Firefox Extension

August 26, 2006 ·

Since many of the internal systems here actually require IE on Windows, I have IE as my default browser on Windows and Firefox on Mac. However, I just read about IETab on Joel Spolsky's blog and it seemed like the perfect solution: it uses the IE rendering engine inside Firefox on a tab-by-tab or site-by-site basis! Now I can have Firefox as my default browser on Windows (yay!) and have it automatically use IE to render any internal Adobe sites. The only glitch I've found so far is that Java didn't run inside the embedded IE (but luckily you can just right-click on a tab and open the page directly in IE if this happens!).

Tags: oss

Ryan Hartwich on Conferences

August 25, 2006 ·

A timely coincidence: Ryan Hartwich offers his thoughts about the value of conferences on Fusion Authority, just as I excuse myself from MAX. Adam Lehman will be taking over my Fusebox section of the frameworks debate and one of my colleagues will be taking over my partner summit sessions. I have a personal conflict on the Thursday, the day of the partner summit, and since someone from my team will have to replace me there, I can't justify going because my team just has too much going on around that time. I've been very lucky over the last few years to attend a lot of conferences - mostly to speak at them - even though it hasn't been core to my job. When you speak at CFUNITED, for example, and get all of your material in on time, your room is paid for which substantial lowers your budget. I've had to justify only the flight costs - and the time off work. Yes, time off. When I'm at a conference, I'm not "working" and that is a cost, just as Ryan points out, even for fully-funded employees. I've said more than once that ColdFusion community work and conferences are "not my job" but this year the rubber hits the road and MAX is out, as is the upcoming TeraTech frameworks conference (likely January 2007, either in Florida or DC). Beyond that, I can't say... CFUNITED 2007 is probably out but I will make cf.Objective() 2007 even if I have to pay for that out of my own pocket and take vacation time to attend!

Tags: personal · cfobjective · adobe · adobemax06

CFC Hints and Tips

August 22, 2006 ·

Todd Sharp has posted a great list of common mistakes (and lessons learned) that beginners often make when writing ColdFusion Components. Think you're no longer a beginner? You'd still better read Todd's list as a refresher because I bet you still make some of those mistakes too (I know I do!). There's also some good comments starting up on that post.

Tags: coldfusion

Mach II 1.1.1 Public Beta

August 22, 2006 ·

Peter Farrell and the crew have been busy over at Mach II with the latest public beta release of the framework! Lots of bug fixes and small enhancements. See the site for more details. Remember that your feedback is important in open source projects like this: that's how projects get better and better!

Tags: machii · coldfusion

August 20, 2006 ·

In line with Model-Glue and Reactor, the Fusebox repository and bugtracker has finally moved to a new home: You now need to self-register for Trac. This should stop all the sp@m we were getting! Just like Model-Glue and Reactor, the SVN repo has framework/trunk - the latest development version - framework/branches - bug fixes for prior releases - and framework/tags - various historical releases. The website is also under SVN at website/trunk. I'll be opening up write access to the website repository shortly to certain volunteers who are helping with documentation. Many, many thanks to Simeon Bateman for hosting all of this! p.s. and also exist and should behave the same way.

Tags: fusebox · coldfusion

Coding not good for your career?

August 20, 2006 ·

Tom Ball (Sun Microsystems) asks the question "Is writing code a Career Limiting Move?" - there seems to be a strong sense in many teams that architects don't (shouldn't) code but it seems to go against agile thinking. This post hits a nerve for me because as a senior software architect for most of the last decade, I've often found myself in situations where I've ended up quite distant from the code. And I don't like that much. I don't want to just write code but I do find writing code to be both very therapeutic as well as a good way to experiment with some of my ideas and evolve better practices. I realized recently that, although I created the engineering team that rebuilt (now using ColdFusion and Flash, I hardly wrote any of the code on that site! The RSS feeds on LiveDocs are powered by code that is based on an initial prototype I built but that's about it, in terms of live code. I wrote quite a bit of back end infrastructure code for our ERP integration project (lots of XML processing and JMS messaging). That was a while ago. My new team is smaller and is trying to be more agile in style so architects write code too. It's really good to roll up my sleeves and write code again - it's really helped me confirm some of my architectural ideas about what we're building (both good ideas and bad ideas!). BTW, this lack of coding at work is what fuels my contributions to open source projects outside work, such as Fusebox 5!

Tags: architecture · programming

Java 5 and Google

August 19, 2006 ·

Windows XP just alerted me that Java 5 Update 8 is available so I figured I'd go ahead and install it and was quite surprised that the Java installer offered me the Google Toolbar (pre-checked) and the Google Desktop (not checked). I don't have any feelings on the "bundled offer" one way or another, just thought it was interesting...

Tags: personal