Advice from Warren Buffett

Buried deep in this article about the dangerous size of the U.S. trade deficit was this bit of advice to MBAs:

“The one piece of advice I can give you is, do what turns you on,” he said. “Do something that if you had all the money in the world, you’d still be doing it. You’ve got to have a reason to jump out of bed in the morning.”

Unfortunately, my current job doesn’t fit this description. I need to do something about that, I just haven’t settled on what.

32

Today is my 32nd birthday. To me, it doesn’t seem like a particularly special birthday. It isn’t like turning 13, when you’re finally a teenager, or 16 when you can drive, or 18 when you’re officially an adult. I remember being excited about turning 18 because I was finally old enough to vote. I don’t drink, but 21 was still a good birthday. People talk about turning 25 as a milestone, but I feel 24 was a bigger year for me because I bought my townhouse that year.

Looking back over the past year, I see a lot of changes. I finally got my MBA after 3 years of working full-time and school nearly full-time. I made my first career change by leaving a full-time programming role and moving into project management. Looking forward, I see the potential for more change. The Lockheed-Martin buyout could change things completely. I might start a business of my own this year, or get out of project management and into something else, like business development or strategy.

.NET Development Tools

Richard Slade came up with a great list of free tools he thinks .NET developers should be using. I first found out about test-driven development and NUnit a couple of years ago in a previous job. It definitely improved the quality of my code. A consultant at my current job told us about TestDriven.NET. I’m looking forward to checking out the upgrade, since we used version 1.1 a year ago.

Ruby on Rails Progress

I finished Curt Hibbs’ first Rolling with Ruby on Rails tutorial today. After getting phpMyAdmin installed, doing the database parts of the tutorial went a lot more quickly. Before I tackle part two, I need to read this post by Amy Hoy.

After this brief tutorial on building a database-backed website with Ruby on Rails, I like the way it works. While I didn’t find the development process quite as simple as the screencasts portrayed it, I can definitely see using it as a rapid application prototyping tool. Even with the hurdles posed by installing and configuring PHP and phpMyAdmin on top of learning Ruby and Rails, getting from page 1 to a completed application didn’t take much time.

I still want to try out the Ruby plug-in for the Eclipse IDE to see how that compares with with SciTe and the command line.

Trying out Ruby on Rails

I made it one of my resolutions to learn Ruby this year, so I took a bit of time yesterday and today to try and get something working on my work laptop running Windows XP. I’d used the one-click Windows installer for Ruby a week before, so I was able to use RubyGems to install Rails. I put the latest version of MySQL on the laptop as well, since the tutorial I’m following uses it.

Instead of building the cookbook application the tutorial describes, I’m trying to build an app that serves a database-driven RSS feed. My reason is that we’ve done this for a client project with some old ASP code and I wanted to compare architectures and level of effort. So far, I like the way Ruby on Rails works. You can create an empty web app just by typing ‘rails ‘ at a Windows prompt. The application directory structure follows the model-view-controller design pattern, so there’s no wondering about where to put certain types of code if you’re familiar with the concept. Generating stubs for controllers and models is also simple (“ruby scriptgenerate controller ” and “ruby scriptgenerate model ” in the web application folder respectively).

Development Ruby on Rails seems to go fastest if you follow their naming conventions for code, and the table names in MySQL. When the model name is singular form of the database table name in plural form (recipe–>recipes or podcast–>podcasts), using “scaffold :” in your controller definition autogenerates the CRUD operations against that table in the database. Making changes then becomes a simple database change exercise. Once a column is added, moved, or removed from a table, just refreshing the browser shows the changes.

I’ll probably go back through the cookbook example and follow it step-for-step before going back to the podcast example, just so I have something stock that’s working. The other thing I plan to do is to replicate my work on the Mac mini I have at home.

Goals for 2006

Improve My Health

  • Exercise 3 times a week
  • Cook 3 times a week

Maintain My Hobbies

  • Shoot 36 film and/or digital exposures a week.
  • Post 3 shots on the photoblog each week.
  • Start re-learning the piano.
  • Go skiing once more (or snowboarding twice) this winter.

Strengthen My Faith

  • Read the Bible every day
  • Pray every day
  • Help out with a church activity once a month

Improve My Career

  • Work on a business plan once a week.
  • Learn Ruby
  • Attend one technology conference this year.
  • Attend one business conference this year.
  • Write a technical blog post once a week.
  • Contact a different person in my network once a week.

Teaching the Clinton Presidency

I admit it–I’m a C-SPAN junkie. The purpose of the open phones topic this morning was to air people’s opinions on how the Clinton presidency should be taught in middle and high school history classes. As is usually the case with these shows, the callers didn’t so much answer the question posed as bash George W. Bush or Bill Clinton. The calls I found the strangest were the ones that blamed Clinton for the current Bush years and for how divided the country currently is. Those opinions aside, my own is this: teach Clinton’s successes and his failures–all of them.

I voted for Clinton both times. Despite that, I don’t consider him the best president ever, or even a great president–merely a good one. In the success column: NAFTA, welfare reform, the economy. Perot said plenty on the “giant sucking sound” of jobs leaving the U.S., and that’s true. But that has as much to do with companies not doing what was necessary to modernize as it does with lowering tariffs. I remember being disappointed that Clinton signed the welfare reform bill, but in retrospect, it did get a lot of people off the welfare rolls. Clinton should get credit for mostly staying out of the way as the economy recovered from downturn under the first Bush. He should also get credit for increasing taxes on the highest earners in this country. That contributed a lot to the government going from deficit to surplus. I would count Clinton’s actions on Bosnia as a success too, if only because he helped get NATO involved in stopping the slaughter of Muslims there.

In the failure column: healthcare reform, Rwanda, impeachment. The failure of healthcare reform is perhaps the one with the most consequences for the present day. The voices who said there was no healthcare crisis when Clinton was trying to get this passed are probably the same ones who passed the narrow, expensive and poorly-planned prescription drug benefit. While Clinton isn’t the only one to blame for the genocide in Rwanda (the whole world stood by on that one), as the leader of the greatest military power in the world, his government’s inaction was very disappointing. Impeachment ranks as the worst of his failures from an opportunity cost perspective, not just the moral one. A lot of time was wasted that could have been spent doing far more useful things (like chasing al-Qaeda for example). It allowed people to question his motives for trying to do what was ultimately the right thing.

Windows Live Beta vs Google Homepage

My office gives us the day off tomorrow, but it’s pretty much a ghost town already. I had a bit of time today to play with the Windows Live Beta. I was curious to see whether it was a step up compared to my.yahoo.com or google.com/ig.

At first glance, live.com looks like a clone of Google’s personalizable page (though live.com is even more streamlined). It’s easy to add content to the page, whether it’s “gadgets” (the Google homepage calls them sections) or individual RSS feeds.

One particularly nice touch live.com has that I haven’t found on Google yet is a way to import an OPML file. To test it, I exported an OPML file from my bloglines account and imported it into live.com. Very quickly it showed up under “My Stuff” as “Subscriptions”. From there, it was very simple to drag and drop individual RSS feeds onto my live.com home page. I didn’t realize right away that “>>” meant content would open in a new window, but once I did, I liked the functionality much better. I wouldn’t use this over bloglines right now, but I’d be very interested to see if someone could come up with a slick gadget for newsreading.

A second convenient feature live.com provides is the ability to add the results of search to your home page. It’s like the News Alerts feature at Google News, only instead of sending you an e-mail, you see the results right on your page.

live.com seems to work equally well in Firefox or IE. If I had to choose between google.com/ig and live.com right now, live.com has a slight edge in functionality.

If you’ve already got a Microsoft Passport (and/or a Hotmail account), live.com is worth trying out.

Busier Ads from Google :-(

This article from the NY Times (free subscription required) tells us that those of us who use Google will soon have to contend with graphical ads. I suppose it was only a matter of time, but I’m still disappointed by the news. There are areas when simpler is better, and search is definitely one of them. We can only hope they’ll be small and tasteful (or that CustomizeGoogle will still allow us to remove them).