]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
New post.
[homepage.git] / blog / index.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="http://people.skolelinux.org/pere/blog/index.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
15
16 </h1>
17
18 </div>
19
20
21
22 <div class="entry">
23 <div class="title"><a href="http://people.skolelinux.org/pere/blog/_Electronic__paper_invoices___using_vCard_in_a_QR_code.html">"Electronic" paper invoices - using vCard in a QR code</a></div>
24 <div class="date">12th February 2013</div>
25 <div class="body"><p>Here in Norway, electronic invoices are spreading, and the
26 <a href="http://www.anskaffelser.no/e-handel/faktura">solution promoted
27 by the Norwegian government</a> require that invoices are sent through
28 one of the approved facilitators, and it is not possible to send
29 electronic invoices without an agreement with one of these
30 facilitators. This seem like a needless limitation to be able to
31 transfer invoice information between buyers and sellers. My preferred
32 solution would be to just transfer the invoice information directly
33 between seller and buyer, for example using SMTP, or some HTTP based
34 protocol like REST or SOAP. But this might also be overkill, as the
35 "electronic" information can be transferred using paper invoices too,
36 using a simple bar code. My bar code encoding of choice would be QR
37 codes, as this encoding can be read by any smart phone out there. The
38 content of the code could be anything, but I would go with
39 <a href="http://en.wikipedia.org/wiki/VCard">the vCard format</a>, as
40 it too is supported by a lot of computer equipment these days.</p>
41
42 <p>The vCard format support extentions, and the invoice specific
43 information can be included using such extentions. For example an
44 invoice from SLX Debian Labs (picked because we
45 <a href="http://www.linuxiskolen.no/slxdebianlabs/donations.html">ask
46 for donations to the Debian Edu project</a> and thus have bank account
47 information publicly available) for NOK 1000.00 could have these extra
48 fields:</p>
49
50 <p><pre>
51 X-INVOICE-NUMBER:1
52 X-INVOICE-AMOUNT:NOK1000.00
53 X-INVOICE-KID:123412341234
54 X-INVOICE-MSG:Donation to Debian Edu
55 X-BANK-ACCOUNT-NUMBER:16040884339
56 X-BANK-IBAN-NUMBER:NO8516040884339
57 X-BANK-SWIFT-NUMBER:DNBANOKKXXX
58 </pre></p>
59
60 <p>The X-BANK-ACCOUNT-NUMBER field was proposed in a stackoverflow
61 answer regarding
62 <a href="http://stackoverflow.com/questions/10045664/storing-bank-account-in-vcard-file">how
63 to put bank account information into a vCard</a>. For payments in
64 Norway, either X-INVOICE-KID (payment ID) or X-INVOICE-MSG could be
65 used to pass on information to the seller when paying the invoice.</p>
66
67 <p>The complete vCard could look like this:</p>
68
69 <p><pre>
70 BEGIN:VCARD
71 VERSION:2.1
72 ORG:SLX Debian Labs Foundation
73 ADR;WORK:;;Gunnar Schjelderups vei 29D;OSLO;;0485;Norway
74 URL;WORK:http://www.linuxiskolen.no/slxdebianlabs/
75 EMAIL;PREF;INTERNET:sdl-styret@rt.nuug.no
76 REV:20130212T095000Z
77 X-INVOICE-NUMBER:1
78 X-INVOICE-AMOUNT:NOK1000.00
79 X-INVOICE-MSG:Donation to Debian Edu
80 X-BANK-ACCOUNT-NUMBER:16040884339
81 X-BANK-IBAN-NUMBER:NO8516040884339
82 X-BANK-SWIFT-NUMBER:DNBANOKKXXX
83 END:VCARD
84 </pre></p>
85
86 <p>The resulting QR code created using
87 <a href="http://fukuchi.org/works/qrencode/">qrencode</a> would look
88 like this, and should be readable (and thus checkable) by any smart
89 phone, or for example the <a href="http://zbar.sourceforge.net/">zbar
90 bar code reader</a> and feed right into the approval and accounting
91 system.</p>
92
93 <p><img src="http://people.skolelinux.org/pere/blog/images/2013-02-12-qr-invoice.png"></p>
94
95 <p>The extension fields will most likely not show up in any normal
96 vCard reader, so those parts would have to go directly into a system
97 handling invoices. I am a bit unsure how vCards without name parts
98 are handled, but a simple test indicate that this work just fine.</p>
99
100 <p><strong>Update 2013-02-12 11:30</strong>: Added KID to the proposal
101 based on feedback from Sturle Sunde.</p>
102 </div>
103 <div class="tags">
104
105
106 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
107
108
109 </div>
110 </div>
111 <div class="padding"></div>
112
113 <div class="entry">
114 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Litt_statistikk_over_offentlige_anbud_annonsert_via_Doffin_siden_2008.html">Litt statistikk over offentlige anbud annonsert via Doffin siden 2008</a></div>
115 <div class="date">11th February 2013</div>
116 <div class="body"><p>For et halvt år siden
117 <a href="http://people.skolelinux.org/pere/blog/SQL_database_med_anbud_publisert_p__Doffin.html">satte
118 jeg opp et system for å lage en database</a> med informasjon om
119 offentlige anbud fra <a href="http://www.doffin.no/">Doffin</a> ved
120 <a href="https://scraperwiki.com/scrapers/norwegian-doffin/">hjelp av
121 Scraperwiki</a>. Nå er databasen så vidt jeg kan se komplett, med
122 data helt tilbake til 2008. Her er litt statistikk over
123 <a href="https://api.scraperwiki.com/api/1.0/datastore/sqlite?format=htmltable&name=norwegian-doffin&query=select%20strftime(%22%25Y-%25m%22%2C%20publishdate)%20as%20publishmonth%2C%20count(*)%20from%20%60swdata%60%20group%20by%20publishmonth%20order%20by%20publishmonth%20desc">antall
124 anbud publisert hver måned</a>:</p>
125
126 <p><table border="1">
127 <tr> <th>Publiseringsmåned</th> <th>Antall</th> </tr>
128 <tr> <td>2013-01</td> <td>1015</td> </tr>
129 <tr> <td>2012-12</td> <td>756</td> </tr>
130 <tr> <td>2012-11</td> <td>979</td> </tr>
131 <tr> <td>2012-10</td> <td>1093</td> </tr>
132 <tr> <td>2012-09</td> <td>1023</td> </tr>
133 <tr> <td>2012-08</td> <td>951</td> </tr>
134 <tr> <td>2012-07</td> <td>1103</td> </tr>
135 <tr> <td>2012-06</td> <td>1334</td> </tr>
136 <tr> <td>2012-05</td> <td>1435</td> </tr>
137 <tr> <td>2012-04</td> <td>1169</td> </tr>
138 <tr> <td>2012-03</td> <td>1573</td> </tr>
139 <tr> <td>2012-02</td> <td>1335</td> </tr>
140 <tr> <td>2012-01</td> <td>1147</td> </tr>
141 <tr> <td>2011-12</td> <td>1045</td> </tr>
142 <tr> <td>2011-11</td> <td>1114</td> </tr>
143 <tr> <td>2011-10</td> <td>1230</td> </tr>
144 <tr> <td>2011-09</td> <td>1165</td> </tr>
145 <tr> <td>2011-08</td> <td>966</td> </tr>
146 <tr> <td>2011-07</td> <td>1148</td> </tr>
147 <tr> <td>2011-06</td> <td>1410</td> </tr>
148 <tr> <td>2011-05</td> <td>1536</td> </tr>
149 <tr> <td>2011-04</td> <td>1350</td> </tr>
150 <tr> <td>2011-03</td> <td>1574</td> </tr>
151 <tr> <td>2011-02</td> <td>1370</td> </tr>
152 <tr> <td>2011-01</td> <td>1049</td> </tr>
153 <tr> <td>2010-12</td> <td>992</td> </tr>
154 <tr> <td>2010-11</td> <td>1089</td> </tr>
155 <tr> <td>2010-10</td> <td>1110</td> </tr>
156 <tr> <td>2010-09</td> <td>1132</td> </tr>
157 <tr> <td>2010-08</td> <td>883</td> </tr>
158 <tr> <td>2010-07</td> <td>1126</td> </tr>
159 <tr> <td>2010-06</td> <td>1440</td> </tr>
160 <tr> <td>2010-05</td> <td>1236</td> </tr>
161 <tr> <td>2010-04</td> <td>1249</td> </tr>
162 <tr> <td>2010-03</td> <td>1556</td> </tr>
163 <tr> <td>2010-02</td> <td>1256</td> </tr>
164 <tr> <td>2010-01</td> <td>1140</td> </tr>
165 <tr> <td>2009-12</td> <td>1013</td> </tr>
166 <tr> <td>2009-11</td> <td>1220</td> </tr>
167 <tr> <td>2009-10</td> <td>1320</td> </tr>
168 <tr> <td>2009-09</td> <td>1294</td> </tr>
169 <tr> <td>2009-08</td> <td>953</td> </tr>
170 <tr> <td>2009-07</td> <td>1162</td> </tr>
171 <tr> <td>2009-06</td> <td>1605</td> </tr>
172 <tr> <td>2009-05</td> <td>1568</td> </tr>
173 <tr> <td>2009-04</td> <td>1522</td> </tr>
174 <tr> <td>2009-03</td> <td>1599</td> </tr>
175 <tr> <td>2009-02</td> <td>1376</td> </tr>
176 <tr> <td>2009-01</td> <td>1080</td> </tr>
177 <tr> <td>2008-12</td> <td>1028</td> </tr>
178 <tr> <td>2008-11</td> <td>949</td> </tr>
179 <tr> <td>2008-10</td> <td>1047</td> </tr>
180 <tr> <td>2008-09</td> <td>965</td> </tr>
181 <tr> <td>2008-08</td> <td>725</td> </tr>
182 <tr> <td>2008-07</td> <td>1015</td> </tr>
183 <tr> <td>2008-06</td> <td>1304</td> </tr>
184 <tr> <td>2008-05</td> <td>323</td> </tr>
185 </table></p>
186
187 <p>Her er tilsvarende
188 <a href="https://api.scraperwiki.com/api/1.0/datastore/sqlite?format=htmltable&name=norwegian-doffin&query=select%20strftime(%22%25Y%22%2C%20publishdate)%20as%20publishyear%2C%20count(*)%20from%20%60swdata%60%20group%20by%20publishyear%20order%20by%20publishyear%20desc">tall
189 per år</a>, som viser en liten nedgang i antall anbud:</p>
190
191 <table border="1">
192 <tr> <th>Publiseringsår</th> <th>Antall</th> </tr>
193 <tr> <td>2012</td> <td>13898</td> </tr>
194 <tr> <td>2011</td> <td>14957</td> </tr>
195 <tr> <td>2010</td> <td>14209</td> </tr>
196 <tr> <td>2009</td> <td>15712</td> </tr>
197 <tr> <td>2008</td> <td>7356</td> </tr>
198 </table></p>
199
200 <p>Jeg droppet den ufullstendige måneden og året fra tabellen. Se
201 lenken for oppdaterte tall.</p>
202 </div>
203 <div class="tags">
204
205
206 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>.
207
208
209 </div>
210 </div>
211 <div class="padding"></div>
212
213 <div class="entry">
214 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Sleep_until_morning___home_automation_for_the_kids.html">Sleep until morning - home automation for the kids</a></div>
215 <div class="date">10th February 2013</div>
216 <div class="body"><p><img align="left" style="margin-right:25px;" src="http://people.skolelinux.org/pere/blog/images/2013-02-10-morning-light.jpeg"></p>
217
218 <p>With kids in the house, one challenge is getting them to sleep
219 during the night and wake up when it is morning. I mean, when I
220 believe it is morning, and not two hours earlier. In our household we
221 have decided that 07:00 is the turning point, but getting the kids to
222 sleep until 07:00 is a small challenge every day. They have adapted
223 quite well, and rarely wake up at 05:00 any more, but some times wake
224 up at times like 05:50, 06:15, 06:30 or 06:45, and it is hard to put
225 the awake one to bed again without disturbing and waking the rest.
226 And I understand perfectly well that they fail to sleep until 07:00
227 some times, as there is no way for them to know if it is before or
228 after the magic moment without coming and asking us parents.</p>
229
230 <p>But yesterday I came up with a method to solve this problem. It
231 involve home automation. A few years ago I bought a
232 <a href="http://www.telldus.se/products/tellstick">Tellstick</a> and RF
233 switches at the local <a href="http://www.clasohlson.com/">Clas
234 Ohlson</a> shop, allowing me to control lights and other electrical
235 gadgets using my Linux server. When I moved from the old flat to a
236 small house, I put away all this equipment as most of the lighting in
237 the house was not using wall sockets and thus not easy to connect to
238 the gadgets I had. But recently I bought a
239 <a href="http://www.telldus.se/products/tellstick_net">Tellstick
240 Net</a> to be able to read sensor input as well as control power
241 sockets. I want to control ovens in the basement to avoid the pipes
242 to freeze, and monitor the humidity to detect flooding. The default
243 setup for Tellstick Net is to be controlled by the vendor web service,
244 which to me is a security problem, but it is also possible to build
245 ones own
246 <a href="http://developer.telldus.com/blog/2012/03/02/help-us-develop-local-access-using-tellstick-net-build-your-own-firmware">firmware
247 with local access</A> instead of being controlled by a Swedish
248 company, thanks to the release of the GPL licensed firmware source
249 code. I plan to get that running before I let it control anything
250 important. But while working on this, one idea to make it easier for
251 the kids came to me yesterday. We can set up a night light controlled
252 by the computer, and turn it automatically on at 07:00. The kids can
253 then check the light in the morning to know if they are supposed to
254 get up or not. They joined me in setting everything up, and I
255 repeated the concept several times before bed times to make sure they
256 remembered to check the light before getting up in the morning.</p>
257
258 <p>We tested it this morning, and all the kids stayed in bed until
259 after 07:00, and every one of them commented on the fact that the
260 "morning light" was turned on and signalled that the morning had
261 arrived. So this look like a success, and I am excited to see how
262 this develops the next few days. :) I really hope this can allow us
263 all to sleep a bit longer in the morning.</p>
264
265 <p>A nice advantage of this setup is that we can remote control when
266 to tell the kids to get up. We do not have to wait until 07:00, and
267 can also delay it if we want to.</p>
268 </div>
269 <div class="tags">
270
271
272 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
273
274
275 </div>
276 </div>
277 <div class="padding"></div>
278
279 <div class="entry">
280 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Hva_stemte_hver_stortingsrepresentant_i_voteringene_om_datalagringsdirektivet_.html">Hva stemte hver stortingsrepresentant i voteringene om datalagringsdirektivet?</a></div>
281 <div class="date"> 9th February 2013</div>
282 <div class="body"><p>Nytt stortingsvalg er på trappene, og folket får igjen mulighet til
283 å påvirke sammensetningen i vår lovgivende forsamling. Da er det
284 relevant å vite hvilke representanter og partier som har støttet
285 innføringen av brev- og besøkskontroll av hele den norske
286 befolkningen, det vil si datalagringsdirektivet.</p>
287
288 <p>Hvis du vil vite hva hver enkelt stortingsrepresentant har stemt i
289 stortingsvoteringene om datalagringsdirektivet, så har nettstedet til
290 <a href="http://www.holderdeord.no/">Holder De Ord</a> den (så vidt jeg
291 vet) eneste komplette oversikten på sin temaside om
292 <a href="http://beta.holderdeord.no/issues/innfore-datalagringsdirektivet">innføringen
293 av datalagringsdirektivet</a>. Den har detaljene fra de 11 relevante
294 forslagene som har vært fremmet så lagt. De har vært votert over
295 2011-04-04, 2011-04-11, 2012-06-11, 2012-10-05 og 2012-12-06.</p>
296
297 <p>Hvis du lurer på hva som er problemet med datalagringsdirektivet,
298 anbefaler jeg å lese <a href="http://www.uhuru.biz/?cat=84">artiklene
299 fra Jon Wessel-Aas</a> om temaet, samt informasjon fra foreningen
300 <a href="http://www.digitaltpersonvern.no/">Digitalt
301 Personvern</a>.</p>
302 </div>
303 <div class="tags">
304
305
306 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
307
308
309 </div>
310 </div>
311 <div class="padding"></div>
312
313 <div class="entry">
314 <div class="title"><a href="http://people.skolelinux.org/pere/blog/_kt_overv_kning_applauderes_igjen_av_Arbeiderpartiet__H_yre_og_Fremskrittspartiet.html">Økt overvåkning applauderes igjen av Arbeiderpartiet, Høyre og Fremskrittspartiet</a></div>
315 <div class="date"> 4th February 2013</div>
316 <div class="body"><p>Jeg ser med gru at Arbeiderpartiet, Høyre og Fremskrittspartiet
317 <a href="http://www.aftenposten.no/nyheter/iriks/Positive-til-mer-smuglerovervaking-7110348.html">applauderer
318 tollvesenets forslag</a> om å øke overvåkningen i Norge nok et hakk.
319 Det er ikke så rart, da de som uttaler seg jo også har støttet
320 innføringen av datalagringsdirektivet eller i hvert fall ikke veldig
321 aktivt har motarbeidet det. Innføringen av datalagringsdirektivet er
322 en lovendring som innebærer brev og besøkskontroll for hele
323 befolkningen.</p>
324
325 <p><a href="http://www.stortinget.no/no/Saker-og-publikasjoner/Saker/Sak/?p=48717">Datalagringsdirektivet</a>
326 har vært oppe til votering i stortinget tre ganger så langt. Det ble
327 <a href="http://svartelisten.org/">vedtatt første gang 2011-04-04</a>
328 og
329 <a href="https://github.com/holderdeord/hdo-folketingparser/blob/master/data/votering-2011-04-11.xml">andre
330 gang 2011-04-11</a> (lovendringer voteres to ganger), og forslag om å
331 stoppe loven ble
332 <a href="http://www.stortinget.no/no/Saker-og-publikasjoner/Saker/Sak/Voteringsoversikt/?p=53844&dnid=1">nedstemt
333 2012-12-06</a> (se også
334 <a href="http://beta.holderdeord.no/issues/innfore-datalagringsdirektivet">oversikt fra Holder De
335 Ord</a>).</p>
336
337 <p>Jan Bøhler i Arbeiderpartiet stemte for å innføre
338 datalagringsdirektivet i lovverket i første votering, var ikke
339 tilstede i andre votering og støttet loven i tredje votering. André
340 Oktay Dahl i Høyre var ikke til stede i første og andre votering men
341 støttet loven i tredje votering. Ulf Leirstein i Fremskrittspartiet
342 stemte mot loven i første votering men var ikke til stede i andre og
343 tredje votering.</p>
344
345 <p>Hvis du lurer på hva som er problemet med datalagringsdirektivet,
346 anbefaler jeg å lese <a href="http://www.uhuru.biz/?cat=84">artiklene
347 fra Jon Wessel-Aas</a> om temaet, samt informasjon fra foreningen
348 <a href="http://www.digitaltpersonvern.no/">Digitalt
349 Personvern</a>.</p>
350
351 <p><strong>Oppdatering 2013-03-09</strong>: Endret lenke til Holder De
352 Ord, som har byttet mange lenker i forbindelse med import av
353 voteringsdata for 2010-2011.</p>
354 </div>
355 <div class="tags">
356
357
358 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
359
360
361 </div>
362 </div>
363 <div class="padding"></div>
364
365 <div class="entry">
366 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Bitcoin_GUI_now_available_from_Debian_unstable__and_Ubuntu_raring_.html">Bitcoin GUI now available from Debian/unstable (and Ubuntu/raring)</a></div>
367 <div class="date"> 2nd February 2013</div>
368 <div class="body"><p>My
369 <a href="http://people.skolelinux.org/pere/blog/How_to_backport_bitcoin_qt_version_0_7_2_2_to_Debian_Squeeze.html">last
370 bitcoin related blog post</a> mentioned that the new
371 <a href="http://packages.qa.debian.org/bitcoin">bitcoin package</a> for
372 Debian was waiting in NEW. It was accepted by the Debian ftp-masters
373 2013-01-19, and have been available in unstable since then. It was
374 automatically copied to Ubuntu, and is available in their Raring
375 version too.</p>
376
377 <p>But there is a strange problem with the build that block this new
378 version from being available on the i386 and kfreebsd-i386
379 architectures. For some strange reason, the autobuilders in Debian
380 for these architectures fail to run the test suite on these
381 architectures (<a href="http://bugs.debian.org/672524">BTS #672524</a>).
382 We are so far unable to reproduce it when building it manually, and
383 no-one have been able to propose a fix. If you got an idea what is
384 failing, please let us know via the BTS.</p>
385
386 <p>One feature that is annoying me with of the bitcoin client, because
387 I often run low on disk space, is the fact that the client will exit
388 if it run short on space (<a href="http://bugs.debian.org/696715">BTS
389 #696715</a>). So make sure you have enough disk space when you run
390 it. :)</p>
391
392 <p>As usual, if you use bitcoin and want to show your support of my
393 activities, please send Bitcoin donations to my address
394 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
395 </div>
396 <div class="tags">
397
398
399 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
400
401
402 </div>
403 </div>
404 <div class="padding"></div>
405
406 <div class="entry">
407 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html">Welcome to the world, Isenkram!</a></div>
408 <div class="date">22nd January 2013</div>
409 <div class="body"><p>Yesterday, I
410 <a href="http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html">asked
411 for testers</a> for my prototype for making Debian better at handling
412 pluggable hardware devices, which I
413 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">set
414 out to create</a> earlier this month. Several valuable testers showed
415 up, and caused me to really want to to open up the development to more
416 people. But before I did this, I want to come up with a sensible name
417 for this project. Today I finally decided on a new name, and I have
418 renamed the project from hw-support-handler to this new name. In the
419 process, I moved the source to git and made it available as a
420 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/isenkram.git">collab-maint</a>
421 repository in Debian. The new name? It is <strong>Isenkram</strong>.
422 To fetch and build the latest version of the source, use</p>
423
424 <pre>
425 git clone http://anonscm.debian.org/git/collab-maint/isenkram.git
426 cd isenkram && git-buildpackage -us -uc
427 </pre>
428
429 <p>I have not yet adjusted all files to use the new name yet. If you
430 want to hack on the source or improve the package, please go ahead.
431 But please talk to me first on IRC or via email before you do major
432 changes, to make sure we do not step on each others toes. :)</p>
433
434 <p>If you wonder what 'isenkram' is, it is a Norwegian word for iron
435 stuff, typically meaning tools, nails, screws, etc. Typical hardware
436 stuff, in other words. I've been told it is the Norwegian variant of
437 the German word eisenkram, for those that are familiar with that
438 word.</p>
439
440 <p><strong>Update 2013-01-26</strong>: Added -us -us to build
441 instructions, to avoid confusing people with an error from the signing
442 process.</p>
443
444 <p><strong>Update 2013-01-27</strong>: Switch to HTTP URL for the git
445 clone argument to avoid the need for authentication.</p>
446 </div>
447 <div class="tags">
448
449
450 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
451
452
453 </div>
454 </div>
455 <div class="padding"></div>
456
457 <div class="entry">
458 <div class="title"><a href="http://people.skolelinux.org/pere/blog/First_prototype_ready_making_hardware_easier_to_use_in_Debian.html">First prototype ready making hardware easier to use in Debian</a></div>
459 <div class="date">21st January 2013</div>
460 <div class="body"><p>Early this month I set out to try to
461 <a href="http://people.skolelinux.org/pere/blog/Lets_make_hardware_dongles_easier_to_use_in_Debian.html">improve
462 the Debian support for pluggable hardware devices</a>. Now my
463 prototype is working, and it is ready for a larger audience. To test
464 it, fetch the
465 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/">source
466 from the Debian Edu subversion repository</a>, build and install the
467 package. You might have to log out and in again activate the
468 autostart script.</p>
469
470 <p>The design is simple:</p>
471
472 <ul>
473
474 <li>Add desktop entry in /usr/share/autostart/ causing a program
475 hw-support-handlerd to start when the user log in.</li>
476
477 <li>This program listen for kernel events about new hardware (directly
478 from the kernel like udev does), not using HAL dbus events as I
479 initially did.</li>
480
481 <li>When new hardware is inserted, look up the hardware modalias in
482 the APT database, a database
483 <a href="http://anonscm.debian.org/viewvc/debian-edu/trunk/src/hw-support-handler/modaliases?view=markup">available
484 via HTTP</a> and a database available as part of the package.</li>
485
486 <li>If a package is mapped to the hardware in question, the package
487 isn't installed yet and this is the first time the hardware was
488 plugged in, show a desktop notification suggesting to install the
489 package or packages.</li>
490
491 <li>If the user click on the 'install package now' button, ask
492 aptdaemon via the PackageKit API to install the requrired package.</li>
493
494 <li>aptdaemon ask for root password or sudo password, and install the
495 package while showing progress information in a window.</li>
496
497 </ul>
498
499 <p>I still need to come up with a better name for the system. Here
500 are some screen shots showing the prototype in action. First the
501 notification, then the password request, and finally the request to
502 approve all the dependencies. Sorry for the Norwegian Bokmål GUI.</p>
503
504 <p><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-1-notification.png">
505 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-2-password.png">
506 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-3-dependencies.png">
507 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-4-installing.png">
508 <br><img src="http://people.skolelinux.org/pere/blog/images/2013-01-21-hw-support-5-installing-details.png" width="70%"></p>
509
510 <p>The prototype still need to be improved with longer timeouts, but
511 is already useful. The database of hardware to package mappings also
512 need more work. It is currently compatible with the Ubuntu way of
513 storing such information in the package control file, but could be
514 changed to use other formats instead or in addition to the current
515 method. I've dropped the use of discover for this mapping, as the
516 modalias approach is more flexible and easier to use on Linux as long
517 as the Linux kernel expose its modalias strings directly.</p>
518
519 <p><strong>Update 2013-01-21 16:50</strong>: Due to popular demand,
520 here is the command required to check out and build the source: Use
521 '<tt>svn checkout
522 svn://svn.debian.org/debian-edu/trunk/src/hw-support-handler/; cd
523 hw-support-handler; debuild</tt>'. If you lack debuild, install the
524 devscripts package.</p>
525
526 <p><strong>Update 2013-01-23 12:00</strong>: The project is now
527 renamed to Isenkram and the source moved from the Debian Edu
528 subversion repository to a Debian collab-maint git repository. See
529 <a href="http://people.skolelinux.org/pere/blog/Welcome_to_the_world__Isenkram_.html">build
530 instructions</a> for details.</p>
531 </div>
532 <div class="tags">
533
534
535 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>.
536
537
538 </div>
539 </div>
540 <div class="padding"></div>
541
542 <div class="entry">
543 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Thank_you_Thinkpad_X41__for_your_long_and_trustworthy_service.html">Thank you Thinkpad X41, for your long and trustworthy service</a></div>
544 <div class="date">19th January 2013</div>
545 <div class="body"><p>This Christmas my trusty old laptop died. It died quietly and
546 suddenly in bed. With a quiet whimper, it went completely quiet and
547 black. The power button was no longer able to turn it on. It was a
548 IBM Thinkpad X41, and the best laptop I ever had. Better than both
549 Thinkpads X30, X31, X40, X60, X61 and X61S. Far better than the
550 Compaq I had before that. Now I need to find a replacement. To keep
551 going during Christmas, I moved the one year old SSD disk to my old
552 X40 where it fitted (only one I had left that could use it), but it is
553 not a durable solution.
554
555 <p>My laptop needs are fairly modest. This is my wishlist from when I
556 got a new one more than 10 years ago. It still holds true.:)</p>
557
558 <ul>
559
560 <li>Lightweight (around 1 kg) and small volume (preferably smaller
561 than A4).</li>
562 <li>Robust, it will be in my backpack every day.</li>
563 <li>Three button mouse and a mouse pin instead of touch pad.</li>
564 <li>Long battery life time. Preferable a week.</li>
565 <li>Internal WIFI network card.</li>
566 <li>Internal Twisted Pair network card.</li>
567 <li>Some USB slots (2-3 is plenty)</li>
568 <li>Good keyboard - similar to the Thinkpad.</li>
569 <li>Video resolution at least 1024x768, with size around 12" (A4 paper
570 size).</li>
571 <li>Hardware supported by Debian Stable, ie the default kernel and
572 X.org packages.</li>
573 <li>Quiet, preferably fan free (or at least not using the fan most of
574 the time).
575
576 </ul>
577
578 <p>You will notice that there are no RAM and CPU requirements in the
579 list. The reason is simply that the specifications on laptops the
580 last 10-15 years have been sufficient for my needs, and I have to look
581 at other features to choose my laptop. But are there still made as
582 robust laptops as my X41? The Thinkpad X60/X61 proved to be less
583 robust, and Thinkpads seem to be heading in the wrong direction since
584 Lenovo took over. But I've been told that X220 and X1 Carbon might
585 still be useful.</p>
586
587 <p>Perhaps I should rethink my needs, and look for a pad with an
588 external keyboard? I'll have to check the
589 <a href="http://www.linux-laptop.net/">Linux Laptops site</a> for
590 well-supported laptops, or perhaps just buy one preinstalled from one
591 of the vendors listed on the <a href="http://linuxpreloaded.com/">Linux
592 Pre-loaded site</a>.</p>
593 </div>
594 <div class="tags">
595
596
597 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
598
599
600 </div>
601 </div>
602 <div class="padding"></div>
603
604 <div class="entry">
605 <div class="title"><a href="http://people.skolelinux.org/pere/blog/How_to_find_a_browser_plugin_supporting_a_given_MIME_type.html">How to find a browser plugin supporting a given MIME type</a></div>
606 <div class="date">18th January 2013</div>
607 <div class="body"><p>Some times I try to figure out which Iceweasel browser plugin to
608 install to get support for a given MIME type. Thanks to
609 <a href="https://wiki.ubuntu.com/MozillaTeam/Plugins">specifications
610 done by Ubuntu</a> and Mozilla, it is possible to do this in Debian.
611 Unfortunately, not very many packages provide the needed meta
612 information, Anyway, here is a small script to look up all browser
613 plugin packages announcing ther MIME support using this specification:</p>
614
615 <pre>
616 #!/usr/bin/python
617 import sys
618 import apt
619 def pkgs_handling_mimetype(mimetype):
620 cache = apt.Cache()
621 cache.open(None)
622 thepkgs = []
623 for pkg in cache:
624 version = pkg.candidate
625 if version is None:
626 version = pkg.installed
627 if version is None:
628 continue
629 record = version.record
630 if not record.has_key('Npp-MimeType'):
631 continue
632 mime_types = record['Npp-MimeType'].split(',')
633 for t in mime_types:
634 t = t.rstrip().strip()
635 if t == mimetype:
636 thepkgs.append(pkg.name)
637 return thepkgs
638 mimetype = "audio/ogg"
639 if 1 < len(sys.argv):
640 mimetype = sys.argv[1]
641 print "Browser plugin packages supporting %s:" % mimetype
642 for pkg in pkgs_handling_mimetype(mimetype):
643 print " %s" %pkg
644 </pre>
645
646 <p>It can be used like this to look up a given MIME type:</p>
647
648 <pre>
649 % ./apt-find-browserplug-for-mimetype
650 Browser plugin packages supporting audio/ogg:
651 gecko-mediaplayer
652 % ./apt-find-browserplug-for-mimetype application/x-shockwave-flash
653 Browser plugin packages supporting application/x-shockwave-flash:
654 browser-plugin-gnash
655 %
656 </pre>
657
658 <p>In Ubuntu this mechanism is combined with support in the browser
659 itself to query for plugins and propose to install the needed
660 packages. It would be great if Debian supported such feature too. Is
661 anyone working on adding it?</p>
662
663 <p><strong>Update 2013-01-18 14:20</strong>: The Debian BTS
664 request for icweasel support for this feature is
665 <a href="http://bugs.debian.org/484010">#484010</a> from 2008 (and
666 <a href="http://bugs.debian.org/698426">#698426</a> from today). Lack
667 of manpower and wish for a different design is the reason thus feature
668 is not yet in iceweasel from Debian.</p>
669 </div>
670 <div class="tags">
671
672
673 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
674
675
676 </div>
677 </div>
678 <div class="padding"></div>
679
680 <p style="text-align: right;"><a href="index.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS feed" width="36" height="14" /></a></p>
681 <div id="sidebar">
682
683
684
685 <h2>Archive</h2>
686 <ul>
687
688 <li>2013
689 <ul>
690
691 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
692
693 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (6)</a></li>
694
695 </ul></li>
696
697 <li>2012
698 <ul>
699
700 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
701
702 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
703
704 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
705
706 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
707
708 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
709
710 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
711
712 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
713
714 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
715
716 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
717
718 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
719
720 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
721
722 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
723
724 </ul></li>
725
726 <li>2011
727 <ul>
728
729 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
730
731 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
732
733 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
734
735 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
736
737 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
738
739 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
740
741 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
742
743 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
744
745 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
746
747 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
748
749 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
750
751 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
752
753 </ul></li>
754
755 <li>2010
756 <ul>
757
758 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
759
760 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
761
762 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
763
764 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
765
766 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
767
768 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
769
770 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
771
772 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
773
774 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
775
776 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
777
778 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
779
780 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
781
782 </ul></li>
783
784 <li>2009
785 <ul>
786
787 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
788
789 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
790
791 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
792
793 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
794
795 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
796
797 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
798
799 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
800
801 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
802
803 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
804
805 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
806
807 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
808
809 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
810
811 </ul></li>
812
813 <li>2008
814 <ul>
815
816 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
817
818 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
819
820 </ul></li>
821
822 </ul>
823
824
825
826 <h2>Tags</h2>
827 <ul>
828
829 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
830
831 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
832
833 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
834
835 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
836
837 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (6)</a></li>
838
839 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (12)</a></li>
840
841 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
842
843 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (70)</a></li>
844
845 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (118)</a></li>
846
847 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (9)</a></li>
848
849 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (7)</a></li>
850
851 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
852
853 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (178)</a></li>
854
855 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
856
857 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
858
859 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (10)</a></li>
860
861 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (9)</a></li>
862
863 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (32)</a></li>
864
865 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (5)</a></li>
866
867 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (17)</a></li>
868
869 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
870
871 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (6)</a></li>
872
873 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
874
875 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (25)</a></li>
876
877 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (222)</a></li>
878
879 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (149)</a></li>
880
881 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (7)</a></li>
882
883 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
884
885 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (41)</a></li>
886
887 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (63)</a></li>
888
889 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
890
891 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
892
893 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
894
895 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (6)</a></li>
896
897 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
898
899 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
900
901 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
902
903 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (28)</a></li>
904
905 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
906
907 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
908
909 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (40)</a></li>
910
911 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
912
913 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (6)</a></li>
914
915 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (14)</a></li>
916
917 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
918
919 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (7)</a></li>
920
921 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (35)</a></li>
922
923 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
924
925 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (26)</a></li>
926
927 </ul>
928
929
930 </div>
931 <p style="text-align: right">
932 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
933 </p>
934
935 </body>
936 </html>