Experimenting with a pattern-matching technique for tab completion.
Adventures in simple markup, via Scala.
I've begun converting my Scala code to use Scala 2.8, and I have to say, it's great.
Some skeptic-oriented podcasts I like.
A (very) brief description of a production database gone awry.
I picked up a copy of Beginning Scala a week ago, and I'm finding it to be a useful complement to Programming in Scala.
Awhile ago, I embarked on an effort to build yet another build tool, this one in Scala. I shelved that effort, and I've switched to SBT, instead.
A spam "poem", consisting entirely of subject lines from my junk email folder.
How to get iTerm, on Mac OS X, to map Command-F (not Option-F) to bash's "forward-word", and similar tricks.
I've been using Python in a large-scale, high-throughput, high-availability network application. The JVM seems easier to scale than CPython, at least for what we're doing.
Primitive heat, but modern Internet access. Bizarre.
In nearly nine years of programming Java, it never really occurred to me to use it in an interpretive fashion. However, after programming Python for the last year, I don't know how I lived without a Java-based interpreter.
Mark Chadwick writes a cool and simple broadcast-UDP notification framework, and we find interesting uses for it at the office.
For some time now, this blog and its immediate predecessor did not accept comments. I've decided to accept comments again.
I installed Wireshark on my MacBook Pro via MacPorts, because the prebuilt Wireshark package didn't work on my machine, due to some dynamic library version conflict. However, I still wanted a Wireshark icon I could drop into my dock, to permit single-click launching of Wireshark. Long-time Mac enthusiasts no doubt could wrap a "naked" executable in their sleep, but doing so was a new exercise to me. This article describes what I did.
Google App Engine (GAE) is a useful platform on which to develop Python-based web applications. But a GAE application runs in a sandbox that prevents it from opening a socket, which makes the standard Python xmlrpclib module inoperable.
Fortunately, there's a simple solution to this problem.
The more I play with git, the more I like the idea of distributed source control. Here's one scenario where it just seems more ... natural.
I wrote blogging software that runs on Google App Engine (GAE); this blog is actually hosted at GAE. To increase performance, and reduce the number of "you're using too much CPU" errors, I added a two-level page cache to the blogging software. This article describes one way to add a page cache to a blogging engine.
As noted previously, I recently rehosted this blog on Google's App Engine (GAE). Writing a small, but functional, blog engine is a useful exercise in learning a web framework. I wrote blog software to learn more about Django, and I ported it to App Engine to learn more about App Engine.
In this article, I recreate the steps necessary to build a blogging engine that runs under GAE.
Over this weekend, I decided to rehost this blog on Google's App Engine by porting my blogging software to App Engine. It's a well-defined project that I can use to learn more about how App Engine works.
For nearly nine years, I worked almost exclusively in Java. For me, Java was a productivity enhancer, over C and C++, and I greatly enjoyed working in it. Lately, however, I've been programming in Python almost exclusively, and I'm having so much fun with it that I have little desire to go back to programming in Java. I've been mulling over why I find programming in Python to be so much more fun . In this article, I am going to capture and explore some of those thoughts.
My friend and colleague, J.J. Geewax, wrote an interesting blog article on serving a web site from an S3 bucket. Good stuff.
Some observations from running this blog under Django, on a VPS.
And my blog, such as it is, returns to life.
The definition of "Brizzled".
Solving a chicken-and-egg problem with sys.path and EasyInstall.
On guns and a certain type of gun nut.
Is my MacBook Pro's screen going completely wacky? Or is something else going on?
More on virtual sex in Second Life.
The peculiarities of virtual sex in Second Life, with an emphasis on the word "why?"
An especially stupid error message.
Why I have decided to disable comments on this blog.
Another rant on spam.
Barack Obama's voice sounds like ...
MacFUSE and SpotlightFS.
Stupid union tricks.
Yet another odd (okay, stupid) reaction to the avian flu threat.
WAPs, WEP, WPA, Windows, Linux, MacOS X--and now my head hurts.
Another example of how irrational fears make us stupid.
I'm intolerant of intolerance. Read on...
Does video surveillance really make us safer? (You can probably imagine my answer...)
Impeaching George W. Bush
Bill Gates says spam will be "solved" in two years. Is he right?
I bought a Wacom Graphire 4, and it's fantastic!
Happy birthday wishes for my late and much-missed father-in-law.
The high price of Santa photos.
I am a generalist. (Here's what I mean by that.)
The photofloods arrive.
A programming war story involving deadlocks and semaphores.
Disney lobomotizes a doll.