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.