An Idea for More Memorable Identicons

Identicons are those odd graphics you see next to peoples' names in comments.

Comparison Shopping for Toilet Paper, in multiple computer languages.

It's hard to concentrate when you're tired and cranky, so I wasted some time writing a simple calculator in several different languages.

MS Outlook: Dumping MIME EML Email Files for Spamassassin Training

Here's a VBA script that I'm using to train Spamassassin from Outlook. It saves out email messages to a file server where messages are used to train the filter. The problem here is that Outlook doesn't save EML (MIME format) files. You can save messages as text, but lately, spammers have been loading messages with a lot of chaff text that looks like regular email. You can't train with that, because it might cause the filter to start mis-identifying legit email as spam.

Hauppage WinTV-1600 on Linux

I bought this several months back, and finally installed it on the Linux box. It works, sort of. ATSC (HDTV terrestrial broadcast) works fine. FM Radio does not. More info:

MS Outlook: Mass Email VBA Script

This is an outline I'm going to use to fix up a mass email script for Outlook that I'm working on. It was kinda elegant and explains how to do some cooperative multitasking with Visual Basic for Applications.

As you might imagine, there are a lot of mass email tools for Outlook. See Mass Mail Tools for Outlook, but this first version had some special needs (it was a huge list), and the second one I'd like to give to others, so a simplified, stripped down tool is best.

MS Access: Comparing Queries Between Two Databases (a query diff)

Often, when you have MS Access in a small office, and have done the right thing and split the database into a backend of tables and frontend of queries, reports, and forms, you end up with changes to the objects in multiple files. The trickiest is comparing queries, because the query object is modified if even a column width is changed. You need to dig deeper and compare queries.

Heuristics are Nice : (working toward) Facebook-style Previews

I was thinking about how facebook updates parse out the url, then construct a nice looking preview. I think what it takes is scanning the textarea for a url, and then using ajax to tell the server to fetch a summary of the page at the url. get the data back, and insert it into a template, and reveal it.

PNG Colors are Wrong in Firefox (and how to deal with non-sRGB wide gamut monitors at work)

I created a PNG that was bright red, but in Firefox, it is a duller red. The fix was to remove the color profile from the PNG by using the tool TweakPNG.

Haskell Name Game

Main> nameGame "alonzo"
"alonzo, alonzo bo blonzo bonana fanna fo flonzo fee fy mo mlonzo, alonzo"
Main> nameGame "haskell"
"haskell, haskell bo baskell bonana fanna fo faskell fee fy mo maskell, haskell"
LOLz. Here's some real beginner-level source code for a version of the "Name Game". The Name Game was a song from way back. It's silly.
Sources after the jump.

Formatting Mobile HTML Email

While writing a template for spam, I learned the following about mobile email formatting.

Make Meme/LOLCats Text with the GIMP

This tutorial explains how to make the "LOLCats" or "Meme" font so popular with the kids today.

Haskell Learning Notes

A couple years ago I tried to learn Haskell and dropped the study. I'm not sure what happened, but it's really hard to find a solid block of time to study it.

Strike Network Postmortem

The article was originally written on November 2, 2011. The application was written during August and September of 2011.

Strike Network started as a mobile site similar to 4square. After realizing that the audience was tiny and without an app there was no lock in (and with an app, there's a barrier to entry too), decided to try making a facebook app.

Chant Down Babylon! Character Set Conversion from Latin-1 ISO-8859-1 cp1252 to UTF-8

I swiped this code from

Character set conversion is one of those things I've avoided over the years. Just use UTF-8 from the start. But IMC has thousands of articles stored as a BLOB datatype, so that it's text in various character sets. The software in front of the data was using ISO-8859-1, but PHP wasn't really mangling the data -- it just passed the binary through unchanged, until I installed the mbstring extension (or more accurately, it was baked into PHP). That caused some problems, and it snowballed into converting everything to UTF-8.

Syndicate content