]> 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/Where_did_that_package_go___mdash__geolocated_IP_traceroute.html">Where did that package go? &mdash; geolocated IP traceroute</a></div>
24 <div class="date"> 9th January 2017</div>
25 <div class="body"><p>Did you ever wonder where the web trafic really flow to reach the
26 web servers, and who own the network equipment it is flowing through?
27 It is possible to get a glimpse of this from using traceroute, but it
28 is hard to find all the details. Many years ago, I wrote a system to
29 map the Norwegian Internet (trying to figure out if our plans for a
30 network game service would get low enough latency, and who we needed
31 to talk to about setting up game servers close to the users. Back
32 then I used traceroute output from many locations (I asked my friends
33 to run a script and send me their traceroute output) to create the
34 graph and the map. The output from traceroute typically look like
35 this:
36
37 <p><pre>
38 traceroute to www.stortinget.no (85.88.67.10), 30 hops max, 60 byte packets
39 1 uio-gw10.uio.no (129.240.202.1) 0.447 ms 0.486 ms 0.621 ms
40 2 uio-gw8.uio.no (129.240.24.229) 0.467 ms 0.578 ms 0.675 ms
41 3 oslo-gw1.uninett.no (128.39.65.17) 0.385 ms 0.373 ms 0.358 ms
42 4 te3-1-2.br1.fn3.as2116.net (193.156.90.3) 1.174 ms 1.172 ms 1.153 ms
43 5 he16-1-1.cr1.san110.as2116.net (195.0.244.234) 2.627 ms he16-1-1.cr2.oslosda310.as2116.net (195.0.244.48) 3.172 ms he16-1-1.cr1.san110.as2116.net (195.0.244.234) 2.857 ms
44 6 ae1.ar8.oslosda310.as2116.net (195.0.242.39) 0.662 ms 0.637 ms ae0.ar8.oslosda310.as2116.net (195.0.242.23) 0.622 ms
45 7 89.191.10.146 (89.191.10.146) 0.931 ms 0.917 ms 0.955 ms
46 8 * * *
47 9 * * *
48 [...]
49 </pre></p>
50
51 <p>This show the DNS names and IP addresses of (at least some of the)
52 network equipment involved in getting the data traffic from me to the
53 www.stortinget.no server, and how long it took in milliseconds for a
54 package to reach the equipment and return to me. Three packages are
55 sent, and some times the packages do not follow the same path. This
56 is shown for hop 5, where three different IP addresses replied to the
57 traceroute request.</p>
58
59 <p>There are many ways to measure trace routes. Other good traceroute
60 implementations I use are traceroute (using ICMP packages) mtr (can do
61 both ICMP, UDP and TCP) and scapy (python library with ICMP, UDP, TCP
62 traceroute and a lot of other capabilities). All of them are easily
63 available in <a href="https://www.debian.org/">Debian</a>.</p>
64
65 <p>This time around, I wanted to know the geographic location of
66 different route points, to visualize how visiting a web page spread
67 information about the visit to a lot of servers around the globe. The
68 background is that a web site today often will ask the browser to get
69 from many servers the parts (for example HTML, JSON, fonts,
70 JavaScript, CSS, video) required to display the content. This will
71 leak information about the visit to those controlling these servers
72 and anyone able to peek at the data traffic passing by (like your ISP,
73 the ISPs backbone provider, FRA, GCHQ, NSA and others).</p>
74
75 <p>Lets pick an example, the Norwegian parliament web site
76 www.stortinget.no. It is read daily by all members of parliament and
77 their staff, as well as political journalists, activits and many other
78 citizens of Norway. A visit to the www.stortinget.no web site will
79 ask your browser to contact 8 other servers: ajax.googleapis.com,
80 insights.hotjar.com, script.hotjar.com, static.hotjar.com,
81 stats.g.doubleclick.net, www.google-analytics.com,
82 www.googletagmanager.com and www.netigate.se. I extracted this by
83 asking <a href="http://phantomjs.org/">PhantomJS</a> to visit the
84 Stortinget web page and tell me all the URLs PhantomJS downloaded to
85 render the page (in HAR format using
86 <a href="https://github.com/ariya/phantomjs/blob/master/examples/netsniff.js">their
87 netsniff example</a>. I am very grateful to Gorm for showing me how
88 to do this). My goal is to visualize network traces to all IP
89 addresses behind these DNS names, do show where visitors personal
90 information is spread when visiting the page.</p>
91
92 <p align="center"><a href="www.stortinget.no-geoip.kml"><img
93 src="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geoip-small.png" alt="map of combined traces for URLs used by www.stortinget.no using GeoIP"/></a></p>
94
95 <p>When I had a look around for options, I could not find any good
96 free software tools to do this, and decided I needed my own traceroute
97 wrapper outputting KML based on locations looked up using GeoIP. KML
98 is easy to work with and easy to generate, and understood by several
99 of the GIS tools I have available. I got good help from by NUUG
100 colleague Anders Einar with this, and the result can be seen in
101 <a href="https://github.com/petterreinholdtsen/kmltraceroute">my
102 kmltraceroute git repository</a>. Unfortunately, the quality of the
103 free GeoIP databases I could find (and the for-pay databases my
104 friends had access to) is not up to the task. The IP addresses of
105 central Internet infrastructure would typically be placed near the
106 controlling companies main office, and not where the router is really
107 located, as you can see from <a href="www.stortinget.no-geoip.kml">the
108 KML file I created</a> using the GeoLite City dataset from MaxMind.
109
110 <p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg"><img
111 src="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy-small.png" alt="scapy traceroute graph for URLs used by www.stortinget.no"/></a></p>
112
113 <p>I also had a look at the visual traceroute graph created by
114 <a href="http://www.secdev.org/projects/scapy/">the scrapy project</a>,
115 showing IP network ownership (aka AS owner) for the IP address in
116 question.
117 <a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg">The
118 graph display a lot of useful information about the traceroute in SVG
119 format</a>, and give a good indication on who control the network
120 equipment involved, but it do not include geolocation. This graph
121 make it possible to see the information is made available at least for
122 UNINETT, Catchcom, Stortinget, Nordunet, Google, Amazon, Telia, Level
123 3 Communications and NetDNA.</p>
124
125 <p align="center"><a href="https://geotraceroute.com/index.php?node=4&host=www.stortinget.no"><img
126 src="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-small.png" alt="example geotraceroute view for www.stortinget.no"/></a></p>
127
128 <p>In the process, I came across the
129 <a href="https://geotraceroute.com/">web service GeoTraceRoute</a> by
130 Salim Gasmi. Its methology of combining guesses based on DNS names,
131 various location databases and finally use latecy times to rule out
132 candidate locations seemed to do a very good job of guessing correct
133 geolocation. But it could only do one trace at the time, did not have
134 a sensor in Norway and did not make the geolocations easily available
135 for postprocessing. So I contacted the developer and asked if he
136 would be willing to share the code (he refused until he had time to
137 clean it up), but he was interested in providing the geolocations in a
138 machine readable format, and willing to set up a sensor in Norway. So
139 since yesterday, it is possible to run traces from Norway in this
140 service thanks to a sensor node set up by
141 <a href="https://www.nuug.no/">the NUUG assosiation</a>, and get the
142 trace in KML format for further processing.</p>
143
144 <p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.kml"><img
145 src="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.png" alt="map of combined traces for URLs used by www.stortinget.no using geotraceroute"/></a></p>
146
147 <p>Here we can see a lot of trafic passes Sweden on its way to
148 Denmark, Germany, Holland and Ireland. Plenty of places where the
149 Snowden confirmations verified the traffic is read by various actors
150 without your best interest as their top priority.</p>
151
152 <p>Combining KML files is trivial using a text editor, so I could loop
153 over all the hosts behind the urls imported by www.stortinget.no and
154 ask for the KML file from geotraceroute, and create a combined KML
155 file with all the traces (unfortunately only one of the IP addresses
156 behind the DNS name is traced this time. To get them all, one would
157 have to request traces using IP number instead of DNS names from
158 geotraceroute). That might be the next step in this project.</p>
159
160 <p>Armed with these tools, I find it a lot easier to figure out where
161 the IP traffic moves and who control the boxes involved in moving it.
162 And every time the link crosses for example the Swedish border, we can
163 be sure Swedish Signal Intelligence (FRA) is listening, as GCHQ do in
164 Britain and NSA in USA and cables around the globe. (Hm, what should
165 we tell them? :) Keep that in mind if you ever send anything
166 unencrypted over the Internet.</p>
167
168 <p>PS: KML files are drawn using
169 <a href="http://ivanrublev.me/kml/">the KML viewer from Ivan
170 Rublev<a/>, as it was less cluttered than the local Linux application
171 Marble. There are heaps of other options too.</p>
172 </div>
173 <div class="tags">
174
175
176 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/kart">kart</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget</a>, <a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
177
178
179 </div>
180 </div>
181 <div class="padding"></div>
182
183 <div class="entry">
184 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Introducing_ical_archiver_to_split_out_old_iCalendar_entries.html">Introducing ical-archiver to split out old iCalendar entries</a></div>
185 <div class="date"> 4th January 2017</div>
186 <div class="body"><p>Do you have a large <a href="https://icalendar.org/">iCalendar</a>
187 file with lots of old entries, and would like to archive them to save
188 space and resources? At least those of us using KOrganizer know that
189 turning on and off an event set become slower and slower the more
190 entries are in the set. While working on migrating our calendars to a
191 <a href="http://radicale.org/">Radicale CalDAV server</a> on our
192 <a href="https://freedomboxfoundation.org/">Freedombox server</a/>, my
193 loved one wondered if I could find a way to split up the calendar file
194 she had in KOrganizer, and I set out to write a tool. I spent a few
195 days writing and polishing the system, and it is now ready for general
196 consumption. The
197 <a href="https://github.com/petterreinholdtsen/ical-archiver">code for
198 ical-archiver</a> is publicly available from a git repository on
199 github. The system is written in Python and depend on
200 <a href="http://eventable.github.io/vobject/">the vobject Python
201 module</a>.</p>
202
203 <p>To use it, locate the iCalendar file you want to operate on and
204 give it as an argument to the ical-archiver script. This will
205 generate a set of new files, one file per component type per year for
206 all components expiring more than two years in the past. The vevent,
207 vtodo and vjournal entries are handled by the script. The remaining
208 entries are stored in a 'remaining' file.</p>
209
210 <p>This is what a test run can look like:
211
212 <p><pre>
213 % ical-archiver t/2004-2016.ics
214 Found 3612 vevents
215 Found 6 vtodos
216 Found 2 vjournals
217 Writing t/2004-2016.ics-subset-vevent-2004.ics
218 Writing t/2004-2016.ics-subset-vevent-2005.ics
219 Writing t/2004-2016.ics-subset-vevent-2006.ics
220 Writing t/2004-2016.ics-subset-vevent-2007.ics
221 Writing t/2004-2016.ics-subset-vevent-2008.ics
222 Writing t/2004-2016.ics-subset-vevent-2009.ics
223 Writing t/2004-2016.ics-subset-vevent-2010.ics
224 Writing t/2004-2016.ics-subset-vevent-2011.ics
225 Writing t/2004-2016.ics-subset-vevent-2012.ics
226 Writing t/2004-2016.ics-subset-vevent-2013.ics
227 Writing t/2004-2016.ics-subset-vevent-2014.ics
228 Writing t/2004-2016.ics-subset-vjournal-2007.ics
229 Writing t/2004-2016.ics-subset-vjournal-2011.ics
230 Writing t/2004-2016.ics-subset-vtodo-2012.ics
231 Writing t/2004-2016.ics-remaining.ics
232 %
233 </pre></p>
234
235 <p>As you can see, the original file is untouched and new files are
236 written with names derived from the original file. If you are happy
237 with their content, the *-remaining.ics file can replace the original
238 the the others can be archived or imported as historical calendar
239 collections.</p>
240
241 <p>The script should probably be improved a bit. The error handling
242 when discovering broken entries is not good, and I am not sure yet if
243 it make sense to split different entry types into separate files or
244 not. The program is thus likely to change. If you find it
245 interesting, please get in touch. :)</p>
246
247 <p>As usual, if you use Bitcoin and want to show your support of my
248 activities, please send Bitcoin donations to my address
249 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
250 </div>
251 <div class="tags">
252
253
254 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>.
255
256
257 </div>
258 </div>
259 <div class="padding"></div>
260
261 <div class="entry">
262 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Appstream_just_learned_how_to_map_hardware_to_packages_too_.html">Appstream just learned how to map hardware to packages too!</a></div>
263 <div class="date">23rd December 2016</div>
264 <div class="body"><p>I received a very nice Christmas present today. As my regular
265 readers probably know, I have been working on the
266 <a href="http://packages.qa.debian.org/isenkram">the Isenkram
267 system</a> for many years. The goal of the Isenkram system is to make
268 it easier for users to figure out what to install to get a given piece
269 of hardware to work in Debian, and a key part of this system is a way
270 to map hardware to packages. Isenkram have its own mapping database,
271 and also uses data provided by each package using the AppStream
272 metadata format. And today,
273 <a href="https://tracker.debian.org/pkg/appstream">AppStream</a> in
274 Debian learned to look up hardware the same way Isenkram is doing it,
275 ie using fnmatch():</p>
276
277 <p><pre>
278 % appstreamcli what-provides modalias \
279 usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
280 Identifier: pymissile [generic]
281 Name: pymissile
282 Summary: Control original Striker USB Missile Launcher
283 Package: pymissile
284 % appstreamcli what-provides modalias usb:v0694p0002d0000
285 Identifier: libnxt [generic]
286 Name: libnxt
287 Summary: utility library for talking to the LEGO Mindstorms NXT brick
288 Package: libnxt
289 ---
290 Identifier: t2n [generic]
291 Name: t2n
292 Summary: Simple command-line tool for Lego NXT
293 Package: t2n
294 ---
295 Identifier: python-nxt [generic]
296 Name: python-nxt
297 Summary: Python driver/interface/wrapper for the Lego Mindstorms NXT robot
298 Package: python-nxt
299 ---
300 Identifier: nbc [generic]
301 Name: nbc
302 Summary: C compiler for LEGO Mindstorms NXT bricks
303 Package: nbc
304 %
305 </pre></p>
306
307 <p>A similar query can be done using the combined AppStream and
308 Isenkram databases using the isenkram-lookup tool:</p>
309
310 <p><pre>
311 % isenkram-lookup usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
312 pymissile
313 % isenkram-lookup usb:v0694p0002d0000
314 libnxt
315 nbc
316 python-nxt
317 t2n
318 %
319 </pre></p>
320
321 <p>You can find modalias values relevant for your machine using
322 <tt>cat $(find /sys/devices/ -name modalias)</tt>.
323
324 <p>If you want to make this system a success and help Debian users
325 make the most of the hardware they have, please
326 help<a href="https://wiki.debian.org/AppStream/Guidelines">add
327 AppStream metadata for your package following the guidelines</a>
328 documented in the wiki. So far only 11 packages provide such
329 information, among the several hundred hardware specific packages in
330 Debian. The Isenkram database on the other hand contain 101 packages,
331 mostly related to USB dongles. Most of the packages with hardware
332 mapping in AppStream are LEGO Mindstorms related, because I have, as
333 part of my involvement in
334 <a href="https://wiki.debian.org/LegoDesigners">the Debian LEGO
335 team</a> given priority to making sure LEGO users get proposed the
336 complete set of packages in Debian for that particular hardware. The
337 team also got a nice Christmas present today. The
338 <a href="https://tracker.debian.org/pkg/nxt-firmware">nxt-firmware
339 package</a> made it into Debian. With this package in place, it is
340 now possible to use the LEGO Mindstorms NXT unit with only free
341 software, as the nxt-firmware package contain the source and firmware
342 binaries for the NXT brick.</p>
343
344 <p>As usual, if you use Bitcoin and want to show your support of my
345 activities, please send Bitcoin donations to my address
346 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
347 </div>
348 <div class="tags">
349
350
351 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>.
352
353
354 </div>
355 </div>
356 <div class="padding"></div>
357
358 <div class="entry">
359 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Isenkram_updated_with_a_lot_more_hardware_package_mappings.html">Isenkram updated with a lot more hardware-package mappings</a></div>
360 <div class="date">20th December 2016</div>
361 <div class="body"><p><a href="http://packages.qa.debian.org/isenkram">The Isenkram
362 system</a> I wrote two years ago to make it easier in Debian to find
363 and install packages to get your hardware dongles to work, is still
364 going strong. It is a system to look up the hardware present on or
365 connected to the current system, and map the hardware to Debian
366 packages. It can either be done using the tools in isenkram-cli or
367 using the user space daemon in the isenkram package. The latter will
368 notify you, when inserting new hardware, about what packages to
369 install to get the dongle working. It will even provide a button to
370 click on to ask packagekit to install the packages.</p>
371
372 <p>Here is an command line example from my Thinkpad laptop:</p>
373
374 <p><pre>
375 % isenkram-lookup
376 bluez
377 cheese
378 ethtool
379 fprintd
380 fprintd-demo
381 gkrellm-thinkbat
382 hdapsd
383 libpam-fprintd
384 pidgin-blinklight
385 thinkfan
386 tlp
387 tp-smapi-dkms
388 tp-smapi-source
389 tpb
390 %
391 </pre></p>
392
393 <p>It can also list the firware package providing firmware requested
394 by the load kernel modules, which in my case is an empty list because
395 I have all the firmware my machine need:
396
397 <p><pre>
398 % /usr/sbin/isenkram-autoinstall-firmware -l
399 info: did not find any firmware files requested by loaded kernel modules. exiting
400 %
401 </pre></p>
402
403 <p>The last few days I had a look at several of the around 250
404 packages in Debian with udev rules. These seem like good candidates
405 to install when a given hardware dongle is inserted, and I found
406 several that should be proposed by isenkram. I have not had time to
407 check all of them, but am happy to report that now there are 97
408 packages packages mapped to hardware by Isenkram. 11 of these
409 packages provide hardware mapping using AppStream, while the rest are
410 listed in the modaliases file provided in isenkram.</p>
411
412 <p>These are the packages with hardware mappings at the moment. The
413 <strong>marked packages</strong> are also announcing their hardware
414 support using AppStream, for everyone to use:</p>
415
416 <p>air-quality-sensor, alsa-firmware-loaders, argyll,
417 <strong>array-info</strong>, avarice, avrdude, b43-fwcutter,
418 bit-babbler, bluez, bluez-firmware, <strong>brltty</strong>,
419 <strong>broadcom-sta-dkms</strong>, calibre, cgminer, cheese, colord,
420 <strong>colorhug-client</strong>, dahdi-firmware-nonfree, dahdi-linux,
421 dfu-util, dolphin-emu, ekeyd, ethtool, firmware-ipw2x00, fprintd,
422 fprintd-demo, <strong>galileo</strong>, gkrellm-thinkbat, gphoto2,
423 gpsbabel, gpsbabel-gui, gpsman, gpstrans, gqrx-sdr, gr-fcdproplus,
424 gr-osmosdr, gtkpod, hackrf, hdapsd, hdmi2usb-udev, hpijs-ppds, hplip,
425 ipw3945-source, ipw3945d, kde-config-tablet, kinect-audio-setup,
426 <strong>libnxt</strong>, libpam-fprintd, <strong>lomoco</strong>,
427 madwimax, minidisc-utils, mkgmap, msi-keyboard, mtkbabel,
428 <strong>nbc</strong>, <strong>nqc</strong>, nut-hal-drivers, ola,
429 open-vm-toolbox, open-vm-tools, openambit, pcgminer, pcmciautils,
430 pcscd, pidgin-blinklight, printer-driver-splix,
431 <strong>pymissile</strong>, python-nxt, qlandkartegt,
432 qlandkartegt-garmin, rosegarden, rt2x00-source, sispmctl,
433 soapysdr-module-hackrf, solaar, squeak-plugins-scratch, sunxi-tools,
434 <strong>t2n</strong>, thinkfan, thinkfinger-tools, tlp, tp-smapi-dkms,
435 tp-smapi-source, tpb, tucnak, uhd-host, usbmuxd, viking,
436 virtualbox-ose-guest-x11, w1retap, xawtv, xserver-xorg-input-vmmouse,
437 xserver-xorg-input-wacom, xserver-xorg-video-qxl,
438 xserver-xorg-video-vmware, yubikey-personalization and
439 zd1211-firmware</p>
440
441 <p>If you know of other packages, please let me know with a wishlist
442 bug report against the isenkram-cli package, and ask the package
443 maintainer to
444 <a href="https://wiki.debian.org/AppStream/Guidelines">add AppStream
445 metadata according to the guidelines</a> to provide the information
446 for everyone. In time, I hope to get rid of the isenkram specific
447 hardware mapping and depend exclusively on AppStream.</p>
448
449 <p>Note, the AppStream metadata for broadcom-sta-dkms is matching too
450 much hardware, and suggest that the package with with any ethernet
451 card. See <a href="http://bugs.debian.org/838735">bug #838735</a> for
452 the details. I hope the maintainer find time to address it soon. In
453 the mean time I provide an override in isenkram.</p>
454 </div>
455 <div class="tags">
456
457
458 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>.
459
460
461 </div>
462 </div>
463 <div class="padding"></div>
464
465 <div class="entry">
466 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Oolite__a_life_in_space_as_vagabond_and_mercenary___nice_free_software.html">Oolite, a life in space as vagabond and mercenary - nice free software</a></div>
467 <div class="date">11th December 2016</div>
468 <div class="body"><p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2016-12-11-nice-oolite.png"/></p>
469
470 <p>In my early years, I played
471 <a href="http://wiki.alioth.net/index.php/Classic_Elite">the epic game
472 Elite</a> on my PC. I spent many months trading and fighting in
473 space, and reached the 'elite' fighting status before I moved on. The
474 original Elite game was available on Commodore 64 and the IBM PC
475 edition I played had a 64 KB executable. I am still impressed today
476 that the authors managed to squeeze both a 3D engine and details about
477 more than 2000 planet systems across 7 galaxies into a binary so
478 small.</p>
479
480 <p>I have known about <a href="http://www.oolite.org/">the free
481 software game Oolite inspired by Elite</a> for a while, but did not
482 really have time to test it properly until a few days ago. It was
483 great to discover that my old knowledge about trading routes were
484 still valid. But my fighting and flying abilities were gone, so I had
485 to retrain to be able to dock on a space station. And I am still not
486 able to make much resistance when I am attacked by pirates, so I
487 bougth and mounted the most powerful laser in the rear to be able to
488 put up at least some resistance while fleeing for my life. :)</p>
489
490 <p>When playing Elite in the late eighties, I had to discover
491 everything on my own, and I had long lists of prices seen on different
492 planets to be able to decide where to trade what. This time I had the
493 advantages of the
494 <a href="http://wiki.alioth.net/index.php/Main_Page">Elite wiki</a>,
495 where information about each planet is easily available with common
496 price ranges and suggested trading routes. This improved my ability
497 to earn money and I have been able to earn enough to buy a lot of
498 useful equipent in a few days. I believe I originally played for
499 months before I could get a docking computer, while now I could get it
500 after less then a week.</p>
501
502 <p>If you like science fiction and dreamed of a life as a vagabond in
503 space, you should try out Oolite. It is available for Linux, MacOSX
504 and Windows, and is included in Debian and derivatives since 2011.</p>
505
506 <p>As usual, if you use Bitcoin and want to show your support of my
507 activities, please send Bitcoin donations to my address
508 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
509 </div>
510 <div class="tags">
511
512
513 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>.
514
515
516 </div>
517 </div>
518 <div class="padding"></div>
519
520 <div class="entry">
521 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Er_lover_brutt_n_r_personvernpolicy_ikke_stemmer_med_praksis_.html">Er lover brutt når personvernpolicy ikke stemmer med praksis?</a></div>
522 <div class="date"> 9th December 2016</div>
523 <div class="body"><p>NÃ¥r jeg bruker <a href="https://www.ghostery.com/">Ghostery</a>,
524 <a href="https://www.ublock.org/">uBlock</a>,
525 <a href="https://github.com/gorhill/uMatrix">uMatrix</a>,
526 <a href="https://github.com/andryou/scriptsafe">ScriptSafe</a> og andre
527 nettleserverktøy (de passer på hverandre) for å holde styr på hvordan
528 nettsteder sprer informasjon om hvilke nettsider jeg leser blir det
529 veldig synlig hvilke nettsteder som er satt opp til å utveksle
530 informasjon med utlandet og tredjeparter. For en stund siden la jeg
531 merke til at det virker å være avvik mellom personvernpolicy og
532 praksis endel steder, og tok tak i et par konkrete eksempler og sendte
533 spørsmål til Datatilsynets kontaktpunkt for veiledning:</p>
534
535 <blockquote>
536
537 <p>«Jeg har et spørsmål når det gjelder bruken av Google Analytics og
538 personvernpolicy. Er det lovlig for et nettsted å si en ting i
539 personvernpolicy og gjøre noe annet i virkeligheten? Spesifikt lurer
540 jeg på hvilket lov som er brutt hvis nettstedet i HTML-koden til
541 nettsidene ber lesernes nettleser om å kontakte Google Analytics og
542 slik overleverer sitt IP-nummer til Google, samtidig som
543 personvernpolicien hevder at Google Analytics kun får anonymiserte
544 data. Google får jo i slike tilfeller alltid overført fullt
545 IP-nummer, og nettstedet kan i URL-en som brukes be Google om å ikke
546 lagre deler av IP-adressen (omtalt som anonymisering av Google
547 Analytics)</p>
548
549 <p>Et eksempel er Nettavisen digi.no.
550 <a href="http://www.digi.no/artikler/personvernpolicy/208772">Deres
551 personvernpolicy</a> sier følgende:</p>
552
553 <blockquote>
554 «Tredjeparter (som Google Analytics, Cxense, TNS Gallup) får kun
555 anonymiserte data.»
556 </blockquote>
557
558 <p>Men når en leser artikler der så blir maskiner i Norge, USA,
559 Tyskland, Danmark, Storbritannia, Irland og Nederland varslet om
560 besøket og får dermed overlevert full IP-adresse, som datatilsynet har
561 uttalt er en personopplysning. Nettsidene er satt opp til be
562 nettleseren å kontakte 29 ulike maskiner rundt om i verden. Fire av
563 dem er er under DNS-domenene digi.no og tek.no som tilhører samme
564 eier. I tillegg ber nettsidene ikke
565 <a href="https://support.google.com/analytics/answer/2763052?hl=no">Google
566 Analytics om å fjerne siste oktett i IP-adressen ved lagring</a>,
567 dvs. flagget «aip=1» er ikke satt i URL-en som brukes for å kontakte
568 Google Analytics.</p>
569
570 <p>Tilsvarende er også tilfelle for andre nettsteder, så digi.no er
571 ikke spesiell i så måte (dagbladet.no er et annet eksempel, det
572 gjelder flere).»</p>
573
574 </blockquote>
575
576 <p>Etter noen dager kunne juridisk rådgiver Elisabeth Krauss Amundsen
577 hos Datatilsynet fortelle det følgende:</p>
578
579 <blockquote>
580 «Hei, og takk for din e-post.</p>
581
582 <p>Vår svartjeneste gir deg kortfattet rådgivning. Vi vil derfor ikke konkludere
583 i saken din, men gi deg råd og veiledning.</p>
584
585 <p>Ut ifra det du skriver er det antakelig flere bestemmelser i
586 personopplysingsloven som brytes dersom virksomhetens personvernpolicy
587 sier noe annet om behandlingen av personopplysninger enn det som
588 faktisk skjer. Antakelig vil det være et brudd på informasjonsplikten
589 i personopplysingsloven §§ 18 og
590 19&lt;<a href="https://lovdata.no/dokument/NL/lov/2000-04-14-31/KAPITTEL_2#§18">https://lovdata.no/dokument/NL/lov/2000-04-14-31/KAPITTEL_2#§18</a>&gt;
591 dersom det gis feilinformasjon om at opplysningene utleveres. Det kan
592 også stilles spørsmål om grunnkravene for behandling av
593 personopplysninger vil være oppfylt ved en utlevering av
594 personopplysninger til en tredjepart, dersom dette ikke er inkludert
595 behandlingsgrunnlaget og formålet med behandlingen, se
596 personopplysingsloven § 11, jf.
597 8.&lt;<a href="https://lovdata.no/dokument/NL/lov/2000-04-14-31/KAPITTEL_2#§11">https://lovdata.no/dokument/NL/lov/2000-04-14-31/KAPITTEL_2#§11</a>&gt;»
598 </blockquote>
599
600 <!-- Her er full URL som digi ba nettleserne bruke for å melde fra til
601 Google Analytics:
602 https://www.google-analytics.com/r/collect?v=1&_v=j47&a=666919305&t=pageview&_s=1&dl=http%3A%2F%2Fwww.digi.no%2F&ul=nb-no&de=UTF-8&dt=Digi.no%20-%20IT-bransjens%20nettavis&sd=32-bit&sr=1024x768&vp=400x300&je=0&_u=AEAAAMQAK~&jid=592247632&cid=1641512195.1480086725&tid=UA-54426-28&_r=1&z=328520576
603 -->
604
605 <p>Oppdatert med kunnskap om lover og regler tok jeg så kontakt med
606 Dagbladet på epostadressen de annonserer på sine
607 personvernpolicysider:<p>
608
609 <blockquote>
610
611 <p>«Jeg lurte litt i forbindelse med en bloggpost jeg skriver på, og lurer
612 på om dere hjelpe meg med å finne ut av følgende. Først litt
613 bakgrunnsinformasjon.
614 <a href="http://www.dagbladet.no/2009/08/18/nyheter/avtale/brukeravtale/plikter/7706966/">Dagbladets
615 personvernpolicy</a> forteller følgende:</p>
616
617 <blockquote>
618 <p>«3. Automatisk innhentet informasjon</p>
619
620 <p>For eksempel IP-adressen din (ikke synlig for andre) samt
621 statistisk, automatisk produsert informasjon, som når du sist var
622 innlogget på tjenesten. Dette er informasjon vi samler for å gjøre
623 tjenesten best mulig.»</p>
624
625 </blockquote>
626
627
628 <p>Men når en besøker nettsidene til Dagbladet,
629 f.eks. <a href="http://dagbladet.no/">forsiden</a>, så er nettsidene
630 satt opp til å kontakte mange tredjeparter som slik får tilgang til
631 både fullt IP-nummer og i de fleste tilfeller nøyaktig hvilken
632 artikkel en leser hos Dagbladet ved at Referer-feltet fylles og legges
633 ved. Dette gjelder Google Analytics, Cxense, INS Gallup, Doubleclick
634 med flere. Totalt ber forsiden nettleseren om å koble seg opp til 60
635 nettsteder med 149 separate oppkoblinger. I hver av disse
636 oppkoblingene oversendes IP-adressen til leseren, og i følge
637 Datatilsynet er
638 «<a href="https://www.datatilsynet.no/Teknologi/Internett/Webanalyse/">en
639 IP-adresse definert som en personopplysning fordi den kan spores
640 tilbake til en bestemt maskinvare og dermed til en enkeltperson</a>».</p>
641
642 <p>Datatilsynet har fortalt meg at i følge personopplysingsloven §§ 18
643 og 19 skal informasjonen som gis om bruk og utlevering av
644 personopplysninger være korrekt. De forteller videre at det er endel
645 grunnkrav som må være oppfylt ved utlevering av personopplysninger til
646 tredjeparter, nærmere forklart i personopplysingsloven § 11 som
647 henviser til § 8.</p>
648
649 <p>Mitt spørsmål er dermed som følger:</p>
650
651 <blockquote>
652
653 <p>Hva mener dere i personpolicyen når dere skriver at IP-adressen ikke
654 er synlig for andre?»</p>
655
656 </blockquote>
657
658 </blockquote>
659
660 <p>Etter en uke har jeg fortsatt ikke fått svar fra Dagbladet på mitt
661 spørsmål, så neste steg er antagelig å høre om Datatilsynet er
662 interessert i å se på saken.</p>
663
664 <p>Men Dagbladet er ikke det eneste nettstedet som forteller at de
665 ikke deler personopplysninger med andre mens observerbar praksis
666 dokumenterer noe annet. Jeg sendte derfor også et spørsmål til
667 kontaktadressen til nettavisen Digi.no, og der var responsen mye
668 bedre:</p>
669
670 <blockquote>
671
672 <p>«Jeg lurte på en ting i forbindelse med en bloggpost jeg skriver på,
673 og lurer på om dere hjelpe meg. Først litt bakgrunnsinformasjon.
674 <a href="http://www.digi.no/artikler/personvernpolicy/208772">Digi.nos
675 personvernpolicy</a> forteller følgende:</p>
676
677 <blockquote>
678 «All personlig informasjon blir lagret i våre systemer, disse er ikke
679 tilgjengelig for tredjeparter, og blir ikke lagret i
680 informasjonskapsler. Tredjeparter (som Google Analytics, Cxense,
681 TNS Gallup) får kun anonymiserte data.»
682 </blockquote>
683
684 <p>Men når en besøker nettsidene til nettavisen, f.eks.
685 <a href="http://www.digi.no/">forsiden</a>, så er nettsidene satt opp
686 til å kontakte mange tredjeparter som slik får tilgang til både fullt
687 IP-nummer og i de fleste tilfeller nøyaktig hvilken artikkel en leser
688 hos Digi.no ved at Referer-feltet fylles og legges ved. Dette gjelder
689 både Google Analytics, Cxense blant og INS Gallum. Totalt ber
690 forsiden nettleseren om å koble seg opp til 29 nettsteder med 44
691 separate oppkoblinger. I hver av disse oppkoblingene sendes
692 IP-adressen til leseren over, og i følge Datatilsynet er
693 «<a href="https://www.datatilsynet.no/Teknologi/Internett/Webanalyse/">en
694 IP-adresse definert som en personopplysning fordi den kan spores
695 tilbake til en bestemt maskinvare og dermed til en enkeltperson</a>».
696 Det jeg ser virker ikke å være i tråd med personvernpolicyen.</p>
697
698 <p>Når en besøker Digi.nos nettsider gjøres det to oppkoblinger til
699 Google Analytics, en for å hente ned programkoden som samler
700 informasjon fra nettleseren og sender over til Google (analytics.js),
701 og en for å overføre det som ble samlet inn. I den siste oppkoblingen
702 er det mulig å be Google om å ikke ta vare på hele IP-adressen, men i
703 stedet fjerne siste oktett i IP-adressen. Dette omtales ofte litt
704 misvisende for «anonymisert» bruk av Google Analytics, i og med at
705 fullt IP-nummer blir sendt til Google og det er opp til Google om de
706 vil bry seg om ønsket fra de som har laget nettsiden. Ut fra det som
707 står i personvernpolicyen ville jeg tro at Digi.no ba google om å ikke
708 ta vare på hele IP-nummeret, men når en ser på den andre oppkoblingen
709 kan en se at flagget «aio=1» ikke er satt, og at Digi.no ikke ber
710 Google om å la være å lagre hele IP-adressen. Dette virker heller
711 ikke å være i tråd med personvernpolicyen.</p>
712
713 <p>Datatilsynet har fortalt meg at i følge personopplysingsloven §§ 18
714 og 19 skal informasjonen som gis om bruk og utlevering av
715 personopplysninger være korrekt. De forteller videre at det er endel
716 grunnkrav som må være oppfylt ved utlevering av personopplysninger til
717 tredjeparter, nærmere forklart i personopplysingsloven § 11 som
718 henviser til § 8. Det er uklart for meg om disse kravene er oppfylt
719 når IP-adresse og informasjon om hvilke websider som besøkes til
720 tredjeparter.</p>
721
722 <p>Mitt spørsmål er dermed som følger:</p>
723
724 <blockquote>
725
726 <p>Hva mener dere i personpolicyen når dere skriver at «Tredjeparter
727 får kun anonymiserte data»?»</p>
728
729 </blockquote>
730
731 </blockquote>
732
733 <p>Redaksjonssjef Kurt Lekanger svarte samme dag og forklarte at han
734 måtte komme tilbake til meg når han hadde med utviklingsavdelingen.
735 Seks dager senere lurte jeg på hva han fant ut, og etter noen timer
736 fikk jeg så følgende svar fra direktøren for teknologi og
737 forretningsutvikling Øystein W. Høie i Teknisk Ukeblad Media:</p>
738
739 <blockquote>
740
741 <p>«Takk for godt tips! Det er helt riktig at IP og referrer-adresse
742 potensielt kan leses ut av tredjepart.</p>
743
744 <p>Retningslinjene våre har vært uklare på dette tidspunktet, og vi
745 oppdaterer nå disse så dette kommer tydeligere frem. Ny tekst blir som
746 følger:</p>
747
748 <hr>
749 <p>3. Dette bruker vi ikke informasjonen til Informasjon du oppgir til
750 oss blir lagret i våre systemer, er ikke tilgjengelig for
751 tredjeparter, og blir ikke lagret i informasjonskapsler.
752 Informasjonen vil kun benyttes til å gi deg som bruker mer relevant
753 informasjon og bedre tjenester.</p>
754
755 <p>Tredjeparter (som Google Analytics, Cxense, TNS Gallup) vil kunne
756 hente ut IP-adresse og data basert på dine surfemønstre. TU Media AS
757 er pliktig å påse at disse tredjepartene behandler data i tråd med
758 norsk regelverk.</p>
759 <hr>
760
761 <p>Ellers har vi nå aktivert anonymisering i Google Analytics
762 (aip=1). Kan også nevne at Tek.no-brukere som har kjøpt Tek Ekstra har
763 mulighet til å skru av all tracking i kontrollpanelet sitt. Dette er
764 noe vi vurderer å rulle ut på alle sidene i vårt nettverk.»</p>
765
766 </blockquote>
767
768 <p>Det var nyttig å vite at vi er enige om at formuleringen i
769 personvernpolicyen er misvisende. Derimot var det nedslående at i
770 stedet for å endre praksis for å følge det personvernpolicyen sier om
771 å ikke dele personinformasjon med tredjeparter, så velger Digi.no å
772 fortsette praksis og i stedet endre personvernpolicyen slik at den å
773 dokumentere dagens praksis med spredning av personopplysninger.</p>
774
775 <p>Med bakgrunn i at Digi.no ikke har fulgt sin egen personvernpolicy
776 spurte jeg hvordan Digi.no kom til å håndtere endringen:</p>
777
778 <blockquote>
779
780 <p>«Tusen takk for beskjed om endring av personvernpolicy for digi.no.
781 Gjelder endringen også andre nettsteder?</p>
782
783 <p>Vil tidligere håndteringen av IP-adresser og lesemønster i strid
784 med dokumentert personvernpolicy bli varslet til Datatilsynet i tråd
785 med
786 <a href="https://lovdata.no/forskrift/2000-12-15-1265/§2-6">personopplysningsforskriften
787 § 2-6</a>? Vil leserne bli varslet på en prominent og synlig måte om
788 at lesernes IP-adresser og lesemønster har vært utlevert til
789 tredjeparter i stid med tidligere formulering om at tredjeparter kun
790 får anonymiserte data, og at utleveringen fortsetter etter at
791 personvernpolicy er endret for å dokumentere praksis?</p>
792
793 <p>Appropos ekstra tilbud til betalende lesere, tilbyr dere en
794 mulighet for å betale for å lese som ikke innebærer at en må gjøre det
795 mulig å la sine lesevaner blir registeret av tek.no? Betaler gjerne
796 for å lese nyheter, men ikke med en bit av privatlivet mitt. :)»</p>
797 </blockquote>
798
799 <p>Jeg fikk raskt svar tilbake fra direktøren Høie:</p>
800
801 <blockquote>
802 <p>«Tydeliggjøringen i personvernpolicy gjelder alle våre nettsteder.</p>
803
804 <p>Vi kommer til å ta en runde og gå over vår policy i forbindelse med
805 dette, og vil i de tilfeller det er påkrevd selvsagt være tydelig
806 overfor brukere og tilsyn. Vil samtidig understreke at vår bruk av
807 tredjeparts analyseverktøy og annonsetracking er helt på linje med det
808 som er normalt for norske kommersielle nettsteder.</p>
809
810 <p>Angående spørsmålet ditt:
811 <br>Du vil fortsatt vises i våre interne systemer om du blir Ekstra-bruker,
812 vi skrur bare av tredjeparts tracking.»</p>
813 </blockquote>
814
815 <p>Det høres jo ikke bra ut at det er normalt for norske kommersielle
816 nettsteder å utlevere lesernes personopplysninger til utlandet. Men
817 som en kan lese fra <a href="https://www.nrk.no/norge/kommunen-deler-informasjon-om-deg-med-facebook-og-google-1.13248945">gårdagens oppslag fra NRK</a> gjelder
818 det også norske kommuner og andre offentlige aktører, og
819 <a href="http://people.skolelinux.org/pere/blog/Snurpenot_overv_kning_av_sensitiv_personinformasjon.html">jeg
820 skrev om omfanget av problemet i fjor</a>. Det er uansett ikke en
821 praksis jeg tror er i tråd med kravene i personopplysningsloven, og
822 heller ikke en praksis jeg som leser synes er greit. Jeg manglet dog
823 fortsatt svar på om Digi.no kom til å varsle lesere og Datatilsynet om
824 avviket mellom praksis og policy, så jeg forsøkte meg med en ny epost
825 i går kveld:</p>
826
827 <blockquote>
828
829 <p>«Kan du fortelle meg om dere anser det å være påkrevd å varsle
830 tilsyn og brukere nå, når dere har oppdaget at praksis ikke har vært i
831 tråd med personvernpolicy?»</p>
832
833 </blockquote>
834
835 <p>Det spørsmålet vet jeg så langt ikke svaret på, men antagelig kan
836 Datatilsynet svare på om det er påkrevd å varsle tilsyn og lesere om
837 dette. Jeg planlegger å oppdatere denne bloggposten med svaret når
838 det kommer.</p>
839
840 <p>Jeg synes jo det er spesielt ille når barn får sine
841 personopplysninger spredt til utlandet, noe jeg
842 <a href="https://www.mimesbronn.no/request/opplysninger_samlet_inn_av_mobil">tok
843 opp med NRK i fjor</a>. De to eksemplene jeg nevner er som dere
844 forstår ikke unike, men jeg har ikke full oversikt over hvor mange
845 nettsteder dette gjelder. Jeg har ikke kapasitet til eller glede av å
846 lese alle personvernpolicyer i landet. Kanskje mine lesere kan sende
847 meg tips på epost om andre nettsteder med avvik mellom policy og
848 praksis? Hvis vi alle går sammen og kontakter de ansvarlige, kanskje
849 noen til slutt endrer praksis og slutter å dele lesernes
850 personopplysninger med tredjeparter?</p>
851
852 <p>Apropos bruken av Google Analytics kan jeg forresten nevne at
853 Universitetet i Oslo også har tatt i bruk Google Analytics, men der
854 lagres programkoden som overføres til nettleserne lokalt og deler av
855 IP-adressen fjernes lokalt på universitetet via en mellomtjener/proxy
856 (<a href="https://github.com/unioslo/ipproxy">tilgjengelig via
857 github</a>) før informasjon sendes over til Google Analytics. Dermed
858 er det mulig for ansvarlige for nettstedet å <em>vite</em> at Google
859 ikke har tilgang til komplett IP-adresse. Ã…rsaken til at denne
860 metoden brukes er at juristene ved universitetet har konkludert med at
861 det er eneste måten en kunne vurdere å bruke Google Analytics uten å
862 bryte loven. Risikoen for gjenidentifisering og
863 <a href="https://panopticlick.eff.org/">identifisering ved hjelp av
864 nettleserinformasjon</a> er fortsatt tilstede, så det er ingen optimal
865 løsning, men det er bedre enn å håpe at f.eks. Google og alle som
866 lytter på veien skal prioritere norsk lov over sin lokale
867 lovgivning.</p>
868
869 <p>Oppdatering 2016-12-09: Fikk svar fra direktøren Høie på mitt
870 spørsmål litt etter at jeg hadde publisert denne artikkelen:</p>
871
872 <blockquote>
873
874 <p>Vi kommer til å annonsere en oppdatert policy, og skal undersøke om
875 vi er pliktig å varsle Datatilsynet.</p>
876
877 <p>Det vi uansett ønsker å gjøre først, er å gå gjennom hele policy
878 sammen med utviklerne og advokat, så vi er sikre på at vi går frem
879 riktig og at det ikke er flere tvetydigheter som skjuler seg i
880 teksten.</p>
881
882 <p>Har du andre idéer eller konkrete innspill til hva som kan gjøre
883 policy tydeligere, tar vi gjerne imot det. Dette er et felt vi ønsker
884 å være ryddige på.</p>
885
886 </blockquote>
887
888 <p>Vi får se om de liker mine innspill, som i grunnen er å ikke pusse
889 på personvernpolicyen men i stedet slutte å spre lesernes
890 personopplysninger til eksterne aktører.</p>
891 </div>
892 <div class="tags">
893
894
895 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/surveillance">surveillance</a>.
896
897
898 </div>
899 </div>
900 <div class="padding"></div>
901
902 <div class="entry">
903 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Fri_programvare_tilbakeblikk_for_2015_og_2016.html">Fri programvare-tilbakeblikk for 2015 og 2016</a></div>
904 <div class="date"> 1st December 2016</div>
905 <div class="body"><p>Jeg er mer en gjennomsnittlig interessert i fri programvare og fri
906 kultur, og nå når et nytt år nærmer seg slutten tenkte jeg det var på
907 tide med et lite tilbakeblikk på årene som var. Jeg har vært
908 involvert i flere prosjekter og løsninger, og her er en liten
909 gjennomgang av de jeg kom på i farten.</p>
910
911 <p>Den største nyheten for meg fra 2015 var at jeg endelig, etter 2.5
912 år med flekkvis innsats, fikk gitt ut en bokmålsutgave av den
913 klassiske boken <a href="http://free-culture.cc/">Free Culture</a> av
914 Lawrence Lessig. Boken forteller om bakgrunnen for fri
915 kultur-bevegelsen, beskriver problemer med dagens opphavsrett og
916 skisserer hvordan vi kan bøte på problemene både individuelt og som
917 samfunn. Jeg anbefaler alle å lese denne boken, som jeg med god hjelp
918 har gitt ut på engelsk, bokmål og fransk. Papirboken kan bestilles i
919 nettbokhandler i USA som Lulu
920 (<a href="http://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22406445.html">Norsk</a>,
921 <a href="http://www.lulu.com/shop/lawrence-lessig/culture-libre/paperback/product-22645082.html">Fransk</a>,
922 <a href="http://www.lulu.com/shop/lawrence-lessig/free-culture/paperback/product-22402863.html">Engelsk</a>),
923 Amazon og Barnes & Noble takket være selvpubliseringsløsningen
924 lulu.com og
925 <a href="https://github.com/petterreinholdtsen/free-culture-lessig">ebokutgave</a>
926 samt alt som trengs for å oppdatere boken er tilgjengelig fra
927 github.</p>
928
929 <p>Et annet prosjekt jeg er veldig fornøyd med å ha deltatt i
930 lanseringen av, er <a href="https://www.mimesbronn.no/">Mimes
931 brønn</a>, NUUG-tjenesten for å gjøre det enklere å be om innsyn i
932 offentlig forvaltning, og spare offentlig forvaltning for å måtte
933 besvare de samme innsynshenvendelsene gang på gang. Etter bare noen
934 måneders drift førte
935 <a href="https://www.mimesbronn.no/request/forhandlinger_om_bv">en
936 henvendelse via tjenesten</a> til
937 <a href="https://www.stortinget.no/no/Saker-og-publikasjoner/Sporsmal/Skriftlige-sporsmal-og-svar/Skriftlig-sporsmal/?qid=65047">spørsmål
938 fra Stortinget til regjeringen</a>. I dette og andre tilfeller har
939 NUUG finansiert utvidet klagesak for henvendelser som vi som står bak
940 tjenesten synes fortjener ekstra oppmerksomhet. SÃ¥ langt har en liten
941 håndfull slike klagesaker blitt sendt til Sivilombudsmannen, der vi
942 fikk medhold i en saken (om .bv omtalt over) og avslag i en annen
943 (oppsummering fra møte i Pentagon om Internet-styring og nasjonal
944 sikkerhet).</p>
945
946 <p>Etter at jeg i lengre tid har manglet GPG-nøkkel registrert i
947 Debian (den opprinnelige ble fjernet på grunn av for kort
948 nøkkellengde) fikk jeg endelig fikset ny nøkkel og Debiantilgang i
949 slutten av 2015. Aktiviteten i Debian har ikke vært spesielt
950 skadelidende mens jeg manglet nøkkel (kjenner flere som er villig til
951 å laste opp på mine vegne), men da nøkkelen var på plass steg
952 motivasjonen og jeg har blant anne brukt tiden på å bidra til at
953 pakker relatert til lyd- og videokodekene fra
954 <a href="http://www.xiph.org">Xiph.org-stiftelsen</a> (dvs. Ogg,
955 Vorbis, Theora, Opus, etc) er i bedre stand i Debian, og har bidratt
956 til å få liv i gruppen som vedlikeholder Xiph-relaterte slik at dette
957 forhåpentligvis skal fungere bedre også i fremtiden. Jeg har jobbet
958 litt mer systemene Isenkram og appstream, som gjør det enklere å
959 håndtere ulike dongler i Debian ved at systemet selv vet og foreslår
960 hvilke pakker som bør installeres for å få dongler til å fungere. Har
961 også fått inn eller hjulpet til å få inn endel nye programpakker,
962 spesielt fornøyd med
963 <a href="https://tracker.debian.org/pkg/sonic-pi">Sonic Pi</A>,
964 <a href="https://tracker.debian.org/pkg/openalpr">OpenALPR</A> og
965 <a href="https://tracker.debian.org/pkg/coz-profiler">Coz</A>.
966
967
968 <p>Et Debian-relatert prosjekt jeg følger er
969 <a href="https://www.freedombox.org/">FreedomBox</a>, som tar sikte på
970 å tilby en løsning (både programvare og maskinvare) der hvem som helst
971 kan beholde sin private informasjon hjemme hos seg selv i stedet for å
972 dele den med skytjenesteleverandører som Google, Facebook, Twitter,
973 Appear.in med flere. I tillegg til generell deltagelse i utvikling av
974 prosjektet har jeg jobbet med å få alle Debian-pakkene som brukes av
975 Freedombox "reproduserbare" i Debian, dvs. gjøre det mulig å sjekke at
976 pakken som brukes i Freedombox ikke inneholder annet enn det som
977 kommer fra kildekodepakken i Debian og gir et forutsigbart resultat
978 ved bygging. Har også fulgt opp endel feilrapporter relatert til
979 Freedombox-spesifikke pakker (som Plinth og freedombox-setup) og
980 pakker som utgjør tjenestene i en Freedombox.</p>
981
982 <p>I samarbeid med Skolelinuxprosjektet og foreningen NUUG har jeg
983 vært med å arrangere flere utviklersamlinger både i 2015 og 2016. Der
984 har oversettere og utviklere blitt lært opp og arbeidet med blant
985 annet dokumentasjon, feilfiksing og utvikling av Skolelinux og
986 Frikanalen. Relatert til dette arbeidet har jeg koordinert norsk
987 oversettelse av <a href="http://debian-handbook.info/">HÃ¥ndbok for
988 Debian-administratorer</a> til bokmål, og flyttet
989 <a href="https://hosted.weblate.org/projects/debian-edu-documentation/">oversetterarbeidet
990 av Skolelinux-håndboken</a> fra Transifex til Weblate. Begge bøkene
991 er snart klare for første gangs korrekturlesing og vi drømmer om å
992 gjøre dem tilgjengelig på papir.</p>
993
994 <p>Gjennom hele perioden har jeg holdt et lite øye med NUUG-prosjektet
995 FiksGataMi, som stort sett går av seg selv uten manuelt vedlikehold,
996 men av og til er det problemer med enkelte mottakere (eposter i
997 retur). NUUG-drift oppgraderte tjenesten i løpet av 2016, og jeg
998 bisto Marius Halden litt i forbindelse med dette. Tjenesten får
999 stadig flere brukere, og flere kommuner har tatt kontakt for å lære
1000 mer om hvordan FiksGataMi fungerer.
1001
1002 <p>Den åpne TV-kanalen
1003 <a href="http://www.frikanalen.no/">Frikanalen</a> har fått en god del
1004 av min oppmerksomhet. Den var i starten av 2015 tilgjengelig på
1005 RiksTV kanal 50, web. Kanalen har fått et REST-basert API, og dette
1006 har jeg tatt i bruk for å fylle sendeplanen med NUUG-, TED- og
1007 Debian-foredrag samt andre tekniske presentasjoner. Har lastet opp
1008 mye nytt der og strømlinjeformet prosessen slik at både nye TED- og
1009 NUUG-foredrag går veldig greit. På høsten tok jeg en titt på
1010 multikast-spredning av kanalen til Uninett, og dette er nå kommet på
1011 plass, slik at alle TV-er som bruker Uninetts TV-løsning nå kan se på
1012 Frikanalen. Det jobbes for tiden med å få distribusjon på Altibox, og
1013 dette håper vi skal være klart i starten av 2017.</p>
1014
1015 <p>Relatert til Frikanalen har jeg i lengre tid
1016 <a href="http://people.skolelinux.org/pere/blog/tags/h264/">forsøkt å
1017 få klarhet i hva som er juridisk status for H.264 i Norge</a>. Det er
1018 fortsatt uklart for meg om Frikanalen må betale for retten til å
1019 kringkaste eller ikke, og om vi risikerer å bryte opphavsrettsvilkår
1020 ved å kringkaste på web med H.264. Har spurt ulike aktører for å
1021 forsøke å finne ut hvordan de har vurdert situasjonen, uten å bli
1022 klok.</p>
1023
1024 <p>Et prosjekt som var morsomt å se ta form var Ole Aamots
1025 <a href="https://www.youtube.com/watch?v=8ftM5fdKgZk">dokumentarprosjekt
1026 om fri programvare i Norge</a>. Han fikk intervjuet en god del av de
1027 mest aktive folkene i Norge, og resultatet ble interessant og
1028 severdig. Et nærmere prosjekt er NUUGs samarbeide med Oslo
1029 dokumentarfilmfestival om visningen av Citizenfour, der NUUG tok opp
1030 samtalen i forbindelse med visningen og publiserte opptaket på
1031 Frikanalen. Jeg er veldig fornøyd med å ha lyktes med å få dette på
1032 plass, selv om jeg ikke rakk å være med på visningen selv. Et annet
1033 NUUG-foredrag jeg er spesielt fornøyd med å ha fått på plass er
1034 besøket fra Bradley Kuhn fra Software Freedom Conservancy. Det tok
1035 mange måneder å organisere i samarbeid med BLUG, men til slutt klarte
1036 vi å finne et tidspunkt som passet alle, slik at han kunne besøke Oslo
1037 og Bergen. Opptaket fra dette er også publisert på Frikanalen.
1038 Generelt har jeg veldig fornøyd med at Frikanalen nå i praksis er
1039 Tekno-TV med interessante faktaprogram og presentasjoner nesten hele
1040 døgnet, hele uka.</p>
1041
1042 <p>Vi har i lengre tid forsøkt å få opp et Mesh-nett i Oslo, under
1043 navnet dugnadsnett.no, uten at vi så langt har klart å nå kritisk
1044 masse. Tanken er å gjøre det mulig å kommunisere direkte mellom
1045 likeverdige parter uten sentrale knutepunkt som enkelt kan avlyttes.
1046 Prosjektet er ikke dødt, men interessen blant oss som er med har ikke
1047 vært stor nok til å kunne prioritere dette over alt annet.</p>
1048
1049 <p>En ting som har tatt prioritet for min del er NUUG og EFNs forsøk
1050 på å få domstolvurdering av om det er greit for politiet å overta et
1051 DNS-domene uten domstolvurdering. Bakgrunnen er at Økokrim tok beslag
1052 i popcorn-time.no i mars 2016, med påstand om at nettstedet bidro til
1053 opphavsrettsbrudd ved å omtale fri programvareløsningen Popcorn Time
1054 og lenke til nettsteder der det var lenker til nettsteder der en kunne
1055 laste ned Popcorn Time. For det første mener vi at domstolene bør
1056 involveres før DNS-domener tas fra sine eiere, og for det andre mener
1057 vi begrunnelsen er så søkt at domenet ikke burde beslaglegges i første
1058 omgang. NUUG og EFN forsøkte først å protestere på egne vegne men ble
1059 avvist av domstolene med at vi ikke hadde rettslig interesse. Mens
1060 dette pågikk lyktes vi å få kontakt med registrar og regnskapsfører
1061 som fikk ble raidet av seks stykker fra Økokrim, og i gjeldende runde
1062 er det registrar og regnskapsfører som protesterer med støtte fra NUUG
1063 og EFN. Advokattimene renner ut og vi håper vi holder ut til saken
1064 har fått prøvd saken.</p>
1065
1066 <p>Et annet prosjekt, relatert til fri kultur og åndsverksvern, som
1067 jeg har brukt endel tid på er å maskinelt kunne identifisere verk som
1068 er falt i det fri i Norge. Jeg ønsker å vite hvor mange kunstuttrykk
1069 som blir røvet fra fellesskapet hver gang vernetiden i åndsverksloven
1070 blir utvidet, f.eks. nå sist når vernetiden for musikk ble utvidet med
1071 20 år fra 50 til 70 år med tilbakevirkende kraft, som om de som laget
1072 musikk for 60 år siden skulle bli mer motivert til å lage musikk av
1073 utvidet vernetid. Har sett på å kombinere informasjon fra
1074 Nasjonalbiblioteket, Deichmanske bibliotek, Wikipedia, Store Norske
1075 Leksikon og WorldCat, og gleder meg til Nasjonalbibliotekets initiativ
1076 for autorativ database over verk tar form.</p>
1077
1078 <p>Dårlig konkurranse på drivstoffmarkedet har irritert meg en stund,
1079 og jeg laget for flere år siden en skraper som samlet inn prisdata fra
1080 ulike kilder. Jeg ble derfor veldig glad da en økonomistudent tok
1081 kontakt i starten av 2015 og lurte på om jeg kunne bidra med data til
1082 hans masteroppgave om konkurransevilkårene i drivstoffmarkedet. Jeg
1083 bidro med glede, og resultatet er <a
1084 href="https://brage.bibsys.no/xmlui//browse?value=Jakobsen%2C+Tor+%C3%98yvind&type=author">publisert
1085 i fulltekst som "Hemmeligheten bak bensinprisen : en empirisk analyse
1086 av pumpeprisens drivkrefter" på BIBSYS Brage</a>.</p>
1087
1088 <p>I tilegg til det jeg har gjort her har jeg rapportert og fikset en
1089 rekke små og store feil i fri programvare, og hjulpet
1090 Debian-bidragsytere og upstream-utviklerne med å forbedre forskjellig
1091 fri programvare og få det inn i Debian.</p>
1092
1093 <p>Mye av det jeg har fått gjort rundt fri programvare og fri kultur
1094 har vært mulig takket være at jeg får dekket 20% av arbeidstiden min
1095 på Universitetet i Oslo fra
1096 <a href="http://www.nuugfoundation.no/">NUUG Foundation</a> for å jobbe
1097 med og koordinere fri programvareaktiviteter. Jeg er svært takknemlig
1098 til dem og min arbeidsgiver USIT for at jeg har fått muligheten. Uten
1099 dette hadde jeg ikke rukket over like mye etter hvert som ungene ble
1100 større.</p>
1101 </div>
1102 <div class="tags">
1103
1104
1105 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>.
1106
1107
1108 </div>
1109 </div>
1110 <div class="padding"></div>
1111
1112 <div class="entry">
1113 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Fortsatt_ingen_sikkerhetsoppdateringer_for_billettautomatene_til_kollektivtrafikken_i_Oslo_.html">Fortsatt ingen sikkerhetsoppdateringer for billettautomatene til kollektivtrafikken i Oslo?</a></div>
1114 <div class="date">29th November 2016</div>
1115 <div class="body"><p><a href="http://people.skolelinux.org/pere/blog/Er_billettautomatene_til_kollektivtrafikken_i_Oslo_uten_sikkerhetsoppdateringer_.html">For
1116 fire og et halvt år siden</a> lot jeg meg overraske over at Ruters
1117 billettautomater for kollektivtrafikken i Oslo kjørte
1118 <a href="http://en.wikipedia.org/wiki/Windows_2000">Windows 2000
1119 Professional</a>, et og et halvt år etter at Microsoft hadde gitt
1120 beskjed om at det ikke lenger kom sikkerhetsoppdateringer til
1121 systemet. Støtten fra Microsoft
1122 <a href="http://support.microsoft.com/lifecycle/search/?sort=PN&alpha=Windows+2000&Filter=FilterNO">tok
1123 slutt 2010-07-13 i følge Wikipedia og Microsoft selv</a>.</p>
1124
1125 <p>For fem dager siden passerte jeg på nytt en slik billettautomat som
1126 hadde brutt sammen, og den annonserte fortsatt at den kjører Windows
1127 2000 Professional, nå mer enn seks år siden Microsoft sluttet å komme
1128 med sikkerhetspatcher til produktet. Sikret meg et bilde av
1129 krasjmeldingen på skjermen.
1130
1131 <p><a href="http://people.skolelinux.org/pere/blog/images/2016-11-29-ruter-win2000pro.jpeg"><img width="40%" src="http://people.skolelinux.org/pere/blog/images/2016-11-29-ruter-win2000pro.jpeg" alt="[foto av billettautomat]"></a></p>
1132
1133 <p>Mon tro om de mangler kildekoden til systemet som kjører på
1134 automaten, og dermed ikke uten videre kan oppgradere?</p>
1135
1136 <p>Jeg ser jo fra
1137 <a href="https://www.mimesbronn.no/request/ruterbillett_app">en
1138 innsynshenvendelse om kildekoden til billett-Appen til Ruter på Mimes
1139 brønn</a> at Ruter tilsynelatende ikke legger sikkerheten i
1140 sertifikater, nøkler og passord, men i stedet baserer seg på at
1141 logikken i programvaren holdes hemmelig. Det borger ikke godt for
1142 sikkerheten i Ruters datasystemer.
1143
1144 <p>Det er nå tre og et halvt år siden
1145 <a href="http://www.aftenposten.no/osloby/Ingen-nye-Ruter-automater-for-sommeren-118460b.html">Ruter
1146 fortalte Aftenposten at nye automater ble minst seks måneder
1147 forsinket</a>, da leverandøren ikke hadde god nok kontroll. Det kan
1148 virke som om leverandøren ikke er alene om å ikke ha god nok
1149 kontroll.</p>
1150
1151 <p>Bildet er tilgjengelig for bruk med bruksvilkårene til
1152 <a href="http://creativecommons.org/licenses/by/3.0/no/">Creative
1153 Commons Navngivelse 3.0 Norge (CC BY 3.0)</a>.</p>
1154
1155 <p>Oppdatering 2016-12-01: Saken har fått omtale på
1156 <a href="http://www.digi.no/artikler/petter-advarte-selskapet-allerede-i-2012-da-systemkraesjen-dukket-opp-igjen-pa-tirsdag-ble-han-svaert-overrasket/365613">digi.no</a>
1157 og
1158 <a href="https://nrkbeta.no/2016/12/01/mener-oslos-billettsystem-er-en-tikkende-bombe/">NRK
1159 Beta</a>.</p>
1160 </div>
1161 <div class="tags">
1162
1163
1164 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter</a>.
1165
1166
1167 </div>
1168 </div>
1169 <div class="padding"></div>
1170
1171 <div class="entry">
1172 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Quicker_Debian_installations_using_eatmydata.html">Quicker Debian installations using eatmydata</a></div>
1173 <div class="date">25th November 2016</div>
1174 <div class="body"><p>Two years ago, I did some experiments with eatmydata and the Debian
1175 installation system, observing how using
1176 <a href="http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html">eatmydata
1177 could speed up the installation</a> quite a bit. My testing measured
1178 speedup around 20-40 percent for Debian Edu, where we install around
1179 1000 packages from within the installer. The eatmydata package
1180 provide a way to disable/delay file system flushing. This is a bit
1181 risky in the general case, as files that should be stored on disk will
1182 stay only in memory a bit longer than expected, causing problems if a
1183 machine crashes at an inconvenient time. But for an installation, if
1184 the machine crashes during installation the process is normally
1185 restarted, and avoiding disk operations as much as possible to speed
1186 up the process make perfect sense.
1187
1188 <p>I added code in the Debian Edu specific installation code to enable
1189 <a href="https://tracker.debian.org/pkg/libeatmydata">eatmydata</a>,
1190 but did not have time to push it any further. But a few months ago I
1191 picked it up again and worked with the libeatmydata package maintainer
1192 Mattia Rizzolo to make it easier for everyone to get this installation
1193 speedup in Debian. Thanks to our cooperation There is now an
1194 eatmydata-udeb package in Debian testing and unstable, and simply
1195 enabling/installing it in debian-installer (d-i) is enough to get the
1196 quicker installations. It can be enabled using preseeding. The
1197 following untested kernel argument should do the trick:</p>
1198
1199 <blockquote><pre>
1200 preseed/early_command="anna-install eatmydata-udeb"
1201 </pre></blockquote>
1202
1203 <p>This should ask d-i to install the package inside the d-i
1204 environment early in the installation sequence. Having it installed
1205 in d-i in turn will make sure the relevant scripts are called just
1206 after debootstrap filled /target/ with the freshly installed Debian
1207 system to configure apt to run dpkg with eatmydata. This is enough to
1208 speed up the installation process. There is a proposal to
1209 <a href="https://bugs.debian.org/841153">extend the idea a bit further
1210 by using /etc/ld.so.preload instead of apt.conf</a>, but I have not
1211 tested its impact.</p>
1212
1213 </div>
1214 <div class="tags">
1215
1216
1217 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
1218
1219
1220 </div>
1221 </div>
1222 <div class="padding"></div>
1223
1224 <div class="entry">
1225 <div class="title"><a href="http://people.skolelinux.org/pere/blog/Oversette_bokm_l_til_nynorsk__enklere_enn_du_tror_takket_v_re_Apertium.html">Oversette bokmål til nynorsk, enklere enn du tror takket være Apertium</a></div>
1226 <div class="date">24th November 2016</div>
1227 <div class="body"><p>I Norge er det mange som trenger å skrive både bokmål og nynorsk.
1228 Eksamensoppgaver, offentlige brev og nyheter er eksempler på tekster
1229 der det er krav om skriftspråk. I tillegg til alle skoleoppgavene som
1230 elever over det ganske land skal levere inn hvert år. Det mange ikke
1231 vet er at selv om de kommersielle alternativene
1232 <a href="https://translate.google.com/">Google Translate</a> og
1233 <a href="https://www.bing.com/translator/">Bing Translator</a> ikke kan
1234 bidra med å oversette mellom bokmål og nynorsk, så finnes det et
1235 utmerket fri programvarealternativ som kan. Oversetterverktøyet
1236 Apertium har støtte for en rekke språkkombinasjoner, og takket være
1237 den utrettelige innsatsen til blant annet Kevin Brubeck Unhammer, kan
1238 en bruke webtjenesten til å fylle inn en tekst på bokmål eller
1239 nynorsk, og få den automatoversatt til det andre skriftspråket.
1240 Resultatet er ikke perfekt, men et svært godt utgangspunkt. Av og til
1241 er resultatet så bra at det kan benyttes uten endringer. Jeg vet
1242 f.eks. at store deler av Joomla ble oversatt til nynorsk ved hjelp
1243 Apertium. Høres det ut som noe du kan ha bruk for? Besøk i så fall
1244 <a href="https://www.apertium.org/">Apertium.org</a> og fyll inn
1245 teksten din i webskjemaet der.
1246
1247 <p>Hvis du trenger maskinell tilgang til den bakenforliggende
1248 teknologien kan du enten installere pakken
1249 <a href="https://tracker.debian.org/apertium-nno-nob">apertium-nno-nob</a>
1250 på en Debian-maskin eller bruke web-API-et tilgjengelig fra
1251 api.apertium.org. Se
1252 <a href="http://wiki.apertium.org/wiki/Apertium-apy">API-dokumentasjonen</a>
1253 for detaljer om web-API-et. Her kan du se hvordan resultatet blir for
1254 denne teksten som ble skrevet på bokmål over maskinoversatt til
1255 nynorsk.</p>
1256
1257 <hr/>
1258
1259 <p>I Noreg er det mange som treng å skriva både bokmål og nynorsk.
1260 Eksamensoppgåver, offentlege brev og nyhende er døme på tekster der
1261 det er krav om skriftspråk. I tillegg til alle skuleoppgåvene som
1262 elevar over det ganske land skal levera inn kvart år. Det mange ikkje
1263 veit er at sjølv om dei kommersielle alternativa
1264 <a href="https://translate.google.com/">Google *Translate</a> og
1265 <a href="https://www.bing.com/translator/">Bing *Translator</a> ikkje
1266 kan bidra med å omsetja mellom bokmål og nynorsk, så finst det eit
1267 utmerka fri programvarealternativ som kan. Omsetjarverktøyet
1268 *Apertium har støtte for ei rekkje språkkombinasjonar, og takka vera
1269 den utrøyttelege innsatsen til blant anna Kevin Brubeck Unhammer, kan
1270 ein bruka *webtjenesten til å fylla inn ei tekst på bokmål eller
1271 nynorsk, og få den *automatoversatt til det andre skriftspråket.
1272 Resultatet er ikkje perfekt, men eit svært godt utgangspunkt. Av og
1273 til er resultatet så bra at det kan nyttast utan endringar. Eg veit
1274 t.d. at store delar av *Joomla vart omsett til nynorsk ved hjelp
1275 *Apertium. Høyrast det ut som noko du kan ha bruk for? Besøk i så
1276 fall <a href="https://www.apertium.org/">*Apertium.org</a> og fyll inn
1277 teksta di i *webskjemaet der.
1278
1279 <p>Viss du treng *maskinell tilgjenge til den *bakenforliggende
1280 teknologien kan du anten installera pakken
1281 <a href="https://tracker.debian.org/apertium-nno-nob">*apertium-*nno-*nob</a>
1282 på ein *Debian-maskin eller bruka *web-*API-eit tilgjengeleg frå
1283 *api.*apertium.org. Sjå
1284 <a href="http://wiki.apertium.org/wiki/Apertium-apy">*API-dokumentasjonen</a>
1285 for detaljar om *web-*API-eit. Her kan du sjå korleis resultatet vert
1286 for denne teksta som vart skreva på bokmål over *maskinoversatt til
1287 nynorsk.</p>
1288 </div>
1289 <div class="tags">
1290
1291
1292 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll</a>.
1293
1294
1295 </div>
1296 </div>
1297 <div class="padding"></div>
1298
1299 <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>
1300 <div id="sidebar">
1301
1302
1303
1304 <h2>Archive</h2>
1305 <ul>
1306
1307 <li>2017
1308 <ul>
1309
1310 <li><a href="http://people.skolelinux.org/pere/blog/archive/2017/01/">January (2)</a></li>
1311
1312 </ul></li>
1313
1314 <li>2016
1315 <ul>
1316
1317 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
1318
1319 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
1320
1321 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
1322
1323 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
1324
1325 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
1326
1327 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
1328
1329 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
1330
1331 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
1332
1333 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
1334
1335 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
1336
1337 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
1338
1339 <li><a href="http://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
1340
1341 </ul></li>
1342
1343 <li>2015
1344 <ul>
1345
1346 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
1347
1348 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
1349
1350 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
1351
1352 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
1353
1354 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
1355
1356 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
1357
1358 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
1359
1360 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
1361
1362 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
1363
1364 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
1365
1366 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
1367
1368 <li><a href="http://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
1369
1370 </ul></li>
1371
1372 <li>2014
1373 <ul>
1374
1375 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
1376
1377 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
1378
1379 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
1380
1381 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
1382
1383 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
1384
1385 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
1386
1387 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
1388
1389 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
1390
1391 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
1392
1393 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
1394
1395 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
1396
1397 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
1398
1399 </ul></li>
1400
1401 <li>2013
1402 <ul>
1403
1404 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
1405
1406 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
1407
1408 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
1409
1410 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
1411
1412 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
1413
1414 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
1415
1416 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
1417
1418 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
1419
1420 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
1421
1422 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
1423
1424 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
1425
1426 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
1427
1428 </ul></li>
1429
1430 <li>2012
1431 <ul>
1432
1433 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
1434
1435 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
1436
1437 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
1438
1439 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
1440
1441 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
1442
1443 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
1444
1445 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
1446
1447 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
1448
1449 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
1450
1451 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
1452
1453 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
1454
1455 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
1456
1457 </ul></li>
1458
1459 <li>2011
1460 <ul>
1461
1462 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
1463
1464 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
1465
1466 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
1467
1468 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
1469
1470 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
1471
1472 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
1473
1474 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
1475
1476 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
1477
1478 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1479
1480 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1481
1482 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1483
1484 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1485
1486 </ul></li>
1487
1488 <li>2010
1489 <ul>
1490
1491 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1492
1493 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1494
1495 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1496
1497 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1498
1499 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1500
1501 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1502
1503 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1504
1505 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1506
1507 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1508
1509 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1510
1511 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1512
1513 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1514
1515 </ul></li>
1516
1517 <li>2009
1518 <ul>
1519
1520 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1521
1522 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1523
1524 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1525
1526 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1527
1528 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1529
1530 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1531
1532 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1533
1534 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1535
1536 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1537
1538 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1539
1540 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1541
1542 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1543
1544 </ul></li>
1545
1546 <li>2008
1547 <ul>
1548
1549 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1550
1551 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1552
1553 </ul></li>
1554
1555 </ul>
1556
1557
1558
1559 <h2>Tags</h2>
1560 <ul>
1561
1562 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
1563
1564 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1565
1566 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1567
1568 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1569
1570 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (9)</a></li>
1571
1572 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (16)</a></li>
1573
1574 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1575
1576 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1577
1578 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (145)</a></li>
1579
1580 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (158)</a></li>
1581
1582 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
1583
1584 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (16)</a></li>
1585
1586 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (23)</a></li>
1587
1588 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1589
1590 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (337)</a></li>
1591
1592 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
1593
1594 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
1595
1596 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (29)</a></li>
1597
1598 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1599
1600 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (18)</a></li>
1601
1602 <li><a href="http://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
1603
1604 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (42)</a></li>
1605
1606 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (15)</a></li>
1607
1608 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (20)</a></li>
1609
1610 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1611
1612 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1613
1614 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1615
1616 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1617
1618 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1619
1620 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (39)</a></li>
1621
1622 <li><a href="http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (9)</a></li>
1623
1624 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (285)</a></li>
1625
1626 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (183)</a></li>
1627
1628 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (26)</a></li>
1629
1630 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1631
1632 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (62)</a></li>
1633
1634 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (97)</a></li>
1635
1636 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
1637
1638 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1639
1640 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1641
1642 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1643
1644 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (10)</a></li>
1645
1646 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1647
1648 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (5)</a></li>
1649
1650 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1651
1652 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (52)</a></li>
1653
1654 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1655
1656 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
1657
1658 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (50)</a></li>
1659
1660 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (5)</a></li>
1661
1662 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (11)</a></li>
1663
1664 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (45)</a></li>
1665
1666 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (2)</a></li>
1667
1668 <li><a href="http://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
1669
1670 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
1671
1672 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (59)</a></li>
1673
1674 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1675
1676 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (39)</a></li>
1677
1678 </ul>
1679
1680
1681 </div>
1682 <p style="text-align: right">
1683 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1684 </p>
1685
1686 </body>
1687 </html>