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">
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" />
14 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
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>
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
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
60 <p>The X-BANK-ACCOUNT-NUMBER field was proposed in a stackoverflow
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>
67 <p>The complete vCard could look like this:
</p>
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
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
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
93 <p><img src=
"http://people.skolelinux.org/pere/blog/images/2013-02-12-qr-invoice.png"></p>
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>
100 <p><strong>Update
2013-
02-
12 11:
30</strong>: Added KID to the proposal
101 based on feedback from Sturle Sunde.
</p>
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>.
111 <div class=
"padding"></div>
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>
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>
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>
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>
200 <p>Jeg droppet den ufullstendige måneden og året fra tabellen. Se
201 lenken for oppdaterte tall.
</p>
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>.
211 <div class=
"padding"></div>
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>
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>
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
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>
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>
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>
272 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>.
277 <div class=
"padding"></div>
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>
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>
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
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>.
311 <div class=
"padding"></div>
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
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>
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 å
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
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
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
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>
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>.
363 <div class=
"padding"></div>
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
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>
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
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>
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>.
404 <div class=
"padding"></div>
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>
425 git clone http://anonscm.debian.org/git/collab-maint/isenkram.git
426 cd isenkram && git-buildpackage -us -uc
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>
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
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
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>
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>.
455 <div class=
"padding"></div>
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
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>
470 <p>The design is simple:
</p>
474 <li>Add desktop entry in /usr/share/autostart/ causing a program
475 hw-support-handlerd to start when the user log in.
</li>
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
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>
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>
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>
494 <li>aptdaemon ask for root password or sudo password, and install the
495 package while showing progress information in a window.
</li>
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>
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>
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>
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
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>
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>
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>.
540 <div class=
"padding"></div>
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.
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>
560 <li>Lightweight (around
1 kg) and small volume (preferably smaller
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
571 <li>Hardware supported by Debian Stable, ie the default kernel and
573 <li>Quiet, preferably fan free (or at least not using the fan most of
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
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>
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>.
602 <div class=
"padding"></div>
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>
619 def pkgs_handling_mimetype(mimetype):
624 version = pkg.candidate
626 version = pkg.installed
629 record = version.record
630 if not record.has_key('Npp-MimeType'):
632 mime_types = record['Npp-MimeType'].split(',')
634 t = t.rstrip().strip()
636 thepkgs.append(pkg.name)
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):
646 <p>It can be used like this to look up a given MIME type:
</p>
649 % ./apt-find-browserplug-for-mimetype
650 Browser plugin packages supporting audio/ogg:
652 % ./apt-find-browserplug-for-mimetype application/x-shockwave-flash
653 Browser plugin packages supporting application/x-shockwave-flash:
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>
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>
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>.
678 <div class=
"padding"></div>
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>
691 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/01/">January (
11)
</a></li>
693 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/02/">February (
6)
</a></li>
700 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/01/">January (
7)
</a></li>
702 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/02/">February (
10)
</a></li>
704 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/03/">March (
17)
</a></li>
706 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/04/">April (
12)
</a></li>
708 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/05/">May (
12)
</a></li>
710 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/06/">June (
20)
</a></li>
712 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/07/">July (
17)
</a></li>
714 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/08/">August (
6)
</a></li>
716 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/09/">September (
9)
</a></li>
718 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/10/">October (
17)
</a></li>
720 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/11/">November (
10)
</a></li>
722 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/12/">December (
7)
</a></li>
729 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/01/">January (
16)
</a></li>
731 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/02/">February (
6)
</a></li>
733 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/03/">March (
6)
</a></li>
735 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/04/">April (
7)
</a></li>
737 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/05/">May (
3)
</a></li>
739 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/06/">June (
2)
</a></li>
741 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/07/">July (
7)
</a></li>
743 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/08/">August (
6)
</a></li>
745 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/09/">September (
4)
</a></li>
747 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/10/">October (
2)
</a></li>
749 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/11/">November (
3)
</a></li>
751 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/12/">December (
1)
</a></li>
758 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li>
760 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li>
762 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li>
764 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li>
766 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/05/">May (
9)
</a></li>
768 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/06/">June (
14)
</a></li>
770 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/07/">July (
12)
</a></li>
772 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/08/">August (
13)
</a></li>
774 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/09/">September (
7)
</a></li>
776 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/10/">October (
9)
</a></li>
778 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/11/">November (
13)
</a></li>
780 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/12/">December (
12)
</a></li>
787 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li>
789 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li>
791 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li>
793 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li>
795 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li>
797 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li>
799 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li>
801 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li>
803 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li>
805 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li>
807 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li>
809 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li>
816 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li>
818 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li>
829 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
13)
</a></li>
831 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li>
833 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li>
835 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bankid">bankid (
4)
</a></li>
837 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (
6)
</a></li>
839 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (
12)
</a></li>
841 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bsa">bsa (
2)
</a></li>
843 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian (
70)
</a></li>
845 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
118)
</a></li>
847 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/digistan">digistan (
9)
</a></li>
849 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/docbook">docbook (
7)
</a></li>
851 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
853 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/english">english (
178)
</a></li>
855 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
21)
</a></li>
857 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
12)
</a></li>
859 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (
10)
</a></li>
861 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (
9)
</a></li>
863 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/intervju">intervju (
32)
</a></li>
865 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (
5)
</a></li>
867 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart (
17)
</a></li>
869 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ldap">ldap (
8)
</a></li>
871 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lenker">lenker (
6)
</a></li>
873 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li>
875 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
25)
</a></li>
877 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk (
222)
</a></li>
879 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug (
149)
</a></li>
881 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (
7)
</a></li>
883 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/open311">open311 (
2)
</a></li>
885 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
41)
</a></li>
887 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern (
63)
</a></li>
889 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/raid">raid (
1)
</a></li>
891 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reprap">reprap (
11)
</a></li>
893 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rfid">rfid (
2)
</a></li>
895 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/robot">robot (
6)
</a></li>
897 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li>
899 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ruter">ruter (
4)
</a></li>
901 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
903 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
28)
</a></li>
905 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
907 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (
4)
</a></li>
909 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard (
40)
</a></li>
911 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
3)
</a></li>
913 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (
6)
</a></li>
915 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (
14)
</a></li>
917 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (
1)
</a></li>
919 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/valg">valg (
7)
</a></li>
921 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/video">video (
35)
</a></li>
923 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
925 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/web">web (
26)
</a></li>
931 <p style=
"text-align: right">
932 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>