E-Scribe : a programmer’s blog

About Me

PBX I'm Paul Bissex. I build web applications using open source software, especially Django. Backstory: In the 1990s I did graphic design for newspapers and magazines. Then I wrote technology commentary and reviews for Wired, Salon.com, Chicago Tribune, and lots of little places you've never heard of. Then I taught photographers how to create good websites. I co-wrote a book (see below) along the way. Current story: I am helping turn a giant media corporation into a digital enterprise. Feel free to email me.


I'm co-author of "Python Web Development with Django", an excellent guide to my favorite web framework. Published by Addison-Wesley, it is available from Amazon and your favorite technical bookstore as well.


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, Django, Emacs, FreeBSD, Git, jQuery, LaunchBar, Markdown, Mercurial, OS X, Python, Review Board, S3, SQLite, Sublime Text, Ubuntu Linux

Spam Report

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

The good old TRS-80 Model III

TRS-80 Model III I've been reflecting recently on my twisty path from being a kid with a computer to being a grown-up who is (apparently) a bona fide software engineer.

My first computer was a TRS-80 Model III. It had a 1MHz 8-bit Z-80 CPU, 64KB of RAM, and two 5.25" floppy disk drives (after upgrades).

I used it to play games, write papers, and learn how to write software (mostly in BASIC, though I eventually learned Z-80 assembly language. I even got a Pascal compiler from somewhere but I barely knew what to do with it).

Some notable differences from the young person's computing experience of today:

Thursday, August 20th, 2015

Does Python scale?

(This is another thing I found myself writing on Quora and wanted to keep. The question was "Does Python have any scalability limitations?")

"Scalability" is a term people like to throw around, but the less specific you are as to what you mean by it, the less substantial the answers will be. It is not a simple linear measure on which languages can be given some numerical score.

Languages and their implementations do have certain inherent performance characteristics, but in order to understand their relevance to your needs you have to get specific about your needs.

You will always be able to find stories where people used technology X and found it "didn't scale". Sometimes this is because they didn't know, or chose not to pursue, certain performance optimizations. Sometimes this is because technology X was a poor fit for their problem.

(If you're into programming language esoterica, the technical feature of Python that gets the most attention in performance discussions is the Global Interpreter Lock.)

If it suits your project, use it. There's not some hidden performance ceiling that's going to suddenly appear and crush you. The Python system I work on serves 20+ million pages per day.

Friday, July 31st, 2015
+ +

What makes a good developer?

(Somebody on Quora asked about "traits that the best programmers seem to have". Here's what I said.)

Breadth of understanding. They are not dogmatic. They have used (at least in passing) more than one language, framework, operating system -- and understand the strong points of each.

Communication skills. They can explain their decisions. They can write code reviews. They can discuss their code.

Understanding that engineering is about tradeoffs. There is never an absolute "best" answer; there are always many choices each with their own sets of pros and cons.

Pragmatism. They focus on delivering functionality and have a suspicion of "clever" code.

Understanding that most of our work is maintenance. They write code to be read, and they aren't afraid to refactor when it will make code easier to work with.

Monday, July 27th, 2015

Linux switch: update

Last summer I switched from OS X to Ubuntu for my day-to-day work. It's gone well. Here's a condensed rundown of some of the things I've noticed.

Things I miss when using OS X:

Things I miss when using Linux:

Cross-platform bright spots:

Monday, July 13th, 2015
+ +

dpaste.com spot check

Once in a while I look at a sampling of recent dpaste activity. Partly I do it so I'm not totally out of touch with what my site contains. Partly I do it because it's just interesting.

And I do it to confirm that the site is actually used by people who want to share code snippets, not just spambots who fire their cannons into every porthole.

I just sampled 10 random items from the last week. Happily, no spam. Here's what I saw:

  1. An XML schema (mistakenly set to use the Scheme syntax; it actually almost works)
  2. Some CSS
  3. A pygments "Hello, world"
  4. HTML source for a Ruby cheat-sheet
  5. Some traceroute output
  6. A hunk of /var/log/dmesg
  7. An XML schema (this time using XML syntax; looks better)
  8. An annotated list of links
  9. Transcript of a short bash session
  10. What looks like a list of every file path on someone's system containing "Google" or "google"

What great variety! I love seeing what people use the site for. Especially when it's not spam.

Saturday, December 20th, 2014
+ + +