]> pere.pagekite.me Git - homepage.git/blob - blog/tags/nice free software/nice free software.rss
638d5509f25a6a20c7ba8d2eae3f29e707cbd50a
[homepage.git] / blog / tags / nice free software / nice free software.rss
1 <?xml version="1.0" encoding="utf-8"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/'>
3 <channel>
4 <title>Petter Reinholdtsen - Entries tagged nice free software</title>
5 <description>Entries tagged nice free software</description>
6 <link>http://people.skolelinux.org/pere/blog/</link>
7
8
9 <item>
10 <title>youtube-dl for nedlasting fra NRK med undertekster - nice free software</title>
11 <link>http://people.skolelinux.org/pere/blog/youtube_dl_for_nedlasting_fra_NRK_med_undertekster___nice_free_software.html</link>
12 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/youtube_dl_for_nedlasting_fra_NRK_med_undertekster___nice_free_software.html</guid>
13 <pubDate>Sat, 28 Apr 2018 10:30:00 +0200</pubDate>
14 <description>&lt;p&gt;I &lt;a href=&quot;https://no.wikipedia.org/wiki/VHS&quot;&gt;VHS-kassettenes&lt;/a&gt;
15 tid var det rett frem å ta vare på et TV-program en ønsket å kunne se
16 senere, uten å være avhengig av at programmet ble sendt på nytt.
17 Kanskje ønsket en å se programmet på hytten der det ikke var
18 TV-signal, eller av andre grunner ha det tilgjengelig for fremtidig
19 fornøyelse. Dette er blitt vanskeligere med introduksjon av
20 digital-TV og webstreaming, der opptak til harddisk er utenfor de
21 flestes kontroll. Men for NRK her i Norge, finnes det heldigvis flere
22 fri programvare-alternativer, som jeg har
23 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK.html&quot;&gt;skrevet&lt;/a&gt;
24 &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;om&lt;/a&gt;
25 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Nedlasting_fra_NRK__som_Matroska_med_undertekster.html&quot;&gt;før&lt;/a&gt;.
26 Så lenge kilden for nedlastingen er lovlig lagt ut på nett (hvilket
27 jeg antar NRK gjør), så er slik lagring til privat bruk også lovlig i
28 Norge.&lt;/p&gt;
29
30 &lt;p&gt;Sist jeg så på saken, i 2016, nevnte jeg at
31 &lt;a href=&quot;https://rg3.github.com/youtube-dl/&quot;&gt;youtube-dl&lt;/a&gt; ikke kunne
32 bake undertekster fra NRK inn i videofilene, og at jeg derfor
33 foretrakk andre alternativer. Nylig oppdaget jeg at dette har endret
34 seg. Fordelen med youtube-dl er at den er tilgjengelig direkte fra
35 Linux-distribusjoner som &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt;
36 og &lt;a href=&quot;https://www.ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;, slik at en slipper å
37 finne ut selv hvordan en skal få dem til å virke.&lt;/p&gt;
38
39 &lt;p&gt;For å laste ned et NRK-innslag med undertekster, og få den norske
40 underteksten pakket inn i videofilen, så kan følgende kommando
41 brukes:&lt;/p&gt;
42
43 &lt;p&gt;&lt;pre&gt;
44 youtube-dl --write-sub --sub-format ttml \
45 --convert-subtitles srt --embed-subs \
46 https://tv.nrk.no/serie/ramm-ferdig-gaa/MUHU11000316/27-04-2018
47 &lt;/pre&gt;&lt;/p&gt;
48
49 &lt;p&gt;URL-eksemplet er dagens toppsak på tv.nrk.no. Resultatet er en
50 MP4-fil med filmen og undertekster som kan spilles av med VLC. Merk
51 at VLC ikke viser frem undertekster før du aktiverer dem. For å gjøre
52 det, høyreklikk med musa i fremviservinduet, velg menyvalget for
53 undertekst og så norsk språk. Jeg testet også &#39;--write-auto-sub&#39;,
54 men det kommandolinjeargumentet ser ikke ut til å fungere, så jeg
55 endte opp med settet med argumentlisten over, som jeg fant i en
56 feilrapport i youtube-dl-prosjektets samling over feilrapporter.&lt;/p&gt;
57
58 &lt;p&gt;Denne støtten i youtube-dl gjør det svært enkelt å lagre
59 NRK-innslag, det være seg nyheter, filmer, serier eller dokumentater,
60 for å ha dem tilgjengelig for fremtidig referanse og bruk, uavhengig
61 av hvor lenge innslagene ligger tilgjengelig hos NRK. Så får det ikke
62 hjelpe at NRKs jurister mener at det er
63 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Best___ikke_fortelle_noen_at_streaming_er_nedlasting___.html&quot;&gt;vesensforskjellig
64 å legge tilgjengelig for nedlasting og for streaming&lt;/a&gt;, når det rent
65 teknisk er samme sak.&lt;/p&gt;
66
67 &lt;p&gt;Programmet youtube-dl støtter også en rekke andre nettsteder, se
68 prosjektoversikten for
69 &lt;a href=&quot;http://rg3.github.io/youtube-dl/supportedsites.html&quot;&gt;en
70 komplett liste&lt;/a&gt;.&lt;/p&gt;
71 </description>
72 </item>
73
74 <item>
75 <title>Oolite, a life in space as vagabond and mercenary - nice free software</title>
76 <link>http://people.skolelinux.org/pere/blog/Oolite__a_life_in_space_as_vagabond_and_mercenary___nice_free_software.html</link>
77 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Oolite__a_life_in_space_as_vagabond_and_mercenary___nice_free_software.html</guid>
78 <pubDate>Sun, 11 Dec 2016 11:40:00 +0100</pubDate>
79 <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;
80
81 &lt;p&gt;In my early years, I played
82 &lt;a href=&quot;http://wiki.alioth.net/index.php/Classic_Elite&quot;&gt;the epic game
83 Elite&lt;/a&gt; on my PC. I spent many months trading and fighting in
84 space, and reached the &#39;elite&#39; fighting status before I moved on. The
85 original Elite game was available on Commodore 64 and the IBM PC
86 edition I played had a 64 KB executable. I am still impressed today
87 that the authors managed to squeeze both a 3D engine and details about
88 more than 2000 planet systems across 7 galaxies into a binary so
89 small.&lt;/p&gt;
90
91 &lt;p&gt;I have known about &lt;a href=&quot;http://www.oolite.org/&quot;&gt;the free
92 software game Oolite inspired by Elite&lt;/a&gt; for a while, but did not
93 really have time to test it properly until a few days ago. It was
94 great to discover that my old knowledge about trading routes were
95 still valid. But my fighting and flying abilities were gone, so I had
96 to retrain to be able to dock on a space station. And I am still not
97 able to make much resistance when I am attacked by pirates, so I
98 bougth and mounted the most powerful laser in the rear to be able to
99 put up at least some resistance while fleeing for my life. :)&lt;/p&gt;
100
101 &lt;p&gt;When playing Elite in the late eighties, I had to discover
102 everything on my own, and I had long lists of prices seen on different
103 planets to be able to decide where to trade what. This time I had the
104 advantages of the
105 &lt;a href=&quot;http://wiki.alioth.net/index.php/Main_Page&quot;&gt;Elite wiki&lt;/a&gt;,
106 where information about each planet is easily available with common
107 price ranges and suggested trading routes. This improved my ability
108 to earn money and I have been able to earn enough to buy a lot of
109 useful equipent in a few days. I believe I originally played for
110 months before I could get a docking computer, while now I could get it
111 after less then a week.&lt;/p&gt;
112
113 &lt;p&gt;If you like science fiction and dreamed of a life as a vagabond in
114 space, you should try out Oolite. It is available for Linux, MacOSX
115 and Windows, and is included in Debian and derivatives since 2011.&lt;/p&gt;
116
117 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
118 activities, please send Bitcoin donations to my address
119 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
120 </description>
121 </item>
122
123 <item>
124 <title>Coz can help you find bottlenecks in multi-threaded software - nice free software</title>
125 <link>http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html</link>
126 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html</guid>
127 <pubDate>Thu, 11 Aug 2016 12:00:00 +0200</pubDate>
128 <description>&lt;p&gt;This summer, I read a great article
129 &quot;&lt;a href=&quot;https://www.usenix.org/publications/login/summer2016/curtsinger&quot;&gt;coz:
130 This Is the Profiler You&#39;re Looking For&lt;/a&gt;&quot; in USENIX ;login: about
131 how to profile multi-threaded programs. It presented a system for
132 profiling software by running experiences in the running program,
133 testing how run time performance is affected by &quot;speeding up&quot; parts of
134 the code to various degrees compared to a normal run. It does this by
135 slowing down parallel threads while the &quot;faster up&quot; code is running
136 and measure how this affect processing time. The processing time is
137 measured using probes inserted into the code, either using progress
138 counters (COZ_PROGRESS) or as latency meters (COZ_BEGIN/COZ_END). It
139 can also measure unmodified code by measuring complete the program
140 runtime and running the program several times instead.&lt;/p&gt;
141
142 &lt;p&gt;The project and presentation was so inspiring that I would like to
143 get the system into Debian. I
144 &lt;a href=&quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=830708&quot;&gt;created
145 a WNPP request for it&lt;/a&gt; and contacted upstream to try to make the
146 system ready for Debian by sending patches. The build process need to
147 be changed a bit to avoid running &#39;git clone&#39; to get dependencies, and
148 to include the JavaScript web page used to visualize the collected
149 profiling information included in the source package.
150 But I expect that should work out fairly soon.&lt;/p&gt;
151
152 &lt;p&gt;The way the system work is fairly simple. To run an coz experiment
153 on a binary with debug symbols available, start the program like this:
154
155 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
156 coz run --- program-to-run
157 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
158
159 &lt;p&gt;This will create a text file profile.coz with the instrumentation
160 information. To show what part of the code affect the performance
161 most, use a web browser and either point it to
162 &lt;a href=&quot;http://plasma-umass.github.io/coz/&quot;&gt;http://plasma-umass.github.io/coz/&lt;/a&gt;
163 or use the copy from git (in the gh-pages branch). Check out this web
164 site to have a look at several example profiling runs and get an idea what the end result from the profile runs look like. To make the
165 profiling more useful you include &amp;lt;coz.h&amp;gt; and insert the
166 COZ_PROGRESS or COZ_BEGIN and COZ_END at appropriate places in the
167 code, rebuild and run the profiler. This allow coz to do more
168 targeted experiments.&lt;/p&gt;
169
170 &lt;p&gt;A video published by ACM
171 &lt;a href=&quot;https://www.youtube.com/watch?v=jE0V-p1odPg&quot;&gt;presenting the
172 Coz profiler&lt;/a&gt; is available from Youtube. There is also a paper
173 from the 25th Symposium on Operating Systems Principles available
174 titled
175 &lt;a href=&quot;https://www.usenix.org/conference/atc16/technical-sessions/presentation/curtsinger&quot;&gt;Coz:
176 finding code that counts with causal profiling&lt;/a&gt;.&lt;/p&gt;
177
178 &lt;p&gt;&lt;a href=&quot;https://github.com/plasma-umass/coz&quot;&gt;The source code&lt;/a&gt;
179 for Coz is available from github. It will only build with clang
180 because it uses a
181 &lt;a href=&quot;https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55606&quot;&gt;C++
182 feature missing in GCC&lt;/a&gt;, but I&#39;ve submitted
183 &lt;a href=&quot;https://github.com/plasma-umass/coz/pull/67&quot;&gt;a patch to solve
184 it&lt;/a&gt; and hope it will be included in the upstream source soon.&lt;/p&gt;
185
186 &lt;p&gt;Please get in touch if you, like me, would like to see this piece
187 of software in Debian. I would very much like some help with the
188 packaging effort, as I lack the in depth knowledge on how to package
189 C++ libraries.&lt;/p&gt;
190 </description>
191 </item>
192
193 <item>
194 <title>Creepy, visualise geotagged social media information - nice free software</title>
195 <link>http://people.skolelinux.org/pere/blog/Creepy__visualise_geotagged_social_media_information___nice_free_software.html</link>
196 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Creepy__visualise_geotagged_social_media_information___nice_free_software.html</guid>
197 <pubDate>Sun, 24 Jan 2016 10:50:00 +0100</pubDate>
198 <description>&lt;p&gt;Most people seem not to realise that every time they walk around
199 with the computerised radio beacon known as a mobile phone their
200 position is tracked by the phone company and often stored for a long
201 time (like every time a SMS is received or sent). And if their
202 computerised radio beacon is capable of running programs (often called
203 mobile apps) downloaded from the Internet, these programs are often
204 also capable of tracking their location (if the app requested access
205 during installation). And when these programs send out information to
206 central collection points, the location is often included, unless
207 extra care is taken to not send the location. The provided
208 information is used by several entities, for good and bad (what is
209 good and bad, depend on your point of view). What is certain, is that
210 the private sphere and the right to free movement is challenged and
211 perhaps even eradicated for those announcing their location this way,
212 when they share their whereabouts with private and public
213 entities.&lt;/p&gt;
214
215 &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;
216
217 &lt;p&gt;The phone company logs provide a register of locations to check out
218 when one want to figure out what the tracked person was doing. It is
219 unavailable for most of us, but provided to selected government
220 officials, company staff, those illegally buying information from
221 unfaithful servants and crackers stealing the information. But the
222 public information can be collected and analysed, and a free software
223 tool to do so is called
224 &lt;a href=&quot;http://www.geocreepy.com/&quot;&gt;Creepy or Cree.py&lt;/a&gt;. I
225 discovered it when I read
226 &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
227 article about Creepy&lt;/a&gt; in the Norwegian newspaper Aftenposten i
228 November 2014, and decided to check if it was available in Debian.
229 The python program was in Debian, but
230 &lt;a href=&quot;https://tracker.debian.org/pkg/creepy&quot;&gt;the version in
231 Debian&lt;/a&gt; was completely broken and practically unmaintained. I
232 uploaded a new version which did not work quite right, but did not
233 have time to fix it then. This Christmas I decided to finally try to
234 get Creepy operational in Debian. Now a fixed version is available in
235 Debian unstable and testing, and almost all Debian specific patches
236 are now included
237 &lt;a href=&quot;https://github.com/jkakavas/creepy&quot;&gt;upstream&lt;/a&gt;.&lt;/p&gt;
238
239 &lt;p&gt;The Creepy program visualises geolocation information fetched from
240 Twitter, Instagram, Flickr and Google+, and allow one to get a
241 complete picture of every social media message posted recently in a
242 given area, or track the movement of a given individual across all
243 these services. Earlier it was possible to use the search API of at
244 least some of these services without identifying oneself, but these
245 days it is impossible. This mean that to use Creepy, you need to
246 configure it to log in as yourself on these services, and provide
247 information to them about your search interests. This should be taken
248 into account when using Creepy, as it will also share information
249 about yourself with the services.&lt;/p&gt;
250
251 &lt;p&gt;The picture above show the twitter messages sent from (or at least
252 geotagged with a position from) the city centre of Oslo, the capital
253 of Norway. One useful way to use Creepy is to first look at
254 information tagged with an area of interest, and next look at all the
255 information provided by one or more individuals who was in the area.
256 I tested it by checking out which celebrity provide their location in
257 twitter messages by checkout out who sent twitter messages near a
258 Norwegian TV station, and next could track their position over time,
259 making it possible to locate their home and work place, among other
260 things. A similar technique have been
261 &lt;a href=&quot;http://www.buzzfeed.com/maxseddon/does-this-soldiers-instagram-account-prove-russia-is-covertl&quot;&gt;used
262 to locate Russian soldiers in Ukraine&lt;/a&gt;, and it is both a powerful
263 tool to discover lying governments, and a useful tool to help people
264 understand the value of the private information they provide to the
265 public.&lt;/p&gt;
266
267 &lt;p&gt;The package is not trivial to backport to Debian Stable/Jessie, as
268 it depend on several python modules currently missing in Jessie (at
269 least python-instagram, python-flickrapi and
270 python-requests-toolbelt).&lt;/p&gt;
271
272 &lt;p&gt;(I have uploaded
273 &lt;a href=&quot;https://screenshots.debian.net/package/creepy&quot;&gt;the image to
274 screenshots.debian.net&lt;/a&gt; and licensed it under the same terms as the
275 Creepy program in Debian.)&lt;/p&gt;
276 </description>
277 </item>
278
279 <item>
280 <title>OpenALPR, find car license plates in video streams - nice free software</title>
281 <link>http://people.skolelinux.org/pere/blog/OpenALPR__find_car_license_plates_in_video_streams___nice_free_software.html</link>
282 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/OpenALPR__find_car_license_plates_in_video_streams___nice_free_software.html</guid>
283 <pubDate>Wed, 23 Dec 2015 01:00:00 +0100</pubDate>
284 <description>&lt;p&gt;When I was a kid, we used to collect &quot;car numbers&quot;, as we used to
285 call the car license plate numbers in those days. I would write the
286 numbers down in my little book and compare notes with the other kids
287 to see how many region codes we had seen and if we had seen some
288 exotic or special region codes and numbers. It was a fun game to pass
289 time, as we kids have plenty of it.&lt;/p&gt;
290
291 &lt;p&gt;A few days I came across
292 &lt;a href=&quot;https://github.com/openalpr/openalpr&quot;&gt;the OpenALPR
293 project&lt;/a&gt;, a free software project to automatically discover and
294 report license plates in images and video streams, and provide the
295 &quot;car numbers&quot; in a machine readable format. I&#39;ve been looking for
296 such system for a while now, because I believe it is a bad idea that the
297 &lt;a href=&quot;https://en.wikipedia.org/wiki/Automatic_number_plate_recognition&quot;&gt;automatic
298 number plate recognition&lt;/a&gt; tool only is available in the hands of
299 the powerful, and want it to be available also for the powerless to
300 even the score when it comes to surveillance and sousveillance. I
301 discovered the developer
302 &lt;a href=&quot;https://bugs.debian.org/747509&quot;&gt;wanted to get the tool into
303 Debian&lt;/a&gt;, and as I too wanted it to be in Debian, I volunteered to
304 help him get it into shape to get the package uploaded into the Debian
305 archive.&lt;/p&gt;
306
307 &lt;p&gt;Today we finally managed to get the package into shape and uploaded
308 it into Debian, where it currently
309 &lt;a href=&quot;https://ftp-master.debian.org//new/openalpr_2.2.1-1.html&quot;&gt;waits
310 in the NEW queue&lt;/a&gt; for review by the Debian ftpmasters.&lt;/p&gt;
311
312 &lt;p&gt;I guess you are wondering why on earth such tool would be useful
313 for the common folks, ie those not running a large government
314 surveillance system? Well, I plan to put it in a computer on my bike
315 and in my car, tracking the cars nearby and allowing me to be notified
316 when number plates on my watch list are discovered. Another use case
317 was suggested by a friend of mine, who wanted to set it up at his home
318 to open the car port automatically when it discovered the plate on his
319 car. When I mentioned it perhaps was a bit foolhardy to allow anyone
320 capable of placing his license plate number of a piece of cardboard to
321 open his car port, men replied that it was always unlocked anyway. I
322 guess for such use case it make sense. I am sure there are other use
323 cases too, for those with imagination and a vision.&lt;/p&gt;
324
325 &lt;p&gt;If you want to build your own version of the Debian package, check
326 out the upstream git source and symlink ./distros/debian to ./debian/
327 before running &quot;debuild&quot; to build the source. Or wait a bit until the
328 package show up in unstable.&lt;/p&gt;
329 </description>
330 </item>
331
332 <item>
333 <title>listadmin, the quick way to moderate mailman lists - nice free software</title>
334 <link>http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html</link>
335 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html</guid>
336 <pubDate>Wed, 22 Oct 2014 20:00:00 +0200</pubDate>
337 <description>&lt;p&gt;If you ever had to moderate a mailman list, like the ones on
338 alioth.debian.org, you know the web interface is fairly slow to
339 operate. First you visit one web page, enter the moderation password
340 and get a new page shown with a list of all the messages to moderate
341 and various options for each email address. This take a while for
342 every list you moderate, and you need to do it regularly to do a good
343 job as a list moderator. But there is a quick alternative,
344 &lt;a href=&quot;http://heim.ifi.uio.no/kjetilho/hacks/#listadmin&quot;&gt;the
345 listadmin program&lt;/a&gt;. It allow you to check lists for new messages
346 to moderate in a fraction of a second. Here is a test run on two
347 lists I recently took over:&lt;/p&gt;
348
349 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
350 % time listadmin xiph
351 fetching data for pkg-xiph-commits@lists.alioth.debian.org ... nothing in queue
352 fetching data for pkg-xiph-maint@lists.alioth.debian.org ... nothing in queue
353
354 real 0m1.709s
355 user 0m0.232s
356 sys 0m0.012s
357 %
358 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
359
360 &lt;p&gt;In 1.7 seconds I had checked two mailing lists and confirmed that
361 there are no message in the moderation queue. Every morning I
362 currently moderate 68 mailman lists, and it normally take around two
363 minutes. When I took over the two pkg-xiph lists above a few days
364 ago, there were 400 emails waiting in the moderator queue. It took me
365 less than 15 minutes to process them all using the listadmin
366 program.&lt;/p&gt;
367
368 &lt;p&gt;If you install
369 &lt;a href=&quot;https://tracker.debian.org/pkg/listadmin&quot;&gt;the listadmin
370 package&lt;/a&gt; from Debian and create a file &lt;tt&gt;~/.listadmin.ini&lt;/tt&gt;
371 with content like this, the moderation task is a breeze:&lt;/p&gt;
372
373 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
374 username username@example.org
375 spamlevel 23
376 default discard
377 discard_if_reason &quot;Posting restricted to members only. Remove us from your mail list.&quot;
378
379 password secret
380 adminurl https://{domain}/mailman/admindb/{list}
381 mailman-list@lists.example.com
382
383 password hidden
384 other-list@otherserver.example.org
385 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
386
387 &lt;p&gt;There are other options to set as well. Check the manual page to
388 learn the details.&lt;/p&gt;
389
390 &lt;p&gt;If you are forced to moderate lists on a mailman installation where
391 the SSL certificate is self signed or not properly signed by a
392 generally accepted signing authority, you can set a environment
393 variable when calling listadmin to disable SSL verification:&lt;/p&gt;
394
395 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
396 PERL_LWP_SSL_VERIFY_HOSTNAME=0 listadmin
397 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
398
399 &lt;p&gt;If you want to moderate a subset of the lists you take care of, you
400 can provide an argument to the listadmin script like I do in the
401 initial screen dump (the xiph argument). Using an argument, only
402 lists matching the argument string will be processed. This make it
403 quick to accept messages if you notice the moderation request in your
404 email.&lt;/p&gt;
405
406 &lt;p&gt;Without the listadmin program, I would never be the moderator of 68
407 mailing lists, as I simply do not have time to spend on that if the
408 process was any slower. The listadmin program have saved me hours of
409 time I could spend elsewhere over the years. It truly is nice free
410 software.&lt;/p&gt;
411
412 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
413 activities, please send Bitcoin donations to my address
414 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
415
416 &lt;p&gt;Update 2014-10-27: Added missing &#39;username&#39; statement in
417 configuration example. Also, I&#39;ve been told that the
418 PERL_LWP_SSL_VERIFY_HOSTNAME=0 setting do not work for everyone. Not
419 sure why.&lt;/p&gt;
420 </description>
421 </item>
422
423 <item>
424 <title>S3QL, a locally mounted cloud file system - nice free software</title>
425 <link>http://people.skolelinux.org/pere/blog/S3QL__a_locally_mounted_cloud_file_system___nice_free_software.html</link>
426 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/S3QL__a_locally_mounted_cloud_file_system___nice_free_software.html</guid>
427 <pubDate>Wed, 9 Apr 2014 11:30:00 +0200</pubDate>
428 <description>&lt;p&gt;For a while now, I have been looking for a sensible offsite backup
429 solution for use at home. My requirements are simple, it must be
430 cheap and locally encrypted (in other words, I keep the encryption
431 keys, the storage provider do not have access to my private files).
432 One idea me and my friends had many years ago, before the cloud
433 storage providers showed up, was to use Google mail as storage,
434 writing a Linux block device storing blocks as emails in the mail
435 service provided by Google, and thus get heaps of free space. On top
436 of this one can add encryption, RAID and volume management to have
437 lots of (fairly slow, I admit that) cheap and encrypted storage. But
438 I never found time to implement such system. But the last few weeks I
439 have looked at a system called
440 &lt;a href=&quot;https://bitbucket.org/nikratio/s3ql/&quot;&gt;S3QL&lt;/a&gt;, a locally
441 mounted network backed file system with the features I need.&lt;/p&gt;
442
443 &lt;p&gt;S3QL is a fuse file system with a local cache and cloud storage,
444 handling several different storage providers, any with Amazon S3,
445 Google Drive or OpenStack API. There are heaps of such storage
446 providers. S3QL can also use a local directory as storage, which
447 combined with sshfs allow for file storage on any ssh server. S3QL
448 include support for encryption, compression, de-duplication, snapshots
449 and immutable file systems, allowing me to mount the remote storage as
450 a local mount point, look at and use the files as if they were local,
451 while the content is stored in the cloud as well. This allow me to
452 have a backup that should survive fire. The file system can not be
453 shared between several machines at the same time, as only one can
454 mount it at the time, but any machine with the encryption key and
455 access to the storage service can mount it if it is unmounted.&lt;/p&gt;
456
457 &lt;p&gt;It is simple to use. I&#39;m using it on Debian Wheezy, where the
458 package is included already. So to get started, run &lt;tt&gt;apt-get
459 install s3ql&lt;/tt&gt;. Next, pick a storage provider. I ended up picking
460 Greenqloud, after reading their nice recipe on
461 &lt;a href=&quot;https://greenqloud.zendesk.com/entries/44611757-How-To-Use-S3QL-to-mount-a-StorageQloud-bucket-on-Debian-Wheezy&quot;&gt;how
462 to use S3QL with their Amazon S3 service&lt;/a&gt;, because I trust the laws
463 in Iceland more than those in USA when it come to keeping my personal
464 data safe and private, and thus would rather spend money on a company
465 in Iceland. Another nice recipe is available from the article
466 &lt;a href=&quot;http://www.admin-magazine.com/HPC/Articles/HPC-Cloud-Storage&quot;&gt;S3QL
467 Filesystem for HPC Storage&lt;/a&gt; by Jeff Layton in the HPC section of
468 Admin magazine. When the provider is picked, figure out how to get
469 the API key needed to connect to the storage API. With Greencloud,
470 the key did not show up until I had added payment details to my
471 account.&lt;/p&gt;
472
473 &lt;p&gt;Armed with the API access details, it is time to create the file
474 system. First, create a new bucket in the cloud. This bucket is the
475 file system storage area. I picked a bucket name reflecting the
476 machine that was going to store data there, but any name will do.
477 I&#39;ll refer to it as &lt;tt&gt;bucket-name&lt;/tt&gt; below. In addition, one need
478 the API login and password, and a locally created password. Store it
479 all in ~root/.s3ql/authinfo2 like this:
480
481 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
482 [s3c]
483 storage-url: s3c://s.greenqloud.com:443/bucket-name
484 backend-login: API-login
485 backend-password: API-password
486 fs-passphrase: local-password
487 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
488
489 &lt;p&gt;I create my local passphrase using &lt;tt&gt;pwget 50&lt;/tt&gt; or similar,
490 but any sensible way to create a fairly random password should do it.
491 Armed with these details, it is now time to run mkfs, entering the API
492 details and password to create it:&lt;/p&gt;
493
494 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
495 # mkdir -m 700 /var/lib/s3ql-cache
496 # mkfs.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
497 --ssl s3c://s.greenqloud.com:443/bucket-name
498 Enter backend login:
499 Enter backend password:
500 Before using S3QL, make sure to read the user&#39;s guide, especially
501 the &#39;Important Rules to Avoid Loosing Data&#39; section.
502 Enter encryption password:
503 Confirm encryption password:
504 Generating random encryption key...
505 Creating metadata tables...
506 Dumping metadata...
507 ..objects..
508 ..blocks..
509 ..inodes..
510 ..inode_blocks..
511 ..symlink_targets..
512 ..names..
513 ..contents..
514 ..ext_attributes..
515 Compressing and uploading metadata...
516 Wrote 0.00 MB of compressed metadata.
517 # &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
518
519 &lt;p&gt;The next step is mounting the file system to make the storage available.
520
521 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
522 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
523 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
524 Using 4 upload threads.
525 Downloading and decompressing metadata...
526 Reading metadata...
527 ..objects..
528 ..blocks..
529 ..inodes..
530 ..inode_blocks..
531 ..symlink_targets..
532 ..names..
533 ..contents..
534 ..ext_attributes..
535 Mounting filesystem...
536 # df -h /s3ql
537 Filesystem Size Used Avail Use% Mounted on
538 s3c://s.greenqloud.com:443/bucket-name 1.0T 0 1.0T 0% /s3ql
539 #
540 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
541
542 &lt;p&gt;The file system is now ready for use. I use rsync to store my
543 backups in it, and as the metadata used by rsync is downloaded at
544 mount time, no network traffic (and storage cost) is triggered by
545 running rsync. To unmount, one should not use the normal umount
546 command, as this will not flush the cache to the cloud storage, but
547 instead running the umount.s3ql command like this:
548
549 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
550 # umount.s3ql /s3ql
551 #
552 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
553
554 &lt;p&gt;There is a fsck command available to check the file system and
555 correct any problems detected. This can be used if the local server
556 crashes while the file system is mounted, to reset the &quot;already
557 mounted&quot; flag. This is what it look like when processing a working
558 file system:&lt;/p&gt;
559
560 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
561 # fsck.s3ql --force --ssl s3c://s.greenqloud.com:443/bucket-name
562 Using cached metadata.
563 File system seems clean, checking anyway.
564 Checking DB integrity...
565 Creating temporary extra indices...
566 Checking lost+found...
567 Checking cached objects...
568 Checking names (refcounts)...
569 Checking contents (names)...
570 Checking contents (inodes)...
571 Checking contents (parent inodes)...
572 Checking objects (reference counts)...
573 Checking objects (backend)...
574 ..processed 5000 objects so far..
575 ..processed 10000 objects so far..
576 ..processed 15000 objects so far..
577 Checking objects (sizes)...
578 Checking blocks (referenced objects)...
579 Checking blocks (refcounts)...
580 Checking inode-block mapping (blocks)...
581 Checking inode-block mapping (inodes)...
582 Checking inodes (refcounts)...
583 Checking inodes (sizes)...
584 Checking extended attributes (names)...
585 Checking extended attributes (inodes)...
586 Checking symlinks (inodes)...
587 Checking directory reachability...
588 Checking unix conventions...
589 Checking referential integrity...
590 Dropping temporary indices...
591 Backing up old metadata...
592 Dumping metadata...
593 ..objects..
594 ..blocks..
595 ..inodes..
596 ..inode_blocks..
597 ..symlink_targets..
598 ..names..
599 ..contents..
600 ..ext_attributes..
601 Compressing and uploading metadata...
602 Wrote 0.89 MB of compressed metadata.
603 #
604 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
605
606 &lt;p&gt;Thanks to the cache, working on files that fit in the cache is very
607 quick, about the same speed as local file access. Uploading large
608 amount of data is to me limited by the bandwidth out of and into my
609 house. Uploading 685 MiB with a 100 MiB cache gave me 305 kiB/s,
610 which is very close to my upload speed, and downloading the same
611 Debian installation ISO gave me 610 kiB/s, close to my download speed.
612 Both were measured using &lt;tt&gt;dd&lt;/tt&gt;. So for me, the bottleneck is my
613 network, not the file system code. I do not know what a good cache
614 size would be, but suspect that the cache should e larger than your
615 working set.&lt;/p&gt;
616
617 &lt;p&gt;I mentioned that only one machine can mount the file system at the
618 time. If another machine try, it is told that the file system is
619 busy:&lt;/p&gt;
620
621 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
622 # mount.s3ql --cachedir /var/lib/s3ql-cache --authfile /root/.s3ql/authinfo2 \
623 --ssl --allow-root s3c://s.greenqloud.com:443/bucket-name /s3ql
624 Using 8 upload threads.
625 Backend reports that fs is still mounted elsewhere, aborting.
626 #
627 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
628
629 &lt;p&gt;The file content is uploaded when the cache is full, while the
630 metadata is uploaded once every 24 hour by default. To ensure the
631 file system content is flushed to the cloud, one can either umount the
632 file system, or ask S3QL to flush the cache and metadata using
633 s3qlctrl:
634
635 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
636 # s3qlctrl upload-meta /s3ql
637 # s3qlctrl flushcache /s3ql
638 #
639 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
640
641 &lt;p&gt;If you are curious about how much space your data uses in the
642 cloud, and how much compression and deduplication cut down on the
643 storage usage, you can use s3qlstat on the mounted file system to get
644 a report:&lt;/p&gt;
645
646 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
647 # s3qlstat /s3ql
648 Directory entries: 9141
649 Inodes: 9143
650 Data blocks: 8851
651 Total data size: 22049.38 MB
652 After de-duplication: 21955.46 MB (99.57% of total)
653 After compression: 21877.28 MB (99.22% of total, 99.64% of de-duplicated)
654 Database size: 2.39 MB (uncompressed)
655 (some values do not take into account not-yet-uploaded dirty blocks in cache)
656 #
657 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
658
659 &lt;p&gt;I mentioned earlier that there are several possible suppliers of
660 storage. I did not try to locate them all, but am aware of at least
661 &lt;a href=&quot;https://www.greenqloud.com/&quot;&gt;Greenqloud&lt;/a&gt;,
662 &lt;a href=&quot;http://drive.google.com/&quot;&gt;Google Drive&lt;/a&gt;,
663 &lt;a href=&quot;http://aws.amazon.com/s3/&quot;&gt;Amazon S3 web serivces&lt;/a&gt;,
664 &lt;a href=&quot;http://www.rackspace.com/&quot;&gt;Rackspace&lt;/a&gt; and
665 &lt;a href=&quot;http://crowncloud.net/&quot;&gt;Crowncloud&lt;/A&gt;. The latter even
666 accept payment in Bitcoin. Pick one that suit your need. Some of
667 them provide several GiB of free storage, but the prize models are
668 quite different and you will have to figure out what suits you
669 best.&lt;/p&gt;
670
671 &lt;p&gt;While researching this blog post, I had a look at research papers
672 and posters discussing the S3QL file system. There are several, which
673 told me that the file system is getting a critical check by the
674 science community and increased my confidence in using it. One nice
675 poster is titled
676 &quot;&lt;a href=&quot;http://www.lanl.gov/orgs/adtsc/publications/science_highlights_2013/docs/pg68_69.pdf&quot;&gt;An
677 Innovative Parallel Cloud Storage System using OpenStack’s SwiftObject
678 Store and Transformative Parallel I/O Approach&lt;/a&gt;&quot; by Hsing-Bung
679 Chen, Benjamin McClelland, David Sherrill, Alfred Torrez, Parks Fields
680 and Pamela Smith. Please have a look.&lt;/p&gt;
681
682 &lt;p&gt;Given my problems with different file systems earlier, I decided to
683 check out the mounted S3QL file system to see if it would be usable as
684 a home directory (in other word, that it provided POSIX semantics when
685 it come to locking and umask handling etc). Running
686 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html&quot;&gt;my
687 test code to check file system semantics&lt;/a&gt;, I was happy to discover that
688 no error was found. So the file system can be used for home
689 directories, if one chooses to do so.&lt;/p&gt;
690
691 &lt;p&gt;If you do not want a locally file system, and want something that
692 work without the Linux fuse file system, I would like to mention the
693 &lt;a href=&quot;http://www.tarsnap.com/&quot;&gt;Tarsnap service&lt;/a&gt;, which also
694 provide locally encrypted backup using a command line client. It have
695 a nicer access control system, where one can split out read and write
696 access, allowing some systems to write to the backup and others to
697 only read from it.&lt;/p&gt;
698
699 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
700 activities, please send Bitcoin donations to my address
701 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
702 </description>
703 </item>
704
705 <item>
706 <title>ReactOS Windows clone - nice free software</title>
707 <link>http://people.skolelinux.org/pere/blog/ReactOS_Windows_clone___nice_free_software.html</link>
708 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/ReactOS_Windows_clone___nice_free_software.html</guid>
709 <pubDate>Tue, 1 Apr 2014 12:10:00 +0200</pubDate>
710 <description>&lt;p&gt;Microsoft have announced that Windows XP reaches its end of life
711 2014-04-08, in 7 days. But there are heaps of machines still running
712 Windows XP, and depending on Windows XP to run their applications, and
713 upgrading will be expensive, both when it comes to money and when it
714 comes to the amount of effort needed to migrate from Windows XP to a
715 new operating system. Some obvious options (buy new a Windows
716 machine, buy a MacOSX machine, install Linux on the existing machine)
717 are already well known and covered elsewhere. Most of them involve
718 leaving the user applications installed on Windows XP behind and
719 trying out replacements or updated versions. In this blog post I want
720 to mention one strange bird that allow people to keep the hardware and
721 the existing Windows XP applications and run them on a free software
722 operating system that is Windows XP compatible.&lt;/p&gt;
723
724 &lt;p&gt;&lt;a href=&quot;http://www.reactos.org/&quot;&gt;ReactOS&lt;/a&gt; is a free software
725 operating system (GNU GPL licensed) working on providing a operating
726 system that is binary compatible with Windows, able to run windows
727 programs directly and to use Windows drivers for hardware directly.
728 The project goal is for Windows user to keep their existing machines,
729 drivers and software, and gain the advantages from user a operating
730 system without usage limitations caused by non-free licensing. It is
731 a Windows clone running directly on the hardware, so quite different
732 from the approach taken by &lt;a href=&quot;http://www.winehq.org/&quot;&gt;the Wine
733 project&lt;/a&gt;, which make it possible to run Windows binaries on
734 Linux.&lt;/p&gt;
735
736 &lt;p&gt;The ReactOS project share code with the Wine project, so most
737 shared libraries available on Windows are already implemented already.
738 There is also a software manager like the one we are used to on Linux,
739 allowing the user to install free software applications with a simple
740 click directly from the Internet. Check out the
741 &lt;a href=&quot;http://www.reactos.org/screenshots&quot;&gt;screen shots on the
742 project web site&lt;/a&gt; for an idea what it look like (it looks just like
743 Windows before metro).&lt;/p&gt;
744
745 &lt;p&gt;I do not use ReactOS myself, preferring Linux and Unix like
746 operating systems. I&#39;ve tested it, and it work fine in a virt-manager
747 virtual machine. The browser, minesweeper, notepad etc is working
748 fine as far as I can tell. Unfortunately, my main test application
749 is the software included on a CD with the Lego Mindstorms NXT, which
750 seem to install just fine from CD but fail to leave any binaries on
751 the disk after the installation. So no luck with that test software.
752 No idea why, but hope someone else figure out and fix the problem.
753 I&#39;ve tried the ReactOS Live ISO on a physical machine, and it seemed
754 to work just fine. If you like Windows and want to keep running your
755 old Windows binaries, check it out by
756 &lt;a href=&quot;http://www.reactos.org/download&quot;&gt;downloading&lt;/a&gt; the
757 installation CD, the live CD or the preinstalled virtual machine
758 image.&lt;/p&gt;
759 </description>
760 </item>
761
762 <item>
763 <title>Video DVD reader library / python-dvdvideo - nice free software</title>
764 <link>http://people.skolelinux.org/pere/blog/Video_DVD_reader_library___python_dvdvideo___nice_free_software.html</link>
765 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Video_DVD_reader_library___python_dvdvideo___nice_free_software.html</guid>
766 <pubDate>Fri, 21 Mar 2014 15:25:00 +0100</pubDate>
767 <description>&lt;p&gt;Keeping your DVD collection safe from scratches and curious
768 children fingers while still having it available when you want to see a
769 movie is not straight forward. My preferred method at the moment is
770 to store a full copy of the ISO on a hard drive, and use VLC, Popcorn
771 Hour or other useful players to view the resulting file. This way the
772 subtitles and bonus material are still available and using the ISO is
773 just like inserting the original DVD record in the DVD player.&lt;/p&gt;
774
775 &lt;p&gt;Earlier I used dd for taking security copies, but it do not handle
776 DVDs giving read errors (which are quite a few of them). I&#39;ve also
777 tried using
778 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Ripping_problematic_DVDs_using_dvdbackup_and_genisoimage.html&quot;&gt;dvdbackup
779 and genisoimage&lt;/a&gt;, but these days I use the marvellous python library
780 and program
781 &lt;a href=&quot;http://bblank.thinkmo.de/blog/new-software-python-dvdvideo&quot;&gt;python-dvdvideo&lt;/a&gt;
782 written by Bastian Blank. It is
783 &lt;a href=&quot;http://packages.qa.debian.org/p/python-dvdvideo.html&quot;&gt;in Debian
784 already&lt;/a&gt; and the binary package name is python3-dvdvideo. Instead
785 of trying to read every block from the DVD, it parses the file
786 structure and figure out which block on the DVD is actually in used,
787 and only read those blocks from the DVD. This work surprisingly well,
788 and I have been able to almost backup my entire DVD collection using
789 this method.&lt;/p&gt;
790
791 &lt;p&gt;So far, python-dvdvideo have failed on between 10 and
792 20 DVDs, which is a small fraction of my collection. The most common
793 problem is
794 &lt;a href=&quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720831&quot;&gt;DVDs
795 using UTF-16 instead of UTF-8 characters&lt;/a&gt;, which according to
796 Bastian is against the DVD specification (and seem to cause some
797 players to fail too). A rarer problem is what seem to be inconsistent
798 DVD structures, as the python library
799 &lt;a href=&quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=723079&quot;&gt;claim
800 there is a overlap between objects&lt;/a&gt;. An equally rare problem claim
801 &lt;a href=&quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=741878&quot;&gt;some
802 value is out of range&lt;/a&gt;. No idea what is going on there. I wish I
803 knew enough about the DVD format to fix these, to ensure my movie
804 collection will stay with me in the future.&lt;/p&gt;
805
806 &lt;p&gt;So, if you need to keep your DVDs safe, back them up using
807 python-dvdvideo. :)&lt;/p&gt;
808 </description>
809 </item>
810
811 <item>
812 <title>Free Timetabling Software - nice free software</title>
813 <link>http://people.skolelinux.org/pere/blog/Free_Timetabling_Software___nice_free_software.html</link>
814 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Free_Timetabling_Software___nice_free_software.html</guid>
815 <pubDate>Sat, 7 Jul 2012 09:50:00 +0200</pubDate>
816 <description>&lt;p&gt;Included in &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu /
817 Skolelinux&lt;/a&gt; is a large collection of end user and school specific
818 software. It is one of the packages not installed by default but
819 provided in the Debian archive for schools to install if they want to,
820 is a system to automatically plan the school time table using
821 information about available teachers, classes and rooms, combined with
822 the list of required courses and how many hours each topic should
823 receive. The software is
824
825 &lt;a href=&quot;http://lalescu.ro/liviu/fet/&quot;&gt;named FET&lt;/a&gt;, and it provide a
826 graphical user interface to input the required information, save the
827 result in a fairly simple XML format, and generate time tables for
828 both teachers and students. It is available both for
829 &lt;a href=&quot;http://lalescu.ro/liviu/fet/download.html&quot;&gt;Linux, MacOSX and
830 Windows&lt;/a&gt;.&lt;/p&gt;
831
832 &lt;p&gt;This is &lt;a href=&quot;http://lalescu.ro/liviu/fet/features.html&quot;&gt;the
833 feature list&lt;/a&gt;, liftet from the project web site:&lt;/p&gt;
834
835 &lt;p&gt;&lt;ul&gt;
836
837 &lt;li&gt;FET is free software, licensed under the GNU GPL v2 or later.
838 You can freely use, copy, modify and redistribute it &lt;/li&gt;
839
840 &lt;li&gt;Localized to en_US (US English, default), ar (Arabic), ca
841 (Catalan), da (Danish), de (German), el (Greek), es (Spanish), fa
842 (Persian), fr (French), gl (Galician), he (Hebrew), hu
843 (Hungarian), id (Indonesian), it (Italian), lt (Lithuanian), mk
844 (Macedonian), ms (Malay), nl (Dutch), pl (Polish), pt_BR
845 (Brazilian Portuguese), ro (Romanian), ru (Russian), si (Sinhala),
846 sk (Slovak), sr (Serbian), tr (Turkish), uk (Ukrainian), uz
847 (Uzbek) and vi (Vietnamese) (incompletely for some languages)
848 &lt;/li&gt;
849
850 &lt;li&gt;Fully automatic generation algorithm, allowing also
851 semi-automatic or manual allocation&lt;/li&gt;
852
853 &lt;li&gt;Platform independent implementation, allowing running on
854 GNU/Linux, Windows, Mac and any system that Qt supports &lt;/li&gt;
855
856 &lt;li&gt;Flexible modular XML format for the input file, allowing editing
857 with an XML editor or by hand (besides FET interface)&lt;/li&gt;
858
859 &lt;li&gt;Import/export from CSV format&lt;/li&gt;
860
861 &lt;li&gt;The resulted timetables are exported into HTML, XML and CSV
862 formats &lt;/li&gt;
863
864 &lt;li&gt;Flexible students structure, organized into sets: years, groups
865 and subgroups. FET allows overlapping years and groups and
866 non-overlapping subgroups. You can even define individual students
867 (as separate sets)&lt;/li&gt;
868
869 &lt;li&gt;Each constraint has a weight percentage, from 0.0% to 100.0%
870 (but some special constraints are allowed to have only 100% weight
871 percentage)&lt;/li&gt;
872
873 &lt;li&gt;Limits for the algorithm (all these limits can be increased on
874 demand, as a custom version, because this would require a bit more
875 memory):
876 &lt;ul&gt;
877 &lt;li&gt;Maximum total number of hours (periods) per day: 60&lt;/li&gt;
878 &lt;li&gt;Maximum number of working days per week: 35&lt;/li&gt;
879 &lt;li&gt;Maximum total number of teachers: 6000&lt;/li&gt;
880 &lt;li&gt;Maximum total number of sets of students: 30000&lt;/li&gt;
881 &lt;li&gt;Maximum total number of subjects: 6000&lt;/li&gt;
882 &lt;li&gt;Virtually unlimited number of activity tags&lt;/li&gt;
883 &lt;li&gt;Maximum number of activities: 30000&lt;/li&gt;
884 &lt;li&gt;Maximum number of rooms: 6000&lt;/li&gt;
885 &lt;li&gt;Maximum number of buildings: 6000&lt;/li&gt;
886 &lt;li&gt;Possibility of adding multiple teachers and
887 students sets for each activity. (it is possible
888 also to have no teachers or no students sets for an
889 activity)&lt;/li&gt;
890 &lt;li&gt;Virtually unlimited number of time constraints&lt;/li&gt;
891 &lt;li&gt;Virtually unlimited number of space constraints&lt;/li&gt;
892 &lt;/ul&gt;&lt;/li&gt;
893
894 &lt;li&gt;A large and flexible palette of time constraints:
895 &lt;ul&gt;
896 &lt;li&gt;Break periods&lt;/li&gt;
897 &lt;li&gt;For teacher(s):
898 &lt;ul&gt;
899 &lt;li&gt;Not available periods&lt;/li&gt;
900 &lt;li&gt;Max/min days per week&lt;/li&gt;
901 &lt;li&gt;Max gaps per day/week&lt;/li&gt;
902 &lt;li&gt;Max hours daily/continuously&lt;/li&gt;
903 &lt;li&gt;Min hours daily&lt;/li&gt;
904 &lt;li&gt;Max hours daily/continuously with an activity tag&lt;/li&gt;
905
906 &lt;li&gt;Respect working in an hourly interval a max number of
907 days per week&lt;/li&gt;
908 &lt;/ul&gt;&lt;/li&gt;
909 &lt;li&gt;For students (sets):
910 &lt;ul&gt;
911 &lt;li&gt;Not available periods&lt;/li&gt;
912 &lt;li&gt;Begins early (specify max allowed beginnings at second hour)&lt;/li&gt;
913 &lt;li&gt;Max gaps per day/week&lt;/li&gt;
914 &lt;li&gt;Max hours daily/continuously&lt;/li&gt;
915 &lt;li&gt;Min hours daily&lt;/li&gt;
916 &lt;li&gt;Max hours daily/continuously with an activity tag&lt;/li&gt;
917
918 &lt;li&gt;Respect working in an hourly interval a max number of
919 days per week&lt;/li&gt;
920 &lt;/ul&gt;&lt;/li&gt;
921 &lt;li&gt;For an activity or a set of activities/subactivities:
922 &lt;ul&gt;
923 &lt;li&gt;A single preferred starting time&lt;/li&gt;
924 &lt;li&gt;A set of preferred starting times&lt;/li&gt;
925 &lt;li&gt;A set of preferred time slots&lt;/li&gt;
926 &lt;li&gt;Min/max days between them&lt;/li&gt;
927 &lt;li&gt;End(s) students day&lt;/li&gt;
928 &lt;li&gt;Same starting time/day/hour&lt;/li&gt;
929 &lt;li&gt;Occupy max time slots from selection (a complex and
930 flexible constraint, useful in many situations)&lt;/li&gt;
931 &lt;li&gt;Consecutive, ordered, grouped (for 2 or 3 (sub)activities)&lt;/li&gt;
932 &lt;li&gt;Not overlapping&lt;/li&gt;
933 &lt;li&gt;Max simultaneous in selected time slots&lt;/li&gt;
934 &lt;li&gt;Min gaps between a set of (sub)activities&lt;/li&gt;
935 &lt;/ul&gt;&lt;/li&gt;
936 &lt;/ul&gt;&lt;/li&gt;
937
938 &lt;li&gt;A large and flexible palette of space constraints:
939 &lt;ul&gt;
940 &lt;li&gt;Room not available periods&lt;/li&gt;
941 &lt;li&gt;For teacher(s):
942 &lt;ul&gt;
943 &lt;li&gt;Home room(s)&lt;/li&gt;
944 &lt;li&gt;Max building changes per day/week&lt;/li&gt;
945 &lt;li&gt;Min gaps between building changes&lt;/li&gt;
946 &lt;/ul&gt;
947 &lt;/li&gt;
948
949 &lt;li&gt;For students (sets):
950 &lt;ul&gt;
951 &lt;li&gt;Home room(s)&lt;/li&gt;
952 &lt;li&gt;Max building changes per day/week&lt;/li&gt;
953 &lt;li&gt;Min gaps between building changes&lt;/li&gt;
954 &lt;/ul&gt;
955 &lt;/li&gt;
956 &lt;li&gt;Preferred room(s):
957 &lt;ul&gt;
958 &lt;li&gt;For a subject&lt;/li&gt;
959 &lt;li&gt;For an activity tag&lt;/li&gt;
960 &lt;li&gt;For a subject and an activity tag&lt;/li&gt;
961 &lt;li&gt;Individually for a (sub)activity&lt;/li&gt;
962 &lt;/ul&gt;
963 &lt;/li&gt;
964
965 &lt;li&gt;For a set of activities:
966 &lt;ul&gt;
967 &lt;li&gt;Occupy a maximum number of different rooms&lt;/li&gt;
968 &lt;/ul&gt;
969 &lt;/li&gt;
970 &lt;/ul&gt;
971 &lt;/li&gt;
972 &lt;/ul&gt;&lt;/p&gt;
973
974 &lt;p&gt;I have not used it myself, as I am not involved in time table
975 planning at a school, but it seem to work fine when I test it. If you
976 need to set up your schools time table, and is tired of doing it
977 manually, check it out.
978
979 A quick summary on how to use it can be found in
980 &lt;a href=&quot;http://marvelsoft.co.in/wp/2012/03/generate-timetable-for-state-cbse-icse-igcse-schools-free/&quot;&gt;a
981 blog post from MarvelSoft&lt;/a&gt;. If you find FET useful, please provide
982 a recipe for the Debian Edu project in the
983 &lt;a href=&quot;http://wiki.debian.org/DebianEdu#Howtos&quot;&gt;Debian Edu HowTo
984 section&lt;/a&gt;.&lt;/p&gt;
985 </description>
986 </item>
987
988 </channel>
989 </rss>