]> pere.pagekite.me Git - homepage.git/blob - blog/index.rss
Generated.
[homepage.git] / blog / index.rss
1 <?xml version="1.0" encoding="utf-8"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom="http://www.w3.org/2005/Atom">
3 <channel>
4 <title>Petter Reinholdtsen</title>
5 <description></description>
6 <link>https://people.skolelinux.org/pere/blog/</link>
7 <atom:link href="https://people.skolelinux.org/pere/blog/index.rss" rel="self" type="application/rss+xml" />
8
9 <item>
10 <title>Test framework for DocBook processors / formatters</title>
11 <link>https://people.skolelinux.org/pere/blog/Test_framework_for_DocBook_processors___formatters.html</link>
12 <guid isPermaLink="true">https://people.skolelinux.org/pere/blog/Test_framework_for_DocBook_processors___formatters.html</guid>
13 <pubDate>Sun, 5 Nov 2023 13:00:00 +0100</pubDate>
14 <description>&lt;p&gt;All the books I have published so far has been using
15 &lt;a href=&quot;https://docbook.org/&quot;&gt;DocBook&lt;/a&gt; somewhere in the process.
16 For the first book, the source format was DocBook, while for every
17 later book it was an intermediate format used as the stepping stone to
18 be able to present the same manuscript in several formats, on paper,
19 as ebook in ePub format, as a HTML page and as a PDF file either for
20 paper production or for Internet consumption. This is made possible
21 with a wide variety of free software tools with DocBook support in
22 Debian. The source format of later books have been docx via rst,
23 Markdown, Filemaker and Asciidoc, and for all of these I was able to
24 generate a suitable DocBook file for further processing using pandoc,
25 a2x and asciidoctor, as well as rendering using
26 &lt;a href=&quot;https://tracker.debian.org/pkg/xmlto&quot;&gt;xmlto&lt;/a&gt;,
27 &lt;a href=&quot;https://tracker.debian.org/pkg/dbtoepub&quot;&gt;dbtoepub&lt;/a&gt;,
28 &lt;a href=&quot;https://tracker.debian.org/pkg/dblatex&quot;&gt;dblatex&lt;/a&gt;,
29 &lt;a href=&quot;https://tracker.debian.org/pkg/dblatex&quot;&gt;docbook-xsl&lt;/a&gt; and
30 &lt;a href=&quot;https://tracker.debian.org/pkg/fop&quot;&gt;fop&lt;/a&gt;.&lt;/p&gt;
31
32 &lt;p&gt;Most of the &lt;a href=&quot;http://www.hungry.com/~pere/publisher/&quot;&gt;books I
33 have published&lt;/a&gt; are translated books, with English as the source
34 language. The use of
35 &lt;a href=&quot;https://tracker.debian.org/pkg/po4a&quot;&gt;po4a&lt;/a&gt; to
36 handle translations using the gettext PO format has been a blessing,
37 but publishing translated books had triggered the need to ensure the
38 DocBook tools handle relevant languages correctly. For every new
39 language I have published, I had to submit patches dblatex, dbtoepub
40 and docbook-xsl fixing incorrect language and country specific issues
41 in the framework themselves. Typically this has been missing keywords
42 like &#39;figure&#39; or sort ordering of index entries. After a while it
43 became tiresome to only discover issues like this by accident, and I
44 decided to write a DocBook &quot;test framework&quot; exercising various
45 features of DocBook and allowing me to see all features exercised for
46 a given language. It consist of a set of DocBook files, a version 4
47 book, a version 5 book, a v4 book set, a v4 selection of problematic
48 tables, one v4 testing sidefloat and finally one v4 testing a book of
49 articles. The DocBook files are accompanied with a set of build rules
50 for building PDF using dblatex and docbook-xsl/fop, HTML using xmlto
51 or docbook-xsl and epub using dbtoepub. The result is a set of files
52 visualizing footnotes, indexes, table of content list, figures,
53 formulas and other DocBook features, allowing for a quick review on
54 the completeness of the given locale settings. To build with a
55 different language setting, all one need to do is edit the lang= value
56 in the .xml file to pick a different ISO 639 code value and run
57 &#39;make&#39;.&lt;/p&gt;
58
59 &lt;p&gt;The &lt;a href=&quot;https://codeberg.org/pere/docbook-example/&quot;&gt;test framework
60 source code&lt;/a&gt; is available from Codeberg, and a generated set of
61 presentations of the various examples is available as Codeberg static
62 web pages at
63 &lt;a href=&quot;https://pere.codeberg.page/docbook-example/&quot;&gt;https://pere.codeberg.page/docbook-example/&lt;/a&gt;.
64 Using this test framework I have been able to discover and report
65 several bugs and missing features in various tools, and got a lot of
66 them fixed. For example I got Northern Sami keywoards added to both
67 docbook-xsl and dblatex, fixed several typos in Norwegian bokmål and
68 Norwegian Nynorsk, support for non-ascii title IDs added to pandoc,
69 Norwegian index sorting support fixed in xindy and initial Norwegian
70 Bokmål support added to dblatex. Some issues still remains, though.
71 Default index sorting rules are still broken in several tools, so the
72 Norwegian letters æ, ø and å are more often than not sorted properly
73 in the book index.&lt;/p&gt;
74
75 &lt;p&gt;The test framework recently received some more polish, as part of
76 publishing my latest book. This book contained a lot of fairly
77 complex tables, which exposed bugs in some of the tools. This made me
78 add a new test file with various tables, as well as spend some time to
79 brush up the build rules. My goal is for the test framework to
80 exercise all DocBook features to make it easier to see which features
81 work with different processors, and hopefully get them all to support
82 the full set of DocBook features. Feel free to send patches to extend
83 the test set, and test it with your favorite DocBook processor.
84 Please visit these two URLs to learn more:&lt;/p&gt;
85
86 &lt;ul&gt;
87 &lt;li&gt;&lt;a href=&quot;https://codeberg.org/pere/docbook-example/&quot;&gt;https://codeberg.org/pere/docbook-example/&lt;/a&gt;&lt;/li&gt;
88 &lt;li&gt;&lt;a href=&quot;https://pere.codeberg.page/docbook-example/&quot;&gt;https://pere.codeberg.page/docbook-example/&lt;/a&gt;&lt;/li&gt;
89 &lt;/ul&gt;
90
91 &lt;p&gt;If you want to learn more on Docbook and translations, I recommend
92 having a look at the &lt;a href=&quot;https://docbook.org/&quot;&gt;the DocBook
93 web site&lt;/a&gt;,
94 &lt;a href=&quot;https://doccookbook.sourceforge.net/html/en/&quot;&gt;the DoCookBook
95 site&lt;a/&gt; and my earlier blog post on
96 &lt;a href=&quot;https://people.skolelinux.org/pere/blog/From_English_wiki_to_translated_PDF_and_epub_via_Docbook.html&quot;&gt;how
97 the Skolelinux project process and translate documentation&lt;/a&gt;, a talk I gave earlier this year on
98 &lt;a href=&quot;https://www.nuug.no/aktiviteter/20230314-oversetting-og-publisering-av-b%c3%b8ker-med-fri-programvare/&quot;&gt;how
99 to translate and publish books using free software&lt;/a&gt; (Norwegian
100 only).&lt;/p&gt;
101
102 &lt;!--
103
104 https://github.com/docbook/xslt10-stylesheets/issues/205 (docbook-xsl: sme support)
105 https://bugs.debian.org/968437 (xindy: index sorting rules for nb/nn)
106 https://bugs.debian.org/856123 (pandoc: markdown to docbook with non-english titles)
107 https://bugs.debian.org/864813 (dblatex: missing nb words)
108 https://bugs.debian.org/756386 (dblatex: index sorting rules for nb/nn)
109 https://bugs.debian.org/796871 (dbtoepub: index sorting rules for nb/nn)
110 https://bugs.debian.org/792616 (dblatex: PDF metadata)
111 https://bugs.debian.org/686908 (docbook-xsl: index sorting rules for nb/nn)
112 https://sourceforge.net/tracker/?func=detail&amp;atid=373747&amp;aid=3556630&amp;group_id=21935 (docbook-xsl: nb/nn support)
113 https://bugs.debian.org/684391 (dblatex: initial nb support)
114
115 --&gt;
116
117 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
118 activities, please send Bitcoin donations to my address
119 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
120 </description>
121 </item>
122
123 <item>
124 <title>«Virkninger av angrefristloven», hovedfagsoppgaven som fikk endret en lov</title>
125 <link>https://people.skolelinux.org/pere/blog/_Virkninger_av_angrefristloven___hovedfagsoppgaven_som_fikk_endret_en_lov.html</link>
126 <guid isPermaLink="true">https://people.skolelinux.org/pere/blog/_Virkninger_av_angrefristloven___hovedfagsoppgaven_som_fikk_endret_en_lov.html</guid>
127 <pubDate>Sun, 29 Oct 2023 22:00:00 +0100</pubDate>
128 <description>&lt;img src=&quot;http://people.skolelinux.org/pere/blog/images/2023-10-29-bok-angrefrist.svg&quot; width=&quot;20%&quot; align=&quot;center&quot;&gt;&lt;/a&gt;
129
130 &lt;p&gt;I 1979 leverte Ole-Erik Yrvin en hovedfagsoppgave for Cand. Scient.
131 ved Institutt for sosiologi på Universitetet i Oslo på oppdrag fra
132 Forbruker- og administrasjonsdepartementet. Oppgaven evaluerte
133 Angrefristloven fra 1972, og det han oppdaget førte til at loven ble
134 endret fire år senere.&lt;/p&gt;
135
136 &lt;p&gt;Jeg har kjent Ole-Erik en stund, og synes det var trist at hans
137 oppgave ikke lenger er tilgjengelig, hverken fra oppdragsgiver
138 eller fra universitetet. Hans forsøk på å få den avbildet og lagt
139 ut på Internett har vist seg fånyttes, så derfor tilbød jeg meg for
140 en stund tilbake å publisere den og gjøre den tilgjengelig med
141 fribruksvilkår på Internett. Det er nå klart, og hovedfagsoppgaven
142 er tilgjengelig blant annet via &lt;a
143 href=&quot;http://www.hungry.com/~pere/publisher/&quot;&gt;min liste over
144 publiserte bøker&lt;/a&gt;, både som nettside,
145 &lt;a href=&quot;https://www.lulu.com/search?contributor=Ole-Erik+Yrvin&quot;&gt;digital
146 bok i ePub-format og på papir fra lulu.com&lt;/a&gt;. Jeg regner med at
147 den også vil dukke opp på nettbokhandlere i løpet av en måned eller
148 to.&lt;/p&gt;
149
150 &lt;p&gt;Alle tabeller og figurer er gjenskapt for bedre lesbarhet, noen
151 skrivefeil rettet opp og mange referanser har fått flere detaljer
152 som ISBN-nummer og DOI-referanse. Selv om jeg ikke regner med at
153 dette blir en kioskvelter, så håper jeg denne nye utgaven kan komme
154 fremtiden til glede.&lt;/p&gt;
155
156 &lt;p&gt;Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
157 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
158 til min adresse
159 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;. Merk,
160 betaling med bitcoin er ikke anonymt. :)&lt;/p&gt;
161 </description>
162 </item>
163
164 <item>
165 <title>«underordnet tjenestemann blir inhabil fordi en overordnet er inhabil».</title>
166 <link>https://people.skolelinux.org/pere/blog/_underordnet_tjenestemann_blir_inhabil_fordi_en_overordnet_er_inhabil__.html</link>
167 <guid isPermaLink="true">https://people.skolelinux.org/pere/blog/_underordnet_tjenestemann_blir_inhabil_fordi_en_overordnet_er_inhabil__.html</guid>
168 <pubDate>Thu, 7 Sep 2023 09:10:00 +0200</pubDate>
169 <description>&lt;p&gt;Medlemmene av Norges regjering har demonstert de siste månedene at
170 habilitetsvureringer ikke er deres sterke side og det gjelder både
171 Arbeiderpartiets og Senterpartiers representater. Det er heldigvis
172 enklere i det private, da inhabilitetsreglene kun gjelder de som
173 jobber for folket, ikke seg selv. Sist ut er utenriksminister
174 Huitfeldt. I går kom nyheten om at
175 &lt;a href=&quot;https://www.nrk.no/nyheter/riksadvokaten_-okokrim-nestsjef-kan-behandle-huitfeldt-saken-1.16545162&quot;&gt;Riksadvokaten
176 har konkludert med at nestsjefen i Økokrim kan behandle sak om
177 habilitet og innsidekunnskap&lt;/a&gt; for Huitfeldt, på tross av at hans
178 overordnede, sjefen for Økokrim, har meldt seg inhabil i saken. Dette
179 er litt rart. I veilednigen
180 «&lt;a href=&quot;https://www.regjeringen.no/globalassets/upload/krd/vedlegg/komm/veiledere/habilitet_i_kommuner_og_fylkeskommuner.pdf&quot;&gt;Habilitet
181 i kommuner og fylkeskommuner&lt;/a&gt;» av Kommunal- og regionaldepartementet
182 forteller de hva som gjelder, riktig nok gjelder veiledningen ikke for
183 Økokrim som jo ikke er kommune eller fylkeskommune, men jeg får ikke
184 inntrykk av at dette er regler som kun gjelder for kommune og
185 fylkeskommune:
186
187 &lt;blockquote&gt;
188 &lt;p&gt;«&lt;strong&gt;2.1 Oversikt over inhabilitetsgrunnlagene&lt;/strong&gt;
189
190 &lt;p&gt;De alminnelige reglene om inhabilitet for den offentlige
191 forvaltningen er gitt i
192 &lt;a href=&quot;https://lovdata.no/dokument/NL/lov/1967-02-10/KAPITTEL_2#KAPITTEL_2&quot;&gt;forvaltningsloven
193 §§ 6 til 10&lt;/a&gt;. Forvaltningslovens hovedregel om inhabilitet framgår
194 av § 6. Her er det gitt tre ulike grunnlag som kan føre til at en
195 tjenestemann eller folkevalgt blir inhabil. I § 6 første ledd
196 bokstavene a til e er det oppstilt konkrete tilknytningsforhold mellom
197 tjenestemannen og saken eller sakens parter som automatisk fører til
198 inhabilitet. Annet ledd oppstiller en skjønnsmessig regel om at
199 tjenestemannen også kan bli inhabil etter en konkret vurdering av
200 inhabilitetsspørsmålet, der en lang rekke momenter kan være
201 relevante. I tredje ledd er det regler om såkalt avledet
202 inhabilitet. Det vil si at en underordnet tjenestemann blir inhabil
203 fordi en overordnet er inhabil.»&lt;/p&gt;
204 &lt;/blockquote&gt;
205
206 &lt;p&gt;Loven sier ganske enkelt «Er den overordnede tjenestemann ugild,
207 kan avgjørelse i saken heller ikke treffes av en direkte underordnet
208 tjenestemann i samme forvaltningsorgan.» Jeg antar tanken er at en
209 underordnet vil stå i fare for å tilpasse sine konklusjoner til det
210 overordnet vil ha fordel av, for å fortsatt ha et godt forhold til sin
211 overordnede. Men jeg er ikke jurist og forstår nok ikke kompliserte
212 juridiske vurderinger. For å sitere «Kamerat Napoleon» av George
213 Orwell: «Alle dyr er like, men noen dyr er likere enn andre».
214 </description>
215 </item>
216
217 <item>
218 <title>Invidious add-on for Kodi 20</title>
219 <link>https://people.skolelinux.org/pere/blog/Invidious_add_on_for_Kodi_20.html</link>
220 <guid isPermaLink="true">https://people.skolelinux.org/pere/blog/Invidious_add_on_for_Kodi_20.html</guid>
221 <pubDate>Thu, 10 Aug 2023 19:50:00 +0200</pubDate>
222 <description>&lt;p&gt;I still enjoy &lt;a href=&quot;https://kodi.tv/&quot;&gt;Kodi&lt;/a&gt; and
223 &lt;a href=&quot;https://libreelec.tv/&quot;&gt;LibreELEC&lt;/a&gt; as my multimedia center
224 at home. Sadly two of the services I really would like to use from
225 within Kodi are not easily available. The most wanted add-on would be
226 one making &lt;a href=&quot;https://archive.org/&quot;&gt;The Internet Archive&lt;/a&gt;
227 available, and it has
228 &lt;a href=&quot;https://kodi.wiki/view/Add-on:Internet_Archive&quot;&gt;not been
229 working&lt;/a&gt; for many years. The second most wanted add-on is one
230 using &lt;a href=&quot;https://invidious.io/&quot;&gt;the Invidious privacy enhanced
231 Youtube frontent&lt;/a&gt;. A plugin for this has been partly working, but
232 not been kept up to date in the Kodi add-on repository, and its
233 upstream seem to have given it up in April this year, when the git
234 repository was closed. A few days ago I got tired of this sad state
235 of affairs and decided to
236 &lt;a href=&quot;https://github.com/petterreinholdtsen/kodi-invidious-plugin&quot;&gt;have
237 a go at improving the Invidious add-on&lt;/a&gt;. As
238 &lt;a href=&quot;https://github.com/iv-org/invidious/issues/3872&quot;&gt;Google has
239 already attacked&lt;/a&gt; the Invidious concept, so it need all the support
240 if can get. My small contribution here is to improve the service
241 status on Kodi.&lt;/p&gt;
242
243 &lt;p&gt;I added support to the Invidious add-on for automatically picking a
244 working Invidious instance, instead of requiring the user to specify
245 the URL to a specific instance after installation. I also had a look
246 at the set of patches floating around in the various forks on github,
247 and decided to clean up at least some of the features I liked and
248 integrate them into my new release branch. Now the plugin can handle
249 channel and short video items in search results. Earlier it could
250 only handle single video instances in the search response. I also
251 brushed up the set of metadata displayed a bit, but hope I can figure
252 out how to get more relevant metadata displayed.&lt;/p&gt;
253
254 &lt;p&gt;Because I only use Kodi 20 myself, I only test on version 20 and am
255 only motivated to ensure version 20 is working. Because of API changes
256 between version 19 and 20, I suspect it will fail with earlier Kodi
257 versions.&lt;/p&gt;
258
259 &lt;p&gt;I already
260 &lt;a href=&quot;https://github.com/xbmc/repo-plugins/pull/4363&quot;&gt;asked to have
261 the add-on added&lt;/a&gt; to the official Kodi 20 repository, and is
262 waiting to heard back from the repo maintainers.&lt;/p&gt;
263
264 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
265 activities, please send Bitcoin donations to my address
266 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
267 </description>
268 </item>
269
270 <item>
271 <title>What did I learn from OpenSnitch this summer?</title>
272 <link>https://people.skolelinux.org/pere/blog/What_did_I_learn_from_OpenSnitch_this_summer_.html</link>
273 <guid isPermaLink="true">https://people.skolelinux.org/pere/blog/What_did_I_learn_from_OpenSnitch_this_summer_.html</guid>
274 <pubDate>Sun, 11 Jun 2023 08:30:00 +0200</pubDate>
275 <description>&lt;p&gt;With yesterdays
276 &lt;a href=&quot;https://www.debian.org/News/2023/20230610&quot;&gt;release of Debian
277 12 Bookworm&lt;/a&gt;, I am happy to know the
278 &lt;a href=&quot;https://tracker.debian.org/pkg/opensnitch&quot;&gt;the interactive
279 application firewall OpenSnitch&lt;/a&gt; is available for a wider audience.
280 I have been running it for a few weeks now, and have been surprised
281 about some of the programs connecting to the Internet. Some programs
282 are obviously calling out from my machine, like the NTP network based
283 clock adjusting system and Tor to reach other Tor clients, but others
284 were more dubious. For example, the KDE Window manager try to look up
285 the host name in DNS, for no apparent reason, but if this lookup is
286 blocked the KDE desktop get periodically stuck when I use it. Another
287 surprise was how much Firefox call home directly to mozilla.com,
288 mozilla.net and googleapis.com, to mention a few, when I visit other
289 web pages. This direct connection happen even if I told Firefox to
290 always use a proxy, and the proxy setting is ignored for this traffic.
291 Other surprising connections come from audacity and dirmngr (I do not
292 use Gnome). It took some trial and error to get a good default set of
293 permissions. Without it, I would get popups asking for permissions at
294 any time, also the most inconvenient ones where I am in the middle of
295 a time sensitive gaming session.&lt;/p&gt;
296
297 &lt;p&gt;I suspect some application developers should rethink when then need
298 to use network connections or DNS lookups, and recommend testing
299 OpenSnitch (only &lt;tt&gt;apt install opensnitch&lt;/tt&gt; away in Debian
300 Bookworm) to locate and report any surprising Internet connections on
301 your desktop machine.&lt;/p&gt;
302
303 &lt;p&gt;At the moment the upstream developer and Debian package maintainer
304 is working on making the system more reliable in Debian, by enabling
305 the eBPF kernel module to track processes and connections instead of
306 depending in content in /proc/. This should enter unstable fairly
307 soon.&lt;/p&gt;
308
309 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
310 activities, please send Bitcoin donations to my address
311 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
312
313 &lt;p&gt;&lt;strong&gt;Update 2023-06-12&lt;/strong&gt;: I got a tip about
314 &lt;a href=&quot;https://wiki.debian.org/PrivacyIssues&quot;&gt;a list of privacy
315 issues in Free Software&lt;/a&gt; and the
316 &lt;a href=&quot;irc://irc.debian.org/%23debian-privacy&quot;&gt;#debian-privacy IRC
317 channel&lt;/a&gt; discussing these topics.&lt;/p&gt;
318
319 </description>
320 </item>
321
322 <item>
323 <title>wmbusmeters, parse data from your utility meter - nice free software</title>
324 <link>https://people.skolelinux.org/pere/blog/wmbusmeters__parse_data_from_your_utility_meter___nice_free_software.html</link>
325 <guid isPermaLink="true">https://people.skolelinux.org/pere/blog/wmbusmeters__parse_data_from_your_utility_meter___nice_free_software.html</guid>
326 <pubDate>Fri, 19 May 2023 21:50:00 +0200</pubDate>
327 <description>&lt;p&gt;There is a European standard for reading utility meters like water,
328 gas, electricity or heat distribution meters. The
329 &lt;a href=&quot;https://en.wikipedia.org/wiki/Meter-Bus&quot;&gt;Meter-Bus standard
330 (EN 13757-2, EN 13757-3 and EN 137574)&lt;/a&gt; provide a cross vendor way
331 to talk to and collect meter data. I ran into this standard when I
332 wanted to monitor some heat distribution meters, and managed to find
333 free software that could do the job. The meters in question broadcast
334 encrypted messages with meter information via radio, and the hardest
335 part was to track down the encryption keys from the vendor. With this
336 in place I could set up a MQTT gateway to submit the meter data for
337 graphing.&lt;/p&gt;
338
339 &lt;p&gt;The free software systems in question,
340 &lt;a href=&quot;https://tracker.debian.org/pkg/rtl-wmbus&quot;&gt;rtl-wmbus&lt;/a&gt; to
341 read the messages from a software defined radio, and
342 &lt;a href=&quot;https://tracker.debian.org/pkg/wmbusmeters&quot;&gt;wmbusmeters&lt;/a&gt; to
343 decrypt and decode the content of the messages, is working very well
344 and allowe me to get frequent updates from my meters. I got in touch
345 with upstream last year to see if there was any interest in publishing
346 the packages via Debian. I was very happy to learn that Fredrik
347 Öhrström volunteered to maintain the packages, and I have since
348 assisted him in getting Debian package build rules in place as well as
349 sponsoring the packages into the Debian archive. Sadly we completed
350 it too late for them to become part of the next stable Debian release
351 (Bookworm). The wmbusmeters package just cleared the NEW queue. It
352 will need some work to fix a built problem, but I expect Fredrik will
353 find a solution soon.&lt;/p&gt;
354
355 &lt;p&gt;If you got a infrastructure meter supporting the Meter Bus
356 standard, I strongly recommend having a look at these nice
357 packages.&lt;/p&gt;
358
359 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
360 activities, please send Bitcoin donations to my address
361 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
362 </description>
363 </item>
364
365 <item>
366 <title>The 2023 LinuxCNC Norwegian developer gathering</title>
367 <link>https://people.skolelinux.org/pere/blog/The_2023_LinuxCNC_Norwegian_developer_gathering.html</link>
368 <guid isPermaLink="true">https://people.skolelinux.org/pere/blog/The_2023_LinuxCNC_Norwegian_developer_gathering.html</guid>
369 <pubDate>Sun, 14 May 2023 20:30:00 +0200</pubDate>
370 <description>&lt;p&gt;The LinuxCNC project is making headway these days. A lot of
371 patches and issues have seen activity on
372 &lt;a href=&quot;https://github.com/LinuxCNC/linuxcnc/&quot;&gt;the project github
373 pages&lt;/a&gt; recently. A few weeks ago there was a developer gathering
374 over at the &lt;a href=&quot;https://tormach.com/&quot;&gt;Tormach&lt;/a&gt; headquarter in
375 Wisconsin, and now we are planning a new gathering in Norway. If you
376 wonder what LinuxCNC is, lets quote Wikipedia:&lt;/p&gt;
377
378 &lt;blockquote&gt;
379 &quot;LinuxCNC is a software system for numerical control of
380 machines such as milling machines, lathes, plasma cutters, routers,
381 cutting machines, robots and hexapods. It can control up to 9 axes or
382 joints of a CNC machine using G-code (RS-274NGC) as input. It has
383 several GUIs suited to specific kinds of usage (touch screen,
384 interactive development).&quot;
385 &lt;/blockquote&gt;
386
387 &lt;p&gt;The Norwegian developer gathering take place the weekend June 16th
388 to 18th this year, and is open for everyone interested in contributing
389 to LinuxCNC. Up to date information about the gathering can be found
390 in
391 &lt;a href=&quot;https://sourceforge.net/p/emc/mailman/emc-developers/thread/sa64jp06nob.fsf%40hjemme.reinholdtsen.name/#msg37837251&quot;&gt;the
392 developer mailing list thread&lt;/a&gt; where the gathering was announced.
393 Thanks to the good people at
394 &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt;,
395 &lt;a href=&quot;https://www.redpill-linpro.com/&quot;&gt;Redpill-Linpro&lt;/a&gt; and
396 &lt;a href=&quot;https://www.nuugfoundation.no/no/&quot;&gt;NUUG Foundation&lt;/a&gt;, we
397 have enough sponsor funds to pay for food, and shelter for the people
398 traveling from afar to join us. If you would like to join the
399 gathering, get in touch.&lt;/p&gt;
400
401 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
402 activities, please send Bitcoin donations to my address
403 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
404 </description>
405 </item>
406
407 <item>
408 <title>OpenSnitch in Debian ready for prime time</title>
409 <link>https://people.skolelinux.org/pere/blog/OpenSnitch_in_Debian_ready_for_prime_time.html</link>
410 <guid isPermaLink="true">https://people.skolelinux.org/pere/blog/OpenSnitch_in_Debian_ready_for_prime_time.html</guid>
411 <pubDate>Sat, 13 May 2023 12:10:00 +0200</pubDate>
412 <description>&lt;p&gt;A bit delayed,
413 &lt;a href=&quot;https://tracker.debian.org/pkg/opensnitch&quot;&gt;the interactive
414 application firewall OpenSnitch&lt;/a&gt; package in Debian now got the
415 latest fixes ready for Debian Bookworm. Because it depend on a
416 package missing on some architectures, the autopkgtest check of the
417 testing migration script did not understand that the tests were
418 actually working, so the migration was delayed. A bug in the package
419 dependencies is also fixed, so those installing the firewall package
420 (opensnitch) now also get the GUI admin tool (python3-opensnitch-ui)
421 installed by default. I am very grateful to Gustavo Iñiguez Goya for
422 his work on getting the package ready for Debian Bookworm.&lt;/p&gt;
423
424 &lt;p&gt;Armed with this package I have discovered some surprising
425 connections from programs I believed were able to work completly
426 offline, and it has already proven its worth, at least to me. If you
427 too want to get more familiar with the kind of programs using
428 Internett connections on your machine, I recommend testing &lt;tt&gt;apt
429 install opensnitch&lt;/tt&gt; in Bookworm and see what you think.&lt;/p&gt;
430
431 &lt;p&gt;The package is still not able to build its eBPF module within
432 Debian. Not sure how much work it would be to get it working, but
433 suspect some kernel related packages need to be extended with more
434 header files to get it working.&lt;/p&gt;
435
436 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
437 activities, please send Bitcoin donations to my address
438 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
439 </description>
440 </item>
441
442 <item>
443 <title>Speech to text, she APTly whispered, how hard can it be?</title>
444 <link>https://people.skolelinux.org/pere/blog/Speech_to_text__she_APTly_whispered__how_hard_can_it_be_.html</link>
445 <guid isPermaLink="true">https://people.skolelinux.org/pere/blog/Speech_to_text__she_APTly_whispered__how_hard_can_it_be_.html</guid>
446 <pubDate>Sun, 23 Apr 2023 09:40:00 +0200</pubDate>
447 <description>&lt;p&gt;While visiting a convention during Easter, it occurred to me that
448 it would be great if I could have a digital Dictaphone with
449 transcribing capabilities, providing me with texts to cut-n-paste into
450 stuff I need to write. The background is that long drives often bring
451 up the urge to write on texts I am working on, which of course is out
452 of the question while driving. With the release of
453 &lt;a href=&quot;https://github.com/openai/whisper/&quot;&gt;OpenAI Whisper&lt;/a&gt;, this
454 seem to be within reach with Free Software, so I decided to give it a
455 go. OpenAI Whisper is a Linux based neural network system to read in
456 audio files and provide text representation of the speech in that
457 audio recording. It handle multiple languages and according to its
458 creators even can translate into a different language than the spoken
459 one. I have not tested the latter feature. It can either use the CPU
460 or a GPU with CUDA support. As far as I can tell, CUDA in practice
461 limit that feature to NVidia graphics cards. I have few of those, as
462 they do not work great with free software drivers, and have not tested
463 the GPU option. While looking into the matter, I did discover some
464 work to provide CUDA support on non-NVidia GPUs, and some work with
465 the library used by Whisper to port it to other GPUs, but have not
466 spent much time looking into GPU support yet. I&#39;ve so far used an old
467 X220 laptop as my test machine, and only transcribed using its
468 CPU.&lt;/p&gt;
469
470 &lt;p&gt;As it from a privacy standpoint is unthinkable to use computers
471 under control of someone else (aka a &quot;cloud&quot; service) to transcribe
472 ones thoughts and personal notes, I want to run the transcribing
473 system locally on my own computers. The only sensible approach to me
474 is to make the effort I put into this available for any Linux user and
475 to upload the needed packages into Debian. Looking at Debian Bookworm, I
476 discovered that only three packages were missing,
477 &lt;a href=&quot;https://bugs.debian.org/1034307&quot;&gt;tiktoken&lt;/a&gt;,
478 &lt;a href=&quot;https://bugs.debian.org/1034144&quot;&gt;triton&lt;/a&gt;, and
479 &lt;a href=&quot;https://bugs.debian.org/1034091&quot;&gt;openai-whisper&lt;/a&gt;. For a while
480 I also believed
481 &lt;a href=&quot;https://bugs.debian.org/1034286&quot;&gt;ffmpeg-python&lt;/a&gt; was
482 needed, but as its
483 &lt;a href=&quot;https://github.com/kkroening/ffmpeg-python/issues/760&quot;&gt;upstream
484 seem to have vanished&lt;/a&gt; I found it safer
485 &lt;a href=&quot;https://github.com/openai/whisper/pull/1242&quot;&gt;to rewrite
486 whisper&lt;/a&gt; to stop depending on in than to introduce ffmpeg-python
487 into Debian. I decided to place these packages under the umbrella of
488 &lt;a href=&quot;https://salsa.debian.org/deeplearning-team&quot;&gt;the Debian Deep
489 Learning Team&lt;/a&gt;, which seem like the best team to look after such
490 packages. Discussing the topic within the group also made me aware
491 that the triton package was already a future dependency of newer
492 versions of the torch package being planned, and would be needed after
493 Bookworm is released.&lt;/p&gt;
494
495 &lt;p&gt;All required code packages have been now waiting in
496 &lt;a href=&quot;https://ftp-master.debian.org/new.html&quot;&gt;the Debian NEW
497 queue&lt;/a&gt; since Wednesday, heading for Debian Experimental until
498 Bookworm is released. An unsolved issue is how to handle the neural
499 network models used by Whisper. The default behaviour of Whisper is
500 to require Internet connectivity and download the model requested to
501 &lt;tt&gt;~/.cache/whisper/&lt;/tt&gt; on first invocation. This obviously would
502 fail &lt;a href=&quot;https://people.debian.org/~bap/dfsg-faq.html&quot;&gt;the
503 deserted island test of free software&lt;/a&gt; as the Debian packages would
504 be unusable for someone stranded with only the Debian archive and solar
505 powered computer on a deserted island.&lt;/p&gt;
506
507 &lt;p&gt;Because of this, I would love to include the models in the Debian
508 mirror system. This is problematic, as the models are very large
509 files, which would put a heavy strain on the Debian mirror
510 infrastructure around the globe. The strain would be even higher if
511 the models change often, which luckily as far as I can tell they do
512 not. The small model, which according to its creator is most useful
513 for English and in my experience is not doing a great job there
514 either, is 462 MiB (deb is 414 MiB). The medium model, which to me
515 seem to handle English speech fairly well is 1.5 GiB (deb is 1.3 GiB)
516 and the large model is 2.9 GiB (deb is 2.6 GiB). I would assume
517 everyone with enough resources would prefer to use the large model for
518 highest quality. I believe the models themselves would have to go
519 into the non-free part of the Debian archive, as they are not really
520 including any useful source code for updating the models. The
521 &quot;source&quot;, aka the model training set, according to the creators
522 consist of &quot;680,000 hours of multilingual and multitask supervised
523 data collected from the web&quot;, which to me reads material with both
524 unknown copyright terms, unavailable to the general public. In other
525 words, the source is not available according to the Debian Free
526 Software Guidelines and the model should be considered non-free.&lt;/p&gt;
527
528 &lt;p&gt;I asked the Debian FTP masters for advice regarding uploading a
529 model package on their IRC channel, and based on the feedback there it
530 is still unclear to me if such package would be accepted into the
531 archive. In any case I wrote build rules for a
532 &lt;a href=&quot;https://salsa.debian.org/deeplearning-team/openai-whisper-model&quot;&gt;OpenAI
533 Whisper model package&lt;/a&gt; and
534 &lt;a href=&quot;https://github.com/openai/whisper/pull/1257&quot;&gt;modified the
535 Whisper code base&lt;/a&gt; to prefer shared files under &lt;tt&gt;/usr/&lt;/tt&gt; and
536 &lt;tt&gt;/var/&lt;/tt&gt; over user specific files in &lt;tt&gt;~/.cache/whisper/&lt;/tt&gt;
537 to be able to use these model packages, to prepare for such
538 possibility. One solution might be to include only one of the models
539 (small or medium, I guess) in the Debian archive, and ask people to
540 download the others from the Internet. Not quite sure what to do
541 here, and advice is most welcome (use the debian-ai mailing list).&lt;/p&gt;
542
543 &lt;p&gt;To make it easier to test the new packages while I wait for them to
544 clear the NEW queue, I created an APT source targeting bookworm. I
545 selected Bookworm instead of Bullseye, even though I know the latter
546 would reach more users, is that some of the required dependencies are
547 missing from Bullseye and I during this phase of testing did not want
548 to backport a lot of packages just to get up and running.&lt;/p&gt;
549
550 &lt;p&gt;Here is a recipe to run as user root if you want to test OpenAI
551 Whisper using Debian packages on your Debian Bookworm installation,
552 first adding the APT repository GPG key to the list of trusted keys,
553 then setting up the APT repository and finally installing the packages
554 and one of the models:&lt;/p&gt;
555
556 &lt;p&gt;&lt;pre&gt;
557 curl https://geekbay.nuug.no/~pere/openai-whisper/D78F5C4796F353D211B119E28200D9B589641240.asc \
558 -o /etc/apt/trusted.gpg.d/pere-whisper.asc
559 mkdir -p /etc/apt/sources.list.d
560 cat &gt; /etc/apt/sources.list.d/pere-whisper.list &amp;lt;&amp;lt;EOF
561 deb https://geekbay.nuug.no/~pere/openai-whisper/ bookworm main
562 deb-src https://geekbay.nuug.no/~pere/openai-whisper/ bookworm main
563 EOF
564 apt update
565 apt install openai-whisper
566 &lt;/pre&gt;&lt;/p&gt;
567
568 &lt;p&gt;The package work for me, but have not yet been tested on any other
569 computer than my own. With it, I have been able to (badly) transcribe
570 a 2 minute 40 second Norwegian audio clip to test using the small
571 model. This took 11 minutes and around 2.2 GiB of RAM. Transcribing
572 the same file with the medium model gave a accurate text in 77 minutes
573 using around 5.2 GiB of RAM. My test machine had too little memory to
574 test the large model, which I believe require 11 GiB of RAM. In
575 short, this now work for me using Debian packages, and I hope it will
576 for you and everyone else once the packages enter Debian.&lt;/p&gt;
577
578 &lt;p&gt;Now I can start on the audio recording part of this project.&lt;/p&gt;
579
580 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
581 activities, please send Bitcoin donations to my address
582 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
583 </description>
584 </item>
585
586 <item>
587 <title>rtlsdr-scanner, software defined radio frequency scanner for Linux - nice free software</title>
588 <link>https://people.skolelinux.org/pere/blog/rtlsdr_scanner__software_defined_radio_frequency_scanner_for_Linux____nice_free_software.html</link>
589 <guid isPermaLink="true">https://people.skolelinux.org/pere/blog/rtlsdr_scanner__software_defined_radio_frequency_scanner_for_Linux____nice_free_software.html</guid>
590 <pubDate>Fri, 7 Apr 2023 23:10:00 +0200</pubDate>
591 <description>&lt;p&gt;Today I finally found time to track down a useful radio frequency
592 scanner for my software defined radio. Just for fun I tried to locate
593 the radios used in the areas, and a good start would be to scan all
594 the frequencies to see what is in use. I&#39;ve tried to find a useful
595 program earlier, but ran out of time before I managed to find a useful
596 tool. This time I was more successful, and after a few false leads I
597 found a description of
598 &lt;a href=&quot;https://www.kali.org/tools/rtlsdr-scanner/&quot;&gt;rtlsdr-scanner
599 over at the Kali site&lt;/a&gt;, and was able to track down
600 &lt;a href=&quot;https://gitlab.com/kalilinux/packages/rtlsdr-scanner.git&quot;&gt;the
601 Kali package git repository&lt;/a&gt; to build a deb package for the
602 scanner. Sadly the package is missing from the Debian project itself,
603 at least in Debian Bullseye. Two runtime dependencies,
604 &lt;a href=&quot;https://gitlab.com/kalilinux/packages/python-visvis.git&quot;&gt;python-visvis&lt;/a&gt;
605 and
606 &lt;a href=&quot;https://gitlab.com/kalilinux/packages/python-rtlsdr.git&quot;&gt;python-rtlsdr&lt;/a&gt;
607 had to be built and installed separately. Luckily &#39;&lt;tt&gt;gbp
608 buildpackage&lt;/tt&gt;&#39; handled them just fine and no further packages had
609 to be manually built. The end result worked out of the box after
610 installation.&lt;/p&gt;
611
612 &lt;p&gt;My initial scans for FM channels worked just fine, so I knew the
613 scanner was functioning. But when I tried to scan every frequency
614 from 100 to 1000 MHz, the program stopped unexpectedly near the
615 completion. After some debugging I discovered USB software radio I
616 used rejected frequencies above 948 MHz, triggering a unreported
617 exception breaking the scan. Changing the scan to end at 957 worked
618 better. I similarly found the lower limit to be around 15, and ended
619 up with the following full scan:&lt;/p&gt;
620
621 &lt;p&gt;&lt;a href=&quot;https://people.skolelinux.org/pere/blog/images/2023-04-07-radio-freq-scanning.png&quot;&gt;&lt;img src=&quot;https://people.skolelinux.org/pere/blog/images/2023-04-07-radio-freq-scanning.png&quot; width=&quot;100%&quot;&gt;&lt;/a&gt;&lt;/p&gt;
622
623 &lt;p&gt;Saving the scan did not work, but exporting it as a CSV file worked
624 just fine. I ended up with around 477k CVS lines with dB level for
625 the given frequency.&lt;/p&gt;
626
627 &lt;p&gt;The save failure seem to be a missing UTF-8 encoding issue in the
628 python code. Will see if I can find time to send a patch
629 &lt;a href=&quot;https://github.com/CdeMills/RTLSDR-Scanner/&quot;&gt;upstream&lt;/a&gt;
630 later to fix this exception:&lt;/p&gt;
631
632 &lt;pre&gt;
633 Traceback (most recent call last):
634 File &quot;/usr/lib/python3/dist-packages/rtlsdr_scanner/main_window.py&quot;, line 485, in __on_save
635 save_plot(fullName, self.scanInfo, self.spectrum, self.locations)
636 File &quot;/usr/lib/python3/dist-packages/rtlsdr_scanner/file.py&quot;, line 408, in save_plot
637 handle.write(json.dumps(data, indent=4))
638 TypeError: a bytes-like object is required, not &#39;str&#39;
639 Traceback (most recent call last):
640 File &quot;/usr/lib/python3/dist-packages/rtlsdr_scanner/main_window.py&quot;, line 485, in __on_save
641 save_plot(fullName, self.scanInfo, self.spectrum, self.locations)
642 File &quot;/usr/lib/python3/dist-packages/rtlsdr_scanner/file.py&quot;, line 408, in save_plot
643 handle.write(json.dumps(data, indent=4))
644 TypeError: a bytes-like object is required, not &#39;str&#39;
645 &lt;/pre&gt;
646
647 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
648 activities, please send Bitcoin donations to my address
649 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
650 </description>
651 </item>
652
653 </channel>
654 </rss>