Scrawls from Preston...

Powered by Pelican.

Sun 12 July 2015

Microservices may be the new “premature optimization”

Microservices as a term and concept are still very much in a waxing phase of popularity. There are many companies trying to figure out how to bring the pattern to their project. But like many trends - the risk is that it becomes a solution in search of a problem. Let ...

Fri 26 September 2014

Tab tool hack

If you are like me, you often have waaaay too many tabs open.

Too often I know I have some tab open somewhere, and get frustrated clicking through too many windows to find it. I probably should be better and more discriminating about opening so many, but instead I'll ...

Wed 24 July 2013

Can you "Wheel the love"?

So pip 1.4 has been released and one of the most exciting features is integration of Wheel support. I'm going to run through how to make wheels a default part of your workflow that can be a huge timesaver.

I'm assuming you are already using virtualenv and ...

Tue 16 July 2013

Docker as a platform for reproducability

Last month I released an early stage of a project called JiffyLab that was oriented around the ease of setting up a teaching lab environment. In the process I became a bit more familiar with Docker which provides a key component of JiffyLab's underlying tech, namely some improvements on ...

Wed 26 June 2013

Introducing JiffyLab

Yesterday I released an alpha version of a project I've named JiffyLab. In this post I expand on the rationale from the README, and talk a bit about developing with Docker.

The Problem

Python is a wonderful first language, but sometimes introducing people to Python is bogged down by ...

Sat 15 June 2013

Getting involved with Software Carpentry

I've recently finished up helping with my first Software Capentry Bootcamp, which was held at the Salk Institute in La Jolla. Given this was my first experience with SWC, I don't have any comparative insight to other bootcamps. One of the positive attributes of culture of SWC is ...

Tue 09 April 2013

asm.js and Python in the Browser

There has been a fair amount of recent coverage about asm.js since it started appearing in the nightly builds of Firefox. There are other places to read more about what asm.js - but essentially you can think of it as a subset of javascript that is functionally somewhat like ...

Mon 28 February 2011

Broker Django do-gooders

The Problems

Small and growing charities have many operational and communications needs that would be well served with custom Django apps. At the same time there are many budding developers who are looking for real projects, not contrived tutorials to learn with. There are also a number of busy experienced ...

Thu 04 November 2010

MIDI to DMX light chases

As a follow on the previous post - I wanted to demonstrate how the individual lights (with all their own features) can not only be grouped into a simple synchronized group - but they can be added into a "sequence" container which will operate a chase. This also shows the type of ...

Tue 02 November 2010

An object oriented approach to light show sequencing

There is a large hobbiest community out there of people putting together light shows synchronized to music. These are mostly around xmas string lights during the holidays.

The lights are controlled via a hardware board that takes signals from a computer and operates multiple dimmers to control the brightness of ...

Mon 10 May 2010

Easy Django choices done right

In a [old, but still relevant post]( James Bennet argues for a way of handling the choice tuples used by Django. One of the reasons I haven't always followed that advice was that it was just a lot of extra ...

Fri 12 March 2010

Turning a Mac Lab into a disc burning machine

Have a lab of Macs - need to burn a bunch of CD or DVDs? Harness those monkeys!

No one part of this solution is all that earth shattering, but it is a simple clever combination of steps.

So you have a bunch of Macs in a lab - you have Network ...

Fri 12 March 2010

Bash completion for diskutil (and others...)

A few of the tools I use have spent some time working up bash completing. django-admin and virtualenvwrapper to name two. As a Mac sysadmin I use a number of CLI tools for stuff, and was interested in working up some bash completion for these.

I picked diskutil for starters ...

Mon 08 March 2010

Integrating a paper based stage in a digital workflow with Django and QR code

There are several procedural things at work that still involve a signature, or hand written note on a piece of paper. This reality has made it hard to digitize these practices. While much of the process could be replace with a web app, with plenty of benefits. The reality is ...

Mon 15 February 2010

Kevin Nails it

The [Django Advent]( site is proving to be some great writing. The [recent piece]( by [Kevin Fricovsky]( hits the nail on the head in so many ways.

Basically he is highlighting some areas for growth when it ...

Thu 11 February 2010

a little tip on color

Not much to say other than I've been using this for a while and want to pass it on.

This [post]( has a great tool for randomizing terminal colors.

If you have a lot of terminal windows open - this can make expose ...

Wed 13 January 2010

Python,Multiprocessing,Hyperthreading, and image resizing

I have the occasional need to resize a set of images. I used to use Photoshop batch actions, then I used some droplets, and recently I've been using a simple python script with PIL (Python Image Library)

We recently got an 8 core Mac Pro, and I wanted to ...

Fri 20 November 2009

Pretty view of hg diff

Been using hg, and like to use hg diff to help me make better commit notes - but been spoiled by bitbuckets HTML view of diffs

So here is a quick script that I keep on my path for viewing hg diff, formated with pygments - I'm sure it would be ...

Thu 29 October 2009

Setting up pinax on Dreamhost Private Server

using apache, mysql, mod_wsgi, and virtualenv

Dreamhost provides free hosting to nonprofits, and for now they seem to have thrown in a virtual private server. This is hard not to take advantage of, and I'm hoping that the VPS is better performing than the shared hosting - but my concern ...

Wed 28 October 2009

Restricting login to account based on IP address

At work we needed to have a standard local account that would work off campus, but not on campus. Here was my solution.

First I check for the user and create it if it doesn't exist


user_exists=`dscl . -read /Users/remote GeneratedUID | grep -c GeneratedUID`

if [ $user_exists -ne ...

Thu 22 October 2009

Installing MySQL Python bindings on OS X Leopard server

Installing the mysql-python package on Leopard is relatively easy if you've installed MySQL from the distribution - but installing on Leopard Server is a bit more problematic.

The crux of the issue is that the version of MySQL that comes with Leopard Server does not include the header ...

Thu 15 October 2009

Local editing of remote files

So found this buried under some dust. I had forgotten that I had ever set this up, but in adding some stuff to a .bash_profile on an older server found some code that I've spruced up bit for this post that lets you locally edit a remote file initiated ...

Mon 14 September 2009

Marking all read in

I've always been annoyed that the only way to mark all as read for a mailbox was with a contextual menu in the sidebar - lets change that.

I use Butler as my quicklaunch keyboard macro tool - but you could use your favorite one to run the following script while ...

Wed 09 September 2009

Launching OE-Cake

OE-Cake is still expired for OS X - lets work around that

So OE-Cake now has a beta for windows - but not OS X.

We still have the binary from their old version that expired some time ago - we were launching it with ARD with the below trick, but now I ...

Tue 08 September 2009

Making iPhone iTunes remote more useful

The iTunes remote is pretty slick - if only it could turn on the stereo

I have a mac mini set up as a HTPC. The music end of this was a bit neglected as it was originally set up to use a custom onscreen menu control to switch between several ...

continue   →