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