Thom Nichols


Technology is evolution outside the gene pool

Articles tagged with 'Python'

Batch Photo Thumbnail Creation for FancyBox

A quick script I wrote to batch create photo thumbnails for use with FancyBox.  This means each thumbnail gets the same filename with '_m' appended before the extension.  It uses the ImageMagick command-line tool convert to perform the actual image processing.

#!/usr/bin/env python

import sys, os, subprocess

def convert(directory=None, size='300x300'):

 if not directory: directory = os.getcwd()
 print('Dir: %s' % directory)

 if not size ...

Home automation with is a demo I created that parallels in many ways the work I do during my day job: push-based device control and telemetry. a web app and client software that let you monitor environmental sensors (in this case temperature, light and occupancy) and also allows toggling relays.  It also uses technology that is accessible to the average joe: Google AppEngine for the UI, the ...

The Raspberry Pi has landed

Like a kid with a new toy, my Raspberry Pi was delivered yesterday. 

And once I got it home, this was the only HDMI monitor I had...

Can I say, thank goodness the Raspbian distro has sshd enabled by default!  I spent probably 20 minutes searching around the house for a keyboard.  I don't have a USB keyboard in my house because I haven't used a ...

Qirk: A Cross-Platform QR Scavenger Hunt Game

Update: I've renamed the app qirk - and you can create your own games at  It's still pretty rough around the edges but it's finally launched so everyone can try it out!

Just last weekend was the 7th Wooly Fair, an arts and culture festival in Providence, RI.  My wife was asked to perform, and I went with her to planning meetings to see ...

Mobile Style Sheet: the Latest Blog Improvement

As I've mentioned before, I've made a lot of improvements to the blog engine that powers this site.  My latest enhancement is a mobile style sheet so the site looks just as good on an Android or iPhone as it does on a PC. 

The content is identical to what is served to a non-mobile client.  There's no user-agent detection going on, just CSS overrides ...