]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
Ny om inhabilitet.
[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/Invidious_add_on_for_Kodi_20.html">Invidious add-on for Kodi 20</a></div>
24 <div class="date">10th August 2023</div>
25 <div class="body"><p>I still enjoy <a href="https://kodi.tv/">Kodi</a> and
26 <a href="https://libreelec.tv/">LibreELEC</a> as my multimedia center
27 at home. Sadly two of the services I really would like to use from
28 within Kodi are not easily available. The most wanted add-on would be
29 one making <a href="https://archive.org/">The Internet Archive</a>
30 available, and it has
31 <a href="https://kodi.wiki/view/Add-on:Internet_Archive">not been
32 working</a> for many years. The second most wanted add-on is one
33 using <a href="https://invidious.io/">the Invidious privacy enhanced
34 Youtube frontent</a>. A plugin for this has been partly working, but
35 not been kept up to date in the Kodi add-on repository, and its
36 upstream seem to have given it up in April this year, when the git
37 repository was closed. A few days ago I got tired of this sad state
38 of affairs and decided to
39 <a href="https://github.com/petterreinholdtsen/kodi-invidious-plugin">have
40 a go at improving the Invidious add-on</a>. As
41 <a href="https://github.com/iv-org/invidious/issues/3872">Google has
42 already attacked</a> the Invidious concept, so it need all the support
43 if can get. My small contribution here is to improve the service
44 status on Kodi.</p>
45
46 <p>I added support to the Invidious add-on for automatically picking a
47 working Invidious instance, instead of requiring the user to specify
48 the URL to a specific instance after installation. I also had a look
49 at the set of patches floating around in the various forks on github,
50 and decided to clean up at least some of the features I liked and
51 integrate them into my new release branch. Now the plugin can handle
52 channel and short video items in search results. Earlier it could
53 only handle single video instances in the search response. I also
54 brushed up the set of metadata displayed a bit, but hope I can figure
55 out how to get more relevant metadata displayed.</p>
56
57 <p>Because I only use Kodi 20 myself, I only test on version 20 and am
58 only motivated to ensure version 20 is working. Because of API changes
59 between version 19 and 20, I suspect it will fail with earlier Kodi
60 versions.</p>
61
62 <p>I already
63 <a href="https://github.com/xbmc/repo-plugins/pull/4363">asked to have
64 the add-on added</a> to the official Kodi 20 repository, and is
65 waiting to heard back from the repo maintainers.</p>
66
67 <p>As usual, if you use Bitcoin and want to show your support of my
68 activities, please send Bitcoin donations to my address
69 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
70 </div>
71 <div class="tags">
72
73
74 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>.
75
76
77 </div>
78 </div>
79 <div class="padding"></div>
80
81 <div class="entry">
82 <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>
83 <div class="date">11th June 2023</div>
84 <div class="body"><p>With yesterdays
85 <a href="https://www.debian.org/News/2023/20230610">release of Debian
86 12 Bookworm</a>, I am happy to know the
87 <a href="https://tracker.debian.org/pkg/opensnitch">the interactive
88 application firewall OpenSnitch</a> is available for a wider audience.
89 I have been running it for a few weeks now, and have been surprised
90 about some of the programs connecting to the Internet. Some programs
91 are obviously calling out from my machine, like the NTP network based
92 clock adjusting system and Tor to reach other Tor clients, but others
93 were more dubious. For example, the KDE Window manager try to look up
94 the host name in DNS, for no apparent reason, but if this lookup is
95 blocked the KDE desktop get periodically stuck when I use it. Another
96 surprise was how much Firefox call home directly to mozilla.com,
97 mozilla.net and googleapis.com, to mention a few, when I visit other
98 web pages. This direct connection happen even if I told Firefox to
99 always use a proxy, and the proxy setting is ignored for this traffic.
100 Other surprising connections come from audacity and dirmngr (I do not
101 use Gnome). It took some trial and error to get a good default set of
102 permissions. Without it, I would get popups asking for permissions at
103 any time, also the most inconvenient ones where I am in the middle of
104 a time sensitive gaming session.</p>
105
106 <p>I suspect some application developers should rethink when then need
107 to use network connections or DNS lookups, and recommend testing
108 OpenSnitch (only <tt>apt install opensnitch</tt> away in Debian
109 Bookworm) to locate and report any surprising Internet connections on
110 your desktop machine.</p>
111
112 <p>At the moment the upstream developer and Debian package maintainer
113 is working on making the system more reliable in Debian, by enabling
114 the eBPF kernel module to track processes and connections instead of
115 depending in content in /proc/. This should enter unstable fairly
116 soon.</p>
117
118 <p>As usual, if you use Bitcoin and want to show your support of my
119 activities, please send Bitcoin donations to my address
120 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
121
122 <p><strong>Update 2023-06-12</strong>: I got a tip about
123 <a href="https://wiki.debian.org/PrivacyIssues">a list of privacy
124 issues in Free Software</a> and the
125 <a href="irc://irc.debian.org/%23debian-privacy">#debian-privacy IRC
126 channel</a> discussing these topics.</p>
127
128 </div>
129 <div class="tags">
130
131
132 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>.
133
134
135 </div>
136 </div>
137 <div class="padding"></div>
138
139 <div class="entry">
140 <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>
141 <div class="date">19th May 2023</div>
142 <div class="body"><p>There is a European standard for reading utility meters like water,
143 gas, electricity or heat distribution meters. The
144 <a href="https://en.wikipedia.org/wiki/Meter-Bus">Meter-Bus standard
145 (EN 13757-2, EN 13757-3 and EN 137574)</a> provide a cross vendor way
146 to talk to and collect meter data. I ran into this standard when I
147 wanted to monitor some heat distribution meters, and managed to find
148 free software that could do the job. The meters in question broadcast
149 encrypted messages with meter information via radio, and the hardest
150 part was to track down the encryption keys from the vendor. With this
151 in place I could set up a MQTT gateway to submit the meter data for
152 graphing.</p>
153
154 <p>The free software systems in question,
155 <a href="https://tracker.debian.org/pkg/rtl-wmbus">rtl-wmbus</a> to
156 read the messages from a software defined radio, and
157 <a href="https://tracker.debian.org/pkg/wmbusmeters">wmbusmeters</a> to
158 decrypt and decode the content of the messages, is working very well
159 and allowe me to get frequent updates from my meters. I got in touch
160 with upstream last year to see if there was any interest in publishing
161 the packages via Debian. I was very happy to learn that Fredrik
162 Öhrström volunteered to maintain the packages, and I have since
163 assisted him in getting Debian package build rules in place as well as
164 sponsoring the packages into the Debian archive. Sadly we completed
165 it too late for them to become part of the next stable Debian release
166 (Bookworm). The wmbusmeters package just cleared the NEW queue. It
167 will need some work to fix a built problem, but I expect Fredrik will
168 find a solution soon.</p>
169
170 <p>If you got a infrastructure meter supporting the Meter Bus
171 standard, I strongly recommend having a look at these nice
172 packages.</p>
173
174 <p>As usual, if you use Bitcoin and want to show your support of my
175 activities, please send Bitcoin donations to my address
176 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
177 </div>
178 <div class="tags">
179
180
181 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>.
182
183
184 </div>
185 </div>
186 <div class="padding"></div>
187
188 <div class="entry">
189 <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>
190 <div class="date">14th May 2023</div>
191 <div class="body"><p>The LinuxCNC project is making headway these days. A lot of
192 patches and issues have seen activity on
193 <a href="https://github.com/LinuxCNC/linuxcnc/">the project github
194 pages</a> recently. A few weeks ago there was a developer gathering
195 over at the <a href="https://tormach.com/">Tormach</a> headquarter in
196 Wisconsin, and now we are planning a new gathering in Norway. If you
197 wonder what LinuxCNC is, lets quote Wikipedia:</p>
198
199 <blockquote>
200 "LinuxCNC is a software system for numerical control of
201 machines such as milling machines, lathes, plasma cutters, routers,
202 cutting machines, robots and hexapods. It can control up to 9 axes or
203 joints of a CNC machine using G-code (RS-274NGC) as input. It has
204 several GUIs suited to specific kinds of usage (touch screen,
205 interactive development)."
206 </blockquote>
207
208 <p>The Norwegian developer gathering take place the weekend June 16th
209 to 18th this year, and is open for everyone interested in contributing
210 to LinuxCNC. Up to date information about the gathering can be found
211 in
212 <a href="https://sourceforge.net/p/emc/mailman/emc-developers/thread/sa64jp06nob.fsf%40hjemme.reinholdtsen.name/#msg37837251">the
213 developer mailing list thread</a> where the gathering was announced.
214 Thanks to the good people at
215 <a href="https://www.debian.org/">Debian</a>,
216 <a href="https://www.redpill-linpro.com/">Redpill-Linpro</a> and
217 <a href="https://www.nuugfoundation.no/no/">NUUG Foundation</a>, we
218 have enough sponsor funds to pay for food, and shelter for the people
219 traveling from afar to join us. If you would like to join the
220 gathering, get in touch.</p>
221
222 <p>As usual, if you use Bitcoin and want to show your support of my
223 activities, please send Bitcoin donations to my address
224 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
225 </div>
226 <div class="tags">
227
228
229 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>.
230
231
232 </div>
233 </div>
234 <div class="padding"></div>
235
236 <div class="entry">
237 <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>
238 <div class="date">13th May 2023</div>
239 <div class="body"><p>A bit delayed,
240 <a href="https://tracker.debian.org/pkg/opensnitch">the interactive
241 application firewall OpenSnitch</a> package in Debian now got the
242 latest fixes ready for Debian Bookworm. Because it depend on a
243 package missing on some architectures, the autopkgtest check of the
244 testing migration script did not understand that the tests were
245 actually working, so the migration was delayed. A bug in the package
246 dependencies is also fixed, so those installing the firewall package
247 (opensnitch) now also get the GUI admin tool (python3-opensnitch-ui)
248 installed by default. I am very grateful to Gustavo Iñiguez Goya for
249 his work on getting the package ready for Debian Bookworm.</p>
250
251 <p>Armed with this package I have discovered some surprising
252 connections from programs I believed were able to work completly
253 offline, and it has already proven its worth, at least to me. If you
254 too want to get more familiar with the kind of programs using
255 Internett connections on your machine, I recommend testing <tt>apt
256 install opensnitch</tt> in Bookworm and see what you think.</p>
257
258 <p>The package is still not able to build its eBPF module within
259 Debian. Not sure how much work it would be to get it working, but
260 suspect some kernel related packages need to be extended with more
261 header files to get it working.</p>
262
263 <p>As usual, if you use Bitcoin and want to show your support of my
264 activities, please send Bitcoin donations to my address
265 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
266 </div>
267 <div class="tags">
268
269
270 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>.
271
272
273 </div>
274 </div>
275 <div class="padding"></div>
276
277 <div class="entry">
278 <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>
279 <div class="date">23rd April 2023</div>
280 <div class="body"><p>While visiting a convention during Easter, it occurred to me that
281 it would be great if I could have a digital Dictaphone with
282 transcribing capabilities, providing me with texts to cut-n-paste into
283 stuff I need to write. The background is that long drives often bring
284 up the urge to write on texts I am working on, which of course is out
285 of the question while driving. With the release of
286 <a href="https://github.com/openai/whisper/">OpenAI Whisper</a>, this
287 seem to be within reach with Free Software, so I decided to give it a
288 go. OpenAI Whisper is a Linux based neural network system to read in
289 audio files and provide text representation of the speech in that
290 audio recording. It handle multiple languages and according to its
291 creators even can translate into a different language than the spoken
292 one. I have not tested the latter feature. It can either use the CPU
293 or a GPU with CUDA support. As far as I can tell, CUDA in practice
294 limit that feature to NVidia graphics cards. I have few of those, as
295 they do not work great with free software drivers, and have not tested
296 the GPU option. While looking into the matter, I did discover some
297 work to provide CUDA support on non-NVidia GPUs, and some work with
298 the library used by Whisper to port it to other GPUs, but have not
299 spent much time looking into GPU support yet. I've so far used an old
300 X220 laptop as my test machine, and only transcribed using its
301 CPU.</p>
302
303 <p>As it from a privacy standpoint is unthinkable to use computers
304 under control of someone else (aka a "cloud" service) to transcribe
305 ones thoughts and personal notes, I want to run the transcribing
306 system locally on my own computers. The only sensible approach to me
307 is to make the effort I put into this available for any Linux user and
308 to upload the needed packages into Debian. Looking at Debian Bookworm, I
309 discovered that only three packages were missing,
310 <a href="https://bugs.debian.org/1034307">tiktoken</a>,
311 <a href="https://bugs.debian.org/1034144">triton</a>, and
312 <a href="https://bugs.debian.org/1034091">openai-whisper</a>. For a while
313 I also believed
314 <a href="https://bugs.debian.org/1034286">ffmpeg-python</a> was
315 needed, but as its
316 <a href="https://github.com/kkroening/ffmpeg-python/issues/760">upstream
317 seem to have vanished</a> I found it safer
318 <a href="https://github.com/openai/whisper/pull/1242">to rewrite
319 whisper</a> to stop depending on in than to introduce ffmpeg-python
320 into Debian. I decided to place these packages under the umbrella of
321 <a href="https://salsa.debian.org/deeplearning-team">the Debian Deep
322 Learning Team</a>, which seem like the best team to look after such
323 packages. Discussing the topic within the group also made me aware
324 that the triton package was already a future dependency of newer
325 versions of the torch package being planned, and would be needed after
326 Bookworm is released.</p>
327
328 <p>All required code packages have been now waiting in
329 <a href="https://ftp-master.debian.org/new.html">the Debian NEW
330 queue</a> since Wednesday, heading for Debian Experimental until
331 Bookworm is released. An unsolved issue is how to handle the neural
332 network models used by Whisper. The default behaviour of Whisper is
333 to require Internet connectivity and download the model requested to
334 <tt>~/.cache/whisper/</tt> on first invocation. This obviously would
335 fail <a href="https://people.debian.org/~bap/dfsg-faq.html">the
336 deserted island test of free software</a> as the Debian packages would
337 be unusable for someone stranded with only the Debian archive and solar
338 powered computer on a deserted island.</p>
339
340 <p>Because of this, I would love to include the models in the Debian
341 mirror system. This is problematic, as the models are very large
342 files, which would put a heavy strain on the Debian mirror
343 infrastructure around the globe. The strain would be even higher if
344 the models change often, which luckily as far as I can tell they do
345 not. The small model, which according to its creator is most useful
346 for English and in my experience is not doing a great job there
347 either, is 462 MiB (deb is 414 MiB). The medium model, which to me
348 seem to handle English speech fairly well is 1.5 GiB (deb is 1.3 GiB)
349 and the large model is 2.9 GiB (deb is 2.6 GiB). I would assume
350 everyone with enough resources would prefer to use the large model for
351 highest quality. I believe the models themselves would have to go
352 into the non-free part of the Debian archive, as they are not really
353 including any useful source code for updating the models. The
354 "source", aka the model training set, according to the creators
355 consist of "680,000 hours of multilingual and multitask supervised
356 data collected from the web", which to me reads material with both
357 unknown copyright terms, unavailable to the general public. In other
358 words, the source is not available according to the Debian Free
359 Software Guidelines and the model should be considered non-free.</p>
360
361 <p>I asked the Debian FTP masters for advice regarding uploading a
362 model package on their IRC channel, and based on the feedback there it
363 is still unclear to me if such package would be accepted into the
364 archive. In any case I wrote build rules for a
365 <a href="https://salsa.debian.org/deeplearning-team/openai-whisper-model">OpenAI
366 Whisper model package</a> and
367 <a href="https://github.com/openai/whisper/pull/1257">modified the
368 Whisper code base</a> to prefer shared files under <tt>/usr/</tt> and
369 <tt>/var/</tt> over user specific files in <tt>~/.cache/whisper/</tt>
370 to be able to use these model packages, to prepare for such
371 possibility. One solution might be to include only one of the models
372 (small or medium, I guess) in the Debian archive, and ask people to
373 download the others from the Internet. Not quite sure what to do
374 here, and advice is most welcome (use the debian-ai mailing list).</p>
375
376 <p>To make it easier to test the new packages while I wait for them to
377 clear the NEW queue, I created an APT source targeting bookworm. I
378 selected Bookworm instead of Bullseye, even though I know the latter
379 would reach more users, is that some of the required dependencies are
380 missing from Bullseye and I during this phase of testing did not want
381 to backport a lot of packages just to get up and running.</p>
382
383 <p>Here is a recipe to run as user root if you want to test OpenAI
384 Whisper using Debian packages on your Debian Bookworm installation,
385 first adding the APT repository GPG key to the list of trusted keys,
386 then setting up the APT repository and finally installing the packages
387 and one of the models:</p>
388
389 <p><pre>
390 curl https://geekbay.nuug.no/~pere/openai-whisper/D78F5C4796F353D211B119E28200D9B589641240.asc \
391 -o /etc/apt/trusted.gpg.d/pere-whisper.asc
392 mkdir -p /etc/apt/sources.list.d
393 cat > /etc/apt/sources.list.d/pere-whisper.list &lt;&lt;EOF
394 deb https://geekbay.nuug.no/~pere/openai-whisper/ bookworm main
395 deb-src https://geekbay.nuug.no/~pere/openai-whisper/ bookworm main
396 EOF
397 apt update
398 apt install openai-whisper
399 </pre></p>
400
401 <p>The package work for me, but have not yet been tested on any other
402 computer than my own. With it, I have been able to (badly) transcribe
403 a 2 minute 40 second Norwegian audio clip to test using the small
404 model. This took 11 minutes and around 2.2 GiB of RAM. Transcribing
405 the same file with the medium model gave a accurate text in 77 minutes
406 using around 5.2 GiB of RAM. My test machine had too little memory to
407 test the large model, which I believe require 11 GiB of RAM. In
408 short, this now work for me using Debian packages, and I hope it will
409 for you and everyone else once the packages enter Debian.</p>
410
411 <p>Now I can start on the audio recording part of this project.</p>
412
413 <p>As usual, if you use Bitcoin and want to show your support of my
414 activities, please send Bitcoin donations to my address
415 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
416 </div>
417 <div class="tags">
418
419
420 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>.
421
422
423 </div>
424 </div>
425 <div class="padding"></div>
426
427 <div class="entry">
428 <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>
429 <div class="date"> 7th April 2023</div>
430 <div class="body"><p>Today I finally found time to track down a useful radio frequency
431 scanner for my software defined radio. Just for fun I tried to locate
432 the radios used in the areas, and a good start would be to scan all
433 the frequencies to see what is in use. I've tried to find a useful
434 program earlier, but ran out of time before I managed to find a useful
435 tool. This time I was more successful, and after a few false leads I
436 found a description of
437 <a href="https://www.kali.org/tools/rtlsdr-scanner/">rtlsdr-scanner
438 over at the Kali site</a>, and was able to track down
439 <a href="https://gitlab.com/kalilinux/packages/rtlsdr-scanner.git">the
440 Kali package git repository</a> to build a deb package for the
441 scanner. Sadly the package is missing from the Debian project itself,
442 at least in Debian Bullseye. Two runtime dependencies,
443 <a href="https://gitlab.com/kalilinux/packages/python-visvis.git">python-visvis</a>
444 and
445 <a href="https://gitlab.com/kalilinux/packages/python-rtlsdr.git">python-rtlsdr</a>
446 had to be built and installed separately. Luckily '<tt>gbp
447 buildpackage</tt>' handled them just fine and no further packages had
448 to be manually built. The end result worked out of the box after
449 installation.</p>
450
451 <p>My initial scans for FM channels worked just fine, so I knew the
452 scanner was functioning. But when I tried to scan every frequency
453 from 100 to 1000 MHz, the program stopped unexpectedly near the
454 completion. After some debugging I discovered USB software radio I
455 used rejected frequencies above 948 MHz, triggering a unreported
456 exception breaking the scan. Changing the scan to end at 957 worked
457 better. I similarly found the lower limit to be around 15, and ended
458 up with the following full scan:</p>
459
460 <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>
461
462 <p>Saving the scan did not work, but exporting it as a CSV file worked
463 just fine. I ended up with around 477k CVS lines with dB level for
464 the given frequency.</p>
465
466 <p>The save failure seem to be a missing UTF-8 encoding issue in the
467 python code. Will see if I can find time to send a patch
468 <a href="https://github.com/CdeMills/RTLSDR-Scanner/">upstream</a>
469 later to fix this exception:</p>
470
471 <pre>
472 Traceback (most recent call last):
473 File "/usr/lib/python3/dist-packages/rtlsdr_scanner/main_window.py", line 485, in __on_save
474 save_plot(fullName, self.scanInfo, self.spectrum, self.locations)
475 File "/usr/lib/python3/dist-packages/rtlsdr_scanner/file.py", line 408, in save_plot
476 handle.write(json.dumps(data, indent=4))
477 TypeError: a bytes-like object is required, not 'str'
478 Traceback (most recent call last):
479 File "/usr/lib/python3/dist-packages/rtlsdr_scanner/main_window.py", line 485, in __on_save
480 save_plot(fullName, self.scanInfo, self.spectrum, self.locations)
481 File "/usr/lib/python3/dist-packages/rtlsdr_scanner/file.py", line 408, in save_plot
482 handle.write(json.dumps(data, indent=4))
483 TypeError: a bytes-like object is required, not 'str'
484 </pre>
485
486 <p>As usual, if you use Bitcoin and want to show your support of my
487 activities, please send Bitcoin donations to my address
488 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
489 </div>
490 <div class="tags">
491
492
493 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>.
494
495
496 </div>
497 </div>
498 <div class="padding"></div>
499
500 <div class="entry">
501 <div class="title"><a href="https://people.skolelinux.org/pere/blog/OpenSnitch_available_in_Debian_Sid_and_Bookworm.html">OpenSnitch available in Debian Sid and Bookworm</a></div>
502 <div class="date">25th February 2023</div>
503 <div class="body"><p>Thanks to the efforts of the OpenSnitch lead developer Gustavo
504 Iñiguez Goya allowing me to sponsor the upload,
505 <a href="https://tracker.debian.org/pkg/opensnitch">the interactive
506 application firewall OpenSnitch</a> is now available in Debian
507 Testing, soon to become the next stable release of Debian.</p>
508
509 <p>This is a package which set up a network firewall on one or more
510 machines, which is controlled by a graphical user interface that will
511 ask the user if a program should be allowed to connect to the local
512 network or the Internet. If some background daemon is trying to dial
513 home, it can be blocked from doing so with a simple mouse click, or by
514 default simply by not doing anything when the GUI question dialog pop
515 up. A list of all programs discovered using the network is provided
516 in the GUI, giving the user an overview of how the machine(s) programs
517 use the network.</p>
518
519 <p>OpenSnitch was uploaded for NEW processing about a month ago, and I
520 had little hope of it getting accepted and shaping up in time for the
521 package freeze, but the Debian ftpmasters proved to be amazingly quick
522 at checking out the package and it was accepted into the archive about
523 week after the first upload. It is now team maintained under the Go
524 language team umbrella. A few fixes to the default setup is only in
525 Sid, and should migrate to Testing/Bookworm in a week.</p>
526
527 <p>During testing I ran into an
528 <a href="https://github.com/evilsocket/opensnitch/issues/813">issue
529 with Minecraft server broadcasts disappearing</a>, which was quickly
530 resolved by the developer with a patch and a proposed configuration
531 change. I've been told this was caused by the Debian packages default
532 use if /proc/ information to track down kernel status, instead of the
533 newer eBPF module that can be used. The reason is simply that
534 upstream and I have failed to find a way to build the eBPF modules for
535 OpenSnitch without a complete configured Linux kernel source tree,
536 which as far as we can tell is unavailable as a build dependency in
537 Debian. We tried unsuccessfully so far to use the kernel-headers
538 package. It would be great if someone could provide some clues how to
539 build eBPF modules on build daemons in Debian, possibly without the full
540 kernel source.</p>
541
542 <p>As usual, if you use Bitcoin and want to show your support of my
543 activities, please send Bitcoin donations to my address
544 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
545 </div>
546 <div class="tags">
547
548
549 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>.
550
551
552 </div>
553 </div>
554 <div class="padding"></div>
555
556 <div class="entry">
557 <div class="title"><a href="https://people.skolelinux.org/pere/blog/Is_the_desktop_recommending_your_program_for_opening_its_files_.html">Is the desktop recommending your program for opening its files?</a></div>
558 <div class="date">29th January 2023</div>
559 <div class="body"><p>Linux desktop systems
560 <a href="https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html">have
561 standardized</a> how programs present themselves to the desktop
562 system. If a package include a .desktop file in
563 /usr/share/applications/, Gnome, KDE, LXDE, Xfce and the other desktop
564 environments will pick up the file and use its content to generate the
565 menu of available programs in the system. A lesser known fact is that
566 a package can also explain to the desktop system how to recognize the
567 files created by the program in question, and use it to open these
568 files on request, for example via a GUI file browser.</p>
569
570 <p>A while back I ran into a package that did not tell the desktop
571 system how to recognize its files and was not used to open its files
572 in the file browser and fixed it. In the process I wrote a simple
573 debian/tests/ script to ensure the setup keep working. It might be
574 useful for other packages too, to ensure any future version of the
575 package keep handling its own files.</p>
576
577 <p>For this to work the file format need a useful MIME type that can
578 be used to identify the format. If the file format do not yet have a
579 MIME type, it should define one and preferably also
580 <a href="https://www.iana.org/assignments/media-types/media-types.xhtml">register
581 it with IANA</a> to ensure the MIME type string is reserved.</p>
582
583 <p>The script uses the <tt>xdg-mime</tt> program from xdg-utils to
584 query the database of standardized package information and ensure it
585 return sensible values. It also need the location of an example file
586 for xdg-mime to guess the format of.</p>
587
588 <pre>
589 #!/bin/sh
590 #
591 # Author: Petter Reinholdtsen
592 # License: GPL v2 or later at your choice.
593 #
594 # Validate the MIME setup, making sure motor types have
595 # application/vnd.openmotor+yaml associated with them and is connected
596 # to the openmotor desktop file.
597
598 retval=0
599
600 mimetype="application/vnd.openmotor+yaml"
601 testfile="test/data/real/o3100/motor.ric"
602 mydesktopfile="openmotor.desktop"
603
604 filemime="$(xdg-mime query filetype "$testfile")"
605
606 if [ "$mimetype" != "$filemime" ] ; then
607 retval=1
608 echo "error: xdg-mime claim motor file MIME type is $filemine, not $mimetype"
609 else
610 echo "success: xdg-mime report correct mime type $mimetype for motor file"
611 fi
612
613 desktop=$(xdg-mime query default "$mimetype")
614
615 if [ "$mydesktopfile" != "$desktop" ]; then
616 retval=1
617 echo "error: xdg-mime claim motor file should be handled by $desktop, not $mydesktopfile"
618 else
619 echo "success: xdg-mime agree motor file should be handled by $mydesktopfile"
620 fi
621
622 exit $retval
623 </pre>
624
625 <p>It is a simple way to ensure your users are not very surprised when
626 they try to open one of your file formats in their file browser.</p>
627
628 <p>As usual, if you use Bitcoin and want to show your support of my
629 activities, please send Bitcoin donations to my address
630 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
631 </div>
632 <div class="tags">
633
634
635 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>.
636
637
638 </div>
639 </div>
640 <div class="padding"></div>
641
642 <div class="entry">
643 <div class="title"><a href="https://people.skolelinux.org/pere/blog/Opensnitch__the_application_level_interactive_firewall__heading_into_the_Debian_archive.html">Opensnitch, the application level interactive firewall, heading into the Debian archive</a></div>
644 <div class="date">22nd January 2023</div>
645 <div class="body"><p>While reading a
646 <a href="https://sneak.berlin/20230115/macos-scans-your-local-files-now/">blog
647 post claiming MacOS X recently started scanning local files and
648 reporting information about them to Apple</a>, even on a machine where
649 all such callback features had been disabled, I came across a
650 description of the Little Snitch application for MacOS X. It seemed
651 like a very nice tool to have in the tool box, and I decided to see if
652 something similar was available for Linux.</p>
653
654 <p>It did not take long to find
655 <a href="https://github.com/evilsocket/opensnitch">the OpenSnitch
656 package</a>, which has been in development since 2017, and now is in
657 version 1.5.0. It has had a
658 <a href="https://bugs.debian.org/909567">request for Debian
659 packaging</a> since 2018, but no-one completed the job so far. Just
660 for fun, I decided to see if I could help, and I was very happy to
661 discover that
662 <a href="https://github.com/evilsocket/opensnitch/issues/304">upstream
663 want a Debian package too</a>.</p>
664
665 <p>After struggling a bit with getting the program to run, figuring
666 out building Go programs (and a little failed detour to look at eBPF
667 builds too - help needed), I am very happy to report that I am
668 sponsoring upstream to maintain the package in Debian, and it has
669 since this morning been waiting in NEW for the ftpmasters to have a
670 look. Perhaps it can get into the archive in time for the Bookworm
671 release?</p>
672
673 <p>As usual, if you use Bitcoin and want to show your support of my
674 activities, please send Bitcoin donations to my address
675 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
676 </div>
677 <div class="tags">
678
679
680 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>.
681
682
683 </div>
684 </div>
685 <div class="padding"></div>
686
687 <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>
688 <div id="sidebar">
689
690
691
692 <h2>Archive</h2>
693 <ul>
694
695 <li>2023
696 <ul>
697
698 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/01/">January (3)</a></li>
699
700 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/02/">February (1)</a></li>
701
702 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/04/">April (2)</a></li>
703
704 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/05/">May (3)</a></li>
705
706 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/06/">June (1)</a></li>
707
708 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/08/">August (1)</a></li>
709
710 </ul></li>
711
712 <li>2022
713 <ul>
714
715 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/02/">February (1)</a></li>
716
717 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/03/">March (3)</a></li>
718
719 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/04/">April (2)</a></li>
720
721 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/06/">June (2)</a></li>
722
723 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/07/">July (1)</a></li>
724
725 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/09/">September (1)</a></li>
726
727 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/10/">October (1)</a></li>
728
729 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/12/">December (1)</a></li>
730
731 </ul></li>
732
733 <li>2021
734 <ul>
735
736 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/01/">January (2)</a></li>
737
738 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/02/">February (1)</a></li>
739
740 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/05/">May (1)</a></li>
741
742 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/06/">June (1)</a></li>
743
744 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/07/">July (3)</a></li>
745
746 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/08/">August (1)</a></li>
747
748 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/09/">September (1)</a></li>
749
750 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/10/">October (1)</a></li>
751
752 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/12/">December (1)</a></li>
753
754 </ul></li>
755
756 <li>2020
757 <ul>
758
759 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/02/">February (2)</a></li>
760
761 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/03/">March (2)</a></li>
762
763 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/04/">April (2)</a></li>
764
765 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/05/">May (3)</a></li>
766
767 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/06/">June (2)</a></li>
768
769 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/07/">July (1)</a></li>
770
771 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/09/">September (1)</a></li>
772
773 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/10/">October (1)</a></li>
774
775 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/11/">November (1)</a></li>
776
777 </ul></li>
778
779 <li>2019
780 <ul>
781
782 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/01/">January (4)</a></li>
783
784 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/02/">February (3)</a></li>
785
786 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/03/">March (3)</a></li>
787
788 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/05/">May (2)</a></li>
789
790 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/06/">June (5)</a></li>
791
792 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/07/">July (2)</a></li>
793
794 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/08/">August (1)</a></li>
795
796 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/09/">September (1)</a></li>
797
798 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/11/">November (1)</a></li>
799
800 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/12/">December (4)</a></li>
801
802 </ul></li>
803
804 <li>2018
805 <ul>
806
807 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
808
809 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
810
811 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
812
813 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
814
815 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
816
817 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/07/">July (5)</a></li>
818
819 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/08/">August (3)</a></li>
820
821 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/09/">September (3)</a></li>
822
823 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/10/">October (5)</a></li>
824
825 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/11/">November (2)</a></li>
826
827 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/12/">December (4)</a></li>
828
829 </ul></li>
830
831 <li>2017
832 <ul>
833
834 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
835
836 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
837
838 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
839
840 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
841
842 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/06/">June (5)</a></li>
843
844 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/07/">July (1)</a></li>
845
846 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/08/">August (1)</a></li>
847
848 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/09/">September (3)</a></li>
849
850 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/10/">October (5)</a></li>
851
852 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
853
854 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
855
856 </ul></li>
857
858 <li>2016
859 <ul>
860
861 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
862
863 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
864
865 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
866
867 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
868
869 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
870
871 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
872
873 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
874
875 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
876
877 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
878
879 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
880
881 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
882
883 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
884
885 </ul></li>
886
887 <li>2015
888 <ul>
889
890 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
891
892 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
893
894 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
895
896 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
897
898 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
899
900 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
901
902 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
903
904 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
905
906 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
907
908 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
909
910 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
911
912 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
913
914 </ul></li>
915
916 <li>2014
917 <ul>
918
919 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
920
921 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
922
923 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
924
925 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
926
927 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
928
929 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
930
931 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
932
933 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
934
935 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
936
937 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
938
939 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
940
941 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
942
943 </ul></li>
944
945 <li>2013
946 <ul>
947
948 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
949
950 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
951
952 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
953
954 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
955
956 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
957
958 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
959
960 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
961
962 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
963
964 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
965
966 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
967
968 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
969
970 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
971
972 </ul></li>
973
974 <li>2012
975 <ul>
976
977 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
978
979 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
980
981 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
982
983 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
984
985 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
986
987 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
988
989 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
990
991 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
992
993 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
994
995 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
996
997 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
998
999 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
1000
1001 </ul></li>
1002
1003 <li>2011
1004 <ul>
1005
1006 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
1007
1008 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
1009
1010 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
1011
1012 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
1013
1014 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
1015
1016 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
1017
1018 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
1019
1020 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
1021
1022 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1023
1024 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1025
1026 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1027
1028 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1029
1030 </ul></li>
1031
1032 <li>2010
1033 <ul>
1034
1035 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1036
1037 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1038
1039 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1040
1041 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1042
1043 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1044
1045 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1046
1047 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1048
1049 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1050
1051 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1052
1053 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1054
1055 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1056
1057 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1058
1059 </ul></li>
1060
1061 <li>2009
1062 <ul>
1063
1064 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1065
1066 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1067
1068 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1069
1070 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1071
1072 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1073
1074 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1075
1076 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1077
1078 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1079
1080 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1081
1082 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1083
1084 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1085
1086 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1087
1088 </ul></li>
1089
1090 <li>2008
1091 <ul>
1092
1093 <li><a href="https://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1094
1095 <li><a href="https://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1096
1097 </ul></li>
1098
1099 </ul>
1100
1101
1102
1103 <h2>Tags</h2>
1104 <ul>
1105
1106 <li><a href="https://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (19)</a></li>
1107
1108 <li><a href="https://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1109
1110 <li><a href="https://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1111
1112 <li><a href="https://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1113
1114 <li><a href="https://people.skolelinux.org/pere/blog/tags/betalkontant">betalkontant (9)</a></li>
1115
1116 <li><a href="https://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (12)</a></li>
1117
1118 <li><a href="https://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
1119
1120 <li><a href="https://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1121
1122 <li><a href="https://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1123
1124 <li><a href="https://people.skolelinux.org/pere/blog/tags/debian">debian (194)</a></li>
1125
1126 <li><a href="https://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (159)</a></li>
1127
1128 <li><a href="https://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (9)</a></li>
1129
1130 <li><a href="https://people.skolelinux.org/pere/blog/tags/digistan">digistan (11)</a></li>
1131
1132 <li><a href="https://people.skolelinux.org/pere/blog/tags/dld">dld (18)</a></li>
1133
1134 <li><a href="https://people.skolelinux.org/pere/blog/tags/docbook">docbook (30)</a></li>
1135
1136 <li><a href="https://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1137
1138 <li><a href="https://people.skolelinux.org/pere/blog/tags/english">english (451)</a></li>
1139
1140 <li><a href="https://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
1141
1142 <li><a href="https://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (14)</a></li>
1143
1144 <li><a href="https://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (34)</a></li>
1145
1146 <li><a href="https://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1147
1148 <li><a href="https://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (20)</a></li>
1149
1150 <li><a href="https://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
1151
1152 <li><a href="https://people.skolelinux.org/pere/blog/tags/intervju">intervju (43)</a></li>
1153
1154 <li><a href="https://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (16)</a></li>
1155
1156 <li><a href="https://people.skolelinux.org/pere/blog/tags/kart">kart (23)</a></li>
1157
1158 <li><a href="https://people.skolelinux.org/pere/blog/tags/kodi">kodi (6)</a></li>
1159
1160 <li><a href="https://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1161
1162 <li><a href="https://people.skolelinux.org/pere/blog/tags/lego">lego (5)</a></li>
1163
1164 <li><a href="https://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1165
1166 <li><a href="https://people.skolelinux.org/pere/blog/tags/linuxcnc">linuxcnc (5)</a></li>
1167
1168 <li><a href="https://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1169
1170 <li><a href="https://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1171
1172 <li><a href="https://people.skolelinux.org/pere/blog/tags/madewithcc">madewithcc (3)</a></li>
1173
1174 <li><a href="https://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1175
1176 <li><a href="https://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (46)</a></li>
1177
1178 <li><a href="https://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (15)</a></li>
1179
1180 <li><a href="https://people.skolelinux.org/pere/blog/tags/noark5">noark5 (23)</a></li>
1181
1182 <li><a href="https://people.skolelinux.org/pere/blog/tags/norsk">norsk (320)</a></li>
1183
1184 <li><a href="https://people.skolelinux.org/pere/blog/tags/nuug">nuug (198)</a></li>
1185
1186 <li><a href="https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (40)</a></li>
1187
1188 <li><a href="https://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1189
1190 <li><a href="https://people.skolelinux.org/pere/blog/tags/opensnitch">opensnitch (4)</a></li>
1191
1192 <li><a href="https://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (75)</a></li>
1193
1194 <li><a href="https://people.skolelinux.org/pere/blog/tags/personvern">personvern (114)</a></li>
1195
1196 <li><a href="https://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
1197
1198 <li><a href="https://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1199
1200 <li><a href="https://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1201
1202 <li><a href="https://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1203
1204 <li><a href="https://people.skolelinux.org/pere/blog/tags/robot">robot (17)</a></li>
1205
1206 <li><a href="https://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1207
1208 <li><a href="https://people.skolelinux.org/pere/blog/tags/ruter">ruter (7)</a></li>
1209
1210 <li><a href="https://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1211
1212 <li><a href="https://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (59)</a></li>
1213
1214 <li><a href="https://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1215
1216 <li><a href="https://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
1217
1218 <li><a href="https://people.skolelinux.org/pere/blog/tags/standard">standard (74)</a></li>
1219
1220 <li><a href="https://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (7)</a></li>
1221
1222 <li><a href="https://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (14)</a></li>
1223
1224 <li><a href="https://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (64)</a></li>
1225
1226 <li><a href="https://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (5)</a></li>
1227
1228 <li><a href="https://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
1229
1230 <li><a href="https://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
1231
1232 <li><a href="https://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (20)</a></li>
1233
1234 <li><a href="https://people.skolelinux.org/pere/blog/tags/video">video (79)</a></li>
1235
1236 <li><a href="https://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1237
1238 <li><a href="https://people.skolelinux.org/pere/blog/tags/web">web (42)</a></li>
1239
1240 </ul>
1241
1242
1243 </div>
1244 <p style="text-align: right">
1245 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1246 </p>
1247
1248 </body>
1249 </html>