Go fast!

Posted by Mike on Aug 10th, 2010

I was reading Kill Zone by Gunnery Sgt. Jack Coughlin, and was struck by the personal mantra of one of the Marine snipers:
Slow is smooth, smooth is fast.
Even though lives are not usually on the line, it’s important in the software industry to understand that sometimes we shouldn’t rush around like chickens with our [...]


A Culinary Analogy

Posted by Mike on Jun 29th, 2010

We used to build software like a crappy banana split stand. Grab the banana off the shelf (which probably is about to expire), throw on ice cream, cover it in chocolate, add some cherries, whip cream, nuts, stir it up, put a spoon in it, hand it to the customer, take their money, and [...]


Python decorators, SRP, and testability

Posted by Mike on Jun 4th, 2010

On the SRP:
For those unfamiliar with the Single Responsibility Principle (SRP), it states that there should never be more than one reason for a class to change.
That is to say: do one thing, do it well.
Decorators (not to be confused with the decorator pattern) can add behaviors or side-effects to a method, and this can [...]


Rally pairing

Posted by Mike on May 10th, 2010

Iwein Fuld posted a great article about different styles of pair programming. It’s a great post, and I encourage you to read it if you’ve tried pairing but haven’t bought in yet. His rally car analogy is spot-on.
My favorite driver is an outspoken dutch guy. He’s quick on the wheel and if he doesn’t [...]


Agile Auto Restoration?

Posted by Mike on May 1st, 2010

I was over at my buddy Chad’s garage again tonight tinkering with his 1958 Chevy pickup. Chad bought the truck when he turned 16 and planned to restore it and drive it all through college. Ten years later, the truck still doesn’t run. To an untrained eye, there’s little different from when he [...]


Show me the $80 million dollar Blue (#0044cc)

Posted by Mike on Mar 18th, 2010

So what’s this fancy shade of blue that made Bing so much money look like?

 

Eh. Doesn’t really do it for me as a blob of color.
How about on a link? Well, that is actually quite pleasant against a white background.
Regardless, the takeaway from the whole story isn’t that you should switch all your [...]


Browser history sniffing with Dojo

Posted by Mike on Jan 14th, 2010

Niall Kennedy posted a now-famous article about using some browser trickery to determine what websites a user on your site has visited. I’ve taken that concept and created a module that can be used with the Dojo Toolkit javascript framework.
It provides two methods that you can use in your code, isVisited and isAnyVisited.
One important [...]


Batch convert images to sepia tone with python

Posted by Mike on Jan 13th, 2010

The Python Imaging Library (PIL) offers easy photo manipulation from python scripts. There’s some handy sample code on effbot.org that demonstrates how to alter an image’s palette to generate a sepia tone effect. It first desaturates the image, then applies a new palette based on a linear ramp.
I’ve cleanup up that sample code [...]


Recent svn commit statistics

Posted by Mike on Jan 13th, 2010

Here’s a little script-fu that can help determine how many lines of code were added vs. deleted for a single Subversion commit.

#!/bin/bash
if [ -z "$1" ]; then
echo "usage: $0 revision"
exit
fi
 
REV=$1
 
# Execute a svn diff on the revision, and search the output for deleted lines
# (begin with a [...]


Developing AIR apps for the desktop using the Flex 3 SDK for FREE

Posted by Mike on Jan 8th, 2010

One of the greatest things about Flex and Air is the low barrier to entry for us software geeks. There’s nothing stopping any non-flash software dev from writing some kickass desktop apps. There’s no reason you have to buy anything to start writing, testing, and distributing Adobe Air apps. You don’t need [...]


Next »