+<p>The report format in open311 and the report format in FixMyStreet
+differ in a key part. FixMyStreet have a title and a description,
+while Open311 only have a description and lack the title. I'm not
+quite sure how to best handle this yet. When asking for a FixMyStreet
+report in Open311 format, I just merge title an description into the
+open311 description, but this is not going to work if the open311 API
+should be used for submitting new reports to FixMyStreet.</p>
+
+<p>The search feature in Open311 is missing a way to ask for problems
+near a geographic location. I believe this is important if one is to
+use Open311 as the query language for mobile units. The specification
+should be extended to handle this, probably using some new lat=, lon=
+and range= options.</p>
+
+<p>The final challenge I see is that the FixMyStreet code handle
+several administrations in one interface, while the Open311 API seem
+to assume only one administration. For FixMyStreet, this mean a
+report can be sent to several administrations, and the categories
+available depend on the location of the problem. Not quite sure how
+to best handle this. I've noticed
+<a href="http://seeclickfix.com/open311/">SeeClickFix</a> added
+latitude and longitude options to the services request, but it do not
+solve the problem of what to return when no location is specified.
+Will have to investigate this a bit more.</p>
+
+<p>My distaste for web forums have kept me from bringing these issues
+up with the open311 developer group. I really wish they had a email
+list available via <a href="http://www.gmane.org/">Gmane</a> to use for
+discussions instead of only
+<a href="http://lists.open311.org/groups/discuss">a forum<a/>. Oh,
+well. That will probably resolve itself, one way or another. I've
+also tried visiting the IRC channel #open311 on FreeNode, but no-one
+seem to reply to my questions there. This make me wonder if I just
+fail to understand how the open311 community work. It sure do not
+work like the free software project communities I am used to.</p>
+
+ </div>
+ <div class="tags">
+
+
+ Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>, <a href="http://people.skolelinux.org/pere/blog/tags/open311">open311</a>.
+
+
+ </div>
+ </div>
+ <div class="padding"></div>
+
+ <div class="entry">
+ <div class="title">
+ <a href="http://people.skolelinux.org/pere/blog/Experimental_Open311_API_for_the_mySociety_fixmystreet_system.html">Experimental Open311 API for the mySociety fixmystreet system</a>
+ </div>
+ <div class="date">
+ 30th April 2011
+ </div>
+ <div class="body">
+ <p>Today, the first draft implementation of an
+<a href="http://www.open311.org/">Open311 API</a> for the Norwegian
+service <a href="http://www.fiksgatami.no/">FiksGataMi</a> started to
+work. It is only available on the developer server for now, and I
+have not tested it using any existing Open311 client (I lack the
+platforms needed to run the clients I have found so far), but it is
+able to query the database and extract a list of open and closed
+requests within a given category and reported to a given municipality.
+I believe that is a good start to create a useful service for those
+that want to do data mining on the requests submitted so far.</p>
+
+<p>Where is it? Visit
+<a href="http://fiksgatami-dev.nuug.no/open311.cgi/v2/">http://fiksgatami-dev.nuug.no/open311.cgi/v2/</a>
+to have a look. Please send feedback to the
+<a href="http://lists.nuug.no/mailman/listinfo/fiksgatami">fiksgatami
+(at) nuug.no</a> mailing list.</p>
+
+ </div>
+ <div class="tags">
+
+
+ Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>, <a href="http://people.skolelinux.org/pere/blog/tags/open311">open311</a>.
+
+
+ </div>
+ </div>
+ <div class="padding"></div>
+
+ <div class="entry">
+ <div class="title">
+ <a href="http://people.skolelinux.org/pere/blog/Free_Software_vs__proprietary_softare___.html">Free Software vs. proprietary softare...</a>
+ </div>
+ <div class="date">
+ 20th June 2011
+ </div>
+ <div class="body">
+ <p>Reading
+<a href="http://blog.thingiverse.com/2011/06/20/open-source-vs-closed-source-eulas/">the
+thingiverse blog</a>, I came across two highlights of interesting
+parts of the
+<a href="http://wiki.blender.org/index.php/Autodesk_EULA">Autodesk</a>
+and
+<a href="http://blog.makezine.com/archive/2011/06/things-you-cant-do-with-the-microsoft-kinect-sdk.html">Microsoft
+Kinect</a> End User License Agreements (EULAs), which illustrates
+quite well why I stay away from software with EULAs. Whenever I take
+the time to read their content, the terms are simply unacceptable.</p>
+
+ </div>
+ <div class="tags">
+
+
+ Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett</a>.
+
+
+ </div>
+ </div>
+ <div class="padding"></div>
+
+ <div class="entry">
+ <div class="title">
+ <a href="http://people.skolelinux.org/pere/blog/Perl_modules_used_by_FixMyStreet_which_are_missing_in_Debian_Squeeze.html">Perl modules used by FixMyStreet which are missing in Debian/Squeeze</a>
+ </div>
+ <div class="date">
+ 26th July 2011
+ </div>
+ <div class="body">
+ <p>The Norwegian <a href="http://www.fiksgatami.no/">FiksGataMi</A>
+site is build on Debian/Squeeze, and this platform was chosen because
+I am most familiar with Debian (being a Debian Developer for around 10
+years) because it is the latest stable Debian release which should get
+security support for a few years.</p>
+
+<p>The web service is written in Perl, and depend on some perl modules
+that are missing in Debian at the moment. It would be great if these
+modules were added to the Debian archive, allowing anyone to set up
+their own <a href="http://www.fixmystreet.com">FixMyStreet</a> clone
+in their own country using only Debian packages. The list of modules
+missing in Debian/Squeeze isn't very long, and I hope the perl group
+will find time to package the 12 modules Catalyst::Plugin::SmartURI,
+Catalyst::Plugin::Unicode::Encoding, Catalyst::View::TT, Devel::Hide,
+Sort::Key, Statistics::Distributions, Template::Plugin::Comma,
+Template::Plugin::DateTime::Format, Term::Size::Any, Term::Size::Perl,
+URI::SmartURI and Web::Scraper to make the maintenance of FixMyStreet
+easier in the future.</p>
+
+<p>Thanks to the great tools in Debian, getting the missing modules
+installed on my server was a simple call to 'cpan2deb Module::Name'
+and 'dpkg -i' to install the resulting package. But this leave me
+with the responsibility of tracking security problems, which I really
+do not have time for.</p>
+
+ </div>
+ <div class="tags">
+
+
+ Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami</a>.
+
+
+ </div>
+ </div>
+ <div class="padding"></div>
+
+ <div class="entry">
+ <div class="title">
+ <a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">What is missing in the Debian desktop, or why my parents use Kubuntu</a>
+ </div>
+ <div class="date">
+ 29th July 2011
+ </div>
+ <div class="body">
+ <p>While at Debconf11, I have several times during discussions
+mentioned the issues I believe should be improved in Debian for its
+desktop to be useful for more people. The use case for this is my
+parents, which are currently running Kubuntu which solve the
+issues.</p>
+
+<p>I suspect these four missing features are not very hard to
+implement. After all, they are present in Ubuntu, so if we wanted to
+do this in Debian we would have a source.</p>
+
+<ol>
+
+<li><strong>Simple GUI based upgrade of packages.</strong> When there
+are new packages available for upgrades, a icon in the KDE status bar
+indicate this, and clicking on it will activate the simple upgrade
+tool to handle it. I have no problem guiding both of my parents
+through the process over the phone. If a kernel reboot is required,
+this too is indicated by the status bars and the upgrade tool. Last
+time I checked, nothing with the same features was working in KDE in
+Debian.</li>
+
+<li><strong>Simple handling of missing Firefox browser
+plugins.</strong> When the browser encounter a MIME type it do not
+currently have a handler for, it will ask the user if the system
+should search for a package that would add support for this MIME type,
+and if the user say yes, the APT sources will be searched for packages
+advertising the MIME type in their control file (visible in the
+Packages file in the APT archive). If one or more packages are found,
+it is a simple click of the mouse to add support for the missing mime
+type. If the package require the user to accept some non-free
+license, this is explained to the user. The entire process make it
+more clear to the user why something do not work in the browser, and
+make the chances higher for the user to blame the web page authors and
+not the browser for any missing features.</li>
+
+<li><strong>Simple handling of missing multimedia codec/format
+handlers.</strong> When the media players encounter a format or codec
+it is not supporting, a dialog pop up asking the user if the system
+should search for a package that would add support for it. This
+happen with things like MP3, Windows Media or H.264. The selection
+and installation procedure is very similar to the Firefox browser
+plugin handling. This is as far as I know implemented using a
+gstreamer hook. The end result is that the user easily get access to
+the codecs that are present from the APT archives available, while
+explaining more on why a given format is unsupported by Ubuntu.</li>
+
+<li><strong>Better browser handling of some MIME types.</strong> When
+displaying a text/plain file in my Debian browser, it will propose to
+start emacs to show it. If I remember correctly, when doing the same
+in Kunbutu it show the file as a text file in the browser. At least I
+know Opera will show text files within the browser. I much prefer the
+latter behaviour.</li>
+
+</ol>
+
+<p>There are other nice features as well, like the simplified suite
+upgrader, but given that I am the one mostly doing the dist-upgrade,
+it do not matter much.</p>
+
+<p>I really hope we could get these features in place for the next
+Debian release. It would require the coordinated effort of several
+maintainers, but would make the end user experience a lot better.</p>
+
+ </div>
+ <div class="tags">
+
+
+ Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia</a>, <a href="http://people.skolelinux.org/pere/blog/tags/web">web</a>.
+
+
+ </div>
+ </div>
+ <div class="padding"></div>
+
+ <div class="entry">
+ <div class="title">
+ <a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">What should start from /etc/rcS.d/ in Debian? - almost nothing</a>
+ </div>
+ <div class="date">
+ 30th July 2011
+ </div>
+ <div class="body">
+ <p>In the Debian boot system, several packages include scripts that
+are started from /etc/rcS.d/. In fact, there is a bite more of them
+than make sense, and this causes a few problems. What kind of
+problems, you might ask. There are at least two problems. The first
+is that it is not possible to recover a machine after switching to
+runlevel 1. One need to actually reboot to get the machine back to
+the expected state. The other is that single user boot will sometimes
+run into problems because some of the subsystems are activated before
+the root login is presented, causing problems when trying to recover a
+machine from a problem in that subsystem. A minor additional point is
+that moving more scripts out of rcS.d/ and into the other rc#.d/
+directories will increase the amount of scripts that can run in
+parallel during boot, and thus decrease the boot time.</p>
+
+<p>So, which scripts should start from rcS.d/. In short, only the
+scripts that _have_ to execute before the root login prompt is
+presented during a single user boot should go there. Everything else
+should go into the numeric runlevels. This means things like
+lm-sensors, fuse and x11-common should not run from rcS.d, but from
+the numeric runlevels. Today in Debian, there are around 115 init.d
+scripts that are started from rcS.d/, and most of them should be moved
+out. Do your package have one of them? Please help us make single
+user and runlevel 1 better by moving it.</p>
+
+<p>Scripts setting up the screen, keyboard, system partitions
+etc. should still be started from rcS.d/, but there is for example no
+need to have the network enabled before the single user login prompt
+is presented.</p>
+
+<p>As always, things are not so easy to fix as they sound. To keep
+Debian systems working while scripts migrate and during upgrades, the
+scripts need to be moved from rcS.d/ to rc2.d/ in reverse dependency
+order, ie the scripts that nothing in rcS.d/ depend on can be moved,
+and the next ones can only be moved when their dependencies have been
+moved first. This migration must be done sequentially while we ensure
+that the package system upgrade packages in the right order to keep
+the system state correct. This will require some coordination when it
+comes to network related packages, but most of the packages with
+scripts that should migrate do not have anything in rcS.d/ depending
+on them. Some packages have already been updated, like the sudo
+package, while others are still left to do. I wish I had time to work
+on this myself, but real live constrains make it unlikely that I will
+find time to push this forward.</p>
+
+ </div>
+ <div class="tags">
+
+
+ Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+
+
+ </div>
+ </div>
+ <div class="padding"></div>
+
+ <div class="entry">
+ <div class="title">
+ <a href="http://people.skolelinux.org/pere/blog/How_is_booting_into_runlevel_1_different_from_single_user_boots_.html">How is booting into runlevel 1 different from single user boots?</a>
+ </div>
+ <div class="date">
+ 4th August 2011
+ </div>
+ <div class="body">
+ <p>Wouter Verhelst have some
+<a href="http://grep.be/blog/en/retorts/pere_kubuntu_boot">interesting
+comments and opinions</a> on my blog post on
+<a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">the
+need to clean up /etc/rcS.d/ in Debian</a> and my blog post about
+<a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">the
+default KDE desktop in Debian</a>. I only have time to address one
+small piece of his comment now, and though it best to address the
+misunderstanding he bring forward:</p>
+
+<p><blockquote>
+Currently, a system admin has four options: [...] boot to a
+single-user system (by adding 'single' to the kernel command line;
+this runs rcS and rc1 scripts)
+</blockquote></p>
+
+<p>This make me believe Wouter believe booting into single user mode
+and booting into runlevel 1 is the same. I am not surprised he
+believe this, because it would make sense and is a quite sensible
+thing to believe. But because the boot in Debian is slightly broken,
+runlevel 1 do not work properly and it isn't the same as single user
+mode. I'll try to explain what is actually happing, but it is a bit
+hard to explain.</p>
+
+<p>Single user mode is defined like this in /etc/inittab:
+"<tt>~~:S:wait:/sbin/sulogin</tt>". This means the only thing that is
+executed in single user mode is sulogin. Single user mode is a boot
+state "between" the runlevels, and when booting into single user mode,
+only the scripts in /etc/rcS.d/ are executed before the init process
+enters the single user state. When switching to runlevel 1, the state
+is in fact not ending in runlevel 1, but it passes through runlevel 1
+and end up in the single user mode (see /etc/rc1.d/S03single, which
+runs "init -t1 S" to switch to single user mode at the end of runlevel
+1. It is confusing that the 'S' (single user) init mode is not the
+mode enabled by /etc/rcS.d/ (which is more like the initial boot
+mode).</p>
+
+<p>This summary might make it clearer. When booting for the first
+time into single user mode, the following commands are executed:
+"<tt>/etc/init.d/rc S; /sbin/sulogin</tt>". When booting into
+runlevel 1, the following commands are executed: "<tt>/etc/init.d/rc
+S; /etc/init.d/rc 1; /sbin/sulogin</tt>". A problem show up when
+trying to continue after visiting single user mode. Not all services
+are started again as they should, causing the machine to end up in an
+unpredicatble state. This is why Debian admins recommend rebooting
+after visiting single user mode.</p>
+
+<p>A similar problem with runlevel 1 is caused by the amount of
+scripts executed from /etc/rcS.d/. When switching from say runlevel 2
+to runlevel 1, the services started from /etc/rcS.d/ are not properly
+stopped when passing through the scripts in /etc/rc1.d/, and not
+started again when switching away from runlevel 1 to the runlevels
+2-5. I believe the problem is best fixed by moving all the scripts
+out of /etc/rcS.d/ that are not <strong>required</strong> to get a
+functioning single user mode during boot.</p>
+
+<p>I have spent several years investigating the Debian boot system,
+and discovered this problem a few years ago. I suspect it originates
+from when sysvinit was introduced into Debian, a long time ago.</p>
+
+ </div>
+ <div class="tags">
+
+
+ Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
+
+
+ </div>
+ </div>
+ <div class="padding"></div>
+
+ <div class="entry">
+ <div class="title">
+ <a href="http://people.skolelinux.org/pere/blog/Ripping_problematic_DVDs_using_dvdbackup_and_genisoimage.html">Ripping problematic DVDs using dvdbackup and genisoimage</a>
+ </div>
+ <div class="date">
+ 17th September 2011
+ </div>
+ <div class="body">
+ <p>For convenience, I want to store copies of all my DVDs on my file
+server. It allow me to save shelf space flat while still having my
+movie collection easily available. It also make it possible to let
+the kids see their favorite DVDs without wearing the physical copies
+down. I prefer to store the DVDs as ISOs to keep the DVD menu and
+subtitle options intact. It also ensure that the entire film is one
+file on the disk. As this is for personal use, the ripping is
+perfectly legal here in Norway.</p>
+
+<p>Normally I rip the DVDs using dd like this:</p>
+
+<blockquote><pre>
+#!/bin/sh
+# apt-get install lsdvd
+title=$(lsdvd 2>/dev/null|awk '/Disc Title: / {print $3}')
+dd if=/dev/dvd of=/storage/dvds/$title.iso bs=1M
+</pre></blockquote>
+
+<p>But some DVDs give a input/output error when I read it, and I have
+been looking for a better alternative. I have no idea why this I/O
+error occur, but suspect my DVD drive, the linux kernel driver or
+something fishy with the DVDs in question. Or perhaps all three.</p>