Present Perfect


Picture Gallery
Present Perfect

Twisted training

Filed under: Flumotion,Hacking,Twisted — Thomas @ 11:58


Today is an exciting day at the office!

Jean-Paul Calderone (exarkun from Twisted arrived in our office this morning to give our development team an in-depth training on Twisted.

For now, the schedule is two days of Twisted training, one day of code sprinting on Twisted, and two days of consulting on our platform and various issues and projects we have.

For us it's exciting to get a training from one of the top hackers in Twisted, and I hope it is exciting for him to see a commercially successful use of the project he worked on.

But mainly I'm looking forward to a bunch of days of high-level technology talk.

Time to get started!

paisley: CouchDB for Twisted

Filed under: couchdb,Hacking,Python,Twisted — Thomas @ 20:17


Now that I want to write a Maemo UI for my GTD application, I need to address the fact that python-couchdb is written using a blocking model.

On Launchpad, I found Paisley a while ago - a CouchDB client library using Twisted. Seemed functional enough, but I was using the 'schema' stuff from python-couchdb which allows you to define a class with typed properties and map CouchDB documents onto them, and Paisley didn't seem to have any of that. In fact, Paisley seemed to have about 10 commits to it, all done over a year ago.

I had two possible approaches. One was to just use python-couchdb together with threads. It's a typical solution to this problem, and one that is an evolutionary dead-end as far as I'm concerned. However, it would have allowed me to focus on the UI today instead.

The other approach was to see how to map python-couchdb concepts onto paisley.

(I actually considered a third approach - using Rodrigo's couchdb-glib library - except that it seems to also be blocking at this point, so I'd have to fix that, and make python bindings or figure out introspection stuff. So I dropped that idea.)

So, after some IRC discussion between me and cmlenz (author of python-couchdb) and dreid (author of paisley), and both of them thinking that it makes sense to merge some of the schema stuff into Paisley, I started to do just that in this branch.

After some plumbing, I was able to re-use my Thing class that was defined against python-couchdb's schema.Document with Paisley. Success!

Three snippets of IRC conversation (that I hope the authors are fine with me sharing):

from private chat:

cmlenz: and if you port, please rename s/schema/mapping or something like that :)
cmlenz: schema was a horrible name choice for what it does
homeasvs: ok, will keep that in mind

from #twisted:

dreid: homeasvs: Thank you for volunteering.
homeasvs: dreid, no problem
homeasvs: dreid, I was discussing with cmlenz who did python-couchdb and he suggested I take some of his document modeling stuff and graft it onto paisley
dreid: homeasvs: No, I mean volunteering to maintain paisley.
homeasvs: dreid, heh :)
homeasvs: dreid, I might be persuaded if this works out
dreid: I'm afraid you don't understand how this works.
dreid: You volunteered.
dreid: If you don't want to do it, you have to fight a bear.
dreid: ;)
homeasvs: I thought the last touched rule only applied to the master branch :)
dreid: That's not what this is.

from #couchdb:

dreid: homeasvs < - FYI this guy has volunteered to maintain paisley.

These are the days I like how open source works. I am ending the day with two more projects than I started it with.

That reminds me, I should apply dreid's approach to one of my projects and figure out how to give someone commit access...

Back to Buildbot

Filed under: buildbot,Python,Twisted — Thomas @ 16:27


Recently I've been looking at Buildbot again. It's been a while, bu it's nice to poke at it again. There's various things I want to do (like maybe finally finish my IRC praise/blame patch ?), but for starters I wanted to get some buildbots set up for pychecker, moap and morituri.

So that involved finding my old buildbot hacking notes so I can jumpstart a little better. And I started thinking about documentation.

I've always felt I'd like to write more documentation because it's a critical piece of success for a project. But at the same time, there's a simple problem when I want to write documentation: you need the mindset of a beginner to write good documentation. So it becomes a chicken-and-egg problem: in the beginning you don't know the project well enough to write the documentation; and as soon as you learn more about the project, you lose the capacity to ask the right questions the documentation needs to answer.

It is a special kind of skill to get into that mindset and be able to write from that perspective of a beginner. I don't think I have it.

But today I realized that I am now in the perfect situation when it comes to Buildbot. I know enough of how buildbot works conceptually from the past when I hacked on it, but it's been changed enough and I've forgotten enough that I actually need to go through the motions again to get my knowledge back. So, from a user point of view, I'm back to being a newbie.

So, I decided I'd take advantage of the situation and write some tutorials on how to use Buildbot. I've got two sections written up now and I'm ready to have people give me feedback.
The first tutorial focuses on the quickest 'this works' experience you can have, without touching the default configuration at all.
The second tutorial gives a quick tour of some of the features of buildbot by customizing the configuration, but without writing any code.

I plan to write further chunks that show how to set up a real build master for a project and integrate with the change notification, how to set up depending builds, and how to do some actual coding for specific build steps.

If you have some spare time and you're interested in continuous integration, you could do worse than provide me some feedback on these tutorials.


Filed under: Flumotion,Python,Releases,Twisted — Thomas @ 19:10


Today the team released another development version of Flumotion! Strangely enough I still made it to the contributors list. Maybe I should look up what I am guilty of.

Here's what the guys say:

Yet another step in the long march towards a stable release. We made
sure we close more bugs than we create, hence the scarce features and
numerous fixes.

The bulk of the improvements is centered around the administration
interface. The configuration assistant gained in functionality,
stability and consistency.

More information here

Not sure why the guys decided to break with tradition and name this release after a restaurant (they probably assume it doubles as a bar). According to Flumotion tradition, micro releases are named after bars where we celebrate the release, and major/minor releases are named after the restaurants where we celebrate the release.


Filed under: TV,Twisted — Thomas @ 23:06


Two weeks ago for some reason I didn't even know that Joss Whedon had a new TV series out.

I just finished watching Dollhouse, Episode 6 just now. It was all kinds of awesome. I have purposefully not read too much about the series because it seems Joss is getting a lot of backlash. And now I'm looking for reviews of episode 6 and it seems this is the episode where Joss really puts things into motion.

Well, it certainly clicked with me. The first 5 episodes are slow buildups, introducing new elements all over the places, and having little of the trademark JW dialogue but enough of the trademark JW setups and subtle hints. And then bam - 6 delivers in spades.

Well ... I'm ...
sure I'm in need of some serious moral spankitude, but ...
uhm... guess who's not qualified to be a rabbi.

Man, I love the internet. Thanks for letting me know through Planet Twisted, Itamar!

« Previous PageNext Page »