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