]> pere.pagekite.me Git - homepage.git/blob - blog/index.rss
Generated.
[homepage.git] / blog / index.rss
1 <?xml version="1.0" encoding="utf-8"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom="http://www.w3.org/2005/Atom">
3 <channel>
4 <title>Petter Reinholdtsen</title>
5 <description></description>
6 <link>http://people.skolelinux.org/pere/blog/</link>
7 <atom:link href="http://people.skolelinux.org/pere/blog/index.rss" rel="self" type="application/rss+xml" />
8
9 <item>
10 <title>Detect OOXML files with undefined behaviour?</title>
11 <link>http://people.skolelinux.org/pere/blog/Detect_OOXML_files_with_undefined_behaviour_.html</link>
12 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Detect_OOXML_files_with_undefined_behaviour_.html</guid>
13 <pubDate>Tue, 21 Feb 2017 00:20:00 +0100</pubDate>
14 <description>&lt;p&gt;I just noticed
15 &lt;a href=&quot;http://www.arkivrad.no/aktuelt/riksarkivarens-forskrift-pa-horing&quot;&gt;the
16 new Norwegian proposal for archiving rules in the goverment&lt;/a&gt; list
17 &lt;a href=&quot;http://www.ecma-international.org/publications/standards/Ecma-376.htm&quot;&gt;ECMA-376&lt;/a&gt;
18 / ISO/IEC 29500 (aka OOXML) as valid formats to put in long term
19 storage. Luckily such files will only be accepted based on
20 pre-approval from the National Archive. Allowing OOXML files to be
21 used for long term storage might seem like a good idea as long as we
22 forget that there are plenty of ways for a &quot;valid&quot; OOXML document to
23 have content with no defined interpretation in the standard, which
24 lead to a question and an idea.&lt;/p&gt;
25
26 &lt;p&gt;Is there any tool to detect if a OOXML document depend on such
27 undefined behaviour? It would be useful for the National Archive (and
28 anyone else interested in verifying that a document is well defined)
29 to have such tool available when considering to approve the use of
30 OOXML. I&#39;m aware of the
31 &lt;a href=&quot;https://github.com/arlm/officeotron/&quot;&gt;officeotron OOXML
32 validator&lt;/a&gt;, but do not know how complete it is nor if it will
33 report use of undefined behaviour. Are there other similar tools
34 available? Please send me an email if you know of any such tool.&lt;/p&gt;
35 </description>
36 </item>
37
38 <item>
39 <title>Ruling ignored our objections to the seizure of popcorn-time.no (#domstolkontroll)</title>
40 <link>http://people.skolelinux.org/pere/blog/Ruling_ignored_our_objections_to_the_seizure_of_popcorn_time_no___domstolkontroll_.html</link>
41 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Ruling_ignored_our_objections_to_the_seizure_of_popcorn_time_no___domstolkontroll_.html</guid>
42 <pubDate>Mon, 13 Feb 2017 21:30:00 +0100</pubDate>
43 <description>&lt;p&gt;A few days ago, we received the ruling from
44 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html&quot;&gt;my
45 day in court&lt;/a&gt;. The case in question is a challenge of the seizure
46 of the DNS domain popcorn-time.no. The ruling simply did not mention
47 most of our arguments, and seemed to take everything ØKOKRIM said at
48 face value, ignoring our demonstration and explanations. But it is
49 hard to tell for sure, as we still have not seen most of the documents
50 in the case and thus were unprepared and unable to contradict several
51 of the claims made in court by the opposition. We are considering an
52 appeal, but it is partly a question of funding, as it is costing us
53 quite a bit to pay for our lawyer. If you want to help, please
54 &lt;a href=&quot;http://www.nuug.no/dns-beslag-donasjon.shtml&quot;&gt;donate to the
55 NUUG defense fund&lt;/a&gt;.&lt;/p&gt;
56
57 &lt;p&gt;The details of the case, as far as we know it, is available in
58 Norwegian from
59 &lt;a href=&quot;https://www.nuug.no/news/tags/dns-domenebeslag/&quot;&gt;the NUUG
60 blog&lt;/a&gt;. This also include
61 &lt;a href=&quot;https://www.nuug.no/news/Avslag_etter_rettslig_h_ring_om_DNS_beslaget___vurderer_veien_videre.shtml&quot;&gt;the
62 ruling itself&lt;/a&gt;.&lt;/p&gt;
63 </description>
64 </item>
65
66 <item>
67 <title>A day in court challenging seizure of popcorn-time.no for #domstolkontroll</title>
68 <link>http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html</link>
69 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html</guid>
70 <pubDate>Fri, 3 Feb 2017 11:10:00 +0100</pubDate>
71 <description>&lt;p align=&quot;center&quot;&gt;&lt;img width=&quot;70%&quot; src=&quot;http://people.skolelinux.org/pere/blog/images/2017-02-01-popcorn-time-in-court.jpeg&quot;&gt;&lt;/p&gt;
72
73 &lt;p&gt;On Wednesday, I spent the entire day in court in Follo Tingrett
74 representing &lt;a href=&quot;https://www.nuug.no/&quot;&gt;the member association
75 NUUG&lt;/a&gt;, alongside &lt;a href=&quot;https://www.efn.no/&quot;&gt;the member
76 association EFN&lt;/a&gt; and &lt;a href=&quot;http://www.imc.no&quot;&gt;the DNS registrar
77 IMC&lt;/a&gt;, challenging the seizure of the DNS name popcorn-time.no. It
78 was interesting to sit in a court of law for the first time in my
79 life. Our team can be seen in the picture above: attorney Ola
80 Tellesbø, EFN board member Tom Fredrik Blenning, IMC CEO Morten Emil
81 Eriksen and NUUG board member Petter Reinholdtsen.&lt;/p&gt;
82
83 &lt;p&gt;&lt;a href=&quot;http://www.domstol.no/no/Enkelt-domstol/follo-tingrett/Nar-gar-rettssaken/Beramming/?cid=AAAA1701301512081262234UJFBVEZZZZZEJBAvtale&quot;&gt;The
84 case at hand&lt;/a&gt; is that the Norwegian National Authority for
85 Investigation and Prosecution of Economic and Environmental Crime (aka
86 Økokrim) decided on their own, to seize a DNS domain early last
87 year, without following
88 &lt;a href=&quot;https://www.norid.no/no/regelverk/navnepolitikk/#link12&quot;&gt;the
89 official policy of the Norwegian DNS authority&lt;/a&gt; which require a
90 court decision. The web site in question was a site covering Popcorn
91 Time. And Popcorn Time is the name of a technology with both legal
92 and illegal applications. Popcorn Time is a client combining
93 searching a Bittorrent directory available on the Internet with
94 downloading/distribute content via Bittorrent and playing the
95 downloaded content on screen. It can be used illegally if it is used
96 to distribute content against the will of the right holder, but it can
97 also be used legally to play a lot of content, for example the
98 millions of movies
99 &lt;a href=&quot;https://archive.org/details/movies&quot;&gt;available from the
100 Internet Archive&lt;/a&gt; or the collection
101 &lt;a href=&quot;http://vodo.net/films/&quot;&gt;available from Vodo&lt;/a&gt;. We created
102 &lt;a href=&quot;magnet:?xt=urn:btih:86c1802af5a667ca56d3918aecb7d3c0f7173084&amp;dn=PresentasjonFolloTingrett.mov&amp;tr=udp%3A%2F%2Fpublic.popcorn-tracker.org%3A6969%2Fannounce&quot;&gt;a
103 video demonstrating legally use of Popcorn Time&lt;/a&gt; and played it in
104 Court. It can of course be downloaded using Bittorrent.&lt;/p&gt;
105
106 &lt;p&gt;I did not quite know what to expect from a day in court. The
107 government held on to their version of the story and we held on to
108 ours, and I hope the judge is able to make sense of it all. We will
109 know in two weeks time. Unfortunately I do not have high hopes, as
110 the Government have the upper hand here with more knowledge about the
111 case, better training in handling criminal law and in general higher
112 standing in the courts than fairly unknown DNS registrar and member
113 associations. It is expensive to be right also in Norway. So far the
114 case have cost more than NOK 70 000,-. To help fund the case, NUUG
115 and EFN have asked for donations, and managed to collect around NOK 25
116 000,- so far. Given the presentation from the Government, I expect
117 the government to appeal if the case go our way. And if the case do
118 not go our way, I hope we have enough funding to appeal.&lt;/p&gt;
119
120 &lt;p&gt;From the other side came two people from Økokrim. On the benches,
121 appearing to be part of the group from the government were two people
122 from the Simonsen Vogt Wiik lawyer office, and three others I am not
123 quite sure who was. Økokrim had proposed to present two witnesses
124 from The Motion Picture Association, but this was rejected because
125 they did not speak Norwegian and it was a bit late to bring in a
126 translator, but perhaps the two from MPA were present anyway. All
127 seven appeared to know each other. Good to see the case is take
128 seriously.&lt;/p&gt;
129
130 &lt;p&gt;If you, like me, believe the courts should be involved before a DNS
131 domain is hijacked by the government, or you believe the Popcorn Time
132 technology have a lot of useful and legal applications, I suggest you
133 too &lt;a href=&quot;http://www.nuug.no/dns-beslag-donasjon.shtml&quot;&gt;donate to
134 the NUUG defense fund&lt;/a&gt;. Both Bitcoin and bank transfer are
135 available. If NUUG get more than we need for the legal action (very
136 unlikely), the rest will be spend promoting free software, open
137 standards and unix-like operating systems in Norway, so no matter what
138 happens the money will be put to good use.&lt;/p&gt;
139
140 &lt;p&gt;If you want to lean more about the case, I recommend you check out
141 &lt;a href=&quot;https://www.nuug.no/news/tags/dns-domenebeslag/&quot;&gt;the blog
142 posts from NUUG covering the case&lt;/a&gt;. They cover the legal arguments
143 on both sides.&lt;/p&gt;
144 </description>
145 </item>
146
147 <item>
148 <title>Nasjonalbiblioteket avslutter sin ulovlige bruk av Google Skjemaer</title>
149 <link>http://people.skolelinux.org/pere/blog/Nasjonalbiblioteket_avslutter_sin_ulovlige_bruk_av_Google_Skjemaer.html</link>
150 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Nasjonalbiblioteket_avslutter_sin_ulovlige_bruk_av_Google_Skjemaer.html</guid>
151 <pubDate>Thu, 12 Jan 2017 09:40:00 +0100</pubDate>
152 <description>&lt;p&gt;I dag fikk jeg en skikkelig gladmelding. Bakgrunnen er at før jul
153 arrangerte Nasjonalbiblioteket
154 &lt;a href=&quot;http://www.nb.no/Bibliotekutvikling/Kunnskapsorganisering/Nasjonalt-verksregister/Seminar-om-verksregister&quot;&gt;et
155 seminar om sitt knakende gode tiltak «verksregister»&lt;/a&gt;. Eneste
156 måten å melde seg på dette seminaret var å sende personopplysninger
157 til Google via Google Skjemaer. Dette syntes jeg var tvilsom praksis,
158 da det bør være mulig å delta på seminarer arrangert av det offentlige
159 uten å måtte dele sine interesser, posisjon og andre
160 personopplysninger med Google. Jeg ba derfor om innsyn via
161 &lt;a href=&quot;https://www.mimesbronn.no/&quot;&gt;Mimes brønn&lt;/a&gt; i
162 &lt;a href=&quot;https://www.mimesbronn.no/request/personopplysninger_til_google_sk&quot;&gt;avtaler
163 og vurderinger Nasjonalbiblioteket hadde rundt dette&lt;/a&gt;.
164 Personopplysningsloven legger klare rammer for hva som må være på
165 plass før en kan be tredjeparter, spesielt i utlandet, behandle
166 personopplysninger på sine vegne, så det burde eksistere grundig
167 dokumentasjon før noe slikt kan bli lovlig. To jurister hos
168 Nasjonalbiblioteket mente først dette var helt i orden, og at Googles
169 standardavtale kunne brukes som databehandlingsavtale. Det syntes jeg
170 var merkelig, men har ikke hatt kapasitet til å følge opp saken før
171 for to dager siden.&lt;/p&gt;
172
173 &lt;p&gt;Gladnyheten i dag, som kom etter at jeg tipset Nasjonalbiblioteket
174 om at Datatilsynet underkjente Googles standardavtaler som
175 databehandleravtaler i 2011, er at Nasjonalbiblioteket har bestemt seg
176 for å avslutte bruken av Googles Skjemaer/Apps og gå i dialog med DIFI
177 for å finne bedre måter å håndtere påmeldinger i tråd med
178 personopplysningsloven. Det er fantastisk å se at av og til hjelper
179 det å spørre hva i alle dager det offentlige holder på med.&lt;/p&gt;
180 </description>
181 </item>
182
183 <item>
184 <title>Bryter NAV sin egen personvernerklæring?</title>
185 <link>http://people.skolelinux.org/pere/blog/Bryter_NAV_sin_egen_personvernerkl_ring_.html</link>
186 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Bryter_NAV_sin_egen_personvernerkl_ring_.html</guid>
187 <pubDate>Wed, 11 Jan 2017 06:50:00 +0100</pubDate>
188 <description>&lt;p&gt;Jeg leste med interesse en nyhetssak hos
189 &lt;a href=&quot;http://www.digi.no/artikler/nav-avslorer-trygdemisbruk-ved-a-spore-ip-adresser/367394&quot;&gt;digi.no&lt;/a&gt;
190 og
191 &lt;a href=&quot;https://www.nrk.no/buskerud/trygdesvindlere-avslores-av-utenlandske-ip-adresser-1.13313461&quot;&gt;NRK&lt;/a&gt;
192 om at det ikke bare er meg, men at også NAV bedriver geolokalisering
193 av IP-adresser, og at det gjøres analyse av IP-adressene til de som
194 sendes inn meldekort for å se om meldekortet sendes inn fra
195 utenlandske IP-adresser. Politiadvokat i Drammen, Hans Lyder Haare,
196 er sitert i NRK på at «De to er jo blant annet avslørt av
197 IP-adresser. At man ser at meldekortet kommer fra utlandet.»&lt;/p&gt;
198
199 &lt;p&gt;Jeg synes det er fint at det blir bedre kjent at IP-adresser
200 knyttes til enkeltpersoner og at innsamlet informasjon brukes til å
201 stedsbestemme personer også av aktører her i Norge. Jeg ser det som
202 nok et argument for å bruke
203 &lt;a href=&quot;https://www.torproject.org/&quot;&gt;Tor&lt;/a&gt; så mye som mulig for å
204 gjøre gjøre IP-lokalisering vanskeligere, slik at en kan beskytte sin
205 privatsfære og unngå å dele sin fysiske plassering med
206 uvedkommede.&lt;/p&gt;
207
208 &lt;P&gt;Men det er en ting som bekymrer meg rundt denne nyheten. Jeg ble
209 tipset (takk #nuug) om
210 &lt;a href=&quot;https://www.nav.no/no/NAV+og+samfunn/Kontakt+NAV/Teknisk+brukerstotte/Snarveier/personvernerkl%C3%A6ring-for-arbeids-og-velferdsetaten&quot;&gt;NAVs
211 personvernerklæring&lt;/a&gt;, som under punktet «Personvern og statistikk»
212 lyder:&lt;/p&gt;
213
214 &lt;p&gt;&lt;blockquote&gt;
215
216 &lt;p&gt;«Når du besøker nav.no, etterlater du deg elektroniske spor. Sporene
217 dannes fordi din nettleser automatisk sender en rekke opplysninger til
218 NAVs tjener (server-maskin) hver gang du ber om å få vist en side. Det
219 er eksempelvis opplysninger om hvilken nettleser og -versjon du
220 bruker, og din internettadresse (ip-adresse). For hver side som vises,
221 lagres følgende opplysninger:&lt;/p&gt;
222
223 &lt;ul&gt;
224 &lt;li&gt;hvilken side du ser på&lt;/li&gt;
225 &lt;li&gt;dato og tid&lt;/li&gt;
226 &lt;li&gt;hvilken nettleser du bruker&lt;/li&gt;
227 &lt;li&gt;din ip-adresse&lt;/li&gt;
228 &lt;/ul&gt;
229
230 &lt;p&gt;Ingen av opplysningene vil bli brukt til å identifisere
231 enkeltpersoner. NAV bruker disse opplysningene til å generere en
232 samlet statistikk som blant annet viser hvilke sider som er mest
233 populære. Statistikken er et redskap til å forbedre våre
234 tjenester.»&lt;/p&gt;
235
236 &lt;/blockquote&gt;&lt;/p&gt;
237
238 &lt;p&gt;Jeg klarer ikke helt å se hvordan analyse av de besøkendes
239 IP-adresser for å se hvem som sender inn meldekort via web fra en
240 IP-adresse i utlandet kan gjøres uten å komme i strid med påstanden om
241 at «ingen av opplysningene vil bli brukt til å identifisere
242 enkeltpersoner». Det virker dermed for meg som at NAV bryter sine
243 egen personvernerklæring, hvilket
244 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Er_lover_brutt_n_r_personvernpolicy_ikke_stemmer_med_praksis_.html&quot;&gt;Datatilsynet
245 fortalte meg i starten av desember antagelig er brudd på
246 personopplysningsloven&lt;/a&gt;.
247
248 &lt;p&gt;I tillegg er personvernerklæringen ganske misvisende i og med at
249 NAVs nettsider ikke bare forsyner NAV med personopplysninger, men i
250 tillegg ber brukernes nettleser kontakte fem andre nettjenere
251 (script.hotjar.com, static.hotjar.com, vars.hotjar.com,
252 www.google-analytics.com og www.googletagmanager.com), slik at
253 personopplysninger blir gjort tilgjengelig for selskapene Hotjar og
254 Google , og alle som kan lytte på trafikken på veien (som FRA, GCHQ og
255 NSA). Jeg klarer heller ikke se hvordan slikt spredning av
256 personopplysninger kan være i tråd med kravene i
257 personopplysningloven, eller i tråd med NAVs personvernerklæring.&lt;/p&gt;
258
259 &lt;p&gt;Kanskje NAV bør ta en nøye titt på sin personvernerklæring? Eller
260 kanskje Datatilsynet bør gjøre det?&lt;/p&gt;
261 </description>
262 </item>
263
264 <item>
265 <title>Where did that package go? &amp;mdash; geolocated IP traceroute</title>
266 <link>http://people.skolelinux.org/pere/blog/Where_did_that_package_go___mdash__geolocated_IP_traceroute.html</link>
267 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Where_did_that_package_go___mdash__geolocated_IP_traceroute.html</guid>
268 <pubDate>Mon, 9 Jan 2017 12:20:00 +0100</pubDate>
269 <description>&lt;p&gt;Did you ever wonder where the web trafic really flow to reach the
270 web servers, and who own the network equipment it is flowing through?
271 It is possible to get a glimpse of this from using traceroute, but it
272 is hard to find all the details. Many years ago, I wrote a system to
273 map the Norwegian Internet (trying to figure out if our plans for a
274 network game service would get low enough latency, and who we needed
275 to talk to about setting up game servers close to the users. Back
276 then I used traceroute output from many locations (I asked my friends
277 to run a script and send me their traceroute output) to create the
278 graph and the map. The output from traceroute typically look like
279 this:
280
281 &lt;p&gt;&lt;pre&gt;
282 traceroute to www.stortinget.no (85.88.67.10), 30 hops max, 60 byte packets
283 1 uio-gw10.uio.no (129.240.202.1) 0.447 ms 0.486 ms 0.621 ms
284 2 uio-gw8.uio.no (129.240.24.229) 0.467 ms 0.578 ms 0.675 ms
285 3 oslo-gw1.uninett.no (128.39.65.17) 0.385 ms 0.373 ms 0.358 ms
286 4 te3-1-2.br1.fn3.as2116.net (193.156.90.3) 1.174 ms 1.172 ms 1.153 ms
287 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
288 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
289 7 89.191.10.146 (89.191.10.146) 0.931 ms 0.917 ms 0.955 ms
290 8 * * *
291 9 * * *
292 [...]
293 &lt;/pre&gt;&lt;/p&gt;
294
295 &lt;p&gt;This show the DNS names and IP addresses of (at least some of the)
296 network equipment involved in getting the data traffic from me to the
297 www.stortinget.no server, and how long it took in milliseconds for a
298 package to reach the equipment and return to me. Three packages are
299 sent, and some times the packages do not follow the same path. This
300 is shown for hop 5, where three different IP addresses replied to the
301 traceroute request.&lt;/p&gt;
302
303 &lt;p&gt;There are many ways to measure trace routes. Other good traceroute
304 implementations I use are traceroute (using ICMP packages) mtr (can do
305 both ICMP, UDP and TCP) and scapy (python library with ICMP, UDP, TCP
306 traceroute and a lot of other capabilities). All of them are easily
307 available in &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt;.&lt;/p&gt;
308
309 &lt;p&gt;This time around, I wanted to know the geographic location of
310 different route points, to visualize how visiting a web page spread
311 information about the visit to a lot of servers around the globe. The
312 background is that a web site today often will ask the browser to get
313 from many servers the parts (for example HTML, JSON, fonts,
314 JavaScript, CSS, video) required to display the content. This will
315 leak information about the visit to those controlling these servers
316 and anyone able to peek at the data traffic passing by (like your ISP,
317 the ISPs backbone provider, FRA, GCHQ, NSA and others).&lt;/p&gt;
318
319 &lt;p&gt;Lets pick an example, the Norwegian parliament web site
320 www.stortinget.no. It is read daily by all members of parliament and
321 their staff, as well as political journalists, activits and many other
322 citizens of Norway. A visit to the www.stortinget.no web site will
323 ask your browser to contact 8 other servers: ajax.googleapis.com,
324 insights.hotjar.com, script.hotjar.com, static.hotjar.com,
325 stats.g.doubleclick.net, www.google-analytics.com,
326 www.googletagmanager.com and www.netigate.se. I extracted this by
327 asking &lt;a href=&quot;http://phantomjs.org/&quot;&gt;PhantomJS&lt;/a&gt; to visit the
328 Stortinget web page and tell me all the URLs PhantomJS downloaded to
329 render the page (in HAR format using
330 &lt;a href=&quot;https://github.com/ariya/phantomjs/blob/master/examples/netsniff.js&quot;&gt;their
331 netsniff example&lt;/a&gt;. I am very grateful to Gorm for showing me how
332 to do this). My goal is to visualize network traces to all IP
333 addresses behind these DNS names, do show where visitors personal
334 information is spread when visiting the page.&lt;/p&gt;
335
336 &lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;www.stortinget.no-geoip.kml&quot;&gt;&lt;img
337 src=&quot;http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geoip-small.png&quot; alt=&quot;map of combined traces for URLs used by www.stortinget.no using GeoIP&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
338
339 &lt;p&gt;When I had a look around for options, I could not find any good
340 free software tools to do this, and decided I needed my own traceroute
341 wrapper outputting KML based on locations looked up using GeoIP. KML
342 is easy to work with and easy to generate, and understood by several
343 of the GIS tools I have available. I got good help from by NUUG
344 colleague Anders Einar with this, and the result can be seen in
345 &lt;a href=&quot;https://github.com/petterreinholdtsen/kmltraceroute&quot;&gt;my
346 kmltraceroute git repository&lt;/a&gt;. Unfortunately, the quality of the
347 free GeoIP databases I could find (and the for-pay databases my
348 friends had access to) is not up to the task. The IP addresses of
349 central Internet infrastructure would typically be placed near the
350 controlling companies main office, and not where the router is really
351 located, as you can see from &lt;a href=&quot;www.stortinget.no-geoip.kml&quot;&gt;the
352 KML file I created&lt;/a&gt; using the GeoLite City dataset from MaxMind.
353
354 &lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg&quot;&gt;&lt;img
355 src=&quot;http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy-small.png&quot; alt=&quot;scapy traceroute graph for URLs used by www.stortinget.no&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
356
357 &lt;p&gt;I also had a look at the visual traceroute graph created by
358 &lt;a href=&quot;http://www.secdev.org/projects/scapy/&quot;&gt;the scrapy project&lt;/a&gt;,
359 showing IP network ownership (aka AS owner) for the IP address in
360 question.
361 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg&quot;&gt;The
362 graph display a lot of useful information about the traceroute in SVG
363 format&lt;/a&gt;, and give a good indication on who control the network
364 equipment involved, but it do not include geolocation. This graph
365 make it possible to see the information is made available at least for
366 UNINETT, Catchcom, Stortinget, Nordunet, Google, Amazon, Telia, Level
367 3 Communications and NetDNA.&lt;/p&gt;
368
369 &lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;https://geotraceroute.com/index.php?node=4&amp;host=www.stortinget.no&quot;&gt;&lt;img
370 src=&quot;http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-small.png&quot; alt=&quot;example geotraceroute view for www.stortinget.no&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
371
372 &lt;p&gt;In the process, I came across the
373 &lt;a href=&quot;https://geotraceroute.com/&quot;&gt;web service GeoTraceroute&lt;/a&gt; by
374 Salim Gasmi. Its methology of combining guesses based on DNS names,
375 various location databases and finally use latecy times to rule out
376 candidate locations seemed to do a very good job of guessing correct
377 geolocation. But it could only do one trace at the time, did not have
378 a sensor in Norway and did not make the geolocations easily available
379 for postprocessing. So I contacted the developer and asked if he
380 would be willing to share the code (he refused until he had time to
381 clean it up), but he was interested in providing the geolocations in a
382 machine readable format, and willing to set up a sensor in Norway. So
383 since yesterday, it is possible to run traces from Norway in this
384 service thanks to a sensor node set up by
385 &lt;a href=&quot;https://www.nuug.no/&quot;&gt;the NUUG assosiation&lt;/a&gt;, and get the
386 trace in KML format for further processing.&lt;/p&gt;
387
388 &lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.kml&quot;&gt;&lt;img
389 src=&quot;http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.png&quot; alt=&quot;map of combined traces for URLs used by www.stortinget.no using geotraceroute&quot;/&gt;&lt;/a&gt;&lt;/p&gt;
390
391 &lt;p&gt;Here we can see a lot of trafic passes Sweden on its way to
392 Denmark, Germany, Holland and Ireland. Plenty of places where the
393 Snowden confirmations verified the traffic is read by various actors
394 without your best interest as their top priority.&lt;/p&gt;
395
396 &lt;p&gt;Combining KML files is trivial using a text editor, so I could loop
397 over all the hosts behind the urls imported by www.stortinget.no and
398 ask for the KML file from GeoTraceroute, and create a combined KML
399 file with all the traces (unfortunately only one of the IP addresses
400 behind the DNS name is traced this time. To get them all, one would
401 have to request traces using IP number instead of DNS names from
402 GeoTraceroute). That might be the next step in this project.&lt;/p&gt;
403
404 &lt;p&gt;Armed with these tools, I find it a lot easier to figure out where
405 the IP traffic moves and who control the boxes involved in moving it.
406 And every time the link crosses for example the Swedish border, we can
407 be sure Swedish Signal Intelligence (FRA) is listening, as GCHQ do in
408 Britain and NSA in USA and cables around the globe. (Hm, what should
409 we tell them? :) Keep that in mind if you ever send anything
410 unencrypted over the Internet.&lt;/p&gt;
411
412 &lt;p&gt;PS: KML files are drawn using
413 &lt;a href=&quot;http://ivanrublev.me/kml/&quot;&gt;the KML viewer from Ivan
414 Rublev&lt;a/&gt;, as it was less cluttered than the local Linux application
415 Marble. There are heaps of other options too.&lt;/p&gt;
416
417 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
418 activities, please send Bitcoin donations to my address
419 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&amp;label=PetterReinholdtsenBlog&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
420 </description>
421 </item>
422
423 <item>
424 <title>Introducing ical-archiver to split out old iCalendar entries</title>
425 <link>http://people.skolelinux.org/pere/blog/Introducing_ical_archiver_to_split_out_old_iCalendar_entries.html</link>
426 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Introducing_ical_archiver_to_split_out_old_iCalendar_entries.html</guid>
427 <pubDate>Wed, 4 Jan 2017 12:20:00 +0100</pubDate>
428 <description>&lt;p&gt;Do you have a large &lt;a href=&quot;https://icalendar.org/&quot;&gt;iCalendar&lt;/a&gt;
429 file with lots of old entries, and would like to archive them to save
430 space and resources? At least those of us using KOrganizer know that
431 turning on and off an event set become slower and slower the more
432 entries are in the set. While working on migrating our calendars to a
433 &lt;a href=&quot;http://radicale.org/&quot;&gt;Radicale CalDAV server&lt;/a&gt; on our
434 &lt;a href=&quot;https://freedomboxfoundation.org/&quot;&gt;Freedombox server&lt;/a/&gt;, my
435 loved one wondered if I could find a way to split up the calendar file
436 she had in KOrganizer, and I set out to write a tool. I spent a few
437 days writing and polishing the system, and it is now ready for general
438 consumption. The
439 &lt;a href=&quot;https://github.com/petterreinholdtsen/ical-archiver&quot;&gt;code for
440 ical-archiver&lt;/a&gt; is publicly available from a git repository on
441 github. The system is written in Python and depend on
442 &lt;a href=&quot;http://eventable.github.io/vobject/&quot;&gt;the vobject Python
443 module&lt;/a&gt;.&lt;/p&gt;
444
445 &lt;p&gt;To use it, locate the iCalendar file you want to operate on and
446 give it as an argument to the ical-archiver script. This will
447 generate a set of new files, one file per component type per year for
448 all components expiring more than two years in the past. The vevent,
449 vtodo and vjournal entries are handled by the script. The remaining
450 entries are stored in a &#39;remaining&#39; file.&lt;/p&gt;
451
452 &lt;p&gt;This is what a test run can look like:
453
454 &lt;p&gt;&lt;pre&gt;
455 % ical-archiver t/2004-2016.ics
456 Found 3612 vevents
457 Found 6 vtodos
458 Found 2 vjournals
459 Writing t/2004-2016.ics-subset-vevent-2004.ics
460 Writing t/2004-2016.ics-subset-vevent-2005.ics
461 Writing t/2004-2016.ics-subset-vevent-2006.ics
462 Writing t/2004-2016.ics-subset-vevent-2007.ics
463 Writing t/2004-2016.ics-subset-vevent-2008.ics
464 Writing t/2004-2016.ics-subset-vevent-2009.ics
465 Writing t/2004-2016.ics-subset-vevent-2010.ics
466 Writing t/2004-2016.ics-subset-vevent-2011.ics
467 Writing t/2004-2016.ics-subset-vevent-2012.ics
468 Writing t/2004-2016.ics-subset-vevent-2013.ics
469 Writing t/2004-2016.ics-subset-vevent-2014.ics
470 Writing t/2004-2016.ics-subset-vjournal-2007.ics
471 Writing t/2004-2016.ics-subset-vjournal-2011.ics
472 Writing t/2004-2016.ics-subset-vtodo-2012.ics
473 Writing t/2004-2016.ics-remaining.ics
474 %
475 &lt;/pre&gt;&lt;/p&gt;
476
477 &lt;p&gt;As you can see, the original file is untouched and new files are
478 written with names derived from the original file. If you are happy
479 with their content, the *-remaining.ics file can replace the original
480 the the others can be archived or imported as historical calendar
481 collections.&lt;/p&gt;
482
483 &lt;p&gt;The script should probably be improved a bit. The error handling
484 when discovering broken entries is not good, and I am not sure yet if
485 it make sense to split different entry types into separate files or
486 not. The program is thus likely to change. If you find it
487 interesting, please get in touch. :)&lt;/p&gt;
488
489 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
490 activities, please send Bitcoin donations to my address
491 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&amp;label=PetterReinholdtsenBlog&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
492 </description>
493 </item>
494
495 <item>
496 <title>Appstream just learned how to map hardware to packages too!</title>
497 <link>http://people.skolelinux.org/pere/blog/Appstream_just_learned_how_to_map_hardware_to_packages_too_.html</link>
498 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Appstream_just_learned_how_to_map_hardware_to_packages_too_.html</guid>
499 <pubDate>Fri, 23 Dec 2016 10:30:00 +0100</pubDate>
500 <description>&lt;p&gt;I received a very nice Christmas present today. As my regular
501 readers probably know, I have been working on the
502 &lt;a href=&quot;http://packages.qa.debian.org/isenkram&quot;&gt;the Isenkram
503 system&lt;/a&gt; for many years. The goal of the Isenkram system is to make
504 it easier for users to figure out what to install to get a given piece
505 of hardware to work in Debian, and a key part of this system is a way
506 to map hardware to packages. Isenkram have its own mapping database,
507 and also uses data provided by each package using the AppStream
508 metadata format. And today,
509 &lt;a href=&quot;https://tracker.debian.org/pkg/appstream&quot;&gt;AppStream&lt;/a&gt; in
510 Debian learned to look up hardware the same way Isenkram is doing it,
511 ie using fnmatch():&lt;/p&gt;
512
513 &lt;p&gt;&lt;pre&gt;
514 % appstreamcli what-provides modalias \
515 usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
516 Identifier: pymissile [generic]
517 Name: pymissile
518 Summary: Control original Striker USB Missile Launcher
519 Package: pymissile
520 % appstreamcli what-provides modalias usb:v0694p0002d0000
521 Identifier: libnxt [generic]
522 Name: libnxt
523 Summary: utility library for talking to the LEGO Mindstorms NXT brick
524 Package: libnxt
525 ---
526 Identifier: t2n [generic]
527 Name: t2n
528 Summary: Simple command-line tool for Lego NXT
529 Package: t2n
530 ---
531 Identifier: python-nxt [generic]
532 Name: python-nxt
533 Summary: Python driver/interface/wrapper for the Lego Mindstorms NXT robot
534 Package: python-nxt
535 ---
536 Identifier: nbc [generic]
537 Name: nbc
538 Summary: C compiler for LEGO Mindstorms NXT bricks
539 Package: nbc
540 %
541 &lt;/pre&gt;&lt;/p&gt;
542
543 &lt;p&gt;A similar query can be done using the combined AppStream and
544 Isenkram databases using the isenkram-lookup tool:&lt;/p&gt;
545
546 &lt;p&gt;&lt;pre&gt;
547 % isenkram-lookup usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
548 pymissile
549 % isenkram-lookup usb:v0694p0002d0000
550 libnxt
551 nbc
552 python-nxt
553 t2n
554 %
555 &lt;/pre&gt;&lt;/p&gt;
556
557 &lt;p&gt;You can find modalias values relevant for your machine using
558 &lt;tt&gt;cat $(find /sys/devices/ -name modalias)&lt;/tt&gt;.
559
560 &lt;p&gt;If you want to make this system a success and help Debian users
561 make the most of the hardware they have, please
562 help&lt;a href=&quot;https://wiki.debian.org/AppStream/Guidelines&quot;&gt;add
563 AppStream metadata for your package following the guidelines&lt;/a&gt;
564 documented in the wiki. So far only 11 packages provide such
565 information, among the several hundred hardware specific packages in
566 Debian. The Isenkram database on the other hand contain 101 packages,
567 mostly related to USB dongles. Most of the packages with hardware
568 mapping in AppStream are LEGO Mindstorms related, because I have, as
569 part of my involvement in
570 &lt;a href=&quot;https://wiki.debian.org/LegoDesigners&quot;&gt;the Debian LEGO
571 team&lt;/a&gt; given priority to making sure LEGO users get proposed the
572 complete set of packages in Debian for that particular hardware. The
573 team also got a nice Christmas present today. The
574 &lt;a href=&quot;https://tracker.debian.org/pkg/nxt-firmware&quot;&gt;nxt-firmware
575 package&lt;/a&gt; made it into Debian. With this package in place, it is
576 now possible to use the LEGO Mindstorms NXT unit with only free
577 software, as the nxt-firmware package contain the source and firmware
578 binaries for the NXT brick.&lt;/p&gt;
579
580 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
581 activities, please send Bitcoin donations to my address
582 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&amp;label=PetterReinholdtsenBlog&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
583 </description>
584 </item>
585
586 <item>
587 <title>Isenkram updated with a lot more hardware-package mappings</title>
588 <link>http://people.skolelinux.org/pere/blog/Isenkram_updated_with_a_lot_more_hardware_package_mappings.html</link>
589 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Isenkram_updated_with_a_lot_more_hardware_package_mappings.html</guid>
590 <pubDate>Tue, 20 Dec 2016 11:55:00 +0100</pubDate>
591 <description>&lt;p&gt;&lt;a href=&quot;http://packages.qa.debian.org/isenkram&quot;&gt;The Isenkram
592 system&lt;/a&gt; I wrote two years ago to make it easier in Debian to find
593 and install packages to get your hardware dongles to work, is still
594 going strong. It is a system to look up the hardware present on or
595 connected to the current system, and map the hardware to Debian
596 packages. It can either be done using the tools in isenkram-cli or
597 using the user space daemon in the isenkram package. The latter will
598 notify you, when inserting new hardware, about what packages to
599 install to get the dongle working. It will even provide a button to
600 click on to ask packagekit to install the packages.&lt;/p&gt;
601
602 &lt;p&gt;Here is an command line example from my Thinkpad laptop:&lt;/p&gt;
603
604 &lt;p&gt;&lt;pre&gt;
605 % isenkram-lookup
606 bluez
607 cheese
608 ethtool
609 fprintd
610 fprintd-demo
611 gkrellm-thinkbat
612 hdapsd
613 libpam-fprintd
614 pidgin-blinklight
615 thinkfan
616 tlp
617 tp-smapi-dkms
618 tp-smapi-source
619 tpb
620 %
621 &lt;/pre&gt;&lt;/p&gt;
622
623 &lt;p&gt;It can also list the firware package providing firmware requested
624 by the load kernel modules, which in my case is an empty list because
625 I have all the firmware my machine need:
626
627 &lt;p&gt;&lt;pre&gt;
628 % /usr/sbin/isenkram-autoinstall-firmware -l
629 info: did not find any firmware files requested by loaded kernel modules. exiting
630 %
631 &lt;/pre&gt;&lt;/p&gt;
632
633 &lt;p&gt;The last few days I had a look at several of the around 250
634 packages in Debian with udev rules. These seem like good candidates
635 to install when a given hardware dongle is inserted, and I found
636 several that should be proposed by isenkram. I have not had time to
637 check all of them, but am happy to report that now there are 97
638 packages packages mapped to hardware by Isenkram. 11 of these
639 packages provide hardware mapping using AppStream, while the rest are
640 listed in the modaliases file provided in isenkram.&lt;/p&gt;
641
642 &lt;p&gt;These are the packages with hardware mappings at the moment. The
643 &lt;strong&gt;marked packages&lt;/strong&gt; are also announcing their hardware
644 support using AppStream, for everyone to use:&lt;/p&gt;
645
646 &lt;p&gt;air-quality-sensor, alsa-firmware-loaders, argyll,
647 &lt;strong&gt;array-info&lt;/strong&gt;, avarice, avrdude, b43-fwcutter,
648 bit-babbler, bluez, bluez-firmware, &lt;strong&gt;brltty&lt;/strong&gt;,
649 &lt;strong&gt;broadcom-sta-dkms&lt;/strong&gt;, calibre, cgminer, cheese, colord,
650 &lt;strong&gt;colorhug-client&lt;/strong&gt;, dahdi-firmware-nonfree, dahdi-linux,
651 dfu-util, dolphin-emu, ekeyd, ethtool, firmware-ipw2x00, fprintd,
652 fprintd-demo, &lt;strong&gt;galileo&lt;/strong&gt;, gkrellm-thinkbat, gphoto2,
653 gpsbabel, gpsbabel-gui, gpsman, gpstrans, gqrx-sdr, gr-fcdproplus,
654 gr-osmosdr, gtkpod, hackrf, hdapsd, hdmi2usb-udev, hpijs-ppds, hplip,
655 ipw3945-source, ipw3945d, kde-config-tablet, kinect-audio-setup,
656 &lt;strong&gt;libnxt&lt;/strong&gt;, libpam-fprintd, &lt;strong&gt;lomoco&lt;/strong&gt;,
657 madwimax, minidisc-utils, mkgmap, msi-keyboard, mtkbabel,
658 &lt;strong&gt;nbc&lt;/strong&gt;, &lt;strong&gt;nqc&lt;/strong&gt;, nut-hal-drivers, ola,
659 open-vm-toolbox, open-vm-tools, openambit, pcgminer, pcmciautils,
660 pcscd, pidgin-blinklight, printer-driver-splix,
661 &lt;strong&gt;pymissile&lt;/strong&gt;, python-nxt, qlandkartegt,
662 qlandkartegt-garmin, rosegarden, rt2x00-source, sispmctl,
663 soapysdr-module-hackrf, solaar, squeak-plugins-scratch, sunxi-tools,
664 &lt;strong&gt;t2n&lt;/strong&gt;, thinkfan, thinkfinger-tools, tlp, tp-smapi-dkms,
665 tp-smapi-source, tpb, tucnak, uhd-host, usbmuxd, viking,
666 virtualbox-ose-guest-x11, w1retap, xawtv, xserver-xorg-input-vmmouse,
667 xserver-xorg-input-wacom, xserver-xorg-video-qxl,
668 xserver-xorg-video-vmware, yubikey-personalization and
669 zd1211-firmware&lt;/p&gt;
670
671 &lt;p&gt;If you know of other packages, please let me know with a wishlist
672 bug report against the isenkram-cli package, and ask the package
673 maintainer to
674 &lt;a href=&quot;https://wiki.debian.org/AppStream/Guidelines&quot;&gt;add AppStream
675 metadata according to the guidelines&lt;/a&gt; to provide the information
676 for everyone. In time, I hope to get rid of the isenkram specific
677 hardware mapping and depend exclusively on AppStream.&lt;/p&gt;
678
679 &lt;p&gt;Note, the AppStream metadata for broadcom-sta-dkms is matching too
680 much hardware, and suggest that the package with with any ethernet
681 card. See &lt;a href=&quot;http://bugs.debian.org/838735&quot;&gt;bug #838735&lt;/a&gt; for
682 the details. I hope the maintainer find time to address it soon. In
683 the mean time I provide an override in isenkram.&lt;/p&gt;
684 </description>
685 </item>
686
687 <item>
688 <title>Oolite, a life in space as vagabond and mercenary - nice free software</title>
689 <link>http://people.skolelinux.org/pere/blog/Oolite__a_life_in_space_as_vagabond_and_mercenary___nice_free_software.html</link>
690 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Oolite__a_life_in_space_as_vagabond_and_mercenary___nice_free_software.html</guid>
691 <pubDate>Sun, 11 Dec 2016 11:40:00 +0100</pubDate>
692 <description>&lt;p align=&quot;center&quot;&gt;&lt;img width=&quot;70%&quot; src=&quot;http://people.skolelinux.org/pere/blog/images/2016-12-11-nice-oolite.png&quot;/&gt;&lt;/p&gt;
693
694 &lt;p&gt;In my early years, I played
695 &lt;a href=&quot;http://wiki.alioth.net/index.php/Classic_Elite&quot;&gt;the epic game
696 Elite&lt;/a&gt; on my PC. I spent many months trading and fighting in
697 space, and reached the &#39;elite&#39; fighting status before I moved on. The
698 original Elite game was available on Commodore 64 and the IBM PC
699 edition I played had a 64 KB executable. I am still impressed today
700 that the authors managed to squeeze both a 3D engine and details about
701 more than 2000 planet systems across 7 galaxies into a binary so
702 small.&lt;/p&gt;
703
704 &lt;p&gt;I have known about &lt;a href=&quot;http://www.oolite.org/&quot;&gt;the free
705 software game Oolite inspired by Elite&lt;/a&gt; for a while, but did not
706 really have time to test it properly until a few days ago. It was
707 great to discover that my old knowledge about trading routes were
708 still valid. But my fighting and flying abilities were gone, so I had
709 to retrain to be able to dock on a space station. And I am still not
710 able to make much resistance when I am attacked by pirates, so I
711 bougth and mounted the most powerful laser in the rear to be able to
712 put up at least some resistance while fleeing for my life. :)&lt;/p&gt;
713
714 &lt;p&gt;When playing Elite in the late eighties, I had to discover
715 everything on my own, and I had long lists of prices seen on different
716 planets to be able to decide where to trade what. This time I had the
717 advantages of the
718 &lt;a href=&quot;http://wiki.alioth.net/index.php/Main_Page&quot;&gt;Elite wiki&lt;/a&gt;,
719 where information about each planet is easily available with common
720 price ranges and suggested trading routes. This improved my ability
721 to earn money and I have been able to earn enough to buy a lot of
722 useful equipent in a few days. I believe I originally played for
723 months before I could get a docking computer, while now I could get it
724 after less then a week.&lt;/p&gt;
725
726 &lt;p&gt;If you like science fiction and dreamed of a life as a vagabond in
727 space, you should try out Oolite. It is available for Linux, MacOSX
728 and Windows, and is included in Debian and derivatives since 2011.&lt;/p&gt;
729
730 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
731 activities, please send Bitcoin donations to my address
732 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&amp;label=PetterReinholdtsenBlog&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
733 </description>
734 </item>
735
736 </channel>
737 </rss>