Older blog entries for wingo (starting at number 188)


Yesterday, biking the same road I bike every day between the office and home, I caught a mental whiff of past places, of cliffs and sea, of leaves and mountains. Somehow these mentalities are very far away now.

bad ideas

You’d think people would realize by now that naming your project “new foo” is a bad idea. All bits rot with time. What is new either becomes an historical curiosity or is forgotten.

So software developers, when it comes time to name your Frob project and the idea Frob-NG comes to mind, chuckle, make a joke about star trek and keep looking for a different name. You can thank me later.

the practical arts

Sergey writes desiring a way to prevent the military from using his software. I probably agree with his perspective on the military. I personally think that our modern armies are regressive implements of illegitimate state power, the US foremost amongst them. But the military’s relationship with science and technology is a bit more complicated than that. The first computer’s job was to calculate ballistics trajectories for the US army. The current top machine’s job is to simulate hydrogen bomb explosions. The same technologies enable the internet and gene sequencing.

Technology is a tool, in the end; as a tool-maker you have to decide whether it’s worth it to do what you do. Personally I wouldn’t work at Los Alamos even if I were just modeling the weather, as I feel that is too close to the bomb. But I might take the military’s money to do other development (and holy jesus do they have a lot of money — a large piece of the pie).

Everyone draws their own lines. Putting your software under a different license is one way to do that. It’s probably not the most effective fight, though — with that much money in their hands it doesn’t really matter what you do. Better to get political and fight at the source, if that’s your thing.


It’s been brought to my attention that I haven’t talked about work in a long time. So here is what is up in the Fluendo basement.

Flumotion-the-streaming-server is what I hack, that and some other software for Flumotion-the-streaming-company. We’re selling services on a platform that uses Flumotion to stream live and on-demand video and audio, with some extra layers for load balancing, transcoding, proprietary formats, logging and billing integration, and the like. Of course, the streaming software itself is Free.

We’re just wrapping up a development cycle on Flumotion and the platform software now. I think that Flumotion users will find that it’s much more robust, especially in the face of transient network issues, CPU usage spikes, and in useful feedback to the person administering the whole thing. There are a few new features as well — recording to disk based on an ical file, a static file server, serving multiple mount points on one port, and a few more. But to me the important thing is that the whole system is less fragile than it used to be, which should be a more positive experience.

The downside of all of this for me is that to turn 0.3.2 into 0.4.0 I have to do a lot of testing, which is tedium. I dislike this so much that I wrote a graphical forkbomb to run the tests instead of sitting down and running the tests. Maybe it was a nice time investment? Unclear. Anyway, I believe I’ve moved out of Flumotion testing and am now testing $232,020 worth of proprietary platform software, according to sloccount. I would have to say that I prefer making the bugs than testing for them.



I would like to note an underexplored territory that is ripe for the munching, the “southern buttermilk biscuit — mallorcan sobrassada” interface. Spreadable sausage on a biscuit. God did truly shine his face on my kitchen this morning.


I got guile-gstreamer working today, which is hot. Version 0.9.90 is totally released. The last bit that I had to do was to leave “guile mode” when the wrapper calls C functions, and to enter guile mode when GClosures are invoked. That is what it takes to be thread-friendly with Guile; while multiple guile threads can be running at the same time, they have to not block, because GC or thread joining requires cooperation from all threads.

So, multithreaded GStreamer and Guile. I’m pleased, this is already more than the old 0.8 wrapper did. Also the process of porting to 0.10 was mostly removing crufty code, which says nice things about the state of GStreamer-the-library.


Greetings gentle reader, I offer these poorly connected vignettes for your eyes’ consumption.


My friend Colin just came out with a new album, Soukha. He gave me that link a couple weeks ago, but I still haven’t been able to listen to it on the web site because I don’t have a Flash player. Today I realized that I have his mp3’s from somewhere else, put them on, and was more than duly impressed. Hotness! People should tell him how awesome he is. I think stylistically it’s closest to Gotan Project. Very diggable.


I released a new version of guile-gnome-platform today, the first in over a year and a half. Release notes to the mailing list. Feels pretty good to get that one out the door.

I started updating the GStreamer bindings as well. They are available from bzr only, at the moment, pending a release when things are working OK. Already caps and structures are fine, including all of the valued types like int ranges, fractions, fraction ranges, and fourcc’s. Today I got miniobjects working, a new fundamental classed type. Now that Guile is fully multithreaded, except for GC, I have a fighting chance of getting callbacks from threads to work as they should. Then I release and the world of scheme+gstreamer hackers rejoices. (Currently when you drive through this world the sign reads “Population: 1″.)

gnome foundation elections

The GNOME foundation board elections are upon us, and after renewing my membership I cast my ballot, for a mix of people. The candidates were pretty good this year. May the most voted for persons win?


The cold snapped about a week ago. Brr!


Thanksgiving came and went this year again, and two turkey carcasses were carried out my door. Things went pretty well, with about 35 people showing up in my flat, with a continuous eat-drink-eat-again cycle going on for about 10 hours. Good times! Also this was the first year that I wasn’t scared of the turkey. On the flip side I see the tendons in my arm in a different light.


Went to Mallorca a couple of weekends ago for an Aikido seminar with Yamada Sensei of New York. I’d have liked to have seen more of the island; as it was it was a loop of train-eat-drink-sleep. Also good times, that seems to be the theme of this burst-o-blog.

Upcoming: Christmas in Belfast/somewheres around there, a new year turning. GOOD TIMES



Another hungover sunday, down to the street to buy a paper, sit in a cafe, watch people until the headache either goes away or sends me back to bed. Two years of this routine, on and off, and I think I from the papers I finally understand the political configuration in Catalunya.

It’s considerably more complicated than the US, with six or or eight parties in parliament, depending on how you count. The basic divides are left vs right and nationalist versus spanish. No one has an absolute majority, meaning that to govern, groups have to make compromises and trades to form a numerical majority, which then becomes the government.

This year, the party with the most votes was a rightist nationalist party (CiU). Their goal was to return to the government at any cost. They could form a government with the socialists, a pseudo-spanish party affiliated with the ruling socialists in Madrid, but as far as I can see the socialists wanted to avoid any association, in the minds of the voters, with the right. This was especially important to them given the upcoming spanish parliamentary elections. The other option for the right nationalists was a coalition with the left nationalists, but there is so much bad blood there that the leftists just used the rightists to increase their desirability with the socialists.

In the end the arithmetic led Catalunya to the same situation as the before, with a left coalition between the socialists (PSC), the left nationalists (ERC), and the greens (EUA-ICV). The rightist spanish party affiliated with Madrid (PP) loves this situation, squeezing every internal disagreement in the ruling coalition into attack ads on the “inefficiency” of the government. Their motto in the last election was “Be decisive”. But with only 11% of the vote, the PP isn’t taken too seriously.

I have to say that I like the parliamentary model much better than the winner-take-all system in the US. I like the idea of compromise, and that smaller parties can exercise some degree of power in the government. The possibility that other parties can actually make it to parliament helps of course; back in 2000, the green candidate for president didn’t even make it on the ballot in North Carolina.


Another year, another thanksgiving in “hostile territory”. This year promises to be larger than the last — I might end up doing two turkeys. The scare quotes mean it’s a joke, dudes and ladies


Not much to speak of — the hacks of my last writing product on guile-lib were the work of a couple weeks’ labor, fighting entropy. But for the moment, I’ve put it in a situation that’s reasonably resistent to time’s arrow. Time to move up the stack again.


Last weekend was most excellent, with an instructor coming from Tokyo’s Hombu Dojo to give a course. For some reason Japanese instructors are called only by their last names. Miyamoto sensei is impressive in any case, and at 58 years old is really quite young to have a 7th degree black belt. He manages to be very technical yet humorous on the mat. Outside he dresses like a mafioso. Good times.

In two weeks there’s another seminar coming up in Mallorca, with New York’s Yamada sensei. I’m going to see about heading there, taking one of the boats that I see out of my window at work, sleeping on the floor in the school. It’s a bit perverse that I find joint locks to be relaxing, but so it is.


17 Nov 2006 (updated 17 Nov 2006 at 17:22 UTC) »

Hello! I would like to show off a hack. It is this:

This is me editing a piece of guile-lib, an anemic collection of modules written in guile scheme. The docstring is highlighted in pink due to a crazy .emacs that I inherited from my friend Leif.

Note that the reference to sxml is written in texinfo, what to me is a beautiful and appropriate language for documenting software.

This is me at the guile> prompt, asking for help on the procedure sxml->string. Note that help has parsed the argument list and put it there for me, without me having to document it. Also note the the @var{sxml} is rendered as SXML, which is normal for a metasyntactic variable.

That’s possible because when I ask for help on an object, guile parses the docstring using (texinfo reflection) into an SXML dialect.

From the SXML format it’s possible to do lots of things, like transforming it into HTML, and then serializing to XML. So we can have nice-looking, clean docs.

Using the parsed texinfo, we can programmatically construct documentation for an entire set of modules, using both the written knowledge in the docs and the “live” knowledge that guile has of the instantiated object. The above image is from a high-quality PDF rendered by TeX, after guile-lib serialized the parsed documentation back to normal texinfo.

The texinfo file can also be processed by makeinfo, which is a useful if idiosyncratic system for document browsing. The nice thing about info is its index: press i sxml-> TAB and you can see all functions that operate on sxml data.

Neat eh? The only problem with having nice documentation output in many formats is that it doesn’t hide bad text. We still have a ways to go in that department.


I have a bit of a writing backlog. Rather than edit edit edit, taking the moment out of whatever it was I was writing, I’m just going to dump a bit before writing something new.

new books

I would like to make words about John Leonard.

I recently stole half a dozen back issues of Harper’s from a friend’s apartment in the states. It is my purloined word-horde of delight.

Their happiest turns of phrase are offered by Leonard’s monthly book reviews. I imagine him as an eccentric spider in a multidimensional web, nimbly turning around newly trapped books in webs of their predecessors, decorating his subjects with perception. Generous, too, like a grandfather in his shop, talking out loud, telling old stories. Then he give you his tools, asks you to try your hand at the lathe or soldering iron.

(My grandfather was a spider, it make my eyes mist thinking of him, excuse me)


I’m growing a bit frustrated with Spain, on this my fourth anniversary of flying away from my previous homes in the states. Why can’t I find tofu or decent sliced bread in the stores? Why is it that my schedule overlap with grocery stores is only 40 minutes per day? Why is it so difficult to find a café to hack in at three in the afternoon on a sunday? Not to mention the lack of greasy spoons, burritos, and proper sandwiches.

Say what you will about cultural relativity, but a grilled emmenthal-walnut-basil-avocado-mustard sandwich on hearty dark bread is objectively better than flaccid bacon and processed cheese on a dry baguette.

On the other side of the exaggeration, Barcelona is civilized in ways that American towns don’t even know how to dream about. I don’t miss the irritations of owning a car. I can bike everywhere in town. When I go out my front door, there are people walking the streets, strolling with and without purpose — the liquid to the gaseous state of America. What is not here is the second-hand couch on the front porch, the rocking chair, the shed out back.

Apparently my happiness is entirely determined by home, food, and transportation. I fret insatiable.


Hacking, I take control of my life. Or perhaps the clause should be, “doing things I should have done a while back”. I realized this the other day that after knocking down some bugs in guile-gnome, guile-lib, and g-wrap. Doing so lets me take care of email backlogs of bug reports, patches and questions I never got around to before, making me feel like I’m actually getting on top of my inbox, which is currently at best a minor form of guilt.

Speaking of guilt, I should mention something that people nagged me about for a long time, until apparently they gave up: the video archives for GUADEC 2006. Here is the situation. The raw recordings I have are of large chunks at a time (between 2 and 20 hours), and do not play properly in most players. You cannot seek in them. Why? Because I fucked up and recorded in too high a quality for the boxes we had for encoding. Secondarily, after we had to drop some frames, the encoders continued on as if frames had not been dropped, thereby ensuring that the archives have large synchronization problems.

At first I invested quite a bit of effort into trying to get these videos cut and resynchronized, writing two applications and a few hacks to a number of GStreamer elements. Last time I looked, those hacks were not working properly (segfaults, etc). It was depressing on the three levels of (1) I fucked up in the beginning, (2) I wrote large parts of the capturing software, and I didn’t think it would discard the timestamps, and (3) the attempts at getting out ok-to-decent archives were failing also due to code I needed to write.

Given a limited amount of personal hack time, I chose to hack on my guile-related projects. Much more personal bang for the buck. While guilt might be useful on some occasions, and is only a two-key typo away from guile, in this case it was too much and I had to back off to retain my sanity.

So, um, my bad about that guys! I know it sucks. I’ve got some folks at the office interested in getting this job done so hopefully before the end of the year some decent archives will be out.

good work

(Is there some kind of official body or church or something that one can go to for egoism problems? Looking over this next paragraph, I seem to need it.)

Going over the guile stuff I did, I have to say there is some really good work there. It’s what continues to attract me to those projects. The texinfo parser I wrote for guile-lib is pretty hot, even given my proclivity for parsers. The lazy bindings work I did for g-wrap was all right. Mapping a GTK text entry to a scheme port wasn’t so bad either. I dig on hacking it.

Distributed version control systems promote bitrot. With centralized systems, either your code is in or it’s not: if you want it in, you have to get it in the maintained trunk. With decentralized systems, you can commit your code to some branch somewhere, and mentally mark it as done. This week I found patches over two years old lingering in one of my arch branches of guile-lib. Two years. People had been writing in to mailing lists to complain about it, and I was wondering why they didn’t have the fixed version. Sheesh.


18 Oct 2006 (updated 18 Oct 2006 at 23:52 UTC) »

on creation

I believe the way to write a good play is to convince yourself it is easy to do — then go ahead and to it with ease. Don’t maul, don’t suffer, don’t groan till the first draft is finished. A play is a phoenix: it dies a thousand deaths. Usually at night. In the morning it springs up again from its ashes and crows like a happy rooster. It is never as bad as your think, it is never as good. It is somewhere in between, and success or failure depends on which end of your emotional gamut concerning its value it approaches more closely. But it is much more likely to be good if you think it is wonderful while you are writing the first draft. An artist must believe in himself. Your belief is contagious. Others may say he is vain, but they are affected.

5 October 1941, Tennessee Williams. (Via Harper’s.)

What a delicious and beautiful quote! I’ve been thinking about creation lately, specifically with reference to that uncomfortably direct talk from Richard Hamming, You and Your Research. It’s a favorite among scientists, but if you haven’t seen it, the best/worst of it is this: Hamming, a respected scientist, would try to sit with different people at lunch at the lab he worked at. After a week with the chemists, say, he’d ask one of them what the most important problem in his field was. They’d fumble for a while, come out with a few answers. Hamming then asks, “Why aren’t you working on it?”

As he tells it, the tactic didn’t exactly make him lots of friends. It is an uncomfortable question, most so when you ask it of yourself. Why am I not doing the most important thing I could be doing with my life? Something like the “What have you people done lately?” question that taunts art historians (via Kathy Sierra).

Well, why not? If the answer is no, and you rationally attempt to justify your existence, I can think of a few answers that Hamming does not mention. Maybe you are cultivating a beautiful love affair, an undeveloped talent in carpentry, a child, a martial art. In some sense you still answer to Hamming’s imperative, but with “I can’t yet but I am on the path”.

But there are excuses and excuses. “Because I am working 50 hours a week to pay my mortgage and I don’t have time” is a terrible one. There are situations that can force you to answer this, at times, but necessary evils are necessarily evil. They dull the desire to the rhythm of a copy machine.

on not breaking and entering

10 minutes after getting back home last night after a month of holiday, I lock myself out of the house. Clever! Very clever! The jan-jaime apparatus took pity on me and let me sleep with them. On their extra bed I mean. (Thanks guys.)

Finally in my own bed asleep tonight, when the cops rang all of the doorbells in my building. I don’t know the cause but the effect will be a sleepy me at work tomorrow.


There’s a businessy edge to work that hasn’t been there in a while. Good to swing the pendulum every now and then.


Boards of Canada suits the grey skies. Curious yet subdued.


america of the turning leaf

European workers have it figured out. Jaws gape among my American friends when I tell them I have five weeks of vacation a year; stateside it appears more common to have just two or three. I’ve been off for about a month now. A pleasantry indeed.

I write from my folks’ house in North Carolina, later to fly back to BCN this afternoon, along with a couple hundred other pairs of red eyeballs. It’s been real nice stateside, to see a buddy of mine get married in the mountains, to tour the metropolis that is Los Angeles with some very alive minds, to putz around in raleighdurhamchapelhill with my people. Neither did the fall leaves disappoint.

Also I got to play some discgolf!

used cd harvest

I have been crate diggin. From bestest to mediocrest:

Minor Threat, Complete Discography. Wow. If this had a banjo in it I’d call it a barn burner. But we don’t refer to punk rock that way. Intense!

Jenny Lewis with the Watson Twins, Rabbit Fur Coat. A bit earnest at the beginning, but later so terribly natural. Not terrible-bad, mind you, terrible that conjures to mind images of dark clouds and pending storm.

Neil Young, Mirror Ball. Not sure on this one yet, not enough listens. I just buy anything by this guy.

Sonic Youth, Washing Machine. I must have had a tape of this at some point, I know the songs. Fills a hole in my Sonic Youth collection. Good stuff, but for your bucks buy their newer albums.

The Raveonettes, Whip It On. Fine, but monotonous — get Chain Gang of Love instead.




Just finished a most excellent trans-spain bike trip, starting from France, heading along the northern coast of Spain, cutting in across the mountains in Asturias, ending in the northwestern state of Galicia.


I kept a dorky videolog of the trip as well; click the above for a playlist file containing about 25 short clips I recorded with my digital camera. It’s about 20-30 minutes in total, and about 35 megabytes. Older (more than a month ago) GStreamer+totem should play it fine; if you have trouble viewing the files, maybe try a different player (mplayer for example). Or alternately here’s the directory with the movie files.


After just getting back to BCN on Monday morning (”why yes I am freshly showered”), time to move again! Tomorrow I fly to the US for a wedding and to hang out with friends. Nothing like an airplane for some good hack time.


in which our protagonist buys a bike and rides it

I took some days off of work starting tomorrow, but my awesomest plans fell through. Left with days, what’s a brother to do except hit the road? Me and a bike that I have yet to pick up from the shop are going to catch a train tomorrow to Irún, where France meets Spain meets the Atlantic. From there, to follow the coast via the Camino de Santiago del Norte, through towns and villages. Mountain passes over early classes.

The upshot being that my camera is a-charging upstairs, in preparation for the morrow, and that I will be off the net, off the cell phone, investigating the human-bike-road interface. Catch you all in October!


179 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!