Laying down fresh tracks

January 30th, 2008 by ymendel 0 comments »

One of the things about working for yourself is you get burdened with management headaches. My particular management headache is handling all the money stuff. (When it came time to think about roles and titles in the fledgling OG Consulting, I went for Treasurer. I figured it was a natural fit seeing as I was OGC’s Jew, but it also meant I didn’t have to take part in the President/Secretary straw drawing ceremony.)

What makes this less of a headache for me is FreshBooks. I pointed this out to Rick in the pre-OGC days (the year 1 BO), and when we got together (AO 1) I started using it for sweet official invoice-type action.

At some point in there a buddy of mine started work there. Small world.

The more I poke around at FreshBooks, the more impressed I am. It allows you to take it very simple if you want, but if you want to use it to track inventory and time spent and create estimates, you’re free to do so. In fact, I think you’re encouraged. And you can use all this to automatically create invoices, which is a pretty sweet deal when you consider the laziness possibilities.

And I did. We like deals where OGC is contracted for a certain amount of time and we figure things out internally. It’s an encapsulation thing. That, of course, puts more of the headache on me because I can’t just add up the hours, multiply by our hourly rate, and then divide the money equally when it comes in. I mean, I could do that, and I wouldn’t have complained for this last invoice considering I was sick and tired for much of the time it covered, but that would be wrong. It would be even more wrong if I were the one getting shafted. This means I should keep track of the time reported to me so I don’t have to ask once when making the invoice and again when the check comes in. That’s where the time tracking in FreshBooks comes in.

Now, I only really noticed this stuff after I had made the invoice and sent it out, so it was kind of late to fill in all the time entries correctly and create an invoice from them. That wasn’t really what I was after at the time. I just wanted to keep a record, so I did. And I appreciated the lack of strict bogus validation that made it possible for me to say that Rick worked for 25.5 hours on one day.

It could’ve been better, though. I could be lazier. We already track time for our own purposes, so why not use that data to automatically create time entries on FreshBooks and then create invoices from those? This is the sort of laziness that drives new development. After a bit of poking around at the FreshBooks API (did I mention being impressed?), I started on something to do just that. I call it “Freshtrack”.

Now, after I’ve tracked my time with a bunch of punch in [project] and punch out [project] over the course of several days and it’s about time to make out the invoice, I simply need to run freshtrack [project] and all the time entries are made for me. Laziness wins again.

To do this yourself, just gem install freshtrack and check out the README. It’ll get the dependencies for you and explain what to do about configuration.

This works perfectly for Rick and me because we both use punch. Kevin’s going to have to do some more work or get off his Emacs kick.

git TextMate Bundle

January 24th, 2008 by vinbarnes


I recently switched to git from svn. I was always more comfortable using the command-line to order the svn serfs around than TextMate’s built-in svn bundle. The same holds true for git. Although it would be nice if I could do a blame from inside the editor, rather than switch to the term and enter the path and filename. (Note: I favor the term blame over praise – I rarely give high fives when stumbling across a code snippet, rather I belch a guttural dismissal alongside a “WTF?!” for good measure.) Sadly, no git bundle is err… bundled with TextMate.

Luckily, this app is extremely customizable and many fine TextMate twiddlers have stepped up to the plate offering bundles serving the needs of everything from Ada to Quake to SecondLife and plenty in between.

Here are some resources to whet your whistle:

I’ll look the other way while you secretly download the Maven bundle. Don’t worry I won’t rat you out by telling the cool kids. What’s that? You want an Ant bundle? Yes, that’s there too.

Enough of the horseplay… Let’s get on with the dog and pony show already. You’ll find info on downloading the bundle and at the end there’s a git bundle command I wrote to do diff-ing in TextMate. Now if I can just figure out how to get this included in the experimental bundle repo…

One format to rule them all

If I didn’t do this,

export LC_CTYPE=en_US.UTF-8

svn would error out. After setting it the bundle pulled just fine.

svn export (or checkout) the bundle

cd ~/Library/Application\ Support/TextMate/Bundles
svn export

At this point, you will need to execute the Reload Bundles command from within the Bundles menu.

Add this to the git bundle

This is how I set up the command:

Save: Nothing


#!/usr/bin/env ruby -wKU

require ENV['TM_BUNDLE_SUPPORT'] + '/lib/git.rb'
require ENV['TM_SUPPORT_PATH'] + '/lib/escape.rb'

class SCM::Git
    def blame(file)
        base = File.expand_path("..", git_dir(file)) if base.nil?
        %x{#{e_sh @git} blame #{file}}

git =

puts git.blame(ENV['TM_FILEPATH'])

Input: None

Output: Create New Document

Activation: Key Equivalent Control-Shift-G

Scope Selector:


I’m happy to report that due to git blaming, my obscenities are now correctly directed rather than being heaved willy-nilly upon an unsuspecting somebody.

In some opulentia not so much gaudium

January 17th, 2008 by ymendel 1 comment »

I can eat a lot at times. There’s this story about a huge catfish sandwich that Rick can relate better than I could. When I heard about Christopher Pizza’s “Double or Nuthin” challege, I thought I’d give it a try. We just had to find the right time to do it.

What could go wrong when attempting to eat a large pizza with double toppings in an hour?

Read the rest of this entry

OG C(odez)

January 17th, 2008 by rickbradley 1 comment »

Well, in addition to getting a bank account, OG Consulting is now one step more official – we’ve now got a project tracker thingie-thang (a redmine installation) over at This means you can now find a (beta-quality, since that’s about the quality of redmine’s git integration) git browser for both the nihilist chat robot and the Object Daddy. We’ve got bug tracking, wiki’s, all that nonsense, and private project space to work on clienty things (that’s where we keep the combo to the safe and the map to Yossef’s secret stash of “Def Jam: Fight for New York” cheat code books).

You can also now git clone both Object Daddy and the nihilist_bot (the patient listener running

… git clone

… git clone


Officialness Time

January 14th, 2008 by ymendel 2 comments »

The time has come. OG Consulting is more than just an idea, a name. It’s a fact.

We just came back from the lawyer and signing a bunch of forms. Soon enough we’ll have a tax ID.

Go go OGC!

We even have a company seal, see?