E-Scribe : a programmer’s blog

About Me

PBX I'm Paul Bissex. I build web applications using open source software, especially Django. Started my career doing graphic design for newspapers and magazines in the '90s. Then wrote tech commentary and reviews for Wired, Salon, Chicago Tribune, and others you never heard of. Then I built operations software at a photography school. Then I helped big media serve 40 million pages a day. Then I worked on a translation services API doing millions of dollars of business. Now I'm building the core platform of a global startup accelerator. Feel free to email me.


I co-wrote "Python Web Development with Django". It was the first book to cover the long-awaited Django 1.0. Published by Addison-Wesley and still in print!


Built using Django, served with gunicorn and nginx. The database is SQLite. Hosted on a FreeBSD VPS at Johncompanies.com. Comment-spam protection by Akismet.


Pile o'Tags

Stuff I Use

Bitbucket, Debian Linux, Django, Emacs, FreeBSD, Git, jQuery, LaunchBar, macOS, Markdown, Mercurial, Python, S3, SQLite, Sublime Text, xmonad

Spam Report

At least 237132 pieces of comment spam killed since 2008, mostly via Akismet.

Software, meet hardware

My friend Matt recently got a microcontroller kit as a present. It's pretty geek-tastic -- you wire up circuits on a little breadboard, write code on your PC, download the compiled code to the microcontroller, and run. At which point, depending on your skill and ambition, your LED blinks, your piezo buzzes, or your robot limbs and sensors do their thing. And your cat runs into the other room.

All very cool, but the language -- a BASIC dialect called PBASIC -- overwhelmed my delicate sensibilities. For example, take this bit of code (found on the web)...

x VAR Byte 
IF x=1 THEN lab1   ' test for case 1
 GOTO lab2         ' case 1 false, try case 2
lab1:              ' case 1 true, do this... 
 GOTO lab5         ' done with case 1, exit
IF x=2 THEN lab3   ' test for case 2 
  GOTO lab4        ' case 2 false, try next case
lab3:              ' case 2 true, do this...
  HIGH 1: LOW 0
  GOTO lab5        ' done with case 2, exit
lab4:              ' this is case else
  LOW 1: LOW 0     ' do this...
lab5:              ' point of exit

...how could you not want to rewrite it into something like this?

if x == 1: 
elif x == 2:

Maybe the fact that I was thinking about these things means I'm truly a software guy, and not a hardware guy. I'm sure that at my level (zero) it doesn't really matter what the high-level language is. But in order to really scare the cat, we're going to need something more powerful...

Monday, January 8th, 2007

Comments are closed for this post. But I welcome questions/comments via email or Twitter.