[lang]

Present Perfect

Personal
Projects
Packages
Patches
Presents
Linux

Picture Gallery
Present Perfect

Chimney

Filed under: Life — Thomas @ 10:09

2008-11-28
10:09

Two Black Petes just left after cleaning my chimney. Ok, cleaning's a big word - the chimney in our apartment was probably never ever used to begin with. But at least now it's safe.

Boy, do I long for a cold winter night with a fire in the fireplace now!

Autumn Winter

Filed under: Belgium,Life — Thomas @ 17:42

2008-11-23
17:42

Amazingly, it's been snowing pretty much all day long. I hope I will actually be able to get a bus to the airport in an hour!

I know have my own garden full of snow. Ownership can be a wonderful thing.

Yesterday's Death Cab For Cutie's concert was mostly ruined by an invasion of American girls at the front. Either the current song was a favourite of one of them, causing them to yell incessantly about how the song was their favourite, or it wasn't a favourite of any of them, in which case they yelled incessantly about other things.

In any case, Ben Gibbard mentioned to the audience how he felt that the day before he had passed another milestone on the way to adulthood when he opened the door and thought 'Oh no. Snow.' While before he would have thought, 'Yay, snow.' And he felt a little sad.

I could only feel happy knowing that the day before my first reaction had been indeed 'Yay, snow!'

Trot out the boards please.

half week

Filed under: Belgium,Life,Music,Spain — Thomas @ 00:13

2008-11-18
00:13

I don't often have the opportunity anymore to spend part of the weekend in Barcelona, which I miss, so when Kristien told me she was going to be busy receiving a really old Spanish guy and his boat in Antwerp on TV this Saturday, I decided I was going to spend my Friday night and Saturday in Barcelona.

A good decision! Thursday I went with Mariette and Sofie to go see Vicky Cristina Barcelona. Contrary to what I've been led to believe, the film is excellent and tells a wonderful story about love by putting caricatures of people into a situational movie. It's clear the story worked very well as a lesson in love because I got drawn to a different message that was in the movie than some of my friends were, just going to show that a good story is multifaceted and resonates with a different one for different people. I also ran into Carl at the theatre who had gone to see Bye Bye Belgium - apparently they show the mockumentary here in Spain!

Friday night was spent hanging out in one of the Usual Suspect bars after work, then going out with Carl to one of his friend's birthday drinks. Didn't go to bed before 4:30, which is how a Friday night in Barcelona should be spent.

Saturday was a lovely day, 18 degrees C and sunny all day long. I spent it walking through the city, going to La Botifarreria to get some excellent sausages for a Sunday lunch in Belgium, seeing all the apartments for sale (surely this is a sign the prices are going to go down), and strolling through Parc de la Ciutadella. On the plane in the evening, to arrive home at midnight and crash into bed, exhausted.

Sunday lunch was spent with An, Mike, and my god son Arthur. I made home-made fries and mayonaise to go with the sausages. Sausages were a mix of apple/curry, spinach/pine nuts, foie gras, fig/mushroom, roquefort, sweet, and chocolate. It took Arthur a while to warm up to the idea of 'sausages with specks', as he calls it, but the fries definitely helped.

He kept making me build Lego houses so he could knock them down. I confused his young mind by saying that from now on, he was only allowed to knock over and break apart each house only once. Not realizing that there was no difference, he got angry and proclaimed that I was the worst person to play with. He quickly got over it though after we jointly invented the shove hug (push and hug until the other falls over)

We ended the evening by going to see Sigur Ros at Vorst Nationaal. We arrived as they closed off the main floor and instructed us to go to the highest seats, which sucks. But I managed to sneak us past the barriers and onto an only half filled floor anyway. We had a great view a good 15 rows from the front.

The opening band was called 'For a minor Reflection', also from Iceland, and though the name sounds off, they were really good. I ended up getting their album and listening to it all the way back to Spain - although you'd be hard-pressed to hear the difference between this and an Explosions In The Sky album. I guess that's a downside of having no singing in your music - while I scoff at people who can't hear the difference between Interpol and Editors, or Radiohead and Coldplay based on the voice alone, I would definitely have mistaken these guys for 'is there a new EITS album ?'

Sigur Ros was good, picking from their darker works compared to the festival sets. For whatever reason I didn't enjoy it as much as the two summer gigs - the sound's never very good at Vorst Nationaal, and I was probably too tired. But the closer, song 8 off of (), was perfect.

All in all, a damn fine couple of days. I should plan to stay in Barcelona for the weekend more often.

Firefox delicious extension and favicons, and long workflow rambling

Filed under: friction,Hacking,Life — Thomas @ 13:13

2008-11-08
13:13

The short version is 'I can finally live with the favicons in my delicious extension thanks to a script I wrote and after upgrading to beta 2.1.005.

The long version is, well, longer.

This morning's yak shave story begins a bit over 5 years ago. That was the time when I was inbetween jobs, and already had my laptop for the new job, which was going to evolve into being 'employee number 1 at Fluendo'. I had decided I wanted to try the 'living life from only one computer' approach to working and hacking. Some people do this instinctively, some people don't choose and end up with crap on all their machines, but me, I like inventing processes where there is no need to and sticking to it.

So, for a long time, I mostly worked only from my laptop, and this served me fine in a lot of cases. My main motivations were 'I want to be able to work anywhere I am' and 'If I'm used to a laptop I will always be able to be productive'. The first proved very useful whenever I was travelling, and the second is what made me not want or need a second screen at work when all developers around me were making it a political point.

The biggest problem, however, is that often the work you do really does need the higher CPU, the more RAM, or the bigger disk that your average desktop easily has over your laptop as soon as your laptop becomes a year old. Also, your laptop wears out a lot faster if you have it running all the time. So, at some point, after knowing for sure that I am able to work constructively on my laptop, I decided that I should also make it possible to work from a home desktop and a work desktop.

Make no mistake, to me this is an incredible paradigm shift. While on its own there is no real problem to habitually work on three computers, to someone like me it is incredibly annoying to have my flow broken by various small details that made up my previous 'work environment' on my laptop that I have not yet successfully migrated to the other machines. If you have only one machine, adapting it to your workflow continuously is easy. If you have three, you constantly bump into the things you forgot to synchronize across all three at the moment where you least want it.

From day 1 the plan was thus to make sure that everything that is important to me would be synchronized across all three machines as often as I needed it. Additionally, I would make sure not to start using any new tools that weren't able to work this way, and move my current set of applications in a direction where they would be easy to sync. It would also be important to make sure I can work offline as much as possible - I spend time in travel and on planes that I want to put to good use.

So, over the years, I've:
- created an svn repository for all my private notes, documents, tests, and code
- created a public svn repository for the same stuff that can be public
- picked a Getting Things Done application called yagtdthat uses a text backend so that I can put the data in subversion to keep it synced across all machines but still work offline
- tried to move my contacts to an LDAP server so that Evolution can use it (which I still consider a 'fail' because Evolution's LDAP backend is still crashy, hangy, and practically unusable for everyday use)
- moved my calendar to various Google Calendars (up to having a public calendar called 'Where is Thomas' so friends and collagues know what country to expect me in)
- actually paid for an application on my phone - the wonderful GooSync Zaheer recommended me which allows me to synchronize all my Google calendars to my phone, in two directions
- moved all of my bookmarks to Delicious for obvious reasons
- used the Delicious firefox extension to replace my bookmarks folder toolbar - Instead, I use the 'Favorite tags' view and use delicious tags like '@daily' (borrowing the at symbol from GTD's contexts) to have quick access to all the sites I use on a daily basis. This works great because as soon as you drag a bookmark to one of those favorite tags on the bookmark bar, it is instantly available on all three computers where I have this set up.
- put all of my passwords into a revelation database that I put in my subversion repo (not 100% ideal, since managing conflicts is impossible, but hey...)
- wrote two scripts, called 'start' and 'stop', which I execute when I start or stop working on a machine, and which sync stuff from subversion and commit stuff to subversion that is important to my workflow (my GTD list, the password database, ...)

None of this is perfect or ideal, but most of it is about as good as it gets for my usual workflow. Lately, I've started focusing on improving these individual elements.

For example, contacts. I really wanted all my contacts to be available in Evolution on all my computers, and on my phone, syncing every way. And bonus points for anything that would finally let me know when my friends have their birthday, a pet peeve for like the last 10 years.

I read some Evolution code and figured out a lot of reasons why the LDAP code is bad, but most of my inquiries (over IRC, on the mailing list, in bugzilla, or poking some friendly hackers (who will remain anonymous)) gave me no idea about why the code was the way it was, who is responsible for maintaining it, and if my ideas for improving were actually any good. I did get a lot of feedback from people agreeing that it sucked or wanting me to work on their pet feature for LDAP support though.

Similarly, calendars. Around the same point, I tried the Google Calendar backend for Evolution as well, because I was getting fed up with not being able to use Evolution for this, and what seemed to be touted as a major feature for a new GNOME release didn't actually work very well. I couldn't figure out at all if it actually supported more calendars than just your primary Google calendar (which I hardly use - I have 10 others), and it didn't work very well at all.

I found a java daemon that is supposed to synchronize your Google calendar with local .ics files which should then work for Evolution, but in practice works very badly for two-way sync and Evolution doesn't seem to notice the file changing anyway. All fixable, but fixing hacky solutions isn't very motivating. And as I mentioned before, while I usually set myself up with a process then stick to it with an almost religious fervor, as I had done for the last years with Evolution - for the first time I was seriously considering completely dropping Evolution.

I saw that Conduit seemed to have some Google support, but after talking to John it seems that the support for Google Calendar got broken and removed in a recent refactoring (I abstained from noting that, by definition, if you broke or removed code then it isn't a refactoring), so it wouldn't work at the moment.

Moving back to contacts, it came to the point where I deactivated my LDAP backends, and tried to go back to using the local one and figuring out other ways to sync. I noticed that GooSync offered the option to sync to Google Contacts, which I had never used before, so I tried that. I found that Conduit did have support for Google Contacts, but I could never get Conduit to sync more than 20 contacts. If I were to hack on anything to fix it, it would probably be Conduit, because I have a feeling it wouldn't be too hard to get it fixed. While my Evolution contacts were being updated on the fly through conduit, I could never get them all. And after a few 3-way syncs I ended up with a bunch of triplicate contacts in my Google Contacts.

But at the same time I noticed something utterly astounding that I would never expect from any Google product. And sure, it's a detail. But somehow I have this opinion of Google that they are so good at getting some of the small details right in their applications. I was so surprised to find out that Google Contacts does not allow you to store birthdays. It's just not there. Even my phone lets me do that and shows the birthdays on its calendar. I was sure it was me who was unable to figure out where they store it, until I found a whole bunch of posts from users sharing the same disbelief. Amazing.

Here's a company with some of the smartest engineers in the world, who've made a successful web mail client, a successful calendaring application, and some technology for storing and using contacts across all of their applications. Yet no one in that company, with all their 20% times, thought it would be a good idea to have birthdays in contacts and have Google Calendar show you a calendar of birthdays automatically all the time ?

I left the whole 'synchronizing contacts' plan on the top shelf right now, while I try and figure out whether I'm going to:
- ignore birthdays and clean up my Google Contacts
- figure out if I can write enough code to make Conduit sync 3-way between my phone, all my Evolutions, and a collection of vcard files in my subversion repository.

So, after that disappointment, there was one more really annoying problem in my 'synchronize everything' approach - since upgrading to Firefox 3 favourite icons have been a huge mess. I had about a 30% chance of getting correct favicons, with the other 70% split between 'not getting a favicon' or 'getting the wrong one, forever'. The delicious extension was even worse at it, usually not able to show more than 5 of them correctly in my toolbar. Seems like a very small detail, but when you have a lot of bookmarks the icons really help in finding the right one consistently.

After various betas and updates of the extension that never actually fixed the problem, a few posts to the yahoo group, little more than promises from the developers that 'things are changing', this week they launched a new beta that takes the first step in a new direction. It wasn't clear to me that it would actually solve the problems, but the notes said that they moved from an RDF file to an sqlite database for storing the synchronized bookmarks. And A developer replied that this new beta should fix my particular problem.

So I updated, tried, and at first nothing changed. I stopped Firefox, opened up places.sqlite and dropped the moz_favicons table. Restarted Firefox, and it refetched a bunch of favicons (some of them wrong - my homepage got the GNOME foot for example), and the delicious extension did get a bunch more favicons, but not all of them by a long shot.

If the extension had been open source I would for sure already have taken the time to look into the code, and fix the bugs - that's how much this irritates me.

But, with the information that now everything was stored in an sqlite backend, I decided to look for the database and see what was wrong. And after 2 hours of hacking (double the time it took to write this overly long blog post) I have a simple python script that adds or fixes the favicons in the ybookmarks.sqlite database.

It's probably dangerous, eats your babies, breaks your database (so back it up first), and takes ages to run as it downloads each page in your delicious account, but for the first time in two years I can finally see that last.fm favicon in my @daily bookmarks folder!

It's Saturday morning going onto 13:15, and finally I can start doing what I was actually planning to do today, and in no way related with the final straw that caused me to fix my favicons.

Orwell on writing

Filed under: Life — Thomas @ 14:14

2008-11-06
14:14

I've always had an instinctive dislike for flowery writing. I usually express it as "Why use 'utilise' when you can use 'use' ?" When you use 'utilise' you're telling me that you're throwing flowers at a bad idea in the hope that I will go 'ooh, nice flowers' instead of 'ooh, bad idea'.

Obviously, this can be used to advantage - if your audience reacts well to flowers by all means go use them. Last week I gave a simple piece of advice to someone ('pass your presentation to X to give it a nice look') which immediately paid off in the presentation meeting - the primary target commented on the nice look of the presentation on page 1.

But in writing it triggers my bullshit detector. And by accident I stumbled on George Orwell explaining why.

Now, let's see if I can focus my writing better.

« Previous PageNext Page »
picture