]> pere.pagekite.me Git - homepage.git/blob - blog/index.html
Generated.
[homepage.git] / blog / index.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="http://people.skolelinux.org/pere/blog/index.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="http://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="http://people.skolelinux.org/pere/blog/Learn_to_program_with_Minetest_on_Debian.html">Learn to program with Minetest on Debian</a></div>
24 <div class="date">15th December 2018</div>
25 <div class="body"><p>A fun way to learn how to program
26 <a href="https://www.python.org/">Python</a> is to follow the
27 instructions in the book
28 "<a href="https://nostarch.com/programwithminecraft">Learn to program
29 with Minecraft</a>", which introduces programming in Python to people
30 who like to play with Minecraft. The book uses a Python library to
31 talk to a TCP/IP socket with an API accepting build instructions and
32 providing information about the current players in a Minecraft world.
33 The TCP/IP API was first created for the Minecraft implementation for
34 Raspberry Pi, and has since been ported to some server versions of
35 Minecraft. The book contain recipes for those using Windows, MacOSX
36 and Raspian. But a little known fact is that you can follow the same
37 recipes using the free software construction game
38 <a href="https://minetest.org/">Minetest</a>.</p>
39
40 <p>There is <a href="https://github.com/sprintingkiwi/pycraft_mod">a
41 Minetest module implementing the same API</a>, making it possible to
42 use the Python programs coded to talk to Minecraft with Minetest too.
43 I
44 <a href="https://ftp-master.debian.org/new/minetest-mod-pycraft_0.20%2Bgit20180331.0376a0a%2Bdfsg-1.html">uploaded
45 this module</a> to Debian two weeks ago, and as soon as it clears the
46 FTP masters NEW queue, learning to program Python with Minetest on
47 Debian will be a simple 'apt install' away. The Debian package is
48 maintained as part of the Debian Games team, and
49 <a href="https://salsa.debian.org/games-team/unfinished/minetest-mod-pycraft">the
50 packaging rules</a> are currently located under 'unfinished' on
51 Salsa.</p>
52
53 <p>You will most likely need to install several of the Minetest
54 modules in Debian for the examples included with the library to work
55 well, as there are several blocks used by the example scripts that are
56 provided via modules in Minetest. Without the required blocks, a
57 simple stone block is used instead. My initial testing with a analog
58 clock did not get gold arms as instructed in the python library, but
59 instead used stone arms.</p>
60
61 <p>I tried to find a way to add the API to the desktop version of
62 Minecraft, but were unable to find any working recipes. The
63 <a href="https://www.epiphanydigest.com/tag/minecraft-python-api/">recipes</a>
64 I <a href="https://github.com/kbsriram/mcpiapi">found</a> are only
65 working with a standalone Minecraft server setup. Are there any
66 options to use with the normal desktop version?</p>
67
68 <p>As usual, if you use Bitcoin and want to show your support of my
69 activities, please send Bitcoin donations to my address
70 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
71 </div>
72 <div class="tags">
73
74
75 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
76
77
78 </div>
79 </div>
80 <div class="padding"></div>
81
82 <div class="entry">
83 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Non_blocking_bittorrent_plugin_for_vlc.html">Non-blocking bittorrent plugin for vlc</a></div>
84 <div class="date">12th December 2018</div>
85 <div class="body"><p>A few hours ago, a new and improved version (2.4) of
86 <a href="https://tracker.debian.org/pkg/vlc-plugin-bittorrent">the VLC
87 bittorrent plugin</a> was uploaded to Debian. This new version
88 include a complete rewrite of the bittorrent related code, which seem
89 to make the plugin non-blocking. This mean you can actually exit VLC
90 even when the plugin seem to be unable to get the bittorrent streaming
91 started. The new version also include support for filtering playlist
92 by file extension using command line options, if you want to avoid
93 processing audio, video or images. The package is currently in Debian
94 unstable, but should be available in Debian testing in two days. To
95 test it, simply install it like this:</p>
96
97 <p><pre>
98 apt install vlc-plugin-bittorrent
99 </pre></p>
100
101 <p>After it is installed, you can try to use it to play a file
102 downloaded live via bittorrent like this:
103
104 <p><pre>
105 vlc https://archive.org/download/Glass_201703/Glass_201703_archive.torrent
106 </pre></p>
107
108 <p>As usual, if you use Bitcoin and want to show your support of my
109 activities, please send Bitcoin donations to my address
110 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
111 </div>
112 <div class="tags">
113
114
115 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
116
117
118 </div>
119 </div>
120 <div class="padding"></div>
121
122 <div class="entry">
123 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Retten_til_kontant_betaling_er_en_rettighet_som_m__brukes_for___beholdes.html">Retten til kontant betaling er en rettighet som må brukes for å beholdes</a></div>
124 <div class="date">11th December 2018</div>
125 <div class="body"><p><a href="https://www.fn.no/Om-FN/Avtaler/Menneskerettigheter/FNs-verdenserklaering-om-menneskerettigheter">FNs
126 menneskerettighetserklæring</a> artikkel 13 første punkt lyder som
127 følger:</p>
128
129 <p><blockquote>
130 Enhver har rett til å bevege seg fritt og til fritt å velge
131 oppholdssted innenfor en stats grenser.
132 </blockquote></p>
133
134 <p>Det er altså en menneskerett å kunne bevege seg fritt i landet.
135 For å bevege seg fritt i landet, så må en kunne bevege seg uten å bli
136 sporet. Det vil i dagens samfunn innebære å bevege seg uten å legge
137 igjen digitale spor og uten å være radiomerket. Hvis en vet at ens
138 bevegelser, hvor en befinner seg når, og hvem som befinner seg i
139 nærheten, blir samlet inn og gjort tilgjengelig for fremmede, det være
140 seg myndighetene eller private organisasjoner, så kan en ikke lenger
141 bevege seg fritt. Dette gjør at det er en forutsetning for å ha glede
142 av retten til å bevege seg fritt i landet at en motstår fristelsen til
143 å legge igjen digitale spor når en betaler for seg. Rettigheter som
144 ikke blir brukt, blir fjernet. Den eneste måten i dag å unngå å legge
145 igjen digitale spor når en betaler for seg, er å betale med kontanter,
146 samt takke nei til å legge igjen navn og adresse (slik f.eks. Elkjøp
147 ber om &mdash; jeg sier de kan legge inn «anonym anonym» når
148 datasystemet deres trenger et navn). Personlig anbefaler jeg å
149 konsekvent bruke kontant betaling når man beveger seg rundt, for å
150 bidra til forsvaret av menneskerettighetene i Norge. Kanskje noe også
151 for deg? Merk at det ikke er tilstrekkelig for å unngå sporing å
152 betale med kontanter, men det er et lite steg i riktig retning.</p>
153
154 <p>Det er flere andre argumenter i tillegg til
155 menneskerettighetsargumentet for å bruke kontanter. I går hadde
156 Dagbladet en utmerket kommentar av sin journalist John Olav Egeland om
157 hvilket
158 <a href="https://www.dagbladet.no/kultur/kontantlost-diktatur/70543434">kontantløst
159 diktatur</a> som venter oss hvis mange nok slutter å insistere på å
160 betale med kontanter. Jeg anbefaler deg å lese den.</p>
161
162 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
163 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
164 til min adresse
165 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
166 Merk, betaling med bitcoin er ikke anonymt. :)</p>
167 </div>
168 <div class="tags">
169
170
171 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>.
172
173
174 </div>
175 </div>
176 <div class="padding"></div>
177
178 <div class="entry">
179 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Why_is_your_site_not_using_Content_Security_Policy___CSP_.html">Why is your site not using Content Security Policy / CSP?</a></div>
180 <div class="date"> 9th December 2018</div>
181 <div class="body"><p>Yesterday, I had the pleasure of watching on Frikanalen the OWASP
182 talk by Scott Helme titled
183 "<a href="https://frikanalen.no/video/626080/">What We’ve Learned From
184 Billions of Security Reports</a>". I had not heard of the
185 <a href="https://en.wikipedia.org/wiki/Content_Security_Policy">Content
186 Security Policy standard</a> nor its ability to "call home" when a
187 browser detect a policy breach (I do not follow web page design
188 development much these days), and found the talk very illuminating.</p>
189
190 <p>The mechanism allow a web site owner to use HTTP headers to tell
191 visitors web browser which sources (internal and external) are allowed to
192 be used on the web site. Thus it become possible to enforce a "only
193 local content" policy despite web designers urge to fetch programs
194 from random sites on the Internet, like the one
195 <a href="https://securityaffairs.co/wordpress/68966/hacking/browsealoud-plugin-hack.html">enabling
196 the attack</a> reported by Scott Helme earlier this year.</p>
197
198 <p>Using CSP seem like an obvious thing for a site admin to implement
199 to take some control over the information leak that occur when
200 external sources are used to render web pages, it is a mystery more
201 sites are not using CSP? It is being
202 <a href="https://www.w3.org/TR/CSP/">standardized under W3C</a> these
203 days, and is supposed by most web browsers</p>
204
205 <p>I managed to find <a href="https://github.com/mozilla/django-csp">a
206 Django middleware for implementing CSP</a> and was happy to discover
207 it was already in Debian. I plan to use it to add CSP support to the
208 Frikanalen web site soon.</p>
209
210 <p>As usual, if you use Bitcoin and want to show your support of my
211 activities, please send Bitcoin donations to my address
212 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
213 </div>
214 <div class="tags">
215
216
217 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
218
219
220 </div>
221 </div>
222 <div class="padding"></div>
223
224 <div class="entry">
225 <div class="title"><a href="http://people.skolelinux.org/pere/blog/New_and_improved_Frikanalen_Kodi_addon_version_0_0_3.html">New and improved Frikanalen Kodi addon version 0.0.3</a></div>
226 <div class="date"> 8th November 2018</div>
227 <div class="body"><p>If you read my blog regularly, you probably know I am involved in
228 running and developing the <a href="https://frikanalen.no/">Norwegian
229 TV channel Frikanalen</a>. It is an open channel, allowing everyone
230 in Norway to publish videos on a TV channel with national coverage.
231 You can think of it as Youtube for national television.
232 In addition to distribution on RiksTV and Uninett, Frikanalen is also
233 available as a Kodi addon. The last few days I have updated the code
234 to add more features. A
235 <a href="https://kodi.tv/addon/plugins-video-add-ons/frikanalen-nett-tv">new
236 and improved version 0.0.3 Frikanalen addon</a> was just made
237 available via the Kodi repositories. This new version include a
238 option to browse videos by category, as well as free text search
239 in the video archive. It will now also show the video duration in the
240 video lists, which were missing earlier. A new and experimental
241 link to the HD video stream currently being worked on is provided, for
242 those that want to see what the <a href="https://casparcg.com/">CasparCG</a>
243 output look like. The alternative is the SD video stream, generated
244 using MLT. CasparCG is controlled by our
245 <a href="https://github.com/Frikanalen/mltplayout/">mltplayout
246 server</a> which instead of talking to mlt is giving PLAY instructions
247 to the CasparCG server when it is time to start a new program.</p>
248
249 <p>By now, you are probably wondering what kind of content is being
250 played on the channel. These days, it is filled with technical
251 presentations like those from <a href="https://www.nuug.no/">NUUG</a>,
252 <a href="https://www.debconf.org/">Debconf</a>, Makercon, and TED,
253 but there are also some periods with
254 <a href="https://www.empo.no/">EMPT TV</a> and
255 <a href="https://www.p7.no/">P7</a>.
256
257 <p>As usual, if you use Bitcoin and want to show your support of my
258 activities, please send Bitcoin donations to my address
259 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
260 </div>
261 <div class="tags">
262
263
264 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
265
266
267 </div>
268 </div>
269 <div class="padding"></div>
270
271 <div class="entry">
272 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Time_for_an_official_MIME_type_for_patches_.html">Time for an official MIME type for patches?</a></div>
273 <div class="date"> 1st November 2018</div>
274 <div class="body"><p>As part of my involvement in
275 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core">the Nikita
276 archive API project</a>, I've been importing a fairly large lump of
277 emails into a test instance of the archive to see how well this would
278 go. I picked a subset of <a href="https://notmuchmail.org/">my
279 notmuch email database</a>, all public emails sent to me via
280 @lists.debian.org, giving me a set of around 216 000 emails to import.
281 In the process, I had a look at the various attachments included in
282 these emails, to figure out what to do with attachments, and noticed
283 that one of the most common attachment formats do not have
284 <a href="https://www.iana.org/assignments/media-types/media-types.xhtml">an
285 official MIME type</a> registered with IANA/IETF. The output from
286 diff, ie the input for patch, is on the top 10 list of formats
287 included in these emails. At the moment people seem to use either
288 text/x-patch or text/x-diff, but neither is officially registered. It
289 would be better if one official MIME type were registered and used
290 everywhere.</p>
291
292 <p>To try to get one official MIME type for these files, I've brought
293 up the topic on
294 <a href="https://www.ietf.org/mailman/listinfo/media-types">the
295 media-types mailing list</a>. If you are interested in discussion
296 which MIME type to use as the official for patch files, or involved in
297 making software using a MIME type for patches, perhaps you would like
298 to join the discussion?</p>
299
300 <p>As usual, if you use Bitcoin and want to show your support of my
301 activities, please send Bitcoin donations to my address
302 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
303 </div>
304 <div class="tags">
305
306
307 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
308
309
310 </div>
311 </div>
312 <div class="padding"></div>
313
314 <div class="entry">
315 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Measuring_the_speaker_frequency_response_using_the_AUDMES_free_software_GUI___nice_free_software.html">Measuring the speaker frequency response using the AUDMES free software GUI - nice free software</a></div>
316 <div class="date">22nd October 2018</div>
317 <div class="body"><p><img src="http://people.skolelinux.org/pere/blog/images/2018-10-22-audmes-measure-speakers.png" align="right" width="40%"/></p>
318
319 <p>My current home stereo is a patchwork of various pieces I got on
320 flee markeds over the years. It is amazing what kind of equipment
321 show up there. I've been wondering for a while if it was possible to
322 measure how well this equipment is working together, and decided to
323 see how far I could get using free software. After trawling the web I
324 came across an article from DIY Audio and Video on
325 <a href="https://www.diyaudioandvideo.com/Tutorial/SpeakerResponseTesting/">Speaker
326 Testing and Analysis</a> describing how to test speakers, and it listing
327 several software options, among them
328 <a href="https://sourceforge.net/projects/audmes/">AUDio MEasurement
329 System (AUDMES)</a>. It is the only free software system I could find
330 focusing on measuring speakers and audio frequency response. In the
331 process I also found an interesting article from NOVO on
332 <a href="http://novo.press/understanding-speaker-specifications-and-frequency-response/">Understanding
333 Speaker Specifications and Frequency Response</a> and an article from
334 ecoustics on
335 <a href="https://www.ecoustics.com/articles/understanding-speaker-frequency-response/">Understanding
336 Speaker Frequency Response</a>, with a lot of information on what to
337 look for and how to interpret the graphs. Armed with this knowledge,
338 I set out to measure the state of my speakers.</p>
339
340 <p>The first hurdle was that AUDMES hadn't seen a commit for 10 years
341 and did not build with current compilers and libraries. I got in
342 touch with its author, who no longer was spending time on the program
343 but gave me write access to the subversion repository on Sourceforge.
344 The end result is that now the code build on Linux and is capable of
345 saving and loading the collected frequency response data in CSV
346 format. The application is quite nice and flexible, and I was able to
347 select the input and output audio interfaces independently. This made
348 it possible to use a USB mixer as the input source, while sending
349 output via my laptop headphone connection. I lacked the hardware and
350 cabling to figure out a different way to get independent cabling to
351 speakers and microphone.</p>
352
353 <p>Using this setup I could see how a large range of high frequencies
354 apparently were not making it out of my speakers. The picture show
355 the frequency response measurement of one of the speakers. Note the
356 frequency lines seem to be slightly misaligned, compared to the CSV
357 output from the program. I can not hear several of these are high
358 frequencies, according to measurement from
359 <a href="http://freehearingtestsoftware.com">Free Hearing Test
360 Software</a>, an freeware system to measure your hearing (still
361 looking for a free software alternative), so I do not know if they are
362 coming out out the speakers. I thus do not quite know how to figure
363 out if the missing frequencies is a problem with the microphone, the
364 amplifier or the speakers, but I managed to rule out the audio card in my
365 PC by measuring my Bose noise canceling headset using its own
366 microphone. This setup was able to see the high frequency tones, so
367 the problem with my stereo had to be in the amplifier or speakers.</p>
368
369 <p>Anyway, to try to role out one factor I ended up picking up a new
370 set of speakers at a flee marked, and these work a lot better than the
371 old speakers, so I guess the microphone and amplifier is OK. If you
372 need to measure your own speakers, check out AUDMES. If more people
373 get involved, perhaps the project could become good enough to
374 <a href="https://bugs.debian.org/910876">include in Debian</a>? And if
375 you know of some other free software to measure speakers and amplifier
376 performance, please let me know. I am aware of the freeware option
377 <a href="https://www.roomeqwizard.com/">REW</a>, but I want something
378 that can be developed also when the vendor looses interest.</p>
379
380 <p>As usual, if you use Bitcoin and want to show your support of my
381 activities, please send Bitcoin donations to my address
382 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
383 </div>
384 <div class="tags">
385
386
387 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software</a>.
388
389
390 </div>
391 </div>
392 <div class="padding"></div>
393
394 <div class="entry">
395 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Web_browser_integration_of_VLC_with_Bittorrent_support.html">Web browser integration of VLC with Bittorrent support</a></div>
396 <div class="date">21st October 2018</div>
397 <div class="body"><p>Bittorrent is as far as I know, currently the most efficient way to
398 distribute content on the Internet. It is used all by all sorts of
399 content providers, from national TV stations like
400 <a href="https://www.nrk.no/">NRK</a>, Linux distributors like
401 <a href="https://www.debian.org/">Debian</a> and
402 <a href="https://www.ubuntu.com/">Ubuntu</a>, and of course the
403 <a href="https://archive.org/">Internet archive</A>.
404
405 <p>Almost a month ago
406 <a href="https://tracker.debian.org/pkg/vlc-plugin-bittorrent">a new
407 package adding Bittorrent support to VLC</a> became available in
408 Debian testing and unstable. To test it, simply install it like
409 this:</p>
410
411 <p><pre>
412 apt install vlc-plugin-bittorrent
413 </pre></p>
414
415 <p>Since the plugin was made available for the first time in Debian,
416 several improvements have been made to it. In version 2.2-4, now
417 available in both testing and unstable, a desktop file is provided to
418 teach browsers to start VLC when the user click on torrent files or
419 magnet links. The last part is thanks to me finally understanding
420 what the strange x-scheme-handler style MIME types in desktop files
421 are used for. By adding x-scheme-handler/magnet to the MimeType entry
422 in the desktop file, at least the browsers Firefox and Chromium will
423 suggest to start VLC when selecting a magnet URI on a web page. The
424 end result is that now, with the plugin installed in Buster and Sid,
425 one can visit any
426 <a href="https://archive.org/details/CopyingIsNotTheft1080p">Internet
427 Archive page with movies</a> using a web browser and click on the
428 torrent link to start streaming the movie.</p>
429
430 <p>Note, there is still some misfeatures in the plugin. One is the
431 fact that it will hang and
432 <a href="https://github.com/johang/vlc-bittorrent/issues/13">block VLC
433 from exiting until the torrent streaming starts</a>. Another is the
434 fact that it
435 <a href="https://github.com/johang/vlc-bittorrent/issues/9">will pick
436 and play a random file in a multi file torrent</a>. This is not
437 always the video file you want. Combined with the first it can be a
438 bit hard to get the video streaming going. But when it work, it seem
439 to do a good job.</p>
440
441 <p>For the Debian packaging, I would love to find a good way to test
442 if the plugin work with VLC using autopkgtest. I tried, but do not
443 know enough of the inner workings of VLC to get it working. For now
444 the autopkgtest script is only checking if the .so file was
445 successfully loaded by VLC. If you have any suggestions, please
446 submit a patch to the Debian bug tracking system.</p>
447
448 <p>As usual, if you use Bitcoin and want to show your support of my
449 activities, please send Bitcoin donations to my address
450 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
451 </div>
452 <div class="tags">
453
454
455 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri</a>, <a href="http://people.skolelinux.org/pere/blog/tags/video">video</a>.
456
457
458 </div>
459 </div>
460 <div class="padding"></div>
461
462 <div class="entry">
463 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Release_0_2_of_free_software_archive_system_Nikita_announced.html">Release 0.2 of free software archive system Nikita announced</a></div>
464 <div class="date">18th October 2018</div>
465 <div class="body"><p>This morning, the new release of the
466 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
467 Noark 5 core project</a> was
468 <a href="https://lists.nuug.no/pipermail/nikita-noark/2018-October/000406.html">announced
469 on the project mailing list</a>. The free software solution is an
470 implementation of the Norwegian archive standard Noark 5 used by
471 government offices in Norway. These were the changes in version 0.2
472 since version 0.1.1 (from NEWS.md):
473
474 <ul>
475 <li>Fix typos in REL names</li>
476 <li>Tidy up error message reporting</li>
477 <li>Fix issue where we used Integer.valueOf(), not Integer.getInteger()</li>
478 <li>Change some String handling to StringBuffer</li>
479 <li>Fix error reporting</li>
480 <li>Code tidy-up</li>
481 <li>Fix issue using static non-synchronized SimpleDateFormat to avoid
482 race conditions</li>
483 <li>Fix problem where deserialisers were treating integers as strings</li>
484 <li>Update methods to make them null-safe</li>
485 <li>Fix many issues reported by coverity</li>
486 <li>Improve equals(), compareTo() and hash() in domain model</li>
487 <li>Improvements to the domain model for metadata classes</li>
488 <li>Fix CORS issues when downloading document</li>
489 <li>Implementation of case-handling with registryEntry and document upload</li>
490 <li>Better support in Javascript for OPTIONS</li>
491 <li>Adding concept description of mail integration</li>
492 <li>Improve setting of default values for GET on ny-journalpost</li>
493 <li>Better handling of required values during deserialisation </li>
494 <li>Changed tilknyttetDato (M620) from date to dateTime</li>
495 <li>Corrected some opprettetDato (M600) (de)serialisation errors.</li>
496 <li>Improve parse error reporting.</li>
497 <li>Started on OData search and filtering.</li>
498 <li>Added Contributor Covenant Code of Conduct to project.</li>
499 <li>Moved repository and project from Github to Gitlab.</li>
500 <li>Restructured repository, moved code into src/ and web/.</li>
501 <li>Updated code to use Spring Boot version 2.</li>
502 <li>Added support for OAuth2 authentication.</li>
503 <li>Fixed several bugs discovered by Coverity.</li>
504 <li>Corrected handling of date/datetime fields.</li>
505 <li>Improved error reporting when rejecting during deserializatoin.</li>
506 <li>Adjusted default values provided for ny-arkivdel, ny-mappe,
507 ny-saksmappe, ny-journalpost and ny-dokumentbeskrivelse.</li>
508 <li>Several fixes for korrespondansepart*.</li>
509 <li>Updated web GUI:
510 <ul>
511 <li>Now handle both file upload and download.</li>
512 <li>Uses new OAuth2 authentication for login.</li>
513 <li>Forms now fetches default values from API using GET.</li>
514 <li>Added RFC 822 (email), TIFF and JPEG to list of possible file formats.</li>
515 </ul></li>
516 </ul>
517
518 <p>The changes and improvements are extensive. Running diffstat on
519 the changes between git tab 0.1.1 and 0.2 show 1098 files changed,
520 108666 insertions(+), 54066 deletions(-).</p>
521
522 <p>If free and open standardized archiving API sound interesting to
523 you, please contact us on IRC
524 (<a href="irc://irc.freenode.net/%23nikita">#nikita on
525 irc.freenode.net</a>) or email
526 (<a href="https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
527 mailing list</a>).</p>
528
529 <p>As usual, if you use Bitcoin and want to show your support of my
530 activities, please send Bitcoin donations to my address
531 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
532 </div>
533 <div class="tags">
534
535
536 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
537
538
539 </div>
540 </div>
541 <div class="padding"></div>
542
543 <div class="entry">
544 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Fetching_trusted_timestamps_using_the_rfc3161ng_python_module.html">Fetching trusted timestamps using the rfc3161ng python module</a></div>
545 <div class="date"> 8th October 2018</div>
546 <div class="body"><p>I have earlier covered the basics of trusted timestamping using the
547 'openssl ts' client. See blog post for
548 <a href="http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html">2014</a>,
549 <a href="http://people.skolelinux.org/pere/blog/syslog_trusted_timestamp___chain_of_trusted_timestamps_for_your_syslog.html">2016</a>
550 and
551 <a href="http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html">2017</a>
552 for those stories. But some times I want to integrate the timestamping
553 in other code, and recently I needed to integrate it into Python.
554 After searching a bit, I found
555 <a href="https://dev.entrouvert.org/projects/python-rfc3161">the
556 rfc3161 library</a> which seemed like a good fit, but I soon
557 discovered it only worked for python version 2, and I needed something
558 that work with python version 3. Luckily I next came across
559 <a href="https://github.com/trbs/rfc3161ng/">the rfc3161ng library</a>,
560 a fork of the original rfc3161 library. Not only is it working with
561 python 3, it have fixed a few of the bugs in the original library, and
562 it has an active maintainer. I decided to wrap it up and make it
563 <a href="https://tracker.debian.org/pkg/python-rfc3161ng">available in
564 Debian</a>, and a few days ago it entered Debian unstable and testing.</p>
565
566 <p>Using the library is fairly straight forward. The only slightly
567 problematic step is to fetch the required certificates to verify the
568 timestamp. For some services it is straight forward, while for others
569 I have not yet figured out how to do it. Here is a small standalone
570 code example based on of the integration tests in the library code:</p>
571
572 <pre>
573 #!/usr/bin/python3
574
575 """
576
577 Python 3 script demonstrating how to use the rfc3161ng module to
578 get trusted timestamps.
579
580 The license of this code is the same as the license of the rfc3161ng
581 library, ie MIT/BSD.
582
583 """
584
585 import os
586 import pyasn1.codec.der
587 import rfc3161ng
588 import subprocess
589 import tempfile
590 import urllib.request
591
592 def store(f, data):
593 f.write(data)
594 f.flush()
595 f.seek(0)
596
597 def fetch(url, f=None):
598 response = urllib.request.urlopen(url)
599 data = response.read()
600 if f:
601 store(f, data)
602 return data
603
604 def main():
605 with tempfile.NamedTemporaryFile() as cert_f,\
606 tempfile.NamedTemporaryFile() as ca_f,\
607 tempfile.NamedTemporaryFile() as msg_f,\
608 tempfile.NamedTemporaryFile() as tsr_f:
609
610 # First fetch certificates used by service
611 certificate_data = fetch('https://freetsa.org/files/tsa.crt', cert_f)
612 ca_data_data = fetch('https://freetsa.org/files/cacert.pem', ca_f)
613
614 # Then timestamp the message
615 timestamper = \
616 rfc3161ng.RemoteTimestamper('http://freetsa.org/tsr',
617 certificate=certificate_data)
618 data = b"Python forever!\n"
619 tsr = timestamper(data=data, return_tsr=True)
620
621 # Finally, convert message and response to something 'openssl ts' can verify
622 store(msg_f, data)
623 store(tsr_f, pyasn1.codec.der.encoder.encode(tsr))
624 args = ["openssl", "ts", "-verify",
625 "-data", msg_f.name,
626 "-in", tsr_f.name,
627 "-CAfile", ca_f.name,
628 "-untrusted", cert_f.name]
629 subprocess.check_call(args)
630
631 if '__main__' == __name__:
632 main()
633 </pre>
634
635 <p>The code fetches the required certificates, store them as temporary
636 files, timestamp a simple message, store the message and timestamp to
637 disk and ask 'openssl ts' to verify the timestamp. A timestamp is
638 around 1.5 kiB in size, and should be fairly easy to store for future
639 use.</p>
640
641 <p>As usual, if you use Bitcoin and want to show your support of my
642 activities, please send Bitcoin donations to my address
643 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
644 </div>
645 <div class="tags">
646
647
648 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
649
650
651 </div>
652 </div>
653 <div class="padding"></div>
654
655 <p style="text-align: right;"><a href="index.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS feed" width="36" height="14" /></a></p>
656 <div id="sidebar">
657
658
659
660 <h2>Archive</h2>
661 <ul>
662
663 <li>2018
664 <ul>
665
666 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
667
668 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
669
670 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
671
672 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
673
674 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
675
676 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/07/">July (5)</a></li>
677
678 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/08/">August (3)</a></li>
679
680 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/09/">September (3)</a></li>
681
682 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/10/">October (5)</a></li>
683
684 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/11/">November (2)</a></li>
685
686 <li><a href="http://people.skolelinux.org/pere/blog/archive/2018/12/">December (4)</a></li>
687
688 </ul></li>
689
690 <li>2017
691 <ul>
692
693 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
694
695 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
696
697 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
698
699 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
700
701 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/06/">June (5)</a></li>
702
703 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/07/">July (1)</a></li>
704
705 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/08/">August (1)</a></li>
706
707 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/09/">September (3)</a></li>
708
709 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/10/">October (5)</a></li>
710
711 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
712
713 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
714
715 </ul></li>
716
717 <li>2016
718 <ul>
719
720 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
721
722 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
723
724 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
725
726 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
727
728 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
729
730 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
731
732 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
733
734 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
735
736 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
737
738 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
739
740 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
741
742 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
743
744 </ul></li>
745
746 <li>2015
747 <ul>
748
749 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
750
751 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
752
753 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
754
755 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
756
757 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
758
759 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
760
761 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
762
763 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
764
765 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
766
767 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
768
769 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
770
771 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
772
773 </ul></li>
774
775 <li>2014
776 <ul>
777
778 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
779
780 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
781
782 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
783
784 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
785
786 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
787
788 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
789
790 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
791
792 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
793
794 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
795
796 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
797
798 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
799
800 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
801
802 </ul></li>
803
804 <li>2013
805 <ul>
806
807 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
808
809 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
810
811 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
812
813 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
814
815 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
816
817 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
818
819 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
820
821 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
822
823 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
824
825 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
826
827 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
828
829 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
830
831 </ul></li>
832
833 <li>2012
834 <ul>
835
836 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
837
838 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
839
840 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
841
842 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
843
844 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
845
846 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
847
848 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
849
850 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
851
852 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
853
854 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
855
856 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
857
858 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
859
860 </ul></li>
861
862 <li>2011
863 <ul>
864
865 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
866
867 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
868
869 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
870
871 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
872
873 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
874
875 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
876
877 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
878
879 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
880
881 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
882
883 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
884
885 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
886
887 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
888
889 </ul></li>
890
891 <li>2010
892 <ul>
893
894 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
895
896 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
897
898 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
899
900 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
901
902 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
903
904 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
905
906 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
907
908 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
909
910 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
911
912 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
913
914 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
915
916 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
917
918 </ul></li>
919
920 <li>2009
921 <ul>
922
923 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
924
925 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
926
927 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
928
929 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
930
931 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
932
933 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
934
935 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
936
937 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
938
939 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
940
941 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
942
943 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
944
945 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
946
947 </ul></li>
948
949 <li>2008
950 <ul>
951
952 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
953
954 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
955
956 </ul></li>
957
958 </ul>
959
960
961
962 <h2>Tags</h2>
963 <ul>
964
965 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (16)</a></li>
966
967 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
968
969 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
970
971 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
972
973 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (10)</a></li>
974
975 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
976
977 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
978
979 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
980
981 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (165)</a></li>
982
983 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
984
985 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (4)</a></li>
986
987 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
988
989 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (17)</a></li>
990
991 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (25)</a></li>
992
993 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
994
995 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (395)</a></li>
996
997 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
998
999 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (13)</a></li>
1000
1001 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (32)</a></li>
1002
1003 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1004
1005 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (19)</a></li>
1006
1007 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
1008
1009 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
1010
1011 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (16)</a></li>
1012
1013 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (20)</a></li>
1014
1015 <li><a href="http://people.skolelinux.org/pere/blog/tags/kodi">kodi (4)</a></li>
1016
1017 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1018
1019 <li><a href="http://people.skolelinux.org/pere/blog/tags/lego">lego (4)</a></li>
1020
1021 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1022
1023 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1024
1025 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1026
1027 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1028
1029 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (41)</a></li>
1030
1031 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (11)</a></li>
1032
1033 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (300)</a></li>
1034
1035 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (191)</a></li>
1036
1037 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (34)</a></li>
1038
1039 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1040
1041 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (72)</a></li>
1042
1043 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (108)</a></li>
1044
1045 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
1046
1047 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1048
1049 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1050
1051 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1052
1053 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (10)</a></li>
1054
1055 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1056
1057 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (6)</a></li>
1058
1059 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1060
1061 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (55)</a></li>
1062
1063 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1064
1065 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
1066
1067 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (58)</a></li>
1068
1069 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (6)</a></li>
1070
1071 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (12)</a></li>
1072
1073 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (55)</a></li>
1074
1075 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (4)</a></li>
1076
1077 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
1078
1079 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
1080
1081 <li><a href="http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (14)</a></li>
1082
1083 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (71)</a></li>
1084
1085 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1086
1087 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (42)</a></li>
1088
1089 </ul>
1090
1091
1092 </div>
1093 <p style="text-align: right">
1094 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1095 </p>
1096
1097 </body>
1098 </html>