Among the reasons that brought me to Debian...
Every now and then, people ask me why Debian? Why, among so many projects to choose from, I first liked, then got into, and finally I got committed into Debian, and not anything else?
Of course, one of the main points —back in 2000-2001 when I started using it, and still to this very day— is a strong identification with the ideological side. Yes, I am a strong Free Software believer, and Debian is what best suites my ideology.
Still, I did not only get into Debian because of this — And I was reminded about this by an article in this month’s Usenix ;login: magazine: An anecdotal piece by Thomas A. Limoncelli titled Hey! I have to install and maintain this crap too, ya know! (article requires ;login: subscription, but I’ll be glad to share it with whoever requests it to me — I have of course no permission to openly put it here in whole online. Yes, I am expressly sending a copy of this text to the author, I will update this if/when I hear from him) [update] The author has kindly allowed me to redistribute his article’s PDF — Download it here.
Before anything else… I’ll go on a short digression: I am writing a bit regarding the Free Software participants’ culture, and this is a trait I love about it: The lack of formality. Even though ;login: (and Usenix as a whole) is not exactly Free Software, it runs quite close to it), it is a well regarded magazine (and association) with an academic format and good (not deep or highly theoretical, but good) contents. Still, it is quite usual to see titles as informal and inviting as this one. And it happens not only here — I have been fearing having to explain at work, over and over, why I have requesting permissions to go to Yet Another Perl Conference, Festival de Software Libre or DebCamp, tagging them as academic settings. Or why I am wasting our library’s resources on buying cookbooks, recipes and similar material on the most strange-sounding subjects.
Anyway, back on track… This article I found refers to the lack of value given to the system administrator’s time when selling or purchasing (or more in general, as it happens also in Free Software, when offering or adopting) a product. Quoting Thomas:
A person purchasing a product is focused on the features and benefits and the salesperson is focused on closing the deal. If the topic of installation does come up, a user thinks, “Who cares! My sysadmin will install it for me!” as if such services are free. Ironically, it is the same non-technical executive who dismisses installation and upkeep as if they are “free” who might complain that IT costs are too high and go on a quest to kill IT spending. But I digress. I can understand why a product might be difficult to install. It is hard enough to write software, and with the shortage of software developers it seems perfectly reasonable that the installation script becomes an afterthought, possibly given to a low-ranking developer. The person purchasing the product usually requires certain features, and ease of installation is not a consideration during the procurement process. However, my ability to install a product affects my willingness to purchase more of the product.
Thomas goes on to explain his experience with Silicon Graphics, how Irix was so great regarding install automation and how they blew it when switching to Windows NT; talks very briefly about IBM AIX’s smit, a very nifty sysadmin aid which is basically a point-and-click interface to system administration with the very nice extra that allows you to view the commands smit executes to perform a given action (and then you can copy into a script and send over to your hundreds of AIX machines)… Incidentally, by the time I started digging out of what became the RedHat mess of the late 1990s and passed briefly through OpenBSD on my way to Debian enlightenment, I was temporarily the sysadmin for an AIX machine — And I too loved this Smit approach, having it as the ultimate pedagogical tool you could ever find.
Anyway, I won’t comment and paraphrase the full article. I’ll just point out to the fact that… this was what ultimately sold me into Debian. The fact that I could just install anything and (by far) most of the times it will be configured and ready to use. Debian made my life so much easier! As a sysadmin, I didn’t have to download, browse documentation, scratch head, redo from start until I got a package working — Just apt-get into it, and I’d be set. Of course, one of the bits I learnt back then was that Debian was for lazy people — Everything works in a certain way. Policy is enforced throughout.
So as a sysadmin, I should better get well acquinted with the Debian policy and know it by heart. In order to be able to enjoy my laziness, I should read it and study it. And so I did, and fell in love. And that is where my journey into becoming a Debian Developer started.
Why am I talking so nostalgic here? Because I got this magazine on the mail just last weekend… And coincidentally, I also got bug report #551258 — I packaged and uploaded the Haml Ruby library (Gem, as the Rubyists would call it). Haml is a great, succint markup language which makes HTML generation less of a mess. It is even fun and amazing to write Haml, and the result is always nicely formatted, valid HTML! And well, one of Haml’s components is haml-elisp, the Emacs Lisp major mode to do proper syntax highlighting in Haml files.
Of course, I am an Emacs guy (and have been for over 25 years), so I had to package it. But I don’t do Emacs Lisp! So I just stuffed the file in its (supposed) place, copying some stuff over from other Emacs packages. During DebConf, I got the very valuable help of Axel Beckert to fix a simple bug which prevented my package from properly being installed, and thought I was basically done with it. I was happy just to add this to my ~/.emacs and get over with it:
(add-to-list 'auto-mode-alist '("\\.haml$" . haml-mode))
(add-to-list 'auto-mode-alist '("\\.sass$" . sass-mode))
However… As Mike Castleman points out: This requires manual intervention. So it is not the Debian Way!
Reading Mike’s bug report, and reading Thomas’ article, made me realize I was dilluting something I held so dearly as to commit myself to the best Free Software-based distribution out there. And the solution, of course, was very simple: Debian allows us to be very lazy, not only as sysadmins, but as Debian packagers. Just drop this (simplified version) as $pkgroot/debian/haml-elisp.emacsen.startup and you are set!
(let ((package-dir (concat "/usr/share/"
;; If package-dir does not exist, the haml-mode package must have
;; removed but not purged, and we should skip the setup.
(when (file-directory-p package-dir)
;; Use debian-pkg-add-load-path-item per §9 of debian emacs subpolicy
(debian-pkg-add-load-path-item package-dir )
(autoload 'haml-mode "haml-mode"
"Major mode for editing haml-mode files." t)
(add-to-list 'auto-mode-alist '("\\.haml\\'" . haml-mode))
;; The same package provides HAML and SASS modes in the same
;; directory - So repeat only the last two instructions for sass
(autoload 'sass-mode "sass-mode"
"Major mode for editing sass-mode files." t)
(add-to-list 'auto-mode-alist '("\\.sass\\'" . sass-mode))
This will make the package just work as soon as it is installed, with no manual intervention required from the user. And it does not, contrary to what I feared, bloat up Emacs — Adding it to the auto-mode-alist leaves it as known to Emacs, but is not loaded or compiled unless it is required.
Deepest thanks to both of you! (and of course, thanks also to Manoj, for pointing out at the right spells in emacs-land)
Anonymous 2009-10-20 11:59:00
I would like to read that article
Hi Gunnar, it would be great if you can send me a copy of that article. Thanks in advance.
gwolf 2009-10-20 15:06:32
Now available online!
The author kindly agreed I can redistribute his article, so it is now here for all to get :)
vicm3 2009-10-23 17:39:10
Just now I was to ask for the article, but it’s now open on evince… :D
And thinking on another way, maybe one gets lazier with the Debian adoption, but, that gives you time to be a DD :9