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 233532 pieces of comment spam killed since 2008, mostly via Akismet.

Baby steps with Ajax

I've tiptoed into the Web 2.0 world by adding a couple small Ajax features to the blog.

First, there's now a "More" link at the top of my Random Bookmarks sidebar which fetches another seven random links from the server and plugs them into the page without reloading.

Second, I added a gratuitous animated roll-unroll toggle to the comment form, and made it closed by default. OK, that's not Ajax, that's just fluff.

I used the moo.fx and moo.ajax libraries to achieve these wondrous results.

I can see the user interface dilemmas multiplying before my eyes. As an experiment I've labeled the Ajaxy controls with a black diamond (◆). Snowsport connotations intentional --fast and fun but a little more dangerous.

I can also see how this would drive one to structure web apps as loosely coupled sets of web services which can be called either by a page rendering script on the server (assembling the various components for initial load) or by an Ajax call from the client (discretely updating individual components).

Very cool. Lots to think about.

Monday, February 27th, 2006
+ + +

Comment from suzanne , later that day

so lovely! i'm very much liking the gracefulness and sense of dynamic that AJAX is adding to pages. very subtle and yet effective.

Comment from miguev , 6 weeks later

Nice feature, but it makes Firefox to put CPU at 100% for at least 3 seconds. Expensive, isn't it?

Comment from Paul , 6 weeks later

Hm. What Firefox version and platform? It certainly doesn't do that for me (FF 1.5, OS X).

Comment from miguev , 6 weeks later

Mozilla/5.0 (X11; U; Linux i686; es-ES; rv: Gecko/20060324 Ubuntu/dapper Firefox/

BTW, aKregator (embedded Konqueror) takes high CPU for a moment, but mush less than Firefox. I'll use aKregator in the future :-)

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