Programming languages I have known

Gearing up for some programming-language-related posts, I’ve been thinking about the languages I’ve been exposed to over the years (those years being, specifically, 1981 to 2006).

To the best of my memory, everything I’ve ever written more than “Hello World” in is listed below. Languages that are italic I’ve written useful, if sometimes small, programs in. Languages that are bold are languages I’ve been paid to code in – though that includes things like selling shareware games as a teenager!

Well blogs

I’ve recently moved the Wellblogs aggregator to my server from its former home. It’s a simple “planet” style presentation that shows the last week’s worth of posts across a few dozen blogs written by members of The Well.

The software is a Python engine written by Michael Josephson, and I’ve been very impressed with it so far. It’s based on Mark Pilgrim’s Universal Feed Parser, a MySQL data store, Cheetah templates, and some extra bits to gracefully handle the inevitable connection failures involved when fetching dozens of disparate feeds every hour. Getting everything working was a breeze, and as someone doing more web development in Python lately I’m finding the code interesting reading. Hopefully the blogs are too!

The dawn of OS X malware

The dawn of OS X malware

sign It’s been almost five years since the release of OS X 10.0.0, and along the way there’s been very little to worry about in the way of malware. That changed last week with the announcement of a trojan that propagates via iChat in a semi-automated way, then a Java worm that attempts to disseminate itself via Bluetooth.

Both of these are relatively innocuous, but there’s not much standing in the way of copycat efforts with more dangerous payloads.

Linux will eat itself

When I came across Distro of the Month I started thinking that maybe there’s a problem with the number of Linux distributions.

Distrowatch.com tracks approximately 372 different Linux distributions. At one per month, it would take 31 years to make it through the list – assuming that no new distributions arrive during that time, which I’m afraid is wishful thinking.

Distrowatch’s How Independent Is Your Distribution page boils the numbers down some – 129 of those 372 are based on Debian, for instance. Even so, you’ve got four or five years of work ahead of you there if you just want to sample the major families plus independent distributions like Puppy Linux.

Django development tips

Working on a couple Django projects in tandem has me tuning my approach to using the built-in development server. I thought I’d share some of the techniques I’m using.

Here are the commands I’m going to talk about. If you understand it all from these lines, you’re done!

screen -S projectname
./manage.py runserver |& tee -a logs/devserver.log
^A ^D
tail -f logs/devserver.log
screen -r projectname
screen -list

Using screen

screen -S projectname

The GNU screen command is incredibly useful for all kinds of things, including longish-running processes that need to be checked and tweaked and stopped and started – like your Django development server. (Read more about screen if this is new to you.)