Archive for the 'programming' Category

html5lib rocks (and a patch to preserve attribute order)

I’ve been playing with the Python html5lib package — having come across it reading Sam Ruby’s blog. What a fantastically useful library!

Originally my interest in it was with the discussion surrounding santization, and I expect to use it for that later, but today I’ve been playing with some general parse/filter/serialize code to support some preprocessing […]

building MSI patch packages (.msp) with WiX

This post includes a complete and concrete example of building an MSI patch package (a .msp file to upgrade an existing .msi installation) with WiX.

Background

I’m responsible for building the ActivePython and Komodo installers at ActiveState. On Windows we build MSI packages for installation.

Currently I’m investigating auto-update support for Komodo 4.2. Because Komodo is based on […]

Komodo Planet and Yahoo Pipes

I played a bit with Yahoo’s new Pipes web app. At ActiveState we have a number of blogs where many of us write about what interesting things we are working on. A number of those posts are about Komodo. As well, with the recent 4.0 release, Komodo has started popping up on blogs more and […]

Komodo babies

Long time, no post. I’ve been working on Komodo 4.0 — which we finally released yesterday after over a year of work! Top that off with the recent announcement by the British Zoo of the virgin birth of 5 baby Komodo dragons! Perfect.

Komodo 4.0 adds JavaScript debugging (amongst a bunch of other features) and

the reptiles […]

Firefox and Thunderbird featurelets I want

I use Firefox and Thunderbird. (For the latter I recently switched from using mutt — the last luddite at work to finally switch to one of them new fangled GUI things for email.) Here are a couple fixes/featurelets that I want in them.

I set Firefox to open new URLs in a [...]

thirtyboxes.py 0.5.0: a much nicer interface than 0.1.0

I’ve put up a new thirtyboxes.py binding to the 30boxes web API:

http://trentm.com/projects/thirtyboxes/

For example:

import thirtyboxes tb = thirtyboxes.ThirtyBoxes() tb.finduser(1) {’avatar’: ‘http://static.flickr.com/25/9798863727ec96a24f_o.jpg’, ‘createDate’: datetime.date(2005, 9, 10), ‘firstName’: ‘Nick’, ‘id’: 1, …}

from datetime import date, timedelta today = date.today() tomorrow = today + timedelta(1) tb.events(start=today, end=tomorrow) {’events’: [{’allDayEvent’: False, ‘end’: datetime.datetime(2006, 3, 25, 22, 0), […]

thirtyboxes.py — a Python 30boxes.com API

30boxes.com is a nice web calendaring service, maligned somewhat by Joel Spolsky. I’ve been using Trumba for a while, but have now switched to 30boxes. So far I am pretty happy with the change. The “One Box” (any name for it would have been cheesy) is a great answer to the tedium of adding events […]

cygwin + NTFS permissions = badness

Cygwin is “a Linux-like environment for Windows.” Basically it provides all (or at least a large set) of the standard Linux command line tools for Windows. A lot of open source projects (e.g. Mozilla, for a big one) have based their Windows build systems on Cygwin because it simplifies the problems with trying to get […]