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">
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" />
14 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
23 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/My_own_self_balancing_Lego_Segway.html">My own self balancing Lego Segway
</a></div>
24 <div class=
"date"> 4th November
2016</div>
25 <div class=
"body"><p>A while back I received a Gyro sensor for the NXT
26 <a href=
"mindstorms.lego.com">Mindstorms
</a> controller as a birthday
27 present. It had been on my wishlist for a while, because I wanted to
28 build a Segway like balancing lego robot. I had already built
29 <a href=
"http://www.nxtprograms.com/NXT2/segway/">a simple balancing
30 robot
</a> with the kids, using the light/color sensor included in the
31 NXT kit as the balance sensor, but it was not working very well. It
32 could balance for a while, but was very sensitive to the light
33 condition in the room and the reflective properties of the surface and
34 would fall over after a short while. I wanted something more robust,
36 <a href=
"https://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NGY1044">the
37 gyro sensor from HiTechnic
</a> I believed would solve it on my
38 wishlist for some years before it suddenly showed up as a gift from my
41 <p>Unfortunately I have not had time to sit down and play with it
42 since then. But that changed some days ago, when I was searching for
43 lego segway information and came across a recipe from HiTechnic for
45 <a href=
"http://www.hitechnic.com/blog/gyro-sensor/htway/">the
46 HTWay
</a>, a segway like balancing robot. Build instructions and
47 <a href=
"https://www.hitechnic.com/upload/786-HTWayC.nxc">source
48 code
</a> was included, so it was just a question of putting it all
49 together. And thanks to the great work of many Debian developers, the
50 compiler needed to build the source for the NXT is already included in
51 Debian, so I was read to go in less than an hour. The resulting robot
52 do not look very impressive in its simplicity:
</p>
54 <p align=
"center"><img width=
"70%" src=
"http://people.skolelinux.org/pere/blog/images/2016-11-04-lego-htway-robot.jpeg"></p>
56 <p>Because I lack the infrared sensor used to control the robot in the
57 design from HiTechnic, I had to comment out the last task
58 (taskControl). I simply placed /* and */ around it get the program
59 working without that sensor present. Now it balances just fine until
60 the battery status run low:
</p>
62 <p align=
"center"><video width=
"70%" controls=
"true">
63 <source src=
"http://people.skolelinux.org/pere/blog/images/2016-11-04-lego-htway-balancing.ogv" type=
"video/ogg">
66 <p>Now we would like to teach it how to follow a line and take remote
67 control instructions using the included Bluetooth receiver in the NXT.
</p>
69 <p>If you, like me, love LEGO and want to make sure we find the tools
70 they need to work with LEGO in Debian and all our derivative
71 distributions like Ubuntu, check out
72 <a href=
"http://wiki.debian.org/LegoDesigners">the LEGO designers
73 project page
</a> and join the Debian LEGO team. Personally I own a
74 RCX and NXT controller (no EV3), and would like to make sure the
75 Debian tools needed to program the systems I own work as they
81 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/robot">robot
</a>.
86 <div class=
"padding"></div>
89 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Aktivitetsb_nd_som_beskytter_privatsf_ren.html">Aktivitetsbånd som beskytter privatsfæren
</a></div>
90 <div class=
"date"> 3rd November
2016</div>
91 <div class=
"body"><p>Jeg ble så imponert over
92 <a href=
"https://www.nrk.no/norge/forbrukerradet-mener-aktivitetsarmband-strider-mot-norsk-lov-1.13209079">dagens
93 gladnyhet på NRK
</a>, om at Forbrukerrådet klager inn vilkårene for
94 bruk av aktivitetsbånd fra Fitbit, Garmin, Jawbone og Mio til
95 Datatilsynet og forbrukerombudet, at jeg sendte følgende brev til
96 forbrukerrådet for å uttrykke min støtte:
100 <p>Jeg ble veldig glad over å lese at Forbrukerrådet
101 <a href=
"http://www.forbrukerradet.no/siste-nytt/klager-inn-aktivitetsarmband-for-brudd-pa-norsk-lov/">klager
102 inn flere aktivitetsbånd til Datatilsynet for dårlige vilkår
</a>. Jeg
103 har ønsket meg et aktivitetsbånd som kan måle puls, bevegelse og
104 gjerne også andre helserelaterte indikatorer en stund nå. De eneste
105 jeg har funnet i salg gjør, som dere også har oppdaget, graverende
106 inngrep i privatsfæren og sender informasjonen ut av huset til folk og
107 organisasjoner jeg ikke ønsker å dele aktivitets- og helseinformasjon
108 med. Jeg ønsker et alternativ som
<em>ikke
</em> sender informasjon til
109 skyen, men derimot bruker
110 <a href=
"http://people.skolelinux.org/pere/blog/Fri_og__pen_standard__slik_Digistan_ser_det.html">en
111 fritt og åpent standardisert
</a> protokoll (eller i det minste en
112 dokumentert protokoll uten patent- og opphavsrettslige
113 bruksbegrensinger) til å kommunisere med datautstyr jeg kontrollerer.
114 Er jo ikke interessert i å betale noen for å tilrøve seg
115 personopplysninger fra meg. Desverre har jeg ikke funnet noe
116 alternativ så langt.
</p>
118 <p>Det holder ikke å endre på bruksvilkårene for enhetene, slik
119 Datatilsynet ofte legger opp til i sin behandling, når de gjør slik
120 f.eks. Fitbit (den jeg har sett mest på). Fitbit krypterer
121 informasjonen på enheten og sender den kryptert til leverandøren. Det
122 gjør det i praksis umulig både å sjekke hva slags informasjon som
123 sendes over, og umulig å ta imot informasjonen selv i stedet for
124 Fitbit. Uansett hva slags historie som forteller i bruksvilkårene er
125 en jo både prisgitt leverandørens godvilje og at de ikke tvinges av
126 sitt lands myndigheter til å lyve til sine kunder om hvorvidt
127 personopplysninger spres ut over det bruksvilkårene sier. Det er
128 veldokumentert hvordan f.eks. USA tvinger selskaper vha. såkalte
129 National security letters til å utlevere personopplysninger samtidig
130 som de ikke får lov til å fortelle dette til kundene sine.
</p>
132 <p>Stå på, jeg er veldig glade for at dere har sett på saken. Vet
133 dere om aktivitetsbånd i salg i dag som ikke tvinger en til å utlevere
134 aktivitets- og helseopplysninger med leverandøren?
</p>
138 <p>Jeg håper en konkurrent som respekterer kundenes privatliv klarer å
139 nå opp i markedet, slik at det finnes et reelt alternativ for oss som
140 har full tillit til at skyleverandører vil prioritere egen inntjening
141 og myndighetspålegg langt foran kundenes rett til privatliv. Jeg har
142 ingen tiltro til at Datatilsynet vil kreve noe mer enn at vilkårene
143 endres slik at de forklarer eksplisitt i hvor stor grad bruk av
144 produktene utraderer privatsfæren til kundene. Det vil nok gjøre de
145 innklagede armbåndene «lovlige», men fortsatt tvinge kundene til å
146 dele sine personopplysninger med leverandøren.
</p>
151 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>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance
</a>.
156 <div class=
"padding"></div>
159 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Experience_and_updated_recipe_for_using_the_Signal_app_without_a_mobile_phone.html">Experience and updated recipe for using the Signal app without a mobile phone
</a></div>
160 <div class=
"date">10th October
2016</div>
161 <div class=
"body"><p>In July
162 <a href=
"http://people.skolelinux.org/pere/blog/How_to_use_the_Signal_app_if_you_only_have_a_land_line__ie_no_mobile_phone_.html">I
163 wrote how to get the Signal Chrome/Chromium app working
</a> without
164 the ability to receive SMS messages (aka without a cell phone). It is
165 time to share some experiences and provide an updated setup.
</p>
167 <p>The Signal app have worked fine for several months now, and I use
168 it regularly to chat with my loved ones. I had a major snag at the
169 end of my summer vacation, when the the app completely forgot my
170 setup, identity and keys. The reason behind this major mess was
171 running out of disk space. To avoid that ever happening again I have
172 started storing everything in
<tt>userdata/
</tt> in git, to be able to
173 roll back to an earlier version if the files are wiped by mistake. I
174 had to use it once after introducing the git backup. When rolling
175 back to an earlier version, one need to use the 'reset session' option
176 in Signal to get going, and notify the people you talk with about the
177 problem. I assume there is some sequence number tracking in the
178 protocol to detect rollback attacks. The git repository is rather big
179 (
674 MiB so far), but I have not tried to figure out if some of the
180 content can be added to a .gitignore file due to lack of spare
183 <p>I've also hit the
90 days timeout blocking, and noticed that this
184 make it impossible to send messages using Signal. I could still
185 receive them, but had to patch the code with a new timestamp to send.
186 I believe the timeout is added by the developers to force people to
187 upgrade to the latest version of the app, even when there is no
188 protocol changes, to reduce the version skew among the user base and
189 thus try to keep the number of support requests down.
</p>
191 <p>Since my original recipe, the Signal source code changed slightly,
192 making the old patch fail to apply cleanly. Below is an updated
193 patch, including the shell wrapper I use to start Signal. The
194 original version required a new user to locate the JavaScript console
195 and call a function from there. I got help from a friend with more
196 JavaScript knowledge than me to modify the code to provide a GUI
197 button instead. This mean that to get started you just need to run
198 the wrapper and click the 'Register without mobile phone' to get going
199 now. I've also modified the timeout code to always set it to
90 days
200 in the future, to avoid having to patch the code regularly.
</p>
202 <p>So, the updated recipe for Debian Jessie:
</p>
206 <li>First, install required packages to get the source code and the
207 browser you need. Signal only work with Chrome/Chromium, as far as I
208 know, so you need to install it.
211 apt install git tor chromium
212 git clone https://github.com/WhisperSystems/Signal-Desktop.git
215 <li>Modify the source code using command listed in the the patch
218 <li>Start Signal using the run-signal-app wrapper (for example using
219 <tt>`pwd`/run-signal-app
</tt>).
221 <li>Click on the 'Register without mobile phone', will in a phone
222 number you can receive calls to the next minute, receive the
223 verification code and enter it into the form field and press
224 'Register'. Note, the phone number you use will be user Signal
225 username, ie the way others can find you on Signal.
</li>
227 <li>You can now use Signal to contact others. Note, new contacts do
228 not show up in the contact list until you restart Signal, and there is
229 no way to assign names to Contacts. There is also no way to create or
230 update chat groups. I suspect this is because the web app do not have
231 a associated contact database.
</li>
235 <p>I am still a bit uneasy about using Signal, because of the way its
236 main author moxie0 reject federation and accept dependencies to major
237 corporations like Google (part of the code is fetched from Google) and
238 Amazon (the central coordination point is owned by Amazon). See for
240 <a href=
"https://github.com/LibreSignal/LibreSignal/issues/37">the
241 LibreSignal issue tracker
</a> for a thread documenting the authors
242 view on these issues. But the network effect is strong in this case,
243 and several of the people I want to communicate with already use
244 Signal. Perhaps we can all move to
<a href=
"https://ring.cx/">Ring
</a>
245 once it
<a href=
"https://bugs.debian.org/830265">work on my
246 laptop
</a>? It already work on Windows and Android, and is included
247 in
<a href=
"https://tracker.debian.org/pkg/ring">Debian
</a> and
248 <a href=
"https://launchpad.net/ubuntu/+source/ring">Ubuntu
</a>, but not
249 working on Debian Stable.
</p>
251 <p>Anyway, this is the patch I apply to the Signal code to get it
252 working. It switch to the production servers, disable to timeout,
253 make registration easier and add the shell wrapper:
</p>
256 cd Signal-Desktop; cat
<<EOF | patch -p1
257 diff --git a/js/background.js b/js/background.js
258 index
24b4c1d.
.579345f
100644
259 --- a/js/background.js
260 +++ b/js/background.js
265 - var SERVER_URL = 'https://textsecure-service-staging.whispersystems.org';
266 + var SERVER_URL = 'https://textsecure-service-ca.whispersystems.org';
267 var SERVER_PORTS = [
80,
4433,
8443];
268 - var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments-staging.s3.amazonaws.com';
269 + var ATTACHMENT_SERVER_URL = 'https://whispersystems-textsecure-attachments.s3.amazonaws.com';
271 window.getSocketStatus = function() {
272 if (messageReceiver) {
273 diff --git a/js/expire.js b/js/expire.js
274 index
639aeae..beb91c3
100644
280 - var BUILD_EXPIRATION =
0;
281 + var BUILD_EXPIRATION = Date.now() + (
90 *
24 *
60 *
60 *
1000);
283 window.extension = window.extension || {};
285 diff --git a/js/views/install_view.js b/js/views/install_view.js
286 index
7816f4f.
.1d6233b
100644
287 --- a/js/views/install_view.js
288 +++ b/js/views/install_view.js
291 'click .step1': this.selectStep.bind(this,
1),
292 'click .step2': this.selectStep.bind(this,
2),
293 - 'click .step3': this.selectStep.bind(this,
3)
294 + 'click .step3': this.selectStep.bind(this,
3),
295 + 'click .callreg': function() { extension.install('standalone') },
298 clearQR: function() {
299 diff --git a/options.html b/options.html
300 index dc0f28e.
.8d709f6
100644
305 <h1
>{{ installWelcome }}
</h1
>
306 <p
>{{ installTagline }}
</p
>
307 -
<div
> <a class='button step2'
>{{ installGetStartedButton }}
</a
> </div
>
308 +
<div
> <a class='button step2'
>{{ installGetStartedButton }}
</a
>
309 +
<br
> <a
class="button callreg"
>Register without mobile phone
</a
>
312 <span class='dot step1 selected'
></span
>
313 <span class='dot step2'
></span
>
314 <span class='dot step3'
></span
>
315 --- /dev/null
2016-
10-
07 09:
55:
13.730181472 +
0200
316 +++ b/run-signal-app
2016-
10-
10 08:
54:
09.434172391 +
0200
322 +
userdata="`pwd`/userdata"
323 +if [ -d "$userdata" ] && [ ! -d "$userdata/.git" ] ; then
324 + (cd $userdata && git init)
326 +(cd $userdata && git add . && git commit -m "Current status." || true)
328 +
--proxy-server="socks://localhost:
9050" \
329 + --user-data-dir=$userdata --load-and-launch-app=`pwd`
331 chmod a+rx run-signal-app
334 <p>As usual, if you use Bitcoin and want to show your support of my
335 activities, please send Bitcoin donations to my address
336 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
341 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/sikkerhet">sikkerhet
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance
</a>.
346 <div class=
"padding"></div>
349 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/NRKs_kildevern_n_r_NRK_epost_deles_med_utenlands_etterretning_.html">NRKs kildevern når NRK-epost deles med utenlands etterretning?
</a></div>
350 <div class=
"date"> 8th October
2016</div>
351 <div class=
"body"><p>NRK
352 <a href=
"https://nrkbeta.no/2016/09/02/securing-whistleblowers/">lanserte
353 for noen uker siden
</a> en ny
354 <a href=
"https://www.nrk.no/varsle/">varslerportal som bruker
355 SecureDrop til å ta imot tips
</a> der det er vesentlig at ingen
356 utenforstående får vite at NRK er tipset. Det er et langt steg
357 fremover for NRK, og når en leser bloggposten om hva de har tenkt på
358 og hvordan løsningen er satt opp virker det som om de har gjort en
359 grundig jobb der. Men det er ganske mye ekstra jobb å motta tips via
360 SecureDrop, så varslersiden skriver "Nyhetstips som ikke krever denne
361 typen ekstra vern vil vi gjerne ha på nrk.no/
03030", og
03030-siden
362 foreslår i tillegg til et webskjema å bruke epost, SMS, telefon,
363 personlig oppmøte og brevpost. Denne artikkelen handler disse andre
366 <p>Når en sender epost til en @nrk.no-adresse så vil eposten sendes ut
367 av landet til datamaskiner kontrollert av Microsoft. En kan sjekke
368 dette selv ved å slå opp epostleveringsadresse (MX) i DNS. For NRK er
369 dette i dag "nrk-no.mail.protection.outlook.com". NRK har som en ser
370 valgt å sette bort epostmottaket sitt til de som står bak outlook.com,
371 dvs. Microsoft. En kan sjekke hvor nettverkstrafikken tar veien
372 gjennom Internett til epostmottaket vha. programmet
373 <tt>traceroute
</tt>, og finne ut hvem som eier en Internett-adresse
374 vha. whois-systemet. Når en gjør dette for epost-trafikk til @nrk.no
375 ser en at trafikken fra Norge mot nrk-no.mail.protection.outlook.com
376 går via Sverige mot enten Irland eller Tyskland (det varierer fra gang
377 til gang og kan endre seg over tid).
</p>
380 <a href=
"https://no.wikipedia.org/wiki/FRA-loven">introduksjonen av
381 FRA-loven
</a> at IP-trafikk som passerer grensen til Sverige avlyttes
382 av Försvarets radioanstalt (FRA). Vi vet videre takket være
383 Snowden-bekreftelsene at trafikk som passerer grensen til
384 Storbritannia avlyttes av Government Communications Headquarters
385 (GCHQ). I tillegg er er det nettopp lansert et forslag i Norge om at
386 forsvarets E-tjeneste skal få avlytte trafikk som krysser grensen til
387 Norge. Jeg er ikke kjent med dokumentasjon på at Irland og Tyskland
388 gjør det samme. Poenget er uansett at utenlandsk etterretning har
389 mulighet til å snappe opp trafikken når en sender epost til @nrk.no.
390 I tillegg er det selvsagt tilgjengelig for Microsoft som er underlagt USAs
392 <a href=
"https://www.theguardian.com/world/2013/jul/11/microsoft-nsa-collaboration-user-data">samarbeider
393 med USAs etterretning på flere områder
</a>. De som tipser NRK om
394 nyheter via epost kan dermed gå ut fra at det blir kjent for mange
395 andre enn NRK at det er gjort.
</p>
397 <p>Bruk av SMS og telefon registreres av blant annet telefonselskapene
398 og er tilgjengelig i følge lov og forskrift for blant annet Politi,
399 NAV og Finanstilsynet, i tillegg til IT-folkene hos telefonselskapene
400 og deres overordnede. Hvis innringer eller mottaker bruker
401 smarttelefon vil slik kontakt også gjøres tilgjengelig for ulike
402 app-leverandører og de som lytter på trafikken mellom telefon og
403 app-leverandør, alt etter hva som er installert på telefonene som
406 <p>Brevpost kan virke trygt, og jeg vet ikke hvor mye som registreres
407 og lagres av postens datastyrte postsorteringssentraler. Det vil ikke
408 overraske meg om det lagres hvor i landet hver konvolutt kommer fra og
409 hvor den er adressert, i hvert fall for en kortere periode. Jeg vet
410 heller ikke hvem slik informasjon gjøres tilgjengelig for. Det kan
411 være nok til å ringe inn potensielle kilder når det krysses med hvem
412 som kjente til aktuell informasjon og hvor de befant seg (tilgjengelig
413 f.eks. hvis de bærer mobiltelefon eller bor i nærheten).
</p>
415 <p>Personlig oppmøte hos en NRK-journalist er antagelig det tryggeste,
416 men en bør passe seg for å bruke NRK-kantina. Der bryter de nemlig
417 <a href=
"http://www.lovdata.no/all/hl-19850524-028.html#14">Sentralbanklovens
418 paragraf
14</a> og nekter folk å betale med kontanter. I stedet
419 krever de at en varsle sin bankkortutsteder om hvor en befinner seg
420 ved å bruke bankkort. Banktransaksjoner er tilgjengelig for
421 bankkortutsteder (det være seg VISA, Mastercard, Nets og/eller en
422 bank) i tillegg til politiet og i hvert fall tidligere med Se & Hør
423 (via utro tjenere, slik det ble avslørt etter utgivelsen av boken
424 «Livet, det forbannede» av Ken B. Rasmussen). Men hvor mange kjenner
425 en NRK-journalist personlig? Besøk på NRK på Marienlyst krever at en
426 registrerer sin ankost elektronisk i besøkssystemet. Jeg vet ikke hva
427 som skjer med det datasettet, men har grunn til å tro at det sendes ut
428 SMS til den en skal besøke med navnet som er oppgitt. Kanskje greit å
429 oppgi falskt navn.
</p>
431 <p>Når så tipset er kommet frem til NRK skal det behandles
432 redaksjonelt i NRK. Der vet jeg via ulike kilder at de fleste
433 journalistene bruker lokalt installert programvare, men noen bruker
434 Google Docs og andre skytjenester i strid med interne retningslinjer
435 når de skriver. Hvordan vet en hvem det gjelder? Ikke vet jeg, men
436 det kan være greit å spørre for å sjekke at journalisten har tenkt på
437 problemstillingen, før en gir et tips. Og hvis tipset omtales internt
438 på epost, er det jo grunn til å tro at også intern eposten vil deles
439 med Microsoft og utenlands etterretning, slik tidligere nevnt, men det
440 kan hende at det holdes internt i NRKs interne MS Exchange-løsning.
441 Men Microsoft ønsker å få alle Exchange-kunder over "i skyen" (eller
442 andre folks datamaskiner, som det jo innebærer), så jeg vet ikke hvor
443 lenge det i så fall vil vare.
</p>
445 <p>I tillegg vet en jo at
446 <a href=
"https://www.nrk.no/ytring/elektronisk-kildevern-i-nrk-1.11941196">NRK
447 har valgt å gi nasjonal sikkerhetsmyndighet (NSM) tilgang til å se på
448 intern og ekstern Internett-trafikk
</a> hos NRK ved oppsett av såkalte
449 VDI-noder, på tross av
450 <a href=
"https://www.nrk.no/ytring/bekymring-for-nrks-kildevern-1.11941584">protester
451 fra NRKs journalistlag
</a>. Jeg vet ikke om den vil kunne snappe opp
452 dokumenter som lagres på interne filtjenere eller dokumenter som lages
453 i de interne webbaserte publiseringssystemene, men vet at hva noden
454 ser etter på nettet kontrolleres av NSM og oppdateres automatisk, slik
455 at det ikke gir så mye mening å sjekke hva noden ser etter i dag når
456 det kan endres automatisk i morgen.
</p>
458 <p>Personlig vet jeg ikke om jeg hadde turt tipse NRK hvis jeg satt på
459 noe som kunne være en trussel mot den bestående makten i Norge eller
460 verden. Til det virker det å være for mange åpninger for
461 utenforstående med andre prioriteter enn NRKs journalistiske fokus.
462 Og den største truslen for en varsler er jo om metainformasjon kommer
463 på avveie, dvs. informasjon om at en har vært i kontakt med en
464 journalist. Det kan være nok til at en kommer i myndighetenes
465 søkelys, og de færreste har nok operasjonell sikkerhet til at vil tåle
466 slik flombelysning på sitt privatliv.
</p>
471 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/dld">dld
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance
</a>.
476 <div class=
"padding"></div>
479 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Isenkram__Appstream_and_udev_make_life_as_a_LEGO_builder_easier.html">Isenkram, Appstream and udev make life as a LEGO builder easier
</a></div>
480 <div class=
"date"> 7th October
2016</div>
481 <div class=
"body"><p><a href=
"http://packages.qa.debian.org/isenkram">The Isenkram
482 system
</a> provide a practical and easy way to figure out which
483 packages support the hardware in a given machine. The command line
484 tool
<tt>isenkram-lookup
</tt> and the tasksel options provide a
485 convenient way to list and install packages relevant for the current
486 hardware during system installation, both user space packages and
487 firmware packages. The GUI background daemon on the other hand provide
488 a pop-up proposing to install packages when a new dongle is inserted
489 while using the computer. For example, if you plug in a smart card
490 reader, the system will ask if you want to install
<tt>pcscd
</tt> if
491 that package isn't already installed, and if you plug in a USB video
492 camera the system will ask if you want to install
<tt>cheese
</tt> if
493 cheese is currently missing. This already work just fine.
</p>
495 <p>But Isenkram depend on a database mapping from hardware IDs to
496 package names. When I started no such database existed in Debian, so
497 I made my own data set and included it with the isenkram package and
498 made isenkram fetch the latest version of this database from git using
499 http. This way the isenkram users would get updated package proposals
500 as soon as I learned more about hardware related packages.
</p>
502 <p>The hardware is identified using modalias strings. The modalias
503 design is from the Linux kernel where most hardware descriptors are
504 made available as a strings that can be matched using filename style
505 globbing. It handle USB, PCI, DMI and a lot of other hardware related
508 <p>The downside to the Isenkram specific database is that there is no
509 information about relevant distribution / Debian version, making
510 isenkram propose obsolete packages too. But along came AppStream, a
511 cross distribution mechanism to store and collect metadata about
512 software packages. When I heard about the proposal, I contacted the
513 people involved and suggested to add a hardware matching rule using
514 modalias strings in the specification, to be able to use AppStream for
515 mapping hardware to packages. This idea was accepted and AppStream is
516 now a great way for a package to announce the hardware it support in a
517 distribution neutral way. I wrote
518 <a href=
"http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html">a
519 recipe on how to add such meta-information
</a> in a blog post last
520 December. If you have a hardware related package in Debian, please
521 announce the relevant hardware IDs using AppStream.
</p>
523 <p>In Debian, almost all packages that can talk to a LEGO Mindestorms
524 RCX or NXT unit, announce this support using AppStream. The effect is
525 that when you insert such LEGO robot controller into your Debian
526 machine, Isenkram will propose to install the packages needed to get
527 it working. The intention is that this should allow the local user to
528 start programming his robot controller right away without having to
529 guess what packages to use or which permissions to fix.
</p>
531 <p>But when I sat down with my son the other day to program our NXT
532 unit using his Debian Stretch computer, I discovered something
533 annoying. The local console user (ie my son) did not get access to
534 the USB device for programming the unit. This used to work, but no
535 longer in Jessie and Stretch. After some investigation and asking
536 around on #debian-devel, I discovered that this was because udev had
537 changed the mechanism used to grant access to local devices. The
538 ConsoleKit mechanism from
<tt>/lib/udev/rules.d/
70-udev-acl.rules
</tt>
539 no longer applied, because LDAP users no longer was added to the
540 plugdev group during login. Michael Biebl told me that this method
541 was obsolete and the new method used ACLs instead. This was good
542 news, as the plugdev mechanism is a mess when using a remote user
543 directory like LDAP. Using ACLs would make sure a user lost device
544 access when she logged out, even if the user left behind a background
545 process which would retain the plugdev membership with the ConsoleKit
546 setup. Armed with this knowledge I moved on to fix the access problem
547 for the LEGO Mindstorms related packages.
</p>
549 <p>The new system uses a udev tag, 'uaccess'. It can either be
550 applied directly for a device, or is applied in
551 /lib/udev/rules.d/
70-uaccess.rules for classes of devices. As the
552 LEGO Mindstorms udev rules did not have a class, I decided to add the
553 tag directly in the udev rules files included in the packages. Here
554 is one example. For the nqc C compiler for the RCX, the
555 <tt>/lib/udev/rules.d/
60-nqc.rules
</tt> file now look like this:
558 SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="
0694", ATTR{idProduct}=="
0001", \
559 SYMLINK+="rcx-%k", TAG+="uaccess"
562 <p>The key part is the 'TAG+="uaccess"' at the end. I suspect all
563 packages using plugdev in their /lib/udev/rules.d/ files should be
564 changed to use this tag (either directly or indirectly via
565 <tt>70-uaccess.rules
</tt>). Perhaps a lintian check should be created
568 <p>I've been unable to find good documentation on the uaccess feature.
569 It is unclear to me if the uaccess tag is an internal implementation
570 detail like the udev-acl tag used by
571 <tt>/lib/udev/rules.d/
70-udev-acl.rules
</tt>. If it is, I guess the
572 indirect method is the preferred way. Michael
573 <a href=
"https://github.com/systemd/systemd/issues/4288">asked for more
574 documentation from the systemd project
</a> and I hope it will make
575 this clearer. For now I use the generic classes when they exist and
576 is already handled by
<tt>70-uaccess.rules
</tt>, and add the tag
577 directly if no such class exist.
</p>
579 <p>To learn more about the isenkram system, please check out
580 <a href=
"http://people.skolelinux.org/pere/blog/tags/isenkram/">my
581 blog posts tagged isenkram
</a>.
</p>
583 <p>To help out making life for LEGO constructors in Debian easier,
584 please join us on our IRC channel
585 <a href=
"irc://irc.debian.org/%23debian-lego">#debian-lego
</a> and join
586 the
<a href=
"https://alioth.debian.org/projects/debian-lego/">Debian
587 LEGO team
</a> in the Alioth project we created yesterday. A mailing
588 list is not yet created, but we are working on it. :)
</p>
590 <p>As usual, if you use Bitcoin and want to show your support of my
591 activities, please send Bitcoin donations to my address
592 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
597 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/isenkram">isenkram
</a>.
602 <div class=
"padding"></div>
605 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Aftenposten_redakt_ren_med_lua_i_h_nda.html">Aftenposten-redaktøren med lua i hånda
</a></div>
606 <div class=
"date"> 9th September
2016</div>
607 <div class=
"body"><p>En av dagens nyheter er at Aftenpostens redaktør Espen Egil Hansen
609 <a href=
"https://www.nrk.no/kultur/aftenposten-brukar-heile-forsida-pa-facebook-kritikk-1.13126918">forsiden
610 av papiravisen på et åpent brev til Facebooks sjef Mark Zuckerberg om
611 Facebooks fjerning av bilder, tekster og sider de ikke liker
</a>. Det
612 må være uvant for redaktøren i avisen Aftenposten å stå med lua i
613 handa og håpe på å bli hørt. Spesielt siden Aftenposten har vært med
614 på å gi Facebook makten de nå demonstrerer at de har. Ved å melde seg
615 inn i Facebook-samfunnet har de sagt ja til bruksvilkårene og inngått
616 en antagelig bindende avtale. Kanskje de skulle lest og vurdert
617 vilkårene litt nærmere før de sa ja, i stedet for å klage over at
618 reglende de har valgt å akseptere blir fulgt? Personlig synes jeg
619 vilkårene er uakseptable og det ville ikke falle meg inn å gå inn på
620 en avtale med slike vilkår. I tillegg til uakseptable vilkår er det
621 mange andre grunner til å unngå Facebook. Du kan finne en solid
622 gjennomgang av flere slike argumenter hos
623 <a href=
"https://stallman.org/facebook.html">Richard Stallmans side om
626 <p>Jeg håper flere norske redaktører på samme vis må stå med lua i
627 hånden inntil de forstår at de selv er med på å føre samfunnet på
628 ville veier ved å omfavne Facebook slik de gjør når de omtaler og
629 løfter frem saker fra Facebook, og tar i bruk Facebook som
630 distribusjonskanal for sine nyheter. De bidrar til
631 overvåkningssamfunnet og raderer ut lesernes privatsfære når de lenker
632 til Facebook på sine sider, og låser seg selv inne i en omgivelse der
633 det er Facebook, og ikke redaktøren, som sitter med makta.
</p>
635 <p>Men det vil nok ta tid, i et Norge der de fleste nettredaktører
636 <a href=
"http://people.skolelinux.org/pere/blog/Snurpenot_overv_kning_av_sensitiv_personinformasjon.html">deler
637 sine leseres personopplysinger med utenlands etterretning
</a>.
</p>
639 <p>For øvrig burde varsleren Edward Snowden få politisk asyl i
645 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance
</a>.
650 <div class=
"padding"></div>
653 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/E_tjenesten_ber_om_innsyn_i_eposten_til_partiene_p__Stortinget.html">E-tjenesten ber om innsyn i eposten til partiene på Stortinget
</a></div>
654 <div class=
"date"> 6th September
2016</div>
655 <div class=
"body"><p>I helga kom det et hårreisende forslag fra Lysne II-utvalget satt
656 ned av Forsvarsdepartementet. Lysne II-utvalget var bedt om å vurdere
657 ønskelista til Forsvarets etterretningstjeneste (e-tjenesten), og har
659 <a href=
"http://www.aftenposten.no/norge/Utvalg-sier-ja-til-at-E-tjenesten-far-overvake-innholdet-i-all-internett--og-telefontrafikk-som-krysser-riksgrensen-603232b.html">forslag
660 om at e-tjenesten skal få lov til a avlytte all Internett-trafikk
</a>
661 som passerer Norges grenser. Få er klar over at dette innebærer at
662 e-tjenesten får tilgang til epost sendt til de fleste politiske
663 partiene på Stortinget. Regjeringspartiet Høyre (@hoyre.no),
664 støttepartiene Venstre (@venstre.no) og Kristelig Folkeparti (@krf.no)
665 samt Sosialistisk Ventreparti (@sv.no) og Miljøpartiet de grønne
666 (@mdg.no) har nemlig alle valgt å ta imot eposten sin via utenlandske
667 tjenester. Det betyr at hvis noen sender epost til noen med en slik
668 adresse vil innholdet i eposten, om dette forslaget blir vedtatt, gjøres
669 tilgjengelig for e-tjenesten. Venstre, Sosialistisk Ventreparti og
670 Miljøpartiet De Grønne har valgt å motta sin epost hos Google,
671 Kristelig Folkeparti har valgt å motta sin epost hos Microsoft, og
672 Høyre har valgt å motta sin epost hos Comendo med mottak i Danmark og
673 Irland. Kun Arbeiderpartiet og Fremskrittspartiet har valgt å motta
674 eposten sin i Norge, hos henholdsvis Intility AS og Telecomputing
677 <p>Konsekvensen er at epost inn og ut av de politiske organisasjonene,
678 til og fra partimedlemmer og partiets tillitsvalgte vil gjøres
679 tilgjengelig for e-tjenesten for analyse og sortering. Jeg mistenker
680 at kunnskapen som slik blir tilgjengelig vil være nyttig hvis en
681 ønsker å vite hvilke argumenter som treffer publikum når en ønsker å
682 påvirke Stortingets representanter.
</p
684 <p>Ved hjelp av MX-oppslag i DNS for epost-domene, tilhørende
685 whois-oppslag av IP-adressene og traceroute for å se hvorvidt
686 trafikken går via utlandet kan enhver få bekreftet at epost sendt til
687 de omtalte partiene vil gjøres tilgjengelig for forsvarets
688 etterretningstjeneste hvis forslaget blir vedtatt. En kan også bruke
689 den kjekke nett-tjenesten
<a href=
"http://ipinfo.io/">ipinfo.io
</a>
690 for å få en ide om hvor i verden en IP-adresse hører til.
</p>
692 <p>På den positive siden vil forslaget gjøre at enda flere blir
693 motivert til å ta grep for å bruke
694 <a href=
"https://www.torproject.org/">Tor
</a> og krypterte
695 kommunikasjonsløsninger for å kommunisere med sine kjære, for å sikre
696 at privatsfæren vernes. Selv bruker jeg blant annet
697 <a href=
"https://www.freedomboxfoundation.org/">FreedomBox
</a> og
698 <a href=
"https://whispersystems.org/">Signal
</a> til slikt. Ingen av
699 dem er optimale, men de fungerer ganske bra allerede og øker kostnaden
700 for dem som ønsker å invadere mitt privatliv.
</p>
702 <p>For øvrig burde varsleren Edward Snowden få politisk asyl i
708 venstre.no mail is handled by 10 aspmx.l.google.com.
709 venstre.no mail is handled by 20 alt1.aspmx.l.google.com.
710 venstre.no mail is handled by 20 alt2.aspmx.l.google.com.
711 venstre.no mail is handled by 30 aspmx2.googlemail.com.
712 venstre.no mail is handled by 30 aspmx3.googlemail.com.
714 traceroute to aspmx.l.google.com (173.194.222.27), 30 hops max, 60 byte packets
715 1 uio-gw10.uio.no (129.240.6.1) 0.411 ms 0.438 ms 0.536 ms
716 2 uio-gw8.uio.no (129.240.24.229) 0.375 ms 0.452 ms 0.548 ms
717 3 oslo-gw1.uninett.no (128.39.65.17) 1.940 ms 1.950 ms 1.942 ms
718 4 se-tug.nordu.net (109.105.102.108) 6.910 ms 6.949 ms 7.283 ms
719 5 google-gw.nordu.net (109.105.98.6) 6.975 ms 6.967 ms 6.958 ms
720 6 209.85.250.192 (209.85.250.192) 7.337 ms 7.286 ms 10.890 ms
721 7 209.85.254.13 (209.85.254.13) 7.394 ms 209.85.254.31 (209.85.254.31) 7.586 ms 209.85.254.33 (209.85.254.33) 7.570 ms
722 8 209.85.251.255 (209.85.251.255) 15.686 ms 209.85.249.229 (209.85.249.229) 16.118 ms 209.85.251.255 (209.85.251.255) 16.073 ms
723 9 74.125.37.255 (74.125.37.255) 16.794 ms 216.239.40.248 (216.239.40.248) 16.113 ms 74.125.37.44 (74.125.37.44) 16.764 ms
727 mdg.no mail is handled by 1 aspmx.l.google.com.
728 mdg.no mail is handled by 5 alt2.aspmx.l.google.com.
729 mdg.no mail is handled by 5 alt1.aspmx.l.google.com.
730 mdg.no mail is handled by 10 aspmx2.googlemail.com.
731 mdg.no mail is handled by 10 aspmx3.googlemail.com.
733 sv.no mail is handled by 1 aspmx.l.google.com.
734 sv.no mail is handled by 5 alt1.aspmx.l.google.com.
735 sv.no mail is handled by 5 alt2.aspmx.l.google.com.
736 sv.no mail is handled by 10 aspmx3.googlemail.com.
737 sv.no mail is handled by 10 aspmx2.googlemail.com.
739 hoyre.no mail is handled by 10 hoyre-no.mx1.comendosystems.com.
740 hoyre.no mail is handled by 20 hoyre-no.mx2.comendosystems.net.
742 traceroute to hoyre-no.mx1.comendosystems.com (89.104.206.4), 30 hops max, 60 byte packets
743 1 uio-gw10.uio.no (129.240.6.1) 0.450 ms 0.510 ms 0.591 ms
744 2 uio-gw8.uio.no (129.240.24.229) 0.383 ms 0.508 ms 0.596 ms
745 3 oslo-gw1.uninett.no (128.39.65.17) 0.311 ms 0.315 ms 0.300 ms
746 4 se-tug.nordu.net (109.105.102.108) 6.837 ms 6.842 ms 6.834 ms
747 5 dk-uni.nordu.net (109.105.97.10) 26.073 ms 26.085 ms 26.076 ms
748 6 dix.1000m.soeborg.ip.comendo.dk (192.38.7.22) 15.372 ms 15.046 ms 15.123 ms
749 7 89.104.192.65 (89.104.192.65) 15.875 ms 15.990 ms 16.239 ms
750 8 89.104.192.179 (89.104.192.179) 15.676 ms 15.674 ms 15.664 ms
751 9 03dm-com.mx1.staysecuregroup.com (89.104.206.4) 15.637 ms * *
754 krf.no mail is handled by 10 krf-no.mail.protection.outlook.com.
756 traceroute to krf-no.mail.protection.outlook.com (213.199.154.42), 30 hops max, 60 byte packets
757 1 uio-gw10.uio.no (129.240.6.1) 0.401 ms 0.438 ms 0.536 ms
758 2 uio-gw8.uio.no (129.240.24.229) 11.076 ms 11.120 ms 11.204 ms
759 3 oslo-gw1.uninett.no (128.39.65.17) 0.232 ms 0.234 ms 0.271 ms
760 4 se-tug.nordu.net (109.105.102.108) 6.811 ms 6.820 ms 6.815 ms
761 5 netnod-ix-ge-a-sth-4470.microsoft.com (195.245.240.181) 7.074 ms 7.013 ms 7.061 ms
762 6 ae1-0.sto-96cbe-1b.ntwk.msn.net (104.44.225.161) 7.227 ms 7.362 ms 7.293 ms
763 7 be-8-0.ibr01.ams.ntwk.msn.net (104.44.5.7) 41.993 ms 43.334 ms 41.939 ms
764 8 be-1-0.ibr02.ams.ntwk.msn.net (104.44.4.214) 43.153 ms 43.507 ms 43.404 ms
765 9 ae3-0.fra-96cbe-1b.ntwk.msn.net (104.44.5.17) 29.897 ms 29.831 ms 29.794 ms
766 10 ae10-0.vie-96cbe-1a.ntwk.msn.net (198.206.164.1) 42.309 ms 42.130 ms 41.808 ms
767 11 * ae8-0.vie-96cbe-1b.ntwk.msn.net (104.44.227.29) 41.425 ms *
771 arbeiderpartiet.no mail is handled by 10 mail.intility.com.
772 arbeiderpartiet.no mail is handled by 20 mail2.intility.com.
774 traceroute to mail.intility.com (188.95.245.87), 30 hops max, 60 byte packets
775 1 uio-gw10.uio.no (129.240.6.1) 0.486 ms 0.508 ms 0.649 ms
776 2 uio-gw8.uio.no (129.240.24.229) 0.416 ms 0.508 ms 0.620 ms
777 3 oslo-gw1.uninett.no (128.39.65.17) 0.276 ms 0.278 ms 0.275 ms
778 4 te3-1-2.br1.fn3.as2116.net (193.156.90.3) 0.374 ms 0.371 ms 0.416 ms
779 5 he16-1-1.cr1.san110.as2116.net (195.0.244.234) 3.132 ms he16-1-1.cr2.oslosda310.as2116.net (195.0.244.48) 10.079 ms he16-1-1.cr1.san110.as2116.net (195.0.244.234) 3.353 ms
780 6 te1-2-0.ar2.ulv89.as2116.net (195.0.243.194) 0.569 ms te5-0-0.ar2.ulv89.as2116.net (195.0.243.192) 0.661 ms 0.653 ms
781 7 cD2EC45C1.static.as2116.net (193.69.236.210) 0.654 ms 0.615 ms 0.590 ms
782 8 185.7.132.38 (185.7.132.38) 1.661 ms 1.808 ms 1.695 ms
783 9 185.7.132.100 (185.7.132.100) 1.793 ms 1.943 ms 1.546 ms
787 frp.no mail is handled by 10 mx03.telecomputing.no.
788 frp.no mail is handled by 20 mx01.telecomputing.no.
790 traceroute to mx03.telecomputing.no (95.128.105.102), 30 hops max, 60 byte packets
791 1 uio-gw10.uio.no (129.240.6.1) 0.378 ms 0.402 ms 0.479 ms
792 2 uio-gw8.uio.no (129.240.24.229) 0.361 ms 0.458 ms 0.548 ms
793 3 oslo-gw1.uninett.no (128.39.65.17) 0.361 ms 0.352 ms 0.336 ms
794 4 xe-2-2-0-0.san-peer2.osl.no.ip.tdc.net (193.156.90.16) 0.375 ms 0.366 ms 0.346 ms
795 5 xe-2-0-2-0.ost-pe1.osl.no.ip.tdc.net (85.19.121.97) 0.780 ms xe-2-0-0-0.ost-pe1.osl.no.ip.tdc.net (85.19.121.101) 0.713 ms xe-2-0-2-0.ost-pe1.osl.no.ip.tdc.net (85.19.121.97) 0.759 ms
796 6 cpe.xe-0-2-0-100.ost-pe1.osl.no.customer.tdc.net (85.19.26.46) 0.837 ms 0.755 ms 0.759 ms
797 7 95.128.105.3 (95.128.105.3) 1.050 ms 1.288 ms 1.182 ms
798 8 mx03.telecomputing.no (95.128.105.102) 0.717 ms 0.703 ms 0.692 ms
805 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance
</a>.
810 <div class=
"padding"></div>
813 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/First_draft_Norwegian_Bokm_l_edition_of_The_Debian_Administrator_s_Handbook_now_public.html">First draft Norwegian Bokmål edition of The Debian Administrator's Handbook now public
</a></div>
814 <div class=
"date">30th August
2016</div>
815 <div class=
"body"><p>In April we
816 <a href=
"http://people.skolelinux.org/pere/blog/Lets_make_a_Norwegian_Bokm_l_edition_of_The_Debian_Administrator_s_Handbook.html">started
817 to work
</a> on a Norwegian Bokmål edition of the "open access" book on
818 how to set up and administrate a Debian system. Today I am happy to
819 report that the first draft is now publicly available. You can find
820 it on
<a href=
"https://debian-handbook.info/get/">get the Debian
821 Administrator's Handbook page
</a> (under Other languages). The first
822 eight chapters have a first draft translation, and we are working on
823 proofreading the content. If you want to help out, please start
825 <a href=
"https://hosted.weblate.org/projects/debian-handbook/">the
826 hosted weblate project page
</a>, and get in touch using
827 <a href=
"http://lists.alioth.debian.org/mailman/listinfo/debian-handbook-translators">the
828 translators mailing list
</a>. Please also check out
829 <a href=
"https://debian-handbook.info/contribute/">the instructions for
830 contributors
</a>. A good way to contribute is to proofread the text
831 and update weblate if you find errors.
</p>
833 <p>Our goal is still to make the Norwegian book available on paper as well as
839 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>.
844 <div class=
"padding"></div>
847 <div class=
"title"><a href=
"http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html">Coz can help you find bottlenecks in multi-threaded software - nice free software
</a></div>
848 <div class=
"date">11th August
2016</div>
849 <div class=
"body"><p>This summer, I read a great article
850 "
<a href=
"https://www.usenix.org/publications/login/summer2016/curtsinger">coz:
851 This Is the Profiler You're Looking For
</a>" in USENIX ;login: about
852 how to profile multi-threaded programs. It presented a system for
853 profiling software by running experiences in the running program,
854 testing how run time performance is affected by "speeding up
" parts of
855 the code to various degrees compared to a normal run. It does this by
856 slowing down parallel threads while the "faster up
" code is running
857 and measure how this affect processing time. The processing time is
858 measured using probes inserted into the code, either using progress
859 counters (COZ_PROGRESS) or as latency meters (COZ_BEGIN/COZ_END). It
860 can also measure unmodified code by measuring complete the program
861 runtime and running the program several times instead.</p>
863 <p>The project and presentation was so inspiring that I would like to
864 get the system into Debian. I
865 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=
830708">created
866 a WNPP request for it</a> and contacted upstream to try to make the
867 system ready for Debian by sending patches. The build process need to
868 be changed a bit to avoid running 'git clone' to get dependencies, and
869 to include the JavaScript web page used to visualize the collected
870 profiling information included in the source package.
871 But I expect that should work out fairly soon.</p>
873 <p>The way the system work is fairly simple. To run an coz experiment
874 on a binary with debug symbols available, start the program like this:
877 coz run --- program-to-run
878 </pre></blockquote></p>
880 <p>This will create a text file profile.coz with the instrumentation
881 information. To show what part of the code affect the performance
882 most, use a web browser and either point it to
883 <a href="http://plasma-umass.github.io/coz/
">http://plasma-umass.github.io/coz/</a>
884 or use the copy from git (in the gh-pages branch). Check out this web
885 site to have a look at several example profiling runs and get an idea what the end result from the profile runs look like. To make the
886 profiling more useful you include <coz.h> and insert the
887 COZ_PROGRESS or COZ_BEGIN and COZ_END at appropriate places in the
888 code, rebuild and run the profiler. This allow coz to do more
889 targeted experiments.</p>
891 <p>A video published by ACM
892 <a href="https://www.youtube.com/watch?v=jE0V-p1odPg
">presenting the
893 Coz profiler</a> is available from Youtube. There is also a paper
894 from the 25th Symposium on Operating Systems Principles available
896 <a href="https://www.usenix.org/conference/atc16/technical-sessions/presentation/curtsinger
">Coz:
897 finding code that counts with causal profiling</a>.</p>
899 <p><a href="https://github.com/plasma-umass/coz
">The source code</a>
900 for Coz is available from github. It will only build with clang
902 <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=
55606">C++
903 feature missing in GCC</a>, but I've submitted
904 <a href="https://github.com/plasma-umass/coz/pull/
67">a patch to solve
905 it</a> and hope it will be included in the upstream source soon.</p>
907 <p>Please get in touch if you, like me, would like to see this piece
908 of software in Debian. I would very much like some help with the
909 packaging effort, as I lack the in depth knowledge on how to package
915 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/nice free software
">nice free software</a>.
920 <div class="padding
"></div>
923 <div class="title
"><a href="http://people.skolelinux.org/pere/blog/Sales_number_for_the_Free_Culture_translation__first_half_of_2016.html
">Sales number for the Free Culture translation, first half of 2016</a></div>
924 <div class="date
"> 5th August 2016</div>
925 <div class="body
"><p>As my regular readers probably remember, the last year I published
926 a French and Norwegian translation of the classic
927 <a href="http://www.free-culture.cc/
">Free Culture book</a> by the
928 founder of the Creative Commons movement, Lawrence Lessig. A bit less
929 known is the fact that due to the way I created the translations,
930 using docbook and po4a, I also recreated the English original. And
931 because I already had created a new the PDF edition, I published it
932 too. The revenue from the books are sent to the Creative Commons
933 Corporation. In other words, I do not earn any money from this
934 project, I just earn the warm fuzzy feeling that the text is available
935 for a wider audience and more people can learn why the Creative
936 Commons is needed.</p>
938 <p>Today, just for fun, I had a look at the sales number over at
939 Lulu.com, which take care of payment, printing and shipping. Much to
940 my surprise, the English edition is selling better than both the
941 French and Norwegian edition, despite the fact that it has been
942 available in English since it was first published. In total, 24 paper
943 books was sold for USD $19.99 between 2016-01-01 and 2016-07-31:</p>
946 <tr><th>Title / language</th><th>Quantity</th></tr>
947 <tr><td><a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-
22645082.html
">Culture Libre / French</a></td><td align="right
">3</td></tr>
948 <tr><td><a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-
22441576.html
">Fri kultur / Norwegian</a></td><td align="right
">7</td></tr>
949 <tr><td><a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-
22440520.html
">Free Culture / English</a></td><td align="right
">14</td></tr>
952 <p>The books are available both from Lulu.com and from large book
953 stores like Amazon and Barnes&Noble. Most revenue, around $10 per
954 book, is sent to the Creative Commons project when the book is sold
955 directly by Lulu.com. The other channels give less revenue. The
956 summary from Lulu tell me 10 books was sold via the Amazon channel, 10
957 via Ingram (what is this?) and 4 directly by Lulu. And Lulu.com tells
958 me that the revenue sent so far this year is USD $101.42. No idea
959 what kind of sales numbers to expect, so I do not know if that is a
960 good amount of sales for a 10 year old book or not. But it make me
961 happy that the buyers find the book, and I hope they enjoy reading it
962 as much as I did.</p>
964 <p>The ebook edition is available for free from
965 <a href="https://github.com/petterreinholdtsen/free-culture-lessig
">Github</a>.</p>
967 <p>If you would like to translate and publish the book in your native
968 language, I would be happy to help make it happen. Please get in
974 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/docbook
">docbook</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english
">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/freeculture
">freeculture</a>.
979 <div class="padding
"></div>
981 <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>
992 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
01/
">January (3)</a></li>
994 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
02/
">February (2)</a></li>
996 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
03/
">March (3)</a></li>
998 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
04/
">April (8)</a></li>
1000 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
05/
">May (8)</a></li>
1002 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
06/
">June (2)</a></li>
1004 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
07/
">July (2)</a></li>
1006 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
08/
">August (5)</a></li>
1008 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
09/
">September (2)</a></li>
1010 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
10/
">October (3)</a></li>
1012 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2016/
11/
">November (2)</a></li>
1019 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
01/
">January (7)</a></li>
1021 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
02/
">February (6)</a></li>
1023 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
03/
">March (1)</a></li>
1025 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
04/
">April (4)</a></li>
1027 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
05/
">May (3)</a></li>
1029 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
06/
">June (4)</a></li>
1031 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
07/
">July (6)</a></li>
1033 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
08/
">August (2)</a></li>
1035 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
09/
">September (2)</a></li>
1037 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
10/
">October (9)</a></li>
1039 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
11/
">November (6)</a></li>
1041 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2015/
12/
">December (3)</a></li>
1048 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
01/
">January (2)</a></li>
1050 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
02/
">February (3)</a></li>
1052 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
03/
">March (8)</a></li>
1054 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
04/
">April (7)</a></li>
1056 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
05/
">May (1)</a></li>
1058 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
06/
">June (2)</a></li>
1060 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
07/
">July (2)</a></li>
1062 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
08/
">August (2)</a></li>
1064 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
09/
">September (5)</a></li>
1066 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
10/
">October (6)</a></li>
1068 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
11/
">November (3)</a></li>
1070 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2014/
12/
">December (5)</a></li>
1077 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
01/
">January (11)</a></li>
1079 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
02/
">February (9)</a></li>
1081 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
03/
">March (9)</a></li>
1083 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
04/
">April (6)</a></li>
1085 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
05/
">May (9)</a></li>
1087 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
06/
">June (10)</a></li>
1089 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
07/
">July (7)</a></li>
1091 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
08/
">August (3)</a></li>
1093 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
09/
">September (5)</a></li>
1095 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
10/
">October (7)</a></li>
1097 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
11/
">November (9)</a></li>
1099 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2013/
12/
">December (3)</a></li>
1106 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
01/
">January (7)</a></li>
1108 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
02/
">February (10)</a></li>
1110 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
03/
">March (17)</a></li>
1112 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
04/
">April (12)</a></li>
1114 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
05/
">May (12)</a></li>
1116 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
06/
">June (20)</a></li>
1118 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
07/
">July (17)</a></li>
1120 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
08/
">August (6)</a></li>
1122 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
09/
">September (9)</a></li>
1124 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
10/
">October (17)</a></li>
1126 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
11/
">November (10)</a></li>
1128 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2012/
12/
">December (7)</a></li>
1135 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
01/
">January (16)</a></li>
1137 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
02/
">February (6)</a></li>
1139 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
03/
">March (6)</a></li>
1141 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
04/
">April (7)</a></li>
1143 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
05/
">May (3)</a></li>
1145 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
06/
">June (2)</a></li>
1147 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
07/
">July (7)</a></li>
1149 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
08/
">August (6)</a></li>
1151 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
09/
">September (4)</a></li>
1153 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
10/
">October (2)</a></li>
1155 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
11/
">November (3)</a></li>
1157 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2011/
12/
">December (1)</a></li>
1164 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
01/
">January (2)</a></li>
1166 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
02/
">February (1)</a></li>
1168 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
03/
">March (3)</a></li>
1170 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
04/
">April (3)</a></li>
1172 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
05/
">May (9)</a></li>
1174 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
06/
">June (14)</a></li>
1176 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
07/
">July (12)</a></li>
1178 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
08/
">August (13)</a></li>
1180 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
09/
">September (7)</a></li>
1182 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
10/
">October (9)</a></li>
1184 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
11/
">November (13)</a></li>
1186 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2010/
12/
">December (12)</a></li>
1193 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
01/
">January (8)</a></li>
1195 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
02/
">February (8)</a></li>
1197 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
03/
">March (12)</a></li>
1199 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
04/
">April (10)</a></li>
1201 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
05/
">May (9)</a></li>
1203 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
06/
">June (3)</a></li>
1205 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
07/
">July (4)</a></li>
1207 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
08/
">August (3)</a></li>
1209 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
09/
">September (1)</a></li>
1211 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
10/
">October (2)</a></li>
1213 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
11/
">November (3)</a></li>
1215 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2009/
12/
">December (3)</a></li>
1222 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2008/
11/
">November (5)</a></li>
1224 <li><a href="http://people.skolelinux.org/pere/blog/archive/
2008/
12/
">December (7)</a></li>
1235 <li><a href="http://people.skolelinux.org/pere/blog/tags/
3d-printer
">3d-printer (13)</a></li>
1237 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga
">amiga (1)</a></li>
1239 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros
">aros (1)</a></li>
1241 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid
">bankid (4)</a></li>
1243 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin
">bitcoin (9)</a></li>
1245 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem
">bootsystem (16)</a></li>
1247 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa
">bsa (2)</a></li>
1249 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath
">chrpath (2)</a></li>
1251 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian
">debian (138)</a></li>
1253 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu
">debian edu (157)</a></li>
1255 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan
">digistan (10)</a></li>
1257 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld
">dld (16)</a></li>
1259 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook
">docbook (23)</a></li>
1261 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser
">drivstoffpriser (4)</a></li>
1263 <li><a href="http://people.skolelinux.org/pere/blog/tags/english
">english (330)</a></li>
1265 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami
">fiksgatami (23)</a></li>
1267 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling
">fildeling (12)</a></li>
1269 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture
">freeculture (28)</a></li>
1271 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox
">freedombox (9)</a></li>
1273 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen
">frikanalen (18)</a></li>
1275 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264
">h264 (20)</a></li>
1277 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju
">intervju (42)</a></li>
1279 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram
">isenkram (13)</a></li>
1281 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart
">kart (19)</a></li>
1283 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap
">ldap (9)</a></li>
1285 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker
">lenker (8)</a></li>
1287 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd
">lsdvd (2)</a></li>
1289 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp
">ltsp (1)</a></li>
1291 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network
">mesh network (8)</a></li>
1293 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia
">multimedia (39)</a></li>
1295 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software
">nice free software (8)</a></li>
1297 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk
">norsk (280)</a></li>
1299 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug
">nuug (182)</a></li>
1301 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn
">offentlig innsyn (26)</a></li>
1303 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311
">open311 (2)</a></li>
1305 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett
">opphavsrett (61)</a></li>
1307 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern
">personvern (94)</a></li>
1309 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid
">raid (1)</a></li>
1311 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos
">reactos (1)</a></li>
1313 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap
">reprap (11)</a></li>
1315 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid
">rfid (3)</a></li>
1317 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot
">robot (10)</a></li>
1319 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss
">rss (1)</a></li>
1321 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter
">ruter (4)</a></li>
1323 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki
">scraperwiki (2)</a></li>
1325 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet
">sikkerhet (51)</a></li>
1327 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary
">sitesummary (4)</a></li>
1329 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis
">skepsis (5)</a></li>
1331 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard
">standard (49)</a></li>
1333 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll
">stavekontroll (4)</a></li>
1335 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget
">stortinget (10)</a></li>
1337 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance
">surveillance (42)</a></li>
1339 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin
">sysadmin (2)</a></li>
1341 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix
">usenix (2)</a></li>
1343 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg
">valg (8)</a></li>
1345 <li><a href="http://people.skolelinux.org/pere/blog/tags/video
">video (59)</a></li>
1347 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap
">vitenskap (4)</a></li>
1349 <li><a href="http://people.skolelinux.org/pere/blog/tags/web
">web (38)</a></li>
1355 <p style="text-align: right
">
1356 Created by <a href="http://steve.org.uk/Software/chronicle
">Chronicle v4.6</a>