]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
Correct link and time.
[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://www.hungry.com/~pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://www.hungry.com/~pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="http://www.hungry.com/~pere/blog/index.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="http://www.hungry.com/~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://www.hungry.com/~pere/blog/What_is_the_most_supported_MIME_type_in_Debian_in_2025_.html">What is the most supported MIME type in Debian in 2025?</a></div>
24 <div class="date">18th January 2025</div>
25 <div class="body"><p><a href="http://www.hungry.com/~pere/blog/What_is_the_most_supported_MIME_type_in_Debian_in_2018_.html">Seven</a>
26 and
27 <a href="http://www.hungry.com/~pere/blog/What_is_the_most_supported_MIME_type_in_Debian_.html">twelve</a>
28 years ago, I measured what the most supported MIME type in Debian
29 was</a>, first by analysing the desktop files in all packages in the
30 archive, then by analysing the DEP-11 AppStream data set. I guess it
31 is time to repeat the measurement, only for unstable as last time:</p>
32
33 <p><strong>Debian Unstable:</strong></p>
34
35 <pre>
36 count MIME type
37 ----- -----------------------
38 63 image/png
39 63 image/jpeg
40 57 image/tiff
41 54 image/gif
42 51 image/bmp
43 50 audio/mpeg
44 48 text/plain
45 42 audio/x-mp3
46 40 application/ogg
47 39 audio/x-wav
48 39 audio/x-flac
49 36 audio/x-vorbis+ogg
50 35 audio/x-mpeg
51 34 audio/x-mpegurl
52 34 audio/ogg
53 33 application/x-ogg
54 32 audio/mp4
55 31 audio/x-scpls
56 31 application/pdf
57 29 audio/x-ms-wma
58 </pre>
59
60 <p>The list was created like this using a sid chroot:</p>
61
62 <pre>
63 cat /var/lib/apt/lists/*sid*_dep11_Components-amd64.yml.gz | \
64 zcat | awk '/^ - \S+\/\S+$/ {print $2 }' | sort | \
65 uniq -c | sort -nr | head -20
66 </pre>
67
68 <p>It is nice to see that the same number of packages now support PNG
69 and JPEG. Last time JPEG had more support than PNG. Most of the MIME
70 types are known to me, but the 'audio/x-scpls' one I have no idea what
71 represent, except it being an audio format. To find the packages
72 claiming support for this format, the appstreamcli command from the
73 appstream package can be used:
74
75 <pre>
76 % appstreamcli what-provides mediatype audio/x-scpls | grep Package: | sort -u
77 Package: alsaplayer-common
78 Package: amarok
79 Package: audacious
80 Package: brasero
81 Package: celluloid
82 Package: clapper
83 Package: clementine
84 Package: cynthiune.app
85 Package: elisa
86 Package: gtranscribe
87 Package: kaffeine
88 Package: kmplayer
89 Package: kylin-burner
90 Package: lollypop
91 Package: mediaconch-gui
92 Package: mediainfo-gui
93 Package: mplayer-gui
94 Package: mpv
95 Package: mystiq
96 Package: parlatype
97 Package: parole
98 Package: pragha
99 Package: qmmp
100 Package: rhythmbox
101 Package: sayonara
102 Package: shotcut
103 Package: smplayer
104 Package: soundconverter
105 Package: strawberry
106 Package: syncplay
107 Package: vlc
108 %
109 </pre>
110
111 <p>Look like several video and auto tools understand the format.
112 Similarly one can check out the number of packages supporting the STL
113 format commonly used for 3D printing:</p>
114
115 <pre>
116 % appstreamcli what-provides mediatype model/stl | grep Package: | sort -u
117 Package: cura
118 Package: freecad
119 Package: open3d-viewer
120 %
121 </pre>
122
123 <p>How strange the
124 <a href="https://tracker.debian.org/pkg/slic3r">slic3r</a> and
125 <a href="https://tracker.debian.org/pkg/slic3r-prusa">prusa-slicer</a>
126 packages do not support STL. Perhaps just missing package metadata?
127 Luckily the amount of package metadata in Debian is getting better,
128 and hopefully this way of locating relevant packages for any file
129 format will be the preferred one soon.
130
131 <p>As usual, if you use Bitcoin and want to show your support of my
132 activities, please send Bitcoin donations to my address
133 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
134 </div>
135 <div class="tags">
136
137
138 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/isenkram">isenkram</a>.
139
140
141 </div>
142 </div>
143 <div class="padding"></div>
144
145 <div class="entry">
146 <div class="title"><a href="http://www.hungry.com/~pere/blog/The_2025_LinuxCNC_Norwegian_developer_gathering.html">The 2025 LinuxCNC Norwegian developer gathering</a></div>
147 <div class="date">11th January 2025</div>
148 <div class="body"><p><a href="https://linuxcnc.org/">The LinuxCNC project</a> is
149 trotting along. And I believe this great software system for
150 numerical control of machines such as milling machines, lathes, plasma
151 cutters, routers, cutting machines, robots and hexapods, would do even
152 better with more in-person developer gatherings, so we plan to
153 organise such gathering this summer too.</p>
154
155 <p>This year we would like to invite to a small LinuxCNC and free
156 software fabrication workshop/gathering in Norway this summer for the
157 weekend starting July 4th 2025. New this year is the slightly larger
158 scope, and we invite people also outside the LinuxCNC community to
159 join. As earlier, we suggest to organize it as an
160 <a href="https://en.wikipedia.org/wiki/Unconference">unconference</a>,
161 where the participants create the program upon arrival.</p>
162
163 <p>The location is a metal workshop 15 minutes drive away from to the
164 Gardermoen airport (OSL), where there is a lot of space and a hotel only
165 5 minutes away by car. We plan to fire up the barbeque in the evenings.</p>
166
167 <p>Please let us know if you would like to join. We track the list of
168 participants on <a href="https://pad.efn.no/p/linuxcnc-2025-norway">a
169 simple pad</a>, please add yourself there if you are interested in joining.</p>
170
171 <p><a href="https://www.nuugfoundation.no/">The NUUG Foundation</a> has on
172 our request offered to handle any money involved with this gathering,
173 in other words holding any sponsor funds and paying any bills.
174 NUUG Foundation is a spinnoff from the NUUG member organisation here
175 in Norway with long ties to the free software and open standards
176 communities.</p>
177
178 <p>As usual we hope to find sponsors to pay for food, lodging and travel.</p>
179
180 <p>As usual, if you use Bitcoin and want to show your support of my
181 activities, please send Bitcoin donations to my address
182 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
183 </div>
184 <div class="tags">
185
186
187 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc</a>.
188
189
190 </div>
191 </div>
192 <div class="padding"></div>
193
194 <div class="entry">
195 <div class="title"><a href="http://www.hungry.com/~pere/blog/New_lsdvd_release_0_18_after_ten_years.html">New lsdvd release 0.18 after ten years</a></div>
196 <div class="date">21st December 2024</div>
197 <div class="body"><p>The rumors of the death of
198 <a href="https://sourceforge.net/projects/lsdvd/">the lsdvd project</a>
199 is slightly exaggerated. And the last few months, we have been
200 working on fixing and improving it, culminating in a new release last
201 night. This is the list of changes in the new 0.18 release, as
202 <a href="https://sourceforge.net/p/lsdvd/mailman/message/59108028/">announced
203 on the project mailing list</a>:</p>
204
205 <ul>
206
207 <li>Simplified autoconf setup, dropped --enable-debug option.</li>
208 <li>Improved video resolution reporting (<a href="https://sourceforge.net/p/lsdvd/patches/8/">Fixes #8</a>).</li>
209 <li>Applied patches fetched from BSDs (<a href="https://sourceforge.net/p/lsdvd/patches/7/">Fixes #7</a>).</li>
210 <li>Corrected Perl output (<a href="https://sourceforge.net/p/lsdvd/patches/1/">Fixes #1</a>).</li>
211 <li>Adjusted Pan and Scan entries to produce valid XML.</li>
212 <li>Changed --help output from stderr to stdout.</li>
213 <li>Corrected aspect ratio and audio format formatting.</li>
214 <li>Avoid segfault when hitting a NULL pointer in the IFO structure.</li>
215 <li>Change build rules to supress compiler flags, to make it easier to
216 spot warnings.</li>
217 <li>Set default DVD device based on OS (Linux, *BSD, Darwin)</li>
218 <li>Added libdvdread DVDDiscID to output.</li>
219 <li>Corrected typo in longest track value in XML format.</li>
220 <li>Switched XML output to use libxml to avoid string encoding issues.</li>
221 <li>Added simple build time test suite.</li>
222 <li>Cleaned up language code handling and adding missing mapping for
223 language codes 'nb' and 'nn'.</li>
224 <li>Added JSON output support using -Oj.</li>
225 </ul>
226
227 <p>The most exciting news to me is easy access to the DVDDiscID, which
228 make it a lot easier to identify DVD duplicates across a large
229 collection of DVDs. During testing it has proved to be very effective
230 ad identifying when DVDs in a DVD box (say all Star Wars movies) is
231 identical to DVDs sold individually (like the same Star Wars movies
232 packaged individually).</p>
233
234 <p>Because none of the current developers got access to do tarball
235 releases on Sourceforge any more, the release is only available as
236 <a href="https://sourceforge.net/p/lsdvd/git/ci/0.18/tree/">a git
237 tag</a> in the repository. Lets hope it do not take ten years for the
238 next release. The project are discussing to move away from
239 Sourceforge, but it has not yet concluded.</p>
240
241 <p>As usual, if you use Bitcoin and want to show your support of my
242 activities, please send Bitcoin donations to my address
243 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
244 </div>
245 <div class="tags">
246
247
248 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>.
249
250
251 </div>
252 </div>
253 <div class="padding"></div>
254
255 <div class="entry">
256 <div class="title"><a href="http://www.hungry.com/~pere/blog/More_than_200_orphaned_Debian_packages_moved_to_git__216_to_go.html">More than 200 orphaned Debian packages moved to git, 216 to go</a></div>
257 <div class="date">11th July 2024</div>
258 <div class="body"><p><a href="http://www.hungry.com/~pere/blog/Time_to_move_orphaned_Debian_packages_to_git.html">In
259 April</a>, I started migrating orphaned Debian packages without any
260 version control system listed in debian/control to git. This morning,
261 my Debian QA page finally reached 200 QA packages migrated. In
262 reality there are a few more, as the packages uploaded by someone else
263 after my initial upload have disappeared from my QA uploads list. As
264 I am running out of steam and will most likely focus on other parts of
265 Debian moving forward, I hope someone else will find time to continue
266 the migration to bring the number of orphaned packages without any
267 version control system down to zero. Here is the updated recipe if
268 someone want to help out.</p>
269
270 <p>To locate packages to work on, the following one-liner can be used:</p>
271
272 <blockquote><pre>
273 PGPASSWORD="udd-mirror" psql --port=5432 --host=udd-mirror.debian.net \
274 --username=udd-mirror udd -c "select source from sources \
275 where release = 'sid' and (vcs_url ilike '%anonscm.debian.org%' \
276 OR vcs_browser ilike '%anonscm.debian.org%' or vcs_url IS NULL \
277 OR vcs_browser IS NULL) AND maintainer ilike '%packages@qa.debian.org%' \
278 order by random() limit 10;"
279 </pre></blockquote>
280
281 <p>Pick a random package from the list and run the latest edition of
282 the script
283 <tt><a href="http://www.hungry.com/~pere/blog/images/2024-07-11-debian-snap-to-salsa.sh">debian-snap-to-salsa</a></tt>
284 with the package name as the argument to prepare a git repository with
285 the existing packaging. This will download old Debian packages from
286 <tt>snapshot.debian.org</tt>. Note that very recent uploads will not
287 be included, so check out the package on <tt>tracker.debian.org</tt>.
288 Next, run <tt>gbp buildpackage --git-ignore-new</tt> to verify that
289 the package build as it should, and then visit
290 <a href="https://salsa.debian.org/debian/">https://salsa.debian.org/debian/</a>
291 and make sure there is not already a git repository for the package
292 there. I also did <tt>git log -p debian/control</tt> and look for vcs
293 entries to check if the package used to have a git repository on
294 Alioth, and see if it can be a useful starting point moving forward.
295 If all this check out, I created a new gitlab project below the Debian
296 group on salsa, push the package source there and upload a new version.
297 I tend to also ensure build hardening is enabled, if it prove to be
298 easy, and check if I can easily fix any lintian issues or bug reports.
299 If the process took more than 20 minutes, I dropped it and moved on to
300 another package.</p>
301
302 <p>If I found patches in debian/patches/ that were not yet passed
303 upstream, I would send an email to make sure upstream know about them.
304 This has proved to be a valuable step, and caused several new releases
305 for software that initially appeared abandoned. :)</p>
306
307 <p>As usual, if you use Bitcoin and want to show your support of my
308 activities, please send Bitcoin donations to my address
309 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
310 </div>
311 <div class="tags">
312
313
314 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>.
315
316
317 </div>
318 </div>
319 <div class="padding"></div>
320
321 <div class="entry">
322 <div class="title"><a href="http://www.hungry.com/~pere/blog/Some_notes_from_the_2024_LinuxCNC_Norwegian_developer_gathering.html">Some notes from the 2024 LinuxCNC Norwegian developer gathering</a></div>
323 <div class="date">10th July 2024</div>
324 <div class="body"><p>The Norwegian <a href="https://linuxcnc.org/">The LinuxCNC</a>
325 developer gathering 2024 is over. It was a great and productive
326 weekend, and I am sad that it is over.</p>
327
328 <p>Regular readers probably still remember what LinuxCNC is, but her
329 is a quick summary for those that forgot? LinuxCNC is a free software
330 system for numerical control of machines such as milling machines,
331 lathes, plasma cutters, routers, cutting machines, robots and
332 hexapods. It eats G-code and produce motor movement and other changes
333 to the physical world, while reading sensor input.</p>
334
335 <p>I am not quite sure about the total head count, as not all people
336 were present at the gathering the entire weekend, but I believe it was
337 close to 10 people showing their faces at the gathering. The "hard
338 core" of the group, who stayed the entire weekend, were two from
339 Norway, two from Germany and one from England. I am happy with the
340 outcome from the gathering. We managed to wrap up a new stable
341 LinuxCNC release 2.9.3 and even tested it on real hardware within
342 minutes of the release. The release notes for 2.9.3 are still being
343 written, but should show up on on the project site in the next few
344 days. We managed to go through around twenty pull requests and merge
345 then into either the stable release (2.9) or the development branch
346 (master). There are still around thirty pull requests left to
347 process, so we are not out of work yet. We even managed to
348 fix/improve a slightly worn lathe, and experiment with running a
349 mechanical clock using G-code.</p>
350
351 <p>The evening barbeque worked well both on Saturday and Sunday. It
352 is quite fun to light up a charcoal grill using compressed air. Sadly
353 the weather was not the best, so we stayed indoors most of the
354 time.</p>
355
356 <p>This gathering was made possible partly with sponsoring from both
357 <a href="https://www.redpill-linpro.com/">Redpill Linpro</a>,
358 <a href="https://debian.org/">Debian</a> and
359 <a href="https://nuugfoundation.no/">NUUG Foundation</a>, and we are
360 most grateful for the support. I would also like to thank the local
361 school for lending us some furniture, and of course the rest of the
362 members of the organizers team, Asle and Bosse, for their countless
363 contributions. The gathering was such success that we want to do it
364 again next year.</p>
365
366 <p>We plan to organize the next Norwegian LinuxCNC developer gathering
367 at the end of June next year, the weekend Friday 27th to Sunday 29th
368 of June 2025. I recommend you reserve the dates on your calendar
369 today. Other related communities are also welcome to join in, for
370 example those working on systems like FreeCAD and opencamlib, as I am
371 sure we have much in common and sharing experiences would be very
372 useful to all involved. We are of course looking for sponsors for
373 this gathering already. The total budget for this gathering was
374 around NOK 25.000 (around EUR 2.300), so our needs are quite modest.
375 Perhaps a machine or tools company would like to help out the free
376 software manufacturing community by sponsoring food, lodging and
377 transport for such gathering?</p>
378 </div>
379 <div class="tags">
380
381
382 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc</a>.
383
384
385 </div>
386 </div>
387 <div class="padding"></div>
388
389 <div class="entry">
390 <div class="title"><a href="http://www.hungry.com/~pere/blog/_M_ter_vi_liv_eller_d_d____pamfletten_som_inspirerte.html">«Møter vi liv eller død?», pamfletten som inspirerte</a></div>
391 <div class="date"> 4th June 2024</div>
392 <div class="body"><img align="center" src="http://www.hungry.com/~pere/blog/images/2024-06-04-bok-elsa-laula.svg" width="20%" align="center" border="1"></a>
393
394 <p>Da jeg i høst hørte jeg et innslag på
395 <a href="https://radiorakel.no/">radiOrakel</a> om en inspirerende dame
396 som levde for over hundre år siden, fikk jeg en vill ide. Elsa Laula
397 var en svensk samisk dame som ikke bare fikk utdannelsen finansiert av
398 den danske dronningen, men som gjorde så god jobb med å inspirere og
399 organisere den samiske befolkningen at det visstnok ble forslått i
400 Sverige å straffeforfølge henne for oppvigleri før hun flyttet fra
401 Sverige til Norge. Radiopraterne fortalte videre at da Elsa Laula ga
402 ut en pamflett for å inspirere samene til samling var dette den
403 første bok gitt ut av en samisk dame noensinne. Jeg fikk høre at
404 denne korte teksten kun fantes på originalspråket svensk under
405 tittelen «Inför lif eller död» og aldri var oversatt til norsk. Da
406 tenkte jeg, der jeg satt i bilen, at en norsk utgave kan vel jeg
407 fikse. Jeg har jo fått oversatt endel bøker, og en liten pamflett på
408 noen få sider burde jo være grei skuring.</p>
409
410 <p>Den imponerende Elsa Laula, som senere la til etternavnet Renberg, har
411 blant annet fått dokumentaren
412 «<a href="https://www.nrk.no/video/elsa-laula-renberg-kvinnen-som-samlet-sapmi_SAPP67002117">Elsa
413 Laula Renberg, kvinnen som samlet Sápmi</a>» (2017) av Per Kristian
414 Olsen på NRK, NRK-artikkelen
415 «<a href="https://www.nrk.no/kultur/xl/et-liv-i-kamp-for-samefolkets-rettigheter-1.13351401">Samenes
416 Jeanne d’Arc</a>» av Karen Brodshaug Sveen (2017), oppgaven
417 «<a href="https://nordligefolk.no/wp-content/uploads/2020/03/Elsa-Laulas-Info%CC%88r-Lif-och-Do%CC%88d.pdf">Elsa
418 Laulas Innför lif och död – sanningsord i de lappska
419 förhållandena</a>» av Edel Olsen, biografien
420 «<a href="https://www.siribrochjohansen.no/biografien-om-elsa-laula-renberg/">Elsa
421 Laula Renberg - Historien om samefolkets store Minerva</a>» (2015) av
422 Siri Broch Johansen og radiOrakel-podkasten
423 <a href="https://radiorakel.no/podcast/revolusjonen-har-et-kvinnelig-ansikt-elsa-laula/">Revolusjonen
424 har et kvinnelig ansikt – Elsa Laula</a>, for å nevne de jeg har
425 finnet uten å lete spesielt hardt. En virkelig spennende dame, som i
426 tillegg til å inspirere til opprettelsen av samiske organisasjoner,
427 har inspirert til opprettelsen av Sametinget, og født seks barn der
428 fire vokste opp.</p>
429
430 <p>I dag er jeg veldig glad for å kunne annonsere at
431 <a href="http://www.hungry.com/~pere/publisher/#infoerlifellerdoed2024">bokmålsoversettelsen
432 er klar og tilgjengelig</a> for både bestilling på papir og
433 epub-utgave fra lulu.com, samt som nettside. Den kringkastede
434 bokinformasjonen ser slik ut:</p>
435
436 <blockquote>
437
438 <p>Den 27 år gamle sørsamiske kvinnen Elsa Laula ga i august 1904 ut
439 en pamflett i Stockholm. Opplaget var på 6000, finansiert av
440 Stockholmsredaktøren Gustav Hedenström, som også bidro i stiftelsen av
441 Lapparnes Centralforbund. Dette kampskriftet var den første boken gitt
442 ut av en samisk kvinne, og hadde som mål å inspirere til opprettelsen
443 av samiske foreninger over hele landet, samt skape blest om
444 sentralforbundet. Pamfletten er et politisk manifest som fortsatt
445 inspirerer i dag.</p>
446
447 <p>Denne pamfletten er nå for første gang tilgjengelig på bokmål,
448 sammen med en nyutgivelse av originalteksten på svensk.</p>
449
450 </blockquote>
451
452 <p>Oversettelsen hadde ikke vært mulig uten gode hjelpere. En virkelig
453 stor innsats både i korrekturarbeidet og utforskning av arkaiske
454 svenske ord, står Axel Rosén bak. I tillegg har jeg fått innspill fra
455 Edel May Karlsen og flere andre både på språkføring og historisk
456 bakgrunn for å forstå teksten.</p>
457
458 <p>En kuriositet som jeg oppdaget i arbeidet med oversettelsen er at
459 det ikke stemmer at denne boken ikke var oversatt til noen andre
460 språk. Anna Wuolab oversatte den til nordsamisk i 2017 i en utgave
461 gitt ut av samisk skribent- och författarförening (Bágu čálliid
462 searvi) under tittelen «Eallit vai jápmit? : duohtavuođasánit sámi
463 diliid birra = Inför lif eller död? : sanningsord i de lappska
464 förhållandena». Papirutgaven er så vidt jeg kan forstå utsolgt fra
465 forlaget og jeg har ikke klart å finne informasjonsside om boken på
466 Internett. Mulig den er mulig å få tak i som ebok, hvis en skal tro
467 <a href="https://search.worldcat.org/title/1405213087">oppføring i
468 worldcat</a>.</p>
469
470 <p>Oversetterrammeverket jeg har satt opp for å gjennomføre dette
471 oversettelsesprosjektet håndterer flere språk. Jeg er igang med
472 engelsk utgave, og er åpen for å også gi ut andre oversettelser hvis
473 noen er interessert i å gjøre jobben. Det hadde vært ekstra moro å gi
474 den ut på sørsamisk, det samiske språket i regionen der Elsa Laula kom
475 fra. Der er jeg som vanlig avhengig av frivillige som er også
476 interessert i å gjøre dette på dugnad.</p>
477
478 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
479 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
480 til min adresse
481 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>. Merk,
482 betaling med bitcoin er ikke anonymt. :)</p>
483 </div>
484 <div class="tags">
485
486
487 Tags: <a href="http://www.hungry.com/~pere/blog/tags/docbook">docbook</a>, <a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk</a>.
488
489
490 </div>
491 </div>
492 <div class="padding"></div>
493
494 <div class="entry">
495 <div class="title"><a href="http://www.hungry.com/~pere/blog/The_2024_LinuxCNC_Norwegian_developer_gathering.html">The 2024 LinuxCNC Norwegian developer gathering</a></div>
496 <div class="date">31st May 2024</div>
497 <div class="body"><p><a href="https://linuxcnc.org/">The LinuxCNC project</a> is still
498 going strong. And I believe this great software system for numerical control of
499 machines such as milling machines, lathes, plasma cutters, routers,
500 cutting machines, robots and hexapods, would do even better with more
501 in-person developer gatherings, so we plan to organise such gathering
502 this summer too.</p>
503
504 <p>The Norwegian LinuxCNC developer gathering take place the weekend
505 Friday July 5th to 7th this year, and is open for everyone interested
506 in contributing to LinuxCNC and free software manufacturing. Up to
507 date information about the gathering can be found in
508 <a href="https://sourceforge.net/p/emc/mailman/emc-developers/thread/123eaae0-f3b9-4170-a251-b7d608f1e974%40bofh.no/">the
509 developer mailing list thread</a> where the gathering was announced.
510 Thanks to the good people at
511
512 <a href="https://www.debian.org/">Debian</a> as well as leftover money
513 from last years gathering from
514 <a href="https://www.redpill-linpro.com/">Redpill-Linpro</a> and
515 <a href="https://www.nuugfoundation.no/no/">NUUG Foundation</a>, we
516 have enough sponsor funds to pay for food, and probably also shelter
517 for the people traveling from afar to join us. If you would like to
518 join the gathering, get in touch and add your details on
519 <a href="https://pad.efn.no/p/linuxcnc-2024-norway">the pad</a>.</p>
520
521 <p>As usual, if you use Bitcoin and want to show your support of my
522 activities, please send Bitcoin donations to my address
523 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
524 </div>
525 <div class="tags">
526
527
528 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc</a>.
529
530
531 </div>
532 </div>
533 <div class="padding"></div>
534
535 <div class="entry">
536 <div class="title"><a href="http://www.hungry.com/~pere/blog/45_orphaned_Debian_packages_moved_to_git__391_to_go.html">45 orphaned Debian packages moved to git, 391 to go</a></div>
537 <div class="date">25th April 2024</div>
538 <div class="body"><p>Nine days ago, I started migrating orphaned Debian packages with no
539 version control system listed in debian/control of the source to git.
540 At the time there were 438 such packages. Now there are 391,
541 according to the UDD. In reality it is slightly less, as there is a
542 delay between uploads and UDD updates. In the nine days since, I have
543 thus been able to work my way through ten percent of the packages. I
544 am starting to run out of steam, and hope someone else will also help
545 brushing some dust of these packages. Here is a recipe how to do it.
546
547 I start by picking a random package by querying the UDD for a list of
548 10 random packages from the set of remaining packages:
549
550 <blockquote><pre>
551 PGPASSWORD="udd-mirror" psql --port=5432 --host=udd-mirror.debian.net \
552 --username=udd-mirror udd -c "select source from sources \
553 where release = 'sid' and (vcs_url ilike '%anonscm.debian.org%' \
554 OR vcs_browser ilike '%anonscm.debian.org%' or vcs_url IS NULL \
555 OR vcs_browser IS NULL) AND maintainer ilike '%packages@qa.debian.org%' \
556 order by random() limit 10;"
557 </pre></blockquote>
558
559 <p>Next, I visit http://salsa.debian.org/debian and search for the
560 package name, to ensure no git repository already exist. If it does,
561 I clone it and try to get it to an uploadable state, and add the Vcs-*
562 entries in d/control to make the repository more widely known. These
563 packages are a minority, so I will not cover that use case here.</p>
564
565 <p>For packages without an existing git repository, I run the
566 following script <tt>debian-snap-to-salsa</tt> to prepare a git
567 repository with the existing packaging.</p>
568
569 <blockquote><pre>
570 #!/bin/sh
571 #
572 # See also https://bugs.debian.org/804722#31
573
574 set -e
575
576 # Move to this Standards-Version.
577 SV_LATEST=4.7.0
578
579 PKG="$1"
580
581 if [ -z "$PKG" ]; then
582 echo "usage: $0 <pkgname>"
583 exit 1
584 fi
585
586 if [ -e "${PKG}-salsa" ]; then
587 echo "error: ${PKG}-salsa already exist, aborting."
588 exit 1
589 fi
590
591 if [ -z "ALLOWFAILURE" ] ; then
592 ALLOWFAILURE=false
593 fi
594
595 # Fetch every snapshotted source package. Manually loop until all
596 # transfers succeed, as 'gbp import-dscs --debsnap' do not fail on
597 # download failures.
598 until debsnap --force -v $PKG || $ALLOWFAILURE ; do sleep 1; done
599 mkdir ${PKG}-salsa; cd ${PKG}-salsa
600 git init
601
602 # Specify branches to override any debian/gbp.conf file present in the
603 # source package.
604 gbp import-dscs --debian-branch=master --upstream-branch=upstream \
605 --pristine-tar ../source-$PKG/*.dsc
606
607 # Add Vcs pointing to Salsa Debian project (must be manually created
608 # and pushed to).
609 if ! grep -q ^Vcs- debian/control ; then
610 awk "BEGIN { s=1 } /^\$/ { if (s==1) { print \"Vcs-Browser: https://salsa.debian.org/debian/$PKG\"; print \"Vcs-Git: https://salsa.debian.org/debian/$PKG.git\" }; s=0 } { print }" < debian/control > debian/control.new && mv debian/control.new debian/control
611 git commit -m "Updated vcs in d/control to Salsa." debian/control
612 fi
613
614 # Tell gbp to enforce the use of pristine-tar.
615 inifile +inifile debian/gbp.conf +create +section DEFAULT +key pristine-tar +value True
616 git add debian/gbp.conf
617 git commit -m "Added d/gbp.conf to enforce the use of pristine-tar." debian/gbp.conf
618
619 # Update to latest Standards-Version.
620 SV="$(grep ^Standards-Version: debian/control|awk '{print $2}')"
621 if [ $SV_LATEST != $SV ]; then
622 sed -i "s/\(Standards-Version: \)\(.*\)/\1$SV_LATEST/" debian/control
623 git commit -m "Updated Standards-Version from $SV to $SV_LATEST." debian/control
624 fi
625
626 if grep -q pkg-config debian/control; then
627 sed -i s/pkg-config/pkgconf/ debian/control
628 git commit -m "Replaced obsolete pkg-config build dependency with pkgconf." debian/control
629 fi
630
631 if grep -q libncurses5-dev debian/control; then
632 sed -i s/libncurses5-dev/libncurses-dev/ debian/control
633 git commit -m "Replaced obsolete libncurses5-dev build dependency with libncurses-dev." debian/control
634 fi
635 </pre></blockquote>
636
637 Some times the debsnap script fail to download some of the versions.
638 In those cases I investigate, and if I decide the failing versions
639 will not be missed, I call it using ALLOWFAILURE=true to ignore the
640 problem and create the git repository anyway.</p>
641
642 <p>With the git repository in place, I do a test build (gbp
643 buildpackage) to ensure the build is actually working. If it does not
644 I pick a different package, or if the build failure is trivial to fix,
645 I fix it before continuing. At this stage I revisit
646 http://salsa.debian.org/debian and create the project under this group
647 for the package. I then follow the instructions to publish the local
648 git repository. Here is from a recent example:</p>
649
650 <blockquote><pre>
651 git remote add origin git@salsa.debian.org:debian/perl-byacc.git
652 git push --set-upstream origin master upstream pristine-tar
653 git push --tags
654 </pre></blockquote>
655
656 <p>With a working build, I have a look at the build rules if I want to
657 remove some more dust. I normally try to move to debhelper compat
658 level 13, which involves removing debian/compat and modifying
659 debian/control to build depend on debhelper-compat (=13). I also test
660 with 'Rules-Requires-Root: no' in debian/control and verify in
661 debian/rules that hardening is enabled, and include all of these if
662 the package still build. If it fail to build with level 13, I try
663 with 12, 11, 10 and so on until I find a level where it build, as I do
664 not want to spend a lot of time fixing build issues.</p>
665
666 <p>Some times, when I feel inspired, I make sure debian/copyright is
667 converted to the machine readable format, often by starting with
668 'debhelper -cc' and then cleaning up the autogenerated content until
669 it matches realities. If I feel like it, I might also clean up
670 non-dh-based debian/rules files to use the short style dh build
671 rules.</p>
672
673 <p>Once I have removed all the dust I care to process for the package,
674 I run 'gbp dch' to generate a debian/changelog entry based on the
675 commits done so far, run 'dch -r' to switch from 'UNRELEASED' to
676 'unstable' and get an editor to make sure the 'QA upload' marker is in
677 place and that all long commit descriptions are wrapped into sensible
678 lengths, run 'debcommit --release -a' to commit and tag the new
679 debian/changelog entry, run 'debuild -S' to build a source only
680 package, and 'dput ../perl-byacc_2.0-10_source.changes' to do the
681 upload. During the entire process, and many times per step, I run
682 'debuild' to verify the changes done still work. I also some times
683 verify the set of built files using 'find debian' to see if I can spot
684 any problems (like no file in usr/bin any more or empty package). I
685 also try to fix all lintian issues reported at the end of each
686 'debuild' run.</p>
687
688 <p>If I find Debian specific patches, I try to ensure their metadata
689 is fairly up to date and some times I even try to reach out to
690 upstream, to make the upstream project aware of the patches. Most of
691 my emails bounce, so the success rate is low. For projects with no
692 Homepage entry in debian/control I try to track down one, and for
693 packages with no debian/watch file I try to create one. But at least
694 for some of the packages I have been unable to find a functioning
695 upstream, and must skip both of these.</p>
696
697 <p>If I could handle ten percent in nine days, twenty people could
698 complete the rest in less then five days. I use approximately twenty
699 minutes per package, when I have twenty minutes spare time to spend.
700 Perhaps you got twenty minutes to spare too?</p>
701
702 <p>As usual, if you use Bitcoin and want to show your support of my
703 activities, please send Bitcoin donations to my address
704 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
705
706 <p><strong>Update 2024-05-04:</strong> There is
707 <a href="http://www.hungry.com/~pere/blog/images/2024-05-04-debian-snap-to-salsa.sh">an
708 updated edition of my migration script</a>, last updated
709 2024-05-04.</p>
710 </div>
711 <div class="tags">
712
713
714 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>.
715
716
717 </div>
718 </div>
719 <div class="padding"></div>
720
721 <div class="entry">
722 <div class="title"><a href="http://www.hungry.com/~pere/blog/RAID_status_from_LSI_Megaraid_controllers_in_Debian.html">RAID status from LSI Megaraid controllers in Debian</a></div>
723 <div class="date">17th April 2024</div>
724 <div class="body"><p>I am happy to report that
725 <a href="https://github.com/namiltd/megactl">the megactl package</a>,
726 useful to fetch RAID status when using the LSI Megaraid controller,
727 now is available in Debian. It passed NEW a few days ago, and is now
728 <a href="https://tracker.debian.org/pkg/megactl">available in
729 unstable</a>, and probably showing up in testing in a weeks time. The
730 new version should provide Appstream hardware mapping and should
731 integrate nicely with isenkram.</p>
732
733 <p>As usual, if you use Bitcoin and want to show your support of my
734 activities, please send Bitcoin donations to my address
735 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
736
737 </div>
738 <div class="tags">
739
740
741 Tags: <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/isenkram">isenkram</a>, <a href="http://www.hungry.com/~pere/blog/tags/raid">raid</a>.
742
743
744 </div>
745 </div>
746 <div class="padding"></div>
747
748 <div class="entry">
749 <div class="title"><a href="http://www.hungry.com/~pere/blog/Time_to_move_orphaned_Debian_packages_to_git.html">Time to move orphaned Debian packages to git</a></div>
750 <div class="date">14th April 2024</div>
751 <div class="body"><p>There are several packages in Debian without a associated git
752 repository with the packaging history. This is unfortunate and it
753 would be nice if more of these would do so. Quote a lot of these are
754 without a maintainer, ie listed as maintained by the
755 '<a href="https://qa.debian.org/developer.php?email=packages%40qa.debian.org">Debian
756 QA Group</a>' place holder. In fact, 438 packages have this property
757 according to UDD (<tt>SELECT source FROM sources WHERE release = 'sid'
758 AND (vcs_url ilike '%anonscm.debian.org%' OR vcs_browser ilike
759 '%anonscm.debian.org%' or vcs_url IS NULL OR vcs_browser IS NULL) AND
760 maintainer ilike '%packages@qa.debian.org%';</tt>). Such packages can
761 be updated without much coordination by any Debian developer, as they
762 are considered orphaned.</p>
763
764 <p>To try to improve the situation and reduce the number of packages
765 without associated git repository, I started a few days ago to search
766 out candiates and provide them with a git repository under the
767 'debian' collaborative Salsa project. I started with the packages
768 pointing to obsolete Alioth git repositories, and am now working my
769 way across the ones completely without git references. In addition to
770 updating the Vcs-* debian/control fields, I try to update
771 Standards-Version, debhelper compat level, simplify d/rules, switch to
772 Rules-Requires-Root: no and fix lintian issues reported. I only
773 implement those that are trivial to fix, to avoid spending too much
774 time on each orphaned package. So far my experience is that it take
775 aproximately 20 minutes to convert a package without any git
776 references, and a lot more for packages with existing git repositories
777 incompatible with git-buildpackages.</p>
778
779 <p>So far I have converted 10 packages, and I will keep going until I
780 run out of steam. As should be clear from the numbers, there is
781 enough packages remaining for more people to do the same without
782 stepping on each others toes. I find it useful to start by searching
783 for a git repo already on salsa, as I find that some times a git repo
784 has already been created, but no new version is uploaded to Debian
785 yet. In those cases I start with the existing git repository. I
786 convert to the git-buildpackage+pristine-tar workflow, and ensure a
787 debian/gbp.conf file with "pristine-tar=True" is added early, to avoid
788 uploading a orig.tar.gz with the wrong checksum by mistake. Did that
789 three times in the begin before I remembered my mistake.</p>
790
791 <p>So, if you are a Debian Developer and got some spare time, perhaps
792 considering migrating some orphaned packages to git?</p>
793
794 <p>As usual, if you use Bitcoin and want to show your support of my
795 activities, please send Bitcoin donations to my address
796 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
797 </div>
798 <div class="tags">
799
800
801 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>.
802
803
804 </div>
805 </div>
806 <div class="padding"></div>
807
808 <p style="text-align: right;"><a href="index.rss"><img src="http://www.hungry.com/~pere/blog/xml.gif" alt="RSS feed" width="36" height="14" /></a></p>
809 <div id="sidebar">
810
811
812
813 <h2>Archive</h2>
814 <ul>
815
816 <li>2025
817 <ul>
818
819 <li><a href="http://www.hungry.com/~pere/blog/archive/2025/01/">January (2)</a></li>
820
821 </ul></li>
822
823 <li>2024
824 <ul>
825
826 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/01/">January (1)</a></li>
827
828 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/02/">February (1)</a></li>
829
830 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/03/">March (2)</a></li>
831
832 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/04/">April (3)</a></li>
833
834 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/05/">May (1)</a></li>
835
836 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/06/">June (1)</a></li>
837
838 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/07/">July (2)</a></li>
839
840 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/12/">December (1)</a></li>
841
842 </ul></li>
843
844 <li>2023
845 <ul>
846
847 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/01/">January (3)</a></li>
848
849 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/02/">February (1)</a></li>
850
851 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/04/">April (2)</a></li>
852
853 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/05/">May (3)</a></li>
854
855 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/06/">June (1)</a></li>
856
857 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/08/">August (1)</a></li>
858
859 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/09/">September (1)</a></li>
860
861 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/10/">October (1)</a></li>
862
863 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/11/">November (4)</a></li>
864
865 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/12/">December (1)</a></li>
866
867 </ul></li>
868
869 <li>2022
870 <ul>
871
872 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/02/">February (1)</a></li>
873
874 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/03/">March (3)</a></li>
875
876 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/04/">April (2)</a></li>
877
878 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/06/">June (2)</a></li>
879
880 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/07/">July (1)</a></li>
881
882 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/09/">September (1)</a></li>
883
884 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/10/">October (1)</a></li>
885
886 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/12/">December (1)</a></li>
887
888 </ul></li>
889
890 <li>2021
891 <ul>
892
893 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/01/">January (2)</a></li>
894
895 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/02/">February (1)</a></li>
896
897 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/05/">May (1)</a></li>
898
899 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/06/">June (1)</a></li>
900
901 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/07/">July (3)</a></li>
902
903 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/08/">August (1)</a></li>
904
905 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/09/">September (1)</a></li>
906
907 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/10/">October (1)</a></li>
908
909 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/12/">December (1)</a></li>
910
911 </ul></li>
912
913 <li>2020
914 <ul>
915
916 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/02/">February (2)</a></li>
917
918 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/03/">March (2)</a></li>
919
920 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/04/">April (2)</a></li>
921
922 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/05/">May (3)</a></li>
923
924 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/06/">June (2)</a></li>
925
926 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/07/">July (1)</a></li>
927
928 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/09/">September (1)</a></li>
929
930 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/10/">October (1)</a></li>
931
932 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/11/">November (1)</a></li>
933
934 </ul></li>
935
936 <li>2019
937 <ul>
938
939 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/01/">January (4)</a></li>
940
941 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/02/">February (3)</a></li>
942
943 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/03/">March (3)</a></li>
944
945 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/05/">May (2)</a></li>
946
947 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/06/">June (5)</a></li>
948
949 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/07/">July (2)</a></li>
950
951 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/08/">August (1)</a></li>
952
953 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/09/">September (1)</a></li>
954
955 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/11/">November (1)</a></li>
956
957 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/12/">December (4)</a></li>
958
959 </ul></li>
960
961 <li>2018
962 <ul>
963
964 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/01/">January (1)</a></li>
965
966 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/02/">February (5)</a></li>
967
968 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/03/">March (5)</a></li>
969
970 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/04/">April (3)</a></li>
971
972 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/06/">June (2)</a></li>
973
974 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/07/">July (5)</a></li>
975
976 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/08/">August (3)</a></li>
977
978 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/09/">September (3)</a></li>
979
980 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/10/">October (5)</a></li>
981
982 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/11/">November (2)</a></li>
983
984 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/12/">December (4)</a></li>
985
986 </ul></li>
987
988 <li>2017
989 <ul>
990
991 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/01/">January (4)</a></li>
992
993 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/02/">February (3)</a></li>
994
995 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/03/">March (5)</a></li>
996
997 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/04/">April (2)</a></li>
998
999 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/06/">June (5)</a></li>
1000
1001 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/07/">July (1)</a></li>
1002
1003 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/08/">August (1)</a></li>
1004
1005 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/09/">September (3)</a></li>
1006
1007 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/10/">October (5)</a></li>
1008
1009 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/11/">November (3)</a></li>
1010
1011 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/12/">December (4)</a></li>
1012
1013 </ul></li>
1014
1015 <li>2016
1016 <ul>
1017
1018 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/01/">January (3)</a></li>
1019
1020 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/02/">February (2)</a></li>
1021
1022 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/03/">March (3)</a></li>
1023
1024 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/04/">April (8)</a></li>
1025
1026 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/05/">May (8)</a></li>
1027
1028 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/06/">June (2)</a></li>
1029
1030 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/07/">July (2)</a></li>
1031
1032 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/08/">August (5)</a></li>
1033
1034 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/09/">September (2)</a></li>
1035
1036 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/10/">October (3)</a></li>
1037
1038 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/11/">November (8)</a></li>
1039
1040 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/12/">December (5)</a></li>
1041
1042 </ul></li>
1043
1044 <li>2015
1045 <ul>
1046
1047 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/01/">January (7)</a></li>
1048
1049 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/02/">February (6)</a></li>
1050
1051 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/03/">March (1)</a></li>
1052
1053 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/04/">April (4)</a></li>
1054
1055 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/05/">May (3)</a></li>
1056
1057 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/06/">June (4)</a></li>
1058
1059 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/07/">July (6)</a></li>
1060
1061 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/08/">August (2)</a></li>
1062
1063 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/09/">September (2)</a></li>
1064
1065 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/10/">October (9)</a></li>
1066
1067 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/11/">November (6)</a></li>
1068
1069 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/12/">December (3)</a></li>
1070
1071 </ul></li>
1072
1073 <li>2014
1074 <ul>
1075
1076 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/01/">January (2)</a></li>
1077
1078 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/02/">February (3)</a></li>
1079
1080 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/03/">March (8)</a></li>
1081
1082 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/04/">April (7)</a></li>
1083
1084 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/05/">May (1)</a></li>
1085
1086 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/06/">June (2)</a></li>
1087
1088 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/07/">July (2)</a></li>
1089
1090 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/08/">August (2)</a></li>
1091
1092 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/09/">September (5)</a></li>
1093
1094 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/10/">October (6)</a></li>
1095
1096 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/11/">November (3)</a></li>
1097
1098 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/12/">December (5)</a></li>
1099
1100 </ul></li>
1101
1102 <li>2013
1103 <ul>
1104
1105 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/01/">January (11)</a></li>
1106
1107 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/02/">February (9)</a></li>
1108
1109 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/03/">March (9)</a></li>
1110
1111 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/04/">April (6)</a></li>
1112
1113 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/05/">May (9)</a></li>
1114
1115 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/06/">June (10)</a></li>
1116
1117 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/07/">July (7)</a></li>
1118
1119 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/08/">August (3)</a></li>
1120
1121 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/09/">September (5)</a></li>
1122
1123 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/10/">October (7)</a></li>
1124
1125 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/11/">November (9)</a></li>
1126
1127 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/12/">December (3)</a></li>
1128
1129 </ul></li>
1130
1131 <li>2012
1132 <ul>
1133
1134 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/01/">January (7)</a></li>
1135
1136 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/02/">February (10)</a></li>
1137
1138 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/03/">March (17)</a></li>
1139
1140 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/04/">April (12)</a></li>
1141
1142 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/05/">May (12)</a></li>
1143
1144 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/06/">June (20)</a></li>
1145
1146 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/07/">July (17)</a></li>
1147
1148 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/08/">August (6)</a></li>
1149
1150 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/09/">September (9)</a></li>
1151
1152 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/10/">October (17)</a></li>
1153
1154 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/11/">November (10)</a></li>
1155
1156 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/12/">December (7)</a></li>
1157
1158 </ul></li>
1159
1160 <li>2011
1161 <ul>
1162
1163 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/01/">January (16)</a></li>
1164
1165 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/02/">February (6)</a></li>
1166
1167 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/03/">March (6)</a></li>
1168
1169 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/04/">April (7)</a></li>
1170
1171 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/05/">May (3)</a></li>
1172
1173 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/06/">June (2)</a></li>
1174
1175 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/07/">July (7)</a></li>
1176
1177 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/08/">August (6)</a></li>
1178
1179 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/09/">September (4)</a></li>
1180
1181 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/10/">October (2)</a></li>
1182
1183 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/11/">November (3)</a></li>
1184
1185 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/12/">December (1)</a></li>
1186
1187 </ul></li>
1188
1189 <li>2010
1190 <ul>
1191
1192 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/01/">January (2)</a></li>
1193
1194 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/02/">February (1)</a></li>
1195
1196 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/03/">March (3)</a></li>
1197
1198 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/04/">April (3)</a></li>
1199
1200 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/05/">May (9)</a></li>
1201
1202 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/06/">June (14)</a></li>
1203
1204 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/07/">July (12)</a></li>
1205
1206 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/08/">August (13)</a></li>
1207
1208 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/09/">September (7)</a></li>
1209
1210 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/10/">October (9)</a></li>
1211
1212 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/11/">November (13)</a></li>
1213
1214 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/12/">December (12)</a></li>
1215
1216 </ul></li>
1217
1218 <li>2009
1219 <ul>
1220
1221 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/01/">January (8)</a></li>
1222
1223 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/02/">February (8)</a></li>
1224
1225 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/03/">March (12)</a></li>
1226
1227 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/04/">April (10)</a></li>
1228
1229 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/05/">May (9)</a></li>
1230
1231 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/06/">June (3)</a></li>
1232
1233 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/07/">July (4)</a></li>
1234
1235 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/08/">August (3)</a></li>
1236
1237 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/09/">September (1)</a></li>
1238
1239 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/10/">October (2)</a></li>
1240
1241 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/11/">November (3)</a></li>
1242
1243 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/12/">December (3)</a></li>
1244
1245 </ul></li>
1246
1247 <li>2008
1248 <ul>
1249
1250 <li><a href="http://www.hungry.com/~pere/blog/archive/2008/11/">November (5)</a></li>
1251
1252 <li><a href="http://www.hungry.com/~pere/blog/archive/2008/12/">December (7)</a></li>
1253
1254 </ul></li>
1255
1256 </ul>
1257
1258
1259
1260 <h2>Tags</h2>
1261 <ul>
1262
1263 <li><a href="http://www.hungry.com/~pere/blog/tags/3d-printer">3d-printer (19)</a></li>
1264
1265 <li><a href="http://www.hungry.com/~pere/blog/tags/amiga">amiga (1)</a></li>
1266
1267 <li><a href="http://www.hungry.com/~pere/blog/tags/aros">aros (1)</a></li>
1268
1269 <li><a href="http://www.hungry.com/~pere/blog/tags/bankid">bankid (4)</a></li>
1270
1271 <li><a href="http://www.hungry.com/~pere/blog/tags/betalkontant">betalkontant (9)</a></li>
1272
1273 <li><a href="http://www.hungry.com/~pere/blog/tags/bitcoin">bitcoin (13)</a></li>
1274
1275 <li><a href="http://www.hungry.com/~pere/blog/tags/bootsystem">bootsystem (17)</a></li>
1276
1277 <li><a href="http://www.hungry.com/~pere/blog/tags/bsa">bsa (2)</a></li>
1278
1279 <li><a href="http://www.hungry.com/~pere/blog/tags/chrpath">chrpath (3)</a></li>
1280
1281 <li><a href="http://www.hungry.com/~pere/blog/tags/debian">debian (205)</a></li>
1282
1283 <li><a href="http://www.hungry.com/~pere/blog/tags/debian edu">debian edu (159)</a></li>
1284
1285 <li><a href="http://www.hungry.com/~pere/blog/tags/debian-handbook">debian-handbook (9)</a></li>
1286
1287 <li><a href="http://www.hungry.com/~pere/blog/tags/digistan">digistan (11)</a></li>
1288
1289 <li><a href="http://www.hungry.com/~pere/blog/tags/dld">dld (18)</a></li>
1290
1291 <li><a href="http://www.hungry.com/~pere/blog/tags/docbook">docbook (33)</a></li>
1292
1293 <li><a href="http://www.hungry.com/~pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1294
1295 <li><a href="http://www.hungry.com/~pere/blog/tags/english">english (467)</a></li>
1296
1297 <li><a href="http://www.hungry.com/~pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
1298
1299 <li><a href="http://www.hungry.com/~pere/blog/tags/fildeling">fildeling (14)</a></li>
1300
1301 <li><a href="http://www.hungry.com/~pere/blog/tags/freeculture">freeculture (34)</a></li>
1302
1303 <li><a href="http://www.hungry.com/~pere/blog/tags/freedombox">freedombox (9)</a></li>
1304
1305 <li><a href="http://www.hungry.com/~pere/blog/tags/frikanalen">frikanalen (20)</a></li>
1306
1307 <li><a href="http://www.hungry.com/~pere/blog/tags/h264">h264 (20)</a></li>
1308
1309 <li><a href="http://www.hungry.com/~pere/blog/tags/intervju">intervju (43)</a></li>
1310
1311 <li><a href="http://www.hungry.com/~pere/blog/tags/isenkram">isenkram (19)</a></li>
1312
1313 <li><a href="http://www.hungry.com/~pere/blog/tags/kart">kart (23)</a></li>
1314
1315 <li><a href="http://www.hungry.com/~pere/blog/tags/kodi">kodi (6)</a></li>
1316
1317 <li><a href="http://www.hungry.com/~pere/blog/tags/ldap">ldap (9)</a></li>
1318
1319 <li><a href="http://www.hungry.com/~pere/blog/tags/lego">lego (5)</a></li>
1320
1321 <li><a href="http://www.hungry.com/~pere/blog/tags/lenker">lenker (8)</a></li>
1322
1323 <li><a href="http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc (8)</a></li>
1324
1325 <li><a href="http://www.hungry.com/~pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1326
1327 <li><a href="http://www.hungry.com/~pere/blog/tags/ltsp">ltsp (1)</a></li>
1328
1329 <li><a href="http://www.hungry.com/~pere/blog/tags/madewithcc">madewithcc (3)</a></li>
1330
1331 <li><a href="http://www.hungry.com/~pere/blog/tags/mesh network">mesh network (8)</a></li>
1332
1333 <li><a href="http://www.hungry.com/~pere/blog/tags/multimedia">multimedia (46)</a></li>
1334
1335 <li><a href="http://www.hungry.com/~pere/blog/tags/nice free software">nice free software (15)</a></li>
1336
1337 <li><a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5 (25)</a></li>
1338
1339 <li><a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk (325)</a></li>
1340
1341 <li><a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug (199)</a></li>
1342
1343 <li><a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn (41)</a></li>
1344
1345 <li><a href="http://www.hungry.com/~pere/blog/tags/open311">open311 (2)</a></li>
1346
1347 <li><a href="http://www.hungry.com/~pere/blog/tags/opensnitch">opensnitch (4)</a></li>
1348
1349 <li><a href="http://www.hungry.com/~pere/blog/tags/opphavsrett">opphavsrett (76)</a></li>
1350
1351 <li><a href="http://www.hungry.com/~pere/blog/tags/personvern">personvern (114)</a></li>
1352
1353 <li><a href="http://www.hungry.com/~pere/blog/tags/raid">raid (4)</a></li>
1354
1355 <li><a href="http://www.hungry.com/~pere/blog/tags/reactos">reactos (1)</a></li>
1356
1357 <li><a href="http://www.hungry.com/~pere/blog/tags/reprap">reprap (11)</a></li>
1358
1359 <li><a href="http://www.hungry.com/~pere/blog/tags/rfid">rfid (3)</a></li>
1360
1361 <li><a href="http://www.hungry.com/~pere/blog/tags/robot">robot (17)</a></li>
1362
1363 <li><a href="http://www.hungry.com/~pere/blog/tags/rss">rss (1)</a></li>
1364
1365 <li><a href="http://www.hungry.com/~pere/blog/tags/ruter">ruter (7)</a></li>
1366
1367 <li><a href="http://www.hungry.com/~pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1368
1369 <li><a href="http://www.hungry.com/~pere/blog/tags/sikkerhet">sikkerhet (60)</a></li>
1370
1371 <li><a href="http://www.hungry.com/~pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1372
1373 <li><a href="http://www.hungry.com/~pere/blog/tags/skepsis">skepsis (5)</a></li>
1374
1375 <li><a href="http://www.hungry.com/~pere/blog/tags/standard">standard (76)</a></li>
1376
1377 <li><a href="http://www.hungry.com/~pere/blog/tags/stavekontroll">stavekontroll (7)</a></li>
1378
1379 <li><a href="http://www.hungry.com/~pere/blog/tags/stortinget">stortinget (14)</a></li>
1380
1381 <li><a href="http://www.hungry.com/~pere/blog/tags/surveillance">surveillance (65)</a></li>
1382
1383 <li><a href="http://www.hungry.com/~pere/blog/tags/sysadmin">sysadmin (5)</a></li>
1384
1385 <li><a href="http://www.hungry.com/~pere/blog/tags/usenix">usenix (2)</a></li>
1386
1387 <li><a href="http://www.hungry.com/~pere/blog/tags/valg">valg (9)</a></li>
1388
1389 <li><a href="http://www.hungry.com/~pere/blog/tags/verkidetfri">verkidetfri (22)</a></li>
1390
1391 <li><a href="http://www.hungry.com/~pere/blog/tags/video">video (80)</a></li>
1392
1393 <li><a href="http://www.hungry.com/~pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1394
1395 <li><a href="http://www.hungry.com/~pere/blog/tags/web">web (42)</a></li>
1396
1397 </ul>
1398
1399
1400 </div>
1401 <p style="text-align: right">
1402 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1403 </p>
1404
1405 </body>
1406 </html>