Search Results: "Martin"

21 March 2006

Andres Salomon: python and ruby

Martin pointed out something that I’ve complained about before, and was subsequently given the reason for (by piman, iirc). It makes sense, but it’s still kind of lame for usability purposes. Of course, that’s the python interpreter, not a front-end for users. What I really miss from ruby is something like irb for python. I don’t want a full-fledged IDE; I want a quick command line thing that can be spawned for testing code snippets, or for inspecting objects. I want it to support tab completion (it’s quite useful to be able to type “foo”.<tab><tab>, and get a list of all String methods). I’ve mentioned my desire for such a thing before, but no one’s ever pointed anything out. I just did a quick google search for “irb for python”, and discovered ipython. It seems to almost do what I want; “foo”.<tab><tab> doesn’t quite work, but x=”foo” and x.</tab><tab> does work. Nifty! Of course, it seems to have its own stupid exit behavior:

In [4]: exit
Do you really want to exit ([y]/n)? y
Yes, I really want to exit; otherwise, I wouldn’t have typed “exit”…

Gunnar Wolf: The other side of the world

Martin: Strange... Here setting up a company is so much of a hassle that most people only register as Persona f sica con actividad empresarial instead - Physical person with enterprise activity. That means, you can print your invoices with "Madduck Consulting Inc." if you so wish, as long as under that, in tiny letters, you print your real name and fiscal data.

20 March 2006

Martin F. Krafft: Python: there is only one way to do it

$ python
[...]
>>> exit
'Use Ctrl-D (i.e. EOF) to exit.'
I'd love to hear the reason. Update: Michael Ablassmeier pointed me to a pretty good analysis. Update 2: The title is actually courtesy of Ari. My bad.

Martin F. Krafft: The Winner Takes It All

Sometimes I am in a whistling mood. So today as I was running some errands [1], I whistled Abba's "The Winner Takes It All". Some kids stepped up to me and asked what kind of crap I was whistling and whether I was gay, Abba is "out" and "sucks anyway". They did not appreciate when I asked why they even recognise it then. :) WTF? Sure, Abba is not everyone's thing, but "The Winner Takes It All" is an all-time, very beautiful hymn which will never die. Unlike the crap aired on the radio these days.
[1]My iron broke and I need my shirts ironed for a conference next week. Switzerland is bloody expensive: 4 per shirt, and that's just ironing.
In related news: After a very Cure-centric last week, I find myself totally digging Pulp now; I've been listening to the seven albums I have pretty much since Sunday morning. "Masters of the Universe" must be my favourite so far.

19 March 2006

Erich Schubert: Explaining Debian

Josh, Martin F. Krafft and Wouter talked about how to explain Debian with a few sentences. You mustn't feel awkward about explaining that, instead you should be prepared. If it helps you, think you are selling a product, not showing how "nerdy" you are. You are doing great stuff, you can earn your living with it quite well and you like it. That is perfect, so be proud about it. You need to have what is called an "elevator pitch". That is a short preso you could give while going up a few floors with an elevator on your way to a meeting, back, at a conference, at a party... That format seems most appropriate to me, and there are good guides on how to do elevator speeches. Rehearsing makes sense, too. You'll however likely want some variants, depending on the audience. My first stab at writing such a speech:
Debian is a Linux-based operating system [software for computers] made by volunteers, of which I am one. It is in fact one of the most widely used operating systems worldwide, and usually picked because of its reliability and security, while being entirely customizable to fit your needs. And it's development community really makes the difference, there are so many bright people there, doing amazing new software.
(notice: I extend the development community to floss, beyond just the official DDs, because thats the way it is. There is nothing wroing with bragging about e.g. what the Gnome people do, because you can use it with Debian, too.) and optionally, depending on the audience:
There are also variants suiteable for novice users, such as schools. You can run it on laptops and desktop computer as well as on mainframes or embedded devices. You can do everything with it.
or:
The city of munich is just switching to it for their computers. This saves the city a lot of money, while becoming independant from Microsoft.
or:
Our computer science department has almost only Linux on its computers. And many other universities do the same. Can you think how cool it is to have millions around the world use your software?
and of course:
That is so cool, I can do stuff I really like to do, meet really cool and bright people and earn my living doing so. That's heaven on earth.
[Update: someone might consider the use of "guys" to be sexistic. Well, of course there are very cool grrrls there, too. I've replaced it with "people" now, so I don't neet to explain grrrls next. ;-)]

Clint Adams: This report is flawed, but it sure is fun

91D63469DFdnusinow1243
63DEB0EC31eloy
55A965818Fvela1243
4658510B5Amyon2143
399B7C328Dluk31-2
391880283Canibal2134
370FE53DD9opal4213
322B0920C0lool1342
29788A3F4Cjoeyh
270F932C9Cdoko
258768B1D2sjoerd
23F1BCDB73aurel3213-2
19E02FEF11jordens1243
18AB963370schizo1243
186E74A7D1jdassen(Ks)1243
1868FD549Ftbm3142
186783ED5Efpeters1--2
1791B0D3B7edd-213
16E07F1CF9rousseau321-
16248AEB73rene1243
158E635A5Erafl
14C0143D2Dbubulle4123
13D87C6781krooger(P)4213
13A436AD25jfs(P)
133D08B612msp
131E880A84fjp4213
130F7A8D01nobse
12F1968D1Bdecklin1234
12E7075A54mhatta
12D75F8533joss1342
12BF24424Csrivasta1342
12B8C1FA69sto
127F961564kobold
122A30D729pere4213
1216D970C6eric12--
115E0577F2mpitt
11307D56EDnoel3241
112BE16D01moray1342
10BC7D020Aformorer-1--
10A7D91602apollock4213
10A51A4FDDgcs
10917A225Ejordi
104B729625pvaneynd3123
10497A176Dloic
962F1A57Fpa3aba
954FD2A58glandium1342
94A5D72FErafael
913FEFC40fenio-1--
90AFC7476rra1243
890267086duck31-2
886A118E6ch321-
8801EA932joey1243
87F4E0E11waldi-123
8514B3E7Cflorian21--
841954920fs12--
82A385C57mckinstry21-3
825BFB848rleigh1243
7BC70A6FFpape1---
7B70E403Bari1243
78E2D213Ajochen(Ks)
785FEC17Fkilian
784FB46D6lwall1342
7800969EFsmimram-1--
779CC6586haas
75BFA90ECkohda
752B7487Esesse2341
729499F61sho1342
71E161AFBbarbier12--
6FC05DA69wildfire(P)
6EEB6B4C2avdyk-12-
6EDF008C5blade1243
6E25F2102mejo1342
6D1C41882adeodato(Ks)3142
6D0B433DFross12-3
6B0EBC777piman1233
69D309C3Brobert4213
6882A6C4Bkov
66BBA3C84zugschlus4213
65662C734mvo
6554FB4C6petere-1-2
637155778stratus
62D9ACC8Elars1243
62809E61Ajosem
62252FA1Afrank2143
61CF2D62Amicah
610FA4CD1cjwatson2143
5EE6DC66Ajaldhar2143
5EA59038Esgran4123
5E1EE3FB1md4312
5E0B8B2DEjaybonci
5C9A5B54Esesse(Ps,Gs) 2341
5C4CF8EC3twerner
5C2FEE5CDacid213-
5C09FD35Atille
5C03C56DFrfrancoise---1
5B7CDA2DCxam213-
5A20EBC50cavok4214
5808D0FD0don1342
5797EBFABenrico1243
55230514Asjackman
549A5F855otavio-123
53DC29B41pdm
529982E5Avorlon1243
52763483Bmkoch213-
521DB31C5smr2143
51BF8DE0Fstigge312-
512CADFA5csmall3214
50A0AC927lamont
4F2CF01A8bdale
4F095E5E4mnencia
4E9F2C747frankie
4E9ABFCD2devin2143
4E81E55C1dancer2143
4E38E7ACFhmh(Gs)1243
4E298966Djrv(P)
4DF5CE2B4huggie12-3
4DD982A75speedblue
4C671257Ddamog-1-2
4C4A3823Ekmr4213
4C0B10A5Bdexter
4C02440B8js1342
4BE9F70EAtb1342
4B7D2F063varenet-213
4A3F9E30Eschultmc1243
4A3D7B9BClawrencc2143
4A1EE761Cmadcoder21--
49DE1EEB1he3142
49D928C9Bguillem1---
49B726B71racke
490788E11jsogo2143
4864826C3gotom4321
47244970Bkroeckx2143
45B48FFAEmarga2143
454E672DEisaac1243
44B3A135Cerich1243
44597A593agmartin4213
43FCC2A90amaya1243
43F3E6426agx-1-2
43EF23CD6sanvila1342
432C9C8BDwerner(K)
4204DDF1Baquette
400D8CD16tolimar12--
3FEC23FB2bap34-1
3F972BE03tmancill4213
3F801A743nduboc1---
3EBEDB32Bchrsmrtn4123
3EA291785taggart2314
3E4D47EC1tv(P)
3E19F188Etroyh1244
3DF6807BEsrk4213
3D2A913A1psg(P)
3D097A261chrisb
3C6CEA0C9adconrad1243
3C20DF273ondrej
3B5444815ballombe1342
3B1DF9A57cate2143
3AFA44BDDweasel(Ps,Gs) 1342
3AA6541EEbrlink1442
3A824B93Fasac3144
3A71C1E00turbo
3A2D7D292seb128
39ED101BFmbanck3132
3969457F0joostvb2143
389BF7E2Bkobras1--2
386946D69mooch12-3
374886B63nathans
36F222F1Fedelhard
36D67F790foka
360B6B958geiger
3607559E6mako
35C33C1B8dirson
35921B5D8ajmitch
34C1A5BE5sjq
3431B38BApxt312-
33E7B4B73lmamane2143
327572C47ucko1342
320021490schepler1342
31DEB8EAEgoedson
31BF2305Akrala(Gs)3142
319A42D19dannf21-4
3174FEE35wookey3124
3124B26F3mfurr21-3
30A327652tschmidt312-
3090DD8D5ingo3123
30813569Fjeroen1141
30644FAB7bas1332
30123F2F2gareuselesinge1243
300530C24bam1234
2FD6645ABrmurray-1-2
2F95C2F6Dchrism(P)
2F9138496graham(Gs)3142
2F5D65169jblache1332
2F28CD102absurd
2F2597E04samu
2F0B27113patrick
2EFA6B9D5hamish(P)3142
2EE0A35C7risko4213
2E91CD250daigo
2D688E0A7qjb-21-
2D4BE1450prudhomm
2D2A6B810joussen
2CFD42F26dilinger
2CEE44978dburrows1243
2CD4C0D9Dskx4213
2BFB880A3zeevon
2BD8B050Droland3214
2B74952A9alee
2B4D6DE13paul
2B345BDD3neilm1243
2B28C5995bod4213
2B0FA4F49schoepf
2B0DDAF42awoodland
2A8061F32osamu4213
2A21AD4F9tviehmann1342
299E81DA0kaplan
2964199E2fabbe3142
28DBFEC2Fpelle
28B8D7663ametzler1342
28B143975martignlo
288C7C1F793sam2134
283E5110Fovek
2817A996Atfheen
2807CAC25abi4123
2798DD95Cpiefel
278D621B4uwe-1--
26FF0ABF2rcw2143
26E8169D2hertzog3124
26C0084FCchrisvdb
26B79D401filippo-1--
267756F5Dfrn2341
25E2EB5B4nveber123-
25C6153ADbroonie1243
25B713DF0djpig1243
250ECFB98ccontavalli(Gs)
250064181paulvt
24F71955Adajobe21-3
24E2ECA5Ajmm4213
2496A1827srittau
23E8DCCC0maxx1342
23D97C149mstone(P)2143
22DB65596dz321-
229F19BD1meskes
21F41B907marillat1---
21EB2DE66boll
21557BC10kraai1342
2144843F5lolando1243
210656584voc
20D7CA701steinm
205410E97horms
1FC992520tpo-14-
1FB0DFE9Bgildor
1FAEEB4A9neil1342
1F7E8BC63cedric21--
1F2C423BCzack1332
1F0199162kreckel4214
1ECA94FA8ishikawa2143
1EAAC62DFcyb---1
1EA2D2C41malattia-312
1E77AC835bcwhite(P)
1E66C9BB0tach
1E145F334mquinson2143
1E0BA04C1treinen321-
1DFE80FB2tali
1DE054F69azekulic(P)
1DC814B09jfs
1CB467E27kalfa
1C9132DDByoush-21-
1C87FFC2Fstevenk-1--
1C2CE8099knok321-
1BED37FD2henning(Ks)1342
1BA0A7EB5treacy(P)
1B7D86E0Fcmb4213
1B62849B3smarenka2143
1B3C281F4alain2143
1B25A5CF1omote
1ABA0E8B2sasa
1AB474598baruch2143
1AB2A91F5troup1--2
1A827CEDEafayolle(Gs)
1A6C805B9zorglub2134
1A674A359maehara
1A57D8BF7drew2143
1A269D927sharky
1A1696D2Blfousse1232
19BF42B07zinoviev--12
19057B5D3vanicat2143
18E950E00mechanix
18BB527AFgwolf1132
18A1D9A1Fjgoerzen
18807529Bultrotter2134
1872EB4E5rcardenes
185EE3E0Eangdraug12-3
1835EB2FFbossekr
180C83E8Eigloo1243
17B8357E5andreas212-
17B80220Dsjr(Gs)1342
17796A60Bsfllaw1342
175CB1AD2toni1---
1746C51F4klindsay
172D03CB1kmuto4231
171473F66ttroxell13-4
16E76D81Dseanius1243
16C63746Dhector
16C5F196Bmalex4213
16A9F3C38rkrishnan
168021CE4ron---1
166F24521pyro-123
1631B4819anfra
162EEAD8Bfalk1342
161326D40jamessan13-4
1609CD2C0berin--1-
15D8CDA7Bguus1243
15D8C12EArganesan
15D64F870zobel
159EF5DBCbs
157F045DCcamm
1564EE4B6hazelsct
15623FC45moronito4213
1551BE447torsten
154AD21B5warmenhoven
153BBA490sjg
1532005DAseamus
150973B91pjb2143
14F83C751kmccarty12-3
14DB97694khkim
14CD6E3D2wjl4213
14A8854E6weinholt1243
14950EAA6ajkessel
14298C761robertc(Ks)
142955682kamop
13FD29468bengen-213
13FD25C84roktas3142
13B047084madhack
139CCF0C7tagoh3142
139A8CCE2eugen31-2
138015E7Ethb1234
136B861C1bab2143
133FC40A4mennucc13214
12C0FCD1Awdg4312
12B05B73Arjs
1258D8781grisu31-2
1206C5AFDchewie-1-1
1200D1596joy2143
11C74E0B7alfs
119D03486francois4123
118EA3457rvr
1176015EDevo
116BD77C6alfie
112AA1DB8jh
1128287E8daf
109FC015Cgodisch
106468DEBfog--12
105792F34rla-21-
1028AF63Cforcer3142
1004DA6B4bg66
0.zufus-1--
0.zoso-123
0.ykomatsu-123
0.xtifr1243
0.xavier-312
0.wouter2143
0.will-132
0.warp1342
0.voss1342
0.vlm2314
0.vleeuwen4312
0.vince2134
0.ukai4123
0.tytso-12-
0.tjrc14213
0.tats-1-2
0.tao1--2
0.stone2134
0.stevegr1243
0.smig-1-2
0.siggi1-44
0.shaul4213
0.sharpone1243
0.sfrost1342
0.seb-21-
0.salve4213
0.ruoso1243
0.rover--12
0.rmayr-213
0.riku4123
0.rdonald12-3
0.radu-1--
0.pzn112-
0.pronovic1243
0.profeta321-
0.portnoy12-3
0.porridge1342
0.pmhahn4123
0.pmachard1--2
0.pkern3124
0.pik1--2
0.phil4213
0.pfrauenf4213
0.pfaffben2143
0.p21243
0.ossk1243
0.oohara1234
0.ohura-213
0.nwp1342
0.noshiro4312
0.noodles2134
0.nomeata2143
0.noahm3124
0.nils3132
0.nico-213
0.ms3124
0.mpalmer2143
0.moth3241
0.mlang2134
0.mjr1342
0.mjg591342
0.merker2--1
0.mbuck2143
0.mbrubeck1243
0.madduck4123
0.mace-1-2
0.luther1243
0.luigi4213
0.lss-112
0.lightsey1--2
0.ley-1-2
0.ldrolez--1-
0.lange4124
0.kirk1342
0.killer1243
0.kelbert-214
0.juanma2134
0.jtarrio1342
0.jonas4312
0.joerg1342
0.jmintha-21-
0.jimmy1243
0.jerome21--
0.jaqque1342
0.jaq4123
0.jamuraa4123
0.iwj1243
0.ivan2341
0.hsteoh3142
0.hilliard4123
0.helen1243
0.hecker3142
0.hartmans1342
0.guterm312-
0.gniibe4213
0.glaweh4213
0.gemorin4213
0.gaudenz3142
0.fw2134
0.fmw12-3
0.evan1--2
0.ender4213
0.elonen4123
0.eevans13-4
0.ean-1--
0.dwhedon4213
0.duncf2133
0.ds1342
0.dparsons1342
0.dlehn1243
0.dfrey-123
0.deek1--2
0.davidw4132
0.davidc1342
0.dave4113
0.daenzer1243
0.cupis1---
0.cts-213
0.cph4312
0.cmc2143
0.clebars2143
0.chaton-21-
0.cgb-12-
0.calvin-1-2
0.branden1342
0.brad4213
0.bnelson1342
0.blarson1342
0.benj3132
0.bayle-213
0.baran1342
0.az2134
0.awm3124
0.atterer4132
0.andressh1---
0.amu1--2
0.akumria-312
0.ajt1144
0.ajk1342
0.agi2143
0.adric2143
0.adejong1243
0.adamm12--
0.aba1143

Martin F. Krafft: Yes, but...

Mako, I see and agree with your point. I guess I failed to make mine: Planet is not what I would call "public discourse", or is it? Instead, I think it is often used as a platform to be heard without the risk of someone arguing against one's point (on purpose or not, and I am not trying to plead not guilty here). I find abbreviated summaries with clearly biased views -- humorous, sarcastic, or otherwise subjective -- disturbing because I believe that they will have some subtle influence on the decisions cast by those who don't have the time to completely make up their own mind for lack of time to follow all the discussion leading up to the debate. That was all. By all means, I like Debian in (large) part because of the public discourse.

18 March 2006

Martin F. Krafft: Explaining Debian at parties

Josh isn't quite sure how to answer questions about Debian at parties without being stamped nerd. I have often met this challenge. And I think I got good at it. Rule number one: stay away from opinions, comparisons, and technical details (at least in the beginning). Give them the humanly-comprehensible facts and do not mention Windows or OS X unless asked. For me, Debian is "an operating system ("computer system") that is completely free, which lets me do a lot of cool stuff with the computer." I don't mention that I am a developer so as to not scare people off. After this 20 second introduction, you can usually tell whether your peers are interested. If they are, give them a little more: "It is developed by thousands of volunteers who all help out without getting paid, because they all use the system and want to make it better." By now, the first questions should come, and usually they mention other operating systems. A great line is "well, I've found XYZ to be inadequate for my needs, but to each their own". Don't go confrontational. And don't grow over-enthusiastic, that's what nerds do. At other times, the first question will be about how anything can be free (as in beer) these days. Be careful not to answer with too much idealism. Also, I've found few to care about "free as in speech" at this point of the conversation. If your audience is still with you at this point, now is the time to dive into depth. Now you can talk about idealism, technical superiority, security, whatever, but always keep in mind that you don't want to compare (laymen don't care about comparisons too much) and that you want to draw from metaphors as much as possible to make them understand. I usually take the opportunity to touch upon privacy issues and trojans, faked email senders and that kind of stuff. My audience usually grows quite pensive after some time, and I have yet to meet some layman who didn't ask "just why would anyone care about my data". Explain "pwned" computers and distributed denial of service attacks, or the scenario where someone impersonates you can does bad stuff. Finally, I've often found it to be fun to play somewhere along the lines of "do you really want to know" and exciting their interest by being somewhat discrete about it all. I've also had success with the direct approach: "ah, but I'm a geek, you couldn't care less about my stuff." People usually ask for more infos. After all, you are at a party and not in front of your machine; anyone with something else but mush between the ears will put two and two together and suspect that you aren't actually a geek, at least not at the moment. Those are the people worth talking to. Anyone else (including drunkbolds) is a waste of time, IMHO. It helps to have some Knoppix or Ubuntu CDs in your pocket and just hand them out. People really get excited about free stuff. And a live CD can work wonders. Do not try to convince people to try it out or you will become a support hotline. Instead, tell them about LUGs and mailing lists (and how cool it can be) and put the challenge on them: "if you try it, those are your support channels. Are you up for it?"

Martin F. Krafft: It's not frosty today, really

Now playing: Xela, For Frosty Mornings and Summer Nights What a great album title. The music is a little like Boards of Canada, but less groovy and more ambient. It'll be good even on sunny days and early winter evenings, depending on your mood.

17 March 2006

Martin F. Krafft: Voters' public commentaries

What's the point of the biased blog entries several people put on Planet, in which they analyse the candidates (did I say biased?) and state how they're going to vote? If you're trying to make a difference, run for DPL yourself, or use the time to get some work done on Debian. I wish we'd have guidelines that would encourage voters not to disclose their preferences before the ballot is out.

Martin F. Krafft: Followup on udev problems

My udev problems disappeared, which may well be related to the 0.087-2 upgrade that happened yesterday on the machine. Oh well. I am posting this followup because I have been contacted by someone on the Ubuntu team -- someone I like and respect -- who shone some light on the issue. Apparently, Debian's udev only pulled about a third from Ubuntu's interface renaming changes and ignored the rest. I have not tried Ubuntu's version, but that person claims it works perfectly. Assuming that it does, it's not hard to imagine how one third of the code wouldn't work as expected. So while Ubuntu still needs to work on contributing back as a whole (IMHO, and there are many expections), Debian should take a little more care when cherry-picking changes.

MJ Ray: The DPL Debate 2006

So, we get to the end of the DPL Debate (my logs), I revise my opinions and make a first draft of my vote. Thoughts here are given with grouping people as I see similarities (3 collaboration-centrics, 2 I don't like and the 2 unusual).
Bill Allombert
a moderate, a change, a reluctant candidate. Maintainer of an important, widely-used but unfashionable package. Someone questioned status and charisma, but from watching the FOSDEM video, I think there's the stage presence. Needs work on presenting. How much does that matter, though? It can be learnt. Above NOTA for sure. Just not sure where.
Andreas Schuldei
Seems to have done both good and bad work in the DPL team, which I guess is to be expected. I am uncomforable with some of his opinions and I think he's made poor judgement calls like signing this hate campaign - but I don't think he'd try to impose those opinions and all DPLs goof sometimes. I still think the small teams aim has many benefits. Above NOTA.
Jeroen van Wolffelaar
I'm not clear what he did in the DPL team during the year. I've listened to the FOSDEM talk, but still not clear. I am also uncomfortable with some opinions and judgements, even more so than Andreas. In debate, brazenly said he supported the first expulsion request. Gives a fairly good analysis of the problem, but: Physician! Heal Thyself! Placing unsure.
Anthony Towns
Lost my vote on Wed, 17 Aug 2005. Below NOTA.
Steve McIntyre
Commercialising debian on an ugly footing with DUS. It's wrong to try to call Debian Developers members of a retail business without asking them. Did something else I dislike a lot. Below NOTA.
Ari Pollack
If this was comedy, it needed to be funnier. Did something I dislike a lot. Below NOTA.
Ted Walther
Learned some things from last year. Heart seems to be in the right place. The interview with Aigarius suggests views not as simple as painted. Still a political disaster zone in internal debian matters (see platform, debate, ...). May be above NOTA in my vote this year.
Update: I slept well. Thanks for caring. Martin F. Krafft asked what's the point of this type of post, why we don't stand for DPL or "use the time to get some work done on Debian". For me, I'm trying to bias the vote outcome by persuading voters or candidates and draw attention to things that may have slipped past. There's no way I'd be elected DPL this year - mostly because of misperceptions I think, but mid-Feb to mid-March is always a bad time for me to explain myself - and I'm working on Debian things but I'm happy to spend extra time trying to identify a good leader. I never decide for sure until I fill out the ballot: some things can change in the last few days. If you don't find my ideas thought-provoking, sorry. I know some do.

16 March 2006

Martin Michlmayr: debian-installer beta2 supports the Linksys NSLU2 (ARM)

While ARM is a very important platform, support for it in Debian has faced a number of problems recently: there was no developer accessible machine for a long time (they're two now), buildds sometimes have a hard time keeping up, etc. Most importantly, there are not enough people actively involved in the ARM port. We need more people doing debian-installer and kernel work, and track other ARM related issues. One reason why few people are working on ARM is probably the lack of a cheap platform that can be used for development. Fortunately, this problem has now been addressed. Over the last few months, I worked (in collaboration of the NSLU2-Linux project) on debian-installer support for the Linksys NSLU2, a sub $100 device with 32 MB RAM, Ethernet (which unfortunately needs a non-free driver) and two USB ports. You can attach a USB disk and run a full Debian system on this device. While there have been some instructions on the web about how to get Debian going on the NSLU2, basic support for the device is now included in debian-installer. In other words, you can do a user-friendly installation and it will just work. Here are instructions. Future work In the future, the NSLU2-Linux people and I will add more support for other ARM based consumer devices, such as Network Attached Storage (NAS) devices (basically a hard drive with a CPU/RAM and Ethernet, sometimes also including wireless; in other words, a perfect platform for Debian). On a related note, I'm also working on getting debian-installer going on a number of MIPS based consumer devices, such as the Netgear WGT634U wireless router. However, this work has not reached the maturity of NSLU2 support yet. There is a status overview and TODO list. Acknowledgements

15 March 2006

Martin F. Krafft: Discovering MPD

I have a server with libapache2-mod-musicindex serving several hundreds of gigabytes. I also have a headless router at home with a soundcard. My desire was to figure out how to make the router stream music from that server before I went to sleep. Just short of coming up with a quick'n'ugly hack, Decklin Foster saved my day by pointing me to mpd. It runs as a daemon and accepts network commands. It wasn't until I found out that you can pipe the playlists served by libapache2-mod-musicindex to mpc add that I completely fell in love. Now I hacked together a script, playstream, which I can integrate with mailcap:
$ cat <<_eof >> ~/.mailcap
audio/mpegurl;     ~/bin/playstream -q '%s'; nametemplate=%s.m3u
audio/x-mpegurl;   ~/bin/playstream -q '%s'; nametemplate=%s.m3u
audio/x-scpls;     ~/bin/playstream -q '%s'; nametemplate=%s.pls
The -q option queues the playlist up next. Other options I've added are -a for append (the default), and -r for replace. I know I should have this in version control, but that's all under construction right now. I have asked the mpc maintainer to include it. Update: Firefox is once again really annoying. I appreciate the fact that it tries to honour the mailcap standard. However, if I say that the handler if playstream -q %s, I really mean that, including the -q; Firefox apparently just reads the first word and appends the downloaded file. Argh.

MJ Ray: Other Views of the DPL 06 Platforms: Update 2

Martin F. Krafft: udev and grey hair

It won't be long before I grow grey hair if udev keeps pulling tricks on me. Yesterday, an upgrade to 0.087-1 hosed one of my systems. The system is sarge-based, but it is connected a to a cable modem needing the cdc_ether driver, which 2.6.8 does not have. Since I don't expect backports of 2.6.15 to sarge (Update: backports.org has a 2.6.15 backport, but it won't solve my problem it seems), but also don't want to migrate my system to testing, I simply decided to pin linux-image-2.6.15-1-686 and all its dependencies to unstable with APT:
Package: linux-image-2.6.15-1-686
Pin: release a=unstable
Pin-Priority: 600
Package: initramfs-tools
Pin: release a=unstable
Pin-Priority: 600
Package: udev
[...]
The install worked, and off I went to reboot... but the machine did not come back up, and booting 2.6.8 with the new udev also failed. Great. At first, I thought I knew the problem, but at closer inspection, it was something else: udev's ide.agent hung itself up and timed out. It turns out it was looking for hd141 instead of hda, and once I found that out, it didn't take long to put two and two together: 141 is ASCII 97 is 'a'. And if you echo hd\141 just like that, the shell will swallow the backslash. Marco, the udev maintainer blamed a broken shell, and I identified busybox-cvs-static to be the problem; Replacing it with busybox from unstable fixed the issue. Now all that remains is to convince Marco that the bug has nothing to do with initramfs-tools when it occurs in a script provided by udev. initramfs-tools depends on busybox-cvs-static busybox since it works with either. If udev doesn't work with busybox-cvs-static, it has to conflict, which is not really an option though, due to a libc6 upgrade loop. Fortunately, the 2.6.16 kernel will make ide.agent obsolete, so the problem shall vanish in smoke. With one problem solved, I woke up this morning to find another. I use udev's network interface renaming feature to ensure that my interfaces always have the names I expect, and that their names give me a hint as to what they're connected to. Sure, using /etc/modules to ensure a defined load order would work fine, but I have too many machines under my control to want to remember that eth2 on this machine is the wireless LAN. So I use the following udev rules:
wall:~# cat /etc/udev/rules.d/local-interfaces.rules
KERNEL="eth*", SYSFS address ="00:02:8a:80:21:31", NAME="internet"
KERNEL="eth*", SYSFS address ="08:00:46:b1:2d:ee", NAME="lan"
KERNEL="eth*", SYSFS address ="00:50:04:5b:ec:b3", NAME="wlan"
KERNEL="eth*", SYSFS address ="00:04:23:72:4e:6c", NAME="wifibackup"
Update: Bas Zoetekouw suggested to match against something else than MAC addresses, for testing. Thus, I tried PCI IDs (using the topmost SYSFS device entry in the udevinfo output):
KERNEL="eth*", SYSFS device ="0x24c4", NAME="internet"
KERNEL="eth*", SYSFS device ="0x103d", NAME="lan"
KERNEL="eth*", SYSFS device ="0x5157", NAME="wlan"
KERNEL="eth*", SYSFS device ="0x1043", NAME="wifibackup"
The problem remains the exact same. It also remains the same if I completely remove wlan and wifibackup. When I woke up this morning, I found the following mess:
wall:~# ip addr
2: internet: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 08:00:46:b1:2d:ee brd ff:ff:ff:ff:ff:ff
3: eth0_ifrename: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ether 00:02:8a:80:21:31 brd ff:ff:ff:ff:ff:ff
4: wifibackup: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ether 00:04:23:72:4e:6c brd ff:ff:ff:ff:ff:ff
5: wlan: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:50:04:5b:ec:b3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.14.129/25 brd 192.168.14.255 scope global wlan
    inet6 fe80::250:4ff:fe5b:ecb3/64 scope link
      valid_lft forever preferred_lft forever
The wlan and wifibackup interfaces are configured correctly (I use wifibackup to hook into the various open WLANs around, when my provider goes down, or I need more bandwidth). But internet was assigned to the LAN interface, and eth0_ifrename, well... that's just whacked. Looking at the udev code, this seems to be due to a patch Marco pulled from Ubuntu, which is to guard against race conditions in the renaming. For instance, if eth0 needs to become eth1 and vice versa, udev renames the first to eth0_ifrename and waits until the other has finished its identity change. The patch, however, is a hack: it tries endlessly to rename the interface to its final target name, which, in my case, obviously goes on forever.
10:18  * Md just copied it from the Ubuntu package
10:18 < madduck> why???
10:19 < Md> because it worked in my artificial setup
Unfortunately, this isn't the first time that Ubuntu's "giving back to Debian" (which requires Debian to go out and fetch) is two steps back rather than one forward. I would hope that maintainers of criticial packages (such as udev) would exercise more care when pulling from Ubuntu. And that Ubuntu would please stop adding hacks to packages and instead concentrate on fixing issues at the root the Debian way. So my problem still persists, and even given Ubuntu's ifrename patch problems, I can't figure out what is actually going on. It does not help that udev also suddenly stopped logging interface name changes. Yes, just like that.
KERNEL="eth*", SYSFS address ="00:02:8a:80:21:31", NAME="internet"
KERNEL="eth*", SYSFS address ="08:00:46:b1:2d:ee", NAME="lan"
How can these two rules actually trigger the rename conflict? The only way I could imagine is that udev gets confused and falsely renames 08:00:46:b1:2d:ee to internet. Then, when it gets to the other card, a name collision occurs, udev chooses eth0_ifrename as temporary workaround, and then tries forever to rename eth0_ifrename to internet, which will never succeed. So why does udev get confused in the first place? Why would it ever name the interface 08:00:46:b1:2d:ee internet? Beats me. But I better end here because the world surely doesn't need just anoAther udev rant. Update: I forgot to mention that the renaming works just fine when I unload/load modules from the command line. It's only during the boot process that things go wild. Update 2: I should not that it does not work fine some of the time if the modules are loaded in quick succession.

14 March 2006

Martin F. Krafft: Founding a company

Mainly to make my life as a foreigner here in Switzerland easier, but also for tax purposes, I am founding a company... tomorrow actually. It'll be a "GmbH", which is the German equivalent of "Ltd"/"LLC": a separate legal entity with limited liability from the side of the participator (that's me). Only problem: I don't have a name. Part of me wants a regular German name (none of the "let's choose English words to make it sound cool" approach). The other part of me already operates internationally. Part of me would love to found "moo LLC" or "madduck consulting Ltd.", and the other part would prefer a little bit more seriousness. Part of me can't be bothered and would be happy to settle with "Martin Krafft Schulungs und Beratungs GmbH", and the other part doesn't really think that's very compelling. Both parts of me are tired. Let's hope the morning brings new ideas, for I don't have time to wait much longer.

13 March 2006

Martin F. Krafft: Keeping the disk spun down with squid?

I am trying to set up an older laptop for use as a router in my flat. I chose this approach over a stand-alone device (such as this one) because I want to have fuller control over my router, such as the ability to add a transparent caching proxy (squid). A main concern with setting up this machine is noise. Ideally, I want it to be completely silent, but I do need a hard drive. Thus, I am trying to configure the drive to spin down when not in use. Thanks to the laptop-mode-tools package, and syslog-ng's caching functionality, this works like a charm... ... until I start squid. For some reason, squid likes to read blocks on /var every few seconds, even if it is not being used at all. I imagine this is some cache replacement/maintenance stuff. So now I need to find out how to disable it, or how to control the interval. Ideally, I would like squid to doze when it's not in use. Only when it serves requests is it allowed to do cache maintenance. If you know how I could accomplish this, please let me know! Unfortunately, I do not have enough RAM to put my entire cache onto a shmfs.

Martin F. Krafft: Brief touchdown at Chemnitzer Linux-Tage

It's now been over a week since I visited my brother in Leipzig, with the intention to head over to Chemnitz on Saturday morning to attend the Chemnitzer Linux-Tage. It turned out that Saturday was just too nice a day (and Friday night too long), so I skipped the fair on that day and stayed with my brother, which wasn't a problem as my only required appearance in Chemnitz was Sunday morning for a talk on the Debian package lifecycle. So Saturday we ate an extensive breakfast, hung around, took a walk, met some folks, listened to a bunch of tunes, played countless Stratego games (this will have to be my favourite board game), and generally had a marvelous chilling time. So Sunday morning I got up early, hopped on a train and arrived in Chemnitz around 9:40 with ample time to make it to the campus where my talk was to be held at 11:00. Ample time -- or so I thought. Public transport in Chemnitz doesn't really wake up until 10:30, and the train schedule isn't descriptive of what actually happens on the track. So with a bunch of running, I finally ended up on a train to the south station, from where I walked. My talk went very nicely. I talked about what happens to a package between the developer's machine and Debian stable, giving insights into dak, the various parallel archives (such as stable-proposed-updates and experimental), and describing how security updates as well as volatile and backports fit in. The slides are accessible through your browser (but are German-only, sorry), thanks to the wonderful magic of docutils and S5 -- a great presentation system based on XHTML and CSS2 (it's written by one of the CSS gods). You can get my template with bzr. It and the slides are available under the terms of the Artistic Licence. Also in Chemnitz, my publisher Open Source Press officially released the German translation of my Debian book. It's good to see that finally out of my way. :) I left the campus early because I was too tired. I regret it because the Chemnitzer Linux-Tage seem like a nice event, and there were a bunch of talks I really wanted to see, but I simply couldn't. Till next year.

11 March 2006

Christian Perrier: Shadow birthday

One year ago, I uploaded shadow 4.0.3-31 with "New maintainer" in the changelog. During this year, the shadow maitenance team has been built with Alexander Gattin, Christine Spang, Martin Quinson and last but definitely not least Tomasz Kloczko, the upstream author and Nicolas Fran ois, the best non DD ever. In one year, this wonderful team built 35 releases, closed 214 bugs (according to the changelog), cleaned out the BTS which had about 300 opened issues at that time. There are now 35 opened bugs, 24 being fixed in upstream's CVS, 3 tagged "wontfix" and 1 fixed in experimental. In short, there is no reported issue that hasn't received attention. It took us six months before being able to resynchronize the Debian version of login and passwd with upstream. After achieving it and after dozens of exchanges with upstream, the size of the diff.gz file went down from over 1.5MB to about 120kb in the next release. Upstream changelog is now full of patches and rewards to Debian. We used 26 cheese names for naming releases in a tradition established after a famous Cheese Party held at Debconf 5. Be prepared for the Debconf 6 Cheese Party! I see this work as a good example of revival work for an essential package and good collaboration with upstream. I probably have my part in this, trying to keep the communication, sometimes making decisions and always revive work on forgotten issues. But, definitely, I have to deserve a special mention to Nicolas. He's definitely the one who understand the whole code and when he didn't knew, he just learned. Without him, we would never have been able to achieve this. Please, just give him direct DAM approval if he ever applies as a NM...:-) Again, happy birthday to the new shadow....

Next.

Previous.