Think before you commit

Posted by Kevin Owocki | Posted in Technology | Posted on 21-11-2009

Version control is important, oh so important for managing changes to your codebase. Whether you’re a solo developer, or a team, you NEED to be able to track the evolution of your code.

Tracking down changes to code is one of the most important things I do, day to day. Though, sometimes it’s way too hard to reverse engineer a developers intentions if their commits messages or changes sets are opaque. Other times, it’s hard to match a specific commit to business requirements

I think it’s time to introduce some best practices for ensuring useful commits:

  • Match the commit message to your requirement story title. When I’m committing a change for a story in our requirements management system called ‘Inbox management iteration 1′, my commit message will likely be ‘Inbox management iteration 1 – Commit #1, {brief search-friendly description of features}’
  • Make small atomic commits A commit should be one cohesive logical unit. I’ve found that by making small, granular commits every time I complete something, it’s must easier to reverse-engineer my intent later.
  • Compile before you commit It sounds so basic, but sometimes code gets committed with syntax errors.
  • Test before you commit Again, sometimes code gets committed that hasn’t been thoroughly tested. This is extremely important for changes to foundational pieces of a codebase.
  • Compare via diff before you commit Comparing via diff is a great way to view what you are actually changing from a higher-level view. It’s useful to make sure what you’re changing makes sense to you and your team, if they ever have to come back to it.

If you and your team follow best practices for your commits, then it can save everyone a great amount of time and effort.

Does your commit process need improvement? Do you think before you commit? Leave a comment below or via twitter here.

How much is a themed Google logo worth?

Posted by Kevin Owocki | Posted in Technology | Posted on 16-11-2009

Google periodically updates their corporate logo on their homepage with a themed logo. Typically, this themed logo will coincide with a current event or news item in the country they launch the logo in. For example, in USA, the Google.com homepage over the last few weeks, has had themed logos celebrating both the 40th anniversary of the first episode of Sesame Street and the anniversary of the invention of the bar code.

It’s interesting to me that if you click on the themed logo, you’ll be taken to the search results for your logo, ie. ‘Sesame Street’, or ‘Bar code’, respectively. I thought it’d be interesting to dig a little into how much of a traffic boost websites on the first page the google results for these queries got during this time.

Case 1: 40th anniversary of Sesame Street.

The sesame street logos went live on Nov 4th and ran for a few days.

There’s a huge jump in searches related to sesame street during this timeframe.
SesameStreetGoogleTrends

SesameStreet.org is on the front page of search results for the ‘Sesame Street’ query. Their traffic has been climbing month-by-month. Though it’s too early to tell, I’d be willing to bet the Unique Visitor count is going to skyrocket in November!

Case 2: Anniversary of the invention of the Bar Code.

Google launched this bar code logo on Oct 7th 2009.

And…. the jump in volume for ‘bar code’ searches associated with the logo launch:
BarCodeGoogleTrends

BarcodesInc.com is on the first page of Google search results for the query ‘Bar Code’. They got quite a jump in traffic for October!

UPDATE 11/16/2009: Jeff Powers, co-founder of Occipital (the company that makes the #1 bar code scanning app in the iPhone app store, RedLaser), left a comment noting that they got about a 1000 user bump on Oct 7th, a bump he attributes mostly to the awareness generated by the Google logo.

————–

I wonder how much it’d be worth to a private company to “buy” a themed google logo for a day. In a world where media and advertising industries are being revolutionized, I’d be willing to bet a logo campaign with Google would be worth quite a bit.

Again, you can see the entire collection of themed logos at google.com.

Zen OS X: 5 easy steps to eliminate distractions on your Mac.

Posted by Kevin Owocki | Posted in Technology | Posted on 07-11-2009

I’ve been putting a lot of thought lately into simplifying my workspace to allow greater focus whatever task is current. Here are 5 easy wins I’ve made on my laptop (MBP 15″ running Snow Leopard) in the past month to eliminate distractions and increase focus.

1. Cleanup the Desktop.

cleandesktop

There are two main things I’ve found really helpful to eliminate distractions on my desktop:

  1. Archive every file that is not a part of my current task.
    I put these files in a subfolder called ‘file’, which is then subdivided into the folders ‘notes’, ‘pix’, ‘projects’, and ‘misc’.
  2. Get a clean dark wallpaper. The key here was finding a aesthetically pleasing wallpaper that I don’t find distracting.

Rethinking my desktop has allowed me to easily find files that are related to my current task, and eliminates the clutter of the dozens of other items that used to be on my desktop.

2. Rethink the dock and learn to love Spotlight.

dock
I used to be guilty of dock clutter. Every application I’ve ever used would be in my dock, irregardless of if I’ve used it in the last hour, day, week, or even month. I think I may even have had iMovie and Garage Band in my dock (two programs that come installed by default on OS X, which I’ve never even used!).

To clean up this area of my computer, first I needed a way to easily start programs that I was going to remove from my dock. (Turns out Spotlight is a great tool for that. More on spotlight, below). Then, I removed all items from the dock that were not vital to my workflow on a daily basis.

Here’s what’s left: Chrome, TextEdit, Gmail, Adium, Terminal, Activity Monitor.

spotlightSpotlight is a nifty feature of OS X that allows me to easily search my mac for any program, folder, or any other document. It’s stupid-simple to use: Just press Apple-Space and type the name of the item you want to find. (Also worth checking out: QuickSilver) I’ve found it to be a more-than-adequate replacement for having so many applications in my dock.

3. Minimize the menu bar.

menubar
This is an area that should be relatively easy to clean up. To reduce distraction, I removed all items that were not vital to my workflow. Here’s what’s left: Wifi, Battery life, Clock, Spotlight.

4. Learn to love keyboard shortcuts.

I’m a big fan of using keyboard shortcuts to manage all the application windows I’ve got open. To configure this feature, open up your system preferences, click ‘keyboard’, and configure your keyboard shortcuts.

The big to-do with keyboard shortcuts is to build a mental map of the most valuable shortcuts and actually work them into your work flow. I can’t do that for you, but I can recommend some of my favorite shortcuts:

  • Alt-Tab to switch between application windows.
  • Apple-Space to invoke Spotlight
  • F10 to show all windows
  • F11 to show Desktop
  • F12 to launch Dashboard
  • Apple-H to hide current program
  • Apple-M to minimize current program

5. Check out Fluid.

Fluid is a great app for turning any web site you commonly use into a desktop application. In my opinion, this allows much greater workflow management because I can manage the new application separately than all my other browser tabs. Read more about Fluid here.

How about you?

What are your favorite keyboard shortcuts? Workflow management techniques? What used to slow you down, and what saves you time now? Please post a comment via Intense Debate, below: