Wednesday, January 24

How do you become an Architect?

During an interview yesterday a candidate told me he had aspirations of becoming a software architect and asked me how he should pursue it. That question caught me off guard. I considered my personal career history and came up with this little nugget:
Always be the guy in every meeting with the best design idea.
That's pretty much how it worked for me. When you're sitting in a room with your colleagues and peers, discussing and debating how to solve a particular problem, and you consistently present the best ideas, the ideas that get implemented, you start to build a reputation and credibility. The next thing you know, you're The Architect. I expanded on the idea with this:
Be able to recognize and vocalize the pros and cons of every idea.
Not just your own; other people's ideas as well. If you can tell them, in a polite and constructive manner, what's wrong with their idea and how it might hurt them in the near or far future, they will [if they're not a complete jackass] thank you for it, and come to you the next time they want a Sanity Check.

But how, you might ask, do you become the guy with the best ideas? Read, read, read! I am a bookworm. I read books on design patterns, frameworks, methodologies, programming languages, antipatterns, usability, etc. If you can grok it and regurgitate it at the appropriate times, you'll be The Idea Guy.

That's how it worked for me. Your mileage may vary.

Sunday, January 21

Absolute Darkness

While I'm awaiting the arrival of my new MacBook Pro, I've been doing a lot of dabbling with the Mac Mini on the desk in my bedroom. Unfortunately for me, I require complete darkness in order to get a good night sleep and the bright light coming off the speakers and the pulsing light coming off the Mac Mini and the orange light coming off the monitor were driving me nuts. So I broke down and fixed them low-tech style today using some black 3M plastic tape. Why this particular tape? No residue! I can leave this tape on there for years (and have with prior projects) and pull it off some day and there will be no gunk.

Saturday, January 20

That Didn't Take Long

One day into development and I've already got a rant... but it's a tame one.

I needed to do some Globally Unique Identifier (GUID) generation for my new project so I Googled up "ruby guid" and arrived at this convenient little library.

Somebody has already done the work for me, and shared it! I love that. My thanks go out to the author.

I downloaded it, installed it, incorporated it, tested it, and everything was golden... on my Windows machine.

After I committed to source control and ran an update on my Mac to continue development there, I started getting this error:

/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': No such file to load -- Win32API (MissingSourceFile)

Oops, that's rather queer. Why would the code running on OSX be attempting to load a Windows API?

Thanks to the wonders of Open Source Software (and the author) I was able to look at the offending line and this is what I found:

if RUBY_PLATFORM =~ /win/i

The author reports on his download site that he "only tested this library under Win2k and Redhat," so he didn't realize or anticipate another environment other than Windows that might have "win" in its name... like, maybe, Darwin :-)

Friday, January 19

I'm back! Did you miss me?

The last six months have been rather tumultuous career wise. Long story short: my little company was bought by a bigger company and I was technically demoted from Chief Technology Officer (of the little company) to Vice President of Development (of the bigger company) which ironically resulted in more pay and more projects and more employees underneath me, but less stake in the company, and the icing on the cake is that the bigger company still has nobody filling the Chief Technology Officer position so I’m “acting” as that role. Sigh.

But that’s not the reason I’m writing today. A couple weeks ago an old friend of mine e-mailed me out of the clear blue sky. This is the entrepreneur friend that started my last two companies, including the one that just sold to a bigger company, and two more companies after that with which I wasn’t involved. Basically, this guy has the Midas touch. He’s got an idea for yet another company. He pitched it to me, and I liked it, and it’s relatively simple from both a technological and management perspective, so we’re going to play with it and see where it goes.

And what, pray tell, first crossed my mind when the thought of implementation arose? Why Ruby on Rails of course! And what perfect timing as version 1.2 was just released yesterday!

But I had one little road block. I have a plethora of computers around my house, but half of them are far too old and decrepit for development and the other half are owned by my current employer, so I had to get me a new machine for my new endeavor. It’s the law of the jungle that any Rails developer worth his salt has to work on OSX, so yesterday afternoon I ordered myself a refurbished 15-inch Core2 Duo MacBook Pro, and this morning Apple e-mailed me to tell me it had shipped. This will be replacing, or supplementing, my company-issued three-year-old Dell Inspiron. I’m giddy with anticipation.

Once I start getting back into the nitty gritty of Rails development, I expect I’ll be posting here again quite regularly with my rants and raves and trials and tribulations.