A letter to a friend

Dear Internet,

I hope you've been well. It's been 5 months since my last correspondence. Wow. I guess I'm now officially in the super-infrequent blogging category. It's not as unpleasant nor as lonely as I imagined. Hmmm...

There's been alot that has happened. The absolutely biggest and best thing has been the birth of my son. He's now 4 months old and an absolute joy - like his older sister. We're trying to spend plenty of time together. In fact, he's proofreading this post right now.

I hope everyone on the Internet is doing well. It seems like yesterday that we were all talking and laughing about who knows what. Maybe we'll be back there someday soon. Until then, I remain...

Respectfully yours,


Intranet Trends to Watch for in 2006 - Part I

Intranet Trends to Watch for in 2006 - Part I

Over at Patrick Dodd's weblog, Shadowbox Studios, he has just shared an interesting weblog post taken from the recent CIO article by Shiv Singh on Intranet Trends to Watch for in 2006

Things that really caught my eye in this article:

  • User Experience is starting to matter

  • AJAX is coming to an Intranet near you

How to Manage a Supersized Architecture

How to Manage a Supersized Architecture

I don't know whether it has surfaced during any of my previous posts, but I don't really like "Architects" who speak about Enterprise Architecture in theory. There are many reasons for this fact, but today I'll focus on one that is burning me at the moment: Scalability.

This is an interesting article about Enterprise Architecture tools and what happens when the repositories get really large.  I'm a consultant, and I haven't had any experience with maintaining these systems.  However, I can easily see this scenario playing out in large organizations.  In fact, I suspect that at some organizations the repository stops being used because it becomes cumbersome to architects.


Identity 2.0 Presentation

A friend of mine told me a few weeks ago to check out the recording of the Identity 2.0 keynote given by Dick Hardt at OSCON. If you haven't seen this presentation, it's well worth a look even if you aren't interested at all in digital identity. Dick's presentation style is very engaging and makes the information very consumable to techies and non-techies alike.

Mark recently turned me on to Beyond Bullet Points by Cliff Atkinson. I really liked Cliff's ideas. Dick Hardt's technique seems very similar to BBP.

I have long hated presentation software, but given this methodology, I'm slowly changing my mind. Both of these things prove that it's not the tool, it's how you use it.


Conkeror: They're only encouraging me

As many people close to me know, I'm an Emacs freak. I try to use Emacs for all of my editing needs even when I have to jump through hoops to do so. I've only recently caved in to Eclipse for my Java work because my edit-compile-test cycle seems shorter in Eclipse.

This weekend, I read Bill Clementson's post titled "Firefox for Emacs users". Bill talks about a new Firefox extension called Conkeror. Conkeror's stated mission is:
Conkeror is a mozilla based web browser designed to be completely keyboard driven, no compromises. It also strives to behave as much like Emacs as possible. This means all the key bindings and to-die-for features of Emacs that can be imitated by a javascript/XUL web browser Just Work.

Of course, I about jammed a finger trying to get to the Conkeror install site at warp speed. The install was typical - just an XPI file that installs itself like any other extension. However, it doesn't just show up like any other extension. You have to type a special command line to get Conkeror to fire up the first time (this is on the Conkeror "install" page):
firefox -chrome chrome://conkeror/content

Once you start it up, you see the Conkeror help page. You can't resize the window - pretty annoying. However, if you go down the page and hit the button that says "Set Chrome", restart Firefox normally, then you'll be in full time Conkeror mode and you can resize the window any way you wish.

Aside from the bizarre start-up, Conkeror rocks! It's sure to tickle your Emacs fancy because it binds many of the common Emacs keys to browser functions. They've also made it easy to "click" links on a page by numbering each link; you simply type the number of the link and BLAMO - you're navigating.

The only drawback I've seen on Windows is that Conkeror interferes with some AJAX/DHTML sites like... Blogger! But, as little as I interact with some of those hardcore sites, I can fire up IE as a work-around.

Give Conkeror a try and experience the beauty of mouse-less browsing. It really is quite cool.

Update 05-30-2006 10:38:26 CST:
It seems that Gmail attachments are causing problems for me in Conkeror. Yikes! This draw back may really cramp my style.



I've recently fallen in love with this quote:
Courage is not the absence of fear, but rather the judgment that something else is more important than fear.
-- Ambrose Redmoon


Google Notebook - More proof of attempted world dominance

Lifehacker on Google Notebook - Further proof that Google is going for world dominance through rendering the desktop irrelevant.


Cygwin Ruby on Rails MySQL problem

I've started playing around with Ruby on Rails on one of my Windows machines. I was trying to connect to my local MySQL installation and I kept getting the error:

No such file or directory - /tmp/mysql.sock

It turns out it's an issue with the Cygwin environment trying to use Unix sockets when you use "localhost". I read the excellent notes posted at
Labnotes » Blog Archive » Setting up Ruby + Gems on CygWin
. It turns out the fix is very simple. Just change localhost to its IP address,, and you're in business!


GrayBit: Accessibility is a Gray Area

I found GrayBit from a blog post on unCLog by Gary King. GrayBit is an accessibility tool that will convert a web page into gray scale. This allows you to make sure your site has contrast in the absense of color. Nifty idea!


Color Schemes

I'm terrible at picking out color schemes (just ask my wife!). But fortunately for me there's lots of help on the web. Things like Color Schemer - Online Color Scheme Generator are a boon to me. These guys make it easy to pick out a color scheme based on a starting color. Also, they have a full blown app that looks really cool. Finally, they have an online scheme gallery that allows you to see schemes other people have picked out. NIFTY!


Reveal: The Best Firefox Extension Ever

If you're like me, you're not a real Firefox extension hound. I have about 15 or so, but I don't go out hunting them down. I usually just wait for word of mouth to point out the ones that are really neato.

Well, today I came across Reveal. I think it's the best Firefox extension I've ever seen. It's not just its function. The extension works extremely well and the fit and finish are superb. There's even a tour that allows you to quickly learn how to use the extension once you install it. Brilliant!

So, what does Reveal do? It shows you thumbnails of your sessions (and session history) and allows you to quickly navigate and manage them. You can use the mouse, keyboard, or even search! The thumbnails are also added to the tooltips for your forward and back buttons as well as the drop down menus. Finally, there is a magnifying glass that you can use to get a close up view of stuff on a web page.

This extension sets the bar for all other Firefox extensions in my humble opinion.


Software Architecture Blues

I've been feeling down on Software Architecture lately. I just get so bummed out that:
  1. You still have to focus on low-level components after decades of Computer Science.
  2. I feel like I create the same software constructs over and over again with no leverage. No higher-level abstractions.
  3. Producing up front architectural models and documentation is tedious and hard to get right.
I was lamenting to my friend Glenn about this today. He pointed me toward an excellent Fowler article called "Who Needs An Architect?". Fowler describes two types of architects. The first type of architect sits on top of the development team making all the important decisions. The second type of architect is more collaborative and acts as a guide to the development team by working with them, mentoring them, and helping them through tough spots.

After reading the article, it dawned on me that it would be nice if the industry placed more emphasis and value on software architecture practiced in the "guide" style. The guide style of architecture is good for the development team because if they are less skilled, the architect can help them improve their skills, understand the system, and make better decisions. It's good for the architect because if he/she helps the other members of the development team make better decisions, the architect will be able to make a big impact through leverage.

I like that. I've always valued leverage. When folks used to ask me about why I liked to manage people, I would say something like "Because I like to facilitate a group of people coming together to solve a problem." To me, that's one of the best things about being a part of or leading a team. Working together and solving the problem.

But, the industry doesn't seem to value the guide style of architecture. Clients want up-front technical documentation and the comfort that someone "in the know" is leading the software development effort and making good decisions. You certainly can't blame them for that. If I were a client, I'd sure as heck want it.

It leaves me feeling like I need to be both. I want to be the guide style architect, but I need to be the up-front, decision making architect too. It seems to me if you are around for the entire project, you can start off the up-front guy and transition yourself into the guide guy. So, you suck it up and take on the tedium up-front so you can have the fun on the other side. Maybe that's the outlook that will save my sanity.


Canvarticles Library

Canvarticles Library is one of the coolest JavaScript libraries I've ever seen. It's a particle effects library that allows you to create particle effects on your web pages. Simply awesome.


The Latest Van Morrison Fan

For years I've resisted becoming a Van Morrison fan. Even I have no idea why I've been so resistant. I suppose it's because in college I got to hear "Brown Eyed Girl" so much I got sick of it. Further, I started to think "Brown Eyed Girl" was indicative of every Van Morrison song. I suppose it just came down to lack of exposure to the breadth of Van Morrison.

I'm happy to report that I've finally come to my senses. I've been hearing a variety of Van Morrison songs on various XM stations and I really liked them. So, I decided to take the plunge and purchase a Morrison album.

I actually just picked one at random that was relatively recent, seemed to get decent reviews, and had the right "feeling" based on samples. I purchased Magic Time and I love it. It's got some real groovy tunes like "They Sold Me Out" and "Celtic New Year".

In summary, I think I'm well on my way to becoming a genuine Van Morrison fan. I'm going to grab some of the essential Morrison albums and dive in. I'm glad that I'm finally able to recognize the genius.


Lisp in 10 Bullets?!?!

Many people claim that Lisp is one of the simplest languages you can learn. I think that's true as well once you shift your paradigm. Vishnu Vyas created a post called Tiny Lisp course - Lisp in 10 bullets. that shows how simple the Lisp languages are (his post is meant to cover both Scheme and Common Lisp). The point that I disagree with is 10 because of he associates eval and macros.


AutoHotkey Remaps Keys Too

The love just keeps on coming with AutoHotkey - it remaps keys, too! I was using a tool called KeyTweak that actually made registry entries and required a reboot. That's fine at work because I'm the only one using my computer. However, on our Windows machine at home I don't want to make my wife struggle to remember I've remapped the Control key.

This weekend I installed AutoHotkey at home and it dawned on me that I might be able to remap keys with it. I looked in the Help, and sure enough - there's a section on key remapping. (In fact, you can map mouse buttons to keys with AutoHotkey!) I edited my main script and added the following:

; Remap keys

This remaps the Caps Lock key to be the Control key. Then it remaps the right Control key to be Caps Lock. This works well for me because I rarely use the right control key. I'm considering making it the right Alt key because that is even more infrequently used.

The beauty of this set up is that it is per user and doesn't require any registry changes. So when my wife logs in to her profile, her keys have the default mapping. Love it.

Updated 2006-02-13: Someone tipped me off that the link to AutoHotkey was wrong. Thanks!


Navigator Acquired!

As Jeff Reports, Navigator Systems, the company we work for, was acquired by Hitachi Consulting last week. You can read the press release here. Hitachi Consulting (HC) is a med-sized consulting company with a world-wide presence. It's going to be some big changes for little Navigator, but I think most of the Navigator folks are very excited about the future.

For us application development folk, I think being part of HC will give us the opportunity to be involved in even larger projects and stretch ourselves as developers. I'm anxious to see what kinds of application development projects HC has been doing, talk to some of their application development folk, and figure out how we can all integrate. Should be fun.


In my recent quest to find ways reduce hand strain, I came across an application called Workrave. It's a nifty little Windows application that forces you take periodic typing breaks. You can configure the time between breaks and the length of each break. At the specified interval, it pops up a window and suggests a rest. You can skip or postpone the breaks. It works quite well, and I've noticed that it will even pop up in front of a full-screen VMWare session. There's even a way to view your work statistics by day!

Despite its goodness, I have a love/hate relationship with this application. The break pop-ups sometimes annoy me. I'm jamming away, all flowing, and there's the window. Sure, I can ignore it, dismiss it, or postpone it - but all that takes me out of the flow a little bit. I'm sure that I will learn to work with it better over time (just like my freshly remapped Control key).

I may be noticing some difference in my hand fatigue. I'll have to keep working with Workrave and my other improvements to see if they're really going to make a long-term difference.

BTW, I typed through a micro-break and finally took a micro-break during the production of this article.

Web Standards Project

I was reading the December 2005 issue of Computer yesterday (yes, I'm that far behind), and I came across a News Brief entitled Organization Develops Scripting Standards. The article talks The Web Standards Project. The Web Standards Project is a grassroots effort to fight for standards in web technologies. Currently they have campaigns for an Acid2 Test, DOM Scripting Task Force, Dreamweaver Task Force, and an Education Task Force.

I really like the idea behind the DOM Scripting Task Force. The manifesto says that the task force wants to solve some of the problems with JavaScript development like bad practices, obtrusive DOM scripting, and accessibility.

Yes - please fix all that.


Blogger Markdown

Jasper de Vries has a Greasemonky script that will enhance Blogger's HTML editor with the ability to convert Markdown to HTML. Very sweet. Now you can post in Markdown. Love it.

Remapping My Control Key

Bill Clementson's post titled Surviving Emacs - Part 4 inspired me to remap my keyboard. I suffer from Emacs Pinky frequently and I'm looking for a little relief. So, today I made it a point to remap my keyboard to move the control key to caps lock using KeyTweak.

I have to say, I'm not used to it yet and it's bugging me really badly. I have alot of muscle memory built up. I can definitely see how the smaller reach is desirable, but it hasn't made a difference to me yet. Probably because I keep reaching for where the control key used to be rather than where it is now!

I'm going to keep going with it for a week or two. I'll try to report back and let you know how my pinky is doing. (The shift key seems to still be wearing me out, though.)


Emacs Pinky - been there

Emacs Pinky hurts. I'm glad it's documented. Now I have some advice on what to do about it. Also, check out Bill Clementson's entry about Surviving Emacs - Part 4.


AutoHotkey + Cygwin + Markdown = Kung Foo

I've recently been inspired by several sources to look at Markdown. I've long been looking for a way to document things in an open, neutral format and Markdown seems promising. The syntax is very simple (much simpler than TeX/LaTeX or XML) and people claim that you can get used to using it very quickly. Simple is good.

One of the easiest ways to generate formatted output from plaintext Markdown files is to use the perl script that is part of the official Markdown distribution. It's really simple to get this working - even on Windows. Take Markdown and add a little Cygwin... bingo! Again, simple is good.

After reading the "markdown for windows" article referenced above, I realized it would be really nice not to fire up a bash prompt and type a command just to get your Markdown converted to HTML. Enter AutoHotkey. (AutoHotkey is an OSS utility for writing Windows macros. I've been using it for a while, and I absolutely love it.) With AutoHotkey, you can add a keyboard macro definition similar to the following:

!#m::Run, "c:\cygwin\bin\bash" -c "getclip |/cygdrive/c/Markdown_1.0.1/Markdown.pl|putclip"

I now have the ability to enter Markdown anywhere, select it, cut/copy to the clipboard, hit WIN-ALT-M, and then paste my fresh HTML wherever I want it. To reiterate, simple is good.

Pure Kung Foo...


Eclipse BIRT Home

Jon pointed me to the Eclipse BIRT project. BIRT stands for Business Intelligence and Reporting Tools. The project is an effort to create an open source reporting system that you can integrate with your projects. Very cool idea.