Present Perfect


Picture Gallery
Present Perfect

mach 0.9.6 ‘Carrot Cake’ released

Filed under: Fedora,mach,Releases — Thomas @ 19:22


I finally got off my ass and upgraded my home machine to Fedora 14 (from 11).

Only ran into two bugs so far, one seems to be something annoying in redland causing moap not to break... check later.

In the meantime, I updated mach for Fedora 12/13/14, because yes I still end up using it whenever I build packages. So here is a new service release.

mach allows you to set up clean roots from scratch for any distribution or distribution variation supported.

Get it from the mach project page.

I built packages for F12/13/14 available from my repository, and will start rebuilding some other packages (I did redland-bindings, but be warned, the F14 one version doesn't seem to work for me!)

Filed under: couchdb,Python,Releases,Twisted — Thomas @ 23:27


I've been working on Paisley some more recently, finishing a first stab
at a document mapping API.

As discussed with Christopher Lenz a long time, I basically took his
mapping code and applied it to Paisley.

In my personal project I also added a caching version of the CouchDB
object, but I'm not yet convinced it is the right approach, so it's not
in Paisley yet. One of the things I think I will need to do to make
that useful is to have it listen to change notifications, so it can
change cached objects when they change in couchdb, and implement
notifications for these changes so that a program can be informed of
them too and react accordingly.

In any case, I'd like to work towards a release, so feel free to take a
look at
the branch I've made
to implement this on, give any feedback or
do any code review, and let me know.

The National cleans up

Filed under: Music — Thomas @ 20:16


I am in Belgium this weekend for mostly one reason: The National were playing the AB, and it's probably the last time I will see them in a smaller-than-2000-people venue. I actually had tickets to see Arcade Fire in Barcelona this same evening - but since they were going to play a 10.000 people venue, I preferred to go see the National instead.

For some reason this year the band really broke through. The concert was sold out in a day, and I've been getting asked by a lot of friends if I had any spare tickets. "But you're always buying extra tickets for shows and you didn't for this one ?" Yes, well, how could I know that out of all the bands I like you'd pick this one to like too ?

The boards were filled with requests for tickets, outside of the venue the streets were full of people asking if anyone had any left. It was one of those concerts booked right before a band jumps to the next level, and played when they've made the jump.

But I digress. High Violet didn't grab me as much as Boxer did - although I don't know if it's because of the anticipation or because Boxer is actually better. I got lost in Boxer for two months straight.

When I saw them in London at the beginning of their tour they were just as good as any other time, but it was obvious the new songs weren't road-tested yet and didn't fit into the set that well yet. It wasn't for lack of trying - I remember Matt climbing off stage, into the audience, and then up the rafters of the Royal Albert Hall. They just didn't have the sound of the new songs down yet live.

This summer at Pukkelpop was good too, but a band like the National really needs a dark closed room.

I missed the Club 69 National concert of a few weeks ago - I have to admit I would have killed to have been there, but my life has changed now...

And then yesterday hit. Their sound was spot-on right from the beginning. This was the first show I've seen without Padma. His duties were mostly taken over either by the horn section (which was beautiful) or by Aaron or Bryce taking over keys. Matt was in great form, Aaron spoke French a lot and Matt interrupted him continuously. At one point Matt asked Aaron 'say something in French again, it sounds so cool' so Aaron thanked us in French, the audience cheered, and Matt said something like 'I don't know what you said, but you really brought it home.'

Really good set list too - finally got to hear Daughters of the SoHo Riots, which was beatiful live. They surprised me by throwing out Available/Cardinal Song from Sad Songs For Dirty Lovers. I would have gone with Slipping Husband (which I only recently learnt has a small snippet of 'Don't forget the alcohol, ooh baby' as a nod to Afghan Whigs' 'Milez iz Ded') myself, but hey, Sad Songs has a few gems on it and this was one of them.

Glad to hear About Today again, that song just hurts in all the right places. Right before K broke up with me I made a mix CD, and a live version of this song is on there, for the fantastic line of 'How close am I/to losing you?' Very, it turned out a few weeks later. A gentle wind of a song that picks up steam in the end and explodes into a gutwrenching whirlwind.

This must be the first National show I saw where they didn't play Abel. I'd gladly trade the excellent Mr November for Abel any day.

All the High Violet songs have evolved live, all for the better. Some new guitar lines in some of the songs, a better drum pattern, whatever they did, it worked. My personal favorite, Conversation 16, sounded excellent. Matt's intro was hilarious - he said something like 'This song is about cannibalism. Most of the lyrics were written by my wife. When she was in college she ate people. I'm cool with it. It's good she's not here today.'

Fake Empire was beautiful with the horns. Aaron played both the waltz and 4/4 bits with both hands, I have no idea how a human being can keep up two different rhythms like that, and it looked awesome.

They ended with an acoustic version (no mikes!) of Vanderlylle Cry Baby, probably my least favourite song on the album, but it worked very well like this, and the audience sang along the whole song.

Last week in Barcelona I went to see Greg Dulli in a 250 people club and got to talking to their webdesigner, who asked me what else I was going to see soon. When I mentioned the National, he said 'Oh, they're great, they played here, once for 25 people and once for 60 people'. Jesus Christ - I wish I'd been there.

I'll probably next see them in May 2011 when they play Primavera festival in Barcelona.

If you get a chance to go see the National live, make sure you do - they are at the top of their game right now. I'd love to hear more Alligator or even some more stray first two album tracks, but my mistake for missing out for so long.

Overy 0.1

Filed under: Hacking,morituri,Music — Thomas @ 23:41


I' m finally making some progress on one of my 2010 goals - making a Lego robot that can take CD's and feed them to my computer to rip.

What am I trying to do ?

I'm making a computer-controlled robot out of LEGO that will allow me to rip multiple cd's onto my computer, using morituri.

The goal is:

  • to use Lego Mindstorms for the robot
  • only use regular lego pieces, like Technics, for everything else
  • work with my computer, but preferably with any
  • rip 50 cd's or more in batch

I've been asked a few times why I'm doing this. The main reason is because by now I own over a thousand CD's. I have most of them ripped by hand to Ogg Vorbis, but disks are big enough these days that I really want to rerip all of them just once to FLAC. I've spent quite some time writing an accurate CD ripper for Linux, and I want to have all my audio CD's in correct digital bytes on a computer, so I can use the files to transcode to whatever format is useful for whatever player I'll have.

This probably sounds strange, but a while ago I got to wondering what I would not like getting stolen from my apartment, and my CD's are pretty high on that list, if not number 1.

Some people ask 'why not just do it by hand? You'll probably get it done just as fast as it would take you to make the robot.' I guess people who ask that question don't understand the joy of making something. But there's another reason to do a robot - I'm planning to offer my friends a remote digital backup of their music. Ideally, I could drop this robot off at a friend's house with a Live CD and some instructions, and I would then transcode their music for their iPod or whatever they have. And keep an offline copy at my place purely for archival reasons, of course.

In any case, I am working on my first attempt at robot after building two of the sample ones from mindstorms.

The base mindstorms set is a bit limited piecewise, so I started by getting a really big Technics set that has sawtooth pieces (because that's the mechanism I wanted to try to use for the CD loader)

After looking at a few other approaches out there, I decided I wanted to try one of my own before trying to reproduce someone else's.

After lots of thinking and discussing with some friends, the following ideas fell into place:

  • If I want 50 cd's at once, grabbing one is going to be a problem. After considering pneumatic pumps, arms, some fingers going through the middle and opening, or a wheel at the top of a stack, I went for a simple approach using the sawtooth pieces to space the cd's, and a little axle going through the middle
  • Peter had a great idea to use a USB drive - this way the robot is self-contained and should work anywhere with any computer
  • I wanted to use the CD drive itself as much as possible, so I came up with the idea of rotating the CD drive, so that I can drop ripped CD's by ejecting the CD when it's 180 degrees rotated. I also want to insert the CD when the drive is either at 90 degrees (facing down) or some other angle, before loading it.
  • Mindstorms has 3 motors, so you can roughly (without weird tricks) create three kinds of movements. So I'm using one to pull in the CD rack, one to rotate the first CD 180 degrees into the drive, and one to rotate the drive after ripping.

Here's the CD loader I made; it doesn' t fit 100% but rubber bands finish the job for now. I'll need more sawtooth pieces if I want to load 50 cd's - anyone know where to get some ? The LEGO site doesn't sell those pieces individually.
This was with 2 motors but without CD drive; it already has the mechanism to pull in the CD rack, and the axle (with wheel rim) to pick up the first CD in the rack. It's mounted on a touch sensor so I can stop pulling in the rack when the rim hits a CD. The motor will then rotate the disc 180 degrees around the axle of the sensor, and drop it into the CD drive.
This is the first complete build that I finished tonight. The CD tray is mounted and opened so you can see where the CD is supposed to go. After loading, the CD drive would rotate back to horizontal, then eject the CD the other way around to get rid of it.

I thought I was ready to start trying it for real, but when I went through the process by hand, I noticed two pretty fundamental problems...

First of all, the external drive I used is one of those where you have to firmly press down on the CD so that it fits tight around the round bit in the center. My robot cannot press down. It would be very wobbly anyway because at the point where it hits the tray the CD reader is floating at an angle.

Second, it seems this external USB CD reader has no way of triggering a load electronically, something I had not thought of. It turns out most external drives don't, and again, my robot cannot press on the tray to close it.

So, I guess tomorrow I'll try to shop around for external USB CD readers that can eject and load electronically, and that have a normal tray in which I can drop the discs, like my desktop PC's have.

Backup plans are:

  • Getting one of those hoover CD readers, that suck in and spit out CD's. There again I don't know if you can spit out electronically.
  • Getting one of those 3.5 inch carcasses and put in an internal CD drive. That will probably make it really heavy though, so that might give stability problems with the robot.

If any of you out there know about an external USB CD reader that has computer-driven eject and load, please let me know! For example, this LaCie Lightscribe drive looks like it might be one that would work - if you have it, let me know.

Dropbox, I love you, but …

Filed under: General — Thomas @ 11:56


[thomas@otto ~]$ dropbox stop
Dropbox isn't running!
[thomas@otto ~]$ dropbox start
Dropbox is already running!

Seriously, if you shout harder either statement might jump out of quantum space and correct itself into reality.