Monthly Archives: May 2011

How many browser tabs to you typically have open?

I work standing up in an office of half-height cubes so everyone pretty much sees what I’m working on as they pass by and I consistently hear “wow, that’s a lot of tabs!”. $g(Chrome) is my browser of choice where I have 6 tabs I’ve pinned (to the left) a set of tabs I’m generally saving because they are topics of near term interest (middle) and working tabs I’m refreshing frequently as I work on Bloglines.



How do you use tabs? What strategies/tools do you use to manage this sort of flow?

Using the Python Cheetah Template compiler

The web application I’m working on uses Cheetah – “The Python Powered Template Engine” for web page generation and while the updated documentation is a great improvement over the old docs there remain some gaps that weren’t very clear to me when I first got started…


Of course, Cheetah’s got a lot of features so I’m certain there are things I’m missing which is part of the point of this post to start a conversation about how I’m using Cheetah and elicit feedback and exchange ideas/best practices.

The first piece I’ll toss out is simply a routine to call the Cheetah compiler on a list of templates. Running this routine alone on the CI server has caught a bunch of syntax errors that wouldn’t have been caught using runtime compiled templates.

def compileTemplates(templateFiles, outpath="ui/compiled/"):
    ''' Compiles templateFiles if they're out of date '''
    if templateFiles == []:
        raise Exception("No template files specified")
    for t in templateFiles:
        outfile = os.path.split(t)[1]
        outfile = os.path.splitext(outfile)[0] + ".py"
        if not os.path.exists(outpath + outfile) or os.path.exists(outpath + outfile) and os.path.getmtime(outpath + outfile) < os.path.getmtime(config.templatePath(t)):
            t = config.templatePath(t)
            print "Template: " + t
            source = Cheetah.Compiler.Compiler(file=t, moduleName=os.path.splitext(outfile)[0]).moduleDef()
            f = open(outpath + outfile, "w+t")

The routine checks to see if the template file (.tmpl) has been modified since the last compilation and optionally recompiles. 

ASP.NET Facebook Starter Kit updated to VS.NET 2010

Recently, I received an email via my blog asking for a VS.NET 2010 version of my Facebook Starter Kit. Since I no longer work on Windows it hasn’t been a high priority so I offered instructions on how to extract the project from the .vsi file and load the project manually. Much to my (pleasant) surprise I got a follow-up email with an updated starter kit for VS.NET 2010 updated to .NET v4.

If anyone decides they want to upgrade the FDT to the latest version I’d be happy to post an update for that as well. The starter kit is available on Facebook is nearing 5600 users! An interesting side note, I’m no longer able to edit the properties of this application on Facebook because it contains the word “facebook” in the URL which is no longer allowed.