Archive of Posts from August 2006

I'm going to start pulling my del.icio.us links in as a post like the cool kids do. Here are the links from yesterday to kick things off...

New onfocus design, finally

I redesigned onfocus in March 2002. Since then, I haven't touched the design except for a few tweaks here and there. This site was way past due for a change, and this is the new look. If you're reading this in your newsreader, you'll have to click to see the new onfocus design in red, white, and black. I still have to work on the sub-pages, but I thought getting the weblog moved over would be a good start.

Time in a Bottle

Keeping track of the hours I work for clients has always been a hassle. My standard method was Notepad. Yep, it's sad, but I have a folder for each of my projects—along with a text file full of notes about that project. And I used to jot the amount of time I spent on the project somewhere in the file. Typically I'd have a [date] - [hours] notation, and when it was time to invoice I'd have to go back through emails to find out what those hours were spent doing. Sloppy.

I've tried using time-tracking software. Earlier this year in a fit of organizational desperation I put all of my projects and hours into a program called Timesheets Lite. It tracked hours alright, but trying to get at those hours at the end of the month was a nightmare. I could get an invoice once, but then the hours were "reconciled" and trapped in a database somewhere inside the program. Sure the software had a bunch of "features" like invoicing and reporting, but I like my manual invoicing system fine. And that's what I've found with all of the software I've tried for tracking hours: it provides an entire "workflow solution" rather than a simple way to track hours.

When I stepped back, I realized that all I needed was a stopwatch with a log. I wanted a big green button for go, a big red button for stop, a way to choose which project I'm working on, and list of all my work sessions. So I spent a few non-billable hours coding my own stopwatch, and I thought I'd share it here. It's nothing fancy: no invoicing, no reports, no charts, no to-do lists. Just a simple timer + some notes.

And it's in ASP classic just to make it even less useful. ;) But if you have a Windows server with SQL Server and want your own time-logger, here's how to build it:
  1. Create the database. It's two tables, hours and projects:
    CREATE TABLE time_hours (
    	sessionID int IDENTITY (1, 1) NOT NULL ,
    	projectID int NULL ,
    	startTime datetime NULL ,
    	endTime datetime NULL ,
    	Notes varchar (255) NULL 
    )
    
    CREATE TABLE time_projects (
    	projectID int IDENTITY (1, 1) NOT NULL ,
    	projectName varchar (50) NULL ,
    	projectRate int NULL 
    )
  2. Grab this script: trackhours.asp (Change extension to .asp.)
  3. Add your database details to the top of the script.
  4. Open the script at your server in a web browser, create a project, click Start Timing.
I can add notes to every session, and then go back and edit those notes by clicking on them once the session is finished. (Handy for noting what I actually did vs. what I set out to do.) I can create a new project by choosing "Create New Project" from the drop-down, which gives me a few extra form fields for project name and hourly rate. There's no way to delete a project, but I haven't needed that yet. There's just one session open at a time, and when I'm done working I just click the big red button and that session is added to the top of the list. There's a list at the bottom of the page showing the last 20 sessions or so. In action the script looks like this:

TrackHours screenshot
starting a session

TrackHours screenshot
session in progress

(The data has been garbled to protect the innocent.)

I figured someone else out there might not want to burn the few hours it takes to put this together. I've been using this script for just over a month, and so far it's fantastic. I have a running log of how I've been spending my days, and an estimate of how much I'm making during the week. I'm finally feeling organized when it comes to tracking hours. And since I've been freelancing for about five years, it's about time.

Bridge Pedal

The Bridge Pedal this weekend was quite a spectacle. It's amazing the city of Portland can pull it off—they close or limit traffic on 10 bridges that connect the two sides of Portland. Part of the interstate is blocked off, and 15,000+ bikers take to the streets to enjoy it. Frank over at Bike Hugger mentioned that it's one of the largest bike events in the country. Here's sk and I in full biking regalia on one of the bridges:

bp_pb_sk.jpg

(I'm not angry here, just holding the camera funny and couldn't find the button.)

There was a band playing at the top of two of the bridges, and REI had "bike tech" stations everywhere to help people fix any problems along the way. (One REI guy helped me fix a front brake that was sticking.) It was a highly organized, very well-run event. It didn't hurt that the weather was perfect.

Even though the ride was festive, and people were nice, it was a bit dangerous. We saw a woman fly over her handlebars landing face-first on a bridge after someone in front her stopped in the middle of the road. And we saw paramedics in a few other places helping out after crashes. You really had to keep moving and be aware of everyone around you to avoid running into people. My only critique of the event is that they should provide a bit more safety instruction to the riders.

But even with the stress of riding with a large pack, it beats sharing the road with cars. Here's a look at the top of our last car-free bridge of the day:

bp_fremont.jpg

Getting up to the top of a few of the bridges was a lot of work for us novice bikers, but I felt like we had a really good ride. We're both tired today, but there were no injuries, no major soreness, and a good time was had by both! I have a few more pictures at Flickr tagged Bridge Pedal. And then there's the global Flickr tag Bridge Pedal. And you can also check out other Oregon blog posts that mention Bridge Pedal via ORblogs.

Update: Check out this picture of the Fremont Bridge over at Portland Ground.

My Road to Google Hacks

I'm happy to announce that the new edition of Google Hacks has been released into the wild. I started working on Google Hacks, 3rd Edition earlier this year and now it's finally hitting the shelves. I had the fun task of contributing a slew of brand new hacks to the book, updating existing hacks, and tweaking the structure of the book to bring it up to date. Rael and Tara had already put together two editions of Google Hacks that were fantastic, and I'm glad to be in their company by bringing the book up to date.

Working on Google Hacks has brought me full circle on my personal Hacks Series adventure. In April, 2002—shortly after Google announced their Search API—I put together Google Smackdown to try out the API. I didn't think of the Smackdown as a hack per se, but a few months later I got an email from Tara asking if I'd like to contribute the code to a book about Google. I added some comments to my code, passed it on to her, and that was my first contribution to the Hacks Series. It turns out the Smackdown is a hack, and I'd been hacking applications together for quite a while.

Since then I've contributed three books to the series, one with co-author Jim Bumgardner (Flickr Hacks). In the process I even came up with my own method for writing hacks for the series: How I Write a Hack. The chance to work on Google Hacks brought me back to my first contribution, and if I remember correctly, the first book in the series.

The second edition of Google Hacks came out toward the end of 2004, and nothing's really been happening at Google since then. ;) There was a lot to cover, and this new edition tackles hacking Google Maps, covers working with blogs and Blogger in more detail, and covers tinkering with a host of other new Google applications such as Google Video Search, Google Talk, Google Reader, Google Personlized Search, Google Analytics, and on and on. I also added information throughout about protecting your privacy, and I hope it helps readers understand the trade-off we all make between convenience and sharing personal information with a large company. I found there's an art to keeping up with news about Google, so I included an Appendix of sources you can tune into to stay on top of Google's moves. And of course the book still provides a complete reference to squeezing the most out of Google's Search Syntax, Gmail, tuning your site for Google, their Search API, their desktop tools, and a bunch of fun tricks and games (like the Smackdown) that people have built to customize Google or generally mess around. shew!

I received my copy of the book a couple days ago:

Google Hacks, 3rd Edition

And it's satisfying to see the end result. You should be able to get your copy at bookstores everywhere now. To preview some of the new stuff, check out O'Reilly's page for the book: Google Hacks, 3rd Edition. You'll find a Table of Contents there, and five sample hacks. Happy Google Hacking!

Update: Here's O'Reilly's press release about the book: The World According to Google.