]> pere.pagekite.me Git - homepage.git/blob - blog/archive/2023/01/index.html
Generated.
[homepage.git] / blog / archive / 2023 / 01 / 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: entries from January 2023</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://www.hungry.com/~pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://www.hungry.com/~pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="01.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <!-- XML FEED -->
13 <div class="title">
14 <h1>
15 <a href="http://www.hungry.com/~pere/blog/">Petter Reinholdtsen</a>
16
17 </h1>
18
19 </div>
20
21
22 <h3>Entries from January 2023.</h3>
23
24 <div class="entry">
25 <div class="title">
26 <a href="http://www.hungry.com/~pere/blog/Is_the_desktop_recommending_your_program_for_opening_its_files_.html">Is the desktop recommending your program for opening its files?</a>
27 </div>
28 <div class="date">
29 29th January 2023
30 </div>
31 <div class="body">
32 <p>Linux desktop systems
33 <a href="https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html">have
34 standardized</a> how programs present themselves to the desktop
35 system. If a package include a .desktop file in
36 /usr/share/applications/, Gnome, KDE, LXDE, Xfce and the other desktop
37 environments will pick up the file and use its content to generate the
38 menu of available programs in the system. A lesser known fact is that
39 a package can also explain to the desktop system how to recognize the
40 files created by the program in question, and use it to open these
41 files on request, for example via a GUI file browser.</p>
42
43 <p>A while back I ran into a package that did not tell the desktop
44 system how to recognize its files and was not used to open its files
45 in the file browser and fixed it. In the process I wrote a simple
46 debian/tests/ script to ensure the setup keep working. It might be
47 useful for other packages too, to ensure any future version of the
48 package keep handling its own files.</p>
49
50 <p>For this to work the file format need a useful MIME type that can
51 be used to identify the format. If the file format do not yet have a
52 MIME type, it should define one and preferably also
53 <a href="https://www.iana.org/assignments/media-types/media-types.xhtml">register
54 it with IANA</a> to ensure the MIME type string is reserved.</p>
55
56 <p>The script uses the <tt>xdg-mime</tt> program from xdg-utils to
57 query the database of standardized package information and ensure it
58 return sensible values. It also need the location of an example file
59 for xdg-mime to guess the format of.</p>
60
61 <pre>
62 #!/bin/sh
63 #
64 # Author: Petter Reinholdtsen
65 # License: GPL v2 or later at your choice.
66 #
67 # Validate the MIME setup, making sure motor types have
68 # application/vnd.openmotor+yaml associated with them and is connected
69 # to the openmotor desktop file.
70
71 retval=0
72
73 mimetype="application/vnd.openmotor+yaml"
74 testfile="test/data/real/o3100/motor.ric"
75 mydesktopfile="openmotor.desktop"
76
77 filemime="$(xdg-mime query filetype "$testfile")"
78
79 if [ "$mimetype" != "$filemime" ] ; then
80 retval=1
81 echo "error: xdg-mime claim motor file MIME type is $filemine, not $mimetype"
82 else
83 echo "success: xdg-mime report correct mime type $mimetype for motor file"
84 fi
85
86 desktop=$(xdg-mime query default "$mimetype")
87
88 if [ "$mydesktopfile" != "$desktop" ]; then
89 retval=1
90 echo "error: xdg-mime claim motor file should be handled by $desktop, not $mydesktopfile"
91 else
92 echo "success: xdg-mime agree motor file should be handled by $mydesktopfile"
93 fi
94
95 exit $retval
96 </pre>
97
98 <p>It is a simple way to ensure your users are not very surprised when
99 they try to open one of your file formats in their file browser.</p>
100
101 <p>As usual, if you use Bitcoin and want to show your support of my
102 activities, please send Bitcoin donations to my address
103 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
104
105 </div>
106 <div class="tags">
107
108
109 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>.
110
111
112 </div>
113 </div>
114 <div class="padding"></div>
115
116 <div class="entry">
117 <div class="title">
118 <a href="http://www.hungry.com/~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>
119 </div>
120 <div class="date">
121 22nd January 2023
122 </div>
123 <div class="body">
124 <p>While reading a
125 <a href="https://sneak.berlin/20230115/macos-scans-your-local-files-now/">blog
126 post claiming MacOS X recently started scanning local files and
127 reporting information about them to Apple</a>, even on a machine where
128 all such callback features had been disabled, I came across a
129 description of the Little Snitch application for MacOS X. It seemed
130 like a very nice tool to have in the tool box, and I decided to see if
131 something similar was available for Linux.</p>
132
133 <p>It did not take long to find
134 <a href="https://github.com/evilsocket/opensnitch">the OpenSnitch
135 package</a>, which has been in development since 2017, and now is in
136 version 1.5.0. It has had a
137 <a href="https://bugs.debian.org/909567">request for Debian
138 packaging</a> since 2018, but no-one completed the job so far. Just
139 for fun, I decided to see if I could help, and I was very happy to
140 discover that
141 <a href="https://github.com/evilsocket/opensnitch/issues/304">upstream
142 want a Debian package too</a>.</p>
143
144 <p>After struggling a bit with getting the program to run, figuring
145 out building Go programs (and a little failed detour to look at eBPF
146 builds too - help needed), I am very happy to report that I am
147 sponsoring upstream to maintain the package in Debian, and it has
148 since this morning been waiting in NEW for the ftpmasters to have a
149 look. Perhaps it can get into the archive in time for the Bookworm
150 release?</p>
151
152 <p>As usual, if you use Bitcoin and want to show your support of my
153 activities, please send Bitcoin donations to my address
154 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
155
156 </div>
157 <div class="tags">
158
159
160 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/opensnitch">opensnitch</a>.
161
162
163 </div>
164 </div>
165 <div class="padding"></div>
166
167 <div class="entry">
168 <div class="title">
169 <a href="http://www.hungry.com/~pere/blog/LinuxCNC_MQTT_publisher_component.html">LinuxCNC MQTT publisher component</a>
170 </div>
171 <div class="date">
172 8th January 2023
173 </div>
174 <div class="body">
175 <p>I watched <a href="https://yewtu.be/watch?v=jmKUV3aNLjk">a 2015
176 video from Andreas Schiffler</a> the other day, where he set up
177 <a href="https://linuxcnc.org/">LinuxCNC</a> to send status
178 information to the MQTT broker IBM Bluemix. As I also use MQTT for
179 graphing, it occured to me that a generic MQTT LinuxCNC component
180 would be useful and I set out to implement it. Today I got the first
181 draft limping along and submitted as
182 <a href="https://github.com/LinuxCNC/linuxcnc/pull/2253">a patch to the
183 LinuxCNC project</a>.</p>
184
185 <p>The simple part was setting up the MQTT publishing code in Python.
186 I already have set up other parts submitting data to my Mosquito MQTT
187 broker, so I could reuse that code. Writing a LinuxCNC component in
188 Python as new to me, but using existing examples in the code
189 repository and the extensive documentation, this was fairly straight
190 forward. The hardest part was creating a automated test for the
191 component to ensure it was working. Testing it in a simulated
192 LinuxCNC machine proved very useful, as I discovered features I needed
193 that I had not thought of yet, and adjusted the code quite a bit to
194 make it easier to test without a operational MQTT broker
195 available.</p>
196
197 <p>The draft is ready and working, but I am unsure which LinuxCNC HAL
198 pins I should collect and publish by default (in other words, the
199 default set of information pieces published), and how to get the
200 machine name from the LinuxCNC INI file. The latter is a minor
201 detail, but I expect it would be useful in a setup with several
202 machines available. I am hoping for feedback from the experienced
203 LinuxCNC developers and users, to make the component even better
204 before it can go into the mainland LinuxCNC code base.</p>
205
206 <p>Since I started on the MQTT component, I came across
207 <a href="https://yewtu.be/watch?v=Bqa2grG0XtA">another video from Kent
208 VanderVelden</a> where he combine LinuxCNC with a set of screen glasses
209 controlled by a Raspberry Pi, and it occured to me that it would
210 be useful for such use cases if LinuxCNC also provided a REST API for
211 querying its status. I hope to start on such component once the MQTT
212 component is working well.</p>
213
214 <p>As usual, if you use Bitcoin and want to show your support of my
215 activities, please send Bitcoin donations to my address
216 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
217
218 </div>
219 <div class="tags">
220
221
222 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>, <a href="http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc</a>, <a href="http://www.hungry.com/~pere/blog/tags/robot">robot</a>.
223
224
225 </div>
226 </div>
227 <div class="padding"></div>
228
229 <p style="text-align: right;"><a href="01.rss"><img src="http://www.hungry.com/~pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
230 <div id="sidebar">
231
232
233
234 <h2>Archive</h2>
235 <ul>
236
237 <li>2025
238 <ul>
239
240 <li><a href="http://www.hungry.com/~pere/blog/archive/2025/01/">January (4)</a></li>
241
242 </ul></li>
243
244 <li>2024
245 <ul>
246
247 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/01/">January (1)</a></li>
248
249 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/02/">February (1)</a></li>
250
251 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/03/">March (2)</a></li>
252
253 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/04/">April (3)</a></li>
254
255 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/05/">May (1)</a></li>
256
257 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/06/">June (1)</a></li>
258
259 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/07/">July (2)</a></li>
260
261 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/12/">December (1)</a></li>
262
263 </ul></li>
264
265 <li>2023
266 <ul>
267
268 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/01/">January (3)</a></li>
269
270 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/02/">February (1)</a></li>
271
272 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/04/">April (2)</a></li>
273
274 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/05/">May (3)</a></li>
275
276 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/06/">June (1)</a></li>
277
278 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/08/">August (1)</a></li>
279
280 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/09/">September (1)</a></li>
281
282 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/10/">October (1)</a></li>
283
284 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/11/">November (4)</a></li>
285
286 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/12/">December (1)</a></li>
287
288 </ul></li>
289
290 <li>2022
291 <ul>
292
293 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/02/">February (1)</a></li>
294
295 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/03/">March (3)</a></li>
296
297 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/04/">April (2)</a></li>
298
299 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/06/">June (2)</a></li>
300
301 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/07/">July (1)</a></li>
302
303 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/09/">September (1)</a></li>
304
305 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/10/">October (1)</a></li>
306
307 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/12/">December (1)</a></li>
308
309 </ul></li>
310
311 <li>2021
312 <ul>
313
314 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/01/">January (2)</a></li>
315
316 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/02/">February (1)</a></li>
317
318 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/05/">May (1)</a></li>
319
320 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/06/">June (1)</a></li>
321
322 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/07/">July (3)</a></li>
323
324 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/08/">August (1)</a></li>
325
326 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/09/">September (1)</a></li>
327
328 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/10/">October (1)</a></li>
329
330 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/12/">December (1)</a></li>
331
332 </ul></li>
333
334 <li>2020
335 <ul>
336
337 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/02/">February (2)</a></li>
338
339 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/03/">March (2)</a></li>
340
341 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/04/">April (2)</a></li>
342
343 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/05/">May (3)</a></li>
344
345 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/06/">June (2)</a></li>
346
347 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/07/">July (1)</a></li>
348
349 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/09/">September (1)</a></li>
350
351 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/10/">October (1)</a></li>
352
353 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/11/">November (1)</a></li>
354
355 </ul></li>
356
357 <li>2019
358 <ul>
359
360 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/01/">January (4)</a></li>
361
362 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/02/">February (3)</a></li>
363
364 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/03/">March (3)</a></li>
365
366 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/05/">May (2)</a></li>
367
368 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/06/">June (5)</a></li>
369
370 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/07/">July (2)</a></li>
371
372 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/08/">August (1)</a></li>
373
374 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/09/">September (1)</a></li>
375
376 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/11/">November (1)</a></li>
377
378 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/12/">December (4)</a></li>
379
380 </ul></li>
381
382 <li>2018
383 <ul>
384
385 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/01/">January (1)</a></li>
386
387 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/02/">February (5)</a></li>
388
389 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/03/">March (5)</a></li>
390
391 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/04/">April (3)</a></li>
392
393 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/06/">June (2)</a></li>
394
395 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/07/">July (5)</a></li>
396
397 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/08/">August (3)</a></li>
398
399 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/09/">September (3)</a></li>
400
401 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/10/">October (5)</a></li>
402
403 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/11/">November (2)</a></li>
404
405 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/12/">December (4)</a></li>
406
407 </ul></li>
408
409 <li>2017
410 <ul>
411
412 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/01/">January (4)</a></li>
413
414 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/02/">February (3)</a></li>
415
416 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/03/">March (5)</a></li>
417
418 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/04/">April (2)</a></li>
419
420 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/06/">June (5)</a></li>
421
422 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/07/">July (1)</a></li>
423
424 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/08/">August (1)</a></li>
425
426 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/09/">September (3)</a></li>
427
428 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/10/">October (5)</a></li>
429
430 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/11/">November (3)</a></li>
431
432 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/12/">December (4)</a></li>
433
434 </ul></li>
435
436 <li>2016
437 <ul>
438
439 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/01/">January (3)</a></li>
440
441 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/02/">February (2)</a></li>
442
443 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/03/">March (3)</a></li>
444
445 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/04/">April (8)</a></li>
446
447 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/05/">May (8)</a></li>
448
449 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/06/">June (2)</a></li>
450
451 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/07/">July (2)</a></li>
452
453 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/08/">August (5)</a></li>
454
455 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/09/">September (2)</a></li>
456
457 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/10/">October (3)</a></li>
458
459 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/11/">November (8)</a></li>
460
461 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/12/">December (5)</a></li>
462
463 </ul></li>
464
465 <li>2015
466 <ul>
467
468 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/01/">January (7)</a></li>
469
470 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/02/">February (6)</a></li>
471
472 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/03/">March (1)</a></li>
473
474 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/04/">April (4)</a></li>
475
476 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/05/">May (3)</a></li>
477
478 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/06/">June (4)</a></li>
479
480 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/07/">July (6)</a></li>
481
482 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/08/">August (2)</a></li>
483
484 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/09/">September (2)</a></li>
485
486 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/10/">October (9)</a></li>
487
488 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/11/">November (6)</a></li>
489
490 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/12/">December (3)</a></li>
491
492 </ul></li>
493
494 <li>2014
495 <ul>
496
497 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/01/">January (2)</a></li>
498
499 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/02/">February (3)</a></li>
500
501 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/03/">March (8)</a></li>
502
503 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/04/">April (7)</a></li>
504
505 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/05/">May (1)</a></li>
506
507 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/06/">June (2)</a></li>
508
509 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/07/">July (2)</a></li>
510
511 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/08/">August (2)</a></li>
512
513 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/09/">September (5)</a></li>
514
515 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/10/">October (6)</a></li>
516
517 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/11/">November (3)</a></li>
518
519 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/12/">December (5)</a></li>
520
521 </ul></li>
522
523 <li>2013
524 <ul>
525
526 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/01/">January (11)</a></li>
527
528 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/02/">February (9)</a></li>
529
530 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/03/">March (9)</a></li>
531
532 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/04/">April (6)</a></li>
533
534 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/05/">May (9)</a></li>
535
536 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/06/">June (10)</a></li>
537
538 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/07/">July (7)</a></li>
539
540 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/08/">August (3)</a></li>
541
542 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/09/">September (5)</a></li>
543
544 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/10/">October (7)</a></li>
545
546 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/11/">November (9)</a></li>
547
548 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/12/">December (3)</a></li>
549
550 </ul></li>
551
552 <li>2012
553 <ul>
554
555 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/01/">January (7)</a></li>
556
557 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/02/">February (10)</a></li>
558
559 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/03/">March (17)</a></li>
560
561 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/04/">April (12)</a></li>
562
563 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/05/">May (12)</a></li>
564
565 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/06/">June (20)</a></li>
566
567 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/07/">July (17)</a></li>
568
569 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/08/">August (6)</a></li>
570
571 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/09/">September (9)</a></li>
572
573 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/10/">October (17)</a></li>
574
575 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/11/">November (10)</a></li>
576
577 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/12/">December (7)</a></li>
578
579 </ul></li>
580
581 <li>2011
582 <ul>
583
584 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/01/">January (16)</a></li>
585
586 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/02/">February (6)</a></li>
587
588 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/03/">March (6)</a></li>
589
590 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/04/">April (7)</a></li>
591
592 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/05/">May (3)</a></li>
593
594 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/06/">June (2)</a></li>
595
596 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/07/">July (7)</a></li>
597
598 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/08/">August (6)</a></li>
599
600 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/09/">September (4)</a></li>
601
602 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/10/">October (2)</a></li>
603
604 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/11/">November (3)</a></li>
605
606 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/12/">December (1)</a></li>
607
608 </ul></li>
609
610 <li>2010
611 <ul>
612
613 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/01/">January (2)</a></li>
614
615 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/02/">February (1)</a></li>
616
617 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/03/">March (3)</a></li>
618
619 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/04/">April (3)</a></li>
620
621 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/05/">May (9)</a></li>
622
623 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/06/">June (14)</a></li>
624
625 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/07/">July (12)</a></li>
626
627 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/08/">August (13)</a></li>
628
629 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/09/">September (7)</a></li>
630
631 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/10/">October (9)</a></li>
632
633 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/11/">November (13)</a></li>
634
635 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/12/">December (12)</a></li>
636
637 </ul></li>
638
639 <li>2009
640 <ul>
641
642 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/01/">January (8)</a></li>
643
644 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/02/">February (8)</a></li>
645
646 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/03/">March (12)</a></li>
647
648 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/04/">April (10)</a></li>
649
650 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/05/">May (9)</a></li>
651
652 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/06/">June (3)</a></li>
653
654 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/07/">July (4)</a></li>
655
656 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/08/">August (3)</a></li>
657
658 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/09/">September (1)</a></li>
659
660 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/10/">October (2)</a></li>
661
662 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/11/">November (3)</a></li>
663
664 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/12/">December (3)</a></li>
665
666 </ul></li>
667
668 <li>2008
669 <ul>
670
671 <li><a href="http://www.hungry.com/~pere/blog/archive/2008/11/">November (5)</a></li>
672
673 <li><a href="http://www.hungry.com/~pere/blog/archive/2008/12/">December (7)</a></li>
674
675 </ul></li>
676
677 </ul>
678
679
680
681 <h2>Tags</h2>
682 <ul>
683
684 <li><a href="http://www.hungry.com/~pere/blog/tags/3d-printer">3d-printer (19)</a></li>
685
686 <li><a href="http://www.hungry.com/~pere/blog/tags/amiga">amiga (1)</a></li>
687
688 <li><a href="http://www.hungry.com/~pere/blog/tags/aros">aros (1)</a></li>
689
690 <li><a href="http://www.hungry.com/~pere/blog/tags/bankid">bankid (4)</a></li>
691
692 <li><a href="http://www.hungry.com/~pere/blog/tags/betalkontant">betalkontant (9)</a></li>
693
694 <li><a href="http://www.hungry.com/~pere/blog/tags/bitcoin">bitcoin (13)</a></li>
695
696 <li><a href="http://www.hungry.com/~pere/blog/tags/bootsystem">bootsystem (17)</a></li>
697
698 <li><a href="http://www.hungry.com/~pere/blog/tags/bsa">bsa (2)</a></li>
699
700 <li><a href="http://www.hungry.com/~pere/blog/tags/chrpath">chrpath (3)</a></li>
701
702 <li><a href="http://www.hungry.com/~pere/blog/tags/debian">debian (206)</a></li>
703
704 <li><a href="http://www.hungry.com/~pere/blog/tags/debian edu">debian edu (159)</a></li>
705
706 <li><a href="http://www.hungry.com/~pere/blog/tags/debian-handbook">debian-handbook (9)</a></li>
707
708 <li><a href="http://www.hungry.com/~pere/blog/tags/digistan">digistan (11)</a></li>
709
710 <li><a href="http://www.hungry.com/~pere/blog/tags/dld">dld (18)</a></li>
711
712 <li><a href="http://www.hungry.com/~pere/blog/tags/docbook">docbook (33)</a></li>
713
714 <li><a href="http://www.hungry.com/~pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
715
716 <li><a href="http://www.hungry.com/~pere/blog/tags/english">english (468)</a></li>
717
718 <li><a href="http://www.hungry.com/~pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
719
720 <li><a href="http://www.hungry.com/~pere/blog/tags/fildeling">fildeling (14)</a></li>
721
722 <li><a href="http://www.hungry.com/~pere/blog/tags/freeculture">freeculture (34)</a></li>
723
724 <li><a href="http://www.hungry.com/~pere/blog/tags/freedombox">freedombox (9)</a></li>
725
726 <li><a href="http://www.hungry.com/~pere/blog/tags/frikanalen">frikanalen (20)</a></li>
727
728 <li><a href="http://www.hungry.com/~pere/blog/tags/h264">h264 (20)</a></li>
729
730 <li><a href="http://www.hungry.com/~pere/blog/tags/intervju">intervju (43)</a></li>
731
732 <li><a href="http://www.hungry.com/~pere/blog/tags/isenkram">isenkram (20)</a></li>
733
734 <li><a href="http://www.hungry.com/~pere/blog/tags/kart">kart (23)</a></li>
735
736 <li><a href="http://www.hungry.com/~pere/blog/tags/kodi">kodi (6)</a></li>
737
738 <li><a href="http://www.hungry.com/~pere/blog/tags/ldap">ldap (9)</a></li>
739
740 <li><a href="http://www.hungry.com/~pere/blog/tags/lego">lego (5)</a></li>
741
742 <li><a href="http://www.hungry.com/~pere/blog/tags/lenker">lenker (8)</a></li>
743
744 <li><a href="http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc (8)</a></li>
745
746 <li><a href="http://www.hungry.com/~pere/blog/tags/lsdvd">lsdvd (2)</a></li>
747
748 <li><a href="http://www.hungry.com/~pere/blog/tags/ltsp">ltsp (1)</a></li>
749
750 <li><a href="http://www.hungry.com/~pere/blog/tags/madewithcc">madewithcc (3)</a></li>
751
752 <li><a href="http://www.hungry.com/~pere/blog/tags/mesh network">mesh network (8)</a></li>
753
754 <li><a href="http://www.hungry.com/~pere/blog/tags/multimedia">multimedia (46)</a></li>
755
756 <li><a href="http://www.hungry.com/~pere/blog/tags/nice free software">nice free software (15)</a></li>
757
758 <li><a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5 (26)</a></li>
759
760 <li><a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk (326)</a></li>
761
762 <li><a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug (200)</a></li>
763
764 <li><a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn (42)</a></li>
765
766 <li><a href="http://www.hungry.com/~pere/blog/tags/open311">open311 (2)</a></li>
767
768 <li><a href="http://www.hungry.com/~pere/blog/tags/opensnitch">opensnitch (4)</a></li>
769
770 <li><a href="http://www.hungry.com/~pere/blog/tags/opphavsrett">opphavsrett (76)</a></li>
771
772 <li><a href="http://www.hungry.com/~pere/blog/tags/personvern">personvern (114)</a></li>
773
774 <li><a href="http://www.hungry.com/~pere/blog/tags/raid">raid (4)</a></li>
775
776 <li><a href="http://www.hungry.com/~pere/blog/tags/reactos">reactos (1)</a></li>
777
778 <li><a href="http://www.hungry.com/~pere/blog/tags/reprap">reprap (11)</a></li>
779
780 <li><a href="http://www.hungry.com/~pere/blog/tags/rfid">rfid (3)</a></li>
781
782 <li><a href="http://www.hungry.com/~pere/blog/tags/robot">robot (17)</a></li>
783
784 <li><a href="http://www.hungry.com/~pere/blog/tags/rss">rss (1)</a></li>
785
786 <li><a href="http://www.hungry.com/~pere/blog/tags/ruter">ruter (7)</a></li>
787
788 <li><a href="http://www.hungry.com/~pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
789
790 <li><a href="http://www.hungry.com/~pere/blog/tags/sikkerhet">sikkerhet (60)</a></li>
791
792 <li><a href="http://www.hungry.com/~pere/blog/tags/sitesummary">sitesummary (4)</a></li>
793
794 <li><a href="http://www.hungry.com/~pere/blog/tags/skepsis">skepsis (5)</a></li>
795
796 <li><a href="http://www.hungry.com/~pere/blog/tags/standard">standard (77)</a></li>
797
798 <li><a href="http://www.hungry.com/~pere/blog/tags/stavekontroll">stavekontroll (7)</a></li>
799
800 <li><a href="http://www.hungry.com/~pere/blog/tags/stortinget">stortinget (14)</a></li>
801
802 <li><a href="http://www.hungry.com/~pere/blog/tags/surveillance">surveillance (65)</a></li>
803
804 <li><a href="http://www.hungry.com/~pere/blog/tags/sysadmin">sysadmin (5)</a></li>
805
806 <li><a href="http://www.hungry.com/~pere/blog/tags/usenix">usenix (2)</a></li>
807
808 <li><a href="http://www.hungry.com/~pere/blog/tags/valg">valg (9)</a></li>
809
810 <li><a href="http://www.hungry.com/~pere/blog/tags/verkidetfri">verkidetfri (22)</a></li>
811
812 <li><a href="http://www.hungry.com/~pere/blog/tags/video">video (80)</a></li>
813
814 <li><a href="http://www.hungry.com/~pere/blog/tags/vitenskap">vitenskap (4)</a></li>
815
816 <li><a href="http://www.hungry.com/~pere/blog/tags/web">web (42)</a></li>
817
818 </ul>
819
820
821 </div>
822 <p style="text-align: right">
823 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
824 </p>
825
826 </body>
827 </html>