Upfront software project estimates
The Pragmatic Programmer sums up the problem with upfront estimating about as succinctly as possible:
Initially, you may have only a vague idea of how may iterations will be required, or how long they may be. Some methods require you to nail this down as part of the initital plan, but for all but the most trivial of projects this is a mistake. …
Jaron Lanier’s “You Are Not a Gadget”
The weaknesses of Jaron Lanier’s “You Are Not a Gadget” are readily apparent and well summarized by Evgeny Morozov, and don’t need to be recounted here. Suffice it to say the book is comprised largely of improvised riffs on the social impact of information technology that sometimes seem more worthy of Lanier’s musician alter ego than of a book subtitled “A Manifesto.” There is, however, much here worthy of attention, and I’d like to summarize and respond to a few of the book’s central themes.
RESTful Web apps with Django, Piston and Ext JS
Piston appears to have emerged as the preferred method for giving your Django applications a RESTful API. While there are any number interesting things you might want to want to do with such an API, this post is about using it to give your Django app an attractive, Ajax-y, Ext JS interface.
A few reflections on “Dreaming in Code”
Some years ago I became aware of a software project called Chandler, a personal information manager/calendar/email client being developed by something called the Open Source Applications Foundation, which was started by by Mitch Kapor of Lotus fame. It appeared on my radar for two reasons. First, it seemed an unusually ambitious effort to [...]
Plone i18n: a brief tutorial
The following tutorial details the steps I took to internationalize (starting with a Spanish translation) the interface of Plone Translation Hub, a Plone Archetypes-based product.
Contents
Basic Plone i18n with i18ndude
Advanced Plone i18n
Translating workflow states and transitions
Accessing the Plone translation machinery directly
Resources
Basic Plone i18n with i18ndude
First, processing your UML model via ArchGenXML (assuming you have i18ndude installed) [...]
Open Source i18n
Not so long ago I found myself in the rather embarrassing position of having authored a translation collaboration tool for use by an international user base without having implemented the platform’s (Plone) internationalization (i18n) facilities. That is, I gave the application an English interface and left it at that. Furthermore I began to [...]
Updating Plone user roles programatically
Today for a site using Plone Translation Hub I had to programatically update the roles for all users who had logged in since March 9th, given that this group was known to be responsible enough to be worthy of the "Reviewer" role. One of the site managers asked that I simply run a "SQL [...]
reStructuredText tools for gedit
Over the last couple of days, I put together some reStructuredText tools for gedit, the lightweight text editor for the Gnome desktop on Linux. They include syntax highlighting, some keyboard shortcuts, and an HTML preview feature that I derived from another developer’s earlier work on Markdown support.
This was made possible by gedit’s excellent plugin [...]
Gnapsack 0.2 released
Version 0.2 of my client for the Backpack Web Services API, Gnapsack, was released today, and now has a new home. The two main enhancements are Windows compatibility and ability to handle multiple lists.
Agile tools in Ruby and Python
I spent a few months at the end of last year working on a Ruby on Rails project. While I constantly found myself longing for Python, I did appreciate the extent to which RoR carried certain best practices–among them an MVC architecture and Test-Driven Development–to an extreme, baking them into the framework.
The following table [...]