Hi (again), I'm Zack, and this is my blog. Have a look at the most recent posts below, or browse the tag cloud here on the right.

Archives are available as well.

You can leave comments on my posts by following the relevant link associated to each post. Alternatively, you can mail me comments; note that unless otherwise requested, I will add mailed comments in the comment feeds.

The blog is mostly in English while sometimes in Italian; there is a (tiny teeny) tag cloud to choose the language.

RCBW - #24

Some pause, and here we go with another RCBW issue. The pause has involved various Debian-related work, such as preparing OCaml batteries included for Squeeze and of course preparing my DPL platform.

Without any further ado, here are this week's squashes:

  • bug #566568 - mysqmail - fix piuparts install failure (sponsor upload for Thomas Goirand)
  • bug #569455 - ocaml-batteries - new upstream release, which also fix old FTBFS
  • bug #529040 - magit - add missing deps (mixed NMU / sponsoring for Marius Vollmer)
  • bug #549590 - magit - avoid installing install.info (mixed NMU / sponsoring for Marius Vollmer)
  • bug #567003 - firestarter - lower severity+unreproducible, user should use gksu or equivalent
  • bug #571454 - gmerlin - fix missing-dep FTBFS on kfreebsd, patch by Christian Marillat
  • bug #562039 - ecasound - fix Emacs deps in the -el package

Random points:

  • thanks to Thosrten which replied to my call for help and squashed bug #559822. BTW, there's one more RC in that bug set: bug #559808 (hint hint!), but you need patience as gnash took ages to build ...

  • tip of the week: removing a DELAYED upload when you don't have the .changes around anymore can be daunting (in fact, all combinations of dcut commands I've tried failed). If that happens to you, remember that http://ftp-master.debian.org/deferred/ can come to the rescue: it stores .changes file of DELAYED uploads (properly unsigned)

  • a lot of new participants: let's welcome on the RCBW board Emilio, Marco, and Rafael

Posted Fri Mar 12 11:16:28 2010 Tags:

OCaml Batteries Included 1.1.0 has arrived in Debian

I've just uploaded the Debian package of OCaml Batteries Included 1.1.0 to the Debian unstable archive; hopefully, it will quickly enter testing to be released with the next Debian stable release. This is the first release in Debian of the "new generation" of Batteries Included, which has followed a strict diet, and now has Camomile as its only external dependency.

It took me a while to package it due to an intertwining transition to OCaml 3.11.2 (during which we have fleshed out the last remaining few bits of transition to our new dependency system). Also, I had to fix some typical build issue with upstream, which kindly coordinated with me to have the fixes included in 1.1.0.

So go, enjoy Batteries 1.1.0, and let me know your feedback:

    # apt-get install ocaml-batteries-included

(check that it will install 1.1.0 though, it might take a few days to hit your favorite architecture and mirror)

Tip: starting from this version you will need the following to use Batteries in place of the legacy standard library in your sources:

    open Batteries_uni

for multi-threaded programs you should rather use open Batteries. Check the FAQ file installed under /usr/share/doc/libbatteries-ocaml-dev/ for more quick start information.

Posted Sat Mar 6 15:39:15 2010 Tags:

RCBW - #23

Wacky week, last week.

Not only I've (almost) completed my moving to the new house, but we have also had guests in the lab for some full-immersion-paper-writing. That had left very little time for RC squashing, but I've catched up a bit in the week-end.

Without any further ado, here are this week's squashes:

  • bug #516336 - haskell-utils - requested removal (superseded by haskell-devscripts)
  • bug #547278 - elvis - downgrade, unwarranted RC severity
  • bug #559833 - imagemagick - libltdl CVE, investigated and closed as false positive
  • bug #567706 - mailcrypt - drop support for emacs flavours older than 23
  • bug #547810 - ccsm - fix FTBFS with python 2.6
  • bug #571185 - padre - requested removal from testing
  • bug #561524 - pyjamas - fix FTBFS with python 2.6 (Ubuntu patch by Fabrice Coutadeur)

Random points:

  • call for help, if you are a libtool guru there is some work for you: bugs like bug #559822 need your help (very old code, using very old libltdl stuff, need to be ported to recent, non-buggy libltdl code and to use the system copy of the library ...).

  • my personal RC bug monitor (hence very biased) currently reports 278 RC bugs. Also, I've the impression that the ratios of new bugs coming in vs ancient ones getting fixed equate. If that is true, it would be a pity not to freeze this month.
    ... what are you doing here? still reading this blog post? go squash a RC bug!

In totally unrelated news: I've bought my ticket for DebConf10 (YAY!), according to my usual debconf customs: 4 days of debcamp + all the conf. See you there (in a while). ... and congrats to Adnan for the winning DebConf11 bid!

Posted Wed Mar 3 10:29:29 2010 Tags:

RCBW - #22

With a mini-rush in the week-end, I'm now back on track to the weekly schedule of RCBW; here are this week's squashes:

  • bug #565274 - tex4ht - test and close bug fixed by recent binNMU
  • bug #553553 - phpsysinfo - fix dir-or-file-in-var-www, based on a patch by Mats Erik Andersson
  • bug #553496 - doc-central - fix dir-or-file-in-var-www, sponsor NMU by Mats Erik Andersson
  • bug #559821 - libtunepimp - fix libltdl CVE (bonus fix bug #476378), patches by Yavor Doganov
  • bug #568982 - sqldeveloper-package - port from dos2unix to fromdos, patch by Michael Musenbrock
  • bug #534721 - libhpricot-ruby1.8 - error in printing tags to stdout (fixed upstream in a version already in Debian)
  • bug #564680 - gnugk - rebuild against firebird 2.1, as requested by Damyan Ivanov (important bug blocking RC bug #549062)

About this week highlights:

  • In his latest RC-bug statistics, Tolimar has pointed to the RCBW description as inspiring. That's good, I hope more and more people can find it inspiring (in fact, that's why I wrote it). A handful of people doing RCBW is pointless, unless as a side-effect we manage to change the culture of our project in order to be more collaborative on how we reach a release.

  • I've been amazed by how many RC bugs are "stuck" just because no one took care of establishing communication among the appropriate people. That of course happens when the maintainer of the bug has been unresponsive, but some investigations of the bug is usually enough to make the appropriate people (upstream, porters, related package maintainers, ...) aware of it ... and then the bug will "mature" all alone.

  • Josselin has announced the Debian/GNOME bug weekend for the next weekend (27-28/02/2010): an initiative to collaboratively triage GNOME-related bugs in Debian. For large-enough packages (and GNOME fits that definition for quite some different notions of "large"), such efforts are as badly needed as RC squashing: if you liked RCBW, you can't miss the GNOME bug weekend :-)

Posted Mon Feb 22 15:24:53 2010 Tags:

RCBW - #21

I've accumulated one more day of delay, but here is a full RCBW issue. Still, I've a nice good excuse for the extra delay: I've changed house in Paris, the new one is very small (a chambre de bonne), but also very comfortable.

Without any further ado, here are this week's squashes:

  • bug #555325 - gq - requested removal from testing
  • bug #567265 - tinyproxy - clarify ambiguous debian/copyright
  • bug #569391 - gmetadom - fix CDBS include order, to ensure proper generation of ${ocaml:Depends}
  • bug #559814 - hamlib - libltdl privilage escalation (sponsor upload for Kamal Mostafa)
  • bug #567192 - ircd-hybrid - apply patch from DSA-1980-1 (thanks Steffen Joeris)
  • bug #563883 - python-dmidecode - avoid shipping /usr/local/ stuff (sponsor upload for Nima Talebi)
  • bug #561904 - python-dmidecode - fix file clash w/ -dbg package (ditto for the sponsoring)

And here are the usual highlights:

  • a quote from #debian-devel, on 10/02/2010:

      (11:41:49) Zhenech: zack, damn you, now you infected me with the nmu virus :P
      (11:42:08) zack: Zhenech: yay, another one \o/
      (11:42:30) zack: Zhenech: can I quote you? ;-)
      (11:42:45) Zhenech: zack, only if you don't sell it to elsevier ;)
      (11:43:12) zack: deal!
    
    
  • in some particular cases RC bugs can be "fixed" by requesting the removal of a package from testing (when it is not appropriate to remove the involved packages completely from the archive, which is often the case). As I didn't that much often in the past, I forgot how to do that: just file a bug against release.debian.org respecting the usual removal conventions

  • gregor hermann is my hero

  • bernd zeimez posted on planet an impressive summary of Moenchengladbach's BSP

Posted Wed Feb 17 12:43:27 2010 Tags:

RCBW - #20

With a couple of days of delay, here are this last week squashes, by yours truly:

  • bug #567767 - nxml-mode - request removal, integrated into emacs23
  • bug #546764 - d-feet - add missing dep on hicolor-icon-theme
  • bug #566290 - php-wikidiff2 - add missing dep/substvar on phpapi-*
  • bug #567860 - php-net-ping - sponsored fix (+ upstream release) for DM maintainer
  • bug #248275 - anteater - proposed removal
  • bug #536285 - mirage - avoid tricking users to delete the wrong file (patch by Evgeni Golov)

The delay is due to FOSDEM, it's hard to squash bugs when you are: (1) having fun (best FOSDEM ever, if you ask me), (2) connected with very poor network connectivity (let's say: FOSDEM-quality network). Also, there are just 6 squashes, but last week there were 8, so ... :-) (I know, I suck).

Among the main highlights of the week, I just want to cite Mehdi Dogguy: he was with me at JFLA 2010 last week and I've managed to grab him into the "RCBW tunnel". With a handful of well-targeted NMUs, he has fixed about 10 RC bugs in the few days of the conference. He is too shy to blog about that, but since I'm evil, I'm disclosing it here :-P Welcome on board, Mehdi! (now you're doomed: you must continue doing that!)

Posted Tue Feb 9 10:23:10 2010 Tags:

Tra gli scrittori che più mi hanno appassionato e divertito negli ultimi anni, c'è indubbiamente Gianrico Carofiglio: ha importato il filone "legal thriller" nella narrativa italiana ed il suo personaggio chiave (l'avvocato Guido Guerrieri) è oltremodo coinvolgente.

Nell'ultimo romanzo (Le perfezioni provvisorie, Sellerio, 2010), un flusso di coscienza del Guerrieri regala questa perla, chiaramente rivolta a se stesso, subito dopo avere utilizzato l'espressione «non c'è problema»:

Non c'è problema? Ma come parli, Guerrieri? Sei impazzito? Dopo non c'è problema ti rimangono tre passaggi: un attimino, quant'altro e piuttosto che nell'immonda accezione disgiuntiva. A quel punto sei maturo per andare all'inferno, nel girone degli assassini della lingua italiana.

Veramente snob, pignolo, insopportabile.
Ciò nonostante mi piace ed inevitabilmente mi strappa un sorriso.
Ecco cos'è: mi ricorda qualcuno.
Idee?

Posted Tue Feb 9 09:57:21 2010 Tags: ?book

remember Mutt's mail in Org-mode and jump back to them

As already anticipated, I've been implementing my own Getting Things Done work flow. This post documents one of its main bricks: the integration between Mutt and Org-mode.

As a geek, my main incoming stream of TODO items and information in general is email. As emails hit my INBOX, I either deal with them immediately (reply, archive, delete) or I need to store them elsewhere, possibly adding extra information such as a deadline, a personal note, the associated next action, the context in which it is actionable, etc. This need of adding extra information is what defeats the usage of my mail client (Mutt) as a list manager (in the GTD sense), and that's where I plugged Org-mode in. My main goals are:

  1. create Org-mode notes from Mutt, referencing the current email, and possibly inlining some of its metadata (e.g. subject, sender)

  2. quickly retrieve referenced emails from Org-mode notes; ideally that should happen in my usual email environment (i.e. Mutt), so that I can process the retrieved mail as usual (e.g. to inform the sender that I did something about it)

In fact, both would be straightforward to achieve if I were using some Emacs-based mail client such as Gnus, but I resist the Emacs operating system syndrome, and therefore I insist in using my beloved Mutt.

Let's see how the two parts of the interaction between Mutt and Org-mode work.

(1) Mutt → Org-mode (there ...)

The interaction from Mutt to Org-mode happens via org-protocol. Using it external applications can feed content to Org-mode note templates, which are then interactively edited (via emacsclient), and finally filed away.

The Mutt glue macro from my ~/.muttrc is as follow:

macro index \eR "|~/bin/remember-mail\n"

The remember-mail script is trivial: it parses the fed mail from STDIN (using a couple of legacy Perl modules) and then invokes org-protocol.

The relevant configuration from my ~/.emacs is reported below; the comments explain the various parts:

;; standard org <-> remember stuff, RTFM
(org-remember-insinuate)
(setq org-default-notes-file "~/org/gtd.org")
(setq org-remember-templates  ;; mail-specific note template, identified by "m"
      '(("Mail" ?m "* %?\n\n  Source: %u, %c\n  %i" nil)))

;; ensure that emacsclient will show just the note to be edited when invoked
;; from Mutt, and that it will shut down emacsclient once finished;
;; fallback to legacy behavior when not invoked via org-protocol.
(add-hook 'org-remember-mode-hook 'delete-other-windows)
(setq my-org-protocol-flag nil)
(defadvice org-remember-finalize (after delete-frame-at-end activate)
  "Delete frame at remember finalization"
  (progn (if my-org-protocol-flag (delete-frame))
     (setq my-org-protocol-flag nil)))
(defadvice org-remember-kill (after delete-frame-at-end activate)
  "Delete frame at remember abort"
  (progn (if my-org-protocol-flag (delete-frame))
     (setq my-org-protocol-flag nil)))
(defadvice org-protocol-remember (before set-org-protocol-flag activate)
  (setq my-org-protocol-flag t))

The result is that when you hit ESC-R in Mutt, emacsclient will be fired up in place presenting a note template that already contains relevant mail information (date, subject, from) and lets you add extra information before going away. Additionally, the email message-id will be hidden in the note as a mutt: hyperlink with anchor text "mail".

(2) Org-mode → Mutt (... and back again)

Going back means that clicking on a "mail" hyperlink within an Org-mode note should bring up a Mutt instance showing the original message, in its context (e.g. its own mailbox). Achieving that consists of 2 separate steps:

  1. looking up a specific message by Message-ID
  2. firing up Mutt on the looked up message

For the first part I use maildir-utils (AKA mu): a Xapian-based mail indexing tool, which nicely integrates with Mutt; check out my previous blog post on the subject for a sample setup. Using mu, Message-ID lookups are as simple as:

zack@usha:~$ mu find -f p m:E1NbJad-0007x9-B7@ries.debian.org
/home/zack/Maildir/Debian.project/cur/1264883664_0.9472.usha,U=6320,FMD5=2284e927bb93d8a2ec434f5614dc04ba:2,S

Note: I'm relying upon maildir-utils version 0.6 or greater, for all presented scripts.

For the second part I use the mutt-open script which fires upon a Mutt instance on the maildir containing a specific message, and then "hits" the appropriate keys to open the message and shutdown the sidebar (if desired). It is a nicely reusable script, which I've being using elsewhere too.

The needed glue on the emacs side is just a function to invoke mutt-open in a brand new terminal, and its declaration as the handler for mutt: URLs.

(defun open-mail-in-mutt (message)
  "Open a mail message in Mutt, using an external terminal.

Message can be specified either by a path pointing inside a
Maildir, or by Message-ID."
  (interactive "MPath or Message-ID: ")
  (shell-command
   (format "gnome-terminal -e \"%s %s\""
       (substitute-in-file-name "$HOME/bin/mutt-open") message)))

;; add support for "mutt:ID" links
(org-add-link-type "mutt" 'open-mail-in-mutt)

Voilà!

Download

Summary of scripts and configuration snippets discussed above:

Posted Mon Feb 8 14:09:41 2010 Tags:

RCBW - #19

Back with the "ordinary track" of RCBW, here is this week squashes by yours truly:

  • bug #546492 - djvulibre - provided patch implementing get-orig-source to strip non-free specification docs
  • bug #550394 - courier-imap - not affected/responsible by the imap-server virtual package mess
  • bug #550397 - kolab-cyrus-imapd - not affected/responsible by the imap-server virtual package mess
  • bug #550380 - uw-imapd - provides and conflicts with imap-server, fixing file-overwrite errors
  • bug #559698 - rox - drop useless build-dep on libxtrap-dev (which will be gone soon)
  • bug #559829 - synfig - disable vulnerable embedded libltdl, fix CVE
  • bug #520557 - lemon - proper version tagging, already fixed
  • bug #547726 - myspell-el-gr - forcibly orphan the package, "fix" maintainer address

The attentive reader have noticed that there is one more than usual, the reason is the mighty BSP in Mönchengladbach, which has powered all above squashes. I've enjoyed the BSP a lot, my first in Mönchengladbach, which won't be the last. I recommend checking it out at least once in the future, even only for tasting Formorer's chili :-)

The main highlight of the week is my personal award to the best feedback ever from an NMU-ed maintainer, the award goes to Jonas, kudos for your attitude.

Posted Sun Jan 31 09:51:30 2010 Tags:

niente di nuovo sotto il sole

Chi ha parlato con me di concorsi truccati che impediscono ai "giovani ricercatori"™ di essere assunti in Italia ha difficilmente trovato terreno fertile. La mia disciplina (l'informatica scientifica) è relativamente nuova e quindi più fortunata di discipline più antiche: le cosiddette baronie si stanno si affermando, ma in buona parte d'Italia (e limitatamente ai dipartimenti che ho avuto modo di conoscere) è ancora possibile trovare concorsi da ricercatore in informatica che siano specchiatamente meritocratici. Badate: non ho detto che sia la norma, ma ... «piuttosto che niente, è meglio piuttosto».

Nel mio ambito di interesse dunque, il problema della assunzione dei giovani è dominato più dalla scarsità di posti che non dal malcostume dei concorsi truccati. A parità di competenze scientifiche ed età, la Francia è in grado di assumere ogni anno molti più ricercatori in informatica di quanto non sappia fare l'Italia. Per questo è piuttosto comune imbattersi in laboratori di ricerca francesi dove i ricercatori italiani sono statisticamente sovra-rappresentati rispetto ad altre nazionalità.

In altre discipline e/o in altri piani della gerarchia accademica, le carte in gioco sono molto diverse. Riporto a questo proposito la (yet another) horror story dell'assunzione di 2 professori ordinari per trasferimento a Roma Tre. Niente di nuovo, ma questa ha avuto immeritatamente poca risonanza e la riporto con piacere.

Breve rassegna stampa:

  1. l'articolo iniziale di Roberto Perotti sul Sole, che introduce la vicenda.
    (Per chi non lo conoscesse, Perotti è autore del bellissimo libro l'università truccata, uno dei più belli ed equilibrati testi che io abbia letto sulle "sventure" dell'università italiana.)

  2. (i tentativi di) risposta degli attori del concorso, sempre sul Sole

  3. infine, l'analisi di Michele Boldrin sui meriti scientifici dei candidati in gioco per la cattedra di Economia Politica
    (Shameless plug per i cater-fan: Boldrin è l'economista di riferimento di Caterpillar.)

I miei highlight sulla vicenda sono i seguenti:

  • In molti, ed io tra loro, ritengono non sia possibile stabilire un unico strumento di valutazione automatico per l'attività di ricerca (i.e. PoP non è la soluzione). Ciò nondimeno, le personalità scientifiche attive in specifici ambiti possono facilmente smascherare i candidati impresentabili ad un concorso, grazie semplicemente alla loro cultura su quali siano le basi dati (motori di ricerca, indici di riviste, conferenze note, ...) scientificamente affidabili da consultare. Non è altrettanto facile garantire che vinca il migliore, ma smascherare gli impresentabili costituisce un contributo fondamentale a minimizzare i danni per l'università che assume il vincitore del concorso (e quindi per la collettività).

  • Uno dei punti (ricorrenti) di Perotti resta la chiave di tutto:

    In qualsiasi paese moderno nessun esponente accademico si sarebbe esposto in una vicenda così imbarazzante: la tradutio manuale dei titoli, la clamorosa disparità di valore scientifico di vincitori e sconfitti, le parentele, il cerchiobottismo politico. Inoltre, rettore e preside, e l'intera università con loro, avrebbero perso molto di più in immagine e prestigio di quanto avrebbero guadagnato in altre dimensioni.

    Perché questa totale indifferenza? Il motivo è sempre lo stesso: nell'università italiana si procede solo per anzianità, nessuno paga per le scelte sbagliate e nessuno viene premiato per operare bene. Che io promuova un premio Nobel oppure l'amico o il parente, il mio stipendio e la mia carica continuano esattamente come prima.

In tale contesto di deresponsabilizzazione generale nessuna isola felice può durare a lungo, le avvisaglie sono tristemente note.

Posted Mon Jan 25 21:54:36 2010 Tags: ?roma