]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
Generated.
[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="https://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="https://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="https://people.skolelinux.org/pere/blog/index.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="https://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
15
16 </h1>
17
18 </div>
19
20
21
22 <div class="entry">
23 <div class="title"><a href="https://people.skolelinux.org/pere/blog/Test_framework_for_DocBook_processors___formatters.html">Test framework for DocBook processors / formatters</a></div>
24 <div class="date"> 5th November 2023</div>
25 <div class="body"><p>All the books I have published so far has been using
26 <a href="https://docbook.org/">DocBook</a> somewhere in the process.
27 For the first book, the source format was DocBook, while for every
28 later book it was an intermediate format used as the stepping stone to
29 be able to present the same manuscript in several formats, on paper,
30 as ebook in ePub format, as a HTML page and as a PDF file either for
31 paper production or for Internet consumption. This is made possible
32 with a wide variety of free software tools with DocBook support in
33 Debian. The source format of later books have been docx via rst,
34 Markdown, Filemaker and Asciidoc, and for all of these I was able to
35 generate a suitable DocBook file for further processing using pandoc,
36 a2x and asciidoctor, as well as rendering using
37 <a href="https://tracker.debian.org/pkg/xmlto">xmlto</a>,
38 <a href="https://tracker.debian.org/pkg/dbtoepub">dbtoepub</a>,
39 <a href="https://tracker.debian.org/pkg/dblatex">dblatex</a>,
40 <a href="https://tracker.debian.org/pkg/dblatex">docbook-xsl</a> and
41 <a href="https://tracker.debian.org/pkg/fop">fop</a>.</p>
42
43 <p>Most of the <a href="http://www.hungry.com/~pere/publisher/">books I
44 have published</a> are translated books, with English as the source
45 language. The use of
46 <a href="https://tracker.debian.org/pkg/po4a">po4a</a> to
47 handle translations using the gettext PO format has been a blessing,
48 but publishing translated books had triggered the need to ensure the
49 DocBook tools handle relevant languages correctly. For every new
50 language I have published, I had to submit patches dblatex, dbtoepub
51 and docbook-xsl fixing incorrect language and country specific issues
52 in the framework themselves. Typically this has been missing keywords
53 like 'figure' or sort ordering of index entries. After a while it
54 became tiresome to only discover issues like this by accident, and I
55 decided to write a DocBook "test framework" exercising various
56 features of DocBook and allowing me to see all features exercised for
57 a given language. It consist of a set of DocBook files, a version 4
58 book, a version 5 book, a v4 book set, a v4 selection of problematic
59 tables, one v4 testing sidefloat and finally one v4 testing a book of
60 articles. The DocBook files are accompanied with a set of build rules
61 for building PDF using dblatex and docbook-xsl/fop, HTML using xmlto
62 or docbook-xsl and epub using dbtoepub. The result is a set of files
63 visualizing footnotes, indexes, table of content list, figures,
64 formulas and other DocBook features, allowing for a quick review on
65 the completeness of the given locale settings. To build with a
66 different language setting, all one need to do is edit the lang= value
67 in the .xml file to pick a different ISO 639 code value and run
68 'make'.</p>
69
70 <p>The <a href="https://codeberg.org/pere/docbook-example/">test framework
71 source code</a> is available from Codeberg, and a generated set of
72 presentations of the various examples is available as Codeberg static
73 web pages at
74 <a href="https://pere.codeberg.page/docbook-example/">https://pere.codeberg.page/docbook-example/</a>.
75 Using this test framework I have been able to discover and report
76 several bugs and missing features in various tools, and got a lot of
77 them fixed. For example I got Northern Sami keywords added to both
78 docbook-xsl and dblatex, fixed several typos in Norwegian bokmål and
79 Norwegian Nynorsk, support for non-ascii title IDs added to pandoc,
80 Norwegian index sorting support fixed in xindy and initial Norwegian
81 Bokmål support added to dblatex. Some issues still remains, though.
82 Default index sorting rules are still broken in several tools, so the
83 Norwegian letters æ, ø and å are more often than not sorted properly
84 in the book index.</p>
85
86 <p>The test framework recently received some more polish, as part of
87 publishing my latest book. This book contained a lot of fairly
88 complex tables, which exposed bugs in some of the tools. This made me
89 add a new test file with various tables, as well as spend some time to
90 brush up the build rules. My goal is for the test framework to
91 exercise all DocBook features to make it easier to see which features
92 work with different processors, and hopefully get them all to support
93 the full set of DocBook features. Feel free to send patches to extend
94 the test set, and test it with your favorite DocBook processor.
95 Please visit these two URLs to learn more:</p>
96
97 <ul>
98 <li><a href="https://codeberg.org/pere/docbook-example/">https://codeberg.org/pere/docbook-example/</a></li>
99 <li><a href="https://pere.codeberg.page/docbook-example/">https://pere.codeberg.page/docbook-example/</a></li>
100 </ul>
101
102 <p>If you want to learn more on Docbook and translations, I recommend
103 having a look at the <a href="https://docbook.org/">the DocBook
104 web site</a>,
105 <a href="https://doccookbook.sourceforge.net/html/en/">the DoCookBook
106 site<a/> and my earlier blog post on
107 <a href="https://people.skolelinux.org/pere/blog/From_English_wiki_to_translated_PDF_and_epub_via_Docbook.html">how
108 the Skolelinux project process and translate documentation</a>, a talk I gave earlier this year on
109 <a href="https://www.nuug.no/aktiviteter/20230314-oversetting-og-publisering-av-b%c3%b8ker-med-fri-programvare/">how
110 to translate and publish books using free software</a> (Norwegian
111 only).</p>
112
113 <!--
114
115 https://github.com/docbook/xslt10-stylesheets/issues/205 (docbook-xsl: sme support)
116 https://bugs.debian.org/968437 (xindy: index sorting rules for nb/nn)
117 https://bugs.debian.org/856123 (pandoc: markdown to docbook with non-english titles)
118 https://bugs.debian.org/864813 (dblatex: missing nb words)
119 https://bugs.debian.org/756386 (dblatex: index sorting rules for nb/nn)
120 https://bugs.debian.org/796871 (dbtoepub: index sorting rules for nb/nn)
121 https://bugs.debian.org/792616 (dblatex: PDF metadata)
122 https://bugs.debian.org/686908 (docbook-xsl: index sorting rules for nb/nn)
123 https://sourceforge.net/tracker/?func=detail&atid=373747&aid=3556630&group_id=21935 (docbook-xsl: nb/nn support)
124 https://bugs.debian.org/684391 (dblatex: initial nb support)
125
126 -->
127
128 <p>As usual, if you use Bitcoin and want to show your support of my
129 activities, please send Bitcoin donations to my address
130 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
131 </div>
132 <div class="tags">
133
134
135 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>.
136
137
138 </div>
139 </div>
140 <div class="padding"></div>
141
142 <div class="entry">
143 <div class="title"><a href="https://people.skolelinux.org/pere/blog/_Virkninger_av_angrefristloven___hovedfagsoppgaven_som_fikk_endret_en_lov.html">«Virkninger av angrefristloven», hovedfagsoppgaven som fikk endret en lov</a></div>
144 <div class="date">29th October 2023</div>
145 <div class="body"><img src="http://people.skolelinux.org/pere/blog/images/2023-10-29-bok-angrefrist.svg" width="20%" align="center"></a>
146
147 <p>I 1979 leverte Ole-Erik Yrvin en hovedfagsoppgave for Cand. Scient.
148 ved Institutt for sosiologi på Universitetet i Oslo på oppdrag fra
149 Forbruker- og administrasjonsdepartementet. Oppgaven evaluerte
150 Angrefristloven fra 1972, og det han oppdaget førte til at loven ble
151 endret fire år senere.</p>
152
153 <p>Jeg har kjent Ole-Erik en stund, og synes det var trist at hans
154 oppgave ikke lenger er tilgjengelig, hverken fra oppdragsgiver
155 eller fra universitetet. Hans forsøk på å få den avbildet og lagt
156 ut på Internett har vist seg fånyttes, så derfor tilbød jeg meg for
157 en stund tilbake å publisere den og gjøre den tilgjengelig med
158 fribruksvilkår på Internett. Det er nå klart, og hovedfagsoppgaven
159 er tilgjengelig blant annet via <a
160 href="http://www.hungry.com/~pere/publisher/">min liste over
161 publiserte bøker</a>, både som nettside,
162 <a href="https://www.lulu.com/search?contributor=Ole-Erik+Yrvin">digital
163 bok i ePub-format og på papir fra lulu.com</a>. Jeg regner med at
164 den også vil dukke opp på nettbokhandlere i løpet av en måned eller
165 to.</p>
166
167 <p>Alle tabeller og figurer er gjenskapt for bedre lesbarhet, noen
168 skrivefeil rettet opp og mange referanser har fått flere detaljer
169 som ISBN-nummer og DOI-referanse. Selv om jeg ikke regner med at
170 dette blir en kioskvelter, så håper jeg denne nye utgaven kan komme
171 fremtiden til glede.</p>
172
173 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
174 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
175 til min adresse
176 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>. Merk,
177 betaling med bitcoin er ikke anonymt. :)</p>
178 </div>
179 <div class="tags">
180
181
182 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/docbook">docbook</a>, <a href="https://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>.
183
184
185 </div>
186 </div>
187 <div class="padding"></div>
188
189 <div class="entry">
190 <div class="title"><a href="https://people.skolelinux.org/pere/blog/_underordnet_tjenestemann_blir_inhabil_fordi_en_overordnet_er_inhabil__.html">«underordnet tjenestemann blir inhabil fordi en overordnet er inhabil».</a></div>
191 <div class="date"> 7th September 2023</div>
192 <div class="body"><p>Medlemmene av Norges regjering har demonstert de siste månedene at
193 habilitetsvureringer ikke er deres sterke side og det gjelder både
194 Arbeiderpartiets og Senterpartiers representater. Det er heldigvis
195 enklere i det private, da inhabilitetsreglene kun gjelder de som
196 jobber for folket, ikke seg selv. Sist ut er utenriksminister
197 Huitfeldt. I går kom nyheten om at
198 <a href="https://www.nrk.no/nyheter/riksadvokaten_-okokrim-nestsjef-kan-behandle-huitfeldt-saken-1.16545162">Riksadvokaten
199 har konkludert med at nestsjefen i Økokrim kan behandle sak om
200 habilitet og innsidekunnskap</a> for Huitfeldt, på tross av at hans
201 overordnede, sjefen for Økokrim, har meldt seg inhabil i saken. Dette
202 er litt rart. I veilednigen
203 «<a href="https://www.regjeringen.no/globalassets/upload/krd/vedlegg/komm/veiledere/habilitet_i_kommuner_og_fylkeskommuner.pdf">Habilitet
204 i kommuner og fylkeskommuner</a>» av Kommunal- og regionaldepartementet
205 forteller de hva som gjelder, riktig nok gjelder veiledningen ikke for
206 Økokrim som jo ikke er kommune eller fylkeskommune, men jeg får ikke
207 inntrykk av at dette er regler som kun gjelder for kommune og
208 fylkeskommune:
209
210 <blockquote>
211 <p>«<strong>2.1 Oversikt over inhabilitetsgrunnlagene</strong>
212
213 <p>De alminnelige reglene om inhabilitet for den offentlige
214 forvaltningen er gitt i
215 <a href="https://lovdata.no/dokument/NL/lov/1967-02-10/KAPITTEL_2#KAPITTEL_2">forvaltningsloven
216 §§ 6 til 10</a>. Forvaltningslovens hovedregel om inhabilitet framgår
217 av § 6. Her er det gitt tre ulike grunnlag som kan føre til at en
218 tjenestemann eller folkevalgt blir inhabil. I § 6 første ledd
219 bokstavene a til e er det oppstilt konkrete tilknytningsforhold mellom
220 tjenestemannen og saken eller sakens parter som automatisk fører til
221 inhabilitet. Annet ledd oppstiller en skjønnsmessig regel om at
222 tjenestemannen også kan bli inhabil etter en konkret vurdering av
223 inhabilitetsspørsmålet, der en lang rekke momenter kan være
224 relevante. I tredje ledd er det regler om såkalt avledet
225 inhabilitet. Det vil si at en underordnet tjenestemann blir inhabil
226 fordi en overordnet er inhabil.»</p>
227 </blockquote>
228
229 <p>Loven sier ganske enkelt «Er den overordnede tjenestemann ugild,
230 kan avgjørelse i saken heller ikke treffes av en direkte underordnet
231 tjenestemann i samme forvaltningsorgan.» Jeg antar tanken er at en
232 underordnet vil stå i fare for å tilpasse sine konklusjoner til det
233 overordnet vil ha fordel av, for å fortsatt ha et godt forhold til sin
234 overordnede. Men jeg er ikke jurist og forstår nok ikke kompliserte
235 juridiske vurderinger. For å sitere «Kamerat Napoleon» av George
236 Orwell: «Alle dyr er like, men noen dyr er likere enn andre».
237 </div>
238 <div class="tags">
239
240
241 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>.
242
243
244 </div>
245 </div>
246 <div class="padding"></div>
247
248 <div class="entry">
249 <div class="title"><a href="https://people.skolelinux.org/pere/blog/Invidious_add_on_for_Kodi_20.html">Invidious add-on for Kodi 20</a></div>
250 <div class="date">10th August 2023</div>
251 <div class="body"><p>I still enjoy <a href="https://kodi.tv/">Kodi</a> and
252 <a href="https://libreelec.tv/">LibreELEC</a> as my multimedia center
253 at home. Sadly two of the services I really would like to use from
254 within Kodi are not easily available. The most wanted add-on would be
255 one making <a href="https://archive.org/">The Internet Archive</a>
256 available, and it has
257 <a href="https://kodi.wiki/view/Add-on:Internet_Archive">not been
258 working</a> for many years. The second most wanted add-on is one
259 using <a href="https://invidious.io/">the Invidious privacy enhanced
260 Youtube frontent</a>. A plugin for this has been partly working, but
261 not been kept up to date in the Kodi add-on repository, and its
262 upstream seem to have given it up in April this year, when the git
263 repository was closed. A few days ago I got tired of this sad state
264 of affairs and decided to
265 <a href="https://github.com/petterreinholdtsen/kodi-invidious-plugin">have
266 a go at improving the Invidious add-on</a>. As
267 <a href="https://github.com/iv-org/invidious/issues/3872">Google has
268 already attacked</a> the Invidious concept, so it need all the support
269 if can get. My small contribution here is to improve the service
270 status on Kodi.</p>
271
272 <p>I added support to the Invidious add-on for automatically picking a
273 working Invidious instance, instead of requiring the user to specify
274 the URL to a specific instance after installation. I also had a look
275 at the set of patches floating around in the various forks on github,
276 and decided to clean up at least some of the features I liked and
277 integrate them into my new release branch. Now the plugin can handle
278 channel and short video items in search results. Earlier it could
279 only handle single video instances in the search response. I also
280 brushed up the set of metadata displayed a bit, but hope I can figure
281 out how to get more relevant metadata displayed.</p>
282
283 <p>Because I only use Kodi 20 myself, I only test on version 20 and am
284 only motivated to ensure version 20 is working. Because of API changes
285 between version 19 and 20, I suspect it will fail with earlier Kodi
286 versions.</p>
287
288 <p>I already
289 <a href="https://github.com/xbmc/repo-plugins/pull/4363">asked to have
290 the add-on added</a> to the official Kodi 20 repository, and is
291 waiting to heard back from the repo maintainers.</p>
292
293 <p>As usual, if you use Bitcoin and want to show your support of my
294 activities, please send Bitcoin donations to my address
295 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
296 </div>
297 <div class="tags">
298
299
300 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/kodi">kodi</a>, <a href="https://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="https://people.skolelinux.org/pere/blog/tags/video">video</a>.
301
302
303 </div>
304 </div>
305 <div class="padding"></div>
306
307 <div class="entry">
308 <div class="title"><a href="https://people.skolelinux.org/pere/blog/What_did_I_learn_from_OpenSnitch_this_summer_.html">What did I learn from OpenSnitch this summer?</a></div>
309 <div class="date">11th June 2023</div>
310 <div class="body"><p>With yesterdays
311 <a href="https://www.debian.org/News/2023/20230610">release of Debian
312 12 Bookworm</a>, I am happy to know the
313 <a href="https://tracker.debian.org/pkg/opensnitch">the interactive
314 application firewall OpenSnitch</a> is available for a wider audience.
315 I have been running it for a few weeks now, and have been surprised
316 about some of the programs connecting to the Internet. Some programs
317 are obviously calling out from my machine, like the NTP network based
318 clock adjusting system and Tor to reach other Tor clients, but others
319 were more dubious. For example, the KDE Window manager try to look up
320 the host name in DNS, for no apparent reason, but if this lookup is
321 blocked the KDE desktop get periodically stuck when I use it. Another
322 surprise was how much Firefox call home directly to mozilla.com,
323 mozilla.net and googleapis.com, to mention a few, when I visit other
324 web pages. This direct connection happen even if I told Firefox to
325 always use a proxy, and the proxy setting is ignored for this traffic.
326 Other surprising connections come from audacity and dirmngr (I do not
327 use Gnome). It took some trial and error to get a good default set of
328 permissions. Without it, I would get popups asking for permissions at
329 any time, also the most inconvenient ones where I am in the middle of
330 a time sensitive gaming session.</p>
331
332 <p>I suspect some application developers should rethink when then need
333 to use network connections or DNS lookups, and recommend testing
334 OpenSnitch (only <tt>apt install opensnitch</tt> away in Debian
335 Bookworm) to locate and report any surprising Internet connections on
336 your desktop machine.</p>
337
338 <p>At the moment the upstream developer and Debian package maintainer
339 is working on making the system more reliable in Debian, by enabling
340 the eBPF kernel module to track processes and connections instead of
341 depending in content in /proc/. This should enter unstable fairly
342 soon.</p>
343
344 <p>As usual, if you use Bitcoin and want to show your support of my
345 activities, please send Bitcoin donations to my address
346 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
347
348 <p><strong>Update 2023-06-12</strong>: I got a tip about
349 <a href="https://wiki.debian.org/PrivacyIssues">a list of privacy
350 issues in Free Software</a> and the
351 <a href="irc://irc.debian.org/%23debian-privacy">#debian-privacy IRC
352 channel</a> discussing these topics.</p>
353
354 </div>
355 <div class="tags">
356
357
358 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/opensnitch">opensnitch</a>.
359
360
361 </div>
362 </div>
363 <div class="padding"></div>
364
365 <div class="entry">
366 <div class="title"><a href="https://people.skolelinux.org/pere/blog/wmbusmeters__parse_data_from_your_utility_meter___nice_free_software.html">wmbusmeters, parse data from your utility meter - nice free software</a></div>
367 <div class="date">19th May 2023</div>
368 <div class="body"><p>There is a European standard for reading utility meters like water,
369 gas, electricity or heat distribution meters. The
370 <a href="https://en.wikipedia.org/wiki/Meter-Bus">Meter-Bus standard
371 (EN 13757-2, EN 13757-3 and EN 137574)</a> provide a cross vendor way
372 to talk to and collect meter data. I ran into this standard when I
373 wanted to monitor some heat distribution meters, and managed to find
374 free software that could do the job. The meters in question broadcast
375 encrypted messages with meter information via radio, and the hardest
376 part was to track down the encryption keys from the vendor. With this
377 in place I could set up a MQTT gateway to submit the meter data for
378 graphing.</p>
379
380 <p>The free software systems in question,
381 <a href="https://tracker.debian.org/pkg/rtl-wmbus">rtl-wmbus</a> to
382 read the messages from a software defined radio, and
383 <a href="https://tracker.debian.org/pkg/wmbusmeters">wmbusmeters</a> to
384 decrypt and decode the content of the messages, is working very well
385 and allowe me to get frequent updates from my meters. I got in touch
386 with upstream last year to see if there was any interest in publishing
387 the packages via Debian. I was very happy to learn that Fredrik
388 Öhrström volunteered to maintain the packages, and I have since
389 assisted him in getting Debian package build rules in place as well as
390 sponsoring the packages into the Debian archive. Sadly we completed
391 it too late for them to become part of the next stable Debian release
392 (Bookworm). The wmbusmeters package just cleared the NEW queue. It
393 will need some work to fix a built problem, but I expect Fredrik will
394 find a solution soon.</p>
395
396 <p>If you got a infrastructure meter supporting the Meter Bus
397 standard, I strongly recommend having a look at these nice
398 packages.</p>
399
400 <p>As usual, if you use Bitcoin and want to show your support of my
401 activities, please send Bitcoin donations to my address
402 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
403 </div>
404 <div class="tags">
405
406
407 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
408
409
410 </div>
411 </div>
412 <div class="padding"></div>
413
414 <div class="entry">
415 <div class="title"><a href="https://people.skolelinux.org/pere/blog/The_2023_LinuxCNC_Norwegian_developer_gathering.html">The 2023 LinuxCNC Norwegian developer gathering</a></div>
416 <div class="date">14th May 2023</div>
417 <div class="body"><p>The LinuxCNC project is making headway these days. A lot of
418 patches and issues have seen activity on
419 <a href="https://github.com/LinuxCNC/linuxcnc/">the project github
420 pages</a> recently. A few weeks ago there was a developer gathering
421 over at the <a href="https://tormach.com/">Tormach</a> headquarter in
422 Wisconsin, and now we are planning a new gathering in Norway. If you
423 wonder what LinuxCNC is, lets quote Wikipedia:</p>
424
425 <blockquote>
426 "LinuxCNC is a software system for numerical control of
427 machines such as milling machines, lathes, plasma cutters, routers,
428 cutting machines, robots and hexapods. It can control up to 9 axes or
429 joints of a CNC machine using G-code (RS-274NGC) as input. It has
430 several GUIs suited to specific kinds of usage (touch screen,
431 interactive development)."
432 </blockquote>
433
434 <p>The Norwegian developer gathering take place the weekend June 16th
435 to 18th this year, and is open for everyone interested in contributing
436 to LinuxCNC. Up to date information about the gathering can be found
437 in
438 <a href="https://sourceforge.net/p/emc/mailman/emc-developers/thread/sa64jp06nob.fsf%40hjemme.reinholdtsen.name/#msg37837251">the
439 developer mailing list thread</a> where the gathering was announced.
440 Thanks to the good people at
441 <a href="https://www.debian.org/">Debian</a>,
442 <a href="https://www.redpill-linpro.com/">Redpill-Linpro</a> and
443 <a href="https://www.nuugfoundation.no/no/">NUUG Foundation</a>, we
444 have enough sponsor funds to pay for food, and shelter for the people
445 traveling from afar to join us. If you would like to join the
446 gathering, get in touch.</p>
447
448 <p>As usual, if you use Bitcoin and want to show your support of my
449 activities, please send Bitcoin donations to my address
450 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
451 </div>
452 <div class="tags">
453
454
455 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/linuxcnc">linuxcnc</a>.
456
457
458 </div>
459 </div>
460 <div class="padding"></div>
461
462 <div class="entry">
463 <div class="title"><a href="https://people.skolelinux.org/pere/blog/OpenSnitch_in_Debian_ready_for_prime_time.html">OpenSnitch in Debian ready for prime time</a></div>
464 <div class="date">13th May 2023</div>
465 <div class="body"><p>A bit delayed,
466 <a href="https://tracker.debian.org/pkg/opensnitch">the interactive
467 application firewall OpenSnitch</a> package in Debian now got the
468 latest fixes ready for Debian Bookworm. Because it depend on a
469 package missing on some architectures, the autopkgtest check of the
470 testing migration script did not understand that the tests were
471 actually working, so the migration was delayed. A bug in the package
472 dependencies is also fixed, so those installing the firewall package
473 (opensnitch) now also get the GUI admin tool (python3-opensnitch-ui)
474 installed by default. I am very grateful to Gustavo Iñiguez Goya for
475 his work on getting the package ready for Debian Bookworm.</p>
476
477 <p>Armed with this package I have discovered some surprising
478 connections from programs I believed were able to work completly
479 offline, and it has already proven its worth, at least to me. If you
480 too want to get more familiar with the kind of programs using
481 Internett connections on your machine, I recommend testing <tt>apt
482 install opensnitch</tt> in Bookworm and see what you think.</p>
483
484 <p>The package is still not able to build its eBPF module within
485 Debian. Not sure how much work it would be to get it working, but
486 suspect some kernel related packages need to be extended with more
487 header files to get it working.</p>
488
489 <p>As usual, if you use Bitcoin and want to show your support of my
490 activities, please send Bitcoin donations to my address
491 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
492 </div>
493 <div class="tags">
494
495
496 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/opensnitch">opensnitch</a>.
497
498
499 </div>
500 </div>
501 <div class="padding"></div>
502
503 <div class="entry">
504 <div class="title"><a href="https://people.skolelinux.org/pere/blog/Speech_to_text__she_APTly_whispered__how_hard_can_it_be_.html">Speech to text, she APTly whispered, how hard can it be?</a></div>
505 <div class="date">23rd April 2023</div>
506 <div class="body"><p>While visiting a convention during Easter, it occurred to me that
507 it would be great if I could have a digital Dictaphone with
508 transcribing capabilities, providing me with texts to cut-n-paste into
509 stuff I need to write. The background is that long drives often bring
510 up the urge to write on texts I am working on, which of course is out
511 of the question while driving. With the release of
512 <a href="https://github.com/openai/whisper/">OpenAI Whisper</a>, this
513 seem to be within reach with Free Software, so I decided to give it a
514 go. OpenAI Whisper is a Linux based neural network system to read in
515 audio files and provide text representation of the speech in that
516 audio recording. It handle multiple languages and according to its
517 creators even can translate into a different language than the spoken
518 one. I have not tested the latter feature. It can either use the CPU
519 or a GPU with CUDA support. As far as I can tell, CUDA in practice
520 limit that feature to NVidia graphics cards. I have few of those, as
521 they do not work great with free software drivers, and have not tested
522 the GPU option. While looking into the matter, I did discover some
523 work to provide CUDA support on non-NVidia GPUs, and some work with
524 the library used by Whisper to port it to other GPUs, but have not
525 spent much time looking into GPU support yet. I've so far used an old
526 X220 laptop as my test machine, and only transcribed using its
527 CPU.</p>
528
529 <p>As it from a privacy standpoint is unthinkable to use computers
530 under control of someone else (aka a "cloud" service) to transcribe
531 ones thoughts and personal notes, I want to run the transcribing
532 system locally on my own computers. The only sensible approach to me
533 is to make the effort I put into this available for any Linux user and
534 to upload the needed packages into Debian. Looking at Debian Bookworm, I
535 discovered that only three packages were missing,
536 <a href="https://bugs.debian.org/1034307">tiktoken</a>,
537 <a href="https://bugs.debian.org/1034144">triton</a>, and
538 <a href="https://bugs.debian.org/1034091">openai-whisper</a>. For a while
539 I also believed
540 <a href="https://bugs.debian.org/1034286">ffmpeg-python</a> was
541 needed, but as its
542 <a href="https://github.com/kkroening/ffmpeg-python/issues/760">upstream
543 seem to have vanished</a> I found it safer
544 <a href="https://github.com/openai/whisper/pull/1242">to rewrite
545 whisper</a> to stop depending on in than to introduce ffmpeg-python
546 into Debian. I decided to place these packages under the umbrella of
547 <a href="https://salsa.debian.org/deeplearning-team">the Debian Deep
548 Learning Team</a>, which seem like the best team to look after such
549 packages. Discussing the topic within the group also made me aware
550 that the triton package was already a future dependency of newer
551 versions of the torch package being planned, and would be needed after
552 Bookworm is released.</p>
553
554 <p>All required code packages have been now waiting in
555 <a href="https://ftp-master.debian.org/new.html">the Debian NEW
556 queue</a> since Wednesday, heading for Debian Experimental until
557 Bookworm is released. An unsolved issue is how to handle the neural
558 network models used by Whisper. The default behaviour of Whisper is
559 to require Internet connectivity and download the model requested to
560 <tt>~/.cache/whisper/</tt> on first invocation. This obviously would
561 fail <a href="https://people.debian.org/~bap/dfsg-faq.html">the
562 deserted island test of free software</a> as the Debian packages would
563 be unusable for someone stranded with only the Debian archive and solar
564 powered computer on a deserted island.</p>
565
566 <p>Because of this, I would love to include the models in the Debian
567 mirror system. This is problematic, as the models are very large
568 files, which would put a heavy strain on the Debian mirror
569 infrastructure around the globe. The strain would be even higher if
570 the models change often, which luckily as far as I can tell they do
571 not. The small model, which according to its creator is most useful
572 for English and in my experience is not doing a great job there
573 either, is 462 MiB (deb is 414 MiB). The medium model, which to me
574 seem to handle English speech fairly well is 1.5 GiB (deb is 1.3 GiB)
575 and the large model is 2.9 GiB (deb is 2.6 GiB). I would assume
576 everyone with enough resources would prefer to use the large model for
577 highest quality. I believe the models themselves would have to go
578 into the non-free part of the Debian archive, as they are not really
579 including any useful source code for updating the models. The
580 "source", aka the model training set, according to the creators
581 consist of "680,000 hours of multilingual and multitask supervised
582 data collected from the web", which to me reads material with both
583 unknown copyright terms, unavailable to the general public. In other
584 words, the source is not available according to the Debian Free
585 Software Guidelines and the model should be considered non-free.</p>
586
587 <p>I asked the Debian FTP masters for advice regarding uploading a
588 model package on their IRC channel, and based on the feedback there it
589 is still unclear to me if such package would be accepted into the
590 archive. In any case I wrote build rules for a
591 <a href="https://salsa.debian.org/deeplearning-team/openai-whisper-model">OpenAI
592 Whisper model package</a> and
593 <a href="https://github.com/openai/whisper/pull/1257">modified the
594 Whisper code base</a> to prefer shared files under <tt>/usr/</tt> and
595 <tt>/var/</tt> over user specific files in <tt>~/.cache/whisper/</tt>
596 to be able to use these model packages, to prepare for such
597 possibility. One solution might be to include only one of the models
598 (small or medium, I guess) in the Debian archive, and ask people to
599 download the others from the Internet. Not quite sure what to do
600 here, and advice is most welcome (use the debian-ai mailing list).</p>
601
602 <p>To make it easier to test the new packages while I wait for them to
603 clear the NEW queue, I created an APT source targeting bookworm. I
604 selected Bookworm instead of Bullseye, even though I know the latter
605 would reach more users, is that some of the required dependencies are
606 missing from Bullseye and I during this phase of testing did not want
607 to backport a lot of packages just to get up and running.</p>
608
609 <p>Here is a recipe to run as user root if you want to test OpenAI
610 Whisper using Debian packages on your Debian Bookworm installation,
611 first adding the APT repository GPG key to the list of trusted keys,
612 then setting up the APT repository and finally installing the packages
613 and one of the models:</p>
614
615 <p><pre>
616 curl https://geekbay.nuug.no/~pere/openai-whisper/D78F5C4796F353D211B119E28200D9B589641240.asc \
617 -o /etc/apt/trusted.gpg.d/pere-whisper.asc
618 mkdir -p /etc/apt/sources.list.d
619 cat > /etc/apt/sources.list.d/pere-whisper.list &lt;&lt;EOF
620 deb https://geekbay.nuug.no/~pere/openai-whisper/ bookworm main
621 deb-src https://geekbay.nuug.no/~pere/openai-whisper/ bookworm main
622 EOF
623 apt update
624 apt install openai-whisper
625 </pre></p>
626
627 <p>The package work for me, but have not yet been tested on any other
628 computer than my own. With it, I have been able to (badly) transcribe
629 a 2 minute 40 second Norwegian audio clip to test using the small
630 model. This took 11 minutes and around 2.2 GiB of RAM. Transcribing
631 the same file with the medium model gave a accurate text in 77 minutes
632 using around 5.2 GiB of RAM. My test machine had too little memory to
633 test the large model, which I believe require 11 GiB of RAM. In
634 short, this now work for me using Debian packages, and I hope it will
635 for you and everyone else once the packages enter Debian.</p>
636
637 <p>Now I can start on the audio recording part of this project.</p>
638
639 <p>As usual, if you use Bitcoin and want to show your support of my
640 activities, please send Bitcoin donations to my address
641 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
642 </div>
643 <div class="tags">
644
645
646 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="https://people.skolelinux.org/pere/blog/tags/video">video</a>.
647
648
649 </div>
650 </div>
651 <div class="padding"></div>
652
653 <div class="entry">
654 <div class="title"><a href="https://people.skolelinux.org/pere/blog/rtlsdr_scanner__software_defined_radio_frequency_scanner_for_Linux____nice_free_software.html">rtlsdr-scanner, software defined radio frequency scanner for Linux - nice free software</a></div>
655 <div class="date"> 7th April 2023</div>
656 <div class="body"><p>Today I finally found time to track down a useful radio frequency
657 scanner for my software defined radio. Just for fun I tried to locate
658 the radios used in the areas, and a good start would be to scan all
659 the frequencies to see what is in use. I've tried to find a useful
660 program earlier, but ran out of time before I managed to find a useful
661 tool. This time I was more successful, and after a few false leads I
662 found a description of
663 <a href="https://www.kali.org/tools/rtlsdr-scanner/">rtlsdr-scanner
664 over at the Kali site</a>, and was able to track down
665 <a href="https://gitlab.com/kalilinux/packages/rtlsdr-scanner.git">the
666 Kali package git repository</a> to build a deb package for the
667 scanner. Sadly the package is missing from the Debian project itself,
668 at least in Debian Bullseye. Two runtime dependencies,
669 <a href="https://gitlab.com/kalilinux/packages/python-visvis.git">python-visvis</a>
670 and
671 <a href="https://gitlab.com/kalilinux/packages/python-rtlsdr.git">python-rtlsdr</a>
672 had to be built and installed separately. Luckily '<tt>gbp
673 buildpackage</tt>' handled them just fine and no further packages had
674 to be manually built. The end result worked out of the box after
675 installation.</p>
676
677 <p>My initial scans for FM channels worked just fine, so I knew the
678 scanner was functioning. But when I tried to scan every frequency
679 from 100 to 1000 MHz, the program stopped unexpectedly near the
680 completion. After some debugging I discovered USB software radio I
681 used rejected frequencies above 948 MHz, triggering a unreported
682 exception breaking the scan. Changing the scan to end at 957 worked
683 better. I similarly found the lower limit to be around 15, and ended
684 up with the following full scan:</p>
685
686 <p><a href="https://people.skolelinux.org/pere/blog/images/2023-04-07-radio-freq-scanning.png"><img src="https://people.skolelinux.org/pere/blog/images/2023-04-07-radio-freq-scanning.png" width="100%"></a></p>
687
688 <p>Saving the scan did not work, but exporting it as a CSV file worked
689 just fine. I ended up with around 477k CVS lines with dB level for
690 the given frequency.</p>
691
692 <p>The save failure seem to be a missing UTF-8 encoding issue in the
693 python code. Will see if I can find time to send a patch
694 <a href="https://github.com/CdeMills/RTLSDR-Scanner/">upstream</a>
695 later to fix this exception:</p>
696
697 <pre>
698 Traceback (most recent call last):
699 File "/usr/lib/python3/dist-packages/rtlsdr_scanner/main_window.py", line 485, in __on_save
700 save_plot(fullName, self.scanInfo, self.spectrum, self.locations)
701 File "/usr/lib/python3/dist-packages/rtlsdr_scanner/file.py", line 408, in save_plot
702 handle.write(json.dumps(data, indent=4))
703 TypeError: a bytes-like object is required, not 'str'
704 Traceback (most recent call last):
705 File "/usr/lib/python3/dist-packages/rtlsdr_scanner/main_window.py", line 485, in __on_save
706 save_plot(fullName, self.scanInfo, self.spectrum, self.locations)
707 File "/usr/lib/python3/dist-packages/rtlsdr_scanner/file.py", line 408, in save_plot
708 handle.write(json.dumps(data, indent=4))
709 TypeError: a bytes-like object is required, not 'str'
710 </pre>
711
712 <p>As usual, if you use Bitcoin and want to show your support of my
713 activities, please send Bitcoin donations to my address
714 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
715 </div>
716 <div class="tags">
717
718
719 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
720
721
722 </div>
723 </div>
724 <div class="padding"></div>
725
726 <p style="text-align: right;"><a href="index.rss"><img src="https://people.skolelinux.org/pere/blog/xml.gif" alt="RSS feed" width="36" height="14" /></a></p>
727 <div id="sidebar">
728
729
730
731 <h2>Archive</h2>
732 <ul>
733
734 <li>2023
735 <ul>
736
737 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/01/">January (3)</a></li>
738
739 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/02/">February (1)</a></li>
740
741 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/04/">April (2)</a></li>
742
743 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/05/">May (3)</a></li>
744
745 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/06/">June (1)</a></li>
746
747 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/08/">August (1)</a></li>
748
749 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/09/">September (1)</a></li>
750
751 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/10/">October (1)</a></li>
752
753 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/11/">November (1)</a></li>
754
755 </ul></li>
756
757 <li>2022
758 <ul>
759
760 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/02/">February (1)</a></li>
761
762 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/03/">March (3)</a></li>
763
764 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/04/">April (2)</a></li>
765
766 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/06/">June (2)</a></li>
767
768 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/07/">July (1)</a></li>
769
770 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/09/">September (1)</a></li>
771
772 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/10/">October (1)</a></li>
773
774 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/12/">December (1)</a></li>
775
776 </ul></li>
777
778 <li>2021
779 <ul>
780
781 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/01/">January (2)</a></li>
782
783 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/02/">February (1)</a></li>
784
785 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/05/">May (1)</a></li>
786
787 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/06/">June (1)</a></li>
788
789 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/07/">July (3)</a></li>
790
791 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/08/">August (1)</a></li>
792
793 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/09/">September (1)</a></li>
794
795 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/10/">October (1)</a></li>
796
797 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/12/">December (1)</a></li>
798
799 </ul></li>
800
801 <li>2020
802 <ul>
803
804 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/02/">February (2)</a></li>
805
806 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/03/">March (2)</a></li>
807
808 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/04/">April (2)</a></li>
809
810 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/05/">May (3)</a></li>
811
812 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/06/">June (2)</a></li>
813
814 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/07/">July (1)</a></li>
815
816 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/09/">September (1)</a></li>
817
818 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/10/">October (1)</a></li>
819
820 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/11/">November (1)</a></li>
821
822 </ul></li>
823
824 <li>2019
825 <ul>
826
827 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/01/">January (4)</a></li>
828
829 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/02/">February (3)</a></li>
830
831 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/03/">March (3)</a></li>
832
833 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/05/">May (2)</a></li>
834
835 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/06/">June (5)</a></li>
836
837 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/07/">July (2)</a></li>
838
839 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/08/">August (1)</a></li>
840
841 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/09/">September (1)</a></li>
842
843 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/11/">November (1)</a></li>
844
845 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/12/">December (4)</a></li>
846
847 </ul></li>
848
849 <li>2018
850 <ul>
851
852 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
853
854 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
855
856 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
857
858 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
859
860 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
861
862 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/07/">July (5)</a></li>
863
864 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/08/">August (3)</a></li>
865
866 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/09/">September (3)</a></li>
867
868 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/10/">October (5)</a></li>
869
870 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/11/">November (2)</a></li>
871
872 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/12/">December (4)</a></li>
873
874 </ul></li>
875
876 <li>2017
877 <ul>
878
879 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
880
881 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
882
883 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
884
885 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
886
887 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/06/">June (5)</a></li>
888
889 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/07/">July (1)</a></li>
890
891 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/08/">August (1)</a></li>
892
893 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/09/">September (3)</a></li>
894
895 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/10/">October (5)</a></li>
896
897 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
898
899 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
900
901 </ul></li>
902
903 <li>2016
904 <ul>
905
906 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
907
908 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
909
910 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
911
912 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
913
914 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
915
916 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
917
918 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
919
920 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
921
922 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
923
924 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
925
926 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
927
928 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
929
930 </ul></li>
931
932 <li>2015
933 <ul>
934
935 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
936
937 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
938
939 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
940
941 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
942
943 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
944
945 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
946
947 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
948
949 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
950
951 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
952
953 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
954
955 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
956
957 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
958
959 </ul></li>
960
961 <li>2014
962 <ul>
963
964 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
965
966 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
967
968 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
969
970 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
971
972 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
973
974 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
975
976 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
977
978 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
979
980 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
981
982 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
983
984 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
985
986 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
987
988 </ul></li>
989
990 <li>2013
991 <ul>
992
993 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
994
995 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
996
997 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
998
999 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
1000
1001 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
1002
1003 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
1004
1005 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
1006
1007 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
1008
1009 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
1010
1011 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
1012
1013 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
1014
1015 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
1016
1017 </ul></li>
1018
1019 <li>2012
1020 <ul>
1021
1022 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
1023
1024 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
1025
1026 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
1027
1028 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
1029
1030 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
1031
1032 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
1033
1034 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
1035
1036 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
1037
1038 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
1039
1040 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
1041
1042 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
1043
1044 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
1045
1046 </ul></li>
1047
1048 <li>2011
1049 <ul>
1050
1051 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
1052
1053 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
1054
1055 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
1056
1057 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
1058
1059 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
1060
1061 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
1062
1063 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
1064
1065 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
1066
1067 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1068
1069 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1070
1071 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1072
1073 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1074
1075 </ul></li>
1076
1077 <li>2010
1078 <ul>
1079
1080 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1081
1082 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1083
1084 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1085
1086 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1087
1088 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1089
1090 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1091
1092 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1093
1094 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1095
1096 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1097
1098 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1099
1100 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1101
1102 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1103
1104 </ul></li>
1105
1106 <li>2009
1107 <ul>
1108
1109 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1110
1111 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1112
1113 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1114
1115 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1116
1117 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1118
1119 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1120
1121 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1122
1123 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1124
1125 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1126
1127 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1128
1129 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1130
1131 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1132
1133 </ul></li>
1134
1135 <li>2008
1136 <ul>
1137
1138 <li><a href="https://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1139
1140 <li><a href="https://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1141
1142 </ul></li>
1143
1144 </ul>
1145
1146
1147
1148 <h2>Tags</h2>
1149 <ul>
1150
1151 <li><a href="https://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (19)</a></li>
1152
1153 <li><a href="https://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1154
1155 <li><a href="https://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1156
1157 <li><a href="https://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1158
1159 <li><a href="https://people.skolelinux.org/pere/blog/tags/betalkontant">betalkontant (9)</a></li>
1160
1161 <li><a href="https://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (12)</a></li>
1162
1163 <li><a href="https://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
1164
1165 <li><a href="https://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1166
1167 <li><a href="https://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1168
1169 <li><a href="https://people.skolelinux.org/pere/blog/tags/debian">debian (195)</a></li>
1170
1171 <li><a href="https://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (159)</a></li>
1172
1173 <li><a href="https://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (9)</a></li>
1174
1175 <li><a href="https://people.skolelinux.org/pere/blog/tags/digistan">digistan (11)</a></li>
1176
1177 <li><a href="https://people.skolelinux.org/pere/blog/tags/dld">dld (18)</a></li>
1178
1179 <li><a href="https://people.skolelinux.org/pere/blog/tags/docbook">docbook (32)</a></li>
1180
1181 <li><a href="https://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1182
1183 <li><a href="https://people.skolelinux.org/pere/blog/tags/english">english (452)</a></li>
1184
1185 <li><a href="https://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
1186
1187 <li><a href="https://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (14)</a></li>
1188
1189 <li><a href="https://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (34)</a></li>
1190
1191 <li><a href="https://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1192
1193 <li><a href="https://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (20)</a></li>
1194
1195 <li><a href="https://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
1196
1197 <li><a href="https://people.skolelinux.org/pere/blog/tags/intervju">intervju (43)</a></li>
1198
1199 <li><a href="https://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (16)</a></li>
1200
1201 <li><a href="https://people.skolelinux.org/pere/blog/tags/kart">kart (23)</a></li>
1202
1203 <li><a href="https://people.skolelinux.org/pere/blog/tags/kodi">kodi (6)</a></li>
1204
1205 <li><a href="https://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1206
1207 <li><a href="https://people.skolelinux.org/pere/blog/tags/lego">lego (5)</a></li>
1208
1209 <li><a href="https://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1210
1211 <li><a href="https://people.skolelinux.org/pere/blog/tags/linuxcnc">linuxcnc (5)</a></li>
1212
1213 <li><a href="https://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1214
1215 <li><a href="https://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1216
1217 <li><a href="https://people.skolelinux.org/pere/blog/tags/madewithcc">madewithcc (3)</a></li>
1218
1219 <li><a href="https://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1220
1221 <li><a href="https://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (46)</a></li>
1222
1223 <li><a href="https://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (15)</a></li>
1224
1225 <li><a href="https://people.skolelinux.org/pere/blog/tags/noark5">noark5 (23)</a></li>
1226
1227 <li><a href="https://people.skolelinux.org/pere/blog/tags/norsk">norsk (322)</a></li>
1228
1229 <li><a href="https://people.skolelinux.org/pere/blog/tags/nuug">nuug (198)</a></li>
1230
1231 <li><a href="https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (40)</a></li>
1232
1233 <li><a href="https://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1234
1235 <li><a href="https://people.skolelinux.org/pere/blog/tags/opensnitch">opensnitch (4)</a></li>
1236
1237 <li><a href="https://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (75)</a></li>
1238
1239 <li><a href="https://people.skolelinux.org/pere/blog/tags/personvern">personvern (114)</a></li>
1240
1241 <li><a href="https://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
1242
1243 <li><a href="https://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1244
1245 <li><a href="https://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1246
1247 <li><a href="https://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1248
1249 <li><a href="https://people.skolelinux.org/pere/blog/tags/robot">robot (17)</a></li>
1250
1251 <li><a href="https://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1252
1253 <li><a href="https://people.skolelinux.org/pere/blog/tags/ruter">ruter (7)</a></li>
1254
1255 <li><a href="https://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1256
1257 <li><a href="https://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (59)</a></li>
1258
1259 <li><a href="https://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1260
1261 <li><a href="https://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
1262
1263 <li><a href="https://people.skolelinux.org/pere/blog/tags/standard">standard (74)</a></li>
1264
1265 <li><a href="https://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (7)</a></li>
1266
1267 <li><a href="https://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (14)</a></li>
1268
1269 <li><a href="https://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (64)</a></li>
1270
1271 <li><a href="https://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (5)</a></li>
1272
1273 <li><a href="https://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
1274
1275 <li><a href="https://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
1276
1277 <li><a href="https://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (20)</a></li>
1278
1279 <li><a href="https://people.skolelinux.org/pere/blog/tags/video">video (79)</a></li>
1280
1281 <li><a href="https://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1282
1283 <li><a href="https://people.skolelinux.org/pere/blog/tags/web">web (42)</a></li>
1284
1285 </ul>
1286
1287
1288 </div>
1289 <p style="text-align: right">
1290 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1291 </p>
1292
1293 </body>
1294 </html>