sdjournal


Michael Josephson's software development weblog

Friday, 23rd September 2005

The only metric in software development

The only metric in software development: Bill Gates on software development:
« There's only really one metric to me for future software development, which is -- do you write less code to get the same thing done? »
10:19PM (via rc3.org)

Saturday, 20th August 2005

Exhedra: a conferencing/forum application in Django

I've recently started some development on the Exhedra project (a conferencing/forum application) using Django. For anyone reading this post on SDJournal, the posts from this category are also syndicated on the Django Community page. Rather than clutter up that page with multiple posts about this project I've set up a separate weblog to cover it.
06:35PM in Django Exhedra

Monday, 25th July 2005

Django IRC logs to the rescue

The 2nd Django tutorial starts with getting the admin interface up and running by creating an initial user account and using the built in development web server. However, after following the instructions quite closely I was still getting Tried all URL patterns but didn't find a match for /admin when requesting the admin URL. A search of the IRC logs for #django revealed that for it to work the settings module must be set to .admin so if you're using myproject.settings.main for the working with the model in the first tutorial you'll need --settings=myproject.settings.admin.
10:12AM in Django

Sunday, 24th July 2005

Getting the Subway Noteboard example up and running

After taking a first look at Subway a few weeks ago I've been doing a bit more work with it today in terms of getting the NoteBoard example app up and running.

I already had some of the dependencies installed (Python 2.4, Cheetah 0.9.17, MySQL, mysqldb) so I needed:

and then it was just a case of getting the latest version of subway itself.

These all install using the familar python setup.py install approach. After that the example can be started up by going into the examples/noteboard directory and running python scripts/start_server.py.

The one thing that did catch me out at first is that some of the .html templates are saved with CRLF line endings and these needed to be converted before things would work correctly under Linux. (this is mentioned in this posting to subway-devel.) The symptoms for this were receiving a from site import site ImportError: cannot import name site when trying to request the root page for the app.
04:07PM in Python

Wednesday, 20th July 2005

Django Framework

Django is a Python web application framework. It's been developed and used over the past 2 years to run a number of online news sites such as lawrence.com and LJWorld.com. It has recently been made available under a BSD license and already a community is building around it. It seems to be focused on automating as much as possible and adhering to the DRY principle.

Looks like Adrian Holavity and Jacob Kaplan-Moss are the guys behind it.

Update: From the FAQ, the other Django developers are Simon Willison (whose weblog I've been reading for a long time) and Wilson Miner.
10:05PM in Django (via The WELL software conference)

Tuesday, 15th March 2005

WELL Blogs tweaks and feedparser upgrade

I've updated WELL Blogs to use the the latest version of feedparser. This newer version of the parser provides feed content in Unicode so I've updated the bot to encode things in UTF-8.

I've also made a few other enhancements to deal with variations in the flavours of RSS an Atom such as supporting summaries.
11:37PM in WELL Blogs

Monday, 7th March 2005

OnDemandAmazonList

Leonard Richardson recently emailed me a copy of OnDemandAmazonList, which can be used in conjection with PyAmazon to iterate over the results of an Amazon search as though it were a normal list.

Normally it's necessary to fetch the results from Amazon in batches by specifying a different value for the page parameter. Leonard's class abstracts this away by returning you results one at a time via the iterator's next() method which silently fetches the next lot of results from Amazon on demand as required.

This class can be downloaded from the Contributed Code section of the PyAmazon page.
12:31AM in Python pyamazon

Tuesday, 26th October 2004

Erik's Linkblog: Tuesday, October 26, 2004
02:40PM

Sunday, 17th October 2004

PyBloglines 0.02

This is just a minor update to PyBloglines which makes the BloglinesUnread count available in each subscription returned by listsubs. ZIP and .tar.gz versions are available on the project page.
10:45PM in PyBloglines

Thursday, 14th October 2004

Google Desktop

Google Desktop lets you search local documents, emails, IM chat history etc. via a browser based interface.
09:35PM

Thursday, 7th October 2004

Laszlo: Rich UI platform open sourced.
04:56PM (via Ablog: the Apress Weblog)

Tuesday, 5th October 2004

Open Workbench

Open Workbench: Open-source alternative to Microsoft Project.
11:10AM (via The Daily Grind)

Monday, 4th October 2004

Ruby on Rails

Rails:
« Rails is an open source web-application framework for Ruby. It ships with an answer for every letter in MVC: Action Pack for the Controller and View, Active Record for the Model.

Everything needed to build real-world applications in less lines of code than other frameworks spend setting up their XML configuration files. »

10:03AM in Ruby on Rails

Hello World in Firefox

Brian Duff has written a nice introduction to writing extensions for Firefox.
01:11PM

Bug Reporting Best Practices

Marie Hagman (A Visual Studio PM) has written Bug a very comprehensive post on what makes a good bug report.
04:19PM in Development Practices
Ralph Johnson: Ethics and open source
04:36PM

Friday, 1st October 2004

PyBloglines

I've put together an initial version of a Python module for accessing the Bloglines Web Services. Details and downloads are on the PyBloglines project page. You'll need a copy of Mark Pilgrim's Universal Feed Parser, which is used when you get items.

Usage is:

from pybloglines import BloglinesWebServices
# password is optional if you're only calling update() to check unread count
bws = BloglinesWebServices("user@example.org", "password")

To a count of the unread items for the user:

unreadCount = bws.update()

To get a list of subscriptions:

feeds = bws.listsubs()

This is returned as a list of Subscription objects where each entry has title, htmlUrl, type, xmlUrl, bloglinesSubId and bloglinesIgnore.

for feed in feeds:
    print feed.title

Get the items unread items for a feed, not marking them as read:

feedData = bws.getitems(bloglinesSubId)

What you get back is the result of passing the RSS returned by the BWS getitems call through feedparser so see the documentation for details on the structure.

07:11AM in PyBloglines Python

The Python Grimoire

Python Grimoire:
« The Python Grimoire explains how to perform common programming tasks in Python. It is a good place to go after you've read the Python Tutorial and have a reasonable grasp of the basics of the language. »
08:01AM in Python (via dive into mark b-links)