I went to the Leonard Cohen concert in Madrid last weekend. It had to be in Madrid because when he played in Dublin, I was still in Spain. The performance was amazing, and let it be noted that it was a three and a half hour concert. That, per-se, is already remarkable. When it comes from a 75-year-old man... well, just another reason to take one’s hat off (perhaps that’s that’s why so many attendants wore one that night).
The days before going to the concert, I was sick in bed with some pharyngitis, tonsilitis, or the like. I went to the doctor on Wednesday, and I had to pay 55 € for the visit, plus 16 more in antibiotics. Of these, I’ll get a refund of 40 € by my private insurance. This saddens me a lot.
I think I’m definitely back on track on my reading again, after so many years. Since June, when I picked up The Time Traveler’s Wife, I’ve read 8 books in total, not that bad. As a side note, at the end it seems I’ve dropped Goodreads and gone for LibraryThing; my catalog there is publicly available. They don’t provide a feed of books as one starts reading them; there’s however a feed of additions to one’s library, which comes close.
Back in June, some of my posts had a PS giving status updates on how I was doing with my exams. I never got a chance to say that I passed the third of them, which was a big relief. This means that now I’m one course away from getting my degree, yay! Hopefully I’ll be done by next June.
I guess that as a gesture, it can’t hurt that the UK Government publicly apologizes to Alan Turing. However, we’d be all better served if everybody, governments and population alike, would just spend some spare cycles today on saving us from futher embarrassing apologies 50 years from now. For example, the day we may apologize to all those people who we’ve let die of hunger every day for decades, will you have done something within your reach to improve the situation? (Apparently back in the 50s it was difficult for people to believe that a Prime Minister would publicly apologize to a homosexual, let alone that there was something that needed apologizing for.)
Death at a Funeral: I watched a comedy for a change: very good laughs. (Thanks, Chica con falda roja.)
Holiday: I have a weakness for Katharine Hepburn, but perhaps this film is superb on its own, too.
Milk: Sean Penn deserved the Oscar, if only, for biting his fist regarding the Proposition 6 outcome.
Los cronocrímenes: enticing Spanish film about time travelling which may or may not be similar to the film from 2004 Primer.
Into the Wild: watch it. (Ah, the time when I was intending to write so much about this film.)
Con esto de la mudanza a Dublín, pero sobre todo porque en casa también se mudan a otro lugar con menos espacio, estoy haciendo inventario y limpieza de todas mis posesiones, y deshaciéndome de todo aquello que no es imprescindible. Me deshago, entre otras cosas, de mis apuntes, de la carrera y también de bachillerato. Me ha costado hacerme a la idea, pero lo cierto es que no iba a mirarlos nunca más, excepto de darse circunstancias en las que —aventuro— más me valdría no hacerlo.
En cualquier caso, en la carpeta del curso 1999-2000, el último de bachillerato, ha aparecido entre los apuntes el siguiente texto. Por aquella época yo estaba obsesionado con escribir, y escribí mucho. Bueno, empecé muchos textos, y acabé pocos (y no son los mejores, I’d say). La mayoría los escribí con el ordenador (¡en el Word!), y no tengo ni idea de por dónde paran todos esos borradores. Éste ha aparecido en papel, y lo comparto aquí antes de mandarlo a reciclar. No lleva título.
Camina entre la gente con su cigarro liado en la mano. De cuando en cuando, una calada. Corta, fugaz, y tragando el menor humo posible: hay que cuidarse. Le gusta el tabaco liado. Especialmente ese día. Llevaba un cabreo muy grande en el cuerpo, y ahora se dedicaba a mirar a la gente poniendo los ojos vidriosos, como si estuviera drogado. Pensarán que llevo un porro, piensa.
En la parada del autobús, la chica que está a su lado se come una hamburguesa. Le viene a la cabeza un insulto contra el capitalismo del McDonald’s. Lo que pasa es que no tiene dinero para comprarse una. Si lo tuviera, a buena hora se metería con el sistema. Se calla el insulto y se dedica a mirar furtivamente a la chica, fumando. Todavía el mismo cigarro: los liados duran más. A su otro lado, un viejo fuma un Ducados. Mismo juego: miradas vidriosas.
Ya llega el autobús. Mierda, todavía no me he acabado el cigarro. Le pega una última calada, más profunda (nota el humo penetrando hasta lo más íntimo de sus pulmones, de su ser). Mientras sube al autobús, expira el humo. Le gusta el efecto que produce: “Macarra de ceñido pantalón...” Hoy le apetece ir de duro.
Update (19:45): Al final he decidido no reciclarlo y guardarlo en otra carpeta que ha aparecido con random papeles, entre ellos un diario de enero de 2000 relatando mis desamores de la época.
I’d like to follow-up to a couple recent posts in this blog, triggered by comments I received via e-mail and other media.
In the first place, I’ll comment on the post that labelled bloodletting and electroshock as “barbaric methods”. I received two comments about this. The first one was from a heamatologist who pointed out that bloodletting per se is not an abandoned practice, and that is still the method of choice, for example, for some pathologies that consist, precisely, on elevated bloodvolume (eg., polycythemia vera). The second of these comments was regarding electroshock, and how it can or is still used to treat long-term depression (and pointed me to this TED talk by American surgeon Sherwin Nuland, who apparently had severe depression himself and was well served by electroshock therapy).
These comments were called for, so I’ll amend and say that only “indiscriminated bloodletting” should have been described as barbaric, like doctors in the distant past used to do as far as I know. For electroshock, however, the fact that it may cure depression doesn’t make it less barbaric in my eyes, at least if the amounts of pain involved in the treatment are what one has been led to believe. So I think it’d belong in the same category as treatments for cancer: we use them despite being horrible because we’re sadly not quite there yet in the “knowing better” ladder of History. (And this is just my opinion, of course.)
Regarding my recent post about Oposiciones, it was pointed out out that the original intent of for-life employment when working for the State is to free such workers from possible politic pressures, and to avoid firing en masse when a new party arrives to the Government, to hire people that will sympathize with their agenda.
And finally, about my somewhat older Meritocracy and entitlement, I was told that —even if the reader would know me relatively well— it was very easy to read the short entry in the opposite way it was intended by me. If that’s the case, let me clarify: my thoughts on the matter are that the more power or positions you get in a project (to which you arrive by meriting them, obviously), the less entitled you should feel.
Pity is a messy business, I’d say, and I wonder if we wouldn’t be better off never pitying anybody whom we don’t know reasonably well, or who isn’t clearly asking for it. For all I know, the girl in a wheelchair sitting across from me in the library could be way happier than many of us, and the guy with all the looks nearby, unexpectedly miserable (or the guy with all the money, for that matter).
I come across regularly with Git repositories converted from Subversion with plain git-svn, in which the initial commits are in the typical form:
commit 1bd799efe798308aed29c95eb08e4cb1c91693c9 Author: guy <guy@5c8cc53c-5e98-4d25-b20a-d8db53a31250> Date: Wed Nov 29 01:12:13 2006 +0000 [...] git-svn-id: svn://repo.org/svn/project/trunk@43 5c8cc53c-5e98-4d25-b20a-d8db53a31250Every time I see one of these, it reminds me of how different people are, for I could not be able to stand such (ugly) commits in my history for eternity (and it’s not as if git-svn does not have the “authorsfile” and “noMetadata” options).
There’s a bus here that used to do City 1 ↔ University ↔ City 2, so students would pick that line on side of the road A to go to City 1, and on side of the road B to go to City 2. Now they’ve changed the line, and it only does City 1 ↔ University, with side B going to City 1 as well. The sign in the bus no longer shows “City 2” as a destination, but the line number is the same as before. I do wonder if a SONAME bump would have helped here: plenty of people are still taking it to go to City 2, and get very upset when they see the bus do the U-turn!
If my weak math-fu didn’t fail on me, it should be possible for an ATM to deliver any amount of money multiple of 10 with only notes of 20 and 50, except of course 10 and 30.
I’ve been trying to eat more fruit lately, particularly more kinds of fruit (for years, I’ve confined myself to Granny Smith apples and watermelon). I now also like grapes, peaches, oranges, and some kiwis.
A while ago I read with great amusement Rusty is a homosexual.
P.S.: I’ve passed the second of the three courses as well, only one exam left now on the 16th (incidentally the hardest of them).
Publico aquí parte de un correo electrónico que le escribí a alguien recientemente:
Me encanta cruzarme en mi caminar por la vida con personas que sufren algún tipo de problema de salud mental y que aun así luchan y viven y consiguen ser excelentes en lo que hacen —y tú lo pareces—, porque sé por experiencia lo que eso cuesta y la admiración que merece. Yo tengo trastorno bipolar, y las he pasado muy putas en el pasado. Cada día doy gracias de estar ahora mejor, y sobre todo de encontrar cada vez que me caigo las fuerzas para levantarme, sea más o menos grande la caída. (Afortunadamente, no ha habido grandes caídas en los últimos dos o tres años. Antes de eso... tres años sin poder hacer caso a la Universidad.)
En cualquier caso, y por mor de ir al grano, sólo me gustaría decirte las siguientes tres cosas, por si alguna de ellas te parece digna de consideración. Y lo hago, quizá, porque me gustaría vivir en un mundo en el que los problemas de salud mental no estuvieran estigmatizados —como no lo están, por decir algo, el cáncer o la invalidez o la gripe—. Sí es verdad que las cosas están cambiando, pero lamentablemente todavía hay gente convencida de que por ejemplo la gente que se deprime sin motivo en realidad lo que le pasa es que son unos vagos o unos cobardes.
La primera de estas tres cosas que quería decir es que, tenga uno lo que tenga, siempre hay personas en la misma situación, y que a su vez luchan por vivir y por vivir bien y por excelear. Sin embargo, el propósito de esta consideración no es, ni mucho menos, consolarse (no hay nada peor para cualquier enfermedad que tenerse lástima y permitir que otros la sientan), sino encontrar inspiración. Recuerdo que al poco de ser diagnosticado leí una lista de personas notables con las que compartía diagnóstico. Personas admirables por su trabajo (hell, Newton!, pero también p.ej. desarrolladores de Debian como yo) y que, incidentalmente, tenían ese algo en sus vidas también.
La segunda cosa es una frase que proviene (si no estoy equivocado) del cristianismo, y eso que yo no profeso esa religión. Antes de decir la frase, déjame explicar por qué creo yo que es tan potente como idea: porque cuando una persona hace un acto de fe, y la cree, inmediatamente esa persona tiene poderes y fuerzas que no tenía antes. La frase dice algo así como que Dios nunca da a nadie una cruz que no pueda soportar, que sea mayor que él o superior a sus fuerzas. Yo no creo que Dios reparta cruces, sino que simplemente te vienen como parte de la vida, pero estar convencido de que las que tengo conmigo de momento, puedo con ellas, eso es muy, muy empowering.
La última cosa también se podría resumir en otra frase, la máxima griega (?) “Conócete a ti mismo”, y ahora explicaré por qué. En mi mano a mano con esta enfermedad, he encontrado que una de las cosas que más me ha ayudado (quizá, no lo sé, sólo en conjunción con los compuestos químicos) es saber exactamente de qué pie cojeo, y cómo y cuándo y por qué cojeo: a día de hoy tengo el don de verme venir las cosas, de saber cuándo por ejemplo unos pensamientos negativos se están haciendo demasiados grandes y debo abortarlos por lo que pudiera pasar después. En otras palabras, es imposible poder prevenir o aliviar nada si no se ve venir a decenas de metros de distancia.
Y eso es todo. He leído también en tu blog algo de no poder imaginar que tu vida vaya a ser siempre así. No sé qué pensarás ahora de eso, pero yo miro al futuro siempre con esperanza, y con la certeza de que cada vez lo torearé mejor.
In Spain, in order to work for the public administration, you have to go through this selection process called Oposiciones, which are basically an exam and other tests after which candidates are sorted by their combined grade, and available positions are handed out to them in that order. I assume every country has something to the same effect.
In Spain at least, the position thus obtained is to be held for life, meaning you cannot be fired unless you incur in extremely unacceptable behavior (and then, as far as I know, most of the time you just get barred from work for a number of months, after which you return normally). Because of this, many a mother advices their children to prepare for one of these exams, and many people decide to do so particularly in times like these. The people who occupy such positions are called funcionarios, and there’s this même in Spanish society that they all work very relaxedly, to use an euphemism, particularly those in offices. (It must be very upsetting to be a diligent funcionario, and be made the same snide remarks again and again when revealing yourself as one.)
I really don’t understand why this is done this way, and can’t possibly agree to it. Of course, the State above all should behave responsibly and provide with stable employment, but I can’t see why its employees shouldn’t be held up to the same standards of quality as the citizens employed by private companies. Isn’t just «for-life employment» a recipe for people lowering their standards? If there’s no risk of getting sacked, isn’t that an invitation —at least for many people— to performing a sub-par job? (A person I know who’s preparing Oposiciones to be a teacher in Primary school told me that, in fact, such fact would give her much freedom to implement more modern teaching methods without fear of consequences, for they are regarded as very unconventional by most, but my impression is that she’s the exception rather than the rule.)
Speaking of Education, here in Spain there’s a special degree you have to pursue if you want to be a teacher in Primary school. However, to be a teacher in Secondary school, any degree will do, as long as you attended upon completion to a laughable 4-month course on “how to teach”. Because of this, people with random degrees and no interest in teaching whatsoever decide every year that Secondary school is their best bet to a funcionario position, and go for it. Which, I muse, perhaps plays some kind of role in the state of Education around here — but that is going into muddy waters, and I rather wouldn’t. (I’m told that this laughable 4-month course is being morphed into some kind of 1-year Master with exams and grades and shit. Well, I guess that’s something.)
Oh, and by the way, greetings to all the diligent funcionarios out there, including the teachers that live for their teaching and their students: you rock!
Last week I mentioned Randy Pausch was an Unitarian Universalist. This made me visit briefly the Wikipedia page for this movement, and out of pure curiosity I also peeked at the homepage of the Unitarian church in Dublin (which may just be part of the Unitarian movement, and not the UU one, beware!). Anyway, it has a a reverend, which left me realizing that, whilst I can’t really say whether I’ll ever set foot in a church weekly again, at the moment I can’t really conceive ever going back but to an unconventional one where the speaker would be, each week, a different member of the community, and not an appointed reverend.
Throughout the history of Medicine, barbaric methods have been used to cure some illnesses. Bloodletting and electroshock come to mind. In the current times, we’re thankfully past such practices, and the reasonable thing to do is to pity those who had to live back then, when science did not know any better. I’m hopeful one day the people of the future will look back at chemotherapy and radiotherapy in the same way we look at bloodletting and electroshock today.
During this VAC from Debian, my amule package was NMUed by the Security Team. I must ashamedly confess that my first reaction was not very positive, for I was annoyed that the procedures hadn’t been really followed (it was not an RC bug and no advance notice of the NMU had been given). Anyway, whether it was right or wrong is not the point: the story goes that I pulled myself together, slapped self a bit, and decided to send a “Thanks!” e-mail instead, which was very much in order. It’s so magical how a couple hours ater sending it, I really felt grateful and no longer annoyed. The thing I learnt is not to despair when desired traits don’t come naturally, for they can become true just by trying.
Recently I obtained a copy of the latest album by Corazón, Nuevo futuro. Not having the time to listen to it at home, I transferred it to my iPod, an (old-generation) iPod Shuffle, and hence without a screen. I had read this review of the album that, among other things, said a track named «Vestir santos» was probably the album’s finest. So, when listening to the album in the street, I was hoping I would manage to deduce which track «Vestir santos» was, out of its lyrics. Unfortunately I wasn’t smart enough to deduce it, but when I got home I had the opportunity to get surprised by the fact that track #4, which had become my favourite after a couple listens in the iPod, happened to be «Vestir santos».
I’ve sometimes told myself that I’ll feel the future has arrived when it’ll be possible to enter an IMDB number on my TV, and have a HD version of the movie play instantly, with languages and subtitles available. Current bandwidth is driving us towards that direction, and some invaluable communities are in fact making it almost possible today. (Nevertheless, I’d be happy to pay a monthly quote in exchange for the bell and whistles mentioned above, and for really having practically all movies at my disposal.)
The future likes to arrive in small doses, of course. Today I wanted to write “food time, bbl” on IRC, but I typoed it as “good time, bbl”. This typo made me remember a song from my teen years that I used to listen to all the time, since the video clip was included in the Windows 95 installation that accompanied me through high school (yes...). I found it really futuristic how, after typing exactly three words, I found myself enjoying the video again, and then peeking at the rest of the album. (After that I proceeded to this other video. Wow, I really spent hours playing that game back then.)
I think the appreciation of things like the above is a very good excercise: the world becomes such a much better place when one stops taking everything for granted. I, of course, also have wilder wishes for the future: I dream with the day when singing to self a particular fragment of a song will be enough to trigger it playing in the nearest loudspeakers or headphones. For now, getting one of those players where my whole collection will fit will have to do.
Ésta es la pregunta número 4 del examen de Arquitectura e Ingeniería de Computadores de la Universidad de Alicante en su convocatoria de junio de 2009, al que lamentablemente al final no me presenté:
El año pasado se celebró el primer centenario del levantamiento popular de Madrid del 2 de Mayo de 1808. Suponga (es una aproximación) que los hechos acontecieron del siguiente modo:
De 7 a 9h de la mañana del 2 de Mayo de 1808, una multitud de 300 madrileños se concentra frente al Palacio Real de Madrid (custodiado por unos 200 soldados) para impedir que los franceses sacasen del palacio a los últimos miembros de la familia real. En este momento comienza una rebelión popular que se extiende a lo largo de Madrid y que dura hasta las 0h. El pueblo, unos 3000 madrileños armados con cacerolas, navajas, macetas, agujas de coser, etc., se enfrenta a todo un ejército de 35000 soldados. Aún así, comienza una dura batalla que supone en sendos bandos un número importante de bajas entre muertos y heridos. Aproximadamente unos 900 del lado francés y 700 del lado español. A pesar de que el pueblo de Madrid tiene muchos menos medios para la batalla, su distribución a lo largo de todo Madrid (que podemos abstraer como su disposición para trabajar de forma paralela pero cooperativa), provoca que se cause un daño significativo en el ejército francés.
Nota: El ejército francés emplea 1 hora a partir de las 9h de la mañana para desplazarse y reorganizar sus tropas (tiempo en el que no luchan, pero pueden ser atacados). El pueblo de Madrid, desafiante en toda su extensión, no tiene que emplear tiempo en este cometido.
Se pide:
a) ¿Cuál de los 2 bandos (soldados franceses o pueblo de Madrid) ha sido más eficiente en la batalla? (0.4 puntos)
b) ¿Qué bando ha sido el más productivo? (0.25 puntos)
A mí me parece estupendo.
Yesterday I borrowed The Time Traveler’s Wife by Audrey Niffenegger from the library. I’m hardly on page 100 by now, and I’m already making plans about whom I am going to give it to for their birthday.
During this first half of 2009, reading has been a painful experience. I already mentioned last week that I’ve been suffering some kind of reader’s block for a long time. It seemed to have gone away late in 2008, when I managed to read several books in a row (my favourite being The Curious Incident of the Dog in the Night-Time), but in 2009 I’ve already started and given up three others: my “Oh no, I’ve smoked again” moments.
Big part of the problem is my limited ability to choose what to read. There isn’t really much of a library at home, and for now buying books comes below the cutoff line in the budget, so I’m left to sticking to public libraries: it’s really sad to get all excited about a certain book in Goodreads or LibraryThing, and then check that it’s not available in any of the libraries around here. (It doesn’t really help that I insist on reading in English now, in a country where that’s even more uninteresting than undubbed movies. Then there’s the pain that I’m not a fast reader anymore, and the clock ticks.)
Anyway, let’s get back to this non-review of The Time Traveler’s Wife, since the above should sort itself out soon. Imagine, coming from where I come from on this, how empowering it feels to say, a couple tens of pages into a book, this book, to say: “I’m so going to finish it.” (Well, any book can turn out bad, but I’m quite confident this one won’t.) It was a really great feeling.
This book is obviously science-fiction, since it involves time travelling, but I think that’s a wrong label for it since it’s just a love story. One that, precisely because it involves a component one doesn’t normally find in regular love stories (time travelling), becomes such a powerful one: the characters experience situations in a relationship your brain had never conceived, like for example the whole Jason incident, and that’s been for me incredibly moving. (I guess if you’re well into time-travelling stories, you might have thought of such situations. And there are probably some science-fictions books out there that have presented some of them already.)
If you’re thinking of reading this book, and particularly if you’re a regular science-fiction reader, I’m tempted to suggest —with only 100 pages into it, beware!— that you don’t see it as a science-fiction book. Try not to derail into analyzing if the travelling is consistent (which I’ve found it to be), or if the presented philosophy makes sense. For me it’s a book about emotions, and the time travelling is the device that allows us to achieve some very high peaks.
By the way, as far as I can tell, this is going to be the first time ever I’m going to watch a movie after having read the novel, and not the other way around. Let’s see how disappointed I will be!
P.S.: I’ve recently passed one of the three courses I had set out to pass when I went VAC, yay! Only two to go.
I have this recurring experience in my life whereas I’ll regularly be late in my discovery of something. It happens with any kind of stuff, but particularly with with music: how can it be that I discovered this artist so ashamingly late? For example, I only came to hear about Anthony and the Johnsons a couple months ago, in 2009 already... (Clearly some processes in my life could be streamlined.)
Anyway, this is not about music, but some of the other kind of stuff. Through the magic of the intarwebs and by virtue of people who care to compile a list of worthwhile links in their homepages (I should definitely do that some time), I came to know about the PostSecret project (blog, page, wikipedia). The premise is simple: anonymous people send in a self-made postcard with a short message, which must be a truthful secret never revealed to anyone before. Every Sunday, the creator of the project (Frank Warren) will post to the site a selection of the received postcards.
If you visit during this week, you’ll see a themed edition of sorts, dubbed Father’s Day Secrets. I urge you to take a look, now or after finishing this post. I can’t even begin to describe how powerful the experience was for me. Upon introspection, I think it’s because each one of these secrets is a concentrated drop of empathy waiting to hit your brain. If you’re not too keen on empathizing with others, maybe you won’t enjoy the site after all. (And, of course, not all of these drops result equally powerful to one’s sensibility.)
There have been several books published with many of such postcards, which is great since unfortunately each weekly set disappears from the blog upon the arrival of the next one (or shortly thereafter). If you use Google Reader, that’s great because it keeps a history of all posts since 2007 (though the images don’t seem to load for the oldest of them). Alternatively, you may visit the Spanish translation, which displays the original images in addition to their translation, and allows to visit older entries.
Finally, I can’t but help to show a couple here. First, the really sad ones:

Then, a very light one:

And then, this one:

Spanish having accented letters, it is very easy to get misspelt artist names in Last.fm, and since Last.fm doesn’t do auto-correction for them (only for track titles), you end up with two different pages for a given artist. If you’re an elitist, refrain from enjoying music from artists whose misspelt name has more listeners than the correct one (and good luck).
The “automatic formatting” feature in Vim is rather useful, since you can edit text mid-paragraph and have it automatically “flow” to the desired line length, like word processors do. I wish, however, it was context sensitive (but I guess only Emacs must be able to do that): using it for e-mail or LaTeX sucks because then you must deactivate it when editing the headers or the preamble. But, alas, a shortcut for easy activation/deactivation is a mess, because there’s no toggling for multi-valued, comma-separated options in Vim AFAICS. (The shortcut can be done, though.)
I’ve watched recently the two late talks by Randy Pausch, a professor at Carnegie Mellon University who passed away in 2008 due to pancreatic cancer. These are Time Management and, of course, The Last Lecture: Really Achieving Your Childhood Dreams. I was profoundly impressed, for I found him to be really, really inspiring. Once I recover from that, I’ll watch them again and take notes. (Interestingly enough, he was an Unitarian Universalist.)
The stupid riddle in last week’s items was simply a list of middle names for some well-known people (Knuth, Raymond, Stallman, Torvalds and Dijkstra). The addendum was Icaza’s second surname.
I’m rather fond of top-posting in private correspondence, since I see little value in replying inline and only in few occasions quoting really makes a difference. I prefer my private correspondence, particularly if not technical, to be snail mail-like, with each reply standing on its own. (In that case, it is of course one’s responsibility to ensure you don’t overlook in your reply any of the topics or questions in the original text.)
I’m a fearful person. I haven’t really stopped to think why, but the truth is that I’m always fearing that things will go wrong, eg. that something good that’s supposed to happen in the near future will not happen in the end.
Last year I mentioned being in Dublin for the summer in an internship at Google. Well, that went well, and during this year I’ve been interviewing for a full-time position. See, I kept rather secretive about this, because I was utterly convinced I wouldn’t make it (some kind of pessimism as a defense mechanism, I’ve been told).
Even now, two months after having been told that I made it, and even with the contract signed, I still have fears that something bad will happen that’ll prevent me from starting there in August. But, well, now that I’ve bought my tickets, I think it’s about time to say: I’ll be moving to Dublin in a couple months to start as a reliability engineer at Google. It feels strange buying a one-way ticket, and at the same time so natural.
For me, the part that excites me most about this whole business is —drawing an analogy from the world of video games— finally jumping to the next level in life. I’ve been a student for too long already, and life forced me to move back to my parents’ even when I had supposedly moved out permanently. It’s time for me to move on, and it’s very helpful to have solved «the job issue» already, since I have a lot of (other) work ahead of me.
On the whole debate about abortion, you could say I’ve always been (and still am) in the so-called «pro-choice» side of things. There’s however a recurring thought I’ve been hitting myself with lately, and which I’d like to share now.
For me, the whole «pro-choice» business is based on, well, choice, and the right to choose regarding oneself. I’ve always argued that a country having legislation that allows for abortion doesn’t mean that everybody should be following that path, and pregnant women for whom abortion is morally unacceptable are free not to pursue it.
In a quest for trying to illustrate to myself why «pro-life» people don’t find that argument compelling at all, I came with the following toy dilemma: imagine your country would start to allow for capital punishment if —and only if—, provided that the law says the crime warrants it, the victim or the family of the victim say they’d like for that.
Would I not be campaigning in the streets against this? Why would that be okay, but on the other hand I’ve regarded «pro-life» campaigning as intolerance in the past? Why does self-righteousness come so naturally to everyone of us?
World. Not a simple place.
PS, I’m pretty much convinced that the two posed examples are fully comparable for the purpose of this discussion, yet I find it very acceptable to be «pro-choice». The point is not on the rightness of wrongness of either belief, but on how we regard those who won’t think like us.
Last week I borrowed from the library El peso de la paja, Terenci Moix’s memoirs. I find it intriguing how having his memoirs in my hands only managed to trigger the sad memory of the day he died after some days, and not immediately.
Terenci Moix died in April, 2003. For some time by then, I used to listen to La Ventana, a radio show conducted by (the oh-so-marvelous) Gemma Nierga, where Terenci would share a space with Boris Izaguirre a couple times a week, I think. I remember myself most avid for that half an hour: I found their talk fascinating. (I must investigate some time, or have somebody find out, whether it’d be possible to access to those recordings now. It is something I’d love to have, for those inevitable days of melancholia.) In the preceding months, too, I had started reading some of Terenci’s books: El día que murió Marilyn, Garras de astracán, and also Preguntar no és ofendre.
I clearly remember myself crying in the rest rooms on campus while listening to La Ventana that day. He was probably one, if not the first public character who died while being a dear part of my life, and I was also young and easily affected.
For a long, long time I’ve had some kind of «reader’s block». I used to read an awful lot in my teen years and very early twenties, but somehow all that stopped when I started doing computery stuff and despite my repeated attempts to get back on track. I’ve also elaborated an assorted set of explanations for this. The latest of them, derived from the pleasure with which I’m reading Terenci’s memoirs, that it may be the time for me to look more into non-fiction, which I’ve always neglected.
Cinema was a very strong force in Terenci’s life. Not only he wrote important texts on Hollywood movies from the 40’s, 50’s and 60’s (and a History of cinema together with Pere Gimferrer that got stolen and lost forever before publication), it also influenced his views of the world. Early in his memoirs, the following text is found, which I found moving:
[...] solía ensimismarme en juegos siempre solitarios o en la contemplación de unas imágenes que constituyen mi primer recuerdo, el primer signo reconocible de mi vida.
Era la vidriera de la entrada el punto fijo de aquella mi observación diaria, de aquel ensimismamiento. Y no porque a través de los cristales se vislumbrase la calle como punto posible de escapatoria —tan estrecha era que no me permitía imaginar horizontes—, sino a causa de los carteles que solían dejar semanalmente varios cines de la barriada.
Eran pasquines amarillentos, impresos a toda prisa en cualquier imprenta barata de las cercanías. Tipografías tristonas que anunciaban, en letras rudimentarias y carentes de imaginación, los títulos de las dos películas de la semana, amén de las frases de publicidad destinadas a pontenciar sus atractivos. En medio de aquella composición desangelada, aparecían dos recuadros que contenían a su vez dos folletos de colores. Eran los inolvidables «programas», que los demás mortales obtenían de los cines, previo pago de su localidad, y que a mí me llegaban en sobreabundancia y sin moverme de casa.
Permanecía sentado horas enteras ante una de las mesas de mármol, y desde allí fijaba los ojos en los carteles de la vidriera, y muy especialmente en los reducidos programas cuyos rostros, preferentemente yanquis, llegaron a ser tan habituales como las clientas, las vecinas y los familiares. Y aquí me corresponde agradecer con ternura aquella costumbre, hoy perdida, el hábito entrañable de una época que todavía no había descubierto el derroche de las grandes campañas publicitarias. Pues incluso los anuncios más sofisticados eran grises como el ambiente y olían a rancio como nuestras casas.
Los cines humildes de mi ciudad anunciaban su mercancía por las tiendas de los barrios y éstas recibían a cambio un par de localidades válidas para días no festivos. Y a fe que la Granja de Gavá estaría considerada un foco de atracción de vital importancia para que tantos cines distantes entre sí fueran a dejar en mi vidriera sus reclamos y en mi bolsillo sus localidades. Esta concesión me convirtió en un Pequeño Lord de los cinéfilos en gestación.
Cada semana, esperaba ansiosamente al encargado de cambiar los carteles. A primeras horas del lunes, tomaba un minúsculo taburete, que nunca me ha abandonado, y me sentaba junto a la vidriera, atisbando hacia el fondo de la calle, por donde solía llegar el cartelero. Y a veces constituía una espera larga porque, en su reparto, tenía que detenerse antes en otras tiendas o simplemente se entretenía dando localidades por lo bajo a alguna vecina de buen ver. Cuando el hombre llegaba, corría hacia él y me aferraba a sus piernas, suplicando que me entregara los carteles sin esperar a los demás. Y en ocasiones me reñía, porque en la impaciencia por aumentar mi colección arrancaba los pequeños folletos de colores días antes de cumplirse el plazo de exhibición.
Mientras el resto del mundo tenía que conformarse con una sesión de cine por semana, yo pasé mis primeros años consumiendo una sesión diaria. Porque a fin de aprovechar las localidades gratuitas, mis tías casi me obligaron a faltar al colegio todas las tardes de mi niñez. De manera que, gracias a la bendita incongruencia de mi familia, mis días están más llenos de cine que de estudios. Y, así, en lugar de deformarme la Iglesia lo hizo la Metro Goldwyn Mayer.
There’s stuff that I feel doesn’t warrant a full blog post, but won’t fit in 140 characters either (and I prefer the blog anyway). Because of this, I’ve decided to start bundling such bits together in a single post that’ll get flushed each Sunday if there are any items in the queue (this period could be adjusted later). The guideline is, roughly, “the item fits comfortably within a paragraph”. I think flushing weekly, independently of the numer of items, could be a good idea, because some stuff may perish. I wonder if it’d be worth trying that out for DeveloperNews.
This comes reposted from Twitter: if you’re mathematically inclined, particularly if only very slightly like myself, I invite you to spend ten minutes reading EWD975 (pdf), «On the theorem of Pythagoras» by Dijkstra. Who would’ve said that Pythagoras’ theorem could be abstracted into something that applies to all triangles and not only right-angled ones? (I hope to blog again about Dijkstra within the next weeks.)
Here’s a small and stupid riddle: “Ervin, Steven, Matthew, Benedict, Wybe.” I’ll tell you how long it’s been sitting in my computer: 6 years (it shows, too). Here’s an addendum: “Amozurrutia”. (Solution in the next issue.)
I’ve started wearing a white knot, a badge that’s been campaigned as the symbol of marriage equality (i.e., supporting marriage of same-sex couples). I’ve never worn badges before, and I’d like to salute all the not queer people that support this cause and have even started wearing a white knot themselves from time to time.
Again from Twitterland, this time Bryan O’Sullivan’s, an article in The Atlantic about a 70-year study of a couple hundreds Harvard students, pursuing some insights about what are the key factors for a happy life. Interesting enough read, at least for this uneducated mind in such matters. A quote:
[The study director] was asked, “What have you learned from the Grant Study men?” Vaillant’s response: “That the only thing that really matters in life are your relationships to other people.”
The world is a complex place, and I always feel easily belittled when talking about its matters. The world is complex, and what follows is a very simplistic approach to things, but it can be surely excused, because the view of this matter as it lives in my head is, after all, very simple.
This is not really about politics, but about the welfare state and some of the comments I occasionally hear or read regarding social expenditure and incremental taxes. Comments in the line of not wanting to pay for others’ benefits, since one’s surely worked their ass out to earn everything they have now, much more than all the lazy people that exist in the world.
I always feel tempted to take out the machine gun and shoot some questions around: think about all the efforts you’ve made to arrive to where you are now, and answer: was being born in a developed country earned by you in any way? Or being born in a family that could provide food and shelter and hopefully love every day of your life? Your family not needing that you would start working at the age of 14? The intelligence that allowed you to make it through college? The money in your family or from other citizens’ pockets that allowed you to do so? The lack of serious health problems that came to disrupt your life, or the magical medicine that saved you from them?
I always feel tempted to take out such machine gun, but I never do: if last night, while making this reasoning to a like-minded friend, my voice almost broke, I can see how things could go very wrong when talking to somebody who doesn’t realize that, for every big effort and hell-like situation they went through in their life, the world had a bigger gift in place for them.
In a couple months I’ll be starting a new job that’s going to pay me well, part of which will be taxated at the highest rate. A small chunk of me wants not to like that, but a bigger part prefers to learn to regard it as a honor and a privilege. A privilege because arriving to such position means that I’ve been immensely lucky and covered with gifts in my life. A honor because it means I could be contributing to a system where people without private medical insurance get the most expensive of treatments without a blink, or get put through college without strangling their following years. It’s only too bad I don’t find it in me (yet) to get rid of half my earnings right away.
Doubt is a constant in my life, in the sense that I constantly challenge the way I act in my daily doings and strive to do better. It is a pure joy, then, and a big gift, that at least some beliefs are in place and set in stone, to act as foundations and not subject to challenge.
This past week hasn’t been a very good one. Exams have started, and they always manage to get my mood to swing dangerously low, which in turn makes me see everything inevitably black and jeopardizes my ability to study. Throughout the year I’ve managed to pass 3 courses already, and I’m hoping to pass 3 more from now until July 16th, when I’ll take the last of this set of exams, if I can manage to pull that out. But then there’s the Debian stuff too: these past days I’ve been having a Debian crisis of sorts, coincident with my return from the Release Team meeting in Cambridge on June 1st, and evidenced by my lack of interest in procrastinating studying for my exams by doing Debian work.
I came back sensibly disenchanted from Cambridge, mainly due to the realization of a couple of things. One, that I have a vision of management that is not globally shared by all members of the team, or at least one wouldn’t say so by looking at some of the courses of action proposed there. And, two, that I lack the strength to impose this view of mine upon others, and that I’ll prefer to back off and concede rather than fight for it (but, sadly, this is nothing new in my life). This, combined with the constant feeling (promulgated by myself, mostly) that I’m never performing well enough in my role, and the accumulated abundance of tasks, have contributed to a rather stressful couple of weeks, and made me end up out of stamina for Debian.
Now, I think I’m fortunate enough that I can be conscious that this “paint it black” mood is probably playing an important role in all this, so I’m not despairing. It’s only natural, I think, to go through low-stamina periods at times. It has certainly happened to me in the past already, and slowing down for a bit and spending more time in other activites did serve me well in such occasions. However, it’s been already more than a week off this time, and things are not really improving, so that’s why I’m going to go VAC for some time; it should also help with the studying, I hope. There are some tasks, like training new assistants, for which I would like to say, “No, I’ll still be taking care of that”, but that would miss the point, since the point of this VAC for me is not feeling guilty at all if I feel like doing exactly zero Debian stuff throughout all of it. But well, I’ll try to prioritize that should I find some time and energy to spend in Debian.
I’ve felt tempted to cancel DebConf, but I’m not letting that get painted in black too, at least not yet. Even if Debian is not joyful for me at the moment, it has been fully so in the past, and I’m hopeful it’ll be again soon.
Yesterday I released Minirok 2.0, which is basically a port of Minirok 0.9 to KDE4, with a couple nice features thrown in, like undo support in the playlist, which I can’t live without.
Minirok is a very simple audio player written in Python and modeled after Amarok 1.4 (the interface is almost identical). I’ve been told by several people already that they’ve happily migrated to it from Amarok, after being dissatisfied with the 2.x series. Beware, though, that Minirok is very simple, has limited functionality by design, and may not be what you’re looking for. For example, there’s no collection built from tags, only a tree view of the filesystem. See the homepage for details.
Minirok is known to work well with KDE 4.2 and Qt 4.5, which are both in Jaunty and Squeeze already, but it should work with KDE 4.1 and Qt 4.4 as well. The package is already in unstable, feel free to grab it from here for other distrubtions.
A note for users upgrading from 0.9: Last.fm submissions are disabled by default now, instead of enabling themselves opportunistically upon the presence of lastfmsubmitd (which could be not configured). If you want Minirok to continue submitting to Last.fm, you’ll have to enable it in the preferences dialog.
Via Planet Bazaar, this paragraph from a post by Paul Hummer caught my attention (emphasis mine):
Finally, I wrote an open ended question to myself to think about, and thought that maybe I’d throw it out here as well. For context, Jono Bacon was talking about community (y’know, plugging his book and all that :), and I wrote “Open source thrives on a meritocracy - how can we prevent feelings of entitlement?” I see this a lot in open source communities: people earn their “commit rights” and then start behaving like everyone owes them something. Collaboration is about peers, not about hierarchies.
Now I’m reposting that here because, although I’m not very keen on philosophizing myself, something in that thought was of immediate appeal to me.
Via blaxter, I got to know autojump. It hooks into your shell, tracking the directories you visit, and provides a “j” command that allows you to cd to a directory by providing a string or regular expression that matches the directory you want to visit. To decide among various possibilities, the code has gotten to know the frequency with which you’ve visited each directory, and how long you stayed on it (or, rather, how many commands you execute in it, it seems).
I’ve been using it for a week now, and it indeed improves The Shell Experience™.
By the way, if you’d rather not execute a Python script with every prompt (!), there seems to be a small sister project/clone written in shell and awk here.
Ok, here we go again. I do hope somebody, somewhere is finding these
posts of some use. *g*
Changeling: I’ll confess I’m not very fond of Angelina Jolie, and I watched this movie exclusively because it came from Clint Eastwood. I gave it 5/5, which may be a tad too much, but that’s how I felt right after it finished. It’s not a light movie, but I do think everybody should give it a try when they find themselves in the mood.
One Fine Day: This romantic comedy doesn’t have much of a high rating on IMDB, and maybe I’m too fond of George Clooney myself, but it pleased me enormously. Thanks to Marc ‘HE’ Brockschmidt for having recommended it to me in the first place, though probably you shouldn’t bother if you can’t stand the genre at all. Ah, and Michelle Pfeiffer.
Sling Blade: I was left deeply in awe by this movie, and even more so when I found out the director, writer and main role are all the same person, Billy Bob Thornton. One of the things that pleased me the most was the ending, because I found it included a good share of food for thought, particularly regarding how the characters would get on with their lives afterwards, which is not shown. Again, not a light movie, I’ll reckon.
Sideways: I enjoyed this movie a lot, and I should watch it sometime again, because I think I didn’t scratch it enough. Which is great, because it’s rather difficult combining hilarity with reflection. Viva la escena in the fast food restaurant.
Tiempos de azúcar: I’ve comitted to watching some more Spanish films, and this one is the more remarkable of those I’ve seen as of late. This is a bittersweet love story spawning more than 30 years, and has Verónica Forqué and Charo López in wonderful supporting roles. I should watch more films of Charo López.
Isaac watched Love Actually recently, and I oooh’ed quite a bit when he told me, because that movie has one of my favourite or should I say powerful scenes of all times for me, and recalling it brings me instant joy and often instant tears. I think these three (spoiling) minutes are so powerful because, albeit they are fully anticipated for the spectator, they come as a complete surprise to both protagonists (obviously to her, but also to him, given the dialog that takes place once she gets down the stairs; that tiny dialog is in fact the most powerful bit of it all).
This is too good not to blog it, but it’s horribly old too.
While composing a message for #522776, I wanted to see where the
output of locale-gen is stored (/usr/lib/locale/locale-archive, it
seems), but my first try ended up with me looking at
/usr/share/locale, where I couldn’t help but notice that Inkscape
comes with a translation to, wait for it... Piglatin (apparently
since 2006). There sure are people with lots of spare time, and
I sure hope he did the translation programmatically!
Anyway, here’s the obligatory screenshot, including some out of date strings:
If you’d like to run it yourself, you’ll need to create an
en_US@piglatin locale first. I did it by sticking this
file in
/usr/share/i18n/locales/en_US@piglatin and adding a
line “en_US@piglatin UTF-8” to /etc/locale.gen, etc.
Following-up to the story of having all the movies I’ve watched in a PostgreSQL database, I now have a tendency to run the following query after wathing one, to take a look at what other movies I’ve watched in which some of the actors also participated:
movies=> SELECT s.name, s.title
FROM seen_cast s JOIN seen_cast s2 USING (person_id)
WHERE s.movie_id != s2.movie_id AND s2.title = 'Sideways'
ORDER BY name ASC;
(Replacing Sideways with the movie I just watched, of course. Also, “seen_cast” is a view, that’s why it looks as if the database is not normalized.)
So, apart from informing me that I have seen Paul Giamatti in other five films in addition to Sideways, the above query returned the following rows:
name | title
--------------+--------------------
Adolf Hitler | Germania anno zero
Adolf Hitler | The Good Shepherd
Apparently, Adolf Hitler has a page in IMDB, and is credited (generally by IMDB only, not by the film credits themselves) in every film that shows any archive footage of him. Which, as of today, are more than 400.
He oído rumores de que Mercadona ha empezado a quitar marcas conocidas de sus estanterías en favor de sus marcas blancas, dejándolas en solitario. Yo no soy analista de mercado, ni trabajo para Mercadona, y siempre que ha salido el tema he dicho que los de Mercadona han demostrado muchas veces no ser tontos en absoluto (han hecho apuestas muy arriesgadas, como por ejemplo quitar la carnicería al corte), y que si han empezado a hacer esto, es porque se lo han estudiado muy mucho.
Hay sin embargo un efecto o teoría mía que me pregunto si habrán tenido en cuenta. Mi teoría es que a cada persona que compra en un supermercado, le da bastante igual marca blanca que marca pija en la mayoría —o una buena parte— de los productos que compra (y por tanto generalmente preferirá la blanca por ser más barata). Pero cada cliente luego tiene un pequeño número de productos para los que sí quiere determinada marca y no cualquier otra. La clave de esta teoría es que este pequeño grupo de artículos es particular de cada cliente, es decir, distinto en cada caso.
Es muy posible, entonces, que si Mercadona mira las estadísticas de ventas de, por ejemplo, las pastas, vea que un 85% de la gente que compra pasta se la lleva de la marca blanca, y sólo un 15% opta por Gallo. O si mira la leche, un 65% marca blanca, 20% Pascual, y 15% Puleva. Es decir, que es muy posible que la marca blanda le pegue vueltas a las demás para la mayoría de productos en los que compite.
Ahora bien, ¿qué pasa si uno dice: “pues elimino todas las marcas no blancas, y que se joda un 20% de la gente, que seguro que encima la mitad se aguantan y se pasan a mi marca blanca”? Pues lo que pasa es, si mi teoría es cierta, que la afirmación “sólo un 20% de la gente será infeliz” es falsa. Lo más probable es que el 100% de los clientes se molesten, porque prácticamente todos tendrán al menos un producto para el que no acepten la marca blanca.
Yo creo que a Mercadona le gusta jugar a tirar de la cuerda a ver si se rompe, jugando siempre con estudios sólidos detrás para que haya pocas probabilidades de que se rompa. En el Mercadona de al lado de mi casa, sin embargo (y supongo que en todos), la fruta se puede comprar ahora al peso y no por barquetas.
I’ll take chance now that microblogging seems to be fashionable in Debian to comment this.
Luk did create a while ago an Identi.ca account to send updates about his work on Debian, eg. “updated chroots for goetz (official alpha buildd)”.
I’ve created an account for myself, and intend to send there the same kind of Debian-related updates – let’s see how it goes. We’ve also talked about setting up one for the release team as a whole, but we’ll see about that.
Relatedly, now that I’m a tircd user and Twitter lives now on my Irssi (thanks, Decklin!), I can say it’ll be easier to update my account there, which I’ve had for a while. It’ll be personal stuff, mainly, i.e. not intersect with the Identi.ca one.
P.S.: Apologies for today’s post in Spanish in Planet Debian. I realized right after Planet software had fetched it, and albeit I removed it from the feed I send to planet immediately, Planet seemed not to pick up the removal.
Marga escribe una entrada sobre las palomas de ciudad. Cuenta la historia de cómo erradicaron las palomas de Trafalgar Square en Londres una vez prohibieron dar de comer a estos animales.
En Alicante también está prohibido alimentar a las palomas. Hay unos signos en grande que así lo anuncian, so pena de multa de 601,01 euros. Este curioso número da cuenta de que la prohibición ya lleva algunos años con nosotros: la multa ya existía cuando aún usábamos pesetas, y era por entonces de 100.000 pesetas. Que, escrupulosamente traducidas a euros, son 601,01.
Wow, long time without one of these posts. I actually have material that will have to wait for the next issue already!
On Golden Pond: Henry Fonda and Katharine Hepburn play a delightful couple in their late years. He’s old and grumpy, among other things, and she’s kind and just gorgeous. Then a daughter comes to visit (the daughter is played by Jane Fonda, btw).
Eastern Promises: it’s been one year since I recommended in this very blog A History of Violence. David Cronenberg has done it again, again with the help of Viggo Mortensen. The scene in the sauna is magnificent.
L’auberge espagnole: a French guy comes to Spain (Barcelona) as an Erasmus student for a year, and meets with some other Erasmus students (and somebody else). Very enjoyable, and has a sequel that I haven’t seen yet.
The Visitor: I wish I remembered more about this movie, because it left me very pleased; that just means I can watch it again sometime, and says something about the movie too. An ode to people who believe in making good to others, but not a cheesy ode at all.
The Station Agent: this movie was sold to me on the basis that I’d just be watching life pass by through a small number of people. It really felt that way most of the time, and it wasn’t boring. As it happens, same writer and director than The Vistor above, Tom McCarthy.
I’m the kind of guy that keeps a list of all the movies he’s watched, with dates. Additionally, I’m the kind of guy that used to keep such list in an SQLite database, and that keeps it in a PostgreSQL database now. Heh.
I used to register just the day in which I watched a certain film. When moving to Postgres, I decided to record the time of day as well, which can come handy for those times where I’d watch 2 films in the same day, in order to know which one came first. (I seem to have a small number of dates registered where I watched 3 films on the same day.)
So, I went for a “timestamp with time zone” column. As its name seemed to promise, I was expecting for it to store the absolute timestamp of the event, plus the time zone it occurred in. But it doesn’t work that way: a timestamp with time zone column only stores the absolute timestamp of the event, but not the associated time zone information. When returning the data to you, the event will always be in the local time zone, meaning that the only use for the “with time zone” part is that you can feed PostgreSQL dates in different time zones, and it will know to convert them all to absolute UTC before storing them in the database.
This was a tad upsetting, because it meant I was actually losing information. For me, the most relevant information to store was the date of the event (as in, which day), and I was only storing the time for the purposes stated above. Should I move to a different timezone, either permanently or temporarily, some or all of the dates could very well be off by one day.
The proper solution if you’re such a pedant is to store in an additional colum the time zone, either as a symbolic name, or as a numeric offset. But I don’t care that much, so I’ve gone for a “timestamp without time zone” column, which solves the problem just fine: give me the date this event happened, in whatever time zone you happened to be at the time.
By the way, one of my main objectives with keeping my list of watched movies in a database was to be able to quickly answer the question: What other films have I watched this actor in? Is a question that I make myself surprisingly often (because I’ll know I’ve seen a face before, but will not remember where), and an SQL statement is oh-so-much-more convenient than visiting an IMDB page and scan it for titles you think you’ve watched.
I’ve had “smart quotes envy” for a long time now. I particularly like them in contractions, and I think they make the text more pleasant to read.
Of course, I’ve been using them on my web pages and blog for some time now, since they are well-supported by browsers. TeX/LaTeX deals with them fine as well, even by just typing ASCII in the source document. Mostly only mail was missing.
I’ve delayed using smart quotes in mail for a long time, since they imply a lot of UTF-8, and there was/is still quite a lot of software and setups not ready for it. But we’re in the 10th year of the 21st century already, and I was getting envious of the increasing number of people that are using them for e-mail.
So I’ve recently switched to smart quotes in my outgoing mail. I realize this goes against the “Be strict in what you emit and liberal in what you accept” principle, which is a fine one, but I must confess aesthetics have won the battle for me in this case.
I’ve already received one complaint from a person using broken software, asking me to send more “comprehensible and correct messages”, and referring to UTF-8 as WTF-8. I wonder how many people to whom my mails are targetted at will have trouble reading them now. I don’t have comments enabled in this blog yet I’m afraid, but feel free to participate in the poll.
It seems python-dateutil is the Python module that can bring some sanity to time handling in Python. I’ve finally found a module that can these two tasks:
- parse dates in several formats
- provide machinery to make the standard datetime talk timezones
For the first item I was using mx.DateTime, but it seems dateutil’s parser is very good too.
The second item has been bugging me for a long time. You have the datetime module in the standard library providing nice object-oriented interfaces to date and time, but what good it is if you can’t even use it to print a date in RFC822 format!
At least now it’s possible:
from datetime import datetime
from dateutil.tz import gettz
print datetime.now(tz=gettz()).strftime('... %z %Z')
(Oh, sure, that simple task can be done directly with the time module. But if you’re dealing with HTML templates, you really want to pass date objects around, and let the templates print them one or more times in whatever format they need, including %z or %Z. And with dateutil you can use any timezone, of course, not just the current one.)
The dateutil module also offers interfaces to do relative time calculations (what date will it be in 47 days?), and some stuff for recurrence rules. Check it out!
I’ve been working as of late with psycopg2, the Python bindings for PostgreSQL. Documentation is a bit, erm, lacking. You can get the basic stuff working by reading Python’s DBAPI-2.0 specification, since psycopg2 follows it, but (as I’ve only recently realized) discovering the extra features that exist needs you to poke the source.
The other day I was wanting to pass to the execute method of a cursor
a sequence to fill the value list in a SQL “IN” statement. The DBAPI
spec does not mention this usage at all, and a cursory question in
#python told me it wasn’t supported (required?) by the spec.
It is, in any case, supported in psycopg2. You just need to
import psycopg2.extensions
and it just works: you can pass tuples, and they’ll be converted to a value list. If you want to be able to pass lists as well:
from psycopg2.extensions import SQL_IN, register_adapter
register_adapter(list, SQL_IN)
There is also a row factory in psycopg2.extras that offers a dictionary interface, instead of tuple-based.
Finally, I have no idea why, but when I started with psycopg2, I came to
get the idea that only named parameter substitution was supported
(INSERT ... VALUES (%(var1)s, %(var2)s)), but simple %s substitution
is also supported: just pass (of course) a tuple as the second parameter
to execute, instead of a dictionary.
Supongo que podría decirse que el principal propósito del arte es emocionar, y que la posibilidad de emocionar a otros con el trabajo propio es una de las características más envidiables de los creadores de arte. Hay muchas maneras de crear emociones, pero en esta entrada me centraré en el arte cuyo propósito es emocionar a base de belleza.
Lo que más me fascina de la emoción que surge sólo de la belleza es su imprevisibilidad. Si hablamos de emociones creadas por el contenido de una obra de arte, es fácil determinar de manera objetiva (o a partir de la experiencia) qué partes de la obra van a crear qué emociones, cuándo y con qué intensidad, al menos para una buena parte de la gente. Sin embargo, si hablamos de emociones creadas por la forma de la obra, ¿es posible determinar en qué instante o posición de la misma va a activarse el bit de la emoción en el receptor?
En lo que llevo de vida he escuchado miles de canciones, y un buen porcentaje me gustan o directamente me encantan e incluso emocionan. Como es natural, a los intérpretes de estas canciones no les sorprenderá saber que alguien disfruta con sus canciones.
Sin embargo, también tengo en mi cabeza (y es probablemente uno de mis bienes más preciados) un compendio de instantes dentro de algunas de esas canciones que me emocionan especialmente, que la voz se pega una carrera hasta mi bit de la emoción y me lo dispara de uno a dos o tres o cuatro.¹
Si yo fuera cantante, seguro que me emocionaría la explicitud de ver a la gente emocionándose con mi trabajo en los conciertos, pero creo que me satisfaría aún más soñar que una o dos o tres o cuatro de mis interpretaciones forman parte de esas colecciones de instantes tan exclusivas y valiosas, y me placería sobremanera ignorar cuáles serían tales momentos.
(¹) Qué maravilla las hipérboles de un solo dígito.
Aprendí mecanografía en el año 94, con 12 años. Haber sido llevado a clases particulares de mecanografía e inglés en aquellos años es algo por lo que siempre estaré agradecido.
En la academia de mecanografía había máquinas Olivetti Línea 98. Mi madre tenía también una, y en casa estuve prácticando con ella durante un tiempo. Al año siguiente (un año antes de comprar el primer ordenador) compramos una eléctrica.
Por aquella época, las máquinas de escribir más modernas (y que recuerdo que un amigo se compró) tenían una pequeña pantalla y memoria para poder escribir unas líneas en ella, y mandarlas «a imprimir» cuando uno estaba seguro de que no había errores.
La mía no tenía memoria, al menos no propiamente dicha. Tenía, sin embargo, función para centrar texto. Para hacer esto en una máquina de escribir es necesario conocer la longitud de la línea antes de empezar a soltar tinta en el papel. Esta máquina permitía, para implementar esto, teclear la línea a centrar al completo, a ciegas, almacenándose en un buffer que luego era impreso (centrado) todo de golpe.
A falta de memoria-memoria, yo me decidí a hacer uso de esta funcionalidad como sucedáneo: tecleaba mis líneas a ciegas, centrándolas todas pero añadiendo espacios al final para obtener alineación a la izquierda, y agudicé la habilidad de detectar si me había equivocado sin mirar al papel.
Habilidad interesante si hubiera acabado de mecanógrafo o transcriptor, pero que hoy he perdido ya, al menos en gran parte.
If you would have been disappointed if Lenny would’ve shipped without
libpam-krb5_3.11-4_armel.deb, you must know we were this >< close to
doing precisely that, thanks to a debatable behavior of the britney
implementation in use and some rather unfortunate circumstances. (You
can read this #debian-release backlog
if you’re interested in the details.)
If we noticed it, it was thanks to the britney2 implementation by Fabio Tranchitella. We’ve been running an instance of it in a separate server for some time, to see if it was ready for production by comparing results between the two britneys. Truth be told, I’ve ignored all those mails since about the freeze started, and today after the last britney run for Lenny I thought: “hey, let’s see what britney2 thinks”.
And that’s what happened.
En casa, a comienzos de los años 90, había una cinta del disco de 1989 de Julio Iglesias “Raíces”. Es un disco de medleys (o popurrís), en el que supongo que el cantante se decide a hacer homenaje a un número de canciones y estilos que forman parte de sus, heh, raíces. Pero bueno, ése no es el asunto.
El tema es que la primera canción que se incluye en estos medleys es Tres palabras, de la que se incluyen los siguientes versos:
Dame tus manos, ven
toma las mías
que te voy a confiar
las ansias míasSon tres palabras
solamente
mis angustias
y esas palabras son...
Con tal mala fortuna, que en lugar de seguir esos versos con “Cómo me gustas” como en el tema original, el medley salta a la siguiente canción, Perfidia, que dice:
Mujer, si puedes tú con Dios hablar
pregúntale si yo alguna vez
te he dejado de adorar
Lo cual a mí de pequeño, que por no saber no sabía lo que era un medley, ni que todos aquellos versos pudieran existir fuera de la voz de Julio, me suponía (como diría quien yo me sé) un quebranto: ¿qué comino pintaban tres palabras tan importantes siendo “Mujer, si puedes”?
Luego me hice mayor, y conocí la canción en otras voces, y ya se me despejaron las dudas.
Via this article in French (which I found a very interesting read, btw) I found out that the version of Woody Guthrie’s song This Land Is Your Land that was sung in Obama’s celebration was the unabridged one, and that Pete Seeger himself (aged 89 now) was on stage to sing it together with Bruce Springsteen. You can see in the video he was visible moved, and that rocks. According to the post in the Le Monde Diplomatique linked above, Obama also signed a couple years ago the petition to give the Nobel Peace Prize to Seeger.
Many things could be said about Leonardo DiCaprio. Today, he just deserves an entry in this blog for pulling out, at the age of 18, the character of Arnie Grape, the mentally challenged brother of Johnny Depp in What’s Eating Gilbert Grape.
Asheesh Laroia explained how to use ssh as a SOCKS proxy if you’re behind a firewall that allows you to ssh to some machine not restricted by it: ssh -D. (I don’t know how common such firewall setups would be, but the one at my Uni does indeed allow ssh to the outside over authenticated wireless.)
With -D, ssh will listen in a local port, and behave as a SOCKS proxy. Set it up like this:
% ssh -N -f -D localhost:4444 external-machine.example.com
And then you can point your SOCKS-capable application at localhost:4444. Chances are, however, that the application you want to use doesn’t support SOCKS (like, in my case, Git). You can use tsocks then, which LD_PRELOADS a library that will divert an app’s TCP traffic through the SOCKS proxy. To use it:
% cat >~/.tsocks.conf
server = 127.0.0.1
server_type = 5
server_port = 4444
% tsocks git pull
AIUI, this is better than setting -L forwarding because you don’t need a
forward for each host whose port you want to access. If you’re
interested in starting ssh in SOCKS mode from .ssh/config, the
configuration item is DynamicForward.
I’ve been subscribed to the Git mailinglist for three weeks now, and I’ve finally seen in action what was already imaginable by looking at their git log history: they not only review the code for the patches that go in (as in many other projects, that is), but also review the accompanying commit messages, in order to ensure they meet certain quality standards. More than once already I’ve seen an otherwise-fine patch get resubmitted in order to gain a more meaningful or thorough commit message.
I’m sure there are more projects that do this, but alas, I haven’t been in any of them (nor in that many projects in general, for that matter). It’s very exciting for me to see it in action, because quality commit messages are high in my “Grokking VCS” list.
Ideally, a commit message conveys all the necessary information the maintainer of a project needs to understand your patch and its benefits, in particular those bits that don’t fit as comments in the code. If you have to accompany your patch with rationales, wouldn’t it make sense to include a condensed version of them in your commit message? If you’re writing messages for a project of your own, please think of future people dealing with your code, particularly if it’s a public project. (It takes discipline in addition to being convinced of it, though.)
Commit messages are also great because they allow you to be verbose, without cluttering the code with information that’s only relevant in the context of the change, and not to the final code. There is however an (actually-not-so-fine) line between what should be in the commit message, and what should be as comments in the code, and I think we commit message enthusiasts should watch out for that. Take, for example, 39c19ce. I think a short comment saying “Don’t call rev-parse for each blamed line” would have been a perfect companion.
There must be somewhere a document explaining with more detail what makes a good commit message. If you would recommend any, please let me know (but I’m not interested in documents that explain how to format your commit messages).
Romain and Zack have a couple graphs of Vcs-* fields that show that Git usage is growing, but that Subversion’s is still way higher.
Here’s another take on the matter:
as of today, there are 3348 packages with Vcs-Svn in unstable, and 1145 with Vcs-Git.
if we group those packages by maintainer and we keep the top 20 for each VCS, 6 of them are teams for Git, versus 16 for Subversion.
if we count Vcs-* fields without looking at packages maintained by teams, there are 935 packages with Vcs-Svn, and 724 with Vcs-Git.
Conclusion: s/A better CVS/Your lowest common VCS of choice/. (It’ll be interesting to see what KDE and GNOME do about this.)
A while ago I dropped from a number of IRC channels, in a quest for a more productive work environment. The problem was that I look at my IRC window often, and if I see any windows with activity, I will go and read them.
Recently I’ve wanted to hang around in #git, because I was writing some (minor) patches and thought it’d be nice to be available there. This is a fairly active channel, and whenever there was activity, I couldn’t help go and look, knowing in advance it’d be (mostly) uninteresting for me.
So I concluded that what I really needed was to tell irssi: don’t tell me there’s activity in #git, unless somebody highlights me. And this is precisely what the activity_hide_targets option does. Just set it to a list of channels you want to ignore.
This has also allowed me to return to a couple Debian channels that I had dropped, and maybe I’ll add an extra two back.
This unofficial GR was brought to you with the help of:
- Julio Bustamante
- Placebo
- Rebekah del Rio
- Sigur Rós
- Queen
- Will Young
- Julie Andrews
Random Python 3 stuff that rocks or otherwise makes me happy (some of it in Python 2.6 already):
- initializing the default encoding from LANG or LC_CTYPE. Welcome to the 21st century.
- the new super(). Ever renamed a class that used super? Not painful anymore.
- abstract base classes. Mixin methods FTW!
- only new style classes. I’ll need time to stop inheriting from object everywhere, though.
- the .setter/.deleter attributes of properties. Nice idea.
- the nonlocal statement. No more abusing of lists to break lexical scoping.
- set literals. Because set([1, 2, 3]) is just ugly.
- 1/2 returning 0.5. For those of us who can’t learn to type calc instead of python.
Ah, seems the days of posting snow pictures in Planet Debian have gone, and in any case I don’t have pictures, but I’ll blog about snow nevertheless.
It never snows in Alicante, my home town. It’s by the sea in the south-east of Spain, and the winters are very mild there. I had only seen or touched snow once in my life, when I was about 7 and there was an outing in school to go and see the snow in some nearby mountain. I’m told it was crappy snow anyway.
Today we returned from the QA meeting in Extremadura, arriving in Madrid really early in the morning. Knowing this, I had arranged to stay with friends Sunday and Monday, spending the night at agi@’s place.
The house is in some mountain, at about 1800 meters over sea level, and there was plenty of snow. There was also a slope, and a plastic sled, so we did the obvious. It was fun, it made me happy, and I should pay Alberto another visit some other time with more appropriate clothing.
After a summer during which I didn’t get to watch many movies, I’m back on track now. Here we go:
A Raisin in the Sun: this is a magnificent film, almost a masterpiece. Story of a family when a large sum of money comes to disrupt their lives. You should watch it.
Happiness: this one is definitely a masterpiece, but it’s quite likely you should not watch it: many people find it very disturbing. If you think you could take it, though, I say go for it.
There Will Be Blood: it is a good film, and it wasn’t a waste of my time, but I do believe it’s hyped. If you ask me, I think it’s so high in the IMDB list because of its last scene.
Ataque verbal: if you’re into Spanish cinema, and are fond of conversations, you may enjoy it quite much: a film consisting of 7 conversations. It isn’t perfect, but it’s different and cool (I’ve watched it twice, actually). The director, Miguel Albaladejo, has some other fine films as well.
The Remains of the Day: England, 1930; Anthony Hopkins is a butler, and Emma Thompson the housekeeper of the house. Ivory at his best.
I had watched this film a couple years ago; having enjoyed it quite a lot, I went and read the book recently. Reading the book was a wonderful experience, so I decided to watch the film again. It is a very good and faithful script, but I think I enjoyed it this second time better.
Regarding the book, I wrote some bits about it here; from now on I hope to write something about books I read in this space. By the way, the cover of the book has some amusement in it, see if you can spot it.
This one didn’t arrive on time for the previous post, so here it is now.
I’ve been meaning to find alternatives to Konsole for a bit now. I’ve always wanted the ability to click on URLs in my terminal emulator and have them open on my browser, which the Konsole in KDE3 can’t do. When I learnt that KDE4’s Konsole can, I ooh-ooh-ooh’ed and I gave it a try. But whilst KDE3’s Konsole is a very good application, amazing, even, I found KDE4’s to suck in a variety of ways, including speed. And then my quest began.
I gave rxvt-unicode a try yesterday, and so far I’m very satisfied. I quickly managed to configure it to my taste; it has tabs, which I can’t do without, and you can click on URLs as well. These two features are implemented via Perl extensions because, yes, rxvt is extendable with Perl. These two extensions are not very configurable, though, so in order to have the Next tab/Previous tab movements use my preferred keys, I had to edit the Perl source and place it under $HOME.
From the “Software that recently rocked my pants” department:
Bitlbee: talk to your Jabber/MSN/Yahoo contacs with your IRC client. I was aware of its existance, never found the time to start using it. Shame on me! I run it on my laptop rather than on a server.
Matplotlib: plotting library for Python, and I find the results very pretty. Looks quite powerful, though I had slight problems figuring out how to do certain stuff.
Schroot with LVM: brilliant, particularly if you make use of sessions.
KVM with libvirt and virt-manager: seems to work well, almost as easy as VirtualBox, and (tada!) thanks to VNC you get detaching for your guests (no more Windows reboots if you restart your Xserver).
I also thank Martin F. Krafft for helpfully updating the encryption howto I followed for my previous laptop to mention that using a single encrypted device and LVM on top of it is (possibly) preferred nowadays. And to Simon McVittie for his idea of a small unencrypted Debian installation for recovery purposes in laptops without an optical drive.
P.S.: I can’t believe this shit about blogging every day in November.
I’ve read in a couple posts already that these changes to membership in the project would be appropriate to manage with a DEP: I agree.
I agree, not because I think the end result should be a DEP (maybe it should be a GR after all), but because of the workflow the DEP procedure proposes.
The key, in my opinion, is the driver (or drivers): somebody without an agenda but trusted by the project who should take care of fostering the discussion, summarizing it regularly while keeping all differences of opinion mentioned, helping the discussion get somewhere, and talking with people in the relevant roles if they, by any chance, would not participate in the discussion directly.
The result would then be a solution which everybody has had a say on, and a text that can be passed by GR with an overwhelming majority. Or, in the worst case, a GR where most of the points are common between options, but that has a couple choices for the most conflicting points, should that be needed.
I would love to see this happen first thing after Lenny: this can be so exciting if done well!
Every night I can, I sit with my sister and we read half a chapter of Le petit Nicolas, in French. I read aloud, and she fixes my pronunciation. She says I’m doing well!
I’m also getting to understand increasingly more and more (she helps along the way with that). I’m not sure whether it’s the magic of being written in French, or what, but I’m finding it very nice, and we laugh a lot.
Maybe if I’d be reading it in a language I was fluent in it would not be the same. But, if you ever end up learning French, be sure to give it a try!
Rules:
- One song per request.
Bonus points for for Message-Ids with “GZ” in them, eg.:
<20081009102833.GZ7010@chistera.yi.org>
(ObQuote: “In every job that must be done, there is an element of fun. You find the fun and... snap, the job’s a game!”)
I’m practically 4 courses away from finishing my degree (the course I failed in June, I passed a couple weeks ago). 4 courses which I loathe, but that I’ll get done this year. After them, I still have to prepare something akin to a “final project”, but that doesn’t worry me much, since it’ll be something I enjoy.
Apart from these 4 courses, I also have to take a couple non-computer science ones, whichever I want. I’ve decided to go for French lessons, since I’ve always wanted to learn French. I’m very excited for this.
Today was my first day. I had some previous, incredibly rudimentary notions of French already, but that didn’t help not to find it a bit daunting at first: there’s so much to learn. (I can’t remember at all how I felt when I started studying English, but alas, I was a kid, when you’re taught stuff you know zero about.)
I decided, though, to look it from a positive note, and make a pleasant experience out of it: not everyday one has the opportunity to dive into something completely new. I remained excited for the rest of the class, and I’m sure my classmates thought, “Why is this guy stupidly smiling from time to time?” (These are courses designed for freshmen, and I felt out of place. It seems 8 years is a lot of time.)
Incidentally, my sister speaks French, and she’s lent me some books and dictionarys from her time as a student. Some of these were books from Le Petit Nicolas series; I had read all of them during my childhood, in Spanish. I glanced through the French versions, and recognizing every single picture in them as something I had already seen, albeit fifteen years ago, was a very weird feeling.
For some time now I’ve been wanting to find a window manager that allows me to improve my current “implementation” of my workflow. I currently use KWin.
Since I’m a bit overwhelmed by the number of window managers available, some of them being perhaps too flexible, and since what I want is very, very specific, I thought I’d go for a lazy-web post.
My workflow is simple: I don’t do tiling, and my sole wish is that a simple key combo (Mod + one letter) can activate the window designated by that combo. Ideally I can statically assign combos to each application (or, in general, window properties) from the configuration file, but I can also use a special combo to change on-the-fly the current keybindings for a particular window.
At the moment I’m “faking” this with several methods combined:
keeping the number of windows in my main virtual desktop low, so that one or two Alt-Tab always bring me to the right window.
using a terminal emulator with tab support, so that I can switch terminal context on a separate level than Alt-Tab.
assiging a simple key combo to “next/previous virtual desktop”, and have in that one a number of small applications I only seldomly use.
minimizing to the system tray applications that support it, so that they are one click away (eg. Akregator).
using, when available, a global key shortcut to show/hide a window (eg. Minirok, or previously Amarok).
In my new world, I’d be able to just type Mod+M to activate Minirok, Mod+A to activate Akregator, Mod+B for the browser, and several others keybindings for each instance of my terminal emulator (one for my -release work, one for my ongoing Uni work, another for my ongoing programming work).
I really, really want that’s it’s just one Mod plus a key, because I’m convinced that’d work out very well for me (though it should offer a way to cycle among all windows as well). As for the rest, ability to display Kicker (KDE’s panel) gracefully would be a plus.
Please mail me with your suggestions, but I’d appreciate if you could include pointers to the relevant parts of the documentation, or even examples, of how to accomplish what I want. I’ve tried eg. awesome 3, and I only managed to get lost in Lua-land.
Here in Dublin I’ve been more “formally” introduced to the world of board games. Back at home, a friend had a copy of Settlers of Catan, and we used to play every now and then, but that was it.
Since I arrived I’ve been attending to weekly “board game nights”, and I’ve had the opportunity to play several more, most of which I liked a lot. I’ve played Agricola, Caylus, and Power Grid, all very nice. I’ve also played Race for the Galaxy, which I didn’t like much at first, but which I’ve come to enjoy a bit more as of lately. (All four are in the top-10 of Board Game Geek.)
I’m going to miss this when I get back, particularly since my friends will most certainly not be up to weekly games. I should investigate to see if some kind of board games club exists in Alicante. If you know of one, or are reading this and would be interested in organizing something, please let me know.
Update (2008-09-24): Since I last posted, I’ve also played Puerto Rico, Imperial, Neuland, and Shadows over Camelot.
I’m sure this was an honest mistake, but it sure was amusing:
Oh dear, more than a month without posting here. Let’s throw in some random updates:
I’m in Dublin for the summer, doing an internship at Google. I’m not exactly thrilled by the project they’ve assigned me to, mostly because it’s C++, but oh well. We’ll see later about getting a full-time position.
I’m not going to be at DebConf. Not only I got the “amount unable to fund yourself” box backwards (40% vs 60%), but the money I was hoping to spend in travelling was unexpectedly needed at home. I tried tricking Google into sponsoring me, but as I was told, “In Google we are generous, but not that generous”. This is the first DebConf I’ll be missing since I joined Debian.
I didn’t fare too well in my return to University. I abandoned most courses, and got my first failure (ever) in one of the few I didn’t abandon. I’ll continue studying one more year at least, but it’ll be hard deciding what to do if I don’t manage to finish by then, because I really, really need to go forward with my life.
I normally don’t play computer games, never been a big fan. Once in a while, though, I will try one, normally when some irc channel I’m in becomes a fan of it.
This afternoon Miriam introduced us to Krank. And now I’m hooked (though I’m not sure for how long, as the title hints).
There are basically four kinds of objects: two you can move, and two you can’t. The objective is to move the movable ones onto the static ones, in a way that makes the static ones disappear (according to the rules here).
I must say, I enjoy levels with links and anchors very, very much. Ah, and Miriam made packages available. (The code is Python and is public domain; the images are mostly free-for-non-commercial, hence the “-nonfree” suffix.)
Lucas asks about how he hates reformatting paragraphs in text documents he keeps in Git, because it creates unnecessary noise in the diffs. He also hates, though, not reformatting the paragraphs, because lines can become very long then, and he wants some kind of “smart formatter”.
My take on this is that you shouldn’t change your preferred workflow to adapt it to how your tools work, but to adapt your tools to work well with your preferred workflow (here, reformatting paragraphs). Or, even better, reading the manual page to discover that your tools can already adapt to it.
In particular, for this problem, I recommend reading diffs for text
documents with git’s --color-words. A couple screenshots to show it in
action:
My theory is that we humans have faith on stuff in order not to throw ourselves through the window. It is my current belief, though, that one should not have more faith than strictly necessary — I’m not very sure why I think that, though, I just feel it.
Since I’m fine with the idea that there may not be any life after death, or that nobody superior created us, I choose not to have faith in any god, or on the absence of them, nor I follow any form of religion.
However, I do have faith in other stuff. Mainly, I have an immovable (and irrational) faith that, at some point in my life, I will find a life partner. And I do have such strong faith because the sole thought of not finding one would make me, indeed, throw myself through the window.
And I really wish it wasn’t that way.
It’s time for recommending five films again. I’ve also decided that I may reserve the last of the five for films I watched prior to starting these series.
So here we go:
Au revoir les enfants (Goodbye, Children): just watch it, really. (France, World War II, children in a school run by priests, but there’s a part I’m not telling you.)
El bosque animado: a superb film that every Spanish person should watch. Magic comedy & drama set up in rural Galicia. Amazing Tito Valverde.
eXistenZ: yet another one by David Cronenberg, involving futuristic video games this time. Quite a good see, but predictable ending?
Billy Elliot: the kid who wants to dance ballet. Predictive and linear, but I just loved it, as I expected — maybe you will too.
The scene where Billy says goodbye to Michael just completely and utterly broke my heart, probably because I identified so much with Michael.
Now, Voyager: Bette Davis plays an ugly duckling, that obviously transforms into an awesome swan. Superb. Oh, and Bette Davis.
Managing a transition is not always easy, because many times they are bigger than you, and have parts you can’t directly take care of yourself because it’s not your area of expertise, you don’t have access, or whatever else. You end up, then, nagging people to do stuff for you, which for types like me is slightly uneasy.
It is a pleasure, though, when you find supportive fellow developers on the other side, just willing to help you, even if you always have more work for them. Thomas and Michael, thank you! (And thanks, in general, to everybody who helps the release team, past and future. We just can’t do everything!)
On reflection, I notice that I also find very gratifying to do stuff for others myself (particularly if I enjoy the task, of course), because it has an immediate payoff. Highly recommended.
Sometimes, when you play with undo and redo and make, inadvertently or not, some changes in the middle, you find yourself unable to get to the state from where you parted, possibly loosing some words, or more.
Since version 7, Vim has a solution to this problem, named “undo branches”. The idea is simple: if you undo a change C, going back to state B, and make a new change D on top of B, instead of C becoming unreachable, it is stored in an undo branch.
Undo branches are navigated with the g- and g+ commands. For documentation:
:help usr_32.txt
:help undo.txt
To control volume, I can adjust the “Master” mixer offered by KMix or alsamixer. Or I can adjust the “PCM” one.
But then, I can also adjust volume directly in my loudspeakers. Or, even, use the hardware buttons in this Thinkpad (which, afaik, can’t be mapped into modifying ALSA values).
For once, so much choice annoys me.
Now that I use Git at various places, I wanted a tool to send commit diffs. And, I couldn’t find one.
There is the contrib/hooks/post-receive-email script, which does a lot of smart stuff to interpret the stdin of the post-receive hook, but which can’t send out diffs, nor produce nice subjects by default.
Since, to be honest, post-receive-email scares me a bit, and I dreaded the idea of carrying a modified copy around everywhere I needed commit diffs, I went on and created a simple script to send out diffs.
The initial idea was stolen from Philipp Kern (kudos!): abuse git-format-patch to produce the emails, and send those. The first hurdle was that the post-receive hook can receive packed updates, whereas you get notified that a branch changed from rev. N to rev. N+4.
I really wanted to keep things simple, so I didn’t want to find out a list of all the revisions between those two, and invoke git-format-patch for each of those. And I didn’t want to generate temporary files, either (just git-format-patch —stdout).
Then, while doing the dishes, inspiration came, and I saw I could easily let git-format-patch generate a stream of emails, and use formail(1) to split them.
Anyway, this story is becoming larger than the script itself. You can fetch it with:
% git clone http://chistera.yi.org/~adeodato/tmp/other/git-post-receive-diff.git
After a bit of using, and polishing it a bit more, I think I’ll submit
it for contrib/ in git.
So going alone to the cinema yesterday was not a first, but going alone and being alone in the room certainly was, and an unexpected one.
This was, as far as I know, the premiere in Alicante of Enloquecidas, which is certainly not that of a remarkable film, but which was entertaining enough, and provided some very good laughs.
What is wrong with this city?!
(Update: hm, seems I’m mistaken about the “premiere” bit. Oh well.)
Unlike Steve, I don’t particularly mind going to the cinema alone. In fact, it’s becoming a growing habit for Friday nights, when my friends go to some meetings about their faith I don’t participate in (nor their meetings, nor their faith). I really hate getting home early on Fridays, so I take chance to go to movies I know we wouldn’t be going together anyway.
(Oh, and in case I haven’t said here already, the movie offerings in this “city” suck big balls. Virtually no undubbed sessions, virtually no non-mainstream movies. I don’t think I’ll still be here in a couple years, but boy would I be unhappy if the circumstances forced me to.)
Here in this library, next to a couple computers available to query the catalog, a sign reads:
Do not connect your laptop to these jacks. You may loose all data in your computer.
If I wasn’t a computer-savy person, I’m completely sure I would’ve thought: “They’re bluffing.” And then shit happens, because they’re not.
(Oh, but then of course the sign is not 100% honest either.)
One of the people who most fiercely fought software patents here in Spain and Europe jokingly (?!) uses the word “fag” to insult random people he dislikes. (But so do tons of other people I don’t interact with, of course.)
I used not to be annoyed by this at all, but tonight I felt differently, and it really bothered me (possibly because it was somebody from my community who did it). Life is easier when you don’t care, I guess, but I think it’s a good thing that I care now, since without such caring things can’t and won’t change.
As I mentioned, this week I’ve been in Sevilla as a finalist for the 2nd edition of a Free Software contest. Each participant at this stage made a presentation of their project, and this afternoon the winners were disclosed. I’m happy to share that Minirok won the 1st prize in its category, yay!
Also, Dudesconf was simply terrific — I’m so happy I could attend this year. And, as for every conference, eternal gratitude to the organizers: people from GPUL, you simply rock!!
These last two weeks most of my time has been sucked into getting Python 2.5 as default into testing. That’s done now. I made use of the block uploads thingie ftpmaster implemented for the release team to use. Basically, if your package could disrupt an “almost there” transition, the upload will be rejected.
The blocks were in place for 5 days, which I think it’s acceptable. As long as we don’t end blocking stuff for very long, I think we should be fine. See the end of this post for more about this.
Though it was quite a bit of work, I’m very glad I took care it myself, since now I really feel I’m 100% back to Debian, after the time I spent off for health reasons.
Update: Oh, and I forgot to say: having control over britney has really really helped. Thanks a lot Joerg for that.
Dudesconf
Tomorrow I’m leaving to Coruña for Dudesconf, which is a kind of Debconf-ES. I’m giving an introductory talk to Git, a semi-lighting talk about grep-dctrl (30 min.), and (gasp) a talk about Debian packaging with a VCS. We may have a Debian Quiz as well.
I’m so looking forward to it, since many people who’ll attend are amongst my most loved ones, and I already missed last year’s since I wasn’t fully recovered yet. See you there!
Minirok and Sevilla
One of the reasons I wasn’t fully back to release management during the past 5 months or so is because I spent as much time as I had doing development for Minirok. I don’t think I mentioned here before, but I was participating in a Free Software Contest for college students organized by the University of Sevilla, Spain. Such effort finally paid off, since Minirok was elected as one of the finalists.
This means next week I’ll go to Sevilla, to make a presentation of the project, and who knows what more. ;-)
I’m very excited.
Finally, more on blocking uploads
This Python 2.5 transition was the first time the block uploads feature was used, and there were a couple bumps along the way. In particular, a couple packages were blocked, when they shouldn’t have been (libqt4-ruby and evolution-sharp), and one needed package was not blocked, though Rene Engelhard thankfully spotted it very quickly (mono).
The problem is it’s not completely straightforward to generate a list of all the stuff that could possibly affect the transition. What I did was to make a run of britney on an arch that had all the needed bits in place, and block all the packages that migrated together as a result of the hint.
This fails in two ways:
it can include stuff that is not needed for the transition, namely unrelated packages that happen to become candidates for testing by one of the their dependencies having migrated as part of the hint. This is what happened with libqt4-ruby and evolution-sharp.
it can miss stuff that is needed, like packages that can migrate by themselves, so the main run prior to the hint migrates them, and hence do not show up as part of the hint, but that some package of the transition depend on. This is what happened with mono.
The second problem, though, can be fixed by parsing the excuses list and blocking stuff that some bits of the transition depends on. Easy enough.
Yet, there are more cases when things can go wrong, for example a shlibs-bumping upload of a package (say, sqlite3) linked against by some package still needing a couple of builds (say, qt4-x11).
For that, blocking uploads is not an option, since that’d be an insane amounts of packages that, furthermore, can be uploaded if they don’t bump shlibs, so I guess we’ll have to ask in the next release update that shlibs-bumping uploads are coordinated in -release too, at least when close to finishing a transition.
Yesterday I watched Les invasions barbares, a film by Canadian director Denys Arcand. I came to find it because one of my favourite cinemas in this oh-so-small city was premiering L’âge des ténèbres, the third part of a trilogy started by Le déclin de l’empire américain, and continued by Les invasions barbares above.
I loved Les invasions barbares. I think it’s a very honest film, but for me not only it portrayed a reality and set of characters that I found credible, I also felt empowered by watching attitudes towards life so compatible, if not similar, to my own. Reminds me a bit of some of the feelings I had when watching Juno.
It is also one film more to add to my (smallish) collection of films I’ve watched in French (with subtitles), though I’m intending to fix that: I really enjoy French, as well as enjoyed all Canadian or French I’ve watched in the past. We’ll see how it goes.
Sometimes, I’ll accidentally set my music player into “repeat track” or “repeat playlist” mode while working (my playlists are normally short, btw, one album or so).
The funny bit is the number of times the track or playlist needs to be repeated in order to get me to notice. Not that many, but interesting nevertheless.
By pure chance I read somebody mentioning giggle in #git. It’s a visualizer for git branches written in C using GTK+. I find the output a bit nicer than that of gitk, at least on some repos. As Mike Hommey points out, though, it’s quite slow on medium and big repositories.
P.S.: It’s packaged for Debian.
I had never seen a prank upset so many people. On the other hand, almost 50 people (blindly?) said thanks!
I knew I liked to make my shell aliases short, but I wanted some statistics (FSVO “statistics”). With a simple pipe:
% alias | sed -e 's/^alias //;s/=.*//;s/././g' | sort | uniq -c | sort -rn
27 ....
25 ...
20 ..
12 .
11 .....
7 ......
6 ........
4 .........
2 .............
2 .......
1 ...................
This means 2-4 character aliases are the most common (surprise, surprise), followed by 1-character aliases, of which I have (oh god) 12.
That’s 117 aliases total...
This is fairly obvious in theory, but it’s the kind of thing you don’t always think about: when receiving patches via e-mail, it’s possible to have Mutt directly color them as vim or colordiff(1) does. I have this:
% grep rc_diff ~/.muttrc
macro index \e,sd ":source ~/.mutt/rc_diff\n" "source ~/.mutt/rc_diff"
macro pager \e,sd ":source ~/.mutt/rc_diff\n" "source ~/.mutt/rc_diff"
% cat ~/.mutt/rc_diff
color body brightblue default '^\+.*'
color body brightred default '^-.*'
color body brightgreen default '^(---|\+\+\+) .*'
color body brightyellow default '^@@ .*'
Update: In case there was some confusion, the rc_diff snippet above is meant to be sourced only when there’s a mail with a patch, otherwise it’ll highlight parts of normail email too. The way to disable again, though, is quitting Mutt...
Good: Probably because of its origins, there seems to be a higher willingness to write detailed commit messages in the Git community when necessary. I feel like at home.
Bad: I really miss the distinction between mainline revisions and merged revisions. I guess that if they had that, there’d be less urges to rebase and squash all over the place.
I tend to favour text-mode applications (I’m sure vim, irssi, zsh and mutt account for most of my keystrokes, in that order), but there are times when a graphical application is called for, for example the browser. Or when I just find it more convenient, for example the music player.
Lately, though, I’ve been pleasantly surprised by a couple graphical
applications, for which I had text-mode versions which worked more or
less acceptably: a random-note taker (I was using vim), and a dictionary
(/usr/bin/dict).
I’ve replaced these two with Lars’ Notetak, and StarDict. I’ve found that having them constantly running in desktop #2 (which is one keystroke away) beats having to start up vim or dict each time. Curiously enough, in both cases the main interface of the application is a text input line which offers some kind of “incremental search” functionality.
StarDict is packaged in Debian (package name stardict-gtk or stardict-gnome), and Notetak, being Python, is easy enough to run from source (the page claims there is a Debian repository there, though I can’t access it).
Via Planet Warp, Blaxter blogs about MyEpisodes.com. Useful to keep track of your pending episodes to watch and acquire. I like the “All-In-One!” view.
Update: Oh, and as several people mentioned, there is also pogdesign.co.uk/cat, but that’s only a calendar of upcoming episodes, you can’t track your status with it AFAICS. OTOH, it doesn’t require a login, only a cookie.
I’ll blush and admit that I’ve always been a bit of the “my package my castle” type. But things change, and now I feel differently about my packages.
I toyed with the idea of adding myself to the low threshold NMU list, but it didn’t make me very happy for several motives:
first and foremost, it places emphasis on the upload as the basic unit of collaboration, whereas I think such unit should be the commit
places the information on a network location, whereas I think the information should be more readily available and near the package itself
uses “non-maintainer upload” to describe itself, which is already something else
Then there is the collab-maint project in Alioth, which is nowadays intended as a general purpose area for small teams or groups of co-maintainers to collaborate in their packages, without needing to create a full-fledged Alioth project. Every DD and many non-DD have write access to it, but a package being there does not mean that its maintainers want other people to use such write access on their packages. But, alas, there is no standard way of saying that you do want people to make use of that access, and how (of such way could also benefit projects that make use of the Debian acl, to advertise the fact).
So, as a first draft to fill in these gaps, I’ve migrated several
packages of mine to the collab-maint umbrella, and added a
X-Collab-Maint header to debian/control to signal that I’m open to
collaborations on them. For me, a header felt the best way to express
this information, since it ends up being very accessible (only one
apt-cache showsrc away). As Zack points out to me, though, having it
in a header doesn’t necessarily mean the source of the header has to be
debian/control forever (think e.g. what debtags does) — this leads to
interesting possibilities, like changing the policy without an upload,
or setting the same policy for a large set of related packages.
As for the contents of the header, I think a reduced vocabulary would work best. As a start, this is the one I’ve been using for my packages:
commit-branch: please commit your stuff into a branch, so that I can review and merge it. Other people could just use commit if they prefer commits to trunk directly.
upload-10: feel free to make an upload with your changes if I haven’t acked them within 10 days. Other people could use upload-with-ack, to signal that you’re happy for other people to upload, but that’d you like to review first. Or even upload-0.
Other stuff that’s could be specified includes whether people making a commit should notify the maintainer or not, before letting the upload day count tick. But, if the idea seems worth it, I’m sure we can debate it to death on -project, or something.
I uploaded amule 2.2.0~20080309-1 to experimental yesterday. It should fix the search-related crashes from 2.1.3, and be really close to the final 2.2.0 release.
At the moment I keep my packages in Bazaar branches. I only version the debian/ subdir (whereas I have the .bzr directory at the same level as debian, i.e. not debian/.bzr). I do that because then $VCS operations work without having to be under debian.
One drawback is that the output of status is a bit too noisy, with lots of “unknown” files (all the upstream files). I address that by aliasing bzr std to “bzr status debian”.
With git, one could just have the following:
% cat .gitignore
/*
!/debian
/debian/files
...
Update: One of the Bazaar guys, Wouter van Heyst, points out on IRC that bzr can do it as well:
% cat .bzrignore
RE:(?!debian/).*
./debian/files
...
In fact, possibly more: lines starting with RE: are interpreted as Python regular expressions.
So I was impatient enough and took a stab at writing a bzr frontend for git-fast-import(1). (By the way, the idea behind git-fast-import rocks, and is being adopted by other projects, e.g. bzr-fastimport.)
I announced it here, and for now it lives in:
http://chistera.yi.org/~adeodato/tmp/other/bzr-fast-export.git
1. Bzr
Exactly 2 years ago I started using bzr. I wanted to start using one of the new distributed VCS for my small projects, and I chose bzr. Not having the time/energy to do an exhaustive comparison among them and try them all to see which one I liked most, I read some articles about them, and decided that bzr would be the most appropriate for me, and that I’d stick to it if I was satisfied enough. (JFTR, at that time it was very important for me the ability to serve branches over plain HTTP, and bzr was the only one in which HTTP was a first-class citizen.)
I’ve found bzr easy to use and to learn, powerful enough, customizable enough via plugins, and in general, not requiring a whole lot of attention to get things done. Also, not slow enough as to abandon it.
2. Git
Yesterday somebody posted in #bzr a link to this post by Elijah
Newren, where one comment said:
There’s one thing I keep telling people though: Learning git is like learning vi — it’s different from the VCS/text editors you know on a fundamental level. But once you’ve overcome that problem, you’ll not want to go back. Ever.
Which pretty much matched the idea I had of git.
In the summer after my first year at Uni, I told myself: “OK, let’s learn vim.” And I think it’s one of the decisions that has paid off the most. Like learning to touch type.
Reading the above quoted paragraph made more urgent the doubts I had been sporadically having during the past year: maybe I would have been better served by choosing Git instead of Bzr in the first place. What would be my life like if I had stayed with joe?
3. More about Git
So yesterday I decided to spend a couple hours (or three) getting the feel of it, trying to find cool stuff. Until now, whenever I had had the need to use git, I just sticked to the bare minimum, without diving into it.
I’m going to mention only two examples of the cool stuff I found. And I’ll confirm that, in my opinion, the comparison to vi really holds.
commands have lots of options. Tons. And some are incredibly cool, for example
git log -S. It allows you to show entries whose diff contains the given string (or pattern, with--pickaxe-regex). I was missing bzr’slog --message, but it was obviously there, aslog --grep.Elijah has another entry that talks about what he dubs the “libmo”, and how it’s different between git and the rest, because of the “index is not automatic” schema.
In particular, that entry opened my eyes about one very useful use of the index: putting there parts of an upcoming commit that are known to be correct, and that need no further inspection. Doing that with
git add -pmakes those parts no longer appear in yourgit diff, which is... whoa.I like to review before committing a lot. However, with other VCSen I always find myself reviewing/glancing at the same parts over and over. So having a way to review what’s pending or WIP is something to die for. And I know even before getting addicted to it!
4. More about Bzr
I’m not sure I want to completely switch from bzr to git, not yet anyway. However, I think I’ll try it for some new projects, or migrate some minor ones.
Before I can migrate everything I’ll need a bzr frontend for
git-fast-import. One of the bzr authors, Ian Clatworthy, has written
bzr-fastimport, and he tells me a simple exporter would not be very
hard to write, and that he may even put some work into it.
Also, I’m (still?) not very sold with some of the git standard practice of throwing away parts of your history regularly. We’ll see about that.
Finally, one feature of bzr I would love to see in git is indented
formatting for non-mainline revisions in log output (for git, in
--topo-order mode only). This is most needed when you’re not rewriting
your history for submission to mainline, I’ll reckon. Compare
—date-order to —topo-sort to
—topo-sort with —indent.
Update: For this —indent thing, one could use tig, which after pressing g offers a sort of tree view in a curses-based interfaces. Somebody had mentioned this on IRC, and Peter Baumann kindly mentioned again over e-mail after reading this entry.
I’ve decided to blog about films whenever there are in my backlog five films I’d like to mention or talk about. I’ll also mention that, when I moved to ikiwiki, I set up a films.rss feed, and some other stuff. Now:
A History of Violence: short and incredible. Has flaws but I still give it 4.5/5. I’ll check more of Cronenberg (I loved, ages ago, M. Butterfly and Dead Ringers).
Bent: gays, nazis, camp. Intense but not overly rough. Mick Jagger plays a drag singer named Greta.
Elsa y Fred: terrific love story between two elderly people. Magnificent China Zorrilla. Ignore if you can’t stand romance or Argentinian.
Martian Child: entertaining, has children and dogs, never ever ever ever ever give up.
No Country for Old Men: oooh. All my friends hated it and told me: “you are going to love it”. And Bardem really steals the show. More below.
You may want to skip this part if you haven’t seen No Country for Old Men, though I won’t be spoiling much. My friends watched it some weeks ago, and I did yesterday (I refused to go with them to a dubbed session).
One of them told me that she had disliked it very much because of the uneasiness she got from it, about how human life can result so worthless for people, and so on. Chatting a bit more, we came to the conclusion that I watch these films differently.
Basically, I can unplug the empathy off from a film whenever (simplifying a bit) violence or cruelty reaches a certain level, and just consider it an entertainment completely unrelated to reality. Sort of, anyway. And I don’t think I could enjoy (some) films as much if I didn’t.
For me, No Country for Old Men had no message in it, and had a single story line: following close the path of a creature portrayed by Bardem, that (maybe not) strangely enough managed to keep me hooked to the screen, not minding the low pace, and finding the end (minus the dreaming bits) very appropriate.
I use the enhanced commentify script from vim.org to easily comment and decomment parts of code. It knows about comment delimiters in a ton of languages, and it’s generally nice.
Lately, I’ve been a bit annoyed about commenting several lines with different indent levels. In particular, given for example this snippet:
def foo():
if duck.is_hungry():
grab_food()
feed_duck()
If one instructs the script to comment the three last lines, the result is:
def foo():
# if duck.is_hungry():
# grab_food()
# feed_duck()
When what I would like is:
def foo():
# if duck.is_hungry():
# grab_food()
# feed_duck()
There is one variable one can set to achieve this behavior: EnhCommentifyUseBlockIndent. However, it only works when commenting from visual mode. From normal mode (what I normally use — that is, going to e.g. line 2 above, and pressing 3,c), it doesn’t work, because from normal mode the commenting function does not receive the block, it just gets called three times, once per line.
To solve this, the solution I found was to create a custom command that accepts a range, and calls the function exactly once, for the whole block.
In particular, this is all my enhanced commentify configuration from ~/.vimrc:
let EnhCommentifyPretty = "yes"
let EnhCommentifyUserBindings = "yes"
let EnhCommentifyRespectIndent = "yes"
let EnhCommentifyUseBlockIndent = "yes"
" The MyEnhancedCommentify bit is needed because the normal nmap just
" calls EnhancedCommentify() <count> times, thus UseBlockIndent can't
" work.
nmap <Leader>c :MyEnhancedCommentify<CR>
vmap <Leader>c <Plug>VisualTraditional
command! -range MyEnhancedCommentify
\ call EnhancedCommentify('', 'guess', <line1>, <line2>)
To make sure we achieve that, we are building them in an oldstable chroot.
My eyes stare at that sentence in disbelief. Eddy, I’m sure it must be working out for you nicely (otherwise you wouldn’t blog about it), but could you at least be so kind as to include a disclaimer saying this method is not guaranteed to work, and why? (eg. soname bumps). TIA, WTF, HAND.
Bus line #23 here starts in Mutxamel, goes through San Juan, reaches the Hospital, and then goes all the way to Alicante.
Many months ago already, a new bus line was created: 34L. This line shares parts of its way with #23, namely from Mutxamel to the Hospital. After that, they diverge.
After all this time, still today (and every other day too) many people mistakenly take 34L thinking it is #23.
And it’s not as if the buses don’t carry a big yellow-on-black sign with their number...
With /usr/bin/screen -dm you can start a screen non-interactively,
eg. from cron, passing the command to run and its arguments as normal
arguments:
@reboot screen -dm rtorrent -p 12345-12346
However, I wanted to start from cron a screen that would run various
commands, each in its own window. AFAIK you can’t do this with a simple
invocation, but you can prepare a custom screenrc file that defines
which commands to run, with the screen command. For example:
% cat ~/.screenrc_foo
escape "^Oo"
startup_message off
hardstatus alwayslastline "%w"
screen 0 command0 -x -y
screen 1 command1 -z -w
screen -t windowname 2 command2
screen -t windowname 3 sh -c 'cd ~/quux && ./wrapper.sh'
Then you start it from cron like this:
@reboot screen -dm -c ~/.screenrc_foo
Thanks to Luca Capello and Romain Francoise in #debian-devel
for the tip.
Update: Laurence J. Lane points on IRC the -X option to screen, so
you could do without the screenrc file and do it like this:
% screen -dmS NAME command0 -x -y
% screen -S NAME -X screen command1 -z -w
% screen -S NAME -X screen -t windowname command2
...
I’m obviously not discovering the Americas here, given the sheer amount of research, theory and whatnot one can find for this topic, but I need to vent. Also, please excuse my terminology and my bias.
In Spain we have two main political parties, the one that advertises itself as the rightish-center option, but is sliiiightly more to the right than that (PP), and the one that wears socialism in its name, but is sliiiightly less to the left than that (PSOE). Then there are some minority parties, like the nationalists, and United Left (IU).
So, ideally, my ballot à-la-Debian would always be:
[1] IU
[2] PSOE
[4] PP
[3] None of the above
But sadly you can’t vote like that in the real world (?), and can only pick one. Without a fscking second round. So every election I’m left wandering in the cold land of tactical voting.
One last interesting bit: when talking about my wishes for a two round system with a good friend, who also happens to be a PP fanboy, he said: “But with that system PP would never govern!” And I think there’s some truth to that.
OK, blogging this because I would have found it very useful today if somebody else had. Hopefully the title is enough to get love from the search engines.
import readline
def raw_input_with_default(prompt, default):
def pre_input_hook():
readline.insert_text(default)
readline.redisplay()
readline.set_pre_input_hook(pre_input_hook)
try:
return raw_input(prompt)
finally:
readline.set_pre_input_hook(None)
Christian, watch out while “just” running iconv. I’ve encountered in the past changelog files with parts in iso-8859-1, and parts in utf-8...
Links in Markdown can be done in a couple ways. First, similarly to HTML links, where you place the link next to the anchor text, like this:
I am a [Debian](http://www.debian.org) Developer.
Or, if you feel this clutters your paragraphs too much, you can choose an alternate syntax, which I prefer (particulary handy for very long links):
I am a [Debian][] Developer. Bla bla bla...
[debian]: http://www.debian.org
There is however a gotcha with this alternate syntax, namely, anchor text with spaces in them. This works fine:
I study Computer Science in [this University][].
[this University]: http://www.ua.es
But this does not:
Some years ago, I started studying Computer Science in [this
University][]. Bla bla bla...
[this University]: http://www.ua.es
This actually happens quite a lot when formatting the paragraphs in the editor, which made this otherwise-pleasant syntax almost a no-go for me.
(Well, to be honest you could use it like this, but still:
Some years ago, I started studying Computer Science in [this
University][uni]. Bla bla bla...
[uni]: http://www.ua.es
)
There is a beta version of Markdown in experimental that almost fixes the problem. This version introduces a new but similar syntax for links: you can omit the second pair of empty brackets. And when using that newer syntax, there is code in the program to change newlines into a space when looking for the link definition. It is not applied to the code path of the old syntax, though, which is a pity.
This is all explained in bug #459885, with a patch as well (that applies both to 1.0.1 and 1.0.2). You can find packages with that patch applied here.
I had a couple of annoyances with suspend in my laptop, namely that the screen would not lock prior to suspending (this seems to be #407224), and that sound would not work after resume (this seems to be an ALSA driver bug; muting and unmuting Master and PCM solves the issue).
For this latter problem, I just wanted to drop a script somewhere to do the mute/unmute dance on resume automatically, but I was a bit lost as to where to put it. (Or, rather, I thought I’d be a bit lost even if I investigated.)
Anyway, I recently moved to pm-utils from powersaved, since that’s
what my kpowersave recommends first, and not only now my screen gets
locked properly, but there is somewhat clear documentation as to
where to put such scripts: /etc/pm/sleep.d. So I now have there a
script like:
case "$1" in
thaw|resume)
amixer -q sset Master mute
amixer -q sset Master unmute
amixer -q sset PCM mute
amixer -q sset PCM unmute
;;
*)
;;
esac
I only miss one thing: in my old suspend to disk scheme, the computer would change to a console where progress about the operation would be reported. Now it’s just a blank console. Guess it’s time to investigate again. (But overall I’m happy about the move.)
Debian meetings are fun, there is no doubt, but they are also magic, because things happen that would not happen otherwise. I had this Debian Enhancement Proposals idea in my mind since late August 2006, but I had let it rot for various reasons. During the Extremadura QA meeting last December, some conversation happened that made my head pop out the idea, run it past some people, find the energy and, together with Lars and Zack, produce a draft.
So, the bottom line of this post is: go to meetings and participate, or sponsor/organize them if you can, because there’s not telling what can come out of them!
Aw, listening to the two first songs mentioned in the previous post almost makes me cry. The songs, here and here.
(Notice the subtle but precious difference between his “in anyone else”, and hers.)
Juno was totally worth my time, I gave it 5/5 stars. When having a prospective look at it, it didn’t seem I would enjoy it much, but I decided to trust Movielens on this one, and that payed off.
Long story short, Juno is a sixteen year old girl that gets pregnant, and then a very appealing movie happens. Then a slightly questionable (rushed?) end comes, but I enjoyed that part the most. I liked the general tone of the movie, and the two youngsters were adorable.
The soundtrack was awesome as well. I loved the song on the opening titles, All I want is you by Barry Louis Polisar (listen here), and the one in the last scene, Anyone else but you from The Moldy Peaches, but performed by the actors themselves.
Update (2008-01-16): Mention track titles in the last paragraph.
Update 2 (2008-01-16): After listening to the soundtrack today, I can’t but highlight Kimya Dawson’s songs, particularly: Tire Swing, Loose Lips, and Tree Hugger.
(Disclaimer: I’ve decided to blog this mainly to get it off my mind. I’m not claiming it’s viable or appropriate, nor that the tool would be up to the job, or anything else. Heck, I’m not even involved with debian-www at all, but don’t we all love to share happy ideas.)
The other day, when trying to think of a possible Summer of Code project
to undertake this year, I thought that working on migrating (by making
a parallel copy, see below) www.debian.org and wiki.debian.org to be
ikiwiki-powered could be one, and see how it goes.
Me, I think that having www.debian.org use a markup language, and have
wiki.debian.org (or www.debian.org/wiki) live in a real VCS (us
being Debian people, after all) would be two big pluses.
The www instance would be only editable via the repository, either by
the current group or DD-wide, and would have stuff like htmlscrubber
disabled. And the wiki would be another setup/instance, with the normal
setup for an ikiwiki wiki setup, backed up by a real e.g. Subversion
repository open to all DDs, and possibly contributors at request. I
believe that would be very very cool. Plus web edits as usual.
This could also be used as a fresh start, and maybe as an opportunity to accomplish the long-awaited re-design of the site: if this job is done by making a live paralell copy, able to update itself from the current webml repository, and MoinMoin as well, it would give an interesting playground for experimenting, and could be adopted later on, when it’s truly polished, if ever.
When talking in Spanish these days, particularly on IRC, but increasingly more in e-mail and even speech, I like being free to draw words from English, either because there isn’t or I can’t think of a Spanish word or expression to mean the same, or (many times) just because I find the result aesthetically more pleasing (!). Some people, of course, find this practice horrendous and something to be ashamed of, but alas, so do some others about other practices in my life, so, there.
Last night with friends, I used the form refraineado, which would be the Spanish participle for the English verb refrain. One of these friends, who did not know the English verb at all, said: “ITYM refrenado?” As it happens, both verbs obviously (?) share the same roots, and they mean the same. This one time, though, I didn’t know the (relatively rare?) Spanish one, so that makes up for a bit of an excuse, but reality is that I cannot promise I will use refrenado and not refraineado the next time I need to use it.
Oh well.
When piping something to procmail, which comes from, say, crm114, be sure it has a From_ line, or it will not be correctly appended to mailboxes (procmail won’t add the From_ line itself).
One way of adding this line is invoking procmail via formail, as in
formail -ds procmail.
After some romantic films these past days to match my mood, and to celebrate I got back on track today, I watched Glengarry Glen Ross this evening. I was expecting a lot, and a lot I got, albeit not equally divided across the duration of the film.
In the first part, it outstands the brief but intense appearence of Alec Baldwin (youtube link). It is funny because I normally peek at movies several times days before watching them, and normally at intervals of 10 minutes, which is what mplayer gives you for PgUp and PgDown. And at minute 10, I always got the memorable “You can’t close the leads you’re given, you can’t close shit, you are shit! Hit the bricks, pal, and beat it, ‘cause you are going out.” quote by Alec. (Minute 2:16 in the above Youtube link, or here.)
After that it’s was just okayish for me, until minute 48 arrived, and then I could not take my eyes off the screen, not even once to check irc (and, well, that’s just unusual on me), until minute 89 (out of a 96 minute movie). For those who’ve seen it, that’d be the whole while in which the policeman is in the office.
Anyway, give it a go if you’d like, and be sure to check this trailer after you have.
On other news, and all the romantic stuff above which I really enjoyed notwithstanding, I loved El día de la bestia. Pure awesome, but watch at your own risk!
Until today, my workflow for handling debian/changelog was:
% dch -i -D UNRELEASED
(or dch -v X -D UNRELEASED)
% dch -t
...
% dch -t
% dch -r
The first call opens a new changelog entry with distribution set to
UNRELEASED, then each dch -t call adds successive changelog lines
(the -t makes dch leave the trailer line untouched, which I find very
useful, since it reduces noise in diffs, particulary in multi-maintainer
packages), and finally dch -r changes the distribution from
UNRELEASED to unstable, and updates the trailer line.
While preparing this blog entry, which was about dch -t only,
recommending it for everybody, I found that the above workflow is nicely
automated for you if you use --release-heuristic changelog, or set
DEBCHANGE_RELEASE_HEURISTIC=changelog in ~/.devscripts. Automated as
in, just running dch will open a new entry if appropriate (that is, if
the latest entry is not UNRELEASED), or will add new lines defaulting
to -t. So the workflow now is:
% dch
(or dch -v X)
% dch
...
% dch
% dch -r
Kudos to Guillem and Joey for #435980 and #448795, and the devscripts maintainers, of course.
This year, instead of preparing the traditional soup for dinner I’ve been preparing every Christmas Eve for circa 10 years, we spent the night at the hospital instead.
My father had surgery in his bowel on the 18th, and stayed at the hospital until today. Mom and Teresa would spend the day with him there, and I would be there during the nights.
The surgery, though unexpected, went without complications, and dad has been recovering slowly but steady, and was finally sent home today.
I’m glad to have found a new maintainer for Amarok, since I now obviously use Minirok to reproduce music. From the work I’ve seen him do in other packages and in Amarok recently, Modestas is competent and diligent, I’m sure Amarok users will know to appreciate that!
As many others, I’ve moved this blog to ikiwiki. In fact, I’ve moved my whole 3-page website to ikiwiki, and it only felt natural to migrate the blog as well (I may miss hobix’s webpage, though).
Anyway, this gives me a bit more flexibility when creating the RSS feeds, so I’ve now created a separate feed for Planet Debian (which won’t have only Debian-related content, mind you), and left the old RSS URL to include all posts, e.g. some more personal ones, or some that I’d find unsuitable for the planet. If you’re interested, here is the full feed.
I run ikiwiki in my laptop to generate static html, and rsync the generated output to the webserver. I have a Bazaar branch in my laptop as well, but it doesn’t interact with ikiwiki in any way. Finally, I’m very grateful that Joey committed this minutes after me mentioning on IRC, and I’m very grateful as well to whoever wrote the typography plugin.
Migrating the old blog wasn’t hard, just tedious and boring, particularly since I didn’t want to keep using Textile, but migrate to Markdown. I switched off usedirs to keep old URLs working (I’d rather not mess with redirections), and used the date option of the meta plugin, so that the “Posted” information for old entries when inlining would be accurate. This still left the “Last modified” timestamp in the individual pages wrong, so I just used a script that would change the mtime of the entries in the filesystem to their creation time.
One wart I’ve found is that I’m very used to having both a filename
and a title for each entry, and have the filename just present in
the navigation bar of the browser, and the title shown in big inside the
page. You can do this in ikiwiki by using the title option of the meta
plugin, and giving a H1 element in the entry content. However, this
makes the H1 show in the RSS feed, which I had always noticed in
Zack’s blog, and always found inconvenient. Oh well. It also makes
for the same title to appear twice in the default [[inline]] page; to
solve it, I just hide with CSS the H1 there — zack, e.g., does not
use [[meta title]], and aligns the permalink to the right.
Update: So I was washing the dishes and it struck me: maybe with a conditional! And, effectively, it is possible, given that there is a convenient included test. So now I start my entries with:
[[meta title="This is the long title"]]
\[[if test="!included()"
then="# This is the long title"]]
Yay!
Update (2007-12-27): Lars does it differently, by only providing \[[meta
title]], and modifying the page template to include:
<h1><TMPL_VAR TITLE></h1>
Update (2007-12-29): I finally decided, at least for now, that is
cleaner not having the title duplicated in two lines, and went with a
template. I didn’t want the <h1>title</h1> bit in all pages, though,
and Joey pointed out that I could use a different template for blog
entries using the pagetemplate plugin.
So it’s time for movie recommendations again. This one time, beware, a love story, touchingly told: The Notebook.
After more than one year using unison to synchronize most of $HOME
between my laptop and desktop, I discovered yesterday that unison can
propagate file modification time, which does not by default. Just pass
-times (or set times = true in the configuration file).
The first sync with -times results in a huge conflicts with “revprops”
being changed in both sides. I resolved all of them in favour of the
less recent file (there’s a menu option for that in unison-gtk). But boy
did it take long to sync all files.
Looking purely by chance at the front package of Freshmeat the other
day, I discovered mlocate, a new implementation of locate whose main
feature is that it reuses the existing updatedb database when creating
a new one, which makes updatedb faster and less intensive on the hard
drive. (I suppose it stores an mtime of each directory, and only
re-reads directory contents if the filesystem is newer.)
As with slocate, mlocate’s updatedb is meant to be run as root, and
the created database is mode 0640 root:mlocate, with the locate binary
being setgid mlocate then.
After some discussion in debian-devel, it was decided that mlocate was suitable for Priority: standard, once findutils’ locate was split out to a separate pakcage. So, give it a go.
Among the benefits that distributed version control systems have brought us, I would like to mention a very small one, that may often go unnoticed, but that I think it’s actually pretty cool: attribution. With DVCS, it’s now normal to have each change attributed at VCS level to the person which made the change.
For this, normally the author has to publish a branch, or maybe send an
“enriched patch” or bundle that contains meta-data, or revision
information. If they send a plain diff, though, the VCS may still offer
a way to credit them, by putting their name in the “author” field. For
both Git and Bazaar, this is done with the --author option for
commit.
I’m in Merida for the QA meeting, and the Spanish speaking people here (Ana and me), plus Holger, were asked by the organization to give a talk in the University.
During Q&A after the talk, one teacher mentioned that, after having received several talks about Debian by various people, she was a bit disappointed that they all resulted so DD-centric, as if all that could matter was becoming an official Developer.
I promised her that in future talks I would make very explicit that even the smallest contributions are welcome in Debian, be them bug reports of a tiny patch, and that I would blog encouraging other speakers to do the same, if they’re not doing it already.
So, uhm, somebody around here must have felt inspired by the French, because this very morning I noticed in the bus a note announcing a strike starting tomorrow. It will last a week.
The disagreement seems to come from a difference in salaries between the workers of the company that connects Alicante with nearby towns, La Alcoyana, and the company that runs buses within the city, Masatusa. Accoring to this article (in Spanish), in La Alcoyana they earn up to a 40% less. This seems to happen because Alicante’s Town Council is responsible for transports within town, but it’s the Regional Government that regulates how La Alcoyana should operate.
They say they will keep a 60% of the buses, which sounds like a lot to me (how much is it in France, Christian?). We’ll see how it goes.
Back when I had a computer 24/7 at home, I would irc from there, using irssi inside screen. Using the laptop at home worked fine, since there was no noticeable lag when typing, and I wasn’t away from home that often, so lag in such occasions was acceptable.
Later on, I changed flats and the 24/7 computer could no longer run 24/7, so I moved irssi to a remote computer. Used as I was to no lag at all, this turned out too painful. I ended up with one remote irssi to read backlog, and one local irssi from the laptop, joining and parting as I turned it on and off, or changed networks. This was, er, suboptimal.
Finally, Holger recommended me using an IRC proxy, ctrlproxy in particular. Basically you run it in any 24/7 computer, and then your irc client (not necessarily irssi, mind you) connects to it, instead of directly to the irc server. On connect, ctrlproxy sends you backlog since the last time you quit (but this can be disabled), and after that is transparent.
For me, there’s no looking back, since I hate lag when typing, and I didn’t want to be joining and parting all the time. If you don’t mind lag, or always connect from networks with very low latency, well, consider yourself lucky.
There doesn’t seem to exist record of the day Piero della Francesca was born. If Wikipedia admitted unscientific evidence, though, I’d submit my playlist for today:

I’d like to make somewhat more visible what some of you already know, that I have bipolar disorder. I was diagnosed a bit more than a year ago.
I’m doing this mainly because I think visibility matters. First and most important, because in my experience it can be helpful and comforting to hear about other people whose names you recognize that can relate to your situation. And second, in case it helps a tiny bit in detabooizing mental ilnesses and their drugs. (But fortunately geek circles seem to need less of that than other, more prejudiced environments.)
On a more personal note, I can’t but be grateful after six months of straight euthymia, during which I’ve regained control of my life, written code, attended events, and retaken long term projects. I also feel, after many years, less fearful of the future.
And finally, let me add I can’t imagine having made through it without one particular friend, who doesn’t even read this blog. Should everybody be so lucky.
I’m reading Lo raro es vivir by Carmen Martín Gaite, borrowed from the Library of my University. Somebody decided to amend this copy of the book with sundry fixes to the author’s grammar and spelling. Except that, of course, none are needed, and whoever made these changes can’t actually read (confusing unusual but valid constructs with not valid grammar), and doesn’t seem to have a clue of what an alternate spelling is, either. Joy.
But maybe this post is only an excuse to recommend The Orphanage, this year’s Spain’s submission to the Best Foreign Language Film Category (which I really enjoyed!), and to point to Urban Dictionary re today’s xkcd.
Thanks, Adrian, for recommending Dark City, I really enjoyed it.
Of the films I’ve watched lately, I enjoyed Bound the most.
I’m looking (or I’m desperate) for an RSS reader which differentiates between new and unread articles, and can show a count that only includes new articles for each feed. My current reader, Akregator, sort of fulfills the first requirement, but not the second.
If you know of one, please let me know. I’m willing to give it a try even if it’s written for another desktop environment than my own, or in a language that I don’t like.
If I can’t find one, I will try to go back to rss2email and Mutt. But I really, really, really dislike the management of feeds with rss2email. I would love to have it read a simple text file where feeds are listed in groups, each group has a keyword to add as an email header, and I’m free to add/delete/move feeds in the text file with changes being effective in the next r2e run. Any suggestions on this side?
After three years effectively away from classes due to health issues sometimes, and the need for a full time job some others, I’ve returned to University today. I’m not particularly motivated, but not particularly demotivated either. My attitude is, mostly, “okay, let’s get this done already”.
In Spain, the voice of Lieutenant Colonel Anton Grubitz, the bad guy in The Lives of Others, is the voice of Ross Geller, from Friends. That is so rude.
I’m looking for a website that can recommend appropriate movies for me to watch, both in the “you will most probably like this one based on your current taste” sense, and in the “it may be interesting for you to explore and give this one a try” one.
I have a pretty strong opinion on how it should work: I feed it a long list (as complete as possible) of movies I’ve watched over the years, with timestamps if available, and the system gives me in return a subset of them for me to rate. That is, the system performs an analysis on the input, and determines what additional information it needs in order to form a picture of myself as a movie watcher. And by “rating” I don’t mean just assigning a single numeric score, but expressing opinion on various relevant aspects: how much did you enjoy it? How badly do you want to see similar films? Did you feel uneasy with the level of violence / nudity / other, or rather on the contrary? To name a few.
I’m very disappointed that all movie recommendations sites I can find require for me to choose which movies to rate, and just give me a numeric scale to do so. Not only I’m finding it a daunting task deciding what to rate, but I also have the feeling it’ll result in a biased profile, and that a single numeric scale can’t be enough to reflect all the aspects in a person’s movie personality.
So far, the most promising site I’ve found is MovieLens, which is developed by a research group at the University of Minnesota. From what I’ve seen it works, but I’m unconvinced that having me decide what to rate will give the best results.
So, can somebody comment about the sanity of the model proposed here, and (ideally!) tell me it’s implemented somewhere?
I have written a new music player to fulfill my needs, and I’ve dubbed it Minirok. It is written in Python, uses KDE libraries, and GStreamer as a backend. It is also heavily modelled after Amarok, with the look and feel being pretty much identical, but with a reduced set of features.
The main deal is that there is no collection built from tags: only a tree view of the filesystem, which I sorely missed in Amarok. Because of this, most probably only folk whose collection is already structured as a tree at the filesystem level will find it enjoyable.
Version 0.6 was released yesterday, and is already in Debian. Check out the screenshots, and feel free to provide feedback.
P.S.: I am aware that minirok means miniskirt in Dutch.
export GREP_COLORS="fn=:ln=:bn=:se="
Take care,
I really believe we should not require repacking the original tarball to strip non-free but distributeable stuff, as long as that non-free stuff is not installed in the resulting binary packages, nor used in any parts of the building process.
Sometimes one has to debug why a package is uninstallable, or some other apt problem, in other architectures than their own. This can be done by running apt with that other architecture in its configuration. I use this function to help me:
fakeapt() {
root='/var/tmp/fakeapt'
dist="$1"
shift
arch="$1"
shift
apt-get \
-o APT::Get::List-Cleanup="false" \
-o Dir::Cache=$root \
-o Dir::State=$root \
-o Dir::State::status=$root/status.empty \
-o Dir::Etc::SourceList=$root/sources.list.$dist \
-o APT::Architecture=$arch \
"$@"
}
And then one can run it like this (it’s a bit long, but that’s how one goes to find out why a package is uninstallable, recursively adding each broken package in the run):
% fakeapt sid hppa update
% fakeapt sid hppa install -s kdebase
The following packages have unmet dependencies:
kdebase: Depends: kdebase-kio-plugins (>= 4:3.5.7-2) but it is not going to be installed
% fakeapt sid hppa install -s kdebase-kio-plugins
The following packages have unmet dependencies:
kdebase-kio-plugins: Depends: libopenexr2c2a (>= 1.2.2) but it is not going to be installed
% fakeapt sid hppa install -s kdebase-kio-plugins libopenexr2c2a
The following packages have unmet dependencies:
kdebase-kio-plugins: Depends: kdelibs4c2a (>= 4:3.5.7-1) but it is not going to be installed
% fakeapt sid hppa install -s kdebase-kio-plugins libopenexr2c2a kdelibs4c2a
The following packages have unmet dependencies:
kdelibs4c2a: Depends: libopenexr2ldbl (>= 1.2.2) but it is not going to be installed
% fakeapt sid hppa install -s kdebase-kio-plugins libopenexr2c2a kdelibs4c2a libopenexr2ldbl
The following packages have unmet dependencies:
libopenexr2ldbl: Conflicts: libopenexr2c2a but 1.2.2-4.3 is to be installed
A bit of initialization is needed:
% mkdir -p /var/tmp/fakeapt/{archives,lists}/partial
% touch /var/tmp/fakeapt/status.empty
% for d in testing sid; do
echo deb http://ftp.XX.debian.org/debian $d main >/var/tmp/fakeapt/sources.list.$d
done
One and not uncommon way of granting privileges or positions to somebody else is waiting until it’s obvious it’s time to. As in, for example: “Oh, you don’t have commit access already? Here, let’s fix that.” Or: “Oh, you’re not a release assistant already? Here, have fun.” It’s not useful, however, when there aren’t any people spontaneously jumping into doing some of the required work.
Anyway, the point of this post was to say that I can imagine myself applying this method in some non-free-software areas of my life as well: “Oh, we’re not married already? Here, let’s fix that... tomorrow.”
If you use quilt to manage your patches, particularly in Debian
packages, you may be interested in reading this. If you just want to try
it, here’s my ~/.quiltrc:
QUILT_PATCH_OPTS="--unified-reject-files"
QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index"
QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto"
QUILT_PATCHES="debian/patches"
QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33:diff_ctx=35:diff_cctx=33"
Of these, I would recommend everybody to use --no-timestamps, both in
diff, but more importantly in refresh. It omits timestamps in the
resulting diff, which helps when doing debdiff and else. And -p ab
which makes diff headers read --- a/foo and +++ b/foo instead of
using the directory name, which for debian packages always changes since
it contains the version. I find the other one, --no-index, also
useful, but that’s probably a matter of taste; it omits the SVN-like
“Index” header.
--color=auto should probably also be there; it’s just like in ls, it
colors diff output if stdout is a terminal. If you don’t like the
default quilt colors, you may want to try the QUILT_COLORS option
above. Or just adjust it to your needs; figuring out the name of each
color item took a bit of digging, so you may find it useful even if you
don’t like my colors.
Finally, I’ve found that setting QUILT_PATCHES to debian/patches is
useful to have quilt work even on a clean tree where there is no
patches symlink in the toplevel directory. --unified-reject-files
produces reject files in unified format, which I find more readable.
I hope somebody finds some of this useful. :-)
Update (2007-09-06): Add bit about -p ab.
During DebConf7 in Edinburgh, a dak BOF was held. Several topics were covered, one of them being staging areas. It was an interesting discussion, during which I had a recurring thought: that staging areas should be between testing and unstable, and not behind unstable (like experimental is), like everybody suggested. By the time I decided to share this aloud, though, the discussion was already over.
During the landing of my flight back to Alicante, I had my powered off laptop lying on my legs. A stewardess approached me and asked me to place it on the bag in the seat in front of me.
I looked at her, and said: “Does not fit.”
So Debconf7 has come to an end, and I’m pretty sure this has been my best Debconf so far. Although I did not manage to attend many talks and discussions, and did not socialize as much as I would’ve wanted with the people I did not already know (does Mao count as socializing?), I’ve on the other hand felt good throughout all its duration, which is great.
On the productivity side, I think I’ve done okay. Strangely enough it’s not been Debian the main target of my hack hours, God only knows why. Instead, I made a couple of contributions to Bazaar, one of the new generation distributed version control systems. But I’m sure my Debian work will gain momentum in the near future, so no worries.
Finally, I must say I’m in debt with a bunch of people who thought it was worth having me attend, and brought me here when it seemed it was too late. I’m very grateful for that, really.
As always, thanks to the orga team for their terrific work, and hope to make it to Argentina next year.
Update 1: Forgot to say, I went to the Genderfuck party in The Forest. It was pretty cool, and a first.
Update 2: Brittish Airways lost my luggage (and I seem not to be alone in this).
P.S.: I think I’ve got the Debconf flu. \o/
One feature I’ve always found terribly useful for team maintained packages are commit emails. They help you know what’s going on without need for extra communication (eg. that somebody started packaging a new releases), and they are useful when there are new maintainers, because their work can be easily reviewed. Centralized version control systems like CVS or Subversion make possible and easy to have such messages sent automatically upon commit, so all fits nicely.
Enter distributed version control systems; particularly those like Bazaar that can push over dumb protocols like SFTP: it is not possible to have the server do something (send an email) when new revisions are commited. One has to resort to solutions like bzr-email, where each individual commiter configures a plugin to send out the email from their machines when they commit. The result IME is that, either nobody does that, or not everybody does. Either way, no cookie.
So I decided to bite the bullet here at DebConf, and write a tool to solve this problem: a program that monitors the branches in the machine where they are hosted, and sends emails for new revisions. The result is here. If you’d like to use it for an Alioth project, you just need to do:
alioth% /var/lib/gforge/chroot/home/users/adeodato/bzr-hookless-email/alioth_helper.sh $PROJECT_NAME -d
(And ensure that the process does not die, or gets restarted when it does. I guess I could add code for that in the helper script, hm.)
% python2.5 -c 'from __future__ import braces'
File "<string>", line 1
SyntaxError: not a chance
I’ve been always dissatisfied with the sort_browser=date option in
Mutt, particularly when dealing with maildirs. For me, the reasonable
behavior is to sort by the newest entry under the new/ directory, so
that reverse sorting places the maildirs with most recent mails first.
There is a patch by Dale Woolridge to address this issue, but since it only looks at the mtime of the new/ directory, once new mail has been read in a maildir, it still stays on the top of the list.
So for me, the solution was to write an external program that would sort the list of maildirs by the date of the most recent new file, and have mutt read that list. Maybe you find it useful as well.
The original vi (or, at least, nvi) had multi-level undo. Only, you don’t access it with the intuitive uuu, but with u...
And then, I shall not be less verbose, but danes, dalton, montxo, and pablo.
LT: Najwa, My own shout
So appart from being happy just by being awake, these three last days have also brought a lot of surprises. I’ll mention a couple.
First, my mind is with a mental activity level quite high, not unknown to me, but never experienced with this intensity and duration combined. I now need tools to accommodate to this. My gut feeling is that ikiwiki and maybe vim-outliner are going to suite me perfect. If that’s finnally the case, Joey Hess gets my gratitude for both (author, referrer).
Secondly, I’m running an experiment with my sleep patterns that I was planning on not talking here about until at least a week from starting. But the details have changed a bit, and IRC just gave me the chance to reduce my two planned paragraphs description with a two-line one, so I’ll take it:
[dato] it's 22pm, I'm about to have dinner, and the fact that the sun is rising
doesn't bother me at all
I’ve enjoyed tears of joy many times in my life, always triggered by the happyness of my loved ones. Today, they were for me, my tears.
I have noone to thank for these past three days, but life itself. I don’t know how long this will last, either, but I am not scared.
NR: Miguel Delibes, Pegar la hebra. (As Joaquín Sabina would put it, “this is what I wear a hat for.”)
[LarstiQ] gar, why does firefox assume ftp when the host starts with ftp
* dato hugs konq.
[LarstiQ] dato: is it possible in konqueror to bind 'ttp://' to 'http://'?
[dato] LarstiQ, yes
[dato] Complete Abuse Of The Software (TM), but works
[dato] LarstiQ: know about web shortcuts? map shortcut 'ttp' to 'http://\{@}'
_NP_: Mala Rodríguez, _Tengo un trato_
Steve McIntyre talks about this puzzle, but I think he wants this one instead.
NP: Madeleine Peyroux, You’re gonna make me lonesome when you go
I’ve recently had to use Tailor to migrate a couple Subversion repositories to Bazaar-NG. I tend to be quite (too?) perfectionist with this kind of stuff, so I just wanted to make the config files I used available, in case they can help somebody who also wants the stuff I did: full names in the bzr log, and correct timezones for the commits.
So there’s the one for amarok packaging, a simple one that just sets my name, and an e-mail address depending on the date of the commit; the timezone is okay, since by default the local timezone is used (IOW, mine, but see notes below). And the one for pkg-xiph, which does a bit more of stuff, like taking the module to work on from an envvar, and assigning a timezone to each commiter, in addition to a name and address.
I’m happy with the end result of the conversion, but it’s come to a price: at first, the bzr timestamps for the amarok repo would be off by one or two hours. So I looked at the source and, after a fair while of wrestling with Python’s datetime module, I found that tailor/bzr.py is in fact buggy, and miscalculates the timestamp from the date Tailor feeds it from svn; either of these two patches, simple and better, fixes the issue. As for setting the timezone, this other patch is needed. (I sent all these uptream: link, and ‘yay pipermail’ link.)
NP: Hooverphonic, The Magnificent Tree
I definitely like being given enough rope to hang myself. Life wouldn’t be fun without the challenge of trying to hang myself increasingly less often over the years. And Bazaar-NG has shown me today some of the good rope it can give, and I’m happy.
This is about the annoyance that is, at least for me, having to type bzr diff -r
12344..12345 to get the diff introduced in revision 12345, instead of just bzr diff -r
12345 or similar. This happens on other VCSs, like CVS, Subversion, and Bazaar (or
so I hear).
For Subversion (as an anecdote), five months ago (January) I found out on IRC (thanks,
peterS) that a -c <revno> option had been added to svn diff which did precisely
that (commited 3 months before,
in October). An improvment that would be released in version 1.4, due in about a
month or so now (but six when I first heard about it, and nine after being implemented).
For Bazaar-NG, it’s been today the day I’ve got annoyed enough by this issue (while peeking here, btw) as to search if there had been any discussion on this issue, and I found this six-month old bug. It seemed a bit dead, so I gave my opinion about the issue, and discussion seems to have started again.
The good part comes now, though. I’m sure the bzr developers will give a solution to this problem: maybe sooner, maybe later; maybe the one I liked most, maybe not. But, the important thing for me is that I have, within hours of having felt frustrated, a solution that works for me: a plugin that wraps the diff command and interprets “-r N” the way I want. It may make the bzr authors shake their head (or not :P), but I certainly feel grateful for them having given me the possibility of doing it, and of being my responsibility whether to continue to use it in the future.
Oh, you can find the crack here. Surprisingly compact. (Update: well, not that much anymore after reimplementing it in a non-dumb way.)
NP: Paolo Conte, Via con me
I just wanted to say thanks to Antti-Juhani Kaijanaho, the author of grep-dctrl, for implementing a fix for my wishlist bug #355960. Now it is possible to obtain the value for a field (eg. Source) from some other field (eg. Package), when the former is not present.
For example, to obtain a list of source packages that need to be
rebuilt in a MusicBrainz transition: grep-dctrl -FDepends musicbrainz
-ns Source:Package. Formerly, one would have to list binary packages,
and do some juggling to get the list of sources.
I think regular grep-dctrl users will surely appreciate this capability.
NP: Almodóvar & McNamara, Suck it to me
I’m not much of a coder, but as everybody, I have several small scripts to do miscellaneous tasks. Over time, I’ve postponed repeteadly to put them under Subversion, which was my VCS of choice, since I didn’t like the “one repo for all” approach, and creating a repo for each of them felt like too much work. A few weeks ago I tried bzr, and have managed to put several of these scripts under its control since; one repo for each script makes sense to me when they’re very easily created, and data and metadata live together. (I realize other distributed VCS have this as well, but bzr was the one I tried first, knowing it’d be the one that would have more chances of me liking it.)
I’ve made publicly available those scripts which I think somebody could find useful,
here (mirror in gluck).
The one I’m more interested in publicizing is grep-archive,
a wrapper over grep-dctrl formerly known as grepd.
Since it works over a mirror-like directory tree, I’ll try to write a script that
creates one and fills it with symlinks pointing to Packages files under /var/lib/apt/lists,
so that it’s easier to start using it.
Another one worth mentioning is good old bug-reply-to.vim, which I remembered to put in bzr yesterday after kernel-team member Maximilian Attems expressed on IRC his frustration by bug submitters not CCing the bug in their replies to him. I’ve also taken chance to improve it a bit, most notably adding support for adding whatever is in the From field to the Reply-To (formerly the address would have to be explicitly passed as an argument, which was suboptimal if one uses more than one address), and documenting it a bit.
NP: Fangoria, Interior de una nave espacial abandonada
I’ve uploaded amaroK 1.4-beta2 packages to experimental, and to the new amarok-latest repository.
NP: Alejandro Sanz, Cuando nadie me ve
I’ve prepared amaroK 1.4-beta1 packages and uploaded them to experimental (a copy is available here). I recommend you to have a look at the changelog ; that way you’re more likely to discover the stuff that’s interesting to you. As an example: “Optionally update playcount for items played on iPod and submit them to last.fm and synchronize ratings between amaroK and iPod”.
Note that you’ll need ruby installed to download lyrics now (feel free to reimplement the script in Python if you wish!), and that this version will rebuild your collection.
If you can report bugs directly to upstream’s bugzilla, that’d be great (the packages are unstripped, btw).
NP: Bergman, Enigmas in your hand
So it looks like we’re finally getting a vote to issue the long-awaited GFDL Position Statement, and explain why Debian does not consider this license suitable for its main section (gr proposal, latest version). After asking around in -private, I proposed an amendment to allow GFDL-licensed documents with no invariant sections to remain in main; as of now, this amendment has received exactly zero seconds. (In case this needs mentioning, an amendment needs at least 5 seconds to appear in the ballot. And if someone wants to point me the legal flaws of my amendment, please read this first.)
I’ve surprisingly found myself getting quite upset and enraged (quite political?) about the whole GFDL story. I have very clear feelings about the whole situation, and they’re best explained in this post. But well, I’m finally starting to digest that most likely Anthony’s text will pass, and managing to not get tragic about it. I guess it’ll go away, and that I’ll then continue with my Debian tasks as usual. Heck, if I one manages to be friends with people that vote conservative (and, heh, they manage to be friends with me), I guess this is about the same.
NP: The Cranberries, Dreams
A couple weeks ago, Debconf-ES II was held in Guadalajara. It was terrific: meeting again some people whom I already knew, many of which are more than fellow developers; meeting for the first time some others who I hadn’t; and, of course (and finally!), Mao.
There was also a KDE talk, telling a bit the story of the Debian Qt/KDE Maintainers. I enjoyed it a lot; among other things:
while the talk was in Spanish, the slides were in English; it was probably quite strange for some, but hey, that’s the way it came.
slides were not done with OO.o Impress or similar: Vim plus Konsole with a huge font!
my utter inability to speak proper Spanish for Debian-related stuff became (as if there were any doubts left) evident.
we were two people on stage, which make the talk pretty dynamic. Dear Isaac, YRMWAYKI.
Santiago Vila kudoed us!
As always, eternal gratitude to the people that worked their asses off to make this event possible. Even if not tons of work got done during that weekend, it was surely a big dose of energy for all of us!
NP: Astrud, Masaje
grep-dctrl has proven, at least for me, an utterly useful tool; I suspect this will probably be the case for many others as well. (As I side comment, I believe it’d be nice for AMs to make sure their applicants do at least know about the existance of grep-dctrl, and ideally have basic knowledge about how to use it.)
Many times, though, using its grep-available form is not fine-grained enough, and
one needs full control over the distribution to make the search in. A valid workaround
for this is to run grep-dctrl over /var/lib/apt/lists/whatever; I’ve been using
this for some time now, with shell aliases like grep-sid or grep-s-etch (for sources),
but sometimes I wanted a grep over two dists, or several components (e.g., main and
contrib), or a set of arches.
For this, I decided to write a grep-dctrl wrapper that, relying on the structure of
a normal mirror, allows to run a search over any combination of dist/component/arch.
At home, where I do not have a local mirror, I have populated /org/ftp.root/debian/dists
with a pool of symlinks towards /var/lib/apt/lists, and whenever I need more than
i386/source, I can run it on any debian.org machine with a local mirror, e.g. merkel.
For example, to know which packages in sid but also present in testing are still kdelibs4c2a-untransitioned, but ignoring hppa and m68k, I’d run on merkel the following:
% grep-archive sid:main,contrib:alpha,arm,i386,ia64,mips,mipsel,powerpc,s390,sparc \
-Fdepends -e 'kdelibs4(c2)?( |,|$)' -ns source,package |
unique-sources | xargs madison -s testing | awk '{print $1}'
In case somebody finds it of interest, the script is available here, together with the dirty hack that is unique-sources, needed since not all binary packages have a Source header (sigh).
NP: Jacques Brel, Au suivant
If in your next upload you notice (or debdiff tells you) that you’ve lost all your
(or’ed) depends on xlibs (>> 4.1.0), that’ll be because of the latest upload of
xorg-x11 to unstable,
which removes that bit from all of its shlibs files, yay! Thanks, David.
(New hackergotchi created by Jacobo from a picture taken during my 23th birthday, last Sunday. Thanks!)
NP: The Magnetic Fields, I Think I Need a New Heart
Compare (in an utf-8 enviroment)
% printf "'% 2s'\n" "a"
' a'
with
% printf "'% 2s'\n" "á"
'á'
That happens with the builtin printf as found in bash and zsh, and with /usr/bin/printf. Also with perl, both with and without “use utf8”.
As Clint pointed out to me, printf(3) states that “the precision determines the number of bytes written, not the number of wide characters or screen positions”, so the behavior is correct.
Still, I’d like a way to get what I want (' á'), does somebody
have a suggestion for me? I can only think of
uglyness.
So, uhm, a couple of weeks ago I
changed
my e-mail address. Surprisingly, though, I haven’t felt completely
comfortable with that new one, so I’m now dropping
dato(at)the-barrel.org in favour of dato(at)net.com.org.es. I’m
hoping for this one to last; it being meaningless is certainly a plus.
Probably not for the rest of the Northern Hemisphere yet, but I hereby declare winter to have officially arrived to Alicante.
20:42 -!- dato [n=adeodato@debian/developer/adeodato] has quit
[Read error: 110 (Connection timed out)]
21:39 -!- dato [n=adeodato@debian/developer/adeodato] has joined
#debian-devel
(IOW, first power outage of the season, wheee.)
About books:
The book I think I’ve liked most, ever, is Los dominios del lobo, by Javier Marías. I don’t think I’ve read any other novel twice.
Between 1998 and 2003, I read a lot, but then I severely slowed down.
84, Charing Cross Road, by Helene Hanff, is a little wonder that everybody should read.
Most of what I read is fiction, but none of it sci-fi.
I find it amusing that I loved Coños, by Juan Manuel de Prada.
On perspective, what it seemed like a lot of books, are truly very few.
Steve Langasek may or may not dislike Carlota Fainberg, by Antonio Muñoz Molina.
After the current Planet Debian meme/whatever (one and zero, btw), I’ve resolved to take on reading again, but will most likely fail.
I wish I would have been able to finish Las ideas puras, by Pablo d’Ors, and Un mundo exasperado, by J.A. González Sainz.
Strangely (?), I have a very strong preference for Spanish literature. The way e.g. Juan Manuel de Prada (El silencio del patinador, La tempestad) and Francisco Umbral (Las ninfas) make use of my mother tongue is obscenely close to perfection.
Let’s mention one non-Spanish writer: Thomas Mann.
Like with films, but unlike with music, I don’t like to make my list of read books publicly available.
I’ve updated the packages in my amarok-sarge repository from 1.3.0 to 1.3.6; taglib 1.4, also available from there, is needed. I’ve also created a wiki page in the upstream site containing some information about amaroK in Debian.
Though rarely, interactions of mine with other members of the Debian community have been punctually more aggressive than I would have liked, and I have (almost) always regretted afterwards. I have no doubts there’ll be further occasions in the future in which re-reading posts like these, together with remembering my feelings while reading some of the surrounding posts, will positively affect the outcome of the situation.
NP: Antònia Font, Patxanga
Martin, Steinar presumably means
y in the index or the pager, not in the compose menu. It takes you to the list of
mailboxes, similarly to mutt -y in the command line.
For the sake of Steinar’s peace of mind, let’s mention that this is in fact a quite recent feature, added by upstream to the default Muttrc (yes, it’s not native) in response to their 2069. That was on 2005-09-17, and entered Debian on 2005-09-25: certainly a lot less than 5 years ago!
From now on, I’ll be using dato(at)the-barrel.org as my main address, instead
of asp16(at)alu.ua.es. (But this second one, provided by my Uni,
will continue to work for some more years, and not unlikely forever.)
I was not that dissatisfied with the MX host for alu.ua.es, but it has been getting
on my nerves on occasion during the last five years, so I decided it was better for
my health to make the change. Kudos to Alberto Gonzalez Iniesta (agi@d.o) for being
my postmaster from now on, since I really didn’t feel like running my own mailserver.
The story behind the-barrel.org is certainly not unrelated to this Google search.
I have a simple and fun game for you:
# Enter `#debian-devel`.
# Pick a random Spanish developer, e.g. "jordi".
# Write their nick, a colon, a space, and the word "Leonor".
# Watch them explode.
NP: Luis Eduardo Aute, No es en vano
This entry is here so that the October archives of my blog don’t remain empty. Let’s include a quote too:
<dato> the secret to rational blogging is using blogging software
that breaks on every Ruby update, so that it stays broken more often
than not, and you don't blog more often than you should
Cough.
Executive summary: on at least powerpc (but not on i386), mutt 1.5.11-1 as found today in unstable will eat mail from your mboxes. Fixed 1.5.11-2 packages in incoming.
The story: yesterday, Branden submitted #330474 at severity critical claiming that concurrent access to mboxes with the new mutt lead to loss of mail. I could not reproduce this on i386, but Paul van Tilburg pinged me this morning and described a simple, non-concurrent procedure that I could get to “work” in bruckner. See the upstream bug for details on reproducing.
The bug seemed to come from a patch that ustream had introduced (oh the
irony!) in response to a bug forwarded from our BTS about Mutt not
being able to open mboxes bigger than 2 GB
(#296940). To address this, Mutt had
started to use
fseeko/ftello
and hence off_t to store mbox lengths, but the code that fprinted the
Content-Length header was not changed to use a different format
specifier. This breaks in certain architectures (see this
sample
program),
and caused Mutt to write 0 as the Content-Length, leading to messages
being truncated on further mbox syncs.
Upstream was able to diagnose the problem and provide a patch very quickly (kudos to Brendan Cully). Fixed 1.5.11-2 packages (prepared after a prior version that simply reverted the patch), including the fix and a funky urgency line, can be found now in incoming or here (i386 and powerpc).
Some will prefer this to a dead upstream.
I’m amused after learning that
echelon thinks
I’m MIA since 2005-05-29, the day I became a Debian Developer: the only message
of mine it knows about is a mail to change@db.debian.org setting my ssh key.
Baaaaaad Ganneff, for approving applicants that disappear right after being
given their account... Guess I should report myself to Jeroen immediately. :)
On a more serious and productive tone, this is the result of two circumstances:
my name being non-ASCII, since ud-echelon does not rfc2047-decode the From line and searches the LDAP database for things like
=?utf-8?q?Adeodato_Sim=C3=B3?=the fact that I use a gpg subkey to sign my uploads, since the LDAP database only contains the fingerprint of the main one (which makes mail to
change@db.debian.orgrequire a signature from the main key, btw)After wrestling a bit with Python, I came up with a small patch (requires Python 2.2 or later) that should help to fix the first issue. It’s a bit ugly, but I could not find a simpler way to make it work under several different scenarios.
Thanks to Marc ‘HE’ Brockschmidt, I became
aware today of Vim’s wdiff syntax mode (set ft=wdiff). With it, reading
debdiff output before uploading becomes much easier. People, always run
debdiff!
NP: Andrés Calamaro, I will survive
People in ~#debian-devel-es can see me from time to time scream at some
changelog entries, because the miss some bit of important information. Such
entries are certainly a pet peeve of mine, but I’ll confine the histrionism to
the intimacy of the IRC channel, and be constructive here instead.
As I just mentioned in -devel:
changelog entries that make fellow developers reading them go like, “huh, what the fuck?”, and force them to ask around or investigate, are suboptimal.
to avoid the above, maintainers should ask themselves the following when describing in the changelog an important or disruptive change: “is there some information that, despite being obvious to me, other people should know to understand what’s going on?”
Here at akademy, I’ve seen around a Spanish issue of the Linux Magazine (picture) which included the following article:
Debianize your SuSE: using APT to download and install packages.
I should mail the editor and ask for a follow-up to the article, which would point users to the right tool.
I finally saw Unforgiven tonight. Oh Clint. This makes it two Saturdays in a row that I see a film that leaves me happily in awe.
aMule has now the possibility of running as a non-interactive daemon, which is a feature I’ve wanted for some time now (thanks, wuns). For this, aMule has to be compiled against WxWidgets 2.6, which is only in experimental at the moment, so the amule package in unstable cannot ship the amuled binary yet.
Anyway, as I wanted this for a sarge machine, a few days ago I backported amule and wxwidgets2.6 to sarge, and have been happily using that since then. Today Isaac expressed, in his finest Spanglish[1], interest in the packages, so I’ve made them available here.
The daemon is controllable via a web interface (remote GUI mode is work on progress and currently marked as experimental); for this, you should enable in the preferences dialog the “Run amuleweb on startup” option. You will have to enable the “Accept external connections” option as well; otherwise, the daemon will refuse to start.
As a final note, mention that the amuled binary is in the amule package itself, which means some X libraries will be needed for the installation. This is of course suboptimal, but there is no point on splitting because the non-x Wx libraries that the daemon uses (libwx_baseu, libwx_baseu_net) are shipped in the libwxgtk2.6-0 package, which would have to be splitted first. If this bothers you, you know what to do.
fn1. <isaac> oye, dato, el amuled lo tienes packaged o lo compilaste from orig?
NP: Fangoria, ¿Cómo solucionar problemas del corazón en condiciones atmosféricas adversas?
Erich Schubert talking about Ubuntu users enjoying «apt-get and other benefits of Debian» reminds me I wanted to blog this irc snippet (translated from Spanish, fake nick):
<qnetb> I used Debian for a long time before switching to Kubuntu
<qnetb> it's been quite easy for me to master Kubuntu (but not completely
yet), mostly thanks to their well-known APT
Speechless.
amaroK 1.3 was released yesterday, and (obviously) there is already a bug in the BTS asking for it to be packaged (but hey, I’m ok with that). Since we’re in the middle of the C++ ABI transition, and KDE has hardly started its own yet, it will be a while before amaroK 1.3 can be uploaded to unstable.
But I’ve prepared packages for this new version anyway (scratching,
y’know, my own itch), and compiled them in a sarge chroot, so they
should work in sarge, etch and sid for the time being. You can find
them here,
or with the sources.list line below. Enjoy the new icon!
deb http://people.debian.org/~adeodato/packages amarok-sarge/
If this had happened not so long ago, I would have felt terribly ashamed and wanting to die, or something. This time, however, I was only a bit stressed for some minutes after each failure (hi Isaac), but quite ok afterwards. And I’m happy about that, since it means real progress for me. Apologies, though, to all for whom those uplods meant a little extra work; it’s what makes me most angry about mistakes, that they affect other people.
On other news, the above also means that Qt has almost finished its C++ ABI transition (*crosses fingers*), so KDE will start its own transition soon. Sid users that have KDE installed should read the following mail if they haven’t already: For sid users: An overview of the KDE C++ ABI transition.
NP: Pedro Guerra, Hay mil maneras de derrotar a un hombre
This blog entry answers the question «Why the hell has not qt-x11-free done its C++ ABI transition yet when there are tons of packages waiting on it?» Sorry if I haven’t done this before — sadly, I sometimes don’t realize that some information I have access to can be difficult to find for other people.
First of all, the next version of qt-x11-free (now maintained by the Debian
Qt/KDE Maintainers) has been ready for a while now; you can take a look at the
changelog,
and if somebody needs the packages, they are even available at
gluck:~adeodato/QUEUE/qt.
Now, the reasons for not having uploaded yet. The policy for this C++ ABI transition is that you don’t upload until your build-dependencies are ready in all architectures. As such, Qt is waiting on xorg-x11, which should be compiled everywhere by now but has had some bad luck in SPARC.
I know that many people just prefer to upload when the waiting period becomes too long, which is an option. I, however, can always be found in the more conservative side of packaging, so I’ve preferred to wait a bit more. However, if by the end of the next BSP things are not sorted out yet, I will seriously consider uploading the packages.
And no, I’m not happy about the situation either.
I tried to help a bit with the C++ ABI transition and prepared a NMU for taglib (#319512). While doing so, I checked the reverse dependencies of libtagc0 to check they continued to work, and discovered streamtuner there, a program to browse audio streams from different sites.
I’m a happy streamtuner user now, but this blog entry is really just an excuse to include the following now playing line, found of course in a SHOUTcast stream.
NP: Charles Mingus, All the things you could be right now if Sigmund Freud’s wife was your mother
While bored because ftp-master is down, I gave a try to Wouter’s hackergotchi HOWTO, and this was the result.
NP: Paco de Lucía, Reserva el último baile para mí
I can’t believe it, this town is «en fiestas» again. Not fair, it’s not been a year, not even six months, since the previous time. This sucks.
NP: A crappy version of Obsesión that enters through my window (I really preferred the howls).
Dear Finnair,
despite your insistence that this is a Spanish omelette, I must inform you that no, we don’t put mushrooms inside Spanish omelettes. Also, quite importantly, the potatos must come inside, not served separately. As in any of these.
NP: Mecano, Dalai Lama
I am incredibly fragile but some people rock.
David, I believe you hit the nail when you say: «This is how unstable works, for those of you running it at the beginning of a release cycle for the first time.» There are probably many people in that situation, who end up annoying pyro (hi!) just because this is their first time. But some From headers just hurt...
Last night when I was writing hobix post blv (the command to start a new blog
entry), one of my flatmates in Spain accidentally unplugged the switch and I
lost the connection to my computer and the possibility to blog, since my ssh
keys were there. That entry will never happen now, and perhaps it’s for good.
When I sleep too little, I tend to grow a very negative view of life. For this, I should really force myself to sleep enough at DebConf, even if that means having less time to be with people. It’s easier to say than to do, though.
Right now I’m incredibly stressed by a number of things, but at least I know it’ll mostly go away with a good sleep, so good night. :)
NP: Alanis Morissette, I was hoping
The list of bugs against mutt is so long that it’s not difficult to find an already existing report related to whatever comments people make about it. Mako, good old #182069 takes a different approach to the missing attachment problem, though it seems unlikely that it’ll go upstream.
On the dark side of things, KMail (hi Isaac) has had this feature for some time already:
Can’t speak for Evolution or Thunderbird, though.
NP: María del Monte, Rosita Sotomayor (waves to the music print queue)
During the last 30 odd days, all these important things have happened in my life:
- I became an official Debian Developer.
- I started my first job.
- Sarge was released.
- I bought my plane tickets for DebConf.
- I moved into a new flat with some friends.
- I changed my upload bandwidth from 150 to 512kbps.
- Gay marriage became (today) a reality in Spain.
NP: Javier Álvarez, La balada de Lois & Clark
It’s that time of the year again when I’ll to go to wash my hands and will get invariably puzzled by the water coming out hot despite the faucet being set to the right temperature. Till I remember of the long pipe outside, taking a sunbathe. On August, hot water will last for more than one minute.
NP: Kiko Veneno, Joselito
Jordi, will your interview with seb128 be featured in the second issue of your Revista para dudes? I urge you to contact your publisher and tell him how us the masses are anxiously waiting for the next issue, and to discuss the possibility of an English version as well.
NP: La Buena Vida, Nada debería fallar
So I was at the Castellón CDD Dev Camp last week, which Sergio has already blogged about. I didn’t bring a camera, so I’d be glad if somebody who took pictures and has uploaded them somewhere points me to the right URL.
This was my first RL Debian event, and it was really nice to meet some fellow developers. Though Amaya couldn’t finally make it, I’m afraid her joke about me being the alter ego of Jordi (joke which I enjoyed, I will confess) will have to die now:
NP: Niza, Universo
Today April 27th at 10:00 UTC (noon local time), multiple demonstrations across Spanish Universities were held to protest against the adoption of software patents in Europe, and to request that the European Parliament rejects the directive in the upcoming vote. A manifest was read, and the participants were asked to sign a petition; conferences and information sessions were organized for the previous days. See the news item at FFII for a summary.
Lots of coordination have been necessary to make this 27-A a success, and many people have been working hard, both at a nation-wide level, and inside each University. Thanks to them all. As the past has shown, these wars can be won.
Pictures of the events and the manifest (in Spanish) can be found in the site set up by Proinnova: lucha.proinnova.org (lucha means “fight” in Spanish). Here’s a picture of the demonstration at my Uni:
NP: The Magnetic Fields, Absolutely Cuckoo
So,
inotify
and a modified/improved INotify.rb have
made me happy again. I’ve been able to get rid of fam, finally, and
it’s also very nice that the “bindings” are about 50 lines of clean
code ioctl’ing /dev/inotify and
unpacking
the response.
I use it to monitor my maildirs and then update a muttrc snippet that sorts them by reverse date, which Mutt sources. I started to use this external sorting scheme some time ago, after becoming increasingly unhappy with the maildir mtime patch. It may be overengineered, but works for me.
Update: I’ve polished a bit my inotify.rb, written an example and
some notes, and put it
here (it’s a
bzr branch as well). Perhaps it can be of some use to somebody.
NP: Vainica Doble, Cartas de amor
It’s Moros and Cristianos here. That means people dress up with fancy costumes and organize parades, traffic gets stopped, and all that fun stuff. And then, at night, your average Spanish fiesta: people gather in barracas, drink, and listen to loud music. Till 4am. One just gets used to it, since anywhere in Spain you live, there’ll be always a week like this (just remember Jordi’s ramblings about Fallas).
This year is particularly annoying for me, though: the flat I moved into some months ago seems to have some trouble with the electric instalation, and the light bulbs here started to tilt badly today. I’m not surprised, given the amount of extra street lights that they installed, but still, is fucking annoying. The dog next door is fucking annoying too, but that’s another story. He howls at night, pity that I can’t get vorlon to throw a hint at him.
No French films lately: Garden State (Zach Braffi’s face intrigues me, lovely Natalie Portman), Closer (I liked it, but people picking it for the cast will not find what they expect), Cold Mountain (Renée Zellweger++), Memento (no, I hadn’t seen it), and Se7en (no, this one either). There’s been another one, but I won’t mention the title so I can say this: it sucks when an otherwise rather happy story doesn’t give you any hints that the protagonist is to be stabbed in the last cut.
I’ve also started to read fiction again, Spanish writers.
NP: Leonard Cohen, First we take Manhattan
So, instead of blogging about changelog abuse, I’ll continue to talk about the French films I’ve seen lately. These are The Taste of Others, a nice comedy from 2000, and Truffaut’s The 400 Blows, a truly masterpiece which I should’ve seen years ago; three superb cuts from this one: the Physical Education class, the puppets show, Antoine about if he ever had a girlfriend. But non-French films are OK too: I agree with Jordi that Million Dollar Baby deserves its 4 Oscar, and Álex de la Iglesia didn’t disappoint me with Crimen ferpecto.
Mutt 1.5.8 will be uploaded soon. Norbert Tretkowski drew my attention over the sensible menu position patch, which makes mutt remember its last position in the mailbox menu when returning from a mailbox. I find it very useful, but since currently there is no way to turn it off, I wouldn’t mind hearing some opinions before considering it for the Debian package (though it may make 1.5.9 on its own). You can give it a shot in version 1.5.8-1~pre1+menupos from my mutt repo.
Also, we’re doing some final polishing for KDE 3.3.2 in Sarge, and
we’re willing to
hear about
things that, while not RC, would be nice to get fixed (e.g.,
#298308 or
#296240 ); please mail
debian-kde if you have any
suggestions. Work in KDE 3.4 packaging
continues too, and I’ll shamelessly steal Jordi’s latest
post
now, properly piped through sed -e s/GNOME/KDE.
The other day I told somebody on #debian-bugs that apt-cache rdepends had some
quirks, but that I couldn’t remember them. Now I do:
$ apt-cache rdepends pmount
pmount
Reverse Depends:
hal
gnome-volume-manager
But guess what, hal does not depend on pmount, it just conflicts
with old versions of it. Not that apt-cache is strictly wrong, but
it can be misleading, so /me hugs
grep-dctrl...
NP: Andrés Calamaro, Me pierdo
Tonight I’ve been procrastinating some Uni assignments, and while doing so I’ve ended up reading old debian-devel-announce archives (extra points if you guess why I arrived there). I’m undoubtedly a newcomer to Debian, just as many other people, and I really recommend having a look there if you’re one of them too, at random times and in small doses. I certainly intend to continue doing so in the future — apart from being a valuable source of information, it has already served me to increase my admiration towards people I already highly respected.
NP: Najwa Nimri, All clear
Out of the last three times I’ve been out to the cinema, two have been to see a French film: A Very Long Engagement, which is a must if you enjoyed Amelie, and Intimate strangers. It’s a pity I don’t speak French, since I like watching the original versions whenever I can.
On other news, the Spanish government encourages me to participate in the EU Constitution vote due next Sunday by giving away for free some sort of energy drink. This Referendum Plus thing has been created specifically for the occasion, and will give us the young “the energy to decide your future”. Oh well.
NP: Luke Vibert, I love acid
On Friday, Mutt 1.5.7 was released, for which I’ve prepared packages today.
These will be uploaded after the current version in sid enters testing. In the
meantime, you may fetch
them from
my repo, or add this line to your sources.list in case you want to get
eventual updates:
deb{,-src} http://the-swirl.org/~adeodato/repo mutt/
Testing welcome, specially that no regressions occur. There aren’t many
differences with respect to the current version in sid, since we already tracked
CVS, but a lot of patches have been dropped from the Debian package. Also, I
implemented the /etc/Mutt.d directory, which was requested in
Bug#285574.
NP: Martirio, Con el alma en los labios
After having Planet inform me of what I try to forget by not reading the papers, and seeing no other posts for a while, I opened the Gimp to create a transparent image of the appropriate size.
But then, I learn something about the Gimp that is far more shareable than a blank image. This is a screenshot of the Template submenu in the Create a New Image dialog:

In Spain, the tradition goes that children (and not so children) get most of their Christmas presents from Los Reyes Magos (The Wise Men), instead of Papá Noel (Santa Claus). After having written your wish letter to them, you go to bed on Jan 5th, and when you get up the next day (children get incredibly early on Jan 6th), you find your presents there.
Two nights ago, while many of us were sleeping, vorlon and aj were working behind the scenes to make KDE 3.3 in Sarge be a reality. People upgrading this morning should already find it in their mirrors, together with a bunch of other apps that were previously blocked by kdelibs. I officially declare aj and vorlon our particular Melchor and Gaspar for 2005. (But there were many other people involved before as well, a big thanks goes to all of them too.)
Baltasar, which is usually children’s favourite Rey, should certainly be Gannef, who has been delivering several Debian accounts lately. Isaac, one of the latest incorporations to the KDE Packaging Team, got his. Congratulations!
My Rey Mago this year was the postman, who brought this morning my copy of Programming Ruby, 2nd edition (The PickAxe Book).
Several people already have a script to easily access Debian bug mboxes with mutt. I have one too, and just wanted to share two bits of the mutt invocation I use that I’ve found rather useful:
-e 'push D~=\n$'will delete duplicate mails from the mbox, which can be a few given that debbugs stores two copies if the mail is sent, e.g., both tonnn@bugs.debian.organdcontrol@b.d.o.-e "my_hdr To: $B@bugs.debian.org", where$Bis the bug number, will make that hitting ‘r‘eply automatically adds the bug address to the To header. I was rather annoyed by having to add it manually each time.The full script I use is here (note that it won’t delete the mbox afterwards).
Also, I’ve been wanting for some time now to write a vim function that would set the
Reply-Toheader for mails sent to the BTS. Quite often the bug submitter will reply only to me, and I end up using the bounce feature of mutt quite a lot.Today I felt like I could stand vim’s awful scripting language for a while and sat to write it: have a look if you’re interested (you will have to set
$edit_headers, of course). It seems to work well, but since it’s from today, perhaps I forgot of some scenario. Feedback welcome.I use it like:
au FileType mail
\ ia xdc X-Debbugs-CC:
\| call Add_bug_to_reply_to('yo')
yo means I in Spanish, and it’s an alias for my e-mail address.










