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