]> 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>Making battery measurements a little easier in Debian</title>
11 <link>http://people.skolelinux.org/pere/blog/Making_battery_measurements_a_little_easier_in_Debian.html</link>
12 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Making_battery_measurements_a_little_easier_in_Debian.html</guid>
13 <pubDate>Tue, 15 Mar 2016 15:00:00 +0100</pubDate>
14 <description>&lt;p&gt;Back in September, I blogged about
15 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/The_life_and_death_of_a_laptop_battery.html&quot;&gt;the
16 system I wrote to collect statistics about my laptop battery&lt;/a&gt;, and
17 how it showed the decay and death of this battery (now replaced). I
18 created a simple deb package to handle the collection and graphing,
19 but did not want to upload it to Debian as there were already
20 &lt;a href=&quot;https://tracker.debian.org/pkg/battery-stats&quot;&gt;a battery-stats
21 package in Debian&lt;/a&gt; that should do the same thing, and I did not see
22 a point of uploading a competing package when battery-stats could be
23 fixed instead. I reported a few bugs about its non-function, and
24 hoped someone would step in and fix it. But no-one did.&lt;/p&gt;
25
26 &lt;p&gt;I got tired of waiting a few days ago, and took matters in my own
27 hands. The end result is that I am now the new upstream developer of
28 battery stats (&lt;a href=&quot;https://github.com/petterreinholdtsen/battery-stats&quot;&gt;available from github&lt;/a&gt;) and part of the team maintaining
29 battery-stats in Debian, and the package in Debian unstable is finally
30 able to collect battery status using the /sys/class/power_supply/
31 information provided by the Linux kernel. If you install the
32 battery-stats package from unstable now, you will be able to get a
33 graph of the current battery fill level, to get some idea about the
34 status of the battery. The source package build and work just fine in
35 Debian testing and stable (and probably oldstable too, but I have not
36 tested). The default graph you get for that system look like this:&lt;/p&gt;
37
38 &lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;http://people.skolelinux.org/pere/blog/images/2016-03-15-battery-stats-graph-example.png&quot; width=&quot;70%&quot; align=&quot;center&quot;&gt;&lt;/p&gt;
39
40 &lt;p&gt;My plans for the future is to merge my old scripts into the
41 battery-stats package, as my old scripts collected a lot more details
42 about the battery. The scripts are merged into the upstream
43 battery-stats git repository already, but I am not convinced they work
44 yet, as I changed a lot of paths along the way. Will have to test a
45 bit more before I make a new release.&lt;/p&gt;
46
47 &lt;p&gt;I will also consider changing the file format slightly, as I
48 suspect the way I combine several values into one field might make it
49 impossible to know the type of the value when using it for processing
50 and graphing.&lt;/p&gt;
51
52 &lt;p&gt;If you would like I would like to keep an close eye on your laptop
53 battery, check out the battery-stats package in
54 &lt;a href=&quot;https://tracker.debian.org/pkg/battery-stats&quot;&gt;Debian&lt;/a&gt; and
55 on
56 &lt;a href=&quot;https://github.com/petterreinholdtsen/battery-stats&quot;&gt;github&lt;/a&gt;.
57 I would love some help to improve the system further.&lt;/p&gt;
58 </description>
59 </item>
60
61 <item>
62 <title>Creating, updating and checking debian/copyright semi-automatically</title>
63 <link>http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html</link>
64 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html</guid>
65 <pubDate>Fri, 19 Feb 2016 15:00:00 +0100</pubDate>
66 <description>&lt;p&gt;Making packages for Debian requires quite a lot of attention to
67 details. And one of the details is the content of the
68 debian/copyright file, which should list all relevant licenses used by
69 the code in the package in question, preferably in
70 &lt;a href=&quot;https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/&quot;&gt;machine
71 readable DEP5 format&lt;/a&gt;.&lt;/p&gt;
72
73 &lt;p&gt;For large packages with lots of contributors it is hard to write
74 and update this file manually, and if you get some detail wrong, the
75 package is normally rejected by the ftpmasters. So getting it right
76 the first time around get the package into Debian faster, and save
77 both you and the ftpmasters some work.. Today, while trying to figure
78 out what was wrong with
79 &lt;a href=&quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686447&quot;&gt;the
80 zfsonlinux copyright file&lt;/a&gt;, I decided to spend some time on
81 figuring out the options for doing this job automatically, or at least
82 semi-automatically.&lt;/p&gt;
83
84 &lt;p&gt;Lucikly, there are at least two tools available for generating the
85 file based on the code in the source package,
86 &lt;tt&gt;&lt;a href=&quot;https://tracker.debian.org/pkg/debmake&quot;&gt;debmake&lt;/a&gt;&lt;/tt&gt;
87 and &lt;tt&gt;&lt;a href=&quot;https://tracker.debian.org/pkg/cme&quot;&gt;cme&lt;/a&gt;&lt;/tt&gt;. I&#39;m
88 not sure which one of them came first, but both seem to be able to
89 create a sensible draft file. As far as I can tell, none of them can
90 be trusted to get the result just right, so the content need to be
91 polished a bit before the file is OK to upload. I found the debmake
92 option in
93 &lt;a href=&quot;http://goofying-with-debian.blogspot.com/2014/07/debmake-checking-source-against-dep-5.html&quot;&gt;a
94 blog posts from 2014&lt;/a&gt;.
95
96 &lt;p&gt;To generate using debmake, use the -cc option:
97
98 &lt;p&gt;&lt;pre&gt;
99 debmake -cc &gt; debian/copyright
100 &lt;/pre&gt;&lt;/p&gt;
101
102 &lt;p&gt;Note there are some problems with python and non-ASCII names, so
103 this might not be the best option.&lt;/p&gt;
104
105 &lt;p&gt;The cme option is based on a config parsing library, and I found
106 this approach in
107 &lt;a href=&quot;https://ddumont.wordpress.com/2015/04/05/improving-creation-of-debian-copyright-file/&quot;&gt;a
108 blog post from 2015&lt;/a&gt;. To generate using cme, use the &#39;update
109 dpkg-copyright&#39; option:
110
111 &lt;p&gt;&lt;pre&gt;
112 cme update dpkg-copyright
113 &lt;/pre&gt;&lt;/p&gt;
114
115 &lt;p&gt;This will create or update debian/copyright. The cme tool seem to
116 handle UTF-8 names better than debmake.&lt;/p&gt;
117
118 &lt;p&gt;When the copyright file is created, I would also like some help to
119 check if the file is correct. For this I found two good options,
120 &lt;tt&gt;debmake -k&lt;/tt&gt; and &lt;tt&gt;license-reconcile&lt;/tt&gt;. The former seem
121 to focus on license types and file matching, and is able to detect
122 ineffective blocks in the copyright file. The latter reports missing
123 copyright holders and years, but was confused by inconsistent license
124 names (like CDDL vs. CDDL-1.0). I suspect it is good to use both and
125 fix all issues reported by them before uploading. But I do not know
126 if the tools and the ftpmasters agree on what is important to fix in a
127 copyright file, so the package might still be rejected.&lt;/p&gt;
128
129 &lt;p&gt;The devscripts tool &lt;tt&gt;licensecheck&lt;/tt&gt; deserve mentioning. It
130 will read through the source and try to find all copyright statements.
131 It is not comparing the result to the content of debian/copyright, but
132 can be useful when verifying the content of the copyright file.&lt;/p&gt;
133
134 &lt;p&gt;Are you aware of better tools in Debian to create and update
135 debian/copyright file. Please let me know, or blog about it on
136 planet.debian.org.&lt;/p&gt;
137
138 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
139 activities, please send Bitcoin donations to my address
140 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
141
142 &lt;p&gt;&lt;strong&gt;Update 2016-02-20&lt;/strong&gt;: I got a tip from Mike Gabriel
143 on how to use licensecheck and cdbs to create a draft copyright file
144
145 &lt;p&gt;&lt;pre&gt;
146 licensecheck --copyright -r `find * -type f` | \
147 /usr/lib/cdbs/licensecheck2dep5 &gt; debian/copyright.auto
148 &lt;/pre&gt;&lt;/p&gt;
149
150 &lt;p&gt;He mentioned that he normally check the generated file into the
151 version control system to make it easier to discover license and
152 copyright changes in the upstream source. I will try to do the same
153 with my packages in the future.&lt;/p&gt;
154
155 &lt;p&gt;&lt;strong&gt;Update 2016-02-21&lt;/strong&gt;: The cme author recommended
156 against using -quiet for new users, so I removed it from the proposed
157 command line.&lt;/p&gt;
158 </description>
159 </item>
160
161 <item>
162 <title>Using appstream in Debian to locate packages with firmware and mime type support</title>
163 <link>http://people.skolelinux.org/pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html</link>
164 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html</guid>
165 <pubDate>Thu, 4 Feb 2016 16:40:00 +0100</pubDate>
166 <description>&lt;p&gt;The &lt;a href=&quot;https://wiki.debian.org/DEP-11&quot;&gt;appstream system&lt;/a&gt;
167 is taking shape in Debian, and one provided feature is a very
168 convenient way to tell you which package to install to make a given
169 firmware file available when the kernel is looking for it. This can
170 be done using apt-file too, but that is for someone else to blog
171 about. :)&lt;/p&gt;
172
173 &lt;p&gt;Here is a small recipe to find the package with a given firmware
174 file, in this example I am looking for ctfw-3.2.3.0.bin, randomly
175 picked from the set of firmware announced using appstream in Debian
176 unstable. In general you would be looking for the firmware requested
177 by the kernel during kernel module loading. To find the package
178 providing the example file, do like this:&lt;/p&gt;
179
180 &lt;blockquote&gt;&lt;pre&gt;
181 % apt install appstream
182 [...]
183 % apt update
184 [...]
185 % appstreamcli what-provides firmware:runtime ctfw-3.2.3.0.bin | \
186 awk &#39;/Package:/ {print $2}&#39;
187 firmware-qlogic
188 %
189 &lt;/pre&gt;&lt;/blockquote&gt;
190
191 &lt;p&gt;See &lt;a href=&quot;https://wiki.debian.org/AppStream/Guidelines&quot;&gt;the
192 appstream wiki&lt;/a&gt; page to learn how to embed the package metadata in
193 a way appstream can use.&lt;/p&gt;
194
195 &lt;p&gt;This same approach can be used to find any package supporting a
196 given MIME type. This is very useful when you get a file you do not
197 know how to handle. First find the mime type using &lt;tt&gt;file
198 --mime-type&lt;/tt&gt;, and next look up the package providing support for
199 it. Lets say you got an SVG file. Its MIME type is image/svg+xml,
200 and you can find all packages handling this type like this:&lt;/p&gt;
201
202 &lt;blockquote&gt;&lt;pre&gt;
203 % apt install appstream
204 [...]
205 % apt update
206 [...]
207 % appstreamcli what-provides mimetype image/svg+xml | \
208 awk &#39;/Package:/ {print $2}&#39;
209 bkchem
210 phototonic
211 inkscape
212 shutter
213 tetzle
214 geeqie
215 xia
216 pinta
217 gthumb
218 karbon
219 comix
220 mirage
221 viewnior
222 postr
223 ristretto
224 kolourpaint4
225 eog
226 eom
227 gimagereader
228 midori
229 %
230 &lt;/pre&gt;&lt;/blockquote&gt;
231
232 &lt;p&gt;I believe the MIME types are fetched from the desktop file for
233 packages providing appstream metadata.&lt;/p&gt;
234 </description>
235 </item>
236
237 <item>
238 <title>Creepy, visualise geotagged social media information - nice free software</title>
239 <link>http://people.skolelinux.org/pere/blog/Creepy__visualise_geotagged_social_media_information___nice_free_software.html</link>
240 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Creepy__visualise_geotagged_social_media_information___nice_free_software.html</guid>
241 <pubDate>Sun, 24 Jan 2016 10:50:00 +0100</pubDate>
242 <description>&lt;p&gt;Most people seem not to realise that every time they walk around
243 with the computerised radio beacon known as a mobile phone their
244 position is tracked by the phone company and often stored for a long
245 time (like every time a SMS is received or sent). And if their
246 computerised radio beacon is capable of running programs (often called
247 mobile apps) downloaded from the Internet, these programs are often
248 also capable of tracking their location (if the app requested access
249 during installation). And when these programs send out information to
250 central collection points, the location is often included, unless
251 extra care is taken to not send the location. The provided
252 information is used by several entities, for good and bad (what is
253 good and bad, depend on your point of view). What is certain, is that
254 the private sphere and the right to free movement is challenged and
255 perhaps even eradicated for those announcing their location this way,
256 when they share their whereabouts with private and public
257 entities.&lt;/p&gt;
258
259 &lt;p align=&quot;center&quot;&gt;&lt;img width=&quot;70%&quot; src=&quot;http://people.skolelinux.org/pere/blog/images/2016-01-24-nice-creepy-desktop-window.png&quot;&gt;&lt;/p&gt;
260
261 &lt;p&gt;The phone company logs provide a register of locations to check out
262 when one want to figure out what the tracked person was doing. It is
263 unavailable for most of us, but provided to selected government
264 officials, company staff, those illegally buying information from
265 unfaithful servants and crackers stealing the information. But the
266 public information can be collected and analysed, and a free software
267 tool to do so is called
268 &lt;a href=&quot;http://www.geocreepy.com/&quot;&gt;Creepy or Cree.py&lt;/a&gt;. I
269 discovered it when I read
270 &lt;a href=&quot;http://www.aftenposten.no/kultur/Slik-kan-du-bli-overvaket-pa-Twitter-og-Instagram-uten-a-ane-det-7787884.html&quot;&gt;an
271 article about Creepy&lt;/a&gt; in the Norwegian newspaper Aftenposten i
272 November 2014, and decided to check if it was available in Debian.
273 The python program was in Debian, but
274 &lt;a href=&quot;https://tracker.debian.org/pkg/creepy&quot;&gt;the version in
275 Debian&lt;/a&gt; was completely broken and practically unmaintained. I
276 uploaded a new version which did not work quite right, but did not
277 have time to fix it then. This Christmas I decided to finally try to
278 get Creepy operational in Debian. Now a fixed version is available in
279 Debian unstable and testing, and almost all Debian specific patches
280 are now included
281 &lt;a href=&quot;https://github.com/jkakavas/creepy&quot;&gt;upstream&lt;/a&gt;.&lt;/p&gt;
282
283 &lt;p&gt;The Creepy program visualises geolocation information fetched from
284 Twitter, Instagram, Flickr and Google+, and allow one to get a
285 complete picture of every social media message posted recently in a
286 given area, or track the movement of a given individual across all
287 these services. Earlier it was possible to use the search API of at
288 least some of these services without identifying oneself, but these
289 days it is impossible. This mean that to use Creepy, you need to
290 configure it to log in as yourself on these services, and provide
291 information to them about your search interests. This should be taken
292 into account when using Creepy, as it will also share information
293 about yourself with the services.&lt;/p&gt;
294
295 &lt;p&gt;The picture above show the twitter messages sent from (or at least
296 geotagged with a position from) the city centre of Oslo, the capital
297 of Norway. One useful way to use Creepy is to first look at
298 information tagged with an area of interest, and next look at all the
299 information provided by one or more individuals who was in the area.
300 I tested it by checking out which celebrity provide their location in
301 twitter messages by checkout out who sent twitter messages near a
302 Norwegian TV station, and next could track their position over time,
303 making it possible to locate their home and work place, among other
304 things. A similar technique have been
305 &lt;a href=&quot;http://www.buzzfeed.com/maxseddon/does-this-soldiers-instagram-account-prove-russia-is-covertl&quot;&gt;used
306 to locate Russian soldiers in Ukraine&lt;/a&gt;, and it is both a powerful
307 tool to discover lying governments, and a useful tool to help people
308 understand the value of the private information they provide to the
309 public.&lt;/p&gt;
310
311 &lt;p&gt;The package is not trivial to backport to Debian Stable/Jessie, as
312 it depend on several python modules currently missing in Jessie (at
313 least python-instagram, python-flickrapi and
314 python-requests-toolbelt).&lt;/p&gt;
315
316 &lt;p&gt;(I have uploaded
317 &lt;a href=&quot;https://screenshots.debian.net/package/creepy&quot;&gt;the image to
318 screenshots.debian.net&lt;/a&gt; and licensed it under the same terms as the
319 Creepy program in Debian.)&lt;/p&gt;
320 </description>
321 </item>
322
323 <item>
324 <title>Always download Debian packages using Tor - the simple recipe</title>
325 <link>http://people.skolelinux.org/pere/blog/Always_download_Debian_packages_using_Tor___the_simple_recipe.html</link>
326 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Always_download_Debian_packages_using_Tor___the_simple_recipe.html</guid>
327 <pubDate>Fri, 15 Jan 2016 00:30:00 +0100</pubDate>
328 <description>&lt;p&gt;During his DebConf15 keynote, Jacob Appelbaum
329 &lt;a href=&quot;https://summit.debconf.org/debconf15/meeting/331/what-is-to-be-done/&quot;&gt;observed
330 that those listening on the Internet lines would have good reason to
331 believe a computer have a given security hole&lt;/a&gt; if it download a
332 security fix from a Debian mirror. This is a good reason to always
333 use encrypted connections to the Debian mirror, to make sure those
334 listening do not know which IP address to attack. In August, Richard
335 Hartmann observed that encryption was not enough, when it was possible
336 to interfere download size to security patches or the fact that
337 download took place shortly after a security fix was released, and
338 &lt;a href=&quot;http://richardhartmann.de/blog/posts/2015/08/24-Tor-enabled_Debian_mirror/&quot;&gt;proposed
339 to always use Tor to download packages from the Debian mirror&lt;/a&gt;. He
340 was not the first to propose this, as the
341 &lt;tt&gt;&lt;a href=&quot;https://tracker.debian.org/pkg/apt-transport-tor&quot;&gt;apt-transport-tor&lt;/a&gt;&lt;/tt&gt;
342 package by Tim Retout already existed to make it easy to convince apt
343 to use &lt;a href=&quot;https://www.torproject.org/&quot;&gt;Tor&lt;/a&gt;, but I was not
344 aware of that package when I read the blog post from Richard.&lt;/p&gt;
345
346 &lt;p&gt;Richard discussed the idea with Peter Palfrader, one of the Debian
347 sysadmins, and he set up a Tor hidden service on one of the central
348 Debian mirrors using the address vwakviie2ienjx6t.onion, thus making
349 it possible to download packages directly between two tor nodes,
350 making sure the network traffic always were encrypted.&lt;/p&gt;
351
352 &lt;p&gt;Here is a short recipe for enabling this on your machine, by
353 installing &lt;tt&gt;apt-transport-tor&lt;/tt&gt; and replacing http and https
354 urls with tor+http and tor+https, and using the hidden service instead
355 of the official Debian mirror site. I recommend installing
356 &lt;tt&gt;etckeeper&lt;/tt&gt; before you start to have a history of the changes
357 done in /etc/.&lt;/p&gt;
358
359 &lt;blockquote&gt;&lt;pre&gt;
360 apt install apt-transport-tor
361 sed -i &#39;s% http://ftp.debian.org/% tor+http://vwakviie2ienjx6t.onion/%&#39; /etc/apt/sources.list
362 sed -i &#39;s% http% tor+http%&#39; /etc/apt/sources.list
363 &lt;/pre&gt;&lt;/blockquote&gt;
364
365 &lt;p&gt;If you have more sources listed in /etc/apt/sources.list.d/, run
366 the sed commands for these too. The sed command is assuming your are
367 using the ftp.debian.org Debian mirror. Adjust the command (or just
368 edit the file manually) to match your mirror.&lt;/p&gt;
369
370 &lt;p&gt;This work in Debian Jessie and later. Note that tools like
371 &lt;tt&gt;apt-file&lt;/tt&gt; only recently started using the apt transport
372 system, and do not work with these tor+http URLs. For
373 &lt;tt&gt;apt-file&lt;/tt&gt; you need the version currently in experimental,
374 which need a recent apt version currently only in unstable. So if you
375 need a working &lt;tt&gt;apt-file&lt;/tt&gt;, this is not for you.&lt;/p&gt;
376
377 &lt;p&gt;Another advantage from this change is that your machine will start
378 using Tor regularly and at fairly random intervals (every time you
379 update the package lists or upgrade or install a new package), thus
380 masking other Tor traffic done from the same machine. Using Tor will
381 become normal for the machine in question.&lt;/p&gt;
382
383 &lt;p&gt;On &lt;a href=&quot;https://wiki.debian.org/FreedomBox&quot;&gt;Freedombox&lt;/a&gt;, APT
384 is set up by default to use &lt;tt&gt;apt-transport-tor&lt;/tt&gt; when Tor is
385 enabled. It would be great if it was the default on any Debian
386 system.&lt;/p&gt;
387 </description>
388 </item>
389
390 <item>
391 <title>Nedlasting fra NRK, som Matroska med undertekster</title>
392 <link>http://people.skolelinux.org/pere/blog/Nedlasting_fra_NRK__som_Matroska_med_undertekster.html</link>
393 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Nedlasting_fra_NRK__som_Matroska_med_undertekster.html</guid>
394 <pubDate>Sat, 2 Jan 2016 13:50:00 +0100</pubDate>
395 <description>&lt;p&gt;Det kommer stadig nye løsninger for å ta lagre unna innslag fra NRK
396 for å se på det senere. For en stund tilbake kom jeg over et script
397 nrkopptak laget av Ingvar Hagelund. Han fjernet riktignok sitt script
398 etter forespørsel fra Erik Bolstad i NRK, men noen tok heldigvis og
399 gjorde det &lt;a href=&quot;https://github.com/liangqi/nrkopptak&quot;&gt;tilgjengelig
400 via github&lt;/a&gt;.&lt;/p&gt;
401
402 &lt;p&gt;Scriptet kan lagre som MPEG4 eller Matroska, og bake inn
403 undertekster i fila på et vis som blant annet VLC forstår. For å
404 bruke scriptet, kopier ned git-arkivet og kjør&lt;/p&gt;
405
406 &lt;p&gt;&lt;pre&gt;
407 nrkopptak/bin/nrk-opptak k &lt;ahref=&quot;https://tv.nrk.no/serie/bmi-turne/MUHH45000115/sesong-1/episode-1&quot;&gt;https://tv.nrk.no/serie/bmi-turne/MUHH45000115/sesong-1/episode-1&lt;/a&gt;
408 &lt;/pre&gt;&lt;/p&gt;
409
410 &lt;p&gt;URL-eksemplet er dagens toppsak på tv.nrk.no. Argument &#39;k&#39; ber
411 scriptet laste ned og lagre som Matroska. Det finnes en rekke andre
412 muligheter for valg av kvalitet og format.&lt;/p&gt;
413
414 &lt;p&gt;Jeg foretrekker dette scriptet fremfor youtube-dl, som
415 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK_med_den__nye__l_sningen.html&quot;&gt;
416 nevnt i 2014 støtter NRK&lt;/a&gt; og en rekke andre videokilder, på grunn
417 av at nrkopptak samler undertekster og video i en enkelt fil, hvilket
418 gjør håndtering enklere på disk.&lt;/p&gt;
419 </description>
420 </item>
421
422 <item>
423 <title>OpenALPR, find car license plates in video streams - nice free software</title>
424 <link>http://people.skolelinux.org/pere/blog/OpenALPR__find_car_license_plates_in_video_streams___nice_free_software.html</link>
425 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/OpenALPR__find_car_license_plates_in_video_streams___nice_free_software.html</guid>
426 <pubDate>Wed, 23 Dec 2015 01:00:00 +0100</pubDate>
427 <description>&lt;p&gt;When I was a kid, we used to collect &quot;car numbers&quot;, as we used to
428 call the car license plate numbers in those days. I would write the
429 numbers down in my little book and compare notes with the other kids
430 to see how many region codes we had seen and if we had seen some
431 exotic or special region codes and numbers. It was a fun game to pass
432 time, as we kids have plenty of it.&lt;/p&gt;
433
434 &lt;p&gt;A few days I came across
435 &lt;a href=&quot;https://github.com/openalpr/openalpr&quot;&gt;the OpenALPR
436 project&lt;/a&gt;, a free software project to automatically discover and
437 report license plates in images and video streams, and provide the
438 &quot;car numbers&quot; in a machine readable format. I&#39;ve been looking for
439 such system for a while now, because I believe it is a bad idea that the
440 &lt;a href=&quot;https://en.wikipedia.org/wiki/Automatic_number_plate_recognition&quot;&gt;automatic
441 number plate recognition&lt;/a&gt; tool only is available in the hands of
442 the powerful, and want it to be available also for the powerless to
443 even the score when it comes to surveillance and sousveillance. I
444 discovered the developer
445 &lt;a href=&quot;https://bugs.debian.org/747509&quot;&gt;wanted to get the tool into
446 Debian&lt;/a&gt;, and as I too wanted it to be in Debian, I volunteered to
447 help him get it into shape to get the package uploaded into the Debian
448 archive.&lt;/p&gt;
449
450 &lt;p&gt;Today we finally managed to get the package into shape and uploaded
451 it into Debian, where it currently
452 &lt;a href=&quot;https://ftp-master.debian.org//new/openalpr_2.2.1-1.html&quot;&gt;waits
453 in the NEW queue&lt;/a&gt; for review by the Debian ftpmasters.&lt;/p&gt;
454
455 &lt;p&gt;I guess you are wondering why on earth such tool would be useful
456 for the common folks, ie those not running a large government
457 surveillance system? Well, I plan to put it in a computer on my bike
458 and in my car, tracking the cars nearby and allowing me to be notified
459 when number plates on my watch list are discovered. Another use case
460 was suggested by a friend of mine, who wanted to set it up at his home
461 to open the car port automatically when it discovered the plate on his
462 car. When I mentioned it perhaps was a bit foolhardy to allow anyone
463 capable of placing his license plate number of a piece of cardboard to
464 open his car port, men replied that it was always unlocked anyway. I
465 guess for such use case it make sense. I am sure there are other use
466 cases too, for those with imagination and a vision.&lt;/p&gt;
467
468 &lt;p&gt;If you want to build your own version of the Debian package, check
469 out the upstream git source and symlink ./distros/debian to ./debian/
470 before running &quot;debuild&quot; to build the source. Or wait a bit until the
471 package show up in unstable.&lt;/p&gt;
472 </description>
473 </item>
474
475 <item>
476 <title>Using appstream with isenkram to install hardware related packages in Debian</title>
477 <link>http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html</link>
478 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Using_appstream_with_isenkram_to_install_hardware_related_packages_in_Debian.html</guid>
479 <pubDate>Sun, 20 Dec 2015 12:20:00 +0100</pubDate>
480 <description>&lt;p&gt;Around three years ago, I created
481 &lt;a href=&quot;http://packages.qa.debian.org/isenkram&quot;&gt;the isenkram
482 system&lt;/a&gt; to get a more practical solution in Debian for handing
483 hardware related packages. A GUI system in the isenkram package will
484 present a pop-up dialog when some hardware dongle supported by
485 relevant packages in Debian is inserted into the machine. The same
486 lookup mechanism to detect packages is available as command line
487 tools in the isenkram-cli package. In addition to mapping hardware,
488 it will also map kernel firmware files to packages and make it easy to
489 install needed firmware packages automatically. The key for this
490 system to work is a good way to map hardware to packages, in other
491 words, allow packages to announce what hardware they will work
492 with.&lt;/p&gt;
493
494 &lt;p&gt;I started by providing data files in the isenkram source, and
495 adding code to download the latest version of these data files at run
496 time, to ensure every user had the most up to date mapping available.
497 I also added support for storing the mapping in the Packages file in
498 the apt repositories, but did not push this approach because while I
499 was trying to figure out how to best store hardware/package mappings,
500 &lt;a href=&quot;http://www.freedesktop.org/software/appstream/docs/&quot;&gt;the
501 appstream system&lt;/a&gt; was announced. I got in touch and suggested to
502 add the hardware mapping into that data set to be able to use
503 appstream as a data source, and this was accepted at least for the
504 Debian version of appstream.&lt;/p&gt;
505
506 &lt;p&gt;A few days ago using appstream in Debian for this became possible,
507 and today I uploaded a new version 0.20 of isenkram adding support for
508 appstream as a data source for mapping hardware to packages. The only
509 package so far using appstream to announce its hardware support is my
510 pymissile package. I got help from Matthias Klumpp with figuring out
511 how do add the required
512 &lt;a href=&quot;https://appstream.debian.org/html/sid/main/metainfo/pymissile.html&quot;&gt;metadata
513 in pymissile&lt;/a&gt;. I added a file debian/pymissile.metainfo.xml with
514 this content:&lt;/p&gt;
515
516 &lt;blockquote&gt;&lt;pre&gt;
517 &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
518 &amp;lt;component&amp;gt;
519 &amp;lt;id&amp;gt;pymissile&amp;lt;/id&amp;gt;
520 &amp;lt;metadata_license&amp;gt;MIT&amp;lt;/metadata_license&amp;gt;
521 &amp;lt;name&amp;gt;pymissile&amp;lt;/name&amp;gt;
522 &amp;lt;summary&amp;gt;Control original Striker USB Missile Launcher&amp;lt;/summary&amp;gt;
523 &amp;lt;description&amp;gt;
524 &amp;lt;p&amp;gt;
525 Pymissile provides a curses interface to control an original
526 Marks and Spencer / Striker USB Missile Launcher, as well as a
527 motion control script to allow a webcamera to control the
528 launcher.
529 &amp;lt;/p&amp;gt;
530 &amp;lt;/description&amp;gt;
531 &amp;lt;provides&amp;gt;
532 &amp;lt;modalias&amp;gt;usb:v1130p0202d*&amp;lt;/modalias&amp;gt;
533 &amp;lt;/provides&amp;gt;
534 &amp;lt;/component&amp;gt;
535 &lt;/pre&gt;&lt;/blockquote&gt;
536
537 &lt;p&gt;The key for isenkram is the component/provides/modalias value,
538 which is a glob style match rule for hardware specific strings
539 (modalias strings) provided by the Linux kernel. In this case, it
540 will map to all USB devices with vendor code 1130 and product code
541 0202.&lt;/p&gt;
542
543 &lt;p&gt;Note, it is important that the license of all the metadata files
544 are compatible to have permissions to aggregate them into archive wide
545 appstream files. Matthias suggested to use MIT or BSD licenses for
546 these files. A challenge is figuring out a good id for the data, as
547 it is supposed to be globally unique and shared across distributions
548 (in other words, best to coordinate with upstream what to use). But
549 it can be changed later or, so we went with the package name as
550 upstream for this project is dormant.&lt;/p&gt;
551
552 &lt;p&gt;To get the metadata file installed in the correct location for the
553 mirror update scripts to pick it up and include its content the
554 appstream data source, the file must be installed in the binary
555 package under /usr/share/appdata/. I did this by adding the following
556 line to debian/pymissile.install:&lt;/p&gt;
557
558 &lt;blockquote&gt;&lt;pre&gt;
559 debian/pymissile.metainfo.xml usr/share/appdata
560 &lt;/pre&gt;&lt;/blockquote&gt;
561
562 &lt;p&gt;With that in place, the command line tool isenkram-lookup will list
563 all packages useful on the current computer automatically, and the GUI
564 pop-up handler will propose to install the package not already
565 installed if a hardware dongle is inserted into the machine in
566 question.&lt;/p&gt;
567
568 &lt;p&gt;Details of the modalias field in appstream is available from the
569 &lt;a href=&quot;https://wiki.debian.org/DEP-11&quot;&gt;DEP-11&lt;/a&gt; proposal.&lt;/p&gt;
570
571 &lt;p&gt;To locate the modalias values of all hardware present in a machine,
572 try running this command on the command line:&lt;/p&gt;
573
574 &lt;blockquote&gt;&lt;pre&gt;
575 cat $(find /sys/devices/|grep modalias)
576 &lt;/pre&gt;&lt;/blockquote&gt;
577
578 &lt;p&gt;To learn more about the isenkram system, please check out
579 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/tags/isenkram/&quot;&gt;my
580 blog posts tagged isenkram&lt;/a&gt;.&lt;/p&gt;
581 </description>
582 </item>
583
584 <item>
585 <title>Bokhandeldistribusjon av boken Fri kultur av Lawrence Lessig</title>
586 <link>http://people.skolelinux.org/pere/blog/Bokhandeldistribusjon_av_boken_Fri_kultur_av_Lawrence_Lessig.html</link>
587 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Bokhandeldistribusjon_av_boken_Fri_kultur_av_Lawrence_Lessig.html</guid>
588 <pubDate>Mon, 14 Dec 2015 12:10:00 +0100</pubDate>
589 <description>&lt;p&gt;&lt;strong&gt;Besøk
590 &lt;a href=&quot;https://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html&quot;&gt;lulu.com&lt;/a&gt;
591 eller
592 &lt;a href=&quot;https://www.amazon.com/Fri-kultur-Norwegian-Lawrence-Lessig/dp/8269018236/&quot;&gt;Amazon&lt;/a&gt;
593 for å kjøpe boken på papir, eller last ned ebook som
594 &lt;a href=&quot;https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.pdf&quot;&gt;PDF&lt;/a&gt;,
595 &lt;a href=&quot;https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.epub&quot;&gt;ePub&lt;/a&gt;
596 eller
597 &lt;a href=&quot;https://github.com/petterreinholdtsen/free-culture-lessig/raw/master/archive/freeculture.nb.mobi&quot;&gt;MOBI&lt;/a&gt;
598 fra
599 &lt;a href=&quot;https://github.com/petterreinholdtsen/free-culture-lessig/&quot;&gt;github&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
600
601 &lt;p&gt;Jeg ble gledelig overrasket i dag da jeg oppdaget at boken jeg har
602 gitt ut
603 &lt;a href=&quot;https://www.amazon.com/Fri-kultur-Norwegian-Lawrence-Lessig/dp/8269018236/&quot;&gt;hadde
604 dukket opp i Amazon&lt;/a&gt;. Jeg hadde trodd det skulle ta lenger tid, da
605 jeg fikk beskjed om at det skulle ta seks til åtte uker.
606 Amazonoppføringen er et resultat av at jeg for noen uker siden
607 diskuterte prissetting og håndtering av profitt med forfatteren. Det
608 måtte avklares da bruksvilkårene til boken har krav om
609 ikke-kommersiell bruk. Vi ble enige om at overskuddet fra salg av
610 boken skal sendes til
611 &lt;a href=&quot;https://creativecommons.org/&quot;&gt;Creative Commons-stiftelsen&lt;/a&gt;.
612 Med det på plass kunne jeg be
613 &lt;a href=&quot;https://www.lulu.com/shop/lawrence-lessig/fri-kultur/paperback/product-22441576.html&quot;&gt;lulu.com&lt;/a&gt;
614 om å gi boken «utvidet» distribusjon. Årsaken til at
615 bokhandeldistribusjon var litt utfordrende er at bokhandlere krever
616 mulighet for profitt på bøkene de selger (selvfølgelig), og dermed
617 måtte de få lov til å selge til høyere pris enn lulu.com. I tillegg
618 er det krav om samme pris på lulu.com og i bokhandlene, dermed blir
619 prisen økt også hos lulu.com. Hva skulle jeg gjøre med den profitten
620 uten å bryte med klausulen om ikkekommersiell? Løsningen var å gi
621 bort profitten til CC-stiftelsen. Prisen på boken ble nesten
622 tredoblet, til $19.99 (ca. 160,-) pluss frakt, men synligheten øker
623 betraktelig når den kan finnes i katalogene til store nettbokhandlere.
624 Det betyr at hvis du allerede har kjøpt boken har du fått den veldig
625 billig, og kjøper du den nå, får du den fortsatt billig samt donerer i
626 tillegg noen tiere til fremme av Creative Commons.&lt;/p&gt;
627
628 &lt;p&gt;Mens jeg var i gang med å titte etter informasjon om boken
629 oppdaget jeg at den også var dukket opp på
630 &lt;a href=&quot;https://books.google.no/books?id=uKUGCwAAQBAJ&quot;&gt;Google
631 Books&lt;/a&gt;, der en kan lese den på web. PDF-utgaven har ennå ikke
632 dukket opp hos &lt;a href=&quot;https://www.nb.no/&quot;&gt;Nasjonalbiblioteket&lt;/a&gt;,
633 men det regner jeg med kommer på plass i løpet av noen uker. Boken er
634 heller ikke dukket opp hos
635 &lt;a href=&quot;https://www.barnesandnoble.com/&quot;&gt;Barnes &amp; Noble&lt;/a&gt; ennå, men
636 jeg antar det bare er et tidsspørsmål før dette er på plass.&lt;/p&gt;
637
638 &lt;p&gt;Boken er dessverre ikke tilgjengelig fra norske bokhandlere, og
639 kommer neppe til å bli det med det første. Årsaken er at for å få det
640 til måtte jeg personlig håndtere bestilling av bøker, hvilket jeg ikke
641 er interessert i å bruke tid på. Jeg kunne betalt ca 2000,- til
642 &lt;a href=&quot;http://www.bokbasen.no/&quot;&gt;den norske bokbasen&lt;/a&gt;, en felles
643 database over bøker tilgjengelig for norske bokhandlere, for å få en
644 oppføring der, men da måtte jeg tatt imot bestillinger på epost og
645 sendt ut bøker selv. Det ville krevd at jeg var klar til å
646 sende ut bøker på kort varsel, dvs. holdt meg med ekstra bøker,
647 konvolutter og frimerker. Bokbasen har visst ikke opplegg for å be
648 bokhandlene bestille direkte via web, så jeg droppet oppføring der.
649 Jeg har spurt Haugen bok og Tronsmo direkte på epost om de er
650 interessert i å ta inn boken i sin bestillingskatalog, men ikke fått
651 svar, så jeg antar de ikke er interessert. Derimot har jeg fått en
652 hyggelig henvendelse fra Biblioteksentralen som fortalte at de har
653 lagt den inn i sin database slik at deres bibliotekskunder enkelt kan
654 bestille den via dem.&lt;/p&gt;
655
656 &lt;p&gt;Boken er i følge
657 &lt;a href=&quot;http://bibsys-almaprimo.hosted.exlibrisgroup.com/primo_library/libweb/action/display.do?tabs=detailsTab&amp;ct=display&amp;fn=search&amp;doc=BIBSYS_ILS71518423420002201&amp;indx=1&amp;recIds=BIBSYS_ILS71518423420002201&amp;recIdxs=0&amp;elementId=0&amp;renderMode=poppedOut&amp;displayMode=full&amp;frbrVersion=&amp;dscnt=0&amp;tab=library_catalogue&amp;dstmp=1448543801124&amp;vl(freeText0)=fri%20kultur&amp;vid=UBO&amp;mode=Basic&quot;&gt;Bibsys/Oria&lt;/a&gt;
658 og bokdatabasen til
659 &lt;a href=&quot;https://www.deich.folkebibl.no/cgi-bin/websok?tnr=1819617&quot;&gt;Deichmanske&lt;/a&gt;
660 tilgjengelig fra flere biblioteker allerede, og alle eksemplarer er
661 visst allerede utlånt med ventetid. Det synes jeg er veldig gledelig
662 å se. Jeg håper mange kommer til å lese boken. Jeg tror den er
663 spesielt egnet for foreldre og bekjente av oss nerder for å forklare
664 hva slags problemer vi ser med dagens opphavsrettsregime.&lt;/p&gt;
665 </description>
666 </item>
667
668 <item>
669 <title>The GNU General Public License is not magic pixie dust</title>
670 <link>http://people.skolelinux.org/pere/blog/The_GNU_General_Public_License_is_not_magic_pixie_dust.html</link>
671 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/The_GNU_General_Public_License_is_not_magic_pixie_dust.html</guid>
672 <pubDate>Mon, 30 Nov 2015 09:55:00 +0100</pubDate>
673 <description>&lt;p&gt;A blog post from my fellow Debian developer Paul Wise titled
674 &quot;&lt;a href=&quot;http://bonedaddy.net/pabs3/log/2015/11/27/sfc-supporter/&quot;&gt;The
675 GPL is not magic pixie dust&lt;/a&gt;&quot; explain the importance of making sure
676 the &lt;a href=&quot;http://www.gnu.org/copyleft/gpl.html&quot;&gt;GPL&lt;/a&gt; is enforced.
677 I quote the blog post from Paul in full here with his permission:&lt;p&gt;
678
679 &lt;blockquote&gt;
680
681 &lt;p&gt;&lt;a href=&quot;https://sfconservancy.org/supporter/&quot;&gt;&lt;img src=&quot;https://sfconservancy.org/img/supporter-badge.png&quot; width=&quot;194&quot; height=&quot;90&quot; alt=&quot;Become a Software Freedom Conservancy Supporter!&quot; align=&quot;right&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
682
683 &lt;blockquote&gt;
684 The GPL is not magic pixie dust. It does not work by itself.&lt;br/&gt;
685
686 The first step is to choose a
687 &lt;a href=&quot;https://copyleft.org/&quot;&gt;copyleft&lt;/a&gt; license for your
688 code.&lt;br/&gt;
689
690 The next step is, when someone fails to follow that copyleft license,
691 &lt;b&gt;it must be enforced&lt;/b&gt;&lt;br/&gt;
692
693 and its a simple fact of our modern society that such type of
694 work&lt;br/&gt;
695
696 is incredibly expensive to do and incredibly difficult to do.
697 &lt;/blockquote&gt;
698
699 &lt;p&gt;&lt;small&gt;-- &lt;a href=&quot;http://ebb.org/bkuhn/&quot;&gt;Bradley Kuhn&lt;/a&gt;, in
700 &lt;a href=&quot;http://faif.us/&quot; title=&quot;Free as in Freedom&quot;&gt;FaiF&lt;/a&gt;
701 &lt;a href=&quot;http://faif.us/cast/2015/nov/24/0x57/&quot;&gt;episode
702 0x57&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
703
704 &lt;p&gt;As the Debian Website
705 &lt;a href=&quot;https://bugs.debian.org/794116&quot;&gt;used&lt;/a&gt;
706 &lt;a href=&quot;https://anonscm.debian.org/viewvc/webwml/webwml/english/intro/free.wml?r1=1.24&amp;amp;r2=1.25&quot;&gt;to&lt;/a&gt;
707 imply, public domain and permissively licensed software can lead to
708 the production of more proprietary software as people discover useful
709 software, extend it and or incorporate it into their hardware or
710 software products. Copyleft licenses such as the GNU GPL were created
711 to close off this avenue to the production of proprietary software but
712 such licenses are not enough. With the ongoing adoption of Free
713 Software by individuals and groups, inevitably the community&#39;s
714 expectations of license compliance are violated, usually out of
715 ignorance of the way Free Software works, but not always. As Karen
716 and Bradley explained in &lt;a href=&quot;http://faif.us/&quot; title=&quot;Free as in
717 Freedom&quot;&gt;FaiF&lt;/a&gt;
718 &lt;a href=&quot;http://faif.us/cast/2015/nov/24/0x57/&quot;&gt;episode 0x57&lt;/a&gt;,
719 copyleft is nothing if no-one is willing and able to stand up in court
720 to protect it. The reality of today&#39;s world is that legal
721 representation is expensive, difficult and time consuming. With
722 &lt;a href=&quot;http://gpl-violations.org/&quot;&gt;gpl-violations.org&lt;/a&gt; in hiatus
723 &lt;a href=&quot;http://gpl-violations.org/news/20151027-homepage-recovers/&quot;&gt;until&lt;/a&gt;
724 some time in 2016, the &lt;a href=&quot;https://sfconservancy.org/&quot;&gt;Software
725 Freedom Conservancy&lt;/a&gt; (a tax-exempt charity) is the major defender
726 of the Linux project, Debian and other groups against GPL violations.
727 In March the SFC supported a
728 &lt;a href=&quot;https://sfconservancy.org/news/2015/mar/05/vmware-lawsuit/&quot;&gt;lawsuit
729 by Christoph Hellwig&lt;/a&gt; against VMware for refusing to
730 &lt;a href=&quot;https://sfconservancy.org/linux-compliance/vmware-lawsuit-faq.html&quot;&gt;comply
731 with the GPL&lt;/a&gt; in relation to their use of parts of the Linux
732 kernel. Since then two of their sponsors pulled corporate funding and
733 conferences
734 &lt;a href=&quot;https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/&quot;&gt;blocked
735 or cancelled their talks&lt;/a&gt;. As a result they have decided to rely
736 less on corporate funding and more on the broad community of
737 individuals who support Free Software and copyleft. So the SFC has
738 &lt;a href=&quot;https://sfconservancy.org/news/2015/nov/23/2015fundraiser/&quot;&gt;launched&lt;/a&gt;
739 a &lt;a href=&quot;https://sfconservancy.org/supporter/&quot;&gt;campaign&lt;/a&gt; to create
740 a community of folks who stand up for copyleft and the GPL by
741 supporting their work on promoting and supporting copyleft and Free
742 Software.&lt;/p&gt;
743
744 &lt;p&gt;If you support Free Software,
745 &lt;a href=&quot;https://sfconservancy.org/blog/2015/nov/26/like-what-I-do/&quot;&gt;like&lt;/a&gt;
746 what the SFC do, agree with their
747 &lt;a href=&quot;https://sfconservancy.org/linux-compliance/principles.html&quot;&gt;compliance
748 principles&lt;/a&gt;, are happy about their
749 &lt;a href=&quot;https://sfconservancy.org/supporter/&quot;&gt;successes&lt;/a&gt; in 2015,
750 work on a project that is an SFC
751 &lt;a href=&quot;https://sfconservancy.org/members/current/&quot;&gt;member&lt;/a&gt; and or
752 just want to stand up for copyleft, please join
753 &lt;a href=&quot;https://identi.ca/cwebber/image/JQGPA4qbTyyp3-MY8QpvuA&quot;&gt;Christopher
754 Allan Webber&lt;/a&gt;,
755 &lt;a href=&quot;https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/&quot;&gt;Carol
756 Smith&lt;/a&gt;,
757 &lt;a href=&quot;http://www.jonobacon.org/2015/11/25/supporting-software-freedom-conservancy/&quot;&gt;Jono
758 Bacon&lt;/a&gt;, myself and
759 &lt;a href=&quot;https://sfconservancy.org/sponsors/#supporters&quot;&gt;others&lt;/a&gt; in
760 becoming a
761 &lt;a href=&quot;https://sfconservancy.org/supporter/&quot;&gt;supporter&lt;/a&gt;. For the
762 next week your donation will be
763 &lt;a href=&quot;https://sfconservancy.org/news/2015/nov/27/black-friday/&quot;&gt;matched&lt;/a&gt;
764 by an anonymous donor. Please also consider asking your employer to
765 match your donation or become a sponsor of SFC. Don&#39;t forget to
766 spread the word about your support for SFC via email, your blog and or
767 social media accounts.&lt;/p&gt;
768
769 &lt;/blockquote&gt;
770
771 &lt;p&gt;I agree with Paul on this topic and just signed up as a Supporter
772 of Software Freedom Conservancy myself. Perhaps you should be a
773 supporter too?&lt;/p&gt;
774 </description>
775 </item>
776
777 </channel>
778 </rss>