<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet Debian</title>
	<link>http://planet.debian.org/</link>
	<language>en</language>
	<description>Planet Debian - http://planet.debian.org/</description>


<item>
	<title>Michal &amp;#268;iha&amp;#345;: Migrating code to github</title>
	<guid>http://blog.cihar.com/archives/2012/02/08/migrating-code-github/?utm_source=rss2</guid>
	<link>http://blog.cihar.com/archives/2012/02/08/migrating-code-github/?utm_source=rss2</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/nijel.png&quot; width=&quot;64&quot; height=&quot;67&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;As you might have noticed from my previous posts, we&#39;ve moved  &lt;a href=&quot;http://www.phpmyadmin.net/&quot;&gt;phpMyAdmin&lt;/a&gt; code to &lt;a href=&quot;http://github.com/phpmyadmin/&quot;&gt;github&lt;/a&gt;. Now I&#39;m going to describe some things which might be useful for you if you are about do to similar switch.&lt;/p&gt;
&lt;p&gt;While using git, moving to another hosting provider should be pretty straightforward. Just add another remote, push code there and it should be done. On the other side you probably have dozens of things in your infrastructure which you need to adjust. So the first thing to do is write down what all services are connected to your current git repositories. Let me name some which might be worth checking:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;continuous integration server&lt;/li&gt;
&lt;li&gt;snapshots generating&lt;/li&gt;
&lt;li&gt;demo server (in case you&#39;re providing something like we do)&lt;/li&gt;
&lt;li&gt;commit notifications&lt;/li&gt;
&lt;li&gt;various statistics services such as cia.vc&lt;/li&gt;
&lt;li&gt;website generating&lt;/li&gt;
&lt;li&gt;references in wiki, website and documetation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you think you have remembered all important things (the less important will probably show up anyway, but majority of things should work), you&#39;re ready to make the move.&lt;/p&gt;
&lt;p&gt;I&#39;ve decided to make the move in few steps. First push all data to new location, what can take some time. I&#39;ll get in more details to that later. In the same time I asked all contributors to give me their login information, so that I can allow them access to new repositories. Once all recently active developers were migrated, it was time to push all remaining commits to new git repositories and make the switch for real.&lt;/p&gt;
&lt;p&gt;Pushing git repo to another location, should be pretty easy. On the other side if you have many branches, it get&#39;s slightly more complex, I&#39;ve ended up with following shell snippet (pushing all branches present in origin to github remote):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git branch -r | grep origin/ | grep -v HEAD | sed &#39;s@.*/@@&#39; | while read b ; do git checkout $b ; git push github $b:$b ; done
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Please ensure that you check output of this, because you may hit network problems somewhere in the middle and you end up with few branches than you expect. As the code is pretty much idempotent, you can safely run it several times until there is nothing to push. You should also push all tags to new location:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git push --tags github
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Okay, we&#39;ve all data on right place, so let&#39;s switch all our users to new location:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git remote set-url origin git@github.com:phpmyadmin/phpmyadmin.git # read/write
git remote set-url origin git://github.com/phpmyadmin/phpmyadmin.git # read only
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Of course everybody has to do this manually.&lt;/p&gt;
&lt;p&gt;Next good thing is to let people know when they are using wrong repo (which will stay there for some time). Unfortunately there is AFAIK no way to warn them on pull, so let&#39;s warn at least on push:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ cat &amp;gt; hooks/update
#!/bin/sh
echo &quot;phpMyAdmin git repositories have moved to https://github.com/phpmyadmin&quot;
exit 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I think this is pretty much all. You can find some more bits in our &lt;a href=&quot;http://wiki.phpmyadmin.net/pma/Git_migration&quot;&gt;Git migration wiki page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;PS: Thanks to github for offering us hosting and sorry for breaking their branch displaying page by too many divergent branches.&lt;/p&gt;

&lt;p style=&quot;font-size: smaller;&quot;&gt;
Filed under: 


&lt;a href=&quot;http://blog.cihar.com/archives/coding/&quot;&gt;Coding&lt;/a&gt;

&lt;a href=&quot;http://blog.cihar.com/archives/english/&quot;&gt;English&lt;/a&gt;

&lt;a href=&quot;http://blog.cihar.com/archives/phpmyadmin/&quot;&gt;Phpmyadmin&lt;/a&gt;

|

&lt;a href=&quot;http://blog.cihar.com/archives/2012/02/08/migrating-code-github/#comments&quot;&gt;1 comments&lt;/a&gt;
|
&lt;a href=&quot;http://flattr.com/thing/59773/Michal-Cihars-Weblog&quot;&gt;Flattr this!&lt;/a&gt;
&lt;/p&gt; </description> 
	<pubDate>Wed, 08 Feb 2012 11:00:00 +0000</pubDate>
  <author>michal@cihar.com (Michal Čihař)</author>  
</item> 
<item>
	<title>Pietro Abate: Dependency order matters !</title>
	<guid>http://mancoosi.org/395 at http://mancoosi.org/~abate</guid>
	<link>http://mancoosi.org/~abate/dependency-order-matters</link>
     <description>  &lt;p&gt;Recently I&#39;ve discovered a subtle consequence of how the order in which dependencies are specified in debian actually matters. While re-factoring the code of dose3, I changed the order in which dependencies are considered by our sat solver (of edos-fame) . I witnessed a twofold performance loss just by randomizing how variables were presented to our sat solver. This highlights, on one hand, how our solver is strongly dependent on the structure of the problem and, on the other hand the standard practice of debian maintainers to assign an implicit priority in the disjunctive dependencies where the first is the most preferred packages (and maybe the most tested, at least dependency-wise).&lt;/p&gt;

&lt;p&gt;The basic idea of distcheck is to encode the dependencies information contained in a Packages file in CNF format and then to feed them to a sat solver to find out if a package has broken dependencies or if its dependencies are such that no matter what, it would be impossible to install this package on a user machine.&lt;/p&gt;

&lt;p&gt;Conflicts are encoded as binary clauses. So if package A conflicts with package B, I add a constraint they says &quot;not (A and B)&quot; , that is A and B cannot be considered together. The dependencies encoding associates to each disjunction of the depends field a clause that says &quot;A implies B&quot;. If a package foo depends on A,B | C,D , I&#39;ll add &quot;foo implies A and B&quot;  &amp;amp; &quot;foo implies C and D&quot; . This encoding is pretty standard and and it easy to understand.&lt;/p&gt;

&lt;p&gt;The problem is how the sat solver will search for a solution to the problem &quot;Is is possible to install package foo in an empty repository&quot;. The solver we use is very efficient and can easily deal with 100K packages or more. But in general is not very good at dealing with random CNF instances. The reason because edos-debcheck is so efficient lies in the way it exploits the structure of the sat problems.&lt;/p&gt;

&lt;p&gt;The goal of a sat solver is to find a model (that is a variable assignment list) that is compatible with the given set of constraints. So if my encoding of the debian repository is a set of constraints R, the installability problem boils down to add an additional constraint to R imposing that the variable associated to the package foo must be true, and then ask the solver to find a model to make this possible. This installation, in sat terms, would be just an array of variables that must be true in order to satisfy the given set of constraints.&lt;/p&gt;

&lt;p&gt;If you look at the logic problem as a truth table, the idea is to find a row in this table. This is the solution of your problem. Brute force of course is not an option and modern sat solvers use a number of strategies and heuristic to guide the search in the most intelligent way possible. Some of them try to learn from previous attempts, some of them, when they are lost try to pick a random variable to proceed.&lt;/p&gt;

&lt;p&gt;If we consider problems that have a lot of structure, award winning sat solver do not back track very much. By exploiting the structure of the problem, their algorithm allows them to considerably narrow down the search only to those variables that are really important to find a solution.&lt;/p&gt;

&lt;p&gt;All this long introduction was to talk about the solver that is currently used in edos-debcheck and distcheck (that is a rewrite of the edos-debcheck).&lt;/p&gt;

&lt;p&gt;So why dependency order matters ? If we consider any package, even if the policy does not specify any order in the dependencies, it&#39;s common practice to write disjunctive dependencies specifying the most probable and tested alternative first and all other, more esoteric choices later. Moreover real packages are considered *before* virtual packages. Since every developer seems be doing the same, some kind of structure might be hidden in the order in which dependencies are specified.&lt;/p&gt;

&lt;p&gt;Part of the efficiency of the the solver used in our tools is actually due to the fact that its search strategy is strongly dependent on the order in which literal are specified in each clause. Saying the package foo depends on A and B is &quot;different&quot; then saying it depends on B and A, even if semantically equivalent.&lt;/p&gt;

&lt;p&gt;In my tests, I found about a twofold performance loss if the order of literals is either randomized or inverted. This is clearly a specific problem related to our solvers, while other solvers might not be susceptible to such small structural changes. Sat competitions often employs some form of obfuscation strategies of well known problems with well known structures in order to make useless to encode a search strategy that exploits the specific structure of a problem.&lt;/p&gt;

&lt;p&gt;Since here we&#39;re not trying to win a sat competition, but to provide tool to solve a specific problem, we are of course very happy to exploit this structure.&lt;/p&gt; </description> 
	<pubDate>Wed, 08 Feb 2012 10:34:36 +0000</pubDate>

</item> 
<item>
	<title>Gerfried Fuchs: Squeeze RCs&#39;s Squashing 2012 #2</title>
	<guid>http://rhonda.deb.at/blog/2012/02/08#squeeze-RCs-2012-2</guid>
	<link>http://rhonda.deb.at/blog/2012/02/08#squeeze-RCs-2012-2</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/rhonda.png&quot; width=&quot;89&quot; height=&quot;84&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;This is the second entry in my series about squeeze release critical bug squashing. In response to my last blog post it was asked whether this is proper release critical bug squashing. Indeed there haven&#39;t been any patches or upload involved in this, only &lt;acronym title=&quot;Bug Tracking System&quot;&gt;BTS&lt;/acronym&gt; handling, but this doesn&#39;t mean that these bugs weren&#39;t considered to be affecting squeeze. You can see this effort currently as weeding out the &quot;wrong&quot; bugs so that the list gets more useful and actually be able to ask maintainers to address the real issues.&lt;/p&gt;

&lt;p&gt;You can at least see in &lt;a href=&quot;http://bugs.debian.org/release-critical/&quot;&gt;this graph&lt;/a&gt; that the blue line is going down constantly since the year change instead of rising up like before. And I hope I will be able to keep it below the green line for a while still. Also thanks to the release-team and ftpmasters that it was possible to keep the massbugs about waf binary blob not being preferred source for modification out of affecting squeeze and ignore it for the current stable release—the required changes for those would rather be a fair bit intrusive for a stable update.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/637213&quot;&gt;637213&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/648989&quot;&gt;648989&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/584568&quot;&gt;584568&lt;/a&gt;: most stuff (BTS, PTS, ...) use maintainer information from unstable only&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/624464&quot;&gt;624464&lt;/a&gt;: most stuff (BTS, PTS, ...) use maintainer information from unstable only&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/632106&quot;&gt;632106&lt;/a&gt;: most stuff (BTS, PTS, ...) use maintainer information from unstable only&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/632108&quot;&gt;632108&lt;/a&gt;: most stuff (BTS, PTS, ...) use maintainer information from unstable only&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/632262&quot;&gt;632262&lt;/a&gt;: most stuff (BTS, PTS, ...) use maintainer information from unstable only&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/632264&quot;&gt;632264&lt;/a&gt;: most stuff (BTS, PTS, ...) use maintainer information from unstable only&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/632265&quot;&gt;632265&lt;/a&gt;: most stuff (BTS, PTS, ...) use maintainer information from unstable only&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/632266&quot;&gt;632266&lt;/a&gt;: most stuff (BTS, PTS, ...) use maintainer information from unstable only&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/595298&quot;&gt;595298&lt;/a&gt;: squeeze has linux 2.6.32&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/613732&quot;&gt;613732&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/616694&quot;&gt;616694&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/620264&quot;&gt;620264&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/620573&quot;&gt;620573&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/621440&quot;&gt;621440&lt;/a&gt;: libdb4.8 not obsolete in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/624593&quot;&gt;624593&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/626868&quot;&gt;626868&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/628475&quot;&gt;628475&lt;/a&gt;: libdb4.8 not obsolete in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/629838&quot;&gt;629838&lt;/a&gt;: boost1.46 not in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/628475&quot;&gt;628475&lt;/a&gt;: boost1.46 not in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/631623&quot;&gt;631623&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/639990&quot;&gt;639990&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/632763&quot;&gt;632763&lt;/a&gt;: no libevent 2.0 in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/627000&quot;&gt;627000&lt;/a&gt;: not affecting squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/658216&quot;&gt;658216&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/654870&quot;&gt;654870&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/655115&quot;&gt;655115&lt;/a&gt;: this is explicitly about testing&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/657092&quot;&gt;657092&lt;/a&gt;: working in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/655710&quot;&gt;655710&lt;/a&gt;: doesn&#39;t fail in squeeze&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/644691&quot;&gt;644691&lt;/a&gt;: no nautilus 3 in squeeze&lt;/li&gt;
&lt;/ul&gt;
  
&lt;p&gt;I am glad that I managed to keep it up and even have a nice margin in case I can&#39;t put any effort into it some day but still have more bugs squashed than days there are in the year so far. Currently I am at 60 bugs in 39 days. This gives a warm feeling. :)&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

&lt;p align=&quot;right&quot;&gt;
  &lt;i&gt;&lt;a href=&quot;http://rhonda.deb.at/blog/debian&quot;&gt;/debian&lt;/a&gt; | 
    &lt;a href=&quot;http://rhonda.deb.at/blog/debian/squeeze-RCs-2012-2.html&quot;&gt;permanent link&lt;/a&gt; |
    &lt;a href=&quot;http://rhonda.deb.at/blog/debian/squeeze-RCs-2012-2.html&quot;&gt;Comments: 3&lt;/a&gt; |
    &lt;a href=&quot;http://flattr.com/thing/46312/Rhondas-Blog&quot; target=&quot;_blank&quot;&gt;Flattr this&lt;/a&gt;&lt;/i&gt;
&lt;/p&gt; </description> 
	<pubDate>Wed, 08 Feb 2012 09:18:00 +0000</pubDate>

</item> 
<item>
	<title>Richard Hartmann: FOSDEM 2012, the aftermath</title>
	<guid>http://richardhartmann.de/blog/posts/2012/02/fosdem-2012-the-aftermath/</guid>
	<link>http://richardhartmann.de/blog/posts/2012/02/fosdem-2012-the-aftermath/</link>
     <description>  &lt;p&gt;FOSDEM 2012 was very nice, as expected.&lt;/p&gt;
&lt;p&gt;This year, I decided to stop consuming only and getting more
involved. I helped staff the token sale and held two Lightning
Talks. This turned out to be an awesome experience.&lt;/p&gt;
&lt;p&gt;During the beer event, we sold 4600 beer tokens (FOSDEM does not
earn anything from this; all proceeds go to Cafe Delirium). The
sale was staffed with one to three people at all times which made
for a constant but mostly bearable workload. While the others made
good-natured fun of me and my German efficiency, I like to think
that I helped make things run a tad more smoothly. Along those
lines, we will have a sign asking people for exact change and/or to
buy stacks that can be paid in bills if possible, next year; that
should help streamline the whole thing even more. All in all, it
turned out to be quite stressful, but tons of fun. I am looking
forward to chuck in again next year.&lt;/p&gt;
&lt;p&gt;The two Lighting Talks (&lt;a href=&quot;http://fosdem.org/2012/schedule/event/vcsh&quot;&gt;vcsh&lt;/a&gt; on Saturday
and &lt;a href=&quot;http://fosdem.org/2012/schedule/event/gitannex&quot;&gt;git-annex&lt;/a&gt; on
Sunday) I held very rather well received. Feedback after the talks
and online was very positive which is always nice. There&#39;s been a
slight increase in help requests and generic questions, so I assume
people are trying vcsh and git-annex as a consequence of those
talks, which is even nicer.&lt;/p&gt;
&lt;p&gt;Also, I met a &lt;em&gt;lot&lt;/em&gt; of people. Most of the meetings were
pre-arranged, some by chance. Carrying a name tag at all times, I
was approached by several people who knew me online but didn&#39;t know
my face. I will try to always carry a name tag on conferences now
and I suggest others do the same.&lt;/p&gt;
&lt;p&gt;Finally, a huge thank you to everyone who helped make FOSDEM
happen; you rock!&lt;/p&gt; </description> 
	<pubDate>Tue, 07 Feb 2012 22:20:24 +0000</pubDate>

</item> 
<item>
	<title>Sylvain Beucler: Make sure glue isn&#39;t stripped</title>
	<guid>http://blog.beuc.net/posts/Make_sure_glue_isn__39__t_stripped/</guid>
	<link>http://blog.beuc.net/posts/Make_sure_glue_isn__39__t_stripped/</link>
     <description>  &lt;p&gt;If you ever get this cryptic error when loading an Android native app:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.wikibooks.OpenGL/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to load native library: /data/data/org.wikibooks.OpenGL/lib/libnative-activity.so
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1768)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784)
       at android.app.ActivityThread.access$1500(ActivityThread.java:123)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:130)
       at android.app.ActivityThread.main(ActivityThread.java:3835)
       at java.lang.reflect.Method.invokeNative(Native Method)
       at java.lang.reflect.Method.invoke(Method.java:507)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
       at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Unable to load native library: /data/data/org.wikibooks.OpenGL/lib/libnative-activity.so
       at android.app.NativeActivity.onCreate(NativeActivity.java:199)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722)
       ... 11 more
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This may mean that Java couldn&#39;t find the &lt;code&gt;ANativeActivity_onCreate&lt;/code&gt; function in your code, because it was stripped by the compiler.&lt;/p&gt;

&lt;p&gt;If you use the &lt;code&gt;native_app_glue&lt;/code&gt; NDK module, you may have noticed this strange code:&lt;/p&gt;

&lt;pre class=&quot;hl&quot;&gt;    &lt;span class=&quot;hl slc&quot;&gt;// Make sure glue isn&#39;t stripped.&lt;/span&gt;
    &lt;span class=&quot;hl kwd&quot;&gt;app_dummy&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;();&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Let&#39;s experiment what happens with and without this line:&lt;/p&gt;

&lt;p&gt;Calling app_dummy:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ arm-linux-androideabi-objdump -T libs/armeabi/libnative-activity.so  | grep ANativeActivity_onCreate
000067fc g    DF .text  000000f8 ANativeActivity_onCreate
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Not calling app_dummy :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ arm-linux-androideabi-objdump -T libs/armeabi/libnative-activity.so | grep ANativeActivity_onCreate
$   # nothing
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;native_app_glue&lt;/code&gt; mainly defines Android callbacks.  Since none of them are called directly by your code, the compiler strips the &lt;code&gt;android_native_app_glue.o&lt;/code&gt; module entirely.  If you use &lt;code&gt;app_dummy&lt;/code&gt; however, it embeds it.  Fortunately the compiler cannot strip the module on a per-function basis &lt;img src=&quot;http://blog.beuc.net/tags/planet_debian/../../smileys/smile4.png&quot; alt=&quot;;)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That&#39;s why you need to call &lt;code&gt;app_dummy&lt;/code&gt; when using the &lt;code&gt;native_app_glue&lt;/code&gt; NDK module.&lt;/p&gt;

&lt;p&gt;This looks like a ugly work-around though - isn&#39;t there a cleaner way?&lt;/p&gt; </description> 
	<pubDate>Tue, 07 Feb 2012 21:38:48 +0000</pubDate>

</item> 
<item>
	<title>Martin Pitt: fatrace: report system wide file access events</title>
	<guid>http://www.piware.de/?p=594</guid>
	<link>http://www.piware.de/2012/02/fatrace-report-system-wide-file-access-events/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/pitti.png&quot; width=&quot;74&quot; height=&quot;98&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Part of our &lt;a href=&quot;https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-power-consumption&quot;&gt;efforts to reduce power consumption&lt;/a&gt; is to identify processes which keep waking up the disk even when the computer is idle. This already resulted in a few &lt;a href=&quot;https://bugs.launchpad.net/ubuntu-power-consumption&quot;&gt;bug reports&lt;/a&gt; (and some fixes, too), but we only really just began with this.&lt;/p&gt;
&lt;p&gt;Unfortunately there is no really good tool to trace file access events system-wide. &lt;a href=&quot;http://www.lesswatts.org/projects/powertop/&quot;&gt;powertop&lt;/a&gt; claims to, but its output is both very incomplete, and also wrong (e. g. it claims that read accesses are writes). &lt;a href=&quot;http://manpages.ubuntu.com/strace&quot;&gt;strace&lt;/a&gt; gives you everything you do and don’t want to know about what’s going on, but is per-process, and attaching strace to all running and new processes is cumbersome. &lt;a href=&quot;http://www.cse.unsw.edu.au/~aaronc/iosched/doc/blktrace.html&quot;&gt;blktrace&lt;/a&gt; is system-wide, but operates at a way too low level for this task: its output has nothing to do any more with files or even inodes, just raw block numbers which are impossible to convert back to an inode and file path.&lt;/p&gt;
&lt;p&gt;So I created a little tool called &lt;a href=&quot;https://launchpad.net/fatrace&quot;&gt;fatrace&lt;/a&gt; (“file access trace”, not “fat race” &lt;img src=&quot;http://www.piware.de/wp/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt;  ) which uses &lt;a href=&quot;http://lwn.net/Articles/360955/&quot;&gt;fanotify&lt;/a&gt;, a couple of &lt;code&gt;/proc&lt;/code&gt; lookups and some glue to provide this. By default it monitors the whole system, i. e. all mounts (except the virtual ones like /proc, tmpfs, etc.), but you can also tell it to just consider the mount of the current directory. You can write the log into a file (stdout by default), and run it for a specified number of seconds. Optional time stamps and PID filters are also provided.&lt;/p&gt;
&lt;pre&gt;$ sudo fatrace
rsyslogd(967): W /var/log/auth.log
notify-osd(2264): O /usr/share/pixmaps/weechat.xpm
compiz(2001): R device 8:2 inode 658203
[...]
&lt;/pre&gt;
&lt;p&gt;It shows the process name and pid, the event type (&lt;strong&gt;R&lt;/strong&gt;read, &lt;strong&gt;W&lt;/strong&gt;rite, &lt;strong&gt;O&lt;/strong&gt;pen, or &lt;strong&gt;C&lt;/strong&gt;lose), and the path. Sometimes its’ not possible to determine a path (usually because it’s a temporary file which already got deleted, and I suspect mmaps as well), in that case it shows the device and inode number; such programs then need closer inspection with strace.&lt;/p&gt;
&lt;p&gt;If you run this in gnome-terminal, there is an annoying feedback loop, as gnome-terminal causes a disk access with each output line, which then causes another output line, ad infinitum. To fix this, you can either redirect output to a file (&lt;code&gt;-o /tmp/trace&lt;/code&gt;) or ignore the PID of gnome-terminal (&lt;code&gt;-p `pidof gnome-terminal`&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;So to investigate which programs are keeping your disk spinning, run something like&lt;/p&gt;
&lt;pre&gt;  $ sudo fatrace -o /tmp/trace -s 60
&lt;/pre&gt;
&lt;p&gt;and then do nothing until it finishes.&lt;/p&gt;
&lt;p&gt;My next task will be to write an integration program which calls fatrace and powertop, and creates a nice little report out of that raw data, sorted by number of accesses and process name, and all that. But it might already help some folks as it is right now.&lt;/p&gt;
&lt;p&gt;The code lives in &lt;code&gt;bzr branch lp:fatrace&lt;/code&gt; (&lt;a href=&quot;http://bazaar.launchpad.net/~pitti/fatrace/trunk&quot;&gt;web view&lt;/a&gt;), you can just run &lt;code&gt;make&lt;/code&gt; and &lt;code&gt;sudo ./fatrace&lt;/code&gt;. I also uploaded a package to Ubuntu Precise, but it still needs to go through the NEW queue. I also made a 0.1 release, so you can just grab the &lt;a href=&quot;https://launchpad.net/fatrace/+download&quot;&gt;release tarball&lt;/a&gt; if you prefer. Have a look at the manpage and &lt;code&gt;--help&lt;/code&gt;, it should be pretty self-explanatory.&lt;/p&gt; </description> 
	<pubDate>Tue, 07 Feb 2012 19:53:05 +0000</pubDate>

</item> 
<item>
	<title>Michal &amp;#268;iha&amp;#345;: phpMyAdmin is now at github</title>
	<guid>http://blog.cihar.com/archives/2012/02/07/phpmyadmin-now-github/?utm_source=rss2</guid>
	<link>http://blog.cihar.com/archives/2012/02/07/phpmyadmin-now-github/?utm_source=rss2</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/nijel.png&quot; width=&quot;64&quot; height=&quot;67&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I&#39;ve just updated &lt;a href=&quot;http://www.phpmyadmin.net/&quot;&gt;phpMyAdmin&lt;/a&gt; repos on github and enabled notifications hooks
there, so the &lt;a href=&quot;http://blog.cihar.com/archives/2012/02/05/phpmyadmin-goes-github/&quot;&gt;earlier announced switch to github&lt;/a&gt; is done.&lt;/p&gt;
&lt;p&gt;All you need to do is point your repositories to pull/push to github,
for main repository it can be done using:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git remote set-url origin git@github.com:phpmyadmin/phpmyadmin.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you are using just read only access then use following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git remote set-url origin git://github.com/phpmyadmin/phpmyadmin.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For other repositories just replace last part of the URL with
repository name (they have not changed).&lt;/p&gt;
&lt;p&gt;Everything should work as before, pushes should be now faster, because
all notifications are done in background on github and they don&#39;t block
pushing.&lt;/p&gt;

&lt;p style=&quot;font-size: smaller;&quot;&gt;
Filed under: 


&lt;a href=&quot;http://blog.cihar.com/archives/english/&quot;&gt;English&lt;/a&gt;

&lt;a href=&quot;http://blog.cihar.com/archives/phpmyadmin/&quot;&gt;Phpmyadmin&lt;/a&gt;

|

&lt;a href=&quot;http://blog.cihar.com/archives/2012/02/07/phpmyadmin-now-github/#comments&quot;&gt;2 comments&lt;/a&gt;
|
&lt;a href=&quot;http://flattr.com/thing/59773/Michal-Cihars-Weblog&quot;&gt;Flattr this!&lt;/a&gt;
&lt;/p&gt; </description> 
	<pubDate>Tue, 07 Feb 2012 14:04:22 +0000</pubDate>
  <author>michal@cihar.com (Michal Čihař)</author>  
</item> 
<item>
	<title>Wouter Verhelst: Video at FOSDEM 2012</title>
	<guid>http://grep.be/blog/en/life/fosdem/2012_video</guid>
	<link>http://grep.be/blog/en/life/fosdem/2012_video</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/wouter3.png&quot; width=&quot;85&quot; height=&quot;80&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;A year ago, during FOSDEM 2011, I walked up to the &lt;a href=&quot;http://www.namurlug.org&quot;&gt;NamurLUG&lt;/a&gt; folks who&#39;d been doing video
coverage of FOSDEM for years, and suggested that this year, maybe they
should consider using &lt;a href=&quot;http://dvswitch.alioth.debian.org&quot;&gt;dvswitch&lt;/a&gt; for video
coverage. While they seemed agreeable to this idea, they simply had not
had the time to look at it in detail, and were therefore not using it.
Since I&#39;ve used dvswitch in the past, both as part of the &lt;a href=&quot;http://www.debconf.org/&quot;&gt;DebConf video team&lt;/a&gt; and for my own
concert recordings, I reasoned this a problem that could be solved by
joining the video team.&lt;/p&gt;
&lt;p&gt;However, when it came to be time to start preparing for FOSDEM 2012,
we found that many of the NamurLUG people were not going to have as much
time to prepare for video coverage as they had during past years, and
therefore responsibility of FOSDEM video coverage fell entirely to
me. This was fairly unexpected, though not too daunting.&lt;/p&gt;
&lt;p&gt;For those of you who don&#39;t know dvswitch very well: a typical
dvswitch installation for coverage of a talk requires:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Two cameras; one to capture the speaker, one to capture audience
members asking questions.&lt;/li&gt;
&lt;li&gt;A &lt;a href=&quot;http://www.grassvalley.com/products/twinpact100&quot;&gt;twinpact
100&lt;/a&gt;, used to convert a VGA output into a DV stream that we can load
into dvswitch&lt;/li&gt;
&lt;li&gt;Three laptops: one for the audience camera, one for the twinpact,
and one for the speaker camera and the dvswitch installation&lt;/li&gt;
&lt;li&gt;A GigE network between the three laptops, with an uplink to do
streaming&lt;/li&gt;
&lt;li&gt;A large amount of diskspace to store the recordings on. Since
dvswitch records in raw DV, you require approximately 13GB per hour of
recorded video.&lt;/li&gt;
&lt;li&gt;Some powerful systems to do transcoding from DV to a streaming
format such as Ogg Theora or WebM
&lt;/li&gt;&lt;li&gt;A fairly extensive audio setup: one wireless headset microphone for
the speaker, one or two wireless handheld microphones for people in the
audience, and a number of microphones at select positions in the room to
pick up ambient noise (which for obvious reasons you don&#39;t want to
overdo on, but which if done well makes the audio on your recording
sound much more natural). This also requires a mixing console.&lt;/li&gt;
&lt;li&gt;And last but not least a (network of) streaming server(s) to do the
streaming to people watching from home.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a rather large amount of work, and therefore it is not too
unexpected that for DebConf, the DebConf video team takes a week to
properly set up two rooms so that they can be used for recording.
However, for FOSDEM we only have &lt;em&gt;less than a day&lt;/em&gt; on-site to set
up things, and we were going to cover &lt;em&gt;five&lt;/em&gt; rooms. So, I tried
to cut corners as much as possible:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;We were going to work with one camera per room, rather than two. Not
only would this reduce the number of required volunteers (of which I
wasn&#39;t sure yet at that point how I&#39;d find them), it would also reduce
the amount of preparation needing to be done, and it would reduce the
number of things that could go wrong.&lt;/li&gt;
&lt;li&gt;We were going to have the network team do our network, rather than
try to do it ourselves. The result was that we were not going to have to
lay out cables, cut them, crimp connectors on them, test them, etc, and
would only need to worry about using the network, instead of building
it.&lt;/li&gt;
&lt;li&gt;Since I&#39;d read &lt;a href=&quot;http://thomas.apestaart.org/log/?p=1329&quot;&gt;Thomas&#39; announcement&lt;/a&gt;
about an &#39;&#39;&lt;em&gt;offer I cannot refuse&lt;/em&gt;&#39;&#39;, I contacted him to see
about that offer and get it all set up for FOSDEM. This way, I wouldn&#39;t
have to worry about streaming servers etc, instead just about getting a
stream on the network, into a flumotion server running somewhere; and
after that, it would no longer be my problem.&lt;/li&gt;
&lt;li&gt;I decided to simplify the audio setup somewhat, and not use ambient
mics. These are nice, but not essential, so we could do without
them, and that would be (at least) two microphones per room that the
team wouldn&#39;t have to rent, place, wire up, and tune.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So in the end, I would need to take care of ten firewire-capable
laptops, five cameras, five mixing consoles, several microphones, a
number of transcoding machines, and shitloads of cabling (power,
firewire, and audio). And about a week or two before the conference, as
the massiveness of what we were about to do started to sink in, I was
starting to have bad dreams of what would happen, wondering what I&#39;d
gotten myself into this time.&lt;/p&gt;
&lt;p&gt;Now, one day after FOSDEM, I have to say it all turned out okay, but
there are some things where there&#39;s still room for improvement. So that
I don&#39;t forget, I thought I&#39;d make a list of things that went well, and
one of things that didn&#39;t go well. And since that might be interesting
for other people, I thought I&#39;d do it here, rather than in a private
file.&lt;/p&gt;
&lt;p&gt;First, things that did not go so well:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Set-up for some rooms took more time than we had, and as such
some rooms did not get properly streamed or recorded for their first few
talks. This was due to the fact that there was some confused
communication between some members of the team, which meant that we lost
a day that we&#39;d planned for preparation, and as such we couldn&#39;t test
as much as we&#39;d hoped. We need to improve on that next year. Ideally, we
should run the full set-up somewhere, with all cameras and all laptops
running, and making sure that everything is ready to be set up and that
we have every cable we need, before dividing everything over a number of
boxes (one per room) and bringing it to the conference.&lt;/li&gt;
&lt;li&gt;While some of our cameras were semi-professional Panasonic cameras
that had a balanced XLR audio input, others were much lower-level
camcorder-style cameras that did not have such a thing. When a camera
has a good audio input, it&#39;s fairly easy to set up a link from the
mixing console to the camera and get the audio into the stream that way.
When a camera does not have such a thing, the set-up gets much more
complex. Since we had so much to worry about, we did not notice that in
one room, on saturday, something went wrong with audio. To combat this,
we should improve on our audio set-up for next year, and also verify the
streams every once in a while (I did the latter on sunday, so everything
should be fine there).&lt;/li&gt;
&lt;li&gt;Inherent to an ad-hoc network, there were some network-related
issues. For instance, on sunday evening, during the last session in that
room, &lt;a href=&quot;http://womble.decadent.org.uk/blog&quot;&gt;Ben&lt;/a&gt; informed me
that the link to room H.1301 had gone down. As we were investigating, we
easily found the source of the problem:&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/wouterverhelst/6823856173/&quot; title=&quot;Cable issue, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7031/6823856173_39e30bf37e.jpg&quot; alt=&quot;IMAG0103&quot; height=&quot;299&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
The cable had been put under a door, and had been &#39;protected&#39; with loads
and loads of duct tape, but apparently that wasn&#39;t enough. This wasn&#39;t
something we wanted to fix anymore, at that point; instead, we just let
the cable be and focused on other things.&lt;/li&gt;
&lt;li&gt;Storage. None of the systems used for the recordings were my own;
instead, some were owned by IRILL and some were rented. If I want to
do anything with my recordings, that means I have to copy the data off.
The system I chose was to bring a USB3 hard disk and copy everything
over; but for saturday, this took an hour and thirty minutes. On sunday,
my USB3 disk was fairly full, so I had to revert to a USB2 one, which
increased the time by &lt;em&gt;much&lt;/em&gt;. In the end, we had to abort copying
files, and we&#39;ll now have to be a bit creative to get them.&lt;/li&gt;
&lt;li&gt;Volunteer management. I originally set up a &lt;a href=&quot;http://wiki.debconf.org/wiki/FOSDEM/2012&quot;&gt;wiki page&lt;/a&gt; to allow
people to sign up for talks that they wanted to help out with.
Unfortunately, that didn&#39;t work so well as it did for DebConf; there
were several talks that did not have enough people, resulting in the
volunteers from the previous talk remaining on post and finishing their
talk. Also, there were some people that signed up without contacting me,
or without telling me what name they used on the wiki page, which made
it somewhat harder to know who to talk to. I lost count of who had
signed up to help out. On Sunday, I decided to set up an IRC channel
instead, through which volunteers could communicate more directly and
just &lt;em&gt;ask&lt;/em&gt; for people to take over, instead of registering for a
talk first and then hoping nobody would forget. Also, since I&#39;m terribly
bad with faces and video volunteers did not have anything that made them
stand out from the rest, I couldn&#39;t just walk around until I would see
someone involved with video work and ask them to take over in a room.
Having a separate &#39;video team&#39; t-shirt could help there.&lt;p&gt;&lt;/p&gt;
&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;After the bad news, here&#39;s the list of things that did go well:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Streaming. Even though choosing flumotion rather than icecast
(as we&#39;d done for streaming in the past) involved extra work for me
before the conference (I had to write some code so that I could stream
from dvswitch into flumotion, which wasn&#39;t possible out of the box), the
guys at Flumotion decided to send over one of their support engineers.
As such, I simply did not have to worry about streaming servers crashing
or failing to do what they were supposed to do. While I have no reason
to think any of the Flumotion servers were having issues, even if they
were I wouldn&#39;t have known about it, since Francesc took care of it all
and never ever required my involvement about something on the flumotion
side. This was extremely valuable.&lt;/li&gt;
&lt;li&gt;Training right before the welcome talk. Explaining to people in a
few words how dvswitch works, and then immediately following that up
with a live demonstration, isn&#39;t a bad way for them to understand.&lt;/li&gt;
&lt;li&gt;Despite all the problems we did have, once everything had been set
up and all the gear was more or less manned, actually recording and
streaming did go fairly well. The feedback I received so far was mostly
positive, which makes me very happy.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In the end, while there certainly is still room for improvement and
things did not go as smoothly as I&#39;d hoped, they have gone much better
than my worst fears. There&#39;s still some work to do, which I&#39;ll be doing
with the NamurLUG people this week, but all in all, it&#39;s gone pretty
good.&lt;/p&gt;
&lt;p&gt;As to the usage of the streams, I asked Flumotion for some
statistics. Since I was fairly late in asking, they could only provide
me with statistics about sunday:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Number of clients connecting:&lt;br /&gt;&lt;img src=&quot;http://barbershop.grep.be/blogdata/fosdem_stats.png&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Traffic:&lt;br /&gt;
&lt;img src=&quot;http://barbershop.grep.be/blogdata/fosdem_traf.png&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Tue, 07 Feb 2012 13:17:28 +0000</pubDate>
  <author>w@uter.be (Wouter Verhelst)</author>  
</item> 
<item>
	<title>Gerfried Fuchs: Games Screenshot Party</title>
	<guid>http://rhonda.deb.at/blog/2012/02/07#games-screenshot-party</guid>
	<link>http://rhonda.deb.at/blog/2012/02/07#games-screenshot-party</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/rhonda.png&quot; width=&quot;89&quot; height=&quot;84&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;The following announce is lazily copied from &lt;a href=&quot;http://bonedaddy.net/pabs3/log/2012/02/03/debian-ubuntu-games-screenshot-party/&quot;&gt;Paul Wise&#39;s announce&lt;/a&gt;. There is only one thing I like to add: the screenshots that are submitted and collected on &lt;a href=&quot;http://screenshots.debian.net/&quot;&gt;screenshots.debian.net&lt;/a&gt; are visible on the packages websites (both &lt;a href=&quot;http://packages.debian.org/index&quot;&gt;Debian&lt;/a&gt; and &lt;a href=&quot;http://packages.ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;) and are also used by the &lt;a href=&quot;http://packages.debian.org/software-center&quot;&gt;software-center&lt;/a&gt; package, so they help people to get a first impression of the package they might want to install.&lt;/p&gt;

&lt;p&gt;Have you ever wondered how to start getting involved in Debian/Ubuntu? Do you enjoy discovering new games and playing them? You might want to come to the &lt;a href=&quot;http://deb.li/gamesparty&quot;&gt;games screenshot party&lt;/a&gt;! We hope that the party will be a fun, easy, low-commitment way to get involved.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://wiki.debian.org/Games/Team&quot;&gt;Debian/Ubuntu Games Team&lt;/a&gt; is organizing a half-day &lt;a href=&quot;http://wiki.debian.org/Games/Parties/Screenshots&quot;&gt;screenshots&lt;/a&gt; &lt;a href=&quot;http://wiki.debian.org/Games/Parties&quot;&gt;party&lt;/a&gt; on the weekend of 25th-26th February for creating screenshots for all the games that are available in Debian/Ubuntu.&lt;/p&gt;

&lt;p&gt;If you are interested in attending, please add your availability to the poll linked from the &lt;a href=&quot;http://deb.li/gamesparty&quot;&gt;announcement&lt;/a&gt; so that we can get some idea of attendance and when is a good time for the people who are interested.&lt;/p&gt;

&lt;p&gt;Look forward to lots of game playing, screenshots and merry time, hope to see you all there!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p align=&quot;right&quot;&gt;
  &lt;i&gt;&lt;a href=&quot;http://rhonda.deb.at/blog/debian&quot;&gt;/debian&lt;/a&gt; | 
    &lt;a href=&quot;http://rhonda.deb.at/blog/debian/games-screenshot-party.html&quot;&gt;permanent link&lt;/a&gt; |
    &lt;a href=&quot;http://rhonda.deb.at/blog/debian/games-screenshot-party.html&quot;&gt;Comments: 0&lt;/a&gt; |
    &lt;a href=&quot;http://flattr.com/thing/46312/Rhondas-Blog&quot; target=&quot;_blank&quot;&gt;Flattr this&lt;/a&gt;&lt;/i&gt;
&lt;/p&gt; </description> 
	<pubDate>Tue, 07 Feb 2012 10:36:00 +0000</pubDate>

</item> 
<item>
	<title>Martin F. Krafft: Stop ACTA</title>
	<guid>http://madduck.net/blog/2012.02.07:stop-acta/</guid>
	<link>http://madduck.net/blog/2012.02.07:stop-acta/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/madduck-racingduck.png&quot; width=&quot;85&quot; height=&quot;83&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I hope by now you have heard of &lt;a href=&quot;http://en.wikipedia.org/wiki/ACTA&quot;&gt;ACTA&lt;/a&gt;. In any case, here is
a &lt;a href=&quot;http://www.youtube.com/watch?v=og426HP0s_U&quot;&gt;nice 6:30
minute video giving a good overview&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Please help stop ACTA. Our freedom is at risk. Whether you tell
people about it, write about it, use services like &lt;a href=&quot;http://twitter.com&quot;&gt;Twitter&lt;/a&gt; to tell the world about
&lt;code&gt;#StopACTA&lt;/code&gt;, or whether you take the time to &lt;a href=&quot;http://www.news.software.coop/stop-acta-marches-map/1267/&quot;&gt;march
against&lt;/a&gt; what corporate entities are lobbying politicians to do
against their people — please help protect the Internet as we know
it.&lt;/p&gt;
&lt;p&gt;NP: &lt;a href=&quot;http://www.allmusic.com/cg/amg.dll?SQL=God%20is%20an%20Astronaut&amp;amp;P=amg&amp;amp;OPT1=1&quot;&gt;
God is an Astronaut&lt;/a&gt;: &lt;em&gt;Moment of Stillness&lt;/em&gt;&lt;/p&gt; </description> 
	<pubDate>Tue, 07 Feb 2012 10:26:26 +0000</pubDate>

</item> 
<item>
	<title>Rapha&amp;#235;l Hertzog: Dpkg with multiarch support available in Debian experimental</title>
	<guid>http://raphaelhertzog.com/?p=2576</guid>
	<link>http://raphaelhertzog.com/2012/02/07/dpkg-with-multiarch-support-available-in-debian-experimental/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/hertzog.png&quot; width=&quot;65&quot; height=&quot;93&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;&lt;img src=&quot;http://raphaelhertzog.com/files/2011/07/modify-package-e1309263139826.jpg&quot; title=&quot;Packaging internals&quot; height=&quot;270&quot; width=&quot;270&quot; alt=&quot;&quot; class=&quot;alignleft size-full wp-image-1985&quot; /&gt;As I &lt;a href=&quot;http://lists.debian.org/debian-devel/2012/02/msg00184.html&quot;&gt;announced on debian-devel&lt;/a&gt;, Guillem Jover &lt;a href=&quot;http://lists.debian.org/debian-experimental-changes/2012/02/msg00025.html&quot;&gt;uploaded a snapshot&lt;/a&gt; of dpkg’s multiarch branch to experimental (version 1.16.2~wipmultiarch). Beware: There will&lt;br /&gt;
likely be some small “interface” changes between this version and the version that will be released later in unstable (possibly in the output of &lt;code&gt;dpkg --get-selections&lt;/code&gt;, &lt;code&gt;dpkg --list&lt;/code&gt;, maybe other commands).&lt;/p&gt;
&lt;p&gt;multiarch allows you to install packages from different architectures on the same machine. This can be useful if your computer can run programs from 2 architectures (eg. x86 CPU supporting i386 and amd64), or if you often need to cross-compile software and thus need the libraries of your target architecture.&lt;/p&gt;
&lt;h3&gt;Test dpkg with multiarch support&lt;/h3&gt;
&lt;p&gt;If you want to test multiarch support in dpkg, install the package from experimental (&lt;code&gt;apt-get install dpkg/experimental&lt;/code&gt; assuming you have experimental in your sources.list).&lt;/p&gt;
&lt;p&gt;Then you can add a supplementary architecture to your system by doing &lt;code&gt;sudo dpkg --add-architecture &amp;lt;arch&amp;gt;&lt;/code&gt; (e.g. i386 if you are on amd64, and vice-versa). APT will automatically pick up the new architecture and start downloading the Packages file for the new architecture (it uses &lt;code&gt;dpkg --print-foreign-architectures&lt;/code&gt; to know about them).&lt;/p&gt;
&lt;p&gt;From there on you can install packages from the “foreign” architectures with “&lt;code&gt;apt-get install foo:&amp;lt;arch&amp;gt;&lt;/code&gt;“. Many packages will not be installable because some of their dependencies have not yet been updated to work with in a multiarch world (libraries must be installed in a multiarch-compliant path so as to be co-installable, and then marked “&lt;code&gt;Multi-Arch: same&lt;/code&gt;“). Other dependencies might need to be marked “&lt;code&gt;Multi-Arch: foreign&lt;/code&gt;“. See &lt;a href=&quot;http://wiki.debian.org/Multiarch/Implementation&quot;&gt;wiki.debian.org/Multiarch/Implementation&lt;/a&gt; for more HOWTO-like explanations.&lt;/p&gt;
&lt;p&gt;Now is a good time to see if you can install the foreign packages that you could need in such a setup and to help to convert the required libraries.&lt;/p&gt;
&lt;p&gt;You can also read &lt;a href=&quot;http://blog.mraw.org/2012/02/01/dpkg_with_multiarch/&quot;&gt;Cyril Brulebois’ article&lt;/a&gt; which quickly shows how to hunt for the problematic packages which have not been converted to multiarch (in his sample, “ucf” is not ready. Since it’s an “&lt;code&gt;Architecture: all&lt;/code&gt;” package which can run on any architecture, it means that it’s lacking a “&lt;code&gt;Multi-Arch: foreign&lt;/code&gt;” field).&lt;/p&gt;
&lt;h3&gt;Report bugs&lt;/h3&gt;
&lt;p&gt;If you discover any bug in dpkg’s multiarch implementation, please report it to the Bug Tracking System (against “dpkg” with the version “1.16.2~wipmultiarch”).&lt;/p&gt;
&lt;p&gt;If you notice important libraries or packages which are not yet multiarch ready, please open wishlist bug reports requesting the conversion and point the maintainers towards the wiki page linked above. Even better, prepare patches and submit those with your bug reports.&lt;/p&gt;
&lt;p&gt;Again, you can follow the &lt;a href=&quot;http://blog.mraw.org/2012/02/06/dpkg_with_multiarch_redux/&quot;&gt;lead of Cyril Brulebois&lt;/a&gt; who filed 6 bugs!&lt;/p&gt;
&lt;h3&gt;Review the multiarch implementation&lt;/h3&gt;
&lt;p&gt;If you’re a C programmer and have some good knowledge of dpkg (or are willing to learn more of it), we would certainly benefit from more eyes reviewing the multiarch branch. If you want to discuss some design issues of the multiarch implementation in dpkg (or have questions related to your review), please get in touch via &lt;a href=&quot;mailto:debian-dpkg@lists.debian.org&quot;&gt;debian-dpkg@lists.debian.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The latest version of the branch is pu/multiarch/master in &lt;a href=&quot;http://git.hadrons.org/?p=debian/dpkg.git;a=shortlog;h=refs/heads/pu/multiarch/master&quot;&gt;Guillem’s personal repository&lt;/a&gt;.  I have my own version of the branch (&lt;a href=&quot;http://anonscm.debian.org/gitweb/?p=users/hertzog/dpkg.git;a=shortlog;h=refs/heads/pu/multiarch/full&quot;&gt;pu/multiarch/full&lt;/a&gt;) which is usually a snapshot of Guillem’s branch with my own submitted fixes.&lt;/p&gt;
&lt;pre&gt;$ git clone git://git.debian.org/dpkg/dpkg.git
$ cd dpkg
$ git remote add guillem git://git.hadrons.org/git/debian/dpkg/dpkg.git
$ git remote add buxy git://git.debian.org/~hertzog/dpkg.git
$ git fetch guillem &amp;amp;&amp;amp; git fetch buxy
&lt;/pre&gt;
&lt;p&gt;If you followed the instructions above, the relevant branches are thus guillem/pu/multiarch/master and buxy/pu/multiarch/full. Both branches are regularly rebased on top of master where Guillem merges progressively the commits from the multi-arch branch as his review progresses.&lt;/p&gt;
&lt;p&gt;Thank you in advance for your help bringing multiarch in shape for Debian Wheezy, &lt;/p&gt;
&lt;p style=&quot;font-size: smaller;&quot;&gt;&lt;a href=&quot;http://raphaelhertzog.com/2012/02/07/dpkg-with-multiarch-support-available-in-debian-experimental/#comments&quot;&gt;No comment&lt;/a&gt; | Liked this article? &lt;a href=&quot;http://raphaelhertzog.com/support-my-work/&quot;&gt;Click here&lt;/a&gt;. | My blog is &lt;a href=&quot;http://flattr.com/thing/26545/apt-get-install-debian-wizard&quot;&gt;Flattr-enabled&lt;/a&gt;.&lt;/p&gt;
&lt;p class=&quot;wp-flattr-button&quot;&gt;&lt;/p&gt; </description> 
	<pubDate>Tue, 07 Feb 2012 08:29:23 +0000</pubDate>

</item> 
<item>
	<title>Russell Coker: 5 Principles of Backup Software</title>
	<guid>http://etbe.coker.com.au/?p=3154</guid>
	<link>http://etbe.coker.com.au/2012/02/07/5-principles-backup/</link>
     <description>  &lt;p&gt;Everyone agrees that backups are generally a good thing. But it seems that there is a lot less agreement about how backups should work. Here is a list of 5 principles of backup software that seem to get ignored most of the time:&lt;/p&gt;
&lt;h3&gt;(1/5) Backups should not be Application Specific&lt;/h3&gt;
&lt;p&gt;It’s quite reasonable for people to want to extract data from a backup on a different platform. Maybe someone will want to extract data a few decades after the platform becomes obsolete. I believe that vendors of backup software have an ethical obligation to make it possible for customers to get their data out with minimal effort regardless of the circumstances.&lt;/p&gt;
&lt;p&gt;Often when writing a backup application there will be good reasons for not using the existing formats for data storage (tar, cpio, zip, etc). But ideally any data store which involves something conceptually similar to a collection of files in one larger file will use one of those formats. There have been backward compatible extensions to tar and zip for SE Linux contexts and for OS/2 EAs – the possibility of extending archive file formats with no consequence other than warnings on extraction with an unpatched utility has been demonstrated.&lt;/p&gt;
&lt;p&gt;For a backup which doesn’t involve source files (EG the contents of some sort of database) then it should be in a format that can be easily understood and parsed. Well designed XML is generally a reasonable option. Generally the format should involve plain text that is readable and easy to understand which is optionally compressed with a common compression utility (pkzip is a reasonable choice).&lt;/p&gt;
&lt;h3&gt;(2/5) Data Store Formats should be Published&lt;/h3&gt;
&lt;p&gt;For every data store there should be public documentation about it’s format to allow future developers to write support for it. It really isn’t difficult to release some commented header files so that people can easily determine the data structures. This includes all data stores including databases and filesystems. If I suddenly find myself with a 15yo image of a NTFS filesystem containing a proprietary database I should be able to find official header files for the version of NTFS and the database server in question so I can decode the data if it’s important enough.&lt;/p&gt;
&lt;p&gt;When an application vendor hides the data formats it gives the risk of substantial data loss at some future time. Imposing such risk on customers to try and prevent them from migrating to a rival product is unethical.&lt;/p&gt;
&lt;h3&gt;(3/5) Backups should be forward and backward compatible&lt;/h3&gt;
&lt;p&gt;It is entirely unreasonable for a vendor to demand that all their users install the latest versions of their software. There are lots of good reasons for not upgrading which includes hardware not supporting new versions of the OS, lack of Internet access to perform the upgrade, application compatibility, and just liking the way the old version works. Even for the case of a critical security fix it should be possible to restore data without applying the fix.&lt;/p&gt;
&lt;p&gt;For any pair of versions of software that are only separated by a few versions it should be possible to backup data from one and restore to the other. Even if the data can’t be used directly (EG a backup of AMD64 programs that is restored on an i386 system) it should still be accessible. If a new version of the software doesn’t support the ancient file formats then it should be possible for the users to get a slightly older version which talks to both the old and new versions.&lt;/p&gt;
&lt;p&gt;Backups made on 64bit systems running the latest development version of Linux and on 10yo 32bit proprietary Unix systems are interchangeable. Admittedly Unix is really good at preserving file format compatibility, but there is no technical reason why other systems can’t do the same. Source code to cpio, tar, and gnuzip, is freely available!&lt;/p&gt;
&lt;p&gt;Apple TimeMachine fails badly in this regard, even a slightly older version of Mac OS can’t do a restore. It is however nice that most of the TimeMachine data is a tree of files which could be just copied to another system.&lt;/p&gt;
&lt;h3&gt;(4/5) Backup Software should not be Dropped&lt;/h3&gt;
&lt;p&gt;Sony Ericsson has made me hate them even more by putting the following message on their update web site:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Backup and Restore app will be overwritten and cannot be used to restore data. Check out Android Market for alternative apps to back up and restore your data, such as MyBackup.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;So if you own a Sony Ericsson phone and it is lost, stolen, or completely destroyed and all you have is a backup made by the Sony Ericsson tool then the one thing you absolutely can’t do is to buy a new Sony Ericsson phone to restore the data.&lt;/p&gt;
&lt;p&gt;I believe that anyone who releases backup software has an ethical obligation to support restoring to all equivalent systems. How difficult would it be to put a new free app in the Google Market that has as it’s sole purpose recovering old Sony Ericsson backups onto newer phones? It really can’t be that difficult, so even if they don’t want to waste critical ROM space by putting the feature in all new phones they can make it available to everyone who needs it. When compared to the cost of developing a new Android release for a series of phones the cost of writing such a restore program would be almost nothing.&lt;/p&gt;
&lt;p&gt;It is simply mind-boggling that Sony Ericsson go against their own commercial interests in this regard. Surely it would make good business sense to be able to sell replacements for all the lost and broken Sony Ericsson phones, but instead customers who get burned by broken backups are given an incentive to buy a product from any other vendor.&lt;/p&gt;
&lt;h3&gt;(5/5) The greater the control over data the greater the obligation for protecting it&lt;/h3&gt;
&lt;p&gt;If you have data stored in a simple and standard manner (EG the /DCIM directory containing MP4 and JPEG files that is on the USB accessible storage in every modern phone) then IMHO it’s quite OK to leave customers to their own devices in terms of backups. Typical users can work out that if they don’t backup their pictures then they risk losing them, and they can work out how to do it.&lt;/p&gt;
&lt;p&gt;My Sony Ericsson phones have data stored under /data (settings for Android applications) which is apparently only accessible as root. Sony Ericsson have denied me root access which prevents me running backup programs such as Titanium Backup, therefore I believe that they have a great obligation to provide a way of making a backup of this data and restoring it on a new phone or a phone that has been updated. To just provide phone upgrade instructions which tell me that my phone will be entirely wiped and that I should search the App Market for backup programs is unacceptable.&lt;/p&gt;
&lt;p&gt;I believe that there are two ethical options available to Sony Ericsson at this time, one is to make it easy to root phones so that Titanium Backup and similar programs can be used, and the other option is to release a suitable backup program for older phones. Based on experience I don’t expect Sony Ericsson to choose either option.&lt;/p&gt;
&lt;p&gt;Now it is also a bad thing for the Android application developers to make it difficult or impossible to backup their data. For example the Wiki for one Android game gives instructions for moving the saved game files to a new phone which starts with “root your phone”. The developers of that game should have read the Wiki, realised that rooting a phone for the mundane task of transferring saved game files is totally unreasonable, and developed a better alternative.&lt;/p&gt;
&lt;p&gt;The best thing for developers to do is to allow the users to access their own data in the most convenient manner. Then it becomes the user’s responsibility to manage it and they can concentrate on improving their application.&lt;/p&gt;
&lt;h3&gt;Why Freedom is Important&lt;/h3&gt;
&lt;p&gt;Installing CyanogenMod on my Galaxy S was painful, but having root access so I can do anything I want is a great benefit. If phone vendors would do the right thing then I could recommend that other people use the vendor release, but it seems that vendors can be expected to act unethically. So I can’t recommend that anyone use an un-modded Android phone at any time. I also can’t recommend ever buying a Sony Ericsson product, not even when it’s really cheap.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.dataliberation.org/&quot;&gt;Google have done a great thing with their Data Liberation Front [1]&lt;/a&gt;. Not only are they providing access to the data they store on our behalf (which is a good thing) but they have a mission statement that demands the same behavior from other companies – they make it an issue of competitive advantage! So while Sony Ericsson and other companies might not see a benefit in making people like me stop hating them, failing to be as effective in marketing as Google is a real issue. Data Liberation is something that should be discussed at board elections of IT companies.&lt;/p&gt;
&lt;p&gt;Keep in mind the fact that ethics are not just about doing nice things, they are about establishing expectations of conduct that will be used by people who deal with you in future. Sony Ericsson has shown that I should expect that they will treat the integrity of my data with contempt and I will keep this in mind every time I decline an opportunity to purchase their products. Google has shown that they consider the protection of my data as an important issue and therefore I can be confident when using and recommending their services that I won’t get stuck with data that is locked away.&lt;/p&gt;
&lt;p&gt;While Google has demonstrated that corporations can do the right thing, the vast majority of evidence suggests that we should never trust a corporation with anything that we might want to retrieve when it’s not immediately profitable for the corporation. Therefore avoiding commercial services for storing important data is the sensible thing to do.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[1]&lt;a href=&quot;http://www.dataliberation.org/&quot;&gt; http://www.dataliberation.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://etbe.coker.com.au/2011/11/21/galaxy-xperia-android-network/&quot; rel=&quot;bookmark&quot; title=&quot;Galaxy S vs Xperia X10 and Android Network Access&quot;&gt;Galaxy S vs Xperia X10 and Android Network Access&lt;/a&gt; &lt;small&gt;Galaxy S Review I’ve just been given an indefinite loan...&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://etbe.coker.com.au/2012/01/04/standardising-android/&quot; rel=&quot;bookmark&quot; title=&quot;Standardising Android&quot;&gt;Standardising Android&lt;/a&gt; &lt;small&gt;Don Marti wrote an amusing post about the lack of...&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://etbe.coker.com.au/2011/02/19/on-burning-platforms/&quot; rel=&quot;bookmark&quot; title=&quot;On Burning Platforms&quot;&gt;On Burning Platforms&lt;/a&gt; &lt;small&gt;Nokia is in the news for it’s CEO announcing that...&lt;/small&gt;&lt;/li&gt;
&lt;/ol&gt; </description> 
	<pubDate>Tue, 07 Feb 2012 07:26:04 +0000</pubDate>

</item> 
<item>
	<title>Junichi Uekawa: qemu package is uninstallable in sid, and I think ipxe wants to replace it, not break it.</title>
	<guid>http://www.netfort.gr.jp/~dancer/diary/daily/2012-Feb-7.html.en#2012-Feb-7-11:40:11</guid>
	<link>http://www.netfort.gr.jp/~dancer/diary/daily/2012-Feb-7.html.en#2012-Feb-7-11:40:11</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/dancer.png&quot; width=&quot;75&quot; height=&quot;97&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  qemu package is uninstallable in sid, and I think ipxe wants to replace it, not break it.
	  Hmm.. I don&#39;t understand.
        &lt;p&gt;&lt;/p&gt; </description> 
	<pubDate>Tue, 07 Feb 2012 02:40:11 +0000</pubDate>

</item> 
<item>
	<title>MJ Ray: Stop ACTA Marches Map</title>
	<guid>http://www.news.software.coop/stop-acta-marches-map/1267/</guid>
	<link>http://www.news.software.coop/stop-acta-marches-map/1267/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/mjray2.png&quot; width=&quot;65&quot; height=&quot;94&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Further to &lt;a href=&quot;http://www.news.software.coop/two-campaigns-one-spot/1262/&quot;&gt;last week’s blog post that mentioned this Saturday’s (11 Feb) London Stop ACTA march&lt;/a&gt;, there’s a &lt;a href=&quot;http://maps.google.com/maps/ms?msid=211607966723307503454.0004b82851b1992ecada4&amp;amp;msa=0&amp;amp;ll=51.519465%2C-0.135634&amp;amp;spn=0.007571%2C0.021136&quot;&gt;map of anti-ACTA marches&lt;/a&gt; on Google’s website (thanks to Martin Houston for the link).&lt;/p&gt;
&lt;p&gt;There’s also been a new &lt;a href=&quot;http://www.edri.org/ACTAfactsheet&quot;&gt;Anti-Counterfeiting Trade Agreement factsheet from European Digital RIghts (EDRI)&lt;/a&gt;, as apparently there are a lot of misconceptions about ACTA.  I don’t feel that has been helped by some spectacular misdirection from the European Commission in its latest “10 Myths” paper (linked from the EDRI factsheet) which is almost as interesting for what it doesn’t mention (like sneaking ACTA through the parliament fisheries committee), what it misunderstands (like the near-uselessness of a non-commercial exemption to Free and Open Source Software or Creative Commons users), and the way it fails to rebut the final point that ACTA was done this way to avoid the oversight of the World Trade Organisation!  I mean, if they can’t even get it past the usually very pro-enforcement WTO, surely that should tell you something?&lt;/p&gt;
&lt;p&gt;If you can, would you please go along and join your nearest march? Recent marchers seem to have been wearing stylised Guy Fawkes masks, but how would that be viewed in London?&lt;/p&gt; </description> 
	<pubDate>Tue, 07 Feb 2012 00:11:21 +0000</pubDate>

</item> 
<item>
	<title>Jon Dowland: Rip it Up and Start Again</title>
	<guid>http://jmtd.net/log/rip_it_up/</guid>
	<link>http://jmtd.net/log/rip_it_up/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/jmtd.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I&#39;ve just — finally — finished reading Simon Reynold&#39;s dense &quot;Rip it Up and
Start Again&quot;: a history of post-punk music from 1978-1984.&lt;/p&gt;

&lt;p&gt;I often think of music journalism in the terms that Zappa famously phrased as
(roughly) &quot;people who can&#39;t write, writing for people who can&#39;t read&quot;. This
book sometimes suffers from that syndrome, of attempting to describe audio in
terms of other senses, which sometimes wanders deep into synesthesia territory,
but for the most part the book is coherent and enjoyable.&lt;/p&gt;

&lt;p&gt;It&#39;s also very &quot;dense&quot;: you leave each page with another half-dozen songs or
bands of music genres to go and investigate. I&#39;m surprised that there isn&#39;t a
commercially-released anthology counterpart to the book.  There are, however,
several playlists, many of which are locked away on Spotify, but via &lt;a href=&quot;http://the-music-snob.net/2009/02/rave-ups-rip-it-up-and-start-again-by-simon-reynolds/&quot;&gt;this
review&lt;/a&gt;
I found &lt;a href=&quot;http://the-music-snob.net/Playlists/PPP1/&quot;&gt;these&lt;/a&gt;
&lt;a href=&quot;http://the-music-snob.net/Playlists/PPP2/&quot;&gt;two&lt;/a&gt; which are web-based (powered
by &lt;a href=&quot;http://opentape.fm/&quot;&gt;opentape&lt;/a&gt;, an interesting piece of AGPL software).&lt;/p&gt;

&lt;p&gt;The book has helped me to discover a lot of music that I hadn&#39;t heard of before
and now love, which I will probably write about in different contexts over the
next few months.&lt;/p&gt; </description> 
	<pubDate>Mon, 06 Feb 2012 21:22:21 +0000</pubDate>

</item> 
<item>
	<title>Lars Wirzenius: FOSDEM 2012</title>
	<guid>http://blog.liw.fi/posts/fosdem-2012/</guid>
	<link>http://blog.liw.fi/posts/fosdem-2012/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/lars.png&quot; width=&quot;85&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;FOSDEM is over. Was fun. Nobody booed too much during my
&lt;a href=&quot;http://liw.fi/rethinking-distro-dev/&quot;&gt;keynote&lt;/a&gt;. I am not putting
up my slides, since they&#39;re useless without the actual talk. However,
I&#39;ve put up the text I prepared for the talk, which is approximately
what I actually talked, in case anyone wants to read rather than
watch the video whenever it gets released.&lt;/p&gt; </description> 
	<pubDate>Mon, 06 Feb 2012 12:03:24 +0000</pubDate>

</item> 
<item>
	<title>Jon Dowland: I Shall Wear Midnight</title>
	<guid>http://jmtd.net/log/midnight/</guid>
	<link>http://jmtd.net/log/midnight/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/jmtd.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;&lt;em&gt;I Shall Wear Midnight&lt;/em&gt; is the 38th Discworld novel and the fourth following
the story of Tiffany Aching, young witch of the Chalk.&lt;/p&gt;

&lt;p&gt;Reading modern Pratchett, I&#39;m sadly, acutely (and morbidly) aware that, as he
succumbs to Alzheimer&#39;s disease, these are the likely to be some of the last
Discworld novels written. With the last few, this observation has been entirely
external to the novel.  With &lt;em&gt;Midnight&lt;/em&gt;, however, I got the impression that
the awful disease has finally started to affect the prose itself.&lt;/p&gt;

&lt;p&gt;I could just be jumping at shadows, but I got the impression that he repeated
himself a tad more often than usual. With such a long series of books, an
author has the difficult job of balancing new and established readers in the
same text: as such, as an established reader, you get used to having some
back-story with which you must be patient.  This necessary background could
have contributed to the impression of repetition, but I&#39;m fairly sure doesn&#39;t
explain all of it.&lt;/p&gt;

&lt;p&gt;An enjoyable story, and possibly the one to bring the Aching arc to a
conclusion. She stands on her own two feet, proving herself a a capable Witch.
There weren&#39;t any earth-shattering new concepts or new characters or unexplored
areas of the Disc for fans to map out with their minds; non-the-less it was
a satisfying read.&lt;/p&gt; </description> 
	<pubDate>Mon, 06 Feb 2012 11:19:08 +0000</pubDate>

</item> 
<item>
	<title>David Welton: BikeChatter.com for sale</title>
	<guid>urn:uuid:b53dff9c-bb18-4aaf-830d-eea3b9a36a13</guid>
	<link>http://journal.dedasys.com/2012/02/06/bikechatter-com-for-sale</link>
     <description>  &lt;p&gt;
	What with two kids, a new house, and &lt;a href=&quot;http://www.liberwriter.com&quot;&gt;LiberWriter&lt;/a&gt; getting some good traction, I&#39;ve been looking around for things to give to a good home so as to have less stuff to deal with.&lt;/p&gt;
&lt;p&gt;
	So, on the auction block goes &lt;a href=&quot;http://www.BikeChatter.com&quot;&gt;BikeChatter.com&lt;/a&gt; : &lt;a href=&quot;https://flippa.com/2696023-professional-cyclists-on-twitter-plus-2-years-of-history&quot;&gt;https://flippa.com/2696023-professional-cyclists-on-twitter-plus-2-years-of-history&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 40px;&quot;&gt;
	BikeChatter.com is the place to go on the web to follow professional cyclists on twitter.  With 500+ racers, and nearly half a million status updates from racers like Lance Armstrong, Alberto Contador, Mark Cavendish, and many, many more, this site is the best place to find out what&#39;s going on in the world of professional cycling, directly from the participants.&lt;/p&gt;
&lt;p&gt;
	Since I like following the site myself, I really want to see it go to people who will take it and make it even better.&lt;/p&gt; </description> 
	<pubDate>Mon, 06 Feb 2012 11:02:00 +0000</pubDate>

</item> 
<item>
	<title>Michal &amp;#268;iha&amp;#345;: Back from FOSDEM</title>
	<guid>http://blog.cihar.com/archives/2012/02/06/back-fosdem/?utm_source=rss2</guid>
	<link>http://blog.cihar.com/archives/2012/02/06/back-fosdem/?utm_source=rss2</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/nijel.png&quot; width=&quot;64&quot; height=&quot;67&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Yet another FOSDEM is behind us and I&#39;d like to thank all people organizing it. It was a great event as usual.&lt;/p&gt;
&lt;p&gt;This year there were some changes - the conference grew and there was an extra building. This is great, but on the other side, there were more tracks to follow and occasionally I wanted to be in four places at once, what is of course not manageable.&lt;/p&gt;
&lt;p&gt;Combined with quite freezing weather (well it was still much warmer than it is now in Prague), moving from one side of campus to another was not that comfortable as in last years, but there is not much man can do with that.&lt;/p&gt;
&lt;p&gt;And the biggest change for me - I did not manage beer event this year. We enjoyed great team dinner on Friday evening and while it ended, I was too lazy to move to crowded beer event and rather enjoyed bed in my hotel.&lt;/p&gt;

&lt;p style=&quot;font-size: smaller;&quot;&gt;
Filed under: 


&lt;a href=&quot;http://blog.cihar.com/archives/debian/&quot;&gt;Debian&lt;/a&gt;

&lt;a href=&quot;http://blog.cihar.com/archives/english/&quot;&gt;English&lt;/a&gt;

&lt;a href=&quot;http://blog.cihar.com/archives/phpmyadmin/&quot;&gt;Phpmyadmin&lt;/a&gt;

&lt;a href=&quot;http://blog.cihar.com/archives/suse/&quot;&gt;Suse&lt;/a&gt;

|

&lt;a href=&quot;http://blog.cihar.com/archives/2012/02/06/back-fosdem/#comments&quot;&gt;0 comments&lt;/a&gt;
|
&lt;a href=&quot;http://flattr.com/thing/59773/Michal-Cihars-Weblog&quot;&gt;Flattr this!&lt;/a&gt;
&lt;/p&gt; </description> 
	<pubDate>Mon, 06 Feb 2012 07:45:15 +0000</pubDate>
  <author>michal@cihar.com (Michal Čihař)</author>  
</item> 
<item>
	<title>Cyril Brulebois: dpkg with multiarch, a new hope</title>
	<guid>http://blog.mraw.org/2012/02/06/dpkg_with_multiarch_redux/</guid>
	<link>http://blog.mraw.org/2012/02/06/dpkg_with_multiarch_redux/</link>
     <description>  &lt;p&gt;&lt;code&gt;dpkg&lt;/code&gt; was uploaded to &lt;code&gt;experimental&lt;/code&gt; a few times lately, let’s sum it
up quickly:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It started with my
&lt;a href=&quot;http://packages.qa.debian.org/d/dpkg/news/20120131T204855Z.html&quot;&gt;NMU&lt;/a&gt;
on 2012-01-31, since I hadn’t received any reasons not to upload
(except “NACK”, which doesn’t count as such in my book).&lt;/li&gt;
&lt;li&gt;It got
&lt;a href=&quot;http://packages.qa.debian.org/d/dpkg/news/20120201T004745Z.html&quot;&gt;reverted&lt;/a&gt;
a few minutes after that.&lt;/li&gt;
&lt;li&gt;Since this was getting nowhere, the
&lt;a href=&quot;http://www.debian.org/devel/tech-ctte&quot;&gt;Debian Technical Committee&lt;/a&gt;
finally &lt;a href=&quot;http://bugs.debian.org/658341&quot;&gt;got involved&lt;/a&gt;, and voted in
a few days only (wow, thanks!) for an
&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=658341#73&quot;&gt;“it’s time to experiment” decision&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A new
&lt;a href=&quot;http://packages.qa.debian.org/d/dpkg/news/20120206T000222Z.html&quot;&gt;&lt;code&gt;dpkg&lt;/code&gt; upload to &lt;code&gt;experimental&lt;/code&gt;&lt;/a&gt;
finally happened. One shall note the prominent “&lt;strong&gt;This is a WIP
release, command line interfaces &lt;em&gt;will&lt;/em&gt; change.&lt;/strong&gt;” notice.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I’ve updated my previous
&lt;a href=&quot;http://blog.mraw.org/2012/02/01/dpkg_with_multiarch&quot;&gt;dpkg with multiarch&lt;/a&gt; page accordingly,
only keeping the interesting bits.&lt;/p&gt;

&lt;p&gt;Playing around with &lt;code&gt;grep-aptavail -F Multi-Arch $i -sPackage&lt;/code&gt; (with
&lt;code&gt;$i&lt;/code&gt; being &lt;code&gt;same&lt;/code&gt; or &lt;code&gt;foreign&lt;/code&gt;), I found some bugs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/658792&quot;&gt;#658792&lt;/a&gt;: libstdc++6-4.6-dbg: libstdc++.so.6.0.16-gdb.py is not an ELF file&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/658793&quot;&gt;#658793&lt;/a&gt;: libisl-dbg: libisl.so.8.0.0-gdb.py is not an ELF file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also, some wishlist bugs (keeping the prominent notice in mind):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/658794&quot;&gt;#658794&lt;/a&gt;: apt-file: Please implement multiarch support&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/658795&quot;&gt;#658795&lt;/a&gt;: reportbug: Please report foreign architectures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, one dpkg improvement and one possible dpkg bug:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/658812&quot;&gt;#658812&lt;/a&gt;: dpkg: Please add a hint in arch_remove about installed foreign packages&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bugs.debian.org/658814&quot;&gt;#658814&lt;/a&gt;: dpkg: Inconsistent installation state with buggy multiarchified packages?&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Mon, 06 Feb 2012 04:40:00 +0000</pubDate>

</item> 
<item>
	<title>Andrew Cater: Open Advice - Free book detailing lessons for FLOSS</title>
	<guid>tag:blogger.com,1999:blog-8085113335874848981.post-959905615819850030</guid>
	<link>http://flosslinuxblog.blogspot.com/2012/02/open-advice-free-book-detailing-lessons.html</link>
     <description>  A very useful little book from various developers and others: things they wish they&#39;d known before starting out. A very sensible contribution from Debian&#39;s own Evan Prodromou amongst other names I knew and recognised and some interesting folk I&#39;d not heard of.&lt;br /&gt;&lt;br /&gt;http://open-advice.org/Open-Advice.pdf is the downloadable PDF although source and so on is also available. There are likely to be forums for comments and improvements. &lt;br /&gt;&lt;br /&gt;[UPDATE - I&#39;ve just had a go at the training exercises listed at openhatch.org which are linked from the site. Not a bad revision on patching/SVN/git and generally using the tools needed initially to contribute to FLOSS. A good job well done]&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/8085113335874848981-959905615819850030?l=flosslinuxblog.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt; </description> 
	<pubDate>Sun, 05 Feb 2012 21:31:20 +0000</pubDate>
  <author>noreply@blogger.com (Andrew Cater)</author>  
</item> 
<item>
	<title>Russell Coker: Reliability of RAID</title>
	<guid>http://etbe.coker.com.au/?p=3151</guid>
	<link>http://etbe.coker.com.au/2012/02/06/reliability-raid/</link>
     <description>  &lt;p&gt;&lt;a href=&quot;http://www.zdnet.com/blog/storage/why-raid-6-stops-working-in-2019/805&quot;&gt;ZDNet has an insightful article by Robin Harris predicting the demise of RAID-6 due to the probability of read errors [1]&lt;/a&gt;. Basically as drives get larger the probability of hitting a read error during reconstruction increases and therefore you need to have more redundancy to deal with this. He suggests that as of 2009 drives were too big for a reasonable person to rely on correct reads from all remaining drives after one drive failed (in the case of RAID-5) and that in 2019 there will be a similar issue with RAID-6.&lt;/p&gt;
&lt;p&gt;Of course most systems in the field aren’t using even RAID-6. All the most economical hosting options involve just RAID-1 and RAID-5 is still fairly popular with small servers. With RAID-1 and RAID-5 you have a serious problem when (not if) a disk returns random or outdated data and says that it is correct, you have no way of knowing which of the disks in the set has good data and which has bad data. For RAID-5 it will be theoretically possible to reconstruct the data in some situations by determining which disk should have it’s data discarded to give a result that passes higher level checks (EG fsck or application data consistency), but this is probably only viable in extreme cases (EG one disk returns only corrupt data for all reads).&lt;/p&gt;
&lt;p&gt;For the common case of a RAID-1 array if one disk returns a few bad sectors then probably most people will just hope that it doesn’t hit something important. The case of Linux software RAID-1 is of interest to me because that is used by many of my servers.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://storagemojo.com/2008/02/18/latent-sector-errors-in-disk-drives/&quot;&gt;Robin has also written about some NetApp research into the incidence of read errors which indicates that 8.5% of “consumer” disks had such errors during the 32 month study period [2]&lt;/a&gt;. This is a concern as I run enough RAID-1 systems with “consumer” disks that it is very improbable that I’m not getting such errors. So the question is, how can I discover such errors and fix them?&lt;/p&gt;
&lt;p&gt;In Debian the mdadm package does a monthly scan of all software RAID devices to try and find such inconsistencies, but it doesn’t send an email to alert the sysadmin! &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=658701&quot;&gt;I have filed Debian bug #658701 with a patch to make mdadm send email about this&lt;/a&gt;. But this really isn’t going to help a lot as the email will be sent AFTER the kernel has synchronised the data with a 50% chance of overwriting the last copy of good data with the bad data! Also the kernel code doesn’t seem to tell userspace which disk had the wrong data in a 3-disk mirror (and presumably a RAID-6 works in the same way) so even if the data can be corrected I won’t know which disk is failing.&lt;/p&gt;
&lt;p&gt;Another problem with RAID checking is the fact that it will inherently take a long time and in practice can take a lot longer than necessary. For example I run some systems with LVM on RAID-1 on which only a fraction of the VG capacity is used, in one case the kernel will check 2.7TB of RAID even when there’s only 470G in use!&lt;/p&gt;
&lt;h3&gt;The BTRFS Filesystem&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://btrfs.ipv5.de/&quot;&gt;The btrfs Wiki is currently at btrfs.ipv5.de as the kernel.org wikis are apparently still read-only since the compromise [3]&lt;/a&gt;. BTRFS is noteworthy for doing checksums on data and metadata and for having internal support for RAID. So if two disks in a BTRFS RAID-1 disagree then the one with valid checksums will be taken as correct!&lt;/p&gt;
&lt;p&gt;I’ve just done a quick test of this. I created a filesystem with the command “&lt;b&gt;mkfs.btrfs -m raid1 -d raid1 /dev/vg0/raid?&lt;/b&gt;” and copied /dev/urandom to it until it was full. I then used dd to copy /dev/urandom to some parts of /dev/vg0/raidb while reading files from the mounted filesystem – that worked correctly although I was disappointed that it didn’t report any errors, I had hoped that it would read half the data from each device and fix some errors on the fly. Then I ran the command “&lt;b&gt;btrfs scrub start .&lt;/b&gt;” and it gave lots of verbose errors in the kernel message log telling me which device had errors and where the errors are. I was a little disappointed that the command “&lt;b&gt;btrfs scrub status .&lt;/b&gt;” just gave me a count of the corrected errors and didn’t mention which device had the errors.&lt;/p&gt;
&lt;p&gt;It seems to me that BTRFS is going to be a much better option than Linux software RAID once it is stable enough to use in production. I am considering upgrading one of my less important servers to Debian/Unstable to test out BTRFS in this configuration.&lt;/p&gt;
&lt;p&gt;BTRFS is rumored to have performance problems, I will test this but don’t have time to do so right now. Anyway I’m not always particularly concerned about performance, I have some systems where reliability is important enough to justify a performance loss.&lt;/p&gt;
&lt;h3&gt;BTRFS and Xen&lt;/h3&gt;
&lt;p&gt;The system with the 2.7TB RAID-1 is a Xen server and LVM volumes on that RAID are used for the block devices of the Xen DomUs. It seems obvious that I could create a single BTRFS filesystem for such a machine that uses both disks in a RAID-1 configuration and then use files on the BTRFS filesystem for Xen block devices. But that would give a lot of overhead of having a filesystem within a filesystem. So I am considering using two LVM volume groups, one for each disk. Then for each DomU which does anything disk intensive I can export two LVs, one from each physical disk and then run BTRFS inside the DomU. The down-side of this is that each DomU will need to scrub the devices and monitor the kernel log for checksum errors. Among other things I will have to back-port the BTRFS tools to CentOS 4.&lt;/p&gt;
&lt;p&gt;This will be more difficult to manage than just having an LVM VG running on a RAID-1 array and giving each DomU a couple of LVs for storage.&lt;/p&gt;
&lt;h3&gt;BTRFS and DRBD&lt;/h3&gt;
&lt;p&gt;The combination of BTRFS RAID-1 and DRBD is going to be a difficult one. The obvious way of doing it would be to run DRBD over loopback devices that use large files on a BTRFS filesystem. That gives the overhead of a filesystem in a filesystem as well as the DRBD overhead.&lt;/p&gt;
&lt;p&gt;It would be nice if BTRFS supported more than two copies of mirrored data. Then instead of DRBD over RAID-1 I could have two servers that each have two devices exported via NBD and BTRFS could store the data on all four devices. With that configuration I could lose an entire server and get a read error without losing any data!&lt;/p&gt;
&lt;h3&gt;Comparing Risks&lt;/h3&gt;
&lt;p&gt;I don’t want to use BTRFS in production now because of the risk of bugs. While it’s unlikely to have really serious bugs it’s theoretically possible that as bug could deny access to data until kernel code is fixed and it’s also possible (although less likely) that a bug could result in data being overwritten such that it can never be recovered. But for the current configuration (Ext4 on Linux software RAID-1) it’s almost certain that I will lose small amounts of data and it’s most probable that I have silently lost data on many occasions without realising.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[1]&lt;a href=&quot;http://www.zdnet.com/blog/storage/why-raid-6-stops-working-in-2019/805&quot;&gt; http://www.zdnet.com/blog/storage/why-raid-6-stops-working-in-2019/805&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[2]&lt;a href=&quot;http://storagemojo.com/2008/02/18/latent-sector-errors-in-disk-drives/&quot;&gt; http://storagemojo.com/2008/02/18/latent-sector-errors-in-disk-drives/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[3]&lt;a href=&quot;http://btrfs.ipv5.de/&quot;&gt; http://btrfs.ipv5.de/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://etbe.coker.com.au/2008/10/14/some-raid-issues/&quot; rel=&quot;bookmark&quot; title=&quot;Some RAID Issues&quot;&gt;Some RAID Issues&lt;/a&gt; &lt;small&gt;I just read an interesting paper titled An Analysis of...&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://etbe.coker.com.au/2008/06/13/ecc-ram-vs-raid/&quot; rel=&quot;bookmark&quot; title=&quot;ECC RAM is more useful than RAID&quot;&gt;ECC RAM is more useful than RAID&lt;/a&gt; &lt;small&gt;A common myth in the computer industry seems to be...&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://etbe.coker.com.au/2007/11/16/software-vs-hardware-raid/&quot; rel=&quot;bookmark&quot; title=&quot;Software vs Hardware RAID&quot;&gt;Software vs Hardware RAID&lt;/a&gt; &lt;small&gt;Should you use software or hardware RAID? Many people claim...&lt;/small&gt;&lt;/li&gt;
&lt;/ol&gt; </description> 
	<pubDate>Sun, 05 Feb 2012 14:46:36 +0000</pubDate>

</item> 
<item>
	<title>Steve Kemp: Some domains just don&#39;t learn</title>
	<guid>http://blog.steve.org.uk/some_domains_just_don_t_learn.html</guid>
	<link>http://blog.steve.org.uk/some_domains_just_don_t_learn.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/skx.png&quot; width=&quot;76&quot; height=&quot;105&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;For the past few years the &lt;a href=&quot;http://www.steve.org.uk/Software/ms-lite/&quot;&gt;anti-spam system I run&lt;/a&gt; has been based on a simplified version of something I previously ran commercially.&lt;/p&gt;
&lt;p&gt;Although the code is similar in intent there were both explicit feature removals, and simplifications made.&lt;/p&gt;
&lt;p&gt;Last month I &lt;a href=&quot;http://repository.steve.org.uk/cgi-bin/hgwebdir.cgi/ms-lite/rev/d8f232f37d88&quot;&gt;re-implimented domain-blacklisting&lt;/a&gt; - because a single company keeps ignoring requests to remove me.&lt;/p&gt;
&lt;p&gt;So LinkedIn.com if you&#39;re reading this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&#39;ve never had an account on your servers.&lt;/li&gt;
&lt;li&gt;I find your junk mail annoying.&lt;/li&gt;
&lt;li&gt;I suspect I&#39;ll join your site/service when hell freezes over.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&#39;ve also implemented TLD-blacklisting which has been useful.&lt;/p&gt;
&lt;blockquote&gt;
 &lt;p&gt;TLD-blacklisting in my world is not about blocking mail from foo@bar.ph (whether in the envelope sender, or the from: header), instead it is about matching the reverse DNS of the connecting client.&lt;/p&gt;
 &lt;p&gt;If I recieve a connection from 1.2.3.4 and the reverse DNS of that IP address matches, say, /\.sa$/i then I default to denying it.&lt;/p&gt;
 &lt;p&gt;My real list is longer, and handled via files:&lt;/p&gt;
&lt;pre&gt;steve@steve:~$ ls /srv/_global_/blacklisted/tld/ -C
ar  br  cn  eg  hr  in  kr  lv  mn  np  ph  ro  sg  tg  ua  ve  zw
aw  cc  cy  gm  hu  is  kz  ma  my  nu  pk  rs  sk  th  ug  vn
be  ch  cz  gr  id  it  lk  md  mz  nz  pl  ru  su  tr  uy  ws
bg  cl  ec  hk  il  ke  lt  mk  no  om  pt  sa  sy  tw  uz  za
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;On average I&#39;m rejecting about 2500 messagse a day at SMTP-time, and 30 messages, or so, hit my SPAM folder after being filtered with CRM114 after being accepted for delivery.  (They are largely from @hotmail and @yahoo, along with random compromised machines.  The amount of times I see a single mail from a host with RDNS mysql.example.org is staggering.).&lt;/p&gt;
&lt;p&gt;(Still looking forward to the development of &lt;a href=&quot;https://github.com/baudehlo/Haraka&quot;&gt;Haraka&lt;/a&gt;, a node.js version of qpsmtpd.)&lt;/p&gt;
&lt;p&gt;ObQuote: &quot;Mr. Mystery Guest? Are you still there? &quot; - Die Hard&lt;/p&gt; </description> 
	<pubDate>Sun, 05 Feb 2012 13:24:44 +0000</pubDate>

</item> 
<item>
	<title>Michal &amp;#268;iha&amp;#345;: phpMyAdmin goes github</title>
	<guid>http://blog.cihar.com/archives/2012/02/05/phpmyadmin-goes-github/?utm_source=rss2</guid>
	<link>http://blog.cihar.com/archives/2012/02/05/phpmyadmin-goes-github/?utm_source=rss2</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/nijel.png&quot; width=&quot;64&quot; height=&quot;67&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Yesterday we did held &lt;a href=&quot;http://www.phpmyadmin.net/&quot;&gt;phpMyAdmin&lt;/a&gt; team meeting and we discussed several things for project future. One of discussed things was to move our repositories to github for easier collaboration and management of private repositories.&lt;/p&gt;
&lt;p&gt;After some discussions we&#39;ve decided to go for it. As I write this blog, all repositories are being pushed there and once all developers will get their access rights there, we will move completely.&lt;/p&gt;
&lt;p&gt;But even right now, you can fork us on &lt;a href=&quot;https://github.com/phpmyadmin&quot;&gt;github&lt;/a&gt;, the code is already there and will be updated obsessionally until we fully move there.&lt;/p&gt;

&lt;p style=&quot;font-size: smaller;&quot;&gt;
Filed under: 


&lt;a href=&quot;http://blog.cihar.com/archives/english/&quot;&gt;English&lt;/a&gt;

&lt;a href=&quot;http://blog.cihar.com/archives/phpmyadmin/&quot;&gt;Phpmyadmin&lt;/a&gt;

|

&lt;a href=&quot;http://blog.cihar.com/archives/2012/02/05/phpmyadmin-goes-github/#comments&quot;&gt;0 comments&lt;/a&gt;
|
&lt;a href=&quot;http://flattr.com/thing/59773/Michal-Cihars-Weblog&quot;&gt;Flattr this!&lt;/a&gt;
&lt;/p&gt; </description> 
	<pubDate>Sun, 05 Feb 2012 09:28:12 +0000</pubDate>
  <author>michal@cihar.com (Michal Čihař)</author>  
</item> 
<item>
	<title>Petter Reinholdtsen: Saving power with Debian Edu / Skolelinux using shutdown-at-night</title>
	<guid>http://people.skolelinux.org/pere/blog/Saving_power_with_Debian_Edu___Skolelinux_using_shutdown_at_night.html</guid>
	<link>http://people.skolelinux.org/pere/blog/Saving_power_with_Debian_Edu___Skolelinux_using_shutdown_at_night.html</link>
     <description>  &lt;p&gt;Since the Lenny version of
&lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux&lt;/a&gt;, a
feature to save power have been included.  It is as simple as it is
practical: Shut down unused clients at night, and turn them on again
in the morning.  This is done using the
&lt;a href=&quot;http://packages.qa.debian.org/s/shutdown-at-night.html&quot;&gt;shutdown-at-night&lt;/a&gt; Debian package.&lt;/p&gt;

&lt;p&gt;To enable this feature on a client, the machine need to be added to
the netgroup shutdown-at-night-hosts.  For Debian Edu, this is done in
LDAP, and once this is in place, the machine in question will check
every hour from 16:00 until 06:00 to see if the machine is unused, and
shut it down if it is.  If the hardware in question is supported by
the
&lt;a href=&quot;http://packages.qa.debian.org/n/nvram-wakeup.html&quot;&gt;nvram-wakeup&lt;/a&gt;
package, the BIOS is told to turn the machine back on around 07:00 +-
10 minutes.  If this isn&#39;t working, one can configure wake-on-lan to
try to turn on the client.  The wake-on-lan option is only documented
and not enabled by default in Debian Edu.&lt;/p&gt;

&lt;p&gt;It is important to not turn all machines on at once, as this can
blow a fuse if several computers are connected to the same fuse like
the common setup for a classroom.  The nvram-wakeup method only work
for machines with a functioning hardware/BIOS clock.  I&#39;ve seen old
machines where the BIOS battery were dead and the hardware clock were
starting from 0 (or was it 1990?) every boot.  If you have one of
those, you have to turn on the computer manually.&lt;/p&gt;

&lt;p&gt;The shutdown-at-night package is completely self contained, and can
also be used outside the Debian Edu environment.  For those without a
central LDAP server with netgroups, one can instead touch the file
&lt;tt&gt;/etc/shutdown-at-night/shutdown-at-night&lt;/tt&gt; to enable it.
Perhaps you too can use it to save some power?&lt;/p&gt; </description> 
	<pubDate>Sun, 05 Feb 2012 08:45:00 +0000</pubDate>

</item> 
<item>
	<title>John Goerzen: Rain, A Funeral, and Excitement</title>
	<guid>http://changelog.complete.org/?p=7388</guid>
	<link>http://changelog.complete.org/archives/7388-rain-a-funeral-and-excitement</link>
     <description>  &lt;p&gt;&lt;b&gt;Rain&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Friday was something of a rare day for February in Kansas.  Starting at about 2AM, the wind picked up, blowing so hard that our windows rattled.  That part isn’t so rare.  Then the cold rain started, dropping almost 2.5″ throughout the day.&lt;/p&gt;
&lt;p&gt;As I worked, I had the blinds on the windows open, but they didn’t let in very much light.  Still, the wind had calmed down, so the intermittent rain outside was peaceful.  Jacob went out to play for a little while, so every so often I saw a warmly-dressed and excited-looking 5-year-old run past my window.  A little while after he came in, I told Jacob, “I saw you playing outside.”  His response: “Oh good!  I got wet!”  Which, despite the fact that it was about 50 degrees, seemed to excite him.&lt;/p&gt;
&lt;p&gt;After the blustery start, the calm, slow, and peaceful rain was a pleasant thing to see throughout the day.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Funeral&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;My great aunt Alice Goerzen passed away last Sunday.  So today, for the third time in a little over a year, I was at the funeral of a Goerzen relative and neighbor.  Alice’s husband, Milt, passed away in late 2010, and it was while I was at his funeral that &lt;a href=&quot;http://changelog.complete.org/archives/4799-a-scary-day-and-a-walking-miracle&quot;&gt;Jacob got run over by a tractor&lt;/a&gt;.  That memory certainly came back to me today.&lt;/p&gt;
&lt;p&gt;But I think I should set the stage and explain what funerals are like in this small, rural Kansas community.&lt;/p&gt;
&lt;p&gt;At the church, while people file in, family and close friends — generally defined as loosely as desired — meet in some other room before the funeral.  Memories may be shared, or songs sung, or maybe just a brief meditation or prayer.&lt;/p&gt;
&lt;p&gt;Then the man from the funeral home — there’s only one in town — will step in.  Ivan Miller owned the business for decades, and although he’s now retired, his replacement seems pretty similar.  Kindly, respectful, and pretty much unchanging.  This group then files into the church sanctuary to sit up front, while the rest of the congregation is standing and music is played.&lt;/p&gt;
&lt;p&gt;We typically sing some hymns, hear memories from the family, a message from a pastor, and then do downstairs for &lt;i&gt;faspa&lt;/i&gt;: an light meal with coffee, &lt;a href=&quot;http://en.wikipedia.org/wiki/Russian_Mennonite_zwieback&quot;&gt;&lt;i&gt;zwieback&lt;/i&gt;&lt;/a&gt;, “funeral cheese”, and some relishes and dessert.  You can, by the way, go to the local grocery store and find a product labeled “funeral cheese”.  It’s a sharp cheddar, sliced thick and cut into pie piece-shaped wedges.&lt;/p&gt;
&lt;p&gt;After everyone has picked up their food, microphones are passed around, and anybody that wants to can share memories and stories.  These are often hilarious, or touching, and can be more random than anyone could expect.&lt;/p&gt;
&lt;p&gt;Today we heard a lot about how Aunt Alice loved her flowers and garden.  We even saw a video of her giving a tour of her garden, with Milt’s mower in the background occasionally accidentally causing a distraction (or maybe it wasn’t so accidental; he’d never miss an opportunity to cause some mischief…)&lt;/p&gt;
&lt;p&gt;I tend to think of attending funerals around here as a good time.  Sadness is inevitable, but there are so many amazing stories that it is hard to leave feeling sad.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Excitement&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;This afternoon, Jacob found me in the office and as he often does, said, “Dad, I want to do something with you.”  Usually I ask him what he’d like to do, but his first instinct is usually to ask for watching train videos on Youtube.  So sometimes I make other suggestions.  Today we played “hide and seek with radios,” in which the person that is counting is supposed to radio to the other person when they are done.  Today was the first time that Jacob came up with the trick of talking into the radio while I was hiding so he could hear where I was.  I was sort of proud of him, and he failed to completely hide his smile when I told him I had to turn off my radio or else he’d find me too fast.&lt;/p&gt;
&lt;p&gt;Then later, we played with &lt;a href=&quot;http://changelog.complete.org/archives/1451-jacob-has-a-new-computer-and-a-favorite-shell&quot;&gt;Jacob’s computer&lt;/a&gt;, a Linux-based command-line-only machine.  I have set up a few shell scripts and aliases for him.  Since it doesn’t play videos, he doesn’t use it as much as he does mine, but it is really fun to watch how his interaction with it changes as he gets older.&lt;/p&gt;
&lt;p&gt;He can now read amazingly well for a 5-year-old, and is starting to learn how to spell.  He loves word games, writing, and typing.  I thought I would install an ASCII art program for him.  I told Jacob I had some ideas for a new game, and he was irresistibly intrigued.  I offered him a choice between &lt;a href=&quot;http://www.figlet.org/&quot;&gt;figlet&lt;/a&gt; and &lt;a href=&quot;http://caca.zoy.org/wiki/toilet&quot;&gt;toilet&lt;/a&gt;.  And, as is probably no surprise to anyone with a 5-year-old, he chose toilet based on its name,  Jacob and Oliver both loved typing things and seeing them displayed bigger.  I showed Jacob how I could make a freight train by typing &lt;tt&gt;,&amp;lt;@-[]-(*)-@&amp;gt;&lt;/tt&gt; (that’s the comma-shaped snowplow, engine, boxcar [], tank car (*), and caboose @&amp;gt;).  Then toilet drew them big, and though abstract, caused great excitement.&lt;/p&gt;
&lt;p&gt;I hooked up one of the speech synthesizers in Debian to a simple shell script named “talk”, which is a huge hit with the boys.  They enjoy typing in nonsense and hearing the funny result, or in typing in real words and hearing how the computer says them right (or doesn’t).  All told, we had a good hour’s worth of excitement up there.&lt;/p&gt; </description> 
	<pubDate>Sun, 05 Feb 2012 03:11:55 +0000</pubDate>

</item> 
<item>
	<title>Steinar H. Gunderson: Optimism</title>
	<guid>http://blog.sesse.net/blog/tech/2012-02-05-02-01_optimism.html</guid>
	<link>http://blog.sesse.net/blog/tech/2012-02-05-02-01_optimism.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/sesse.png&quot; width=&quot;74&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I received an email from a service I signed up for a long time ago (but don&#39;t
use anymore). Seemingly it was a newsletter, but this was the main part of
the text:&lt;/p&gt;

&lt;pre&gt;Quite recently it makes it hard to do our job, when we suffer
from massive aircraft noise resulting from Frankfurt airport.

As we know for many years IP telephony users are travelling
a lot. If at all possible we kindly ask you and your fellows
to please avoid Frankfurt hub, and accordingly Deutsche Lufthansa
these days.

Almost all parts of Frankfurt/Main region, our home, are affected
by lower-lying flight paths, and a new urban runway that has been
opened in October, 2011.

We want to apologize for the inconvenience and will inform you in
our news forum as soon as the announced features become generally
available. Feel free to contact us in the forum for any questions
you may have.
&lt;/pre&gt;

&lt;p&gt;I say, that&#39;s optimism.&lt;/p&gt; </description> 
	<pubDate>Sun, 05 Feb 2012 01:01:00 +0000</pubDate>

</item> 
<item>
	<title>Paul Tagliamonte: Mapping the Ubuntu Community</title>
	<guid>http://blog.pault.ag/post/17036484637</guid>
	<link>http://blog.pault.ag/post/17036484637</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/paultag.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;In playing with some tools I’ve run into at &lt;code&gt;$work&lt;/code&gt;, I’ve tried loading in some Ubuntu datasets in some fun and interesting ways.&lt;/p&gt;

&lt;p&gt;Today, I’ve chosen to map all Ubuntu Members with a public lat/lon, sized by Karma.&lt;/p&gt;

&lt;p&gt;The sizes relate to if the Karma is greater then:&lt;/p&gt;

&lt;p&gt;1: 10&lt;/p&gt;

&lt;p&gt;2: 50&lt;/p&gt;

&lt;p&gt;3: 100&lt;/p&gt;

&lt;p&gt;4: 500&lt;/p&gt;

&lt;p&gt;5: 1000&lt;/p&gt;

&lt;p&gt;6: 2000&lt;/p&gt;

&lt;p&gt;7: 7000&lt;/p&gt;

&lt;p&gt;8: 15000&lt;/p&gt;

&lt;p&gt;9: 25000&lt;/p&gt;

&lt;p&gt;10: 50000&lt;/p&gt;

&lt;p&gt;So, without further adieu, here’re some maps!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/9LaPY.png&quot; alt=&quot;UK&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/Vp0Mu.png&quot; alt=&quot;US&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/krYo7.png&quot; alt=&quot;EU&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/bJ1gB.png&quot; alt=&quot;EEU&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/2tLSo.png&quot; alt=&quot;SA&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/xkiG1.png&quot; alt=&quot;Globe&quot; /&gt;&lt;/p&gt; </description> 
	<pubDate>Sat, 04 Feb 2012 17:04:15 +0000</pubDate>

</item> 
<item>
	<title>Carl Chenet: FOSDEM 2012</title>
	<guid>http://carlchenet.wordpress.com/?p=1269</guid>
	<link>http://carlchenet.wordpress.com/2012/02/04/fosdem-2012/</link>
     <description>  &lt;p&gt;&lt;a href=&quot;http://carlchenet.files.wordpress.com/2012/02/fosdem2012-going-to2.png&quot;&gt;&lt;img src=&quot;http://carlchenet.files.wordpress.com/2012/02/fosdem2012-going-to2.png?w=500&quot; alt=&quot;&quot; class=&quot;alignnone size-full wp-image-1281&quot; title=&quot;fosdem2012-going-to&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;See you there!&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/carlchenet.wordpress.com/1269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/carlchenet.wordpress.com/1269/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/carlchenet.wordpress.com/1269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/carlchenet.wordpress.com/1269/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/carlchenet.wordpress.com/1269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/facebook/carlchenet.wordpress.com/1269/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/carlchenet.wordpress.com/1269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/twitter/carlchenet.wordpress.com/1269/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/carlchenet.wordpress.com/1269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/carlchenet.wordpress.com/1269/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/carlchenet.wordpress.com/1269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/carlchenet.wordpress.com/1269/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/carlchenet.wordpress.com/1269/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/carlchenet.wordpress.com/1269/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=carlchenet.wordpress.com&amp;amp;blog=7722010&amp;amp;post=1269&amp;amp;subd=carlchenet&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; height=&quot;1&quot; border=&quot;0&quot; width=&quot;1&quot; /&gt; </description> 
	<pubDate>Sat, 04 Feb 2012 15:10:03 +0000</pubDate>

</item> 
<item>
	<title>Stefano Zacchiroli: bits from the DPL for January 2012</title>
	<guid>http://upsilon.cc/~zack/blog/posts/2012/02/bits_from_the_DPL_for_January_2012/</guid>
	<link>http://upsilon.cc/~zack/blog/posts/2012/02/bits_from_the_DPL_for_January_2012/</link>
     <description>  &lt;p&gt;&lt;a href=&quot;http://lists.debian.org/debian-devel-announce/2012/02/msg00001.html&quot;&gt;
Fresh from the oven&lt;/a&gt;, monthly report of what I&#39;ve been working
on as DPL during January 2012.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Dear Developers,&lt;br /&gt;
here is another monthly report of what happened in DPL-land, this
time for January 2012. There&#39;s quite a bit to report about ---
including an insane amount of legal-ish stuff --- so please bear
with me. Or not.&lt;/p&gt;
&lt;h1&gt;Legal stuff&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Webmaster heroes have decided to tackle the long standing issues
of &lt;a href=&quot;http://bugs.debian.org/388141&quot;&gt;copyright&lt;/a&gt; and
&lt;a href=&quot;http://bugs.debian.org/238245&quot;&gt;licensing&lt;/a&gt; of the Debian
website. I&#39;ve accepted to help them out in reaching consensus with
license choice and I&#39;m happy to report that we&#39;ve managed to pick a
DFSG-free license (BSD-ish) for future contributions. Webmasters
will soon contact contributors to re-license old contributions (or
get rid of them), so hopefully will have a DFSG-free website RSN.
Many thanks go to David Prévot for successfully tackling such a can
of worms.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I&#39;ve sought a second legal advice on the constraints that
trademarks (might) impose on the work-flow of a distro like Debian.
Luckily, it is coherent with one I&#39;ve sought in the past so I&#39;m now
in condition to wrap up the &quot;trademark vs DFSG&quot; &lt;a href=&quot;http://lists.debian.org/debian-project/2011/10/msg00028.html&quot;&gt;thread
on -project&lt;/a&gt; with the missing legal information. Hopefully, I&#39;ll
find time to do that sometime next week.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I&#39;ve restarted &lt;a href=&quot;http://france.debian.net/pipermail/asso/2012-January/001614.html&quot;&gt;discussions&lt;/a&gt;
with the Debian France association so that they can become a Debian
Trusted Organization (as per Constitution §9.3). Members of the
board of the association seem to be interested and I&#39;m positive it
could happen fairly soon. The importance of this is that we could
use a back-up association in Europe to hold Debian assets, to
complement the services that FFIS are already offering us.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Thanks to the contributions of Benjamin Mako Hill and SPI
lawyers, I&#39;ve now what I consider a final draft of a trademark
policy for Debian trademarks. Before proposing it to you, I&#39;m
waiting for some feedback from another umbrella organization for
Free Software projects, that is working on a trademark policy for
all their associated projects. As many Free Software projects are
seeking trademark protection these days, I see benefits in having
uniform (and sane!) policies. I hope to be able to gather the
feedback I still miss this week-end at FOSDEM, and let you know
shortly after that. Once this is done, we&#39;ll also be able to
(finally!) relicense all kinds of Debian logos under a DFSG-free
license.&lt;/p&gt;
&lt;p&gt;On this front, I&#39;ve also updated http://www.debian.org/trademark
with the information needed to contact us about trademark usage;
hopefully it&#39;ll reduce the burden of answering to such
inquiries.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;With the help of Kenshi Muto, Fumitoshi Ukai, Ishikawa Mutsumi,
Shuzo Hatta, and Yasuhiro Araki we&#39;ve started the process to move
the Debian trademark in Japan from individuals (who are present or
past members of the Debian JP association) to SPI. That would help
dealing with these matters, as well as ensure that important Debian
assets are held by Debian Trusted Organizations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I remind you that we&#39;ve an ongoing complaint with the current
registrant of debian.eu, domain that we believe Debian should
legitimately own. Lawyers at SPI has now formally contacted the
current owner and hopefully we&#39;ll be able to solve the issue
amicably in the next months.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Some of the past legal advice I sought for PPA came handy in a
&lt;a href=&quot;http://lists.debian.org/debian-mentors/2012/01/msg00589.html&quot;&gt;discussion&lt;/a&gt;
on the legal risks of running a service like mentors.debian.net,
hopefully addressing part of the issues in turning that into
mentors.debian.org&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Patent policy for the Debian archive is now ready as well and I
also have a patch for the website ready to be merged. I&#39;m just
waiting for the final blessing from SPI (lawyers) to go ahead and
publish it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Most of the above wouldn&#39;t have been possible without the
precious help of folks at &lt;a href=&quot;http://www.softwarefreedom.org/&quot;&gt;SFLC&lt;/a&gt; working for SPI and
Debian. Be sure to thank SFLC for what they&#39;re doing for us and
many other Free Software projects.&lt;/p&gt;
&lt;h1&gt;Coordination&lt;/h1&gt;
&lt;p&gt;Nobody stepped up to coordinate the artwork collection for
Wheezy I&#39;ve &lt;a href=&quot;http://lists.debian.org/debian-devel-announce/2012/01/msg00001.html&quot;&gt;
mentioned last month&lt;/a&gt;, so I&#39;ve tried to do a little bit of that
myself. The -publicity team is now preparing the call for artwork
and hopefully we&#39;ll send it out RSN. In case you want to help,
there is still a lot of room for that; just show up on the
debian-desktop mailing list.&lt;/p&gt;
&lt;h1&gt;Sprints&lt;/h1&gt;
&lt;p&gt;A Debian Med sprint has happened in January, and Andreas Tille
has provided a nice and detailed &lt;a href=&quot;http://lists.debian.org/debian-sprints/2012/01/msg00001.html&quot;&gt;report
about it&lt;/a&gt;. Some more sprints are forthcoming this spring, how
about yours?&lt;/p&gt;
&lt;h1&gt;Money&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;We got from SPI a prepaid and rechargeable credit card that we
can use for expenses or other kind of guarantees. Many thanks to
Michael Schulteiss, SPI treasurer, for his help with that. Using
it, we&#39;ve redeemed 10k$ of credits offered to us by Amazon, that
(thanks to ongoing work by Lucas Nussbaum) we&#39;re going to use to
make our QA rebuilds independent from the underlying computing
infrastructure.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Thanks to the help of Luca Capello, we advanced quite a bit on
forming the &lt;a href=&quot;http://wiki.debian.org/Teams/Events/DebianEventsBox&quot;&gt;Debian Event
Box kit&lt;/a&gt; that should make it easier to set up Debian booth at
FOSS events. We bought the machine for it (for about ~755 CHF) and
the box to contain it will soon be on its way as well. If you&#39;re at
FOSDEM, tend to the Debian booth to check it out (and possibly help
out with the technical setup).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We&#39;ve got quite a bit of donations during the December holidays.
I&#39;ve took the chance to thank donors, discuss what we do with
donations and the &lt;a href=&quot;http://upsilon.cc/~zack/blog/posts/2012/01/debian_donations-fu/&quot;&gt;status
of publishing periodic Debian budgets&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pinged by Yves-Alexis Perez, I&#39;ve now properly documented the
fact that DDs are welcome to apply for hardware sponsoring, in case
the hardware can be used to &lt;a href=&quot;http://upsilon.cc/~zack/blog/posts/2012/01/hardware_sponsorship_for_Debian_Developers/&quot;&gt;
help&lt;/a&gt;/&lt;a href=&quot;http://wiki.debian.org/Teams/DPL/SponsoringGuidelines#Hardware_Guidelines&quot;&gt;improve&lt;/a&gt;
their Debian work. As &lt;a href=&quot;http://www.corsac.net/?rub=blog&amp;amp;post=1541&quot;&gt;suggested by
Yves-Alexis&lt;/a&gt;, you can also advocate &lt;em&gt;other&lt;/em&gt; DDs for hw
sponsoring.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Given hardware invariably age and that we can afford it, I&#39;ve
prodded DSA to prepare a general hardware replacement plan for our
machines. Planning will go on this week-end and FOSDEM (thanks to
Martin Zobel-Helas and Faidon Liambotis for their presence here)
and I hope to have an approved machine replacement plan well before
the end of the current DPL term (although I&#39;m usually
optimist...).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Important stuff going on&lt;/h1&gt;
&lt;p&gt;Other important stuff has been going on in various area of the
project in January. I&#39;d like to point your attention to a couple of
things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;People active on debian-mentors have proposed an &lt;a href=&quot;http://lists.debian.org/debian-mentors/2012/01/msg00365.html&quot;&gt;improved
work-flow&lt;/a&gt; to deal with sponsoring/mentoring requests, based on
the usage of a new pseudo package &quot;sponsorship-requests&quot;. Thanks to
Ansgar Burchardt, Jakub Wilk, Arno Töll, and Gregor Herrmann for
working on this.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Raphael Hertzog has kickstarted work on &lt;a href=&quot;http://dep.debian.net/deps/dep2/&quot;&gt;DEP-2&lt;/a&gt;, as a way to
rationalize the flow of package-related information that
(co-)maintainers get. Discussion about the idea are ongoing on the
debian-qa mailing list.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Miscellanea&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Work has further progressed in reaching out to companies with an
interest in giving support for, and contributing to Debian. Thanks
to Alexander Wirt the &lt;a href=&quot;http://bugs.debian.org/650082&quot;&gt;technical work&lt;/a&gt; is now done and
some sort of governance policy has been decided. Further step for
me is to announce it properly hoping to reach out to as many
interested companies as possible. I hope to finalize that in the
next month. (If you&#39;re working for such a company and you happen to
read this, feel free to reach out to me already.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I&#39;ve completed an old todo item setting up and &lt;a href=&quot;http://wiki.debian.org/TitanpadDebianNet&quot;&gt;documenting&lt;/a&gt; &lt;a href=&quot;http://lists.debian.org/debian-project/2012/01/msg00072.html&quot;&gt;titanpad.debian.net&lt;/a&gt;,
service that has been requested for collaborative work during
various kinds of online events. Help is welcome to help
administering the service (see &lt;a href=&quot;http://wiki.debian.org/TitanpadDebianNet&quot;&gt;doc&lt;/a&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;SPI has clarified the role of project representatives and, as a
consequence of that, I (as DPL) no longer receive SPI board
discussions addressed to board@spi. That is good not only for the
sanity of my inbox, but also because it puts all projects
affiliated to SPI at the same level of communication within SPI.
Thanks to Robert Brockway for his work on this.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the unlikely case you&#39;ve read thus far, thanks for your
attention! Happy Debian hacking.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;PS as usual, the boring day-to-day activity log is available at
&lt;code&gt;master:/srv/leader/news/bits-from-the-DPL.*&lt;/code&gt;&lt;/p&gt; </description> 
	<pubDate>Sat, 04 Feb 2012 13:51:32 +0000</pubDate>

</item> 
<item>
	<title>Christian Perrier: Debian Installer fully translated into Kannada</title>
	<guid>http://www.perrier.eu.org/weblog/bubulle/planet-debian/d-i-kannada</guid>
	<link>http://www.perrier.eu.org/weblog/2012/02/04#d-i-kannada</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/bubulle.png&quot; width=&quot;69&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  I imagine my readers (except those from India) : &quot;Kannada, WTF&quot;?
&lt;p&gt;
No, this is not about D-I being translated into the variants of
English and French spoken with a funny accent in a very big country located north of the United States of
America, where they play ice hockey against mooses, wearing red
policemen suits, with fur hats and drinking maple syrup.
&lt;/p&gt;&lt;p&gt;
Kannada is the official language of the state of Karnataka, in
southern India. The state that has Bangalore, the IT-leading city in
India as capital.
&lt;/p&gt;&lt;p&gt;
Kannada is spoken by about 45 million people, roughly the population
of Spain.
&lt;/p&gt;&lt;p&gt;
And, since yesterday, thanks to a local group lead by Vikram Vincent,
Debian Installer is fully translated to Kannada.
&lt;/p&gt;&lt;p&gt;
As of now, this is the 5th complete language of India along with
Gujarati (46M speakers as first language), Hindi (180M, though some
references mention 550M), Marathi (68M)
and Tamil (62M).
&lt;/p&gt;&lt;p&gt;
Other supported languages of India are Telugu (99% translated, 70M),
Bengali (95%, 71M plus 110M in Bangladesh), Punjabi (91%, 28M) and
Malayalam (86%, 36M).
&lt;/p&gt;&lt;p&gt;
As you see, translators in India are really incredibly active and the
free software community over there deserves some big light. We don&#39;t
have many opportunities to meet up as traveling is not easy for
contributors in India because, among other problems, of visa
regulations for Indian citizens in many so-called western countries.
So, really, I wanted to thank them again for this work.&lt;/p&gt; </description> 
	<pubDate>Sat, 04 Feb 2012 12:40:00 +0000</pubDate>

</item> 
<item>
	<title>Petter Reinholdtsen: Third beta version of Debian Edu / Skolelinux based on Squeeze</title>
	<guid>http://people.skolelinux.org/pere/blog/Third_beta_version_of_Debian_Edu___Skolelinux_based_on_Squeeze.html</guid>
	<link>http://people.skolelinux.org/pere/blog/Third_beta_version_of_Debian_Edu___Skolelinux_based_on_Squeeze.html</link>
     <description>  &lt;p&gt;I am happy to announce that finally we managed today to wrap up and
publish the third beta version of
&lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux&lt;/a&gt; based
on Squeeze.  If you want to test a LDAP backed Kerberos server with
out of the box PXE configuration for running diskless machines and
installing new machines, check it out.  If you need a software
solution for your school, check it out too.  The full announcement is
&lt;a href=&quot;http://lists.debian.org/debian-edu-announce/2012/02/msg00000.html&quot;&gt;available&lt;/a&gt;
on the project announcement list.&lt;/p&gt;

&lt;p&gt;I am very happy to report these changes and improvements since
beta2 (there are more, see announcement for full list):&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;It is now possible to change the pre-configured IP subnet from
  10.0.0.0/8 to something else by using the subnet-change tool after
  the installation.&lt;/li&gt;

&lt;li&gt;Too full partitions are now automatically extended on the Main
  Server, based on the rules specified in /etc/fsautoresizetab.&lt;/li&gt;

&lt;li&gt;The CUPS queues are now automatically flushed every night, and all
  disabled queues are restarted every hour.  This should cut down on
  the amount of manual administration needed for printers.&lt;/li&gt;

&lt;li&gt;The set of initial users have been changed.  Now a personal user
  for the local system administrator is created during installation
  instead of the previously created localadmin and super-admin users,
  and this user is granted administrative privileges using group
  membership.  This reduces the number of passwords one need to keep
  up to date on the system.&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;The new main server seem to work so well that I am testing it as my
private DNS/LDAP/Kerberos/PXE/LTSP server at home.  I will use it look
for issues we could fix to polish Debian Edu even further before the
final Squeeze release is published.&lt;/p&gt;

&lt;p&gt;Next weekend the project organise a
&lt;a href=&quot;http://lists.debian.org/debian-edu-announce/2012/01/msg00001.html&quot;&gt;developer
gathering&lt;/a&gt; in Oslo.  We will continue the work on the Squeeze
version, and start initial planning for the Wheezy version.  Perhaps I
will see you there?&lt;/p&gt; </description> 
	<pubDate>Sat, 04 Feb 2012 12:25:00 +0000</pubDate>

</item> 
<item>
	<title>Bartosz Fe&amp;#324;ski: Quick howto for the most stable Linux kernel with Zenbook</title>
	<guid>http://fenski.pl/?p=194</guid>
	<link>http://fenski.pl/2012/02/quick-howto-for-the-most-stable-linux-kernel-with-zenbook/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=quick-howto-for-the-most-stable-linux-kernel-with-zenbook</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/fenio.png&quot; width=&quot;94&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Quick howto for everyone having Asus UX31e aka Zenbook and wants the most stable vanilla kernel with long-time battery life and working touchpad made by Sentelic.&lt;br /&gt;
This should work for every Debian based distro, but has been tested only on the latest Linux Mint 12 (aka Lisa).&lt;br /&gt;
Tutorial is aimed mainly at beginners and should work in a copy&amp;amp;paste manner.&lt;/p&gt;
&lt;p&gt;Of course you have to change every occurence of linux-3.2.4 to whichever version you’re going to install.&lt;br /&gt;
Just make sure that all commands are entered in the correct directories, prompts should look similar to these from examples.&lt;br /&gt;
You will need about 10GB of free disk space.&lt;/p&gt;
&lt;p&gt;Let’s install some dependencies first:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;bash&quot;&gt;fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;zenbook ~ $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;sudo&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;apt-get&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;install&lt;/span&gt; build-essential kernel-package fakeroot libncurses5-dev &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;git&lt;/span&gt; iasl&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now let’s download and unpack the latest kernel (3.2.4 at the time it was written):&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;bash&quot;&gt;fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~ $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;mkdir&lt;/span&gt; kernel
fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~ $ &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;cd&lt;/span&gt; kernel
fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;wget&lt;/span&gt; http:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;www.kernel.org&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;pub&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;linux&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;v3.0&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;linux-3.2.4.tar.bz2
fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;tar&lt;/span&gt; jxvf linux-3.2.4.tar.bz2&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now we take current kernel configuration and put in the kernel tree:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;bash&quot;&gt;fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cp&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;boot&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;config-&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;uname&lt;/span&gt; -r&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;`&lt;/span&gt; linux-3.2.4&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;.config&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now we have to download the latest driver for Sentelic touchpad (this is why we needed git as a dependency):&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;bash&quot;&gt;fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;git&lt;/span&gt; clone &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;git&lt;/span&gt;:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;github.com&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;saaros&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;sentelic.git
fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cp&lt;/span&gt; sentelic&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;src&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;sentelic.&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;*&lt;/span&gt; linux-3.2.4&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;drivers&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;input&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;mouse&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It’s time to fix broken DSDT table (part of ACPI). This is why we had iasl in dependencies.&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;bash&quot;&gt;fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;wget&lt;/span&gt; http:&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;//&lt;/span&gt;files.benesovi.eu&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;ux31e&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;ux31e_dsdt.dsl
fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel $ iasl &lt;span style=&quot;color: #660033;&quot;&gt;-tc&lt;/span&gt; ux31e_dsdt.dsl&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And include it in our kernel configuration:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;bash&quot;&gt;fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;sed&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-ie&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&#39;s/# CONFIG_ACPI_CUSTOM_DSDT is not set/CONFIG_ACPI_CUSTOM_DSDT=y/g&#39;&lt;/span&gt; linux-3.2.4&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;.config 
fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;sed&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-ie&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;s@CONFIG_ACPI_CUSTOM_DSDT_FILE.*@CONFIG_ACPI_CUSTOM_DSDT_FILE=&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\&quot;&lt;/span&gt;&lt;span style=&quot;color: #780078;&quot;&gt;`pwd`&lt;/span&gt;/ux31e_dsdt.hex&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\&quot;&lt;/span&gt;@g&quot;&lt;/span&gt; linux-3.2.4&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;.config&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now ensure that all our options are set up correctly (you can change some other options if you want).&lt;br /&gt;
If you don’t want to change anything then simply exit saving configuration.&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;bash&quot;&gt;fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel $ &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;cd&lt;/span&gt; linux-3.2.4&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;
fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;linux-3.2.4 $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;make&lt;/span&gt; menuconfig&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;We’re ready to start compilation now!&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;bash&quot;&gt;fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;linux-3.2.4 $ fakeroot make-kpkg clean
fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;fenio ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;linux-3.2.4 $ fakeroot make-kpkg &lt;span style=&quot;color: #660033;&quot;&gt;--jobs&lt;/span&gt;=&lt;span style=&quot;color: #000000;&quot;&gt;4&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--initrd&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;--append-to-version&lt;/span&gt;=-fenio &lt;span style=&quot;color: #660033;&quot;&gt;--revision&lt;/span&gt;=&lt;span style=&quot;color: #000000;&quot;&gt;20120204&lt;/span&gt; kernel_image kernel_headers modules_image&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Of course you can change “append-to-version” option for something own.&lt;/p&gt;
&lt;p&gt;In the meantime (kernel compilations takes about one hour) you can modify Grub options to enable powersaving features RC6:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;bash&quot;&gt;fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;zenbook ~ $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;sudo&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;sed&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-ie&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&#39;s/GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX=&quot;i915.powersave=1 i915.semaphores=1 i915.i915_enable_rc6=1&quot;/g&#39;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;etc&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;default&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;grub&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Be sure to do that before installation of kernel, otherwise you will have to run update-grub.&lt;/p&gt;
&lt;p&gt;After compilation you can finally install your new kernel:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;bash&quot;&gt;fenio&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;@&lt;/span&gt;zenbook ~&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;kernel&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;linux-3.2.4 $ &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;sudo&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;dpkg&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-i&lt;/span&gt; ..&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/*&lt;/span&gt;.deb&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Reboot and you’re done!&lt;/p&gt;
&lt;p&gt;Feel free to comment this tutorial if something went wrong.&lt;/p&gt; </description> 
	<pubDate>Sat, 04 Feb 2012 12:22:00 +0000</pubDate>

</item> 
<item>
	<title>Michal &amp;#268;iha&amp;#345;: Enjoying FOSDEM</title>
	<guid>http://blog.cihar.com/archives/2012/02/04/enjoying-fosdem/?utm_source=rss2</guid>
	<link>http://blog.cihar.com/archives/2012/02/04/enjoying-fosdem/?utm_source=rss2</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/nijel.png&quot; width=&quot;64&quot; height=&quot;67&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Again, as usual in last few years, I&#39;m spending first weekend in February in Brussels, where &lt;a href=&quot;http://fosdem.org/2012/&quot;&gt;FOSDEM&lt;/a&gt; is happening.&lt;/p&gt;
&lt;p&gt;This year we&#39;ve again decided to do make this team meeting for &lt;a href=&quot;http://www.phpmyadmin.net/&quot;&gt;phpMyAdmin&lt;/a&gt;, so people from five countries and three continents came to one conference to discuss future development and other stuff.&lt;/p&gt;
&lt;p&gt;But of course this is not only thing I&#39;m going to do here. I came with &lt;a href=&quot;http://www.opepnsuse.org/&quot;&gt;openSUSE&lt;/a&gt; folks, where we&#39;ve brought lot of beer, some DVDs and hardware to show. You&#39;re welcome to check it out. &lt;/p&gt;
&lt;p&gt;And of course there is about 430 talks to visit during weekend :-).&lt;/p&gt;

&lt;p style=&quot;font-size: smaller;&quot;&gt;
Filed under: 


&lt;a href=&quot;http://blog.cihar.com/archives/debian/&quot;&gt;Debian&lt;/a&gt;

&lt;a href=&quot;http://blog.cihar.com/archives/english/&quot;&gt;English&lt;/a&gt;

&lt;a href=&quot;http://blog.cihar.com/archives/phpmyadmin/&quot;&gt;Phpmyadmin&lt;/a&gt;

&lt;a href=&quot;http://blog.cihar.com/archives/suse/&quot;&gt;Suse&lt;/a&gt;

|

&lt;a href=&quot;http://blog.cihar.com/archives/2012/02/04/enjoying-fosdem/#comments&quot;&gt;0 comments&lt;/a&gt;
|
&lt;a href=&quot;http://flattr.com/thing/59773/Michal-Cihars-Weblog&quot;&gt;Flattr this!&lt;/a&gt;
&lt;/p&gt; </description> 
	<pubDate>Sat, 04 Feb 2012 10:11:11 +0000</pubDate>
  <author>michal@cihar.com (Michal Čihař)</author>  
</item> 
<item>
	<title>Christian Perrier: 2012 update 8 for Debian Installer localization</title>
	<guid>http://www.perrier.eu.org/weblog/bubulle/planet-debian/di-l10n-update-2012-08</guid>
	<link>http://www.perrier.eu.org/weblog/2012/02/04#di-l10n-update-2012-08</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/bubulle.png&quot; width=&quot;69&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;ul&gt;
&lt;li&gt;Kannada compeltes level 1 for the first time
&lt;/li&gt;&lt;li&gt;Asturian, Bosnian complete level 1
&lt;/li&gt;&lt;li&gt;Indonesian completes level 2
&lt;/li&gt;&lt;li&gt;Progress for Dzongkha in level 2
&lt;/li&gt;&lt;li&gt;Progress for Indonesian and Turkish in level 1
&lt;/li&gt;&lt;/ul&gt;
Status for D-I level 1 (core D-I files):
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;32&lt;/b&gt; languages 100%: ar &lt;b&gt;ast&lt;/b&gt; bg &lt;b&gt;bs&lt;/b&gt; cs de el eo es fa fr gu hi it ja kk km &lt;b&gt;kn&lt;/b&gt; ko mr nb nl pl pt ru sk sr sv ta th uk zh_CN
&lt;/li&gt;&lt;li&gt;&lt;b&gt;3&lt;/b&gt; languages 99%: si te &lt;b&gt;tr&lt;/b&gt;&amp;gt;
&lt;/li&gt;&lt;li&gt;&lt;b&gt;1&lt;/b&gt; language 98%: &lt;b&gt;id&lt;/b&gt;
&lt;/li&gt;&lt;li&gt;1 language 97%: eu
&lt;/li&gt;&lt;li&gt;2 languages 96%: be he
&lt;/li&gt;&lt;li&gt;5 languages 95%: bn dz et ro zh_TW
&lt;/li&gt;&lt;li&gt;2 languages 94%: da ga
&lt;/li&gt;&lt;li&gt;3 languages 93%: hu is lo
&lt;/li&gt;&lt;li&gt;1 language 92%: sl
&lt;/li&gt;&lt;li&gt;2 languages 91%: pa vi
&lt;/li&gt;&lt;li&gt;others are 90% or below
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;
Status for D-I level 2 (packages that have localized material that may
appear during default installs, such as iso-codes, tasksel, etc.):
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;23&lt;/b&gt; languages 100%: bg cs da de eo es fa fr he &lt;b&gt;id&lt;/b&gt; is it ja kk nl pl pt ru si sk tr uk zh_CN
&lt;/li&gt;&lt;li&gt;4 languages 99%: be sl sv th
&lt;/li&gt;&lt;li&gt;6 languages 98%: ast &lt;b&gt;dz&lt;/b&gt; ca eu pt_BR ro
&lt;/li&gt;&lt;li&gt;1 language 96%: nb
&lt;/li&gt;&lt;li&gt;2 langauges 95%: el fi
&lt;/li&gt;&lt;li&gt;5 languages 94%: ar gl hr vi zh_TW
&lt;/li&gt;&lt;li&gt;6 languages 92%: bn bs hu ko ne sr
&lt;/li&gt;&lt;li&gt;9 languages 91%: ga gu ka km lt mk mr ta te
&lt;/li&gt;&lt;li&gt;others are 90% or below
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;
Status for D-I level 3 (packages that have localized material that may
appear during non-default installs, such as win32-loader)
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;30 languages 100%:  be bg bs ca cs de el eo es fa fi fr ga gl he is it ja kk nb nl pl pt ru sk sr sv th tr zh_CN
&lt;/li&gt;&lt;li&gt;2 languages 98%:  hu uk
&lt;/li&gt;&lt;li&gt;others are 90% or below
&lt;/li&gt;&lt;/ul&gt;
Full 100% completeness (hall of fame) for 17 languages:
Bulgarian, Czech, German, Esperanto, Spanish, Persian, French, Italian,
Japanese, Kazakh, Dutch, &lt;b&gt;&amp;lt;Polish, Portuguese,=&quot;&quot; Russian,=&quot;&quot; Slovak,=&quot;&quot; Turkish=&quot;&quot; Simplified=&quot;&quot; Chinese=&quot;&quot;&amp;gt;&lt;/b&gt; </description> 
	<pubDate>Sat, 04 Feb 2012 06:10:00 +0000</pubDate>

</item> 
<item>
	<title>Andrew Pollock: [life] Zoe at 21 months</title>
	<guid>http://blog.andrew.net.au/2012/02/03#zoe_21_months</guid>
	<link>http://blog.andrew.net.au/2012/02/03#zoe_21_months</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/apollock.png&quot; width=&quot;88&quot; height=&quot;126&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;
Wow, a lot happens in 3 months. I&#39;m sure I&#39;ve missed something...
&lt;/p&gt;
&lt;p&gt;
I think the biggest achievement would be toilet training. Zoe&#39;s been using
the toilet for some time now, but still wearing diapers, and just after
Christmas (when she was sick and vomited on the carpet) we figured we had
nothing to lose, so we ditched the diapers. I can count on the fingers of
one hand the number of accidents she&#39;s had since then. I&#39;m really happy to
have this out of the way so early. Using a toilet away from home is still
more of a challenge, but she seems to have very good bladder control, and
fairly predictable bowel movements.
&lt;/p&gt;
&lt;p&gt;
Speaking of sick, she was the sickest she&#39;s ever been around Christmas time.
It coincided with her top canines finally coming through. She had a cold,
which progressed into an ear infection, and she had this dreadful persistent
dry cough, which then progressed into a dreadful productive wet cough. You
knew she was really sick because she was extremely cuddly and lethargic.
&lt;/p&gt;
&lt;p&gt;
Since around that time, her sleep has gone completely to hell. We&#39;ve had
some really bad nights where she&#39;ll wake up after a couple of hours of going
down for bed, or for a while, she was reliably waking up at 4am and taking a
good couple of hours to settle back down. Lately she&#39;s been sleeping through
again, but waking up at 6am instead of the usual 7-7:30am. We bought a clock
that changes colour at programmable times, so we&#39;re trying to train her that
if she wakes up and the clock isn&#39;t green yet, she should try and go back to
sleep. Not a huge amount of success there yet.
&lt;/p&gt;
&lt;p&gt;
Christmas itself was good, but fairly quiet because Zoe was sick. 
Sarah managed to get a &lt;a href=&quot;http://photos.andrew.net.au/v/zoe/album_005/13390220111206_0006_1.JPG.html&quot;&gt;fabulous
photo with Santa&lt;/a&gt;, which just fills me joy every time I look at it. We
had some friends around for Christmas dinner, and Zoe vomited all over her
new Cabbage Patch Kid doll and I think she threw up a couple more times
between that day and the day after, so that wasn&#39;t much fun.
&lt;/p&gt;
&lt;p&gt;
She&#39;s becoming more and more independent. &quot;Zoe do it&quot; is the most frequent
thing out of her mouth, but fortunately she still accepts help as well.
&lt;/p&gt;
&lt;p&gt;
We&#39;ve also been getting plenty of sneak previews of the Terrible Twos.
Fortunately they&#39;re pretty short-lived, but it&#39;s definitely going to be a
challenge to my patience.
&lt;/p&gt;
&lt;p&gt;
We&#39;d been intending to keep Zoe rear-facing in the car until she was 2,
which is the current recommendation over here, but I caved in recently when
she was getting in the car and refusing the sit down (she&#39;d stand up facing
forwards and it was next to impossible to rectify the situation). After she
did this to me a few times when I took her out in the car, I had enough and
turned the car seat around. It&#39;s improved things a bit, but she still has
her moments.
&lt;/p&gt;
&lt;p&gt;
We also changed her day care, from the one day a week at a home day care, to
two days a week at a commercial place. We were becoming more and more
unhappy with the existing day care, and so decided to move her. It&#39;s a lot
more money, but after just a week, we were seeing a noticeable change (for
the better) in Zoe&#39;s response to going to day care, and she seemed to have
picked up a bunch of new skills as well (sitting crossing her legs, holding
a crayon like a pencil). The place she&#39;s in now is pretty new and very
shiny. There&#39;s a couple of kids in her class that she knows from the local
park, so overall it&#39;s looking like money well spent and definitely a change
for the better.
&lt;/p&gt;
&lt;p&gt;
Zoe had her first hair cut last weekend, and it was fairly uneventful. We
went to this cute place in Palo Alto called &lt;a href=&quot;http://www.snipits.com/&quot;&gt;Snipits&lt;/a&gt;, which was ludicrously expensive
and I&#39;d only ever take Zoe there for her first haircut. There was another
kid there who was screaming bloody murder, and I think that unsettled Zoe
more than anything else, so she was a bit uncomfortable to start with, but
once the hairdresser put an Elmo DVD on, it was all good.
&lt;/p&gt;
&lt;p&gt;
Sarah&#39;s Mum is coming over to visit for a couple of weeks in a couple of
weeks time, so Zoe will be very happy to see her Nana. They&#39;re going to go
on a cruise out of New Orleans down to Mexico and part of the Caribbean.
Unfortunately I&#39;m too busy at work at the moment to burn a week, so I&#39;ll
just take a four-day weekend and check out New Orleans with them when they
get back from the cruise.
&lt;/p&gt; </description> 
	<pubDate>Fri, 03 Feb 2012 22:57:00 +0000</pubDate>

</item> 
<item>
	<title>Lisandro Dami&amp;aacute;n Nicanor P&amp;eacute;rez Meyer: The license mess with serial port Qt-based libs</title>
	<guid>tag:blogger.com,1999:blog-6357172297737057475.post-2093929177126898702</guid>
	<link>http://perezmeyer.blogspot.com/2012/02/license-mess-with-serial-port-qt-based.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/lisandropm.png&quot; width=&quot;100&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  I am currently working on a &lt;a href=&quot;http://qt-project.org/&quot;&gt;Qt&lt;/a&gt;-based app that needs to communicate through the serial port. Apart from all the benefits that a normal lib with a serial port implementation will bring in this case, having a Qt-based serial port lib would make even more sense, as it should be as multiplatform as possible and use the signal/slot mechanism. Also it should have a &lt;a href=&quot;http://www.debian.org/social_contract&quot;&gt;DFSG&lt;/a&gt;-compatible license, so I can package it for &lt;a href=&quot;http://www.debian.org/&quot;&gt;Debian&lt;/a&gt;, of course :-)&lt;br /&gt;&lt;br /&gt;So I have found two libs which seemed to have the above mentioned features: &lt;a href=&quot;http://code.google.com/p/qextserialport/&quot;&gt;QExtSerialPort&lt;/a&gt; and &lt;a href=&quot;http://gitorious.org/inbiza-labs/qserialport&quot;&gt;QSerialPort&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;QExtSerialPort&lt;/b&gt; seems to be the most recommended lib in the web. It features polled and signal-based functionality; it uses Qt&#39;s standard types inheriting QIODevice. But it does not states the license in any file within the source code. The &lt;a href=&quot;https://sourceforge.net/projects/qextserialport/&quot;&gt;original project page at SourceForge says it&#39;s in public domain&lt;/a&gt;. And the newer &lt;a href=&quot;http://code.google.com/p/qextserialport/&quot;&gt;project page at Google code says it&#39;s under the new BSD license&lt;/a&gt;. I have &lt;a href=&quot;http://groups.google.com/group/qextserialport/browse_thread/thread/e8756920b01da82&quot;&gt;asked in the mailing list for a clarification&lt;/a&gt;. So far nothing has changed (although in further threads the authors showed some willing to change this). And then I got to the point of finding a bug, but I don&#39;t want to spend time to track it down and make a patch without a clear license.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;QSerialPort&lt;/b&gt; it&#39;s another lib with more or less the same features as QExtSerialPort. It&#39;s main LICENSE file says it&#39;s under the LGPL2, but licensecheck will say that the present files are LGPL3. Also, on reviewing the code, I found some minor stuff that could be improved. Well, I could contact the author and see if [s]he would receive the patches... but his site seems down. And I could not find a real-person&#39;s name in the code so far :-/&lt;br /&gt;&lt;br /&gt;So I made &lt;a href=&quot;http://groups.google.com/group/qextserialport/browse_thread/thread/fbcddbfb4a0b5a51#msg_f9d898f438aed9c5&quot;&gt;a last attempt&lt;/a&gt; to try to get QExtSerialPort in a suitable license. If it doesn&#39;t suceed, I think I&#39;ll have to start writing one myself. The downside: I only use Linux, so there will be no multiplatform features unless someone else contributes it. Of course, if you have another option or any idea to share, I&#39;ll be happy to know it :-)&lt;br /&gt;&lt;br /&gt;By the way, this should be my first post on Planet Debian in english, so hello planet!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/6357172297737057475-2093929177126898702?l=perezmeyer.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt; </description> 
	<pubDate>Fri, 03 Feb 2012 22:14:00 +0000</pubDate>
  <author>noreply@blogger.com (Lisandro Damián Nicanor Pérez Meyer)</author>  
</item> 
<item>
	<title>Joey Hess: more on ghc filename encodings</title>
	<guid>http://kitenet.net/~joey/blog/entry/more_on_ghc_filename_encodings/</guid>
	<link>http://kitenet.net/~joey/blog/entry/more_on_ghc_filename_encodings/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/joeyh2.png&quot; width=&quot;84&quot; height=&quot;75&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;My &lt;a href=&quot;http://kitenet.net/~joey/blog/./entry/unicode_ate_my_homework/&quot;&gt;last post&lt;/a&gt; missed an important thing about
GHC 7.4&#39;s handling of encodings for FileName. It can in fact be safe to use
FilePath to write a command like &lt;code&gt;rm&lt;/code&gt;. This is because GHC internally uses
a special encoding for FilePath data, that is documented to allow
&quot;arbitrary undecodable bytes to be round-tripped through it&quot;. (It seems to
do this by encoding the undecodable bytes as very high unicode code
points.) So, when presented with a filename that cannot be decoded using
utf-8 (or whatever the system encoding is), it still handles it, and using
the resulting FilePath will in fact operate on the right file. Whew!&lt;/p&gt;

&lt;p&gt;Moral of the story is that if you&#39;re going to be using GHC 7.4 to read or
write filenames from a pipe, or a file, you need to arrange for the Handle
you&#39;re reading or writing to use this special encoding too.
I use this to set up my Handles:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import System.IO
import GHC.IO.Encoding
import GHC.IO.Handle

fileEncoding :: Handle -&amp;gt; IO ()
fileEncoding h = hSetEncoding h =&amp;lt;&amp;lt; getFileSystemEncoding
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Even if you&#39;re only going to write a FilePath to stdout, you
need to do this. Otherwise, your program will crash on some filenames!
This doesn&#39;t seem quite right to me, but I hesitate to file a bug report.
(And this is not a new problem in GHC anyway.)
If I did, it would have this testcase:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# touch &quot;me¡&quot;
# LANG=C ghc
Prelude&amp;gt; :m System.Directory
Prelude System.Directory&amp;gt; mapM_ putStrLn =&amp;lt;&amp;lt; getDirectoryContents &quot;.&quot;
me*** Exception: &amp;lt;stdout&amp;gt;: hPutChar: invalid argument (invalid character)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Since git-annex reads lots of filenames from git commands and other places,
I had to deal with this extensively. Unfortunatly I have not found a way to
read Text from a Handle using the fileSystemEncoding. So I&#39;m stuck with
slow Strings. But, it does seem to work now.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;PS: I found a bug in GHC 7.4 today where one of those famous Haskell
immutable values seems to get well, mutated. Specifically a [FilePath]
that is non-empty at the top of a function ends up empty at the bottom.
Unless IO is done involving it at the top. Really.
Hope to develop a test case soon. Happily, the code that triggered it
did so while working around a bug in GHC that is &lt;em&gt;fixed&lt;/em&gt; in 7.4.
Language bugs.. gotta love em.&lt;/p&gt; </description> 
	<pubDate>Fri, 03 Feb 2012 20:11:32 +0000</pubDate>

</item> 
<item>
	<title>Bartosz Fe&amp;#324;ski: Feński’s law</title>
	<guid>http://fenski.pl/?p=190</guid>
	<link>http://fenski.pl/2012/02/fenskis-law/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=fenskis-law</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/fenio.png&quot; width=&quot;94&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;&lt;strong&gt;Compilation of Linux kernel takes about an hour.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Assuming you’re using recent kernel and usual hardware available on the market at that time.&lt;/p&gt;
&lt;p&gt;Thank you for your attention.&lt;/p&gt; </description> 
	<pubDate>Fri, 03 Feb 2012 20:08:09 +0000</pubDate>

</item> 
<item>
	<title>Bartosz Fe&amp;#324;ski: VeriSign hacked</title>
	<guid>http://fenski.pl/?p=187</guid>
	<link>http://fenski.pl/2012/02/verisign-hacked/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=verisign-hacked</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/fenio.png&quot; width=&quot;94&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I wonder how many breaches never see the light of day.&lt;/p&gt;
&lt;p&gt;Quite late but at least confirmed, &lt;a href=&quot;http://nakedsecurity.sophos.com/2012/02/02/verisign-hacked/&quot;&gt;VeriSign&lt;/a&gt; was hacked and they don’t even know what was the impact of this attack.&lt;/p&gt;
&lt;p&gt;Comodo, DigiNotar, Verisign… did I forget some company which CA/SSL infrastructure has been compromised?&lt;/p&gt; </description> 
	<pubDate>Fri, 03 Feb 2012 17:31:09 +0000</pubDate>

</item> 
<item>
	<title>Stefano Zacchiroli: fosdem 2012</title>
	<guid>http://upsilon.cc/~zack/blog/posts/2012/02/fosdem_2012/</guid>
	<link>http://upsilon.cc/~zack/blog/posts/2012/02/fosdem_2012/</link>
     <description>  &lt;p&gt;In less then 2 hours I&#39;ll leave for the Paris Nord station to
catch a train headed to Bruxelles Midi. Plan of the week-end:
attend and enjoy &lt;a href=&quot;http://fosdem.org/2012/&quot;&gt;FOSDEM
2012&lt;/a&gt;!.&lt;/p&gt;
&lt;p&gt;I haven&#39;t submitted any talk for this year FOSDEM edition, but
I&#39;ve been invited (and gladly accepted) to join the &lt;a href=&quot;http://fosdem.org/2012/schedule/event/contributor_communities&quot;&gt;round
table on working with contributor communities&lt;/a&gt; on Sunday. I&#39;m
positive it will be a nice occasion to share ideas on how to
structure local user groups around the world.&lt;/p&gt;
&lt;p&gt;Beside that, I plan to attend several talks of the &lt;a href=&quot;http://fosdem.org/2012/schedule/track/crossdistribution_devroom&quot;&gt;cross-distribution&lt;/a&gt;,
&lt;a href=&quot;http://fosdem.org/2012/schedule/track/legal_issues_devroom&quot;&gt;legal
issues&lt;/a&gt; devrooms, hang around the Debian booth, as well as
discuss &lt;em&gt;many&lt;/em&gt; topics with people and friends from all over
the Free Software multiverse.&lt;/p&gt;
&lt;p&gt;Too bad I&#39;m still recovering from a recent minor health issue; I
won&#39;t be able to get the most out of today&#39;s &lt;a href=&quot;http://fosdem.org/2012/beerevent&quot;&gt;beer event&lt;/a&gt;. But I&#39;ll attend
nonetheless, see you there?&lt;/p&gt; </description> 
	<pubDate>Fri, 03 Feb 2012 13:30:19 +0000</pubDate>

</item> 
<item>
	<title>Alexander Reichle-Schmehl: Release Critical Bug report for Week 05</title>
	<guid>http://blog.schmehl.info/Debian/rc-stats/7.0-wheezy/2012-05</guid>
	<link>http://blog.schmehl.info/Debian/rc-stats/7.0-wheezy/2012-05</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/tolimar.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  The &lt;a href=&quot;http://udd.debian.org/bugs.cgi&quot;&gt;bug webinterface of the
Ultimate Debian Database&lt;/a&gt;
currently knows about the following release critical bugs:&lt;p&gt;&lt;/p&gt;

&lt;table&gt;
  &lt;tbody&gt;&lt;tr&gt;&lt;th&gt;In Total:&lt;/th&gt;&lt;td&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=any&amp;amp;patch=&amp;amp;pending=&amp;amp;security=&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=&amp;amp;notmain=&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;1447&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;th&gt;Affecting Wheezy:&lt;/th&gt;&lt;td&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy&amp;amp;patch=&amp;amp;pending=&amp;amp;security=&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=&amp;amp;notmain=&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;865&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;th&gt;Wheezy only:&lt;/th&gt;&lt;td&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy_not_sid&amp;amp;patch=&amp;amp;pending=&amp;amp;security=&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=&amp;amp;notmain=&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;170&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;th&gt;Remaining to be fixed in Wheezy:&lt;/th&gt;&lt;td&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy_and_sid&amp;amp;patch=&amp;amp;pending=&amp;amp;security=&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=&amp;amp;notmain=&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;&lt;b&gt;695&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Of these &lt;b&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy_and_sid&amp;amp;patch=&amp;amp;pending=&amp;amp;security=&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=&amp;amp;notmain=&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;695&lt;/a&gt;&lt;/b&gt; bugs, the following tags are set:&lt;/p&gt;

&lt;table&gt;
  &lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Pending in Wheezy:&lt;/th&gt;&lt;td&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy_and_sid&amp;amp;patch=&amp;amp;pending=only&amp;amp;security=&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=&amp;amp;notmain=&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;46&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;th&gt;Patched in Wheezy:&lt;/th&gt;&lt;td&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy_and_sid&amp;amp;patch=only&amp;amp;pending=&amp;amp;security=&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=&amp;amp;notmain=&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;91&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;th&gt;Duplicates in Wheezy:&lt;/th&gt;&lt;td&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy_and_sid&amp;amp;patch=&amp;amp;pending=&amp;amp;security=&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=&amp;amp;notmain=&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=only&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;42&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;th&gt;Can be fixed in a security Update:&lt;/th&gt;&lt;td&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy_and_sid&amp;amp;patch=&amp;amp;pending=&amp;amp;security=only&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=&amp;amp;notmain=&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;18&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;th&gt;Contrib or non-free in Wheezy:&lt;/th&gt;&lt;td&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy_and_sid&amp;amp;patch=&amp;amp;pending=&amp;amp;security=&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=&amp;amp;notmain=only&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;15&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;th&gt;Claimed in Wheezy:&lt;/th&gt;&lt;td&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy_and_sid&amp;amp;patch=&amp;amp;pending=&amp;amp;security=&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=only&amp;amp;deferred=&amp;amp;notmain=&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;0&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;th&gt;Delayed in Wheezy:&lt;/th&gt;&lt;td&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy_and_sid&amp;amp;patch=&amp;amp;pending=&amp;amp;security=&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=only&amp;amp;notmain=&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;8&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;th&gt;Otherwise fixed in Wheezy:&lt;/th&gt;&lt;td&gt;&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy_and_sid&amp;amp;patch=&amp;amp;pending=&amp;amp;security=&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=&amp;amp;notmain=&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=&amp;amp;done=only&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;44&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Ignoring all the above (multiple tags possible) &lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy_and_sid&amp;amp;patch=ign&amp;amp;pending=ign&amp;amp;security=ign&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=ign&amp;amp;deferred=ign&amp;amp;notmain=ign&amp;amp;notwheezy=&amp;amp;base=&amp;amp;standard=&amp;amp;merged=ign&amp;amp;done=ign&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;&lt;b&gt;482&lt;/b&gt;&lt;/a&gt;
bugs need to be fixed by Debian Contributors to get Debian 7.0 &lt;q&gt;Wheezy&lt;/q&gt; released.&lt;/p&gt;

&lt;p&gt;However, with the view of the Release Managers, 
&lt;a href=&quot;http://udd.debian.org/bugs.cgi?release=wheezy&amp;amp;patch=&amp;amp;pending=&amp;amp;security=ign&amp;amp;wontfix=&amp;amp;upstream=&amp;amp;unreproducible=&amp;amp;forwarded=&amp;amp;claimed=&amp;amp;deferred=&amp;amp;notmain=ign&amp;amp;notwheezy=ign&amp;amp;base=&amp;amp;standard=&amp;amp;merged=ign&amp;amp;done=&amp;amp;outdatedwheezy=&amp;amp;outdatedsid=&amp;amp;needmig=&amp;amp;newerubuntu=&amp;amp;fnewer=&amp;amp;fnewerval=7&amp;amp;rc=1&amp;amp;sortby=source&amp;amp;sorto=asc&amp;amp;cpopcon=1&amp;amp;cseverity=1&amp;amp;ctags=1&quot;&gt;&lt;b&gt;767&lt;/b&gt;&lt;/a&gt;
need to be dealt with for the release to happen.&lt;/p&gt;

&lt;p&gt;Please see &lt;q&gt;&lt;a href=&quot;http://wiki.debian.org/ProjectNews/RC-Stats&quot;&gt;Interpreting the
release critical bug statistics&lt;/a&gt;&lt;/q&gt; for an explanation of the different numbers.&lt;/p&gt; </description> 
	<pubDate>Fri, 03 Feb 2012 12:01:00 +0000</pubDate>
  <author>alexander@schmehl.info (Alexander Reichle-Schmehl)</author>  
</item> 
<item>
	<title>Russell Coker: A Computer Conference on a Cruise Ship</title>
	<guid>http://etbe.coker.com.au/?p=3142</guid>
	<link>http://etbe.coker.com.au/2012/02/03/computer-conference-cruise/</link>
     <description>  &lt;p&gt;After &lt;a href=&quot;http://www.linux.conf.au/&quot;&gt;LCA [1]&lt;/a&gt; there was a discussion about possible locations for future conferences, most of the messages in the discussion were jokes or suggestions that don’t seriously apply to LCA. So I’ll add my suggestion for conferences other than LCA.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://etbe.coker.com.au/2011/11/17/cruises/&quot;&gt;I’ve previously written generally about the issue of conferences at sea [2]&lt;/a&gt;. I don’t think that LCA would be suitable for running at sea because delegates have specific expectations for LCA which are quite different to what a cruise ship can offer, so I don’t think it makes sense to change LCA which is working well as it is. However there are lots of other possible computer conferences which could suite a cruise ship.&lt;/p&gt;
&lt;h3&gt;Price&lt;/h3&gt;
&lt;p&gt;Price is a major factor in running a conference, so obviously getting a cheap cruise price is very important. &lt;a href=&quot;http://www.vacationstogo.com/ticker.cfm?r=15&amp;amp;md=5&amp;amp;mp=800&quot;&gt;Here is a link for Vacations To Go which shows cruises from the Australia/NZ region which are of at least 5 nights and cost no more than $800 [3]&lt;/a&gt;. The cheapest entry at this moment is $609 for 5 nights and the cheapest on a per-night basis is an 8 night cruise for $779. The cheapest cruise currently on offer which allows a conference similar to LCA is 7 nights for $699. The prices should be regarded as rough approximations as some cruises have some mandatory extra fees and the prices are quoted in US dollars and subject to currency fluctuations. Note that those prices are for dual-occupancy cabins, this can be a “double” or a “twin” configuration. Some cruise ships have cabins for 3 or 4 people that are cheaper, but if you have a cabin for a single person then the rate is almost the same as for having two people.&lt;/p&gt;
&lt;p&gt;The price for LCA accommodation including breakfast was $78 per night for a single room or $92 for a double room. Then lunch cost a minimum of $10 and for dinner there was $80 for the penguin dinner and probably about $20 for dinner every other night. That gave an overall cost for a 6 night stay (which is probably the minimum for someone who lives further away than Melbourne) in Ballarat of 6*78+6*10+5*20+80==$708. For a double room that would be 6*92+6*10+5*20+2*80==$872.&lt;/p&gt;
&lt;p&gt;Even if we don’t count the fact that the Australian dollar is worth more than the US dollar it is obvious that on the basis of accommodation and food two people sharing a twin cabin on a cruise ship could pay LESS than two people in single rooms at the Ballarat University dorms! Now sharing a cabin isn’t so great, but the upside is that cruise ships have excellent food and lots of other entertainment options. &lt;a href=&quot;http://etbe.coker.com.au/2012/01/08/my-first-cruise/&quot;&gt;I previously reviewed the food on the Dawn Princess and determined that it’s better than the food I would expect to get if I spent the cost of the cruise on dinner at land based restaurants [4]&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I have been led to believe that the use of ship conference facilities is typically free for any organisation that books a sufficient number of cabins. So there’s no reason why the conference admission fees should be any greater than for a land based conference.&lt;/p&gt;
&lt;h3&gt;Advantages&lt;/h3&gt;
&lt;p&gt;A common problem with conferences is finding suitable dining options. Most people want to eat with other delegates but finding restaurants that have sufficient space and which are conveniently located is difficult at best and often impossible. On a cruise ship everything is within a short walk and the restaurants are big, usually be at least one restaurant will hold 500 people. The fact that you have to reserve times for the “Main Dining Room” makes it more difficult to miss one’s colleagues.&lt;/p&gt;
&lt;p&gt;Everything on a cruise ship is luxurious.&lt;/p&gt;
&lt;p&gt;There are lots of good locations for BoFs, pools, cafes, restaurants, and bars. Basically the ship is filled with comfortable places for groups of people to sit down.&lt;/p&gt;
&lt;p&gt;A cruise ship typically has a main theater with more than 700 seats – more than large enough for most conferences I’ve attended. It’s common for the size of a conference to be limited to the size of the main theater that is used, for a cruise ship this will probably be less of a problem than for most other conference venues.&lt;/p&gt;
&lt;h3&gt;Disadvantages&lt;/h3&gt;
&lt;p&gt;The first disadvantage of running a computer conference on a cruise ship is the almost total lack of net access. The costs for net access are more expensive than most delegates will pay. Probably many delegates would check their email but it wouldn’t be practical for people to download source code, browse Wikipedia, and use the Internet in other ways related to the conference. It would be practical to have mirrors of Wikipedia, the source of several distributions of Linux, and other big things of common interest.&lt;/p&gt;
&lt;p&gt;Another possible problem is the fact that you need to book it well in advance to avoid the risk of selling out (there is no option to stay at a different hotel). An established conference with financial backing could just pay to reserve the cabins. But when starting a new conference this could be a problem.&lt;/p&gt;
&lt;p&gt;Alcohol is rather expensive on cruise ships. But getting really drunk isn’t compatible with learning about computer science anyway.&lt;/p&gt;
&lt;p&gt;Finally the requirement to have at least two people in a cabin for good rates is a serious issue. The upside of this is that people travelling with their SO would find that it works really well (regardless of whether the SO is a delegate or not). But anyone who’s not travelling with their SO and doesn’t want to share with a friend will have to either pay a lot more or skip the conference.&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;I think that there is a good potential for running a computer conference around the Australia/NZ region on a cruise ship. It won’t be overly expensive for delegates and the facilities that are provided are good. The trade-off for solitary travelers of having to share a cabin (or pay more) for getting much better food and leisure facilities will be appreciated by many people (and admittedly hated by some).&lt;/p&gt;
&lt;p&gt;Some people won’t appreciate the option of swimming, but even if you consider the cruise ship to be just a floating collection of restaurants and cabins it’s still fairly luxurious and beats the heck out of most conferences I’ve attended.&lt;/p&gt;
&lt;p&gt;If you are considering the possibility of running a conference then I think that a cruise ship should be considered. &lt;a href=&quot;http://www.vacationstogo.com&quot;&gt;VacationsToGo.com is the best site I’ve found for cheap cruise prices&lt;/a&gt;, their large group department has experience handling groups of more than 500 people so I think that anyone who wants to run a new conference in/around Australia should give them a call.&lt;/p&gt;
&lt;p&gt;Also cruise ships travel around the world, so the same thing can be done in other countries but at a different time of year. The economic factors will differ by country though. Cruise ships probably aren’t a cheap option for a conference in some other countries.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[1]&lt;a href=&quot;http://www.linux.conf.au/&quot;&gt; http://www.linux.conf.au/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[2]&lt;a href=&quot;http://etbe.coker.com.au/2011/11/17/cruises/&quot;&gt; http://etbe.coker.com.au/2011/11/17/cruises/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[3]&lt;a href=&quot;http://www.vacationstogo.com/ticker.cfm?r=15&amp;amp;md=5&amp;amp;mp=800&quot;&gt; http://www.vacationstogo.com/ticker.cfm?r=15&amp;amp;md=5&amp;amp;mp=800&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[4]&lt;a href=&quot;http://etbe.coker.com.au/2012/01/08/my-first-cruise/&quot;&gt; http://etbe.coker.com.au/2012/01/08/my-first-cruise/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Related posts:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://etbe.coker.com.au/2012/01/08/my-first-cruise/&quot; rel=&quot;bookmark&quot; title=&quot;My First Cruise&quot;&gt;My First Cruise&lt;/a&gt; &lt;small&gt;A few weeks ago I went on my first cruise,...&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://etbe.coker.com.au/2011/11/17/cruises/&quot; rel=&quot;bookmark&quot; title=&quot;Cruises&quot;&gt;Cruises&lt;/a&gt; &lt;small&gt;It seems that in theory cruises can make for quite...&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://etbe.coker.com.au/2010/04/19/micro-conference/&quot; rel=&quot;bookmark&quot; title=&quot;Creating a Micro Conference&quot;&gt;Creating a Micro Conference&lt;/a&gt; &lt;small&gt;The TEDxVolcano The TED conference franchise has been extended to...&lt;/small&gt;&lt;/li&gt;
&lt;/ol&gt; </description> 
	<pubDate>Fri, 03 Feb 2012 11:17:16 +0000</pubDate>

</item> 
<item>
	<title>Jordi Mallach: FOSDEM 2012</title>
	<guid>http://oskuro.net/blog/travel/fosdem-2012-02-03-13-05</guid>
	<link>http://oskuro.net/blog/travel/fosdem-2012-02-03-13-05</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/oskuro.png&quot; width=&quot;65&quot; height=&quot;77&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;In a few hours, I&#39;ll be flying to Brussels with
&lt;a href=&quot;http://elvil.net/&quot;&gt;Ivan&lt;/a&gt;, for a new edition of
&lt;a href=&quot;http://fosdem.org/&quot;&gt;FOSDEM&lt;/a&gt;, undoubtedly the best Free Software
conference in Europe.&lt;/p&gt;
&lt;p&gt;I&#39;m looking forward to hang out with Debian, GNOME and &lt;code&gt;#dudes&lt;/code&gt;
people, as well as to explore some other quiet and cool spots in the city with
our hosts Raül and Vir.&lt;/p&gt;
&lt;p&gt;I&#39;ll probably be around the CrossDistro and CrossDesktop rooms most of the
time, but before that I&#39;ll be at the Delirium café not long after landing in
Brussels.&lt;/p&gt;
&lt;p&gt;For someone who doesn&#39;t &lt;em&gt;enjoy&lt;/em&gt; cold weather that much, this is
going to be a
&lt;a href=&quot;http://www.meteo.be/meteo/view/en/65656-Weather.html&quot;&gt;special edition&lt;/a&gt;…
oh dear, -10℃, this is fucking crazy!&lt;/p&gt;
&lt;p class=&quot;blogpic&quot;&gt;&lt;img src=&quot;http://oskuro.net/blogpics/fosdem2012-going-to.png&quot; alt=&quot;I&#39;m going to FOSDEM 2012&quot; /&gt;&lt;/p&gt; </description> 
	<pubDate>Fri, 03 Feb 2012 11:05:00 +0000</pubDate>

</item> 
<item>
	<title>Pietro Abate: QA tools for FOSS distributions</title>
	<guid>http://mancoosi.org/404 at http://mancoosi.org/~abate</guid>
	<link>http://mancoosi.org/~abate/qa-tools-foss-distributions</link>
     <description>  &lt;p&gt;&lt;img src=&quot;http://www.fosdem.org/promo/going-to&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I&#39;m going to deliver this talk at fosdem 2012, room H.1301 (CrossDistribution Devroom) at 16:30 on Sat. If you are interested, please come by. In particular I&#39;d like to talk with all the developers out there that are using our work (of edos fame) and to discuss with them future plans to migrate their programs to the new generation of mancoosi - powered QA tools. Scroll down to get the slides .&lt;/p&gt;

&lt;p&gt;fosdem link : &lt;a href=&quot;http://fosdem.org/2012/schedule/event/distro_qa_tools&quot;&gt;http://fosdem.org/2012/schedule/event/distro_qa_tools&lt;/a&gt;&lt;/p&gt;


&lt;h2 id=&quot;toc0&quot;&gt;Abstract&lt;/h2&gt;
&lt;p&gt;FOSS distributions are increasingly over pressure to deliver stable releases including the most up to date upstream software. Time-based release strategies has exacerbated this problem putting even more pressure on QA teams. The recently concluded Mancoosi project has developed a number of tools to automatically analyse large packages collections for a range of problems, from installability checks to speculative analysis of software repositories. In this talk I&#39;ll present four command line tools to identify and correct potential problems as soon as possible during the release cycle.&lt;/p&gt;

&lt;p&gt;In particular :  &lt;/p&gt;&lt;ul&gt;
    &lt;li&gt; Debcheck: This tools helps to identify all broken packages within a repository and provides a detailed explanation of the problem. This can be used to prevent shipping releases that contain packages that cannot be installed because of missing or malformed dependencies. &lt;/li&gt;
    &lt;li&gt; Buildcheck: Given a Sources file and a set of binary repositories, this tool identifies those source packages that cannot be compiled because their build dependencies cannot be satisfied. &lt;/li&gt;
    &lt;li&gt; Outdated: This tool identifies those broken packages that need special attention because of outdated meta-data. &lt;/li&gt;
    &lt;li&gt; Challenged: This tool performs a speculative analysis of the repository to identify those packages that, if upgraded to a specific version, would break a large number of other packages in the repository. This tool would be particularly useful during the upgrade of a specific component to evaluate its impact on the software archive.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Most of our tools support both rpm (version 4 and 5) and deb based distributions.&lt;/p&gt;

&lt;p&gt;The mancoosi team.&lt;/p&gt;

&lt;table id=&quot;attachments&quot; class=&quot;sticky-enabled&quot;&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://mancoosi.org/~abate/files/main.pdf&quot;&gt;main.pdf&lt;/a&gt;&lt;/td&gt;&lt;td&gt;504.46 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt; </description> 
	<pubDate>Fri, 03 Feb 2012 10:12:07 +0000</pubDate>

</item> 
<item>
	<title>Bartosz Fe&amp;#324;ski: First thing to do after fresh installation</title>
	<guid>http://fenski.pl/?p=181</guid>
	<link>http://fenski.pl/2012/02/first-thing-to-do-after-fresh-installation/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=first-thing-to-do-after-fresh-installation</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/fenio.png&quot; width=&quot;94&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;It’s only me that is being annoyed by downloading all recommended packages?&lt;br /&gt;
How many of you have such file?&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre style=&quot;font-family: monospace;&quot; class=&quot;bash&quot;&gt;someserver:~&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# cat /etc/apt/apt.conf.d/02recommends &lt;/span&gt;
APT::Install-Recommends &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;0&quot;&lt;/span&gt;;
someserver:~&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; </description> 
	<pubDate>Fri, 03 Feb 2012 05:01:23 +0000</pubDate>

</item> 
<item>
	<title>Paul Wise: Debian/Ubuntu games screenshot party!</title>
	<guid>http://bonedaddy.net/pabs3/log/2012/02/03/debian-ubuntu-games-screenshot-party/</guid>
	<link>http://bonedaddy.net/pabs3/log/2012/02/03/debian-ubuntu-games-screenshot-party/</link>
     <description>  &lt;p&gt;Have you ever wondered how to start getting involved in Debian/Ubuntu?
Do you enjoy discovering new games and playing them?
You might want to come to the &lt;a href=&quot;http://deb.li/gamesparty&quot;&gt;games screenshot party&lt;/a&gt;!
We hope that the party will be a fun, easy, low-commitment way to get involved.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://wiki.debian.org/Games/Team&quot;&gt;Debian/Ubuntu games team&lt;/a&gt; is organising a half-day &lt;a href=&quot;http://wiki.debian.org/Games/Parties/Screenshots&quot;&gt;screenshots&lt;/a&gt;
&lt;a href=&quot;http://wiki.debian.org/Games/Parties&quot;&gt;party&lt;/a&gt; on the weekend of 25th-26th February for creating screenshots for
all the games that are available in Debian/Ubuntu.&lt;/p&gt;

&lt;p&gt;If you are interested in attending, please add your availability to the poll
linked from the &lt;a href=&quot;http://deb.li/gamesparty&quot;&gt;announcement&lt;/a&gt; so that we can get some idea of
attendance and when is a good time for the people who are interested.&lt;/p&gt;

&lt;p&gt;Look forward to lots of game playing, screenshots and a merry time,
hope to see you all there!&lt;/p&gt; </description> 
	<pubDate>Fri, 03 Feb 2012 04:28:06 +0000</pubDate>

</item> 
<item>
	<title>Joey Hess: unicode ate my homework</title>
	<guid>http://kitenet.net/~joey/blog/entry/unicode_ate_my_homework/</guid>
	<link>http://kitenet.net/~joey/blog/entry/unicode_ate_my_homework/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/joeyh2.png&quot; width=&quot;84&quot; height=&quot;75&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I&#39;ve just spent several days trying to adapt git-annex to changes in ghc
7.4&#39;s handling of unicode in filenames. And by spent, I mean, time
withdrawn from the bank, and frittered away.&lt;/p&gt;

&lt;p&gt;In kindergarten, the top of the classrom wall was encircled by the aA bB
cC of the alphabet. I&#39;ll bet they still put that up on the walls.
And all the kids who grow up to become involved with computers learn
that was a lie. The alphabet doesn&#39;t stop at zZ. It wouldn&#39;t all fit
on a wall anymore.&lt;/p&gt;

&lt;p&gt;So we&#39;re in a transition period, where we&#39;ve all learnt deeply the
alphabet, but the reality is much more complicated. And the collision
between that intuitive sense of the world and the real world makes things
more complicated still. And so, until we get much farther along in this
transition period, you have to be very lucky indeed to not have wasted
time dealing with that complexity, or at least having encountered
&lt;a href=&quot;https://en.wikipedia.org/wiki/Mojibake&quot;&gt;Mojibake&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Most of the pain centers around programming languages, and libraries,
which are all at different stages of the transition from ascii
and other legacy encodings to unicode.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you&#39;re using C, you likely deal with all characters as raw bytes,
and rely on the backwards compatability built into UTF-8, or you
go to long lengths to manually deal with wide characters, so you can
intelligently manipulate strings. The transition has barely begin,
and will, apparently, never end.&lt;/li&gt;
&lt;li&gt;If you&#39;re using perl (at least like I do in ikiwiki), everything
is (probably) unicode internally, but every time you call a library
or do IO you have to manually deal with conversions, that are generally
not even documented. You constantly find new encoding bugs.
(If you&#39;re lucky, you don&#39;t find outright language bugs... I have.)
You&#39;re at a very uncomfortable midpoint of the transition.&lt;/li&gt;
&lt;li&gt;If you&#39;re using haskell, or probably lots of other languages like python
and ruby, everything is unicode all the time.. except for when it&#39;s not.&lt;/li&gt;
&lt;li&gt;If you&#39;re using javascript, the transition is basically complete.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;My most recent pain is because the haskell GHC compiler is moving along
in the transition, getting closer to the end. Or at least finishing
the second 80% and moving into the third 80%. (This is not a quick
transition..)&lt;/p&gt;

&lt;p&gt;The change involves filename encodings, a situation that, at least on unix
systems, is a vast mess of its own. Any filename, anywhere, can be in any
encoding, and there&#39;s no way to know what&#39;s the right one, if you dislike
guessing.&lt;/p&gt;

&lt;p&gt;Haskell folk like strongly typed stuff, so this ambiguity about what type
of data is contained in a &lt;code&gt;FilePath&lt;/code&gt; type was surely anathama. So GHC is
changing to always use UTF-8 for operations on &lt;code&gt;FilePath&lt;/code&gt;.
(Or whatever the system encoding is set to, but let&#39;s just assume it&#39;s
UTF-8.)&lt;/p&gt;

&lt;p&gt;Which is great and all, unless you need to write a Haskell program
that can deal with arbitrary files. Let&#39;s say you want to delete
a file. Just a simple &lt;code&gt;rm&lt;/code&gt;. Now there are two problems:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The input filename is assumed to be in the system encoding aka unicode.
What if it cannot be validly interpreted in that encoding?
Probably your &lt;code&gt;rm&lt;/code&gt; throws an exception.&lt;/li&gt;
&lt;li&gt;Once the &lt;code&gt;FilePath&lt;/code&gt; is loaded, it&#39;s been decoded to unicode characters.
In order to call &lt;code&gt;unlink&lt;/code&gt;, these have to be re-encoded to get a
filename. Will that be the same bytes as the input filename and the
filename on disk? Possibly not, and then the &lt;code&gt;rm&lt;/code&gt; will delete the wrong
thing, or fail.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;But haskell people are smart, so they thought of this problem, and provided
a separate type that can deal with it. &lt;code&gt;RawFilePath&lt;/code&gt; hearks back to
kindergarten; the filename is simply a series of bytes with no encoding.
Which means it cannot be converted to a &lt;code&gt;FilePath&lt;/code&gt; without encountering the
above problems. But does let you write a safe &lt;code&gt;rm&lt;/code&gt; in ghc 7.4.&lt;/p&gt;

&lt;p&gt;So I set out to make something more complicated than a rm, that still needs
to deal with arbitrary filename encodings. And I soon saw it would be
problimatic. Because the things ghc can do with &lt;code&gt;RawFilePaths&lt;/code&gt; are limited.
It can&#39;t even split the directory from the filename. We often do need to
manipulate filenames in such ways, even if we don&#39;t know their encoding,
when we&#39;re doing something more complicated than &lt;code&gt;rm&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you use a library that does anything useful with &lt;code&gt;FilePath&lt;/code&gt;, it&#39;s not
available for &lt;code&gt;RawFilePath&lt;/code&gt;. If you used standard haskell stuff like
&lt;code&gt;readFile&lt;/code&gt; and &lt;code&gt;writeFile&lt;/code&gt;, it&#39;s not available for &lt;code&gt;RawFilePath&lt;/code&gt; either.
Enjoy your low-level POSIX interface!&lt;/p&gt;

&lt;p&gt;So, I went lowlevel, and wrote my own &lt;code&gt;RawFilePath&lt;/code&gt; versions of pretty much
all of &lt;code&gt;System.FilePath&lt;/code&gt;, and &lt;code&gt;System.Directory&lt;/code&gt;, and parts of &lt;code&gt;MissingH&lt;/code&gt;
and other libraries. (And noticed that I can understand all this Haskell
code.. yay!) And I got it close enough to working that, I&#39;m sure,
if I wanted to chase type errors for a week, I could get git-annex, with
ghc 7.4, to fully work on any encoding of filenames.&lt;/p&gt;

&lt;p&gt;But, now I&#39;m left wondering what to do, because all this work is
regressive; it&#39;s swimming against the tide of the transition. GHC&#39;s
change is certainly the right change to make for most programs, that are
not like &lt;code&gt;rm&lt;/code&gt;. And so most programs and libraries won&#39;t use &lt;code&gt;RawFilePath&lt;/code&gt;.
This risks leaving a program that does a fish out of water.&lt;/p&gt;

&lt;p&gt;At this point, I&#39;m inclined to make git-annex support only unicode (or the
system encoding). That&#39;s &lt;em&gt;easy&lt;/em&gt;. And maybe have a branch that uses
&lt;code&gt;RawFilePath&lt;/code&gt;, in a hackish and type-unsafe way, with no guarantees
of correctness, for those who really need it.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Previously: &lt;a href=&quot;http://kitenet.net/~joey/blog/./entry/unicode_eye_chart/&quot;&gt;unicode eye chart&lt;/a&gt; &lt;a href=&quot;http://kitenet.net/~joey/blog/./entry/wanted_on_a_bumper_sticker/&quot;&gt;wanted on a bumper sticker&lt;/a&gt; &lt;a href=&quot;http://kitenet.net/~joey/blog/./entry/abc/&quot;&gt;abc&lt;/a&gt;
&lt;a href=&quot;http://kitenet.net/~joey/blog/./entry/boxes/&quot;&gt;boxes&lt;/a&gt; &lt;a href=&quot;http://kitenet.net/~joey/blog/./entry/unpacking_boxes/&quot;&gt;unpacking boxes&lt;/a&gt;&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Feb 2012 22:12:02 +0000</pubDate>

</item> 
<item>
	<title>MJ Ray: Two Campaigns, One Spot</title>
	<guid>http://www.news.software.coop/two-campaigns-one-spot/1262/</guid>
	<link>http://www.news.software.coop/two-campaigns-one-spot/1262/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/mjray2.png&quot; width=&quot;65&quot; height=&quot;94&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Sometimes two campaigns that I care about a lot pick the same day to hold an awareness-raising drive. It happened again on Tuesday.&lt;/p&gt;
&lt;p&gt;The one I took part in was advertising the &lt;a href=&quot;http://www.facebook.com/events/170835693019760/&quot;&gt;Stop ACTA London Protest&lt;/a&gt; on Sat 11 Feb. The Anti-Counterfeiting Trade Agreement (#ACTA) is a plurilateral international agreement on enforcement of so-called “intellectual property rights” – copyrights, trademarks and so on. It’ll have major implications for freedom of expression, access to culture and privacy. It will also harm international trade and stifle cooperation. (&lt;a href=&quot;http://www.edri.org/ACTA_Week&quot;&gt;More background at EDRI&lt;/a&gt; or &lt;a href=&quot;http://aje.me/A06hw2&quot;&gt;a fairly large AJE page&lt;/a&gt; – thanks to &lt;a href=&quot;http://occupybristoluk.org/&quot;&gt;Occupy Bristol&lt;/a&gt; for the AJE link.)&lt;/p&gt;
&lt;p&gt;So the one I didn’t support at the time was the &lt;a href=&quot;http://www.moveyourmoney.org.uk/&quot;&gt;Move Your Money UK&lt;/a&gt; launch day. That’s a great idea too, suggesting that if we, the 99%, are actually unhappy with the big banks and their titled leaders, we should move as much as possible out of those banks and into financial institutions that we control. As you might expect for someone whose first memory of mutuals is a trust account at the local building society, I support that too. I still have building society accounts, as well as banking with the co-op bank and &lt;a href=&quot;http://www.kingslynn-forums.co.uk/viewtopic.php?f=23&amp;amp;t=6421&quot;&gt;recently joining my local credit union&lt;/a&gt;.  I’ve moved my money. Why don’t you?&lt;/p&gt;
&lt;p&gt;I didn’t try to support both campaigns simultaneously on social networks because I thought it would reduce the number of people who saw my message. I backed the ACTA protest because a lot of my networks were already discussing Move Your Money and I thought Stop ACTA would benefit more. Was that the right decision? Who can tell? What would you have done?&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Feb 2012 20:08:24 +0000</pubDate>

</item> 
<item>
	<title>Jamie McClelland: Servers4All... unless someone complains</title>
	<guid>http://current.workingdirectory.net/posts/2012/server4all/</guid>
	<link>http://current.workingdirectory.net/posts/2012/server4all/</link>
     <description>  &lt;p&gt;On Wednesday, February 1, a new virtual server &lt;a href=&quot;https://mayfirst.org/&quot;&gt;May First/People Link&lt;/a&gt; recently rented went offline.  We contracted the virtual server through &lt;a href=&quot;http://server4all.org&quot;&gt;Server4All&lt;/a&gt; because we need their un-metered 100Mbit connection to help us handle the bandwidth for &lt;a href=&quot;http://saharareporters.com/&quot;&gt;Sahara Reporters&lt;/a&gt;, one of the most important independent news sources for Saharan Africa. With the server offline, the web site was down as well.&lt;/p&gt;

&lt;p&gt;We scrambled to setup alternative caching servers to handle the bandwidth.&lt;/p&gt;

&lt;p&gt;When I logged into our control panel, I saw the message: This virtual server has been suspended by the administrator. Please contact support.&lt;/p&gt;

&lt;p&gt;I immediately contacted support and then received the message:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Hello

We have received the following complaint associated with your server/service.

IP: 76.73.121.164

To prevent any further abuse we have suspended this service. In order to
resume, we request you to cooperate with our investigation as promptly as
possible. Please respond to us with the following details:

(1) What has caused the complaint
(2) What is the server used for. Purpose?
(3) How can you resolve the complaint and make sure it will not be repeated.

Depending on the nature of the complaint and your response, we will put back
the server online.  Please note, this has violated our Terms Of Service. We
expect your response within 24 hours, otherwise your account will be
terminated permanently.  Thank you
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;What?? What complaint?? I followed up but had to wait til the next day to get the response.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Here is the full log,

An email advertizing the Domain Name: saharareporters.com
has been sent to the blacklist.woody.ch spamtrap.

This Domain does resolve to IP addresses one of which your are responsible:
76.73.121.164

Please investigate why this Domain has been advertized.

Attached you find the headers and reports in ARF for automatic processing.
Feedback is appreciated.

Actual listing periods:

Bounce: 1 Hour in DNS.
Whitelisted IP: Not lised in DNS.
Spam: 24 hours in DNS.

Every Hit: 14 days in evidence DB.

For any questions or Feedback, contact abuse@woody.ch

From: is intentionally set to a bit-bucket.

Kind regards
-Benoit Panizzon-
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;There is no attachment. I went to woody.ch and it was in German. Then tried blacklist.woody.ch, but no luck. Finally I found the &lt;a href=&quot;http://blacklist.woody.ch/rblcheck.php3&quot;&gt;Woody&#39;s World Blacklist Page&lt;/a&gt;. I plugged in our IP address into their checker and I got:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Output from the Check, if empty the IP is not listed.
164.121.73.76.[name of the blacklist] being tested.

Host 164.121.73.76.blacklist.woody.ch not found: 3(NXDOMAIN)
Host 164.121.73.76.blacklist.woody.ch not found: 3(NXDOMAIN)

Host 164.121.73.76.rbl.maps.vix.com not found: 3(NXDOMAIN)
Host 164.121.73.76.rbl.maps.vix.com not found: 3(NXDOMAIN)

Host 164.121.73.76.relays.mail-abuse.org not found: 3(NXDOMAIN)
Host 164.121.73.76.relays.mail-abuse.org not found: 3(NXDOMAIN)

;; connection timed out; no servers could be reached
;; connection timed out; no servers could be reached

;; connection timed out; no servers could be reached
;; connection timed out; no servers could be reached

Host 164.121.73.76.relays.ordb.org not found: 3(NXDOMAIN)
Host 164.121.73.76.relays.ordb.org not found: 3(NXDOMAIN)

Host 164.121.73.76.dev.null.dk not found: 3(NXDOMAIN)
Host 164.121.73.76.dev.null.dk not found: 3(NXDOMAIN)

Host 164.121.73.76.blackholes.five-ten-sg.com not found: 3(NXDOMAIN)
Host 164.121.73.76.blackholes.five-ten-sg.com not found: 3(NXDOMAIN)

Host 164.121.73.76.bl.spamcop.net not found: 3(NXDOMAIN)
Host 164.121.73.76.bl.spamcop.net not found: 3(NXDOMAIN)

Host 164.121.73.76.relays.visi.com not found: 3(NXDOMAIN)
Host 164.121.73.76.relays.visi.com not found: 3(NXDOMAIN)

164.121.73.76.blacklist.spambag.org has address 208.91.197.182
164.121.73.76.blacklist.spambag.org descriptive text &quot;v=spf1 -all&quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So, Woody&#39;s World thinks we are listed in spambag.org. I went to &lt;a href=&quot;http://spambag.org&quot;&gt;spambag.org&lt;/a&gt; and learned that the domain is for sale. I then tried &lt;a href=&quot;http://blacklist.spambag.org&quot;&gt;blacklist.spambag.org&lt;/a&gt; and got the same page. This page has many links all pointing to advertisements. The &quot;RBL List&quot; link takes me to a page advertising &quot;5 foods you must not eat.&quot;&lt;/p&gt;

&lt;p&gt;Next, out of curiousity, I tried &lt;a href=&quot;http://www.mxtoolbox.com/SuperTool.aspx&quot;&gt;Mxtoolbox&lt;/a&gt;. I got one hit from Barricuda. Barricuda says the reputation of the IP address is &quot;poor&quot;. Why? According to Barricuda, the reasons could be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your email server contains a virus and has been sending out spam.&lt;/li&gt;
&lt;li&gt;Your email server may be improperly configured.&lt;/li&gt;
&lt;li&gt;Your PC may be infected with a virus or botnet software program.&lt;/li&gt;
&lt;li&gt;Someone in your organization may have an infected PC with a virus or botnet program.&lt;/li&gt;
&lt;li&gt;You may be using a dynamic IP address which was previously used by a known spammer.&lt;/li&gt;
&lt;li&gt;Your marketing department may be sending out bulk emails that do not comply with the CAN-SPAM Act.&lt;/li&gt;
&lt;li&gt;You may have an insecure wireless network which is allowing unknown users to use your network to send spam.&lt;/li&gt;
&lt;li&gt;In some rare cases, your recipient&#39;s Barracuda Spam Firewall may be improperly configured.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep in mind, this IP address is not used for sending email. It&#39;s just the web site.&lt;/p&gt;

&lt;p&gt;I then took a step back and re-read the complaint and noticed that it says that the domain name saharareporters.com was listed in a spam email. Hm. More concerted searching for the terms &quot;woody spamtrap blacklist&quot; and I found a pattern in URLs that suggested I plug in the following:&lt;/p&gt;

&lt;p&gt;http://news.scoutnet.org/rblhostlist.php?id=saharareporters.com.uri &lt;/p&gt;

&lt;p&gt;And sure enough, there was a result. In short, it was a classic Nigerian Oil scam in which the person claims to be &quot;JAMES IBORI ex-governor of DELTA STATE oil city.&quot; The scammer acknowledges that he has been arrested, but promises lots of cash to the person who can help him. In an effort to boost their credibility, the scammer included a link to a Sahara Reporters article about the real &lt;a href=&quot;http://saharareporters.com/news-page/uk-money-laundering-trial-james-ibori-suffers-various-reverses&quot;&gt;James Ibori&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And that, my friends, is enough to have one of the most prominent independent African news organization taken offline. &lt;/p&gt;

&lt;p&gt;&lt;del&gt;But, Sahara Reporters shouldn&#39;t necessarily feel singled out.&lt;/del&gt; Sahara Reporters should feel singled out. They exist to illuminate news from Africa. They were taken offline because a series of individuals don&#39;t know the difference between a prominent independent African news service and a criminal scammer. To most of the Internet, Nigeria and email scams are synonymous. That has to change.&lt;/p&gt;

&lt;p&gt;Although Sahara Reporters is particularly vulnerable, any site hosted with Server4All can potentially be taken down. All you have to do is write a fake spam/scam email, including a link to the web site you want to be taken offline, and then send that email to: listme@blacklist.woody.ch.&lt;/p&gt;

&lt;p&gt;I&#39;m currently following up with both Woody&#39;s World and Server4All. However, once this particular issue is resolved, we&#39;re left with a much bigger and ominous problem. If your hosting provider (or their upstream provider) takes your site offline when it receives a complaint first and then asks questions second, you have a big problem. &lt;/p&gt;

&lt;p&gt;All of our legal fights over our rights to keep content online are moot if our providers, without any legal pressure to do so, still take down our services based on spurious complaints. &lt;/p&gt; </description> 
	<pubDate>Thu, 02 Feb 2012 17:36:15 +0000</pubDate>

</item> 
<item>
	<title>Marco Silva: ghc -fvia-C and new binutils</title>
	<guid>http://marcot.eti.br//posts/ghc_-fvia-C_and_new_binutils/</guid>
	<link>http://marcot.eti.br//posts/ghc_-fvia-C_and_new_binutils/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/marcot.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I was trying to build the &lt;a href=&quot;http://hackage.haskell.org/package/curl&quot;&gt;curl hackage package&lt;/a&gt; on Debian unstable with ghc 7.0.3, and one of its modules were failing to build.  I searched for the error message and found &lt;a href=&quot;http://hackage.haskell.org/trac/ghc/ticket/5043&quot;&gt;this GHC ticket&lt;/a&gt;.  As mentioned in the ticket, I had to downgrade &lt;a href=&quot;http://packages.debian.org/sid/binutils&quot;&gt;binutils&lt;/a&gt; to 2.20.  The version of binutils in sid is 2.21.&lt;/p&gt;

&lt;p&gt;Another possibility would be to change curl to avoid using -fvia-C, but I didn&#39;t want to modify the package.&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Feb 2012 16:28:18 +0000</pubDate>

</item> 
<item>
	<title>Marco Silva: Using XMonad with Netbeans (or other Java apps)</title>
	<guid>http://marcot.eti.br//posts/Using_XMonad_with_Netbeans___40__or_other_Java_apps__41__/</guid>
	<link>http://marcot.eti.br//posts/Using_XMonad_with_Netbeans___40__or_other_Java_apps__41__/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/marcot.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;After testing Emacs, Eclipse, KDevelop and CodeBlocks for writing C++ code, I decided to stick with Netbeans.  It seems to be the most simple to configure and yet full of features and plugins.  I was having one problem with it that when I focused out the window, and then focused on it again, it would not really grab the focus, in the sense that I would not be able to type without first clicking with the mouse.  At first I thought the problem was with Netbeans, then with the JRE.  I tried using sun-java6-jre, I tried upgrading my openjdk-6-jre, and nothing worked.  I searched a little bit more and got to &lt;a href=&quot;http://www.mail-archive.com/ion-general@lists.berlios.de/msg03073.html&quot;&gt;a discussion about this problem in ion3&lt;/a&gt;, and that made me think that the problem could be related to the window manager I use, &lt;a href=&quot;http://xmonad.org/&quot;&gt;XMonad&lt;/a&gt;.  After searching a bit about it, I found on &lt;a href=&quot;http://www.haskell.org/haskellwiki/Xmonad/Frequently_asked_questions#Problems_with_Java_applications.2C_Applet_java_console&quot;&gt;the XMonad FAQ&lt;/a&gt; some work arounds for problems with Java apps, but they didn&#39;t solve my problem.  Then, I found the solution on &lt;a href=&quot;http://code.google.com/p/xmonad/issues/detail?id=177&quot;&gt;this bug report&lt;/a&gt;.  I got the darcs version of xmonad and XMonadContrib, included &lt;a href=&quot;http://www.eng.uwaterloo.ca/~aavogt/xmonad/docs/xmonad-contrib/XMonad-Hooks-ICCCMFocus.html&quot;&gt;&lt;code&gt;takeTopFocus&lt;/code&gt;&lt;/a&gt; on logHook, and now it&#39;s working!&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Feb 2012 16:28:18 +0000</pubDate>

</item> 
<item>
	<title>Marco Silva: Using Horizontal Sharding in SQLAlchemy to display multiple DBs</title>
	<guid>http://marcot.eti.br//posts/Using_Horizontal_Sharding_in_SQLAlchemy_to_display_multiple_DBs/</guid>
	<link>http://marcot.eti.br//posts/Using_Horizontal_Sharding_in_SQLAlchemy_to_display_multiple_DBs/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/marcot.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;My problem was: I had a number of databases generated in different machines and I wanted to query them as if they were one, using the database the data came from as a field while querying and while showing results.  The databases are SQLite3 files, generated using SQLAlchemy in a Python program.&lt;/p&gt;

&lt;p&gt;I solved this by using SQLAlchemy, which was good because I could use the same ORM mapping that the program used.  I noticed that the &lt;a href=&quot;http://www.sqlalchemy.org/docs/orm/extensions/horizontal_shard.html&quot;&gt;Horizontal Sharding SQLAlchemy extension&lt;/a&gt; would fit well the problem, although not perfectly.  I had to make some changes in some classes of this extension, and now it works fine.&lt;/p&gt;

&lt;p&gt;It was possible to filter the data using database as a criteria, but I couldn&#39;t get the database information from each line of a query result.   I made a simple patch to SQLAlchemy, which wasn&#39;t likely to be introduced in the distribution, but worked for me, and sent it to &lt;a href=&quot;http://www.sqlalchemy.org/trac/ticket/2031&quot;&gt;its bug tracker&lt;/a&gt;.  The change was included in SQLAlchemy in a very different fashion, as expected, but since I&#39;m using the released version from SQLAlchemy, I kept on using my version of the patch.  I don&#39;t want to do direct changes in SQLAlchemy source code, so I made the change in my program:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;class ShardedSessionShardId(ShardedSession):
    def __init__(self, *args, **kwargs):
        super(ShardedSessionShardId, self).__init__(*args, **kwargs)
        self._query_cls = ShardedQueryShardId

class ShardedQueryShardId(ShardedQuery):
    def _execute_and_instances(self, context):
        if self._shard_id is not None:
            result = self.session.connection(
                            mapper=self._mapper_zero(),
                            shard_id=self._shard_id).execute(context.statement, self._params)

            news = list(self.instances(result, context))
            for new in news:
                new.shard_id = self._shard_id
            return iter(news)

        else:
            partial = []
            for shard_id in self.query_chooser(self):
                result = self.session.connection(
                            mapper=self._mapper_zero(),
                            shard_id=shard_id).execute(context.statement, self._params)

                news = list(self.instances(result, context))
                for new in news:
                    new.shard_id = shard_id
                partial = partial + news

            # if some kind of in memory &#39;sorting&#39;
            # were done, this is where it would happen
            return iter(partial)

create_session = sessionmaker(class_=ShardedSessionShardId)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Another problem is that I had to make each result be included in the query, even if two results from different DBs have the same primary key.  I achieved this by changing two classes: WeakInstanceDict, and Mapper.  For using the new WeakInstanceDict, I had again to change the ShardedSession variation:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;class WeakInstanceDictNoIdentity(WeakInstanceDict):
    def add(self, state):
        # if state.key in self:
        #     if dict.__getitem__(self, state.key) is not state:
        #         raise AssertionError(&quot;A conflicting state is already &quot;
        #                             &quot;present in the identity map for key %r&quot;
        #                             % (state.key, ))
        # else:
            dict.__setitem__(self, state.key, state)
            self._manage_incoming_state(state)

class ShardedSessionShardId(ShardedSession):
    def __init__(self, *args, **kwargs):
        super(ShardedSessionShardId, self).__init__(*args, **kwargs)
        self._query_cls = ShardedQueryShardId
        self._identity_cls = WeakInstanceDictNoIdentity
        self.identity_map = self._identity_cls()
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To start using the new Mapper, I simply replaced each call to mapper with MapperNoIdentity:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;class MapperNoIdentity(Mapper):
    def _instance_processor(self, context, path, adapter,
                                polymorphic_from=None, extension=None,
                                only_load_props=None, refresh_state=None,
                                polymorphic_discriminator=None):

        &quot;&quot;&quot;Produce a mapper level row processor callable
           which processes rows into mapped instances.&quot;&quot;&quot;

        pk_cols = self.primary_key

        if polymorphic_from or refresh_state:
            polymorphic_on = None
        else:
            if polymorphic_discriminator is not None:
                polymorphic_on = polymorphic_discriminator
            else:
                polymorphic_on = self.polymorphic_on
            polymorphic_instances = util.PopulateDict(
                                        self._configure_subclass_mapper(
                                                context, path, adapter)
                                        )

        version_id_col = self.version_id_col

        if adapter:
            pk_cols = [adapter.columns[c] for c in pk_cols]
            if polymorphic_on is not None:
                polymorphic_on = adapter.columns[polymorphic_on]
            if version_id_col is not None:
                version_id_col = adapter.columns[version_id_col]

        identity_class = self._identity_class
        def identity_key(row):
            return identity_class, tuple([row[column] for column in pk_cols])

        new_populators = []
        existing_populators = []
        load_path = context.query._current_path + path

        def populate_state(state, dict_, row, isnew, only_load_props):
            if isnew:
                if context.propagate_options:
                    state.load_options = context.propagate_options
                if state.load_options:
                    state.load_path = load_path

            if not new_populators:
                new_populators[:], existing_populators[:] = \
                                    self._populators(context, path, row,
                                                        adapter)

            if isnew:
                populators = new_populators
            else:
                populators = existing_populators

            if only_load_props:
                populators = [p for p in populators
                                if p[0] in only_load_props]

            for key, populator in populators:
                populator(state, dict_, row)

        session_identity_map = context.session.identity_map

        if not extension:
            extension = self.extension

        translate_row = extension.get(&#39;translate_row&#39;, None)
        create_instance = extension.get(&#39;create_instance&#39;, None)
        populate_instance = extension.get(&#39;populate_instance&#39;, None)
        append_result = extension.get(&#39;append_result&#39;, None)
        populate_existing = context.populate_existing or self.always_refresh
        if self.allow_partial_pks:
            is_not_primary_key = _none_set.issuperset
        else:
            is_not_primary_key = _none_set.issubset

        def _instance(row, result):
            if translate_row:
                ret = translate_row(self, context, row)
                if ret is not EXT_CONTINUE:
                    row = ret

            if polymorphic_on is not None:
                discriminator = row[polymorphic_on]
                if discriminator is not None:
                    _instance = polymorphic_instances[discriminator]
                    if _instance:
                        return _instance(row, result)

            # determine identity key
            if refresh_state:
                identitykey = refresh_state.key
                if identitykey is None:
                    # super-rare condition; a refresh is being called
                    # on a non-instance-key instance; this is meant to only
                    # occur within a flush()
                    identitykey = self._identity_key_from_state(refresh_state)
            else:
                identitykey = identity_key(row)

            # instance = session_identity_map.get(identitykey)
            # if instance is not None:
            #     state = attributes.instance_state(instance)
            #     dict_ = attributes.instance_dict(instance)

            #     isnew = state.runid != context.runid
            #     currentload = not isnew
            #     loaded_instance = False

            #     if not currentload and \
            #             version_id_col is not None and \
            #             context.version_check and \
            #             self._get_state_attr_by_column(
            #                     state,
            #                     dict_,
            #                     self.version_id_col) != \
            #                             row[version_id_col]:

            #         raise orm_exc.ConcurrentModificationError(
            #                 &quot;Instance &#39;%s&#39; version of %s does not match %s&quot;
            #                 % (state_str(state),
            #                     self._get_state_attr_by_column(
            #                                 state, dict_,
            #                                 self.version_id_col),
            #                         row[version_id_col]))
            # elif refresh_state:
            if refresh_state:
                # out of band refresh_state detected (i.e. its not in the
                # session.identity_map) honor it anyway.  this can happen
                # if a _get() occurs within save_obj(), such as
                # when eager_defaults is True.
                state = refresh_state
                instance = state.obj()
                dict_ = attributes.instance_dict(instance)
                isnew = state.runid != context.runid
                currentload = True
                loaded_instance = False
            else:
                # check for non-NULL values in the primary key columns,
                # else no entity is returned for the row
                if is_not_primary_key(identitykey[1]):
                    return None

                isnew = True
                currentload = True
                loaded_instance = True

                if create_instance:
                    instance = create_instance(self,
                                                context,
                                                row, self.class_)
                    if instance is EXT_CONTINUE:
                        instance = self.class_manager.new_instance()
                    else:
                        manager = attributes.manager_of_class(
                                                instance.__class__)
                        # TODO: if manager is None, raise a friendly error
                        # about returning instances of unmapped types
                        manager.setup_instance(instance)
                else:
                    instance = self.class_manager.new_instance()

                dict_ = attributes.instance_dict(instance)
                state = attributes.instance_state(instance)
                state.key = identitykey

                # manually adding instance to session.  for a complete add,
                # session._finalize_loaded() must be called.
                state.session_id = context.session.hash_key
                session_identity_map.add(state)

            if currentload or populate_existing:
                if isnew:
                    state.runid = context.runid
                    context.progress[state] = dict_

                if not populate_instance or \
                        populate_instance(self, context, row, instance,
                            only_load_props=only_load_props,
                            instancekey=identitykey, isnew=isnew) is \
                            EXT_CONTINUE:
                    populate_state(state, dict_, row, isnew, only_load_props)

            else:
                # populate attributes on non-loading instances which have
                # been expired
                # TODO: apply eager loads to un-lazy loaded collections ?
                if state in context.partials or state.unloaded:

                    if state in context.partials:
                        isnew = False
                        (d_, attrs) = context.partials[state]
                    else:
                        isnew = True
                        attrs = state.unloaded
                        # allow query.instances to commit the subset of attrs
                        context.partials[state] = (dict_, attrs)

                    if not populate_instance or \
                            populate_instance(self, context, row, instance,
                                only_load_props=attrs,
                                instancekey=identitykey, isnew=isnew) is \
                                EXT_CONTINUE:
                        populate_state(state, dict_, row, isnew, attrs)

            if loaded_instance:
                state._run_on_load(instance)

            if result is not None and \
                        (not append_result or
                            append_result(self, context, row, instance,
                                    result, instancekey=identitykey,
                                    isnew=isnew)
                                    is EXT_CONTINUE):
                result.append(instance)

            return instance
        return _instance
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I had to include some auxiliary definitions to make the rewrites work:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;_none_set = frozenset([None])
_runid = 1L
_id_lock = util.threading.Lock()
def _new_runid():
    global _runid
    _id_lock.acquire()
    try:
        _runid += 1
        return _runid
    finally:
        _id_lock.release()
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;It would be good to be able to set these identity requirements as a parameter.&lt;/p&gt;

&lt;p&gt;My last problem was selecting more than one database to search.  set&lt;em&gt;shard only
worked for one, so I created a new field in query, called shards, and checked
for it on query&lt;/em&gt;chooser:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;def query_chooser(query):
    try:
        return query.shards
    except AttributeError:
        pass
    return tcs.keys()
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So, when I want to look only in a list of shards, I set this field.  I&#39;m aware
that this is not a recommended python idiom, but, well, it works fine.&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Feb 2012 16:28:18 +0000</pubDate>

</item> 
<item>
	<title>Marco Silva: Problems with popup-menu signal in GTK+</title>
	<guid>http://marcot.eti.br//posts/Problems_with_popup-menu_signal_in_GTK+/</guid>
	<link>http://marcot.eti.br//posts/Problems_with_popup-menu_signal_in_GTK+/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/marcot.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I&#39;m using GTK+ in my paid work, which is being cool because I like this library.  It&#39;s not the first time I use it for paid work, and I like these opportunities to learn more about it and possibly report bugs.  It&#39;s not easy to find bugs in such a widely used library, so much of them end up being simple cosmetic mistakes, like &lt;a href=&quot;https://bugzilla.gnome.org/show_bug.cgi?id=636584&quot;&gt;this one&lt;/a&gt;.  Some others are only a question of interpretation, like &lt;a href=&quot;https://bugzilla.gnome.org/show_bug.cgi?id=559746&quot;&gt;this other&lt;/a&gt;, which even when I submitted a patch, it was not applied.&lt;/p&gt;

&lt;p&gt;Yesterday I couldn&#39;t make &lt;a href=&quot;http://library.gnome.org/devel/gtk/stable/GtkWidget.html#GtkWidget-popup-menu&quot;&gt;popup-menu&lt;/a&gt; create a, well, popup menu.  It was working with &lt;a href=&quot;http://library.gnome.org/devel/gtk/stable/GtkWidget.html#GtkWidget-button-press-event&quot;&gt;button-press-event&lt;/a&gt;, but not with popup-menu.  I created a small code sample to illustrate this problem and asked about it in #pygtk@irc.gimp.org --- yes, I&#39;m using Python:&lt;/p&gt;

&lt;blockquote&gt;
&lt;pre&gt;&lt;code&gt;import gtk
import gobject

def menu():
  item = gtk.ImageMenuItem(&#39;gtk-add&#39;)
  item.show()

  menu = gtk.Menu()
  menu.add(item)

  return menu

def on_view_popup_menu(obj, *data):
  print &#39;popup-menu&#39;
  menu().popup(None, None, None, 0, 0)

def on_view_button_press_event(obj, *data):
  print &#39;button-press-event&#39;
  menu().popup(None, None, None, 0, 0)

store = gtk.ListStore(gobject.TYPE_STRING)
store.append((&#39;teste&#39;,))

view = gtk.TreeView(store)
view.append_column(gtk.TreeViewColumn(&#39;Coluna&#39;, gtk.CellRendererText(), text=0))
view.connect(&#39;button-press-event&#39;, on_view_button_press_event)
view.connect(&#39;popup-menu&#39;, on_view_popup_menu)
view.show()

window = gtk.Window()
window.add(view)
window.show()

gtk.main()
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;When I clicked in the window, with any button in this case, &#39;button-press-event&#39; is printed to stdout and the menu is displayed.  When I press the Menu key, or Shift+F10, &#39;popup-menu&#39; is printed to stdout, but the menu is not displayed.  After getting no response in #pygtk, I decided to try #gtk+.  Before that, I thought about trying the same problem in C to see if it was not a problem in the bindings, or in how I was using it.  The code:&lt;/p&gt;

&lt;blockquote&gt;
&lt;pre&gt;&lt;code&gt;#include &amp;lt;gtk/gtk.h&amp;gt;

GtkMenu *menu() {
  GtkImageMenuItem *image_menu_item =
      GTK_IMAGE_MENU_ITEM(
          gtk_image_menu_item_new_from_stock(GTK_STOCK_ADD, NULL));
  gtk_widget_show(GTK_WIDGET(image_menu_item));

  GtkMenu *menu = GTK_MENU(gtk_menu_new());
  gtk_container_add(GTK_CONTAINER(menu), GTK_WIDGET(image_menu_item));

  return menu;
}

void on_tree_view_popup_menu(GtkWidget *widget, gpointer user_data) {
  printf(&quot;popup-menu\n&quot;);
  gtk_menu_popup(
      menu(), NULL, NULL, NULL, NULL, 0, gdk_event_get_time(NULL));
}

void
on_tree_view_button_press_event(
  GtkWidget *widget, GdkEventButton *event, gpointer user_data) {
  printf(&quot;button-press-event\n&quot;);
  gtk_menu_popup(
      menu(), NULL, NULL, NULL, NULL, 0, gdk_event_get_time(NULL));
}

int main(int argc, char **argv) {
  gtk_init(&amp;amp;argc, &amp;amp;argv);

  GtkListStore *list_store = gtk_list_store_new(1, G_TYPE_STRING);
  GtkTreeIter iter;
  gtk_list_store_append(list_store, &amp;amp;iter);
  gtk_list_store_set(list_store, &amp;amp;iter, 0, &quot;teste&quot;, -1);

  GtkTreeView *tree_view =
      GTK_TREE_VIEW(
          gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store)));
  gtk_tree_view_append_column(
      tree_view,
      gtk_tree_view_column_new_with_attributes(
          &quot;Coluna&quot;, gtk_cell_renderer_text_new(), &quot;text&quot;, 0, NULL));
  g_signal_connect(
      tree_view, &quot;popup-menu&quot;, G_CALLBACK(on_tree_view_popup_menu), NULL);
  g_signal_connect(
      tree_view,
      &quot;button-press-event&quot;,
      G_CALLBACK(on_tree_view_button_press_event),
      NULL);
  gtk_widget_show(GTK_WIDGET(tree_view));

  GtkWindow *window = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));
  gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(tree_view));
  gtk_widget_show(GTK_WIDGET(window));

  gtk_main();
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;Wow.  The difference between the codes is impressive.  I&#39;m not that used to code in GTK+ using C, and I may have missed something here, but the C code is so verbose that I get tired only by looking at it.  I&#39;m glad we have other languages, and GTK+ bindings for them.  As expected, the behavior was the same, and I asked in #gtk+ and got no answer.&lt;/p&gt;

&lt;p&gt;Yes, I did read the documentation before asking, and no, I didn&#39;t read it carefully enough.  Maybe because of coming from Python, I didn&#39;t checked very much the type of the callback function for the signals, and didn&#39;t notice the point about the return value: &quot;Returns: TRUE if a menu was activated&quot;.  And that was not where I was looking for the problem, since I thought the return value was usually related to the treatment of the signal by another functions.  Anyway, I changed the type of &lt;code&gt;on_tree_view_popup_menu&lt;/code&gt; to return gboolean and returned &lt;code&gt;TRUE&lt;/code&gt;.  It works!  I also updated the type of &lt;code&gt;on_tree_view_button_press_event&lt;/code&gt; to do the same, just for compliance.  In Python, a simple return True would do it.&lt;/p&gt;

&lt;p&gt;I know I could use the &lt;code&gt;event&lt;/code&gt; parameter in &lt;code&gt;on_tree_view_button_press_event&lt;/code&gt;, but the point was exactly to run the same code and see if it would work in one case and not in the other, as happened.&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Feb 2012 16:28:18 +0000</pubDate>

</item> 
<item>
	<title>Marco Silva: Intuitive python</title>
	<guid>http://marcot.eti.br//posts/Intuitive_python/</guid>
	<link>http://marcot.eti.br//posts/Intuitive_python/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/marcot.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; x = [&#39;a&#39;, &#39;b&#39;]
&amp;gt;&amp;gt;&amp;gt; x
[&#39;a&#39;, &#39;b&#39;]
&amp;gt;&amp;gt;&amp;gt; x += &#39;c&#39;
&amp;gt;&amp;gt;&amp;gt; x
[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]
&amp;gt;&amp;gt;&amp;gt; x += &#39;&#39;
&amp;gt;&amp;gt;&amp;gt; x
[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]
&amp;gt;&amp;gt;&amp;gt; x += [&#39;&#39;]
&amp;gt;&amp;gt;&amp;gt; x
[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;&#39;]
&lt;/code&gt;&lt;/pre&gt; </description> 
	<pubDate>Thu, 02 Feb 2012 16:28:18 +0000</pubDate>

</item> 
<item>
	<title>Lars Wirzenius: MIX 1/2 Albanian Kickstater</title>
	<guid>http://blog.liw.fi/posts/mix-half-albanian/</guid>
	<link>http://blog.liw.fi/posts/mix-half-albanian/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/lars.png&quot; width=&quot;85&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Soile, my partner and love, is a film-maker. She is funding
her first feature length documentary via crowd-funding, and has just opened
the &lt;a href=&quot;http://www.kickstarter.com/projects/docstory/mix-1-2-albanian&quot;&gt;Kickstarter
page&lt;/a&gt;.
Have a look and see if you like the project and if you do, any donation
is most welcome.&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Feb 2012 13:24:46 +0000</pubDate>

</item> 
<item>
	<title>Paul Wise: Debian bug squashing party in Perth</title>
	<guid>http://bonedaddy.net/pabs3/log/2012/02/02/debian-bsp-in-perth/</guid>
	<link>http://bonedaddy.net/pabs3/log/2012/02/02/debian-bsp-in-perth/</link>
     <description>  &lt;p&gt;There is a Debian &lt;a href=&quot;http://wiki.debian.org/BSP&quot;&gt;bug squashing party&lt;/a&gt; (BSP) in Perth, Western Australia
being &lt;a href=&quot;http://wiki.debian.org/BSP/2012/03/au/Perth&quot;&gt;organised&lt;/a&gt; for the weekend of 10-11th of March.
It will be held at the University of Western Australia in loft of the
&lt;a href=&quot;http://www.ucc.asn.au/&quot;&gt;University Computer Club&lt;/a&gt; (UCC) in the student guild building.
Sadly it is a bit far to travel for the majority of Debian contributors
(and they probably wouldn&#39;t enjoy being &lt;a href=&quot;http://answers.yahoo.com/question/index?qid=20080706031932AAoj4jk&quot;&gt;upside&lt;/a&gt; &lt;a href=&quot;http://wiki.answers.com/Q/Why_don%27t_people_in_Australia_feel_like_there_upside_down&quot;&gt;down&lt;/a&gt;) but
hopefully we can attract some locals and get them addicted to fixing bugs
and contributing to Debian and the FLOSS community in general.&lt;/p&gt;

&lt;p&gt;Come one, come all, lets squish some bugs and get Debian into better shape for
the &lt;a href=&quot;http://lists.debian.org/debian-devel-announce/2012/01/msg00009.html&quot;&gt;coming freeze&lt;/a&gt; in June for the release of Debian 7 (wheezy).&lt;/p&gt;

&lt;p&gt;Thanks go to the &lt;a href=&quot;http://www.ucc.asn.au/&quot;&gt;UCC&lt;/a&gt; folks for the venue and to &lt;a href=&quot;http://www.plug.org.au/&quot;&gt;PLUG&lt;/a&gt; folks
for helping with organisation and promotion of the event.&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Feb 2012 08:16:52 +0000</pubDate>

</item> 
<item>
	<title>Russ Allbery: C++ symbols wrapup</title>
	<guid>http://www.eyrie.org/~eagle/journal/2012-02/001.html</guid>
	<link>http://www.eyrie.org/~eagle/journal/2012-02/001.html</link>
     <description>  &lt;p&gt;
I wanted to give a final update of my experiment with adding symbols files
to C++ library packages.
&lt;/p&gt;

&lt;p&gt;
In the end, I reverted the changes and have gone back to not providing a
symbols file, and instead just using shlibs.  Some of this is because of
the general state of the available tools, and some of it is due to the
nature of the packages I was working on.  This set of packages has
frequent SONAME bumps from upstream, so backward compatibility across
Debian stable versions can&#39;t happen anyway.  They also don&#39;t use symbol
export control, which means that the number of exported symbols is quite
large and contains a lot of things leaked from internal objects.
&lt;/p&gt;

&lt;p&gt;
But there are also tool issues.  The biggest that I ran into is that
symbols appear and disappear in the export list with different versions of
the compiler, and the pkg-kde-tools utilities, while excellent, still
interpret those changes as architecture-specific changes.  So the symbols
file accumulates supposedly arch-specific variations, which are actually
about what version of the compiler happened to be installed on that buildd
when the package was built.  This also means that if a package that has
had its symbols file updated for one architecture is built again on the
same architecture but on another buildd with a different g++, it will
often FTBFS since a different set of symbols will be present.
&lt;/p&gt;

&lt;p&gt;
Obviously, this is too fragile to be maintainable.
&lt;/p&gt;

&lt;p&gt;
Further debian-devel discussion pointed out that these symbol variations
are probably all inline functions, where the compiler may or may not
output a weak version of the symbol if it chooses not to inline it in some
particular case.  The right thing to do for these libraries (not all,
since there are other uses of weak symbols) is to mark all weak symbols as
optional and not care if they randomly appear and disappear.
&lt;/p&gt;

&lt;p&gt;
There are also some 32-bit vs. 64-bit variations that are not captured by
the subst mechanism, which resulted in the symbols file developing a list
of architecture restrictions that amounted to &quot;all 32-bit systems&quot; or &quot;all
64-bit systems.&quot;  These explicit lists are also fragile, and will break
with each new architecture introduced in Debian.
&lt;/p&gt;

&lt;p&gt;
I filed three bugs with pkg-kde-tools with suggestions for improving the
tools for other people going forward:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://bugs.debian.org/657805&quot;&gt;#657805&lt;/a&gt; —
pkgkde-getbuildlogs gets truncated logs&lt;br /&gt;
&lt;a href=&quot;http://bugs.debian.org/657806&quot;&gt;#657806&lt;/a&gt; —
representation of covariant return thunks&lt;br /&gt;
&lt;a href=&quot;http://bugs.debian.org/658333&quot;&gt;#658333&lt;/a&gt; —
option to mark weak symbols as optional
&lt;/p&gt;

&lt;p&gt;
but I think that the level of work and remaining fragility doesn&#39;t make
sense for a lot of C++ libraries, at least right now without more direct
support in dpkg-gensymbols and other tool improvements.  I&#39;m therefore
also planning on changing the proposed Policy patch for symbols to make it
more clear that shlibs is an acceptable alternative for C++, and to patch
Lintian to suppress the info tag for no symbols file for C++ libraries.
&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Feb 2012 05:00:00 +0000</pubDate>

</item> 
<item>
	<title>Richard Hartmann: apt-get install vcsh</title>
	<guid>http://richardhartmann.de/blog/posts/2012/02/apt-get_install_vcsh/</guid>
	<link>http://richardhartmann.de/blog/posts/2012/02/apt-get_install_vcsh/</link>
     <description>  &lt;p&gt;apt-get install vcsh&lt;/p&gt;
&lt;p&gt;I finally got around to package &lt;a href=&quot;https://github.com/RichiH/vcsh&quot;&gt;vcsh&lt;/a&gt; and &lt;a href=&quot;http://www.cs.unb.ca/profs/bremner/blog/&quot;&gt;David Bremner&lt;/a&gt; was
kind enough to sponsor it. vcsh is &lt;a href=&quot;http://packages.debian.org/search?keywords=vcsh&quot;&gt;available&lt;/a&gt; in
testing, unstable, and squeeze-backports. Also, Ubuntu seems to
have copied it over into their repositories automagically.&lt;/p&gt;
&lt;p&gt;As you probably don&#39;t know, vcsh is a tool to manage config
files in git. Say you want to maintain one repository for zsh, one
for vim, one for ssh, one for mplayer, and one for mr, but
obviously there can only be one .git in $HOME. vcsh helps by moving
$GIT_DIR into $XDG_CONFIG_HOME/vcsh/repo.d/ but keeping
$GIT_WORK_TREE in $HOME.&lt;/p&gt;
&lt;p&gt;The splitting of configuration sets into separate repositories
allows you avoid checking out, say, mplayer&#39;s config on your
servers, or checking out your ssh config at work.&lt;/p&gt;
&lt;p&gt;If this sounds complicated, it&#39;s not; vcsh hides all of the
dirty details from you. vcsh integrates nicely with &lt;a href=&quot;http://kitenet.net/~joey/code/mr/&quot;&gt;mr&lt;/a&gt; by means of a plugin,
making handling your configurations even more trivial. If you
&lt;em&gt;do&lt;/em&gt; get stuck along the way, simply drop into #vcs-home on
irc.oftc.net or send email to the &lt;a href=&quot;http://lists.madduck.net/listinfo/vcs-home&quot;&gt;vcs-home mailing
list&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://qa.debian.org/popcon-graph.php?packages=vcsh&quot;&gt;popcon&lt;/a&gt;
tells me that there are more users than I know about directly, so
pipe up if you&#39;re one of them. And if you are one of the people who
have it installed but don&#39;t use it, I am even more interested. I
would love to know why so I can improve it.&lt;/p&gt;
&lt;p&gt;Long story short, if you care about the integrity and/or history
of your configuration, or if you use one or more computers, you
should definitely give vcsh a try.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Any&lt;/em&gt; kind of feedback appreciated :)&lt;/p&gt; </description> 
	<pubDate>Wed, 01 Feb 2012 23:12:56 +0000</pubDate>

</item> 
<item>
	<title>Andrew Cater: UK Govt website rewrite == FLOSS</title>
	<guid>tag:blogger.com,1999:blog-8085113335874848981.post-5890984758059388170</guid>
	<link>http://flosslinuxblog.blogspot.com/2012/02/uk-govt-website-rewrite-floss.html</link>
     <description>  See http://www.h-online.com/open/news/item/The-open-source-behind-gov-uk-revealed-1426513.html -  UK major Government web site rewritten using primarily Free/Libre/Open Source Software :)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/8085113335874848981-5890984758059388170?l=flosslinuxblog.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt; </description> 
	<pubDate>Wed, 01 Feb 2012 22:07:42 +0000</pubDate>
  <author>noreply@blogger.com (Andrew Cater)</author>  
</item> 
</channel>
</rss>

