<?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>Russell Coker: DomainKeys and OpenSSL have Defeated Me</title>
	<guid>http://etbe.coker.com.au/?p=1228</guid>
	<link>http://etbe.coker.com.au/2009/07/03/domainkeys-and-openssl-have-defeated-me/</link>
     <description>  &lt;p&gt;I have previously written about &lt;a href=&quot;http://etbe.coker.com.au/2009/06/22/valgrindhelgrind-and-stl-string/&quot;&gt;an error that valgrind reported in the STL when some string operations were performed by the DKIM library [1]&lt;/a&gt;.  This turned out to be a bug, Jonathan Wakely filed GCC bug report &lt;a href=&quot;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518&quot;&gt;#40518 [2]&lt;/a&gt; about it, Jonathan is one of many very skillful people who commented on that post.&lt;/p&gt;
&lt;p&gt;deb http://www.coker.com.au lenny gcc&lt;/p&gt;
&lt;p&gt;I’m still not sure whether that bug could actually harm my program, Nathan Myers strongly suggested that it would not impact the correct functionality of the program but mentioned a possible performance issue (which will hurt me as the target platform is 8 or 12 core systems).  Jaymz Julian seems to believe that the STL code in question can lead to incorrect operation and suggested &lt;b&gt;stlport&lt;/b&gt; as an alternative.  As I’m not taking any chances I built GCC with a patch from Jonathan’s bug report for my development machines and then built libdkim with that GCC.  I created the above APT repository for my patched GCC packages.  I also included version 3.4.1 of Valgrind (back-ported from Debian/Unstable) in that repository.&lt;/p&gt;
&lt;p&gt;Nathan Myers also wrote: “&lt;b&gt;Any program that calls strtok() even once may be flagged as buggy regardless of any thread safety issues. Use of strtok() (or strtok_r()) is a marker not unlike gets() of ill thought out coding.&lt;/b&gt;”  I agree, &lt;a href=&quot;http://etbe.coker.com.au/2009/06/14/finding-thread-unsafe-code/&quot;&gt;I wrote a program to find such code and have eliminated all such code where it is called from my program [3]&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I think it’s unfortunate that I have to rebuild all of GCC for a simple STL patch.  &lt;a href=&quot;http://etbe.coker.com.au/2009/06/24/unreasonably-large-source-packages/&quot;&gt;My blog post about the issue of the size and time required to rebuild those packages [4]&lt;/a&gt; received some interesting comments, probably the most immediately useful one was to use &lt;b&gt;--disable-bootstrap&lt;/b&gt; to get a faster GCC build, that was from Jonathan Wakely.  Joe Buck noted that the source is available in smaller packages upstream, this is interesting, but unless the Debian developers package it in the same way I will have to work with the large Debian source packages.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://etbe.coker.com.au/2009/06/28/valgrind-and-openssl/&quot;&gt;I have filed many bug reports against the OpenSSL packages in Debian based on the errors reported by Valgrind [5]&lt;/a&gt;.  I didn’t report all the issues related to error handling as there were too many.  Now my program is often crashing when DomainKeys code is calling those error functions, so one of the many Valgrind/Helgrind issues I didn’t report may be the cause of my problems.  But I can’t report too many bugs at once, I need to give people time to work on the current bug list first.&lt;/p&gt;
&lt;p&gt;Another problem I have is that sometimes the libdkim code will trigger a libc assertion on malloc() or free() if DomainKeys code has been previously called.  So it seems that the DomainKeys code (or maybe the OpenSSL code it calls) is corrupting the heap.&lt;/p&gt;
&lt;p&gt;So I have given up on the idea of getting DomainKeys code working in a threaded environment.  Whenever I need to validate a DomainKeys message my program will now fork a child process to do that.  If it corrupts the heap while doing so it’s no big deal as the child process calls exit(0) after it has returned the result over a pipe.  This causes a performance loss, but it appears that it’s less than 3 times slower which isn’t too bad.  From a programming perspective this was fairly easy to implement because a thread of the main program prepares all the data and then the child process can operate on it – it would be a lot harder to implement such things on an OS which doesn’t have fork().&lt;/p&gt;
&lt;p&gt;DomainKeys has been obsoleted by DKIM for some time, so all new deployments of signed email should be based on DKIM and systems that currently use DomainKeys should be migrating soon.  So the performance loss on what is essentially a legacy feature shouldn’t impact the utility of my program.&lt;/p&gt;
&lt;p&gt;I am considering uploading my libdomainkeys package to Debian.  I’m not sure how useful it would be as DomainKeys is hopefully going away.  But as I’ve done a lot of work on it already I’m happy to share if people are interested.&lt;/p&gt;
&lt;p&gt;Thanks again for all the people who wrote great comments on my posts.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1]&lt;a href=&quot;http://etbe.coker.com.au/2009/06/22/valgrindhelgrind-and-stl-string/&quot;&gt; http://etbe.coker.com.au/2009/06/22/valgrindhelgrind-and-stl-string/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2]&lt;a href=&quot;http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518&quot;&gt; http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40518&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[3]&lt;a href=&quot;http://etbe.coker.com.au/2009/06/14/finding-thread-unsafe-code/&quot;&gt; http://etbe.coker.com.au/2009/06/14/finding-thread-unsafe-code/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[4]&lt;a href=&quot;http://etbe.coker.com.au/2009/06/24/unreasonably-large-source-packages/&quot;&gt; http://etbe.coker.com.au/2009/06/24/unreasonably-large-source-packages/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[5]&lt;a href=&quot;http://etbe.coker.com.au/2009/06/28/valgrind-and-openssl/&quot;&gt; http://etbe.coker.com.au/2009/06/28/valgrind-and-openssl/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Jul 2009 22:54:53 +0000</pubDate>

</item> 
<item>
	<title>David Welton: ruby-oci8 and libao</title>
	<guid>tag:journal.dedasys.com,2005:Article/2158</guid>
	<link>http://journal.dedasys.com/2009/07/02/ruby-oci8-and-libao</link>
     <description>  &lt;div&gt;
&lt;p&gt;Not of concern to most people reading this via a feed, but it&#39;s one of those things I think is nice to write up as a public service, should anyone else encounter the same error.  I&#39;m stuck doing some Rails work with Oracle, and so I needed to get ruby-oci8 working:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://ruby-oci8.rubyforge.org/en/InstallForInstantClient.html&quot;&gt;http://ruby-oci8.rubyforge.org/en/InstallForInstantClient.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These instructions are pretty good.  I followed them, the gem said it had been installed correctly.... and yet:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ERROR: ActiveRecord oracle_enhanced adapter could not load ruby-oci8 library. Please install ruby-oci8 library or gem.
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:76:in
`establish_connection&#39;:RuntimeError: Please install the oracle_enhanced adapter:
`gem install activerecord-oracle_enhanced-adapter` (LoadError)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Argh!  After some straceing, I finally figured out what was missing: the libaio1 package.  You need to have it or things will fail like this.  It&#39;s very odd that the installation doesn&#39;t complain about it.&lt;/p&gt;        &lt;/div&gt; </description> 
	<pubDate>Thu, 02 Jul 2009 21:38:13 +0000</pubDate>

</item> 
<item>
	<title>Joey Hess: DebConf9</title>
	<guid>http://kitenet.net/~joey/blog/entry/DebConf9/</guid>
	<link>http://kitenet.net/~joey/blog/entry/DebConf9/</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;&lt;img src=&quot;http://media.debconf.org/dc9/images/debconf9-going-to.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I&#39;m going to DebConf, and will be giving what I think is the first talk
I&#39;ve ever done about &lt;a href=&quot;http://kitenet.net/~joey/blog/../code/debhelper/&quot;&gt;debhelper&lt;/a&gt; there. Incidentially, debhelper in
experimental has some nice new features.&lt;/p&gt;

&lt;p&gt;I have no idea how I&#39;m getting from the Madrid airport to Cáceres, 
and would rather spend time working on my talk than trying to book
tickets internationally, so I hope buying train tickets at the station
is not a foolish plan..&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Jul 2009 19:46:46 +0000</pubDate>

</item> 
<item>
	<title>Debian Sysadmin Team: Martin Zobel-Helas: Howto mess up the Debian Project homepage</title>
	<guid>http://dsa.debian.org//dsablog/2009/07/Howto_mess_up_the_Debian_Project_homepage/</guid>
	<link>http://dsa.debian.org//dsablog/2009/07/Howto_mess_up_the_Debian_Project_homepage/</link>
     <description>  &lt;p&gt;I &lt;a href=&quot;http://dsa.debian.org/dsablog/2009/06/Setting_up_GeoDNS_for_security.debian.org/&quot;&gt;recently&lt;/a&gt;
blogged about the GeoDNS setup we plan for
&lt;a href=&quot;http://security.debian.org&quot;&gt;security.debian.org&lt;/a&gt;.  Even though all DSA
team members agree that the GeoDNS setup for security.debian.org should
come alive as soon as possible, we still fear to break an important
service like security.d.o.&lt;/p&gt;

&lt;p&gt;Yesterday I decided without further ado to float a trial balloon and
converted DNS entries for &lt;a href=&quot;http://www.debian.org&quot;&gt;the Debian Project homepage&lt;/a&gt;
to our GeoDNS setup. While doing so, we found out that some part of our
automatic deployment scripts still need to be adjusted to serve more
than one subdomain of the project.&lt;/p&gt;

&lt;p&gt;That setup is live for about eighteen hours now, and the project
homepage now resolves it IPs via GeoDNS. For now, we are using senfl.d.o for
Northern America, www.de.debian.org and www.debian.at for Europe and
klecker.d.o for the rest of the world. From what I can see from GeoDNS
logs, it seems to work fine, and the load stays reasonably low, so
after a short test period we might add additional services like
security.debian.org to GeoDNS.&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Jul 2009 18:28:30 +0000</pubDate>

</item> 
<item>
	<title>Cyril Brulebois: Porting is fun</title>
	<guid>http://ikibiki.org//blog/2009/07/02/Porting_is_fun/</guid>
	<link>http://ikibiki.org//blog/2009/07/02/Porting_is_fun/</link>
     <description>  &lt;p&gt;In the next hours or even days, I might be quite verbose so that
people can have a tiny idea of what porting looks like. Or eventually
what being in a bootstrapping phase looks like.&lt;/p&gt;

&lt;h2&gt;I love it when a plan comes together!&lt;/h2&gt;

&lt;p&gt;One important goal was trying to get &lt;code&gt;sbuild&lt;/code&gt; installable within
&lt;code&gt;sid&lt;/code&gt;. Of course it is already installed on the buildds, but having it
handy should help developers hack on their own boxes.&lt;/p&gt;

&lt;p&gt;The chain of dependencies wasn’t very long, but still:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sbuild → libsbuild-perl           [not installable]
libsbuild-perl → schroot          [not built]
schroot → libboost-dev            [not built]
libboost-dev → libboost1.38-dev   [not built]
libboost1.38-dev → libopenmpi-dev [not installable]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;First of all, I filed &lt;a href=&quot;http://bugs.debian.org/535202&quot;&gt;#535202&lt;/a&gt; so that
&lt;code&gt;libibverbs&lt;/code&gt; can be built on GNU/kFreeBSD, which was needed because
&lt;code&gt;libopenmpi-dev&lt;/code&gt; depends
on one of its binaries. We weren’t sure it was appropriate, though,
since it looked like pretty much Linux-specific. So I filed
&lt;a href=&quot;http://bugs.debian.org/535225&quot;&gt;#535225&lt;/a&gt; to get installability issues
of &lt;code&gt;libopenmpi-dev&lt;/code&gt; on non-Linux architectures fixed (by excluding
&lt;code&gt;libibverbs-dev&lt;/code&gt; from the Depends on those architectures,
matching what was already done for the build dependencies). A fixed
package was uploaded in some hours only!&lt;/p&gt;

&lt;p&gt;In the meanwhile, I gave &lt;code&gt;mpi-defaults&lt;/code&gt; a shot, using the
locally-built &lt;code&gt;libopenmpi-dev&lt;/code&gt; package. It could have gone flawlessly
if I didn’t stumble upon an FTBFS due to a toolchain
change. &lt;a href=&quot;http://bugs.debian.org/535230&quot;&gt;#535230&lt;/a&gt; got filed
accordingly, and fixed some hours later too!&lt;/p&gt;

&lt;p&gt;Building &lt;code&gt;boost1.38&lt;/code&gt;, then &lt;code&gt;boost-defaults&lt;/code&gt;, and finally &lt;code&gt;schroot&lt;/code&gt;
went smoothly, and all the above-mentioned packages are now
installable on the porter box. And thanks to the responsiveness of
those maintainers, plus some extra bits of wanna-build magic
(give-backs using dep-waits), packages got tried (and built
successfully) when their build dependencies became available on the
buildds.&lt;/p&gt;

&lt;p&gt;In the meanwhile, the maintainer of &lt;code&gt;libibverbs&lt;/code&gt; confirmed that it’s
not worth building useless binaries on non-Linux architectures, so I
closed &lt;a href=&quot;http://bugs.debian.org/535202&quot;&gt;#535202&lt;/a&gt; and opened a bug
against &lt;code&gt;buildd.debian.org&lt;/code&gt; instead, requesting the addition of
&lt;code&gt;libibverbs&lt;/code&gt; to the &lt;code&gt;Packages-arch-specific&lt;/code&gt; list (aka. &lt;code&gt;P-a-s&lt;/code&gt;):
&lt;a href=&quot;http://bugs.debian.org/535360&quot;&gt;#535360&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now, there are still some issues when trying to use &lt;code&gt;sbuild&lt;/code&gt;, but it’s
at least installable and people can try it out.&lt;/p&gt;

&lt;p&gt;Working on another package also made me noticed that there was a bug
in a FreeBSD kernel header:
&lt;a href=&quot;http://bugs.debian.org/535243&quot;&gt;#535243&lt;/a&gt;. The fix is already in the
repository, and it looks like I’m going to be added to the &lt;code&gt;Uploaders&lt;/code&gt;
of the &lt;code&gt;kfreebsd-kernel-headers&lt;/code&gt; source package so that it gets
uploaded quickly.&lt;/p&gt;

&lt;h2&gt;I hate impromptu toolchain-related FTBFSes&lt;/h2&gt;

&lt;p&gt;While I’m all for making tools as strict as possible (especially
build-related tools), I really think it would be very nice for
toolchain maintainers to deliver advance warnings.&lt;/p&gt;

&lt;p&gt;GCC folks do that perfectly: File bugs, provide patches, raise
severity when the new version is around, NMU if needed.&lt;/p&gt;

&lt;p&gt;Dpkg folks prefer making a parser stricter, without caring at all
which packages they might break. The previously-mentioned
&lt;code&gt;mpi-defaults&lt;/code&gt; was one of them.&lt;/p&gt;

&lt;p&gt;The list of FTBFSes triggered by &lt;code&gt;dpkg 1.15.3&lt;/code&gt; (at least, the ones I
spotted using 3 basic UNIX commands and spending a few seconds in
lintian’s lab on &lt;code&gt;lintian.debian.org&lt;/code&gt;, see how difficult that was!)
follows:
&lt;a href=&quot;http://bugs.debian.org/535230&quot;&gt;#535230&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535276&quot;&gt;#535276&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535279&quot;&gt;#535279&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535283&quot;&gt;#535283&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535284&quot;&gt;#535284&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535287&quot;&gt;#535287&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535292&quot;&gt;#535292&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535297&quot;&gt;#535297&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535299&quot;&gt;#535299&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535301&quot;&gt;#535301&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535303&quot;&gt;#535303&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535304&quot;&gt;#535304&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535306&quot;&gt;#535306&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535310&quot;&gt;#535310&lt;/a&gt;,
&lt;a href=&quot;http://bugs.debian.org/535312&quot;&gt;#535312&lt;/a&gt;
(all of them with tested patches because I didn’t feel like being
lazy and shrugging over IRC after being notified).&lt;/p&gt;

&lt;p&gt;At least it’s not about trying to sneak &lt;code&gt;*FLAGS&lt;/code&gt; handling into a
frozen testing this time. But that’s still annoying.&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Jul 2009 09:40:00 +0000</pubDate>

</item> 
<item>
	<title>Stephan Peijnik: update-manager weekly update #5</title>
	<guid>http://blog.peijnik.at/?p=148</guid>
	<link>http://blog.peijnik.at/2009/07/02/update-manager-weekly-update-5/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/sp.png&quot; width=&quot;85&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Firstly I have to apologize again for not providing you with weekly update #4, but again I didn’t have the time to write one, so this post is going to sum up everything that happened since my last update.&lt;/p&gt;
&lt;p&gt;Let’s have a look at my previous TODO list:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Documentation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Even though my TODO list entry contained a more detailed entry I have updated the UpdateManager documentation as a whole, leaving only a few blank spots right now.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ubuntu distribution specific code&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I implemented changelog fetching for Ubuntu, which works just as fine as its Debian counterpart now.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;More unit tests&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There are plenty of unit tests now, but not everything is being tested yet. I am especially proud of my Python interface validation code, that is being used in unit tests to check if handlers implement an interface correctly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update list downloading&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Checking for updates is what caused me major trouble in the past few days. Basically I had all the code ready, but for some reason the UI froze, with no apparent reason.&lt;br /&gt;
However, today I was able to finally identify and fix the problem. As I expected my code was just fine, but python-apt was messing up. I am going to discuss the exact problem and its solution later on, but first: a screenshot. &lt;img src=&quot;http://blog.peijnik.at/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://blog.peijnik.at/wp-content/uploads/2009/07/Screenshot-Checking-for-updates.png&quot;&gt;&lt;img src=&quot;http://blog.peijnik.at/wp-content/uploads/2009/07/Screenshot-Checking-for-updates-150x150.png&quot; title=&quot;Update Manager update check&quot; height=&quot;150&quot; width=&quot;150&quot; alt=&quot;Update Manager update check&quot; class=&quot;aligncenter size-thumbnail wp-image-151&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note: As you probably noticed I replaced the default progressbar with a pulsating one, because we cannot get exact information on how many items/bytes to fetch and would likely get a progress bar moving backwards, which isn’t beautiful.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Further changes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The TODO list was rather short and I did a lot of other work, which I want to elaborate on.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dynamic selection of frontend, backend and distribution specific modules&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Even though this is probably not of any interest to John Doe, it helps a great deal when debugging code as all three components can be selected via separate command line switches now.&lt;br /&gt;
Additionally some magic has been put in place that automatically detects the system’s distribution and loads the corresponding distribution specific module. This is done via lsb_release and the newly introduced code in UpdateManager.Util.lsb.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pylint cleanup&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Just out of curiosity I decided to start a pylint run on the codebase and quite a few problems were detected, which I then fixed. To be honest though I added quite some code afterwards that probably needs pylint checking and fixes again.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;update-manager IPC&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;My original plan and IPC design involved using callback functions and passing them between the different modules. Even though this worked out fine I had the feeling this wasn’t clean enough and decided to ditch this approach and replace it with handler classes.&lt;br /&gt;
The handler base classes now provide an interface of methods that are called on certain events and their implementations act accordingly. The main benefit was that I could easily drop a lot of enums and rather have different methods handling different events.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gtk, threads and python-apt&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With the new IPC approach it became easier to use threads that do the actual work in the background, which I had implemented in next to no time, but a few problems showed up.&lt;br /&gt;
Whilst cache reloading from within a thread worked just fine checking for updates did not, and until today I didn’t know why. I spent a good amount of time debugging this issue, even using python profiling, but nothing obvious showed up. The background process was running, whilst the UI froze.&lt;br /&gt;
Today I finally found the root of the problem: python-apt. Even though I assumed that the python-apt worker threads must be stealing CPU time from the thread running gtk.main I wasn’t sure how this could be happening, having two completely independent threads.&lt;/p&gt;
&lt;p&gt;Now, the cause of all this mess was that Python has a global threading lock and it seems as if this one is *LOCKED* when running C-code, such as the one python-apt comes with. The solution lies in calling Py_BEGIN_THREADS_ALLOW and Py_END_THREADS_ALLOW from within the C code, to release the global lock and let the Python interpreter do some work every now and then.&lt;/p&gt;
&lt;p&gt;As with the python-apt acquire code I was able to allow other threads to work as soon as the fetching code starts working and only disallow threads when actually modifying Python objects or calling methods and/or functions. Surprisingly python-apt already made use of this in its cache loading code, but not the fetch progress code.&lt;br /&gt;
Fixing this problem took me less than half an hour and you probably can’t believe how glad I was to finally get things working again.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UI updates &amp;amp; other changes&lt;br /&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Some details in the UI were anything but optimal, like horizontal scrollbars in a few places, which I removed. Additionally I saw the need to move some code out of the Gtk frontend’s __init__.py file and to a separate ui.py file.&lt;br /&gt;
A full list of all changes I made is available from the bzr changelog at &lt;a href=&quot;http://bzr.debian.org/loggerhead/update-manager/devel/gsoc09/changes&quot; title=&quot;update-manager changes @bzr.debian.org&quot;&gt;bzr.debian.org&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A few more screenshots&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Finally, I would like to provide you with two more screenshots (don’t worry about my system being insecure because of not applied updates – this is a testing machine that is  not up-to-date on purpose):&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.peijnik.at/wp-content/uploads/2009/07/Screenshot-Update-Manager-1.png&quot;&gt;&lt;img src=&quot;http://blog.peijnik.at/wp-content/uploads/2009/07/Screenshot-Update-Manager-1-150x150.png&quot; title=&quot;Update Manager main screen&quot; height=&quot;150&quot; width=&quot;150&quot; alt=&quot;Update Manager main screen&quot; class=&quot;size-thumbnail wp-image-149 alignnone&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.peijnik.at/wp-content/uploads/2009/07/Screenshot-Update-Manager.png&quot;&gt;&lt;img src=&quot;http://blog.peijnik.at/wp-content/uploads/2009/07/Screenshot-Update-Manager-150x150.png&quot; title=&quot;Update Manager main screen with details &amp;amp; changelog&quot; height=&quot;150&quot; width=&quot;150&quot; alt=&quot;Update Manager main screen with details &amp;amp; changelog&quot; class=&quot;size-thumbnail wp-image-150 alignnone&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TODO list&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;My TODO list for next week:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Downloading and installing of updates&lt;/li&gt;
&lt;li&gt;Checking that everything is documented&lt;/li&gt;
&lt;li&gt;Even more unit tests&lt;/li&gt;
&lt;li&gt;Pylint checking&lt;/li&gt;
&lt;li&gt;If time permits and everything else works correctly: working on an aptdaemon backend&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Thu, 02 Jul 2009 09:29:01 +0000</pubDate>

</item> 
<item>
	<title>Colin Watson: Python SIGPIPE handling</title>
	<guid>http://www.chiark.greenend.org.uk/ucgi/~cjwatson/blosxom/2009/07/02#2009-07-02-python-sigpipe</guid>
	<link>http://www.chiark.greenend.org.uk/ucgi/~cjwatson/blosxom/2009/07/02#2009-07-02-python-sigpipe</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/cjwatson.png&quot; width=&quot;70&quot; height=&quot;82&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;&lt;a href=&quot;http://www.enricozini.org/2009/debian/python-pipes/&quot;&gt;Enrico&lt;/a&gt;
writes about creating pipelines with Python&#39;s &lt;code&gt;subprocess&lt;/code&gt;
module, and notes that you need to take care to close stdout in non-final
subprocesses so that subprocesses get &lt;code&gt;SIGPIPE&lt;/code&gt; correctly. This
is correct as far as it goes (and true in any language, although there&#39;s a
&lt;a href=&quot;http://bugs.python.org/issue1615376&quot;&gt;Python bug report requesting
that &lt;code&gt;subprocess&lt;/code&gt; be able to do this itself&lt;/a&gt;), but there&#39;s an
additional gotcha with Python that you missed.&lt;/p&gt;

&lt;p&gt;Python ignores &lt;code&gt;SIGPIPE&lt;/code&gt; on startup, because it prefers to
check every write and raise an &lt;code&gt;IOError&lt;/code&gt; exception rather than
taking the signal. This is all well and good for Python itself, but most
Unix subprocesses don&#39;t expect to work this way. Thus, when you are creating
subprocesses from Python, it is &lt;strong&gt;very important&lt;/strong&gt; to set
&lt;code&gt;SIGPIPE&lt;/code&gt; back to the default action. Before I realised this was
necessary, I wrote code that caused serious data loss due to a child process
carrying on out of control after its parent process died!&lt;/p&gt;

&lt;pre&gt;import signal
import subprocess

def subprocess_setup():
    # Python installs a SIGPIPE handler by default. This is usually not what
    # non-Python subprocesses expect.
    signal.signal(signal.SIGPIPE, signal.SIG_DFL)

subprocess.Popen(command, preexec_fn=subprocess_setup)
&lt;/pre&gt;

&lt;p&gt;I filed a &lt;a href=&quot;http://bugs.python.org/issue1652&quot;&gt;patch&lt;/a&gt; a while
back to add a &lt;code&gt;restore_sigpipe&lt;/code&gt; option to
&lt;code&gt;subprocess.Popen&lt;/code&gt;, which would take care of this. As I say in
that bug report, in a future release I think this ought to be made the
default, as it&#39;s very easy to get things dangerously wrong right now.&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Jul 2009 09:15:00 +0000</pubDate>

</item> 
<item>
	<title>Evan Prodromou: 14 Messidor CCXVII</title>
	<guid>http://evan.prodromou.name/Journal/14_Messidor_CCXVII</guid>
	<link>http://evan.prodromou.name/Journal/14_Messidor_CCXVII</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/evan.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;It&#39;s been one year since the public launch of &lt;a href=&quot;http://identi.ca/&quot;&gt;identi.ca&lt;/a&gt; on July 2, 2008. 
&lt;/p&gt;&lt;p&gt;At the time, I&#39;d been working on the software for a few months, and after some friendly beta testing by Montreal tech folks and &lt;a href=&quot;http://autonomo.us/&quot;&gt;autonomo.us&lt;/a&gt; members, I felt that it was time to &lt;a href=&quot;http://catb.org/esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html&quot;&gt;Release Early, Release Often&lt;/a&gt;. So on vacation in Lake Tahoe with my pregnant wife and in-laws, and jetlagged and unable to sleep, I sent out an announcement email to beta users at 5:30AM PDT. You can see my &lt;a href=&quot;http://identi.ca/notice/1221&quot;&gt;status update&lt;/a&gt; on the subject, which in turn links to our &lt;a href=&quot;http://ur1.ca/1j&quot;&gt;press release&lt;/a&gt; and my personal blog post of &lt;a href=&quot;http://evan.prodromou.name/Journal/14_Messidor_CCXVI&quot; class=&quot;wikiname&quot;&gt;Journal/14 Messidor CCXVI&lt;/a&gt;. We had 10K users within 30 hours; I switched hosting providers and did a new release of the software within 72. It was a busy time.
&lt;/p&gt;&lt;p&gt;I had no idea that identi.ca and &lt;a href=&quot;http://laconi.ca/&quot;&gt;Laconica&lt;/a&gt; would become such an important  part of my life and of the Internet landscape. In the intervening year, we&#39;ve received &lt;a href=&quot;http://controlyourself.ca/2009/01/15/investment-by-montreal-startup/&quot;&gt;seed funding from Montreal Start Up&lt;/a&gt;, done 4 major point releases of the software (from last year&#39;s 0.4.x to this week&#39;s 0.8.x), and become the indisputably most important Open Source microblogging platform on the planet.
&lt;/p&gt;&lt;p&gt;I&#39;d like to take moment to give my personal thanks to folks who&#39;ve helped make this project such a success:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;My wife @&lt;a href=&quot;http://identi.ca/majnoona&quot;&gt;majnoona&lt;/a&gt; and children @&lt;a href=&quot;http://identi.ca/amitajune&quot;&gt;amitajune&lt;/a&gt; and @&lt;a href=&quot;http://identi.ca/stavro&quot;&gt;stavro&lt;/a&gt; who&#39;ve been so patient with my work and travel schedule over the last 12 months.
&lt;/li&gt;&lt;li&gt;My innumerable friends and colleagues who&#39;ve set up accounts on identi.ca and used them. You learn who your friends are when you start a new project like this.
&lt;/li&gt;&lt;li&gt;The thousands and thousands of people who&#39;ve become &lt;em&gt;new&lt;/em&gt; friends through the site. I&#39;ve been awed by how many folks have caught onto the dream of Open Source, distributed microblogging and made it their own.
&lt;/li&gt;&lt;li&gt;The dozens of developers who&#39;ve written code for Laconica, or plugins, or API clients that use the software.
&lt;/li&gt;&lt;li&gt;The team of developers and admins at &lt;a href=&quot;http://controlyourself.ca/&quot;&gt;Control Yourself&lt;/a&gt;: @&lt;a href=&quot;http://identi.ca/zach&quot;&gt;zach&lt;/a&gt;, @&lt;a href=&quot;http://identi.ca/csarven&quot;&gt;csarven&lt;/a&gt;, @&lt;a href=&quot;http://identi.ca/millette&quot;&gt;millette&lt;/a&gt;, @&lt;a href=&quot;http://identi.ca/nate&quot;&gt;nate&lt;/a&gt;, @&lt;a href=&quot;http://identi.ca/foucault&quot;&gt;foucault&lt;/a&gt; and @&lt;a href=&quot;http://identi.ca/cvollick&quot;&gt;cvollick&lt;/a&gt;. They&#39;ve put in long hours and done some really impressive technical feats to keep us going in the face of growth and technology changes.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I&#39;m looking forward to another big year.
&lt;/p&gt;&lt;p&gt;tags: &lt;a href=&quot;http://evan.prodromou.name/Tag/identica&quot; rel=&quot;tag&quot;&gt;identica&lt;/a&gt; &lt;a href=&quot;http://evan.prodromou.name/Tag/laconica&quot; rel=&quot;tag&quot;&gt;laconica&lt;/a&gt; &lt;a href=&quot;http://evan.prodromou.name/Tag/identica1&quot; rel=&quot;tag&quot;&gt;identica1&lt;/a&gt;
&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Jul 2009 08:48:58 +0000</pubDate>

</item> 
<item>
	<title>Daniel Silverstone: Dear Lazyweb…</title>
	<guid>http://blog.digital-scurf.org/2009/07/02#antihistamines</guid>
	<link>http://blog.digital-scurf.org/2009/07/02#antihistamines</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/kinnison.png&quot; width=&quot;75&quot; height=&quot;96&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I am currently stuck taking four times the suggested daily dose of &lt;strong&gt;two&lt;/strong&gt; anti-histamines in order to combat my body and its reaction to plants having sex all around me.&lt;/p&gt;

&lt;p&gt;I am taking two 10mg &lt;a href=&quot;http://en.wikipedia.org/wiki/Loratadine&quot;&gt;Loratadine&lt;/a&gt; tablets, and two 10mg &lt;a href=&quot;http://en.wikipedia.org/wiki/Cetirizine&quot;&gt;Cetirizine Hydrochloride&lt;/a&gt; tablets, twice daily. This is effectively four times the recommended dose of twice as many anti-histamines as I should need.&lt;/p&gt;

&lt;p&gt;I wasn’t this bad last year, but the year before was similar. Irritatingly, once the drugs kick in (45 minutes to an hour after taking) my runny nose, itchy/burny eyes, slight dopeyness induced by feeling crap, etc. all fade away. Yesterday I needed my second dose a mere 8 hours after the first, but I didn’t need to re-dose until this morning after that.&lt;/p&gt;

&lt;p&gt;I guess what I’m asking is—what is the expected side-effects of taking such a high dose of antihistamines. Do any of you out there have to take such high doses, have you seen a doctor about this? All I expect a doctor to do is to either supply me more loratadine on prescription (which is of dubious value unless I get a &lt;strong&gt;lot&lt;/strong&gt; given prescription charges in the UK), or to try me on a nasal spray, which tend to induce nosebleeds for me. If you’ve found other ways to cope, I’m interested. Otherwise I guess I’ll make an appointment to see the doctor in the next week or so.&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Jul 2009 08:45:38 +0000</pubDate>

</item> 
<item>
	<title>Russell Coker: Web Hosting After Death</title>
	<guid>http://etbe.coker.com.au/?p=1005</guid>
	<link>http://etbe.coker.com.au/2009/07/02/web-hosting-after-death/</link>
     <description>  &lt;p&gt;&lt;a href=&quot;http://blog.steve.org.uk/there_s_something_out_there_waiting_for_us__and_it_ain_t_no_man_.html&quot;&gt;Steve Kemp writes about his concerns for what happens to his data after death [1]&lt;/a&gt;.  Basically everything will go away when bills stop being paid.  If you have hosting on a monthly basis (IE a Xen DomU) then when the bank account used for the bill payment is locked (maybe a week after death) the count-down to hosting expiry starts.  As noted in Steve’s post it is possible to pay for things in advance, but everything will run out eventually.&lt;/p&gt;
&lt;p&gt;One option is to have relatives keep the data online.  With hard drives getting bigger all the time it wouldn’t be difficult to backup the web sites for everyone in your family to a USB flash device and then put it online at a suitable place.  Of course that relies on having relatives with the skill and interest necessary.&lt;/p&gt;
&lt;p&gt;The difficult part is links, if the domain expires then links will be broken.  One way of alleviating this would be to host content with Blogger, Livejournal, or other similar services.  But then instead of the risk of a domain being lost you have the risk of a hosting company going bankrupt.&lt;/p&gt;
&lt;p&gt;It seems to me that the ideal solution would be to have a hosting company take over the web sites of deceased people and put adverts on them to cover the hosting costs.  As the amount of money being spent on Internet advertising will only increase while the costs of hosting steadily go down it seems that collecting a lot of content for advertising purposes would be a good business model. If the web sites of dead people are profitable then they will remain online.&lt;/p&gt;
&lt;p&gt;It wouldn’t be technically difficult to extract the data from a blog server such as Wordpress (either from a database dump or crawling the web site), change the intra-site links to point to a different domain name, and then put it online as static content with adverts.  If a single company (such as Google) had a large portion of the market of hosting the web sites of dead people then when someone died and had their web site transferred the links on the other sites maintained by the same company could be automatically adjusted to match.  A premium service from such a company could be to manage the domain.  If they were in the domain registrar business it would be easy to allow someone to pay for 10 or 20 years after their death.  Possibly with a portion of the advertising revenue going towards extending the domain registration.  I think that this idea has some business potential, I don’t have the time or energy to implement it myself and my clients are busy on other things so I’m offering it to the world.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.guardian.co.uk/technology/2009/jun/30/data-protection-internet&quot;&gt;Cory Doctorow has written an article for the Guardian about a related issue – how to allow the next of kin to access encrypted data when someone is dead [2]&lt;/a&gt;.  One obvious point that he missed is the possibility that he might forget his own password, a small injury from a car accident could cause that problem.&lt;/p&gt;
&lt;p&gt;It seems strange to me that someone would have a great deal of secret data that needs strong encryption but yet has some value after they are dead.  Archives of past correspondence to/from someone who is dead is one category of secret data that is really of little use to anyone unless the deceased was particularly famous.  Probably the majority of encrypted data from a dead person would be best wiped.&lt;/p&gt;
&lt;p&gt;For the contents of personal computers the best strategy would probably be to start by dividing the data into categories according to the secrecy requirements.  Publish the things that aren’t secret, store a lot of data unencrypted (things that are not really secret but you merely don’t want to share them with the world), have a large encrypted partition that will have it’s contents lost when you die, and have a very small encrypted device that has bank passwords and other data that is actually useful for the executors of the will.&lt;/p&gt;
&lt;p&gt;One thing that we really need is to have law firms that have greater technical skills.  It would be good if the law firms that help people draw up wills could advise them on such issues and act as a repository for such data.  It seems to me that the technical skills that are common within law firms are not adequate for the task of guarding secret electronic data for clients.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;[1]&lt;a href=&quot;http://blog.steve.org.uk/there_s_something_out_there_waiting_for_us__and_it_ain_t_no_man_.html&quot;&gt; http://blog.steve.org.uk/there_s_something_out_there_waiting_for_us__and_it_ain_t_no_man_.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;[2]&lt;a href=&quot;http://www.guardian.co.uk/technology/2009/jun/30/data-protection-internet&quot;&gt; http://www.guardian.co.uk/technology/2009/jun/30/data-protection-internet&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt; </description> 
	<pubDate>Thu, 02 Jul 2009 06:03:43 +0000</pubDate>

</item> 
<item>
	<title>Cyril Brulebois: ikiwiki dates</title>
	<guid>http://ikibiki.org//blog/2009/07/02/ikiwiki_dates/</guid>
	<link>http://ikibiki.org//blog/2009/07/02/ikiwiki_dates/</link>
     <description>  &lt;p&gt;Some time ago, the box on which my blog is hosted went dramatically
down, and I had to restore the blog by populating the git repository
again, from my local copy.&lt;/p&gt;

&lt;p&gt;Unfortunately, that means that the wiki had to be rebuilt from
scratch, and all creation dates were messed up, leading some
planet-like sites to show all of my posts again.&lt;/p&gt;

&lt;p&gt;To ensure that this won’t happen again (even if I switch branches in
the git repositories, move some files around, trash the ikiwiki cache,
etc.), it looks like &lt;a href=&quot;http://ikiwiki.info/bugs/inline_sort_order_and_meta_date_value/&quot;&gt;using meta dates is the way to
go&lt;/a&gt;,
for example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; [[meta date=&quot;2009-07-02&quot;]]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;(One can use &lt;code&gt;2009-07-02 00:00:00&lt;/code&gt; and &lt;code&gt;2009-07-02 01:00:00&lt;/code&gt; to sort
several entries on the same day, too.)&lt;/p&gt;

&lt;p&gt;This way, all pages are rendered identically on every system.&lt;/p&gt;

&lt;p&gt;To help maintaining those extra dates (kind of a burden, to be
honest), I’ve written a &lt;a href=&quot;http://ikibiki.org/blog/2009/07/02/ikiwiki-dates.pl&quot;&gt;tiny Perl script to automate
it&lt;/a&gt;, and specified an alias in
&lt;code&gt;.git/config&lt;/code&gt; for that repository:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; [alias]
 ikiwiki-check = &quot;!blog/2009/07/02/ikiwiki-dates.pl&quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Inline replacement (in case of conflicts: same date without time, or
with same time) or additions are then performed, and &lt;code&gt;git status&lt;/code&gt; will
show what needs tweaking.&lt;/p&gt;

&lt;p&gt;More work that I initially imagined, but robustness should
follow.&lt;/p&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 23:00:00 +0000</pubDate>

</item> 
<item>
	<title>David Welton: Custom Twitter Sites, BikeChatter.com Updates</title>
	<guid>tag:journal.dedasys.com,2005:Article/2157</guid>
	<link>http://journal.dedasys.com/2009/07/01/custom-twitter-sites-bikechatter-com-updates</link>
     <description>  &lt;div&gt;
&lt;p&gt;I&#39;ve been hacking away at &lt;a href=&quot;http://www.bikechatter.com&quot;&gt;http://www.bikechatter.com&lt;/a&gt;, adding a few things like votes and tags so that you can choose which broad categories you want to follow.  The first will let people vote for the most interesting tidbits that come through twitter, whereas the second will let me add more people without overloading those who are, say, not interested in reading what coaches have to say, or are only interested in professional women racers, etc...  I don&#39;t think I&#39;ll bother with individuals - if you want that, just add them to twitter yourself!  At most I might see about putting in an &#39;exclude list&#39;... but we&#39;ll see; I&#39;d prefer to keep things simple.&lt;/p&gt;

&lt;p&gt;Since I love cycling so much, adding stuff to this site has always just been kind of a fun side project, something to relax with in the evenings, rather than something I thought about in monetary terms.  However, the basic idea seems to be popular, and as luck would have it, I&#39;ve been approached by someone looking to buy the code behind BikeChatter to drive their own custom twitter site.  If someone has gone to the trouble of writing me, there must be other people interested too, so I thought I&#39;d publicly state that I&#39;d be willing to do similar deals with people interested in having their own custom twitter site.  Interested?  Write me at davidw@dedasys.com .  I&#39;d be happy to tell you what the code can and cannot do, and discuss any ideas you may have, in order to let you know if it&#39;s a good fit, or if you&#39;d have to do a lot of work.&lt;/p&gt;

&lt;p&gt;The code is pretty straightforward Ruby on Rails.  I use Postgres as a database, but others should work fine too.  As is obvious, I&#39;m not much of a design guy, but it shouldn&#39;t be too hard to plug in your own look and feel.&lt;/p&gt;        &lt;/div&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 22:37:10 +0000</pubDate>

</item> 
<item>
	<title>Adam Rosi-Kessel: MBTA Blocking TPM</title>
	<guid>http://adam.rosi-kessel.org/weblog/?p=801</guid>
	<link>http://adam.rosi-kessel.org/weblog/2009/07/01/mbta-blocking-tpm</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/kessel.png&quot; width=&quot;65&quot; height=&quot;99&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I’ve been happy to see &lt;a href=&quot;http://www.mbta.com/riding_the_t/wifi/&quot;&gt;WiFi appearing on nearly every MBTA commuter rail car&lt;/a&gt; recently. I was less happy to see this:&lt;/p&gt;
&lt;div style=&quot;width: 610px;&quot; id=&quot;attachment_802&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;http://adam.rosi-kessel.org/weblog/wp-content/uploads/2009/07/mbta_blocks_tpm.png&quot;&gt;&lt;img src=&quot;http://adam.rosi-kessel.org/weblog/wp-content/uploads/2009/07/mbta_blocks_tpm.png&quot; title=&quot;mbta_blocks_tpm&quot; height=&quot;567&quot; width=&quot;694&quot; alt=&quot;No TPM on MBTA&quot; class=&quot;size-full wp-image-802&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;No TPM on MBTA&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;I guess I’ll have to wait until I get home to find out why &lt;a href=&quot;http://tpmtv.talkingpointsmemo.com/?id=2855327&quot;&gt;this&lt;/a&gt; bothered &lt;a href=&quot;http://stevereads.com&quot;&gt;Steve&lt;/a&gt; so much.&lt;/p&gt;
&lt;p&gt;Oddly, the MBTA’s web filter also blocked access to my WordPress editor, but unlike the TPM block, I could select “yes, I really want to do this” to get here.&lt;/p&gt;
&lt;p&gt;I’ve never understood why web filters so often block these sorts of sites on apparently generic settings. “General News/Blogs/Wikis” are dangerous? Reputation “neutral”? I’d be surprised if anyone at the T actually did this on purpose, but I suppose it would fit the general pattern of operational incompetence.&lt;/p&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 21:51:33 +0000</pubDate>

</item> 
<item>
	<title>Eugene V. Lyubimkin: cupt: time to feedback</title>
	<guid>http://jackyf.livejournal.com/102064.html</guid>
	<link>http://jackyf.livejournal.com/102064.html</link>
     <description>  Cupt, the re-implementation of APT suite, continues growing.&lt;br /&gt;&lt;br /&gt;Since &lt;a href=&quot;http://jackyf.livejournal.com/101263.html&quot;&gt;the previous post&lt;/a&gt; a lot of bugs were fixed, several versions were uploaded to Debian. As always, many bugs were hunted out, and now, last 0.2.3 version hasn&#39;t any open bugs in BTS.&lt;br /&gt;&lt;br /&gt;I claim this is a good time for anyone who experienced bugs with APT to at least try typing one&#39;s favorite package manager command (update, full-upgrade, install, remove etc.) with cupt. Not being Swiss knife, Cupt already works for many known cases. If it doesn&#39;t, file a bug.&lt;br /&gt;&lt;br /&gt;I claim this is a good time for anyone who feels that Perl is bad programming language to show practical objective statistics (speed, memory footprint etc.).&lt;br /&gt;&lt;br /&gt;I claim this is a good time for anyone who has some words to say about Cupt (good or bad) to say them. Using private e-mail or via #cupt channel on OFTC IRC network.&lt;br /&gt;&lt;br /&gt;Several people asked me before, do I want to replace APT by Cupt in some future. Well, if APT will stay unmaintained as it is now, then the answer is probably &#39;yes&#39;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In the meantime, a half-pilot implementation of source packages is ready. It&#39;s possible the next uploaded version of Cupt will strike out the &#39;experimental&#39; word from the tool&#39;s description. </description> 
	<pubDate>Wed, 01 Jul 2009 15:58:19 +0000</pubDate>

</item> 
<item>
	<title>Cyril Brulebois: Best questions ever</title>
	<guid>http://ikibiki.org//blog/2009/07/01/Best_questions_ever/</guid>
	<link>http://ikibiki.org//blog/2009/07/01/Best_questions_ever/</link>
     <description>  &lt;p&gt;Would someone guess the link between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What mail client are you using?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Are you around during the next two weeks?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;http://ikibiki.org//tags/debian/../../blog/2009/07/01/gnukfreebsd.png&quot;&gt;&lt;img src=&quot;http://ikibiki.org//tags/debian/../../blog/2009/07/01/gnukfreebsd.png&quot; alt=&quot;GNU/kFreeBSD logo&quot; height=&quot;106&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After answering those, I’ve been offered to take care of the
GNU/kFreeBSD buildds, which is yet another experience. &lt;code&gt;\o/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Quite a good timing since I’ve recently tried to get involved with the
GNU/kFreeBSD ports again, prodding maintainers, uploading fixed
packages (usually thanks to Petr Salinger’s patches), or providing
patches myself.&lt;/p&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 15:47:00 +0000</pubDate>

</item> 
<item>
	<title>Robert Millan: Mono is not a patent threat for Debian</title>
	<guid>http://robertmh.wordpress.com/?p=52</guid>
	<link>http://robertmh.wordpress.com/2009/07/01/mono-is-not-a-patent-threat-for-debian/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/rmh.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;I read Richard Stallman’s post in which he expresses his &lt;a href=&quot;http://www.fsf.org/news/dont-depend-on-mono&quot;&gt;concern about a serious danger&lt;/a&gt; with reliing on .NET for free software development.  I think Richard makes very good points here, and I do agree that there’s a serious danger, but &lt;b&gt;I don’t think Microsoft would ever bring all .NET implementations underground&lt;/b&gt;.  If you think that, my opinion is you’re underestimating them.&lt;/p&gt;
&lt;p&gt;Microsoft is smarter than that.  They are a &lt;a href=&quot;http://www.theregister.co.uk/2001/06/02/ballmer_linux_is_a_cancer/&quot;&gt;sworn enemy&lt;/a&gt; of free software, they’re &lt;a href=&quot;http://www.theopensourcerer.com/2008/02/19/microsofts-jihad-be-afraid-be-very-afraid/&quot;&gt;ruthless&lt;/a&gt;, and they know all the &lt;a href=&quot;http://boycottnovell.com/2008/01/10/microsoft-ooxml-bribes/&quot;&gt;anti-competitive tactics&lt;/a&gt; in the IT world.  There’s no doubt they want to make our community divided and helpless.  And when they look at the free software development ecosystem, they see two big groups:&lt;/p&gt;
&lt;p&gt;  A- Highly profitable vendors like Red Hat or Sun/Oracle.&lt;br /&gt;
  B- Non-profit communities like Debian or Ubuntu (technically, Canonical is a for-profit venture, but they operate at loss).&lt;/p&gt;
&lt;p&gt;There’s also 3rd parties that sell hardware or services and contribute “collateral” improvements to our codebase.  I’ll ignore those for the sake of simplicity.&lt;/p&gt;
&lt;p&gt;It would be silly to try harm group B with their patents, since it’s composed of grass-root efforts which can’t be unrepairably injured just by bringing a company out of bussiness.  Besides, group B actually helps them promote their patent-encumbered standards.  Why attack those who are helping you?&lt;/p&gt;
&lt;p&gt;Ah, but as for group A, maybe they could use patents to shut it down?  Perhaps, but I think they’re &lt;b&gt;even smarter&lt;/b&gt; than that.  Sun Tzu said: “&lt;i&gt;When you surround an army, leave an outlet free.  Do not press a desperate foe too hard.&lt;/i&gt;”  If Mono-based applications become a significant competitive advantage (and it is in their agenda that they do), and their competitors are forbidden from using them, they will put all their effort in pushing for alternatives, even at great expense.  I really think they know better.&lt;/p&gt;
&lt;p&gt;I recently came across this &lt;a href=&quot;http://www.nytimes.com/1999/05/28/business/ibm-executive-describes-price-pressure-by-microsoft.html&quot;&gt;very interesting article&lt;/a&gt;, written in 1999, which details the tactics used by Microsoft to fight IBM.  They obviously saw OS/2 as a threat.  Back then, Windows 95 was the trading token.  They could have caused IBM a great deal of harm shall they refused to license it to them, but it seems the idea of subjugating IBM was more appealing.  This is how Garry Norris (IBM) put it:&lt;/p&gt;
&lt;p&gt;  “&lt;i&gt;Microsoft repeatedly said we would suffer in terms of prices, terms, conditions and support programs, as long as we were offering competing products.&lt;/i&gt;“&lt;/p&gt;
&lt;p&gt;  “&lt;i&gt;[Microsoft] insisted that IBM sell 300,000 copies of Windows 95 in the first five months or face a 20 percent price increase&lt;/i&gt;“&lt;/p&gt;
&lt;p&gt;Nice deal, eh?  Make your dependancy on Windows 95 stronger, or else we’ll use your existing dependancy on Windows 95 against you.  No surprise IBM abandoned the PC market.  Are Red Hat and Sun/Oracle set on the same direction?&lt;/p&gt;
&lt;p&gt;Draw your own conclussions.  In my point of view, projects like Debian and Ubuntu are completely safe from direct patent threat.  Should we care if Red Hat or Sun/Oracle succumb?  Perhaps not, after all, &lt;a href=&quot;http://press.redhat.com/2008/04/08/red-hat-leads-open-source-contributions-to-kernel/&quot;&gt;what&lt;/a&gt; &lt;a href=&quot;http://fedoraproject.org/wiki/RedHatContributions#Upstream_Developers&quot;&gt;are&lt;/a&gt; they &lt;a href=&quot;http://www.mysql.com/&quot;&gt;doing&lt;/a&gt; &lt;a href=&quot;http://www.openoffice.org/&quot;&gt;for&lt;/a&gt; &lt;a href=&quot;http://www.virtualbox.org/&quot;&gt;us&lt;/a&gt;?&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/robertmh.wordpress.com/52/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/robertmh.wordpress.com/52/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/robertmh.wordpress.com/52/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/robertmh.wordpress.com/52/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/robertmh.wordpress.com/52/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/robertmh.wordpress.com/52/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/robertmh.wordpress.com/52/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/robertmh.wordpress.com/52/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/robertmh.wordpress.com/52/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/robertmh.wordpress.com/52/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=robertmh.wordpress.com&amp;amp;blog=2720179&amp;amp;post=52&amp;amp;subd=robertmh&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 15:31:41 +0000</pubDate>

</item> 
<item>
	<title>Junichi Uekawa: mecab package for Debian.</title>
	<guid>http://www.netfort.gr.jp/~dancer/diary/daily/2009-Jul-1.html.en#2009-Jul-1-23:53:19</guid>
	<link>http://www.netfort.gr.jp/~dancer/diary/daily/2009-Jul-1.html.en#2009-Jul-1-23:53:19</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;  mecab package for Debian.
	  In Japanese, words in sentence are not split by spaces, and are written continuously.
	  Thismakesparsingofsentencesverydifficultformachines.
	  Luckily people have done much research, and probabilistically split words in sentences.
	  That science is apparently called morphology.
	  There are some packages in Debian; ones I know include chasen, kakasi, and mecab. 
	  I looked at mecab today.
	  mecab has different dictionaries, and there are 4 dictionaries in Debian lenny.
	  One free one (mecab-juman) and non-free one (mecab-ipadic).
	  This looks confusing for first-timers.
        &lt;p&gt;&lt;/p&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 14:53:19 +0000</pubDate>

</item> 
<item>
	<title>Gustavo Noronha Silva: Firefox 3.5 lançado!</title>
	<guid>http://blog.kov.eti.br/?p=80</guid>
	<link>http://blog.kov.eti.br/?p=80</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/kov.png&quot; width=&quot;65&quot; height=&quot;86&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;O Firefox 3.5 foi &lt;a href=&quot;http://www.mozilla.com/en-US/press/mozilla-2009-06-30.html&quot;&gt;lançado&lt;/a&gt;, e essa é uma boa notícia. Significa que os navegadores livres e/ou que respeitam padrões abertos continuam deixando comendo poeira os navegadores legados com o Internet Explorer (especialmente o 6, que ninguém merece, né?).&lt;/p&gt;
&lt;p&gt;Entre outras coisas, o Firefox 3.5 tem performance de javascript muito melhor, parecida com a do Epiphany 2.27.3, e suporta bastante coisa de HTML5, incluindo as tags de audio e vídeo. Muito importante com relação a isso, é que ele suporta por padrão os formatos abertos (assim como a WebKitGTK+, que usa GStreamer, mas o suporte às tags ainda não funciona 100%). Tem algumas páginas muito interessantes para acompanhar a ‘adoção’ da nova release: &lt;a href=&quot;http://downloadstats.mozilla.com/&quot;&gt;http://downloadstats.mozilla.com/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As pessoas devem saber da minha relação de amor é ódio com a Mozilla - mesmo hoje o navegador não se integra bem com meu GNOME, a API de embedding deixa muito a desejar, mas ninguém pode negar que o Firefox foi o que trouxe um clima de abertura para a Web, e exigiu que todos começassem a se preocupar com padrões, desempenho e qualidade. Se você usa um sistema operacional proprietário, largue logo os navegadores proprietários e use uma coisa que presta! =)&lt;/p&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 14:13:55 +0000</pubDate>

</item> 
<item>
	<title>Gunnar Wolf: Carlos Bueso, from the Honduras Free Software community, detained</title>
	<guid>http://gwolf.org/2289 at http://gwolf.org</guid>
	<link>http://gwolf.org/blog/carlos-bueso-honduras-free-software-community-detained</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/gwolf.png&quot; width=&quot;54&quot; height=&quot;97&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I met Carlos Bueso two weeks ago, at the Central American Free Software Encounter. I am translating this mail writen by another member of the group (from Costa Rica) explaining his situation.&lt;/p&gt;
&lt;p&gt;Excuse me for a broken, possibly wrong English - I find more important to make this message available than to get proper wording for it. If you cannot understand something and can read Spanish, or if you wish to further distribute this text, please refer to the &lt;a href=&quot;http://gwolf.org/files/carlos_bueso.txt&quot;&gt;original mail&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Hello everybody,&lt;/p&gt;
&lt;p&gt;I wrote this some hours ago, and am circulating it because I don&#39;t know what else to do... I imagine all of us are in similar terms with our frustration and our willingness to do something.&lt;/p&gt;
&lt;p&gt;Somebody answered to me with an update, and I reelaborated the note, and am reproducing it here so everybody shares it with our communities, via our blogs and whatever ways we find. We must do something, right? At least this! And I don&#39;t know what more... Can somebody think of anything? Meanwhile, please redistribute this.&lt;/p&gt;
&lt;p&gt;I am writing to other organizations to see what we can do.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Our friend Carlos Bueso has been detained in El Progreso. He is a communicator, acused of sedition.&lt;/b&gt;&lt;br /&gt;
&lt;img src=&quot;http://gwolf.org/files/1.jpg&quot; alt=&quot;Carlos Bueso&quot; height=&quot;148&quot; width=&quot;104&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This morning, our friend Carlos Bueso was detained. Carlos is a member of the Comunicación Comunitaria (COMUN) organization, as well as  of the Central American Free Software community. COMUN promoves and defends laboral and human rights by advancing alternative communication means. Their offices are located in El Progreso, 250 Km north of Tegucigalpa, the national capital, in the Atlantic coast of Honduras, and 26 Km from San Pedro Sula, the country&#39;s second city in importance.&lt;/p&gt;
&lt;p&gt;Carlos Bueso is an 18 year old informatics technician. In COMUN, he works performing computer-related teaching and Free Software promotion. He also is an editor for the Vida Laboral magazine, and maintains the &lt;a href=&quot;http://wwww.honduraslaboral.org&quot; title=&quot;http://wwww.honduraslaboral.org&quot;&gt;http://wwww.honduraslaboral.org&lt;/a&gt; website.&lt;/p&gt;
&lt;p&gt;In the June 30 morning, Carlos took part of a demonstration in El Progreso, Yoro, against the coup perpetrated on June 28. This demonstration was repressed at 10 AM, the army shot at the air and used several tear gas bombs. Carlos was detained, as well as Marcelino Martinez, Jorge Cordon, Junior Antunez, Joel Martinez, Martha Ileana Hernandez and Jose Erazo. The complete news note is available (in Spanish) in &lt;a href=&quot;http://honduraslaboral.org/leer.php/1878&quot; title=&quot;http://honduraslaboral.org/leer.php/1878&quot;&gt;http://honduraslaboral.org/leer.php/1878&lt;/a&gt; and a video of this repression can be seen at &lt;a href=&quot;http://www.youtube.com/watch?v=wC4LQU_UeTs&quot; title=&quot;http://www.youtube.com/watch?v=wC4LQU_UeTs&quot;&gt;http://www.youtube.com/watch?v=wC4LQU_UeTs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Carlos and other people are detained in the El Progreso police cells, and will be presented to the tribunals next July 1st, accused of sedition.&lt;/p&gt;
&lt;p&gt;The detainees have been interviewed, and they are OK, waiting to be put at the Public Prosecutor&#39;s (Ministerio Público) authority. The Prosecutor can decide to set them free, or refer them to the Tribunals. If they are sent to the Tribunals, they will be probably sent to the local presidium for six days to be interrogated.&lt;/p&gt;
&lt;p&gt;Send your demands to &lt;a href=&quot;https://twitter.com/R_Micheleti&quot; title=&quot;https://twitter.com/R_Micheleti&quot;&gt;https://twitter.com/R_Micheleti&lt;/a&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;b&gt;[update]&lt;/b&gt; Carlos has been set free! While he is still facing charges for &lt;em&gt;rebellion&lt;/em&gt;, he has been allowed to face them from freedom. He is still subject to investigation and might be jailed again if the de-facto powers so decide, but he is free and well now. Good!&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://gwolf.org/files/1.jpg&quot;&gt;Carlos Bueso&lt;/a&gt;&lt;/td&gt;&lt;td&gt;5.25 KB&lt;/td&gt; &lt;/tr&gt;
 &lt;tr class=&quot;even&quot;&gt;&lt;td&gt;&lt;a href=&quot;http://gwolf.org/files/carlos_bueso.txt&quot;&gt;Original mail (in Spanish)&lt;/a&gt;&lt;/td&gt;&lt;td&gt;4.45 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 13:33:49 +0000</pubDate>

</item> 
<item>
	<title>Peter Eisentraut: 10+5 Things (Not Yet) Rendered Obsolete By My Mobile Phone</title>
	<guid>tag:blogger.com,1999:blog-5541296000399974369.post-4912288582424523089</guid>
	<link>http://petereisentraut.blogspot.com/2009/07/105-things-not-yet-rendered-obsolete-by.html</link>
     <description>  I don&#39;t have an iPhone, but I figured when reading about the &lt;a href=&quot;http://www.ismashphone.com/2009/06/15-apps-rendered-obsolete-by-the-new-iphone-.html&quot;&gt;15 Apps Rendered Obsolete By The New iPhone 3GS&lt;/a&gt; that while my mobile phones have over time obsoleted several gadgets, tools, and other non-phone items, there are still a lot of things they don&#39;t do for me, but conceivably should. At the moment, I have a Nokia E71, which is a pretty good phone. But here are a few things it could do better:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Calendar.&lt;/span&gt; I still carry a separate small pocket calendar for my personal and business appointments. Mostly because I haven&#39;t bothered to figure out how to synchronize the phone calendar with the calendar at the office. And then, I don&#39;t think it&#39;s easily possible to sync my work appointments with the calendar system at work but back up my personal appointments to MyNokia Backup (or is it Ovi now), without sending the somewhat confidential work appointments to Nokia and the somewhat confidential private appointments to the office. I think you can exclude certain events from being synced at all, but not sync certain events only to certain servers. And as a minor point, the phone calendar doesn&#39;t know the local holidays. The calendar issue is obviously a core competency of the mobile phone, so it might just be matter of time before it&#39;s solved. Best guess: End of the year, when I need to decide whether to buy another calendar book.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Notes.&lt;/span&gt; The phone has a Notes application (and an Active Notes application, whatever). But there&#39;s the synchronization issue again; how do I get the notes from the phone into my action and project lists (which I don&#39;t keep on the phone). I do use the phone to take notes on the train and during meetings, say, but then I transfer them manually to a more trusted container.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;GPS receiver.&lt;/span&gt; I keep a separate GPS receiver from Garmin for geocaching. The E71 has a GPS receiver and a maps application, and I do use it for navigation in the car, and I have recently discovered the SportsTracker application. But the simple interface of entering coordinates and having an arrow point there that the Garmin provides does not appear to be available on the phone. I do know that some people go geocaching with only their phones, so this must be possible, but I haven&#39;t had time to figure it out yet. But this gadget might become the next one to go.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Flashlight.&lt;/span&gt; This one ties in with a recent geocaching experience. Many people have tried to use their mobile phone as a light source in a bind and noticed that it doesn&#39;t work so well. Perhaps they could put in a few LEDs and a battery that is two millimeters thicker. That would help a lot.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Laser pointer.&lt;/span&gt; If they can do flashlight, they can surely do laser pointer. Useful for presentations, when you don&#39;t want to carry around an extra gadget.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Bluetooth mouse.&lt;/span&gt; Also for presentations, how about just using the phone as a next-slide clicky thing. This is likely already possible with some custom software on both the phone and the laptop, but it could be easier.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Camera.&lt;/span&gt; I&#39;m not an expert photographer by any means, and I haven&#39;t done any great analysis of the picture quality of the built-in camera, but it just feels better to take a separate digital camera when you actual go out with the purpose of taking pictures.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;USB drive.&lt;/span&gt; Yeah, you can do this with the cable and then taking care to copy things into the right directory on the phone&#39;s memory card or something. Could be easier and clearer, though. And separate from the phone&#39;s internal file system. Putting a full-size USB plug into the phone is probably going to be difficult, but for larger models like the Nokia E90 it could be possible.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Debian.&lt;/span&gt; Nothing like being able to hack up your own operating system and applications as you choose. It&#39;s sad that the Openmoko/FreeRunner initiative has had setbacks. And while Android is an open platform, there is something to be said for having the same operating system on all devices.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Desktop computer.&lt;/span&gt; Yeah right. Most of the &quot;productivity&quot; applications on the phone still suck and are at best stopgaps until you get home to the big screen. More on that in a later post.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;OK, those weren&#39;t 15 things, as with the iPhone. For completeness, how about 5 things that the phone does appear to have replaced permanently:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Address book.&lt;/span&gt; I used to have one, but all the current addresses of relevance are in the phone, backed up to somewhere on the Internet. In fact, I could probably find most people I know either via public mailing list archives or something like Facebook anyway.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Land line phone.&lt;/span&gt; The stationary phones are gone for good. There is now only this one phone, which is the home phone, the work phone (also no more desk phones at the  office), and the VoIP phone. I found this &lt;a href=&quot;http://changelog.complete.org/archives/1079-review-google-voice&quot;&gt;review of Google Voice&lt;/a&gt; an interesting contrast in this context. I only have one phone number anyway. (The VoIP line has a different number, but there you want the separate number to make sure you are using the cost-saving path to call.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Car satnav system.&lt;/span&gt; For the few times I have needed it, the satellite navigation system in the phone has done fine. It&#39;s not quite the same as having one built into the car, in terms of ease of use, GPS reception, and integration with the other audio equipment, but it works. And you can use the same system to also navigate on walks, as opposed to drives, which is a surprisingly useful feature.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;MP3 player.&lt;/span&gt; I have never really listened much to MP3s anyway, and now on the phone I have podcasts, video podcasts, internet and broadcast radio, as well as MP3s, which is much better altogether.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;iPhone.&lt;/span&gt; :-) Don&#39;t have one, don&#39;t want one. I recommend the &lt;a href=&quot;http://events.ccc.de/congress/2008/Fahrplan/events/2976.en.html&quot;&gt;Hacking the iPhone&lt;/a&gt; session from 25C3 (&lt;a href=&quot;http://events.ccc.de/congress/2008/wiki/Conference_Recordings&quot;&gt;video page&lt;/a&gt;) for further enlightenment.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/5541296000399974369-4912288582424523089?l=petereisentraut.blogspot.com&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 12:05:55 +0000</pubDate>
  <author>peter_e@gmx.net (Peter Eisentraut)</author>  
</item> 
<item>
	<title>Biella Coleman: Biella’s Guide to PR: Cafe con Leche</title>
	<guid>http://gabriellacoleman.org/blog/?p=1617</guid>
	<link>http://feedproxy.google.com/~r/Interprete/~3/ySxD3t5qiEg/</link>
     <description>  &lt;div style=&quot;text-align: left; padding: 3px;&quot;&gt;
&lt;a href=&quot;http://www.flickr.com/photos/biella/3612767854/&quot; title=&quot;photo sharing&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3601/3612767854_efab287e9b.jpg&quot; alt=&quot;&quot; style=&quot;border: solid 2px #000000;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 0.8em; margin-top: 0px;&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/biella/3612767854/&quot;&gt;coffee roaster&lt;/a&gt;, originally uploaded by &lt;a href=&quot;http://www.flickr.com/people/biella/&quot;&gt;the biella&lt;/a&gt;.&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;What would life be without coffee? It frightens me to entertain a life without the stuff as it is one my most favorite things in the world. Some nights I am excited to go to bed just so I can wake up and have my cup of joe (I am not one of the Fortunate Ones who can drink coffee at night).&lt;/p&gt;
&lt;p&gt;A few mornings a week I decide I would rather sit at a coffee shop to sip on my morning joe and I am quite lucky in this regard because I live down the street from what I think is the best local coffee shop in the metropolitan area: Hacienda San Pedro, which is also &lt;a href=&quot;http://www.cafehsp.com/ingles/home.asp&quot;&gt;a local plantation&lt;/a&gt;, one of the many you can &lt;a href=&quot;http://www.gotopuertorico.com/puerto-rico-coffee-haciendas.php&quot;&gt;visit for the day&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;They roast their coffee on premises (which they are doing right now) in a very cool old fashioned looking &lt;a href=&quot;http://www.flickr.com/photos/biella/3611952141/&quot;&gt;roaster&lt;/a&gt;, also pictured above, which they seem to do between 7 AM and -8AM when I tend to be here. When you step outside after the roasting you walk through a billowing and light poof of coffee smoke, which is like being blessed by the gods of coffee before starting your day.&lt;/p&gt;
&lt;p&gt;The great thing about the coffee aside from its taste is the price. The cup featured below is around $ 1.60 which beats the 3 dollars you would pay at a Starbucks, which have, in the last 3 years, &lt;a href=&quot;http://www.princeton.edu/~ina/infographics/starbucks.html&quot;&gt;infested and infected the island&lt;/a&gt;. Given that so much coffee is grown here, it is great to see these sorts of places sprout and serve the local stuff. &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/biella/3611953081/&quot; title=&quot;mac with ubuntu and bill! by the biella, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3623/3611953081_2408539309_m.jpg&quot; alt=&quot;mac with ubuntu and bill!&quot; height=&quot;180&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;They have a good selection of baked goods for b-fest, free wireless (yay!), and great music playing, usually something like &lt;a href=&quot;http://www.myspace.com/silviorodriguezhomenaje&quot;&gt;Silivio Rodirguez&lt;/a&gt; or some reggae. After you are done, you can head to the &lt;a href=&quot;http://www.mapr.org/&quot;&gt;museum right down the street&lt;/a&gt;, which not only has a great collection of local and international art, but a great peaceful garden, and one of my favorite &lt;a href=&quot;http://www.flickr.com/photos/biella/3612764790/&quot;&gt;murals&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;The coffee shop is  located at Avenida De Diego #318 (though there is no number out front, but there is a banner). Basically it is between the highway overpass in Condado, which is right next to the &lt;a href=&quot;http://www.mapr.org/&quot;&gt;art museum&lt;/a&gt; and a large avenue called Ponce de Leon, which resides in the heart of Santurce.&lt;/p&gt;
&lt;p&gt;Currently, they are open Mon-Friday from 6:30 to 6, on Sat open from 9 to 3:30 and closed on Sunday.&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Interprete/~4/ySxD3t5qiEg&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 11:51:53 +0000</pubDate>

</item> 
<item>
	<title>Holger Levsen: friendly...</title>
	<guid>http://layer-acht.org/blog/debian/#1-221</guid>
	<link>http://layer-acht.org/blog/debian/#1-221</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/h01ger.png&quot; width=&quot;86&quot; height=&quot;110&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=TBwIRq_hmjg&quot;&gt;How to defeat the KKK with an open mind and laughter&lt;/a&gt;. Hillarious and brilliant.&lt;/p&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 10:53:09 +0000</pubDate>

</item> 
<item>
	<title>Runa Sandvik: Can you really be too paranoid?</title>
	<guid>http://www.indentedlines.net/?p=132</guid>
	<link>http://www.indentedlines.net/2009/07/01/can-you-really-be-too-paranoid/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/runa.png&quot; width=&quot;70&quot; height=&quot;92&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Cory Doctorow’s latest column, “&lt;a href=&quot;http://www.guardian.co.uk/technology/2009/jun/30/data-protection-internet&quot;&gt;When I’m dead, how will my loved ones break my password?&lt;/a&gt;“, gives a few good solutions to the problem of what to do with those encrypted hard-drives and network passwords, should you (or your loved one) pass away. Some people have commented that these solutions might be a tad paranoid. Is there such a thing as being “too paranoid” when it comes to your private data?&lt;/p&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 10:40:12 +0000</pubDate>

</item> 
<item>
	<title>Jon Dowland: Debian Developer</title>
	<guid>http://jmtd.net/log/dd/</guid>
	<link>http://jmtd.net/log/dd/</link>
     <description>  &lt;p&gt;&lt;a href=&quot;http://lists.debian.org/debian-newmaint/2009/06/msg00050.html&quot;&gt;I am now a Debian
Developer&lt;/a&gt;.
Yay! Thank you to everyone who helped and supported me through this process,
which (depending on exactly how you count) took between 3, 4 and 8 years. I
would have given up long ago without the encouragement and well-wishing I have
received along the way.&lt;/p&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 10:18:08 +0000</pubDate>

</item> 
<item>
	<title>MJ Ray: Digital Britain Report: first glance</title>
	<guid>http://www.news.software.coop/digital-britain-report-first-glance/686/</guid>
	<link>http://www.news.software.coop/digital-britain-report-first-glance/686/</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;&lt;a href=&quot;http://www.culture.gov.uk/what_we_do/broadcasting/5631.aspx/&quot;&gt;The Digital Britain Report was published on 16 June 2009&lt;/a&gt;.  I only got time to look at it quickly recently because this is one of the co-op AGM seasons.&lt;/p&gt;
&lt;p&gt;At first glance, it misses the mark.  It doesn’t do anything to unlock Digital Britain and make us a more sharing and social place.  From failing to open the 3G mobile networks to the Phone Co-op and other operators completely (they describe it as already being “highly competitive” - haven’t they visited a South West “notspot”?), through the unnecessary increase in protection for Star Wars’s foreign owners, right down to the continued support for Adobe on the report download site instead of third-sector-produced &lt;a href=&quot;http://pdfreaders.org&quot;&gt;pdfreaders.org&lt;/a&gt;, it looks like the report won’t stop us being “Digital Divide Britain”.&lt;/p&gt;
&lt;p&gt;I also have my suspicions about the effect of the “DAB-only from the end of 2015″ decision on our community radio companies, but I’ve not been active in that sector for years and there’s a further consultation about that.&lt;/p&gt;
&lt;p&gt;Ultimately, “the Government believes piracy of intellectual propert for profit is theft and will be pursued as such through the criminal law” is the killer phrase in this report.  The concept of being allowed to file-share without payment doesn’t even appear in the same section.  I’ve been warning about these “New Enclosure” attempts for years: I didn’t expect the Digital Britain report to be such a leap towards them.&lt;/p&gt;
&lt;p&gt;I think many of these problems could have been avoided if digital production cooperatives had been included in the preparation of this report in any significant way.  I feel it has been captured by the private sector and a few trading funds, to the detriment of the nation.  Shouldn’t we expect better from a Labour and Co-operative government?&lt;/p&gt;
&lt;p&gt;What did you think of the report?  What else am I missing?  Seen any good reviews of it for free software fans or cooperators?&lt;/p&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 07:12:17 +0000</pubDate>

</item> 
<item>
	<title>Enrico Zini: Creating pipelines with subprocess</title>
	<guid>http://www.enricozini.org/2009/debian/python-pipes/</guid>
	<link>http://www.enricozini.org/2009/debian/python-pipes/</link>
     <description>  &lt;h1&gt;Creating pipelines with subprocess&lt;/h1&gt;

&lt;p&gt;It is possible to create process pipelines using &lt;code&gt;subprocess.Popen&lt;/code&gt;, by just
using &lt;code&gt;stdout=subprocess.PIPE&lt;/code&gt; and &lt;code&gt;stdin=otherproc.stdout&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Almost.&lt;/p&gt;

&lt;p&gt;In a pipeline created in this way, the stdout of all processes except the last
is opened twice: once in the script that has run the subprocess and another
time in the standard input of the next process in the pipeline.&lt;/p&gt;

&lt;p&gt;This is a problem because if a process closes its stdin, the previous process
in the pipeline does not get &lt;code&gt;SIGPIPE&lt;/code&gt; when trying to write to its stdout,
because that pipe is still open on the caller process. If this happens, a wait
on that process will hang forever: the child process waits for the parent to
read its stdout, the parent process waits for the child process to exit.&lt;/p&gt;

&lt;p&gt;The trick is to close the stdout of each process in the pipeline except the
last just after creating them:&lt;/p&gt;

&lt;pre class=&quot;hl&quot;&gt;&lt;span class=&quot;hl slc&quot;&gt;#!/usr/bin/python&lt;/span&gt;
&lt;span class=&quot;hl slc&quot;&gt;# coding=utf-8&lt;/span&gt;

&lt;span class=&quot;hl kwa&quot;&gt;import&lt;/span&gt; subprocess

&lt;span class=&quot;hl kwa&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;hl kwd&quot;&gt;pipe&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(*&lt;/span&gt;args&lt;span class=&quot;hl sym&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;hl str&quot;&gt;&#39;&#39;&#39;&lt;/span&gt;
&lt;span class=&quot;hl str&quot;&gt;    Takes as parameters several dicts, each with the same&lt;/span&gt;
&lt;span class=&quot;hl str&quot;&gt;    parameters passed to popen.&lt;/span&gt;
&lt;span class=&quot;hl str&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;hl str&quot;&gt;    Runs the various processes in a pipeline, connecting&lt;/span&gt;
&lt;span class=&quot;hl str&quot;&gt;    the stdout of every process except the last with the&lt;/span&gt;
&lt;span class=&quot;hl str&quot;&gt;    stdin of the next process.&lt;/span&gt;
&lt;span class=&quot;hl str&quot;&gt;    &#39;&#39;&#39;&lt;/span&gt;
    &lt;span class=&quot;hl kwa&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;hl kwb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(&lt;/span&gt;args&lt;span class=&quot;hl sym&quot;&gt;) &amp;lt;&lt;/span&gt; &lt;span class=&quot;hl num&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;hl kwa&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;hl kwc&quot;&gt;ValueError&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;hl str&quot;&gt;&quot;pipe needs at least 2 processes&quot;&lt;/span&gt;
    &lt;span class=&quot;hl slc&quot;&gt;# Set stdout=PIPE in every subprocess except the last&lt;/span&gt;
    &lt;span class=&quot;hl kwa&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;hl kwa&quot;&gt;in&lt;/span&gt; args&lt;span class=&quot;hl sym&quot;&gt;[:-&lt;/span&gt;&lt;span class=&quot;hl num&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;]:&lt;/span&gt;
        i&lt;span class=&quot;hl sym&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;hl str&quot;&gt;&quot;stdout&quot;&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;] =&lt;/span&gt; subprocess&lt;span class=&quot;hl sym&quot;&gt;.&lt;/span&gt;PIPE

    &lt;span class=&quot;hl slc&quot;&gt;# Runs all subprocesses connecting stdins and stdouts to create the&lt;/span&gt;
    &lt;span class=&quot;hl slc&quot;&gt;# pipeline. Closes stdouts to avoid deadlocks.&lt;/span&gt;
    popens &lt;span class=&quot;hl sym&quot;&gt;= [&lt;/span&gt;subprocess&lt;span class=&quot;hl sym&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl kwd&quot;&gt;Popen&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(**&lt;/span&gt;args&lt;span class=&quot;hl sym&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;hl num&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;])]&lt;/span&gt;
    &lt;span class=&quot;hl kwa&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;hl kwa&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;hl kwb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;hl num&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;hl kwb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(&lt;/span&gt;args&lt;span class=&quot;hl sym&quot;&gt;)):&lt;/span&gt;
        args&lt;span class=&quot;hl sym&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;hl sym&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;hl str&quot;&gt;&quot;stdin&quot;&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;] =&lt;/span&gt; popens&lt;span class=&quot;hl sym&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;hl sym&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;hl num&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;].&lt;/span&gt;stdout
        popens&lt;span class=&quot;hl sym&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl kwd&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(&lt;/span&gt;subprocess&lt;span class=&quot;hl sym&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl kwd&quot;&gt;Popen&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(**&lt;/span&gt;args&lt;span class=&quot;hl sym&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;hl sym&quot;&gt;]))&lt;/span&gt;
        popens&lt;span class=&quot;hl sym&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;hl sym&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;hl num&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;].&lt;/span&gt;stdout&lt;span class=&quot;hl sym&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl kwd&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;()&lt;/span&gt;

    &lt;span class=&quot;hl slc&quot;&gt;# Returns the array of subprocesses just created&lt;/span&gt;
    &lt;span class=&quot;hl kwa&quot;&gt;return&lt;/span&gt; popens
&lt;/pre&gt;

&lt;p&gt;At this point, it&#39;s nice to write a function that waits for the whole pipeline
to terminate and returns an array of result codes:&lt;/p&gt;

&lt;pre class=&quot;hl&quot;&gt;&lt;span class=&quot;hl kwa&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;hl kwd&quot;&gt;pipe_wait&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(&lt;/span&gt;popens&lt;span class=&quot;hl sym&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;hl str&quot;&gt;&#39;&#39;&#39;&lt;/span&gt;
&lt;span class=&quot;hl str&quot;&gt;    Given an array of Popen objects returned by the&lt;/span&gt;
&lt;span class=&quot;hl str&quot;&gt;    pipe method, wait for all processes to terminate&lt;/span&gt;
&lt;span class=&quot;hl str&quot;&gt;    and return the array with their return values.&lt;/span&gt;
&lt;span class=&quot;hl str&quot;&gt;    &#39;&#39;&#39;&lt;/span&gt;
    results &lt;span class=&quot;hl sym&quot;&gt;= [&lt;/span&gt;&lt;span class=&quot;hl num&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;] *&lt;/span&gt; &lt;span class=&quot;hl kwb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(&lt;/span&gt;popens&lt;span class=&quot;hl sym&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;hl kwa&quot;&gt;while&lt;/span&gt; popens&lt;span class=&quot;hl sym&quot;&gt;:&lt;/span&gt;
        last &lt;span class=&quot;hl sym&quot;&gt;=&lt;/span&gt; popens&lt;span class=&quot;hl sym&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl kwd&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(-&lt;/span&gt;&lt;span class=&quot;hl num&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;)&lt;/span&gt;
        results&lt;span class=&quot;hl sym&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;hl kwb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(&lt;/span&gt;popens&lt;span class=&quot;hl sym&quot;&gt;)] =&lt;/span&gt; last&lt;span class=&quot;hl sym&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl kwd&quot;&gt;wait&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;hl kwa&quot;&gt;return&lt;/span&gt; results
&lt;/pre&gt;

&lt;p&gt;And, look and behold, we can now easily run a pipeline and get the return codes
of every single process in it:&lt;/p&gt;

&lt;pre class=&quot;hl&quot;&gt;process1 &lt;span class=&quot;hl sym&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;hl kwb&quot;&gt;dict&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(&lt;/span&gt;args&lt;span class=&quot;hl sym&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;hl str&quot;&gt;&#39;sleep 1; grep line2 testfile&#39;&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;,&lt;/span&gt; shell&lt;span class=&quot;hl sym&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;hl kwa&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;)&lt;/span&gt;
process2 &lt;span class=&quot;hl sym&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;hl kwb&quot;&gt;dict&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(&lt;/span&gt;args&lt;span class=&quot;hl sym&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;hl str&quot;&gt;&#39;awk&lt;/span&gt; &lt;span class=&quot;hl esc&quot;&gt;\&#39;&lt;/span&gt;&lt;span class=&quot;hl str&quot;&gt;{print $3}&lt;/span&gt;&lt;span class=&quot;hl esc&quot;&gt;\&#39;&lt;/span&gt;&lt;span class=&quot;hl str&quot;&gt;&#39;&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;,&lt;/span&gt; shell&lt;span class=&quot;hl sym&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;hl kwa&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;)&lt;/span&gt;
process3 &lt;span class=&quot;hl sym&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;hl kwb&quot;&gt;dict&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(&lt;/span&gt;args&lt;span class=&quot;hl sym&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;hl str&quot;&gt;&#39;true&#39;&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;,&lt;/span&gt; shell&lt;span class=&quot;hl sym&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;hl kwa&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;)&lt;/span&gt;
popens &lt;span class=&quot;hl sym&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;hl kwd&quot;&gt;pipe&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(&lt;/span&gt;process1&lt;span class=&quot;hl sym&quot;&gt;,&lt;/span&gt; process2&lt;span class=&quot;hl sym&quot;&gt;,&lt;/span&gt; process3&lt;span class=&quot;hl sym&quot;&gt;)&lt;/span&gt;
result &lt;span class=&quot;hl sym&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;hl kwd&quot;&gt;pipe_wait&lt;/span&gt;&lt;span class=&quot;hl sym&quot;&gt;(&lt;/span&gt;popens&lt;span class=&quot;hl sym&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;hl kwa&quot;&gt;print&lt;/span&gt; result
&lt;/pre&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 07:08:06 +0000</pubDate>

</item> 
<item>
	<title>Raphael Geissert: Account Created</title>
	<guid>http://my.opera.com/atomo64/blog/3924955</guid>
	<link>http://my.opera.com/atomo64/blog/show.dml/3924955</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/raphael.png&quot; width=&quot;74&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  Here I am, more than 19 months later, but am finally a DD :)&lt;br /&gt;&lt;br /&gt;Many thanks to everyone who contributed to my NM process, especially anibal (my advocate), faw (my AM), and myon (fd/dam).&lt;br /&gt;&lt;br /&gt;Timing is perfect, I planned a mass NMU day to fix bashisms :D&lt;br /&gt; </description> 
	<pubDate>Wed, 01 Jul 2009 04:14:02 +0000</pubDate>

</item> 
<item>
	<title>Martin Zobel-Helas: Switched to Movable Type</title>
	<guid>http://blog.zobel.ftbfs.de/2009/07/switched-to-movabletype.html</guid>
	<link>http://blog.zobel.ftbfs.de/2009/07/switched-to-movabletype.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/zobel.png&quot; width=&quot;65&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  After a long period of not-blogging, i decided to relaunch my blog using MovableType. Yes, i know ikiwiki does exist... ;-)&lt;br /&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 23:38:15 +0000</pubDate>

</item> 
<item>
	<title>Josselin Mouette: Introducing dh_devlibs</title>
	<guid>http://np237.livejournal.com/24424.html</guid>
	<link>http://np237.livejournal.com/24424.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/np237.png&quot; width=&quot;103&quot; height=&quot;137&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;Ever noticed how the dependency fields of development library packages are tedious to maintain? They are often:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;out of sync with the build dependencies,&lt;/li&gt;
&lt;li&gt;outdated regarding the actual requirements of pkg-config files,&lt;/li&gt;
&lt;li&gt;and of course incorrect whenever libtool decides to add tons of unneeded dependencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In order to improve the situation a bit, I have written a debhelper script to handle development libraries and generate automatically these dependencies in a &lt;tt&gt;${dev:Depends}&lt;/tt&gt; variable, using the pkg-config information. I have &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=534966&quot;&gt;requested&lt;/a&gt; its inclusion in debhelper, but in the meantime, I’d appreciate if people could test it against various library packages so that its potential bugs can be fixed; this could surely convince Joey to accept it faster.&lt;/p&gt;

&lt;p&gt;Here you go: &lt;tt&gt;&lt;a href=&quot;http://malsain.org/~joss/dh_devlibs&quot;&gt;dh_devlibs&lt;/a&gt;&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;The next step in this direction is to do some automatic validation of build-dependencies. The first approach I thought of requires some &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=528240&quot;&gt;improvements&lt;/a&gt; in pkg-config, but given how this package is &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=476947&quot;&gt;maintained&lt;/a&gt;, I’m afraid it will require some time. There are other possibilities involving diversions, so it is still possible that something good comes out of this.&lt;/p&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 17:19:39 +0000</pubDate>

</item> 
<item>
	<title>Adeodato Simó: Oposiciones, or working for the Spanish administration</title>
	<guid>http://chistera.yi.org/~adeodato/blog/entries/2009/06/30/oposiciones.html</guid>
	<link>http://chistera.yi.org/~adeodato/blog/entries/2009/06/30/oposiciones.html</link>
     <description>  &lt;p&gt;In Spain, in order to work for the public administration, you have to go
through this selection process called &lt;em&gt;Oposiciones&lt;/em&gt;, which are basically
an exam and other tests after which candidates are sorted by their
combined grade, and available positions are handed out to them in that
order. I assume every country has something to the same effect.&lt;/p&gt;

&lt;p&gt;In Spain at least, the position thus obtained is to be held for life,
meaning you cannot be fired unless you incur in extremely unacceptable
behavior (and then, as far as I know, most of the time you just get
barred from work for a number of months, after which you return
normally). Because of this, many a mother advices their children to
prepare for one of these exams, and many people decide to do so
particularly in times like these. The people who occupy such positions
are called &lt;em&gt;funcionarios&lt;/em&gt;, and there’s this même in Spanish society that
they all work very relaxedly, to use an euphemism, particularly those in
offices. (It must be very upsetting to be a diligent funcionario, and be
made the same snide remarks again and again when revealing yourself as
one.)&lt;/p&gt;

&lt;p&gt;I really don’t understand why this is done this way, and can’t possibly
agree to it. Of course, the State above all should behave responsibly
and provide with stable employment, but I can’t see why its employees
shouldn’t be held up to the same standards of quality as the citizens
employed by private companies. Isn’t just «for-life employment» a recipe
for people lowering their standards? If there’s no risk of getting
sacked, isn’t that an invitation —at least for many people— to
performing a sub-par job? (A person I know who’s preparing Oposiciones
to be a teacher in Primary school told me that, in fact, such fact would
give her much freedom to implement more modern teaching methods without
fear of consequences, for they are regarded as very unconventional by
most, but my impression is that she’s the exception rather than the
rule.)&lt;/p&gt;

&lt;p&gt;Speaking of Education, here in Spain there’s a special degree you have
to pursue if you want to be a teacher in Primary school. However, to be
a teacher in Secondary school, any degree will do, as long as you
attended upon completion to a laughable 4-month course on “how to
teach”. Because of this, people with random degrees and no interest in
teaching whatsoever decide every year that Secondary school is their
best bet to a funcionario position, and go for it. Which, I muse,
perhaps plays some kind of role in the state of Education around here —
but that is going into muddy waters, and I rather wouldn’t. (I’m told
that this laughable 4-month course is being morphed into some kind of
1-year Master with exams and grades and shit. Well, I guess that’s
something.)&lt;/p&gt;

&lt;p&gt;Oh, and by the way, greetings to all the diligent funcionarios out
there, including the teachers that live for their teaching and their
students: you rock!&lt;/p&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 16:58:27 +0000</pubDate>

</item> 
<item>
	<title>Julien Blache: Digi AccelePort drivers updated to 1.3-15; now for Lenny</title>
	<guid>http://blog.technologeek.org/?p=223</guid>
	<link>http://blog.technologeek.org/2009/06/30/223</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/jblache.png&quot; width=&quot;65&quot; height=&quot;89&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;This is yet another “beta” release from Digi from a few months ago.&lt;/p&gt;
&lt;p&gt;I had to patch the driver to build with a 2.6.26 kernel, as neither versions of the code would build against that version. Lenny ships with 2.6.26, so that would have meant no dgap drivers on Lenny. I’ve tested the patched driver and haven’t noticed anything obvious while doing so.&lt;/p&gt;
&lt;p&gt;The drivers are now built for Lenny; if you need them on Etch, a simple rebuild from source will do. Previous versions are still available in the pool, under the old/ directory.&lt;/p&gt;
&lt;p&gt;APT source line, now changed:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;deb http://debian.technologeek.org/ lenny non-free&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Feedback at the usual address.&lt;/p&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 16:29:20 +0000</pubDate>

</item> 
<item>
	<title>Alexander Reichle-Schmehl: Dear Richard,</title>
	<guid>http://blog.schmehl.info/Debian/tomboy-mono</guid>
	<link>http://blog.schmehl.info/Debian/tomboy-mono</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;  in answer to your open letter &lt;a href=&quot;http://www.fsf.org/news/dont-depend-on-mono&quot;&gt;&lt;q&gt;Why free software
shouldn&#39;t depend on Mono or C#&lt;/q&gt;&lt;/a&gt; I like to explain a small
misunderstanding that seems to have been spread pretty wide recently.&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Debian has not &lt;q&gt;to include Mono in the default installation, for the
sake of Tomboy&lt;/q&gt;.  The default installation – or to be more
precise: The default GNOME installation (there are installation media which
install an KDE, Xfce or LXDE desktop by default, too) – hasn&#39;t
changed. It still installs a more or less minimal Gnome Desktop without
tomboy and without mono.  As far as I know there haven&#39;t been major changes
in package selection for the GNOME installation media, nor are there major
changes planed.&lt;/p&gt;

&lt;p&gt;What really has changed is that one of our meta packages, which are
mainly used to install a set of packages.  Indeed our meta package to
install everything &lt;a href=&quot;http://packages.debian.org/gnome&quot;&gt;gnome&lt;/a&gt;
related got a dependency on Tomboy and will indeed pull in mono, too.&lt;/p&gt;

&lt;p&gt;That doesn&#39;t have any effect on &lt;q&gt;the default installation&lt;/q&gt; (which
doesn&#39;t use that package) nor does it effect a major part of Debian&#39;s GNOME
users, who prefer to install &lt;a href=&quot;http://packages.debian.org/gnome-desktop-environment&quot;&gt;gnome-desktop&lt;/a&gt;
(a meta package to pull in a simple GNOME Desktop) or even the &lt;a href=&quot;http://packages.debian.org/gnome-core&quot;&gt;gnome-core&lt;/a&gt;
meta-package (which installs the bare necessities to run GNOME
applications).  Please see the numbers at our &lt;a href=&quot;http://qa.debian.org/popcon.php?package=meta-gnome2&quot;&gt;popularity
contest&lt;/a&gt; system for yourself.&lt;/p&gt;

&lt;p&gt;So, Debian didn&#39;t change &lt;q&gt;the default installation&lt;/q&gt; (whatever
that&#39;s supposed to be) but the dependency of a package which is used by a
minority of our users who explicitly wishes to install everything GNOME
related (which is to the best of my knowledge in accordance with upstream
developers who added tomboy to the default GNOME installation, too).&lt;/p&gt;

&lt;p&gt;Yours truly,&lt;br /&gt;
Alexander Reichle-Schmehl&lt;br /&gt;
Debian Developer and Spokesperson&lt;/p&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 12:57:34 +0000</pubDate>
  <author>alexander@schmehl.info (Alexander Reichle-Schmehl)</author>  
</item> 
<item>
	<title>Biella Coleman: Academic Publishing</title>
	<guid>http://gabriellacoleman.org/blog/?p=1613</guid>
	<link>http://feedproxy.google.com/~r/Interprete/~3/4l8ES-ClyFc/</link>
     <description>  &lt;p&gt;Last spring I secured a Creative Commons license for my book, which is under contract with Princeton University Press. It was was a huge relief for me as I want to publish with PUP but knew there was a serious contradiction if I published a book on Free Software under a copyright license (sort of like printing a Hindu prayer book on leather…).&lt;/p&gt;
&lt;p&gt;This article in the chronicle &lt;a href=&quot;http://chronicle.com/free/v55/i40/40oxford_google.htm&quot;&gt;Saving Texts From Oblivion&lt;/a&gt;, which opens with a fascinating though unsurprising finding, points to other reasons why an open license is a sensible thing to do, that is, if you want students to read your book:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
At a focus group in Oxford University Press’s offices in New York last month, we heard that in a recent essay assignment for a Columbia University classics class, 70 percent of the undergraduates had cited a book published in 1900, even though it had not been on any reading list and had long been overlooked in the world of classics scholarship. Why so many of the students had suddenly discovered a 109-year-old work and dragged it out of obscurity in preference to the excellent modern works on their reading lists is simple: The full text of the 1900 work is online, available on Google Book Search; the modern works are not.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The article, written by Oxford’s editor, has an interesting set arguments about why to support the Google book settlement. It does not, however, really address the question of book piracy, which if anyone has taken a minute to explore, will notice that it is a booming underground economy and the quality of the books is utterly fantastic.&lt;/p&gt;
&lt;p&gt;Given these conditions: what will the academic publishers do? No one, at least in academia, wants them to go under and yet conditions have made it difficult for them to survive. I do hope that some interesting solutions, with the financial aid of university support (after all, many &lt;a href=&quot;http://www.news.ku.edu/2009/june/26/openaccess.shtml&quot;&gt;are calling for open access&lt;/a&gt;) are hacked up. &lt;/p&gt;
&lt;p&gt;Calling for tighter copyright controls as this &lt;a href=&quot;http://www.techcrunch.com/2009/06/28/how-to-save-the-newspapers-vol-xii-outlaw-linking/&quot;&gt;famous judge has done in the case of newspapers&lt;/a&gt; is not the path that I hope anyone entertains. In fact, releasing books after a year or two under a CC license might be one path to take, along with providing affordable e-books so that those who do want to support authors and books buy them instead of hitting the pirate stands.&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/Interprete/~4/4l8ES-ClyFc&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 12:56:58 +0000</pubDate>

</item> 
<item>
	<title>Francois Marier: Writing the perfect patch</title>
	<guid>tag:blogger.com,1999:blog-7615241590176793465.post-7731510958448121124</guid>
	<link>http://feeding.cloud.geek.nz/2009/06/writing-perfect-patch.html</link>
     <description>  Other people &lt;a href=&quot;http://userweb.kernel.org/%7Eakpm/stuff/tpp.txt&quot;&gt;have written&lt;/a&gt; and &lt;a href=&quot;http://cs.anu.edu.au/students/comp8440/lectures.php&quot;&gt;talked (in Lecture 3)&lt;/a&gt; about writing the perfect patch for a Free Software project. The goal there is to &lt;b&gt;increase the likelihood that a patch will be accepted&lt;/b&gt; by the project developers.&lt;br /&gt;&lt;br /&gt;Integrating and testing patches takes time and so reducing that burden is essential when interacting with busy maintainers. Especially if they&#39;re volunteers.&lt;br /&gt;&lt;br /&gt;Here&#39;s what I try to keep in mind when preparing a patch.&lt;br /&gt;&lt;h2&gt;Use the right options to &lt;tt&gt;diff&lt;/tt&gt;&lt;/h2&gt;These two options should always be part of your call to the &lt;tt&gt;diff&lt;/tt&gt; command:&lt;ul&gt;&lt;li&gt;&lt;b&gt;-u&lt;/b&gt;: use the most common patch format, unidiff.&lt;/li&gt; &lt;li&gt;&lt;b&gt;-p&lt;/b&gt;: include the name of the function that&#39;s being changed.&lt;/li&gt;&lt;/ul&gt;and this one can be useful if the output seems unnecessarily large:&lt;ul&gt;&lt;li&gt;&lt;b&gt;-d&lt;/b&gt;: try hard to find a smaller set of changes.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Minimize the number of changes&lt;/h2&gt;You need to draw attention to the changes that you&#39;re proposing and remove all other potential distractions:&lt;ul&gt;&lt;li&gt;&lt;b&gt;Follow the coding style of the original file.&lt;/b&gt; Your changes must fully blend in or they are likely to be rejected.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Do not re-indent existing code.&lt;/b&gt; This will make it look like you modified every line.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Pay attention to whitespace changes.&lt;/b&gt; In particular: end-of-line characters, trailing spaces and tab-versus-space differences. Use the &lt;tt&gt;dos2unix&lt;/tt&gt; or &lt;tt&gt;unix2dos&lt;/tt&gt; commands if you need to.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Gratuitous refactoring of existing code.&lt;/b&gt; Unless the refactoring makes your change smaller or easier to understand, keep it for another patch.&lt;/li&gt;&lt;/ul&gt;Of course all of the above would be acceptable patches &lt;b&gt;on their own&lt;/b&gt;, just not combined with other types of changes.&lt;br /&gt;&lt;h2&gt;Only one logical change at a time&lt;/h2&gt;Patches often need to be broken up into a series of logical changes to avoid these two extremes:&lt;ul&gt;&lt;li&gt;the &lt;b&gt;gigantic patch&lt;/b&gt; which adds a number of features and fixes a couple of bugs but scares everybody&lt;/li&gt;&lt;li&gt;a &lt;b&gt;series of interdependent patches&lt;/b&gt; which all relate to the same change and must all be applied together&lt;/li&gt;&lt;/ul&gt;It&#39;s a bit of a balancing act, but a good rule of thumb is:&lt;ul&gt;&lt;li&gt;to have &lt;b&gt;one patch per feature or bug&lt;/b&gt; and&lt;/li&gt;&lt;li&gt;to try to find the smallest (yet meaningful) change which can be applied on its own.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;It&#39;s not just about the patch&lt;/h2&gt;Your patch can be really good, but the email (or the bug tracker update) announcing it should also contain:&lt;ul&gt;&lt;li&gt;a good &lt;b&gt;description&lt;/b&gt; of the problem it solves and how it solves it&lt;/li&gt;&lt;li&gt;the output of &lt;b&gt;&lt;tt&gt;diffstat&lt;/tt&gt;&lt;/b&gt; to give an idea of the size of the change&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/7615241590176793465-7731510958448121124?l=feeding.cloud.geek.nz&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 12:10:54 +0000</pubDate>
  <author>fmarier@gmail.com (François)</author>  
</item> 
<item>
	<title>Jeff Bailey: Google Montreal</title>
	<guid>http://jbailey.livejournal.com/71446.html</guid>
	<link>http://jbailey.livejournal.com/71446.html</link>
     <description>  Heya!  I&#39;ve had people occasionally ask me what the Google office in Montreal is like.  Usually pictures aren&#39;t allowed in Google offices, so it&#39;s nice to have a whole bunch in the Gazette:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://communities.canada.com/montrealgazette/blogs/tech/archive/2009/06/26/a-visit-to-google-s-montreal-office.aspx&quot;&gt;http://communities.canada.com/montrealgazette/blogs/tech/archive/2009/06/26/a-visit-to-google-s-montreal-office.aspx&lt;/a&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 11:18:38 +0000</pubDate>

</item> 
<item>
	<title>Florian Maier: Distributing virtually boxed applications</title>
	<guid>http://www.marsmenschen.com/754 at http://www.marsmenschen.com</guid>
	<link>http://www.marsmenschen.com/content/distributing-virtually-boxed-applications</link>
     <description>  &lt;div style=&quot;width: 100px;&quot; class=&quot;image-attach-teaser&quot;&gt;&lt;a href=&quot;http://www.marsmenschen.com/content/distributing-virtually-boxed-applications&quot;&gt;&lt;img src=&quot;http://www.marsmenschen.com/sites/default/files/images/virtualbox.thumbnail.png&quot; title=&quot;virtualbox logo&quot; height=&quot;100&quot; width=&quot;100&quot; alt=&quot;virtualbox logo&quot; class=&quot;image image-thumbnail &quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Our &lt;a href=&quot;http://www.debconf.org/&quot;&gt;DebConf&lt;/a&gt; BoF titled &quot;&lt;a href=&quot;https://penta.debconf.org/penta/schedule/dc9/event/476.en.html&quot;&gt;Distributing virtually boxed applications&lt;/a&gt;&quot; has been &lt;a href=&quot;https://penta.debconf.org/penta/schedule/dc9/event/476.en.html&quot;&gt;scheduled&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;We&#39;ll present a system to distribute &lt;a href=&quot;http://www.virtualbox.org/&quot;&gt;virtualbox&lt;/a&gt; images. The system images are shared by all&lt;br /&gt;
users, immutable and updateable, and a small persistent virtual disk for the data is generated on the fly.&lt;/p&gt;
&lt;p&gt;The BoF introduces this solution to anyone interested in getting from &lt;strong&gt;.vdi&lt;/strong&gt; to &lt;strong&gt;.deb&lt;/strong&gt; and invites you to join a&lt;br /&gt;
discussion about the pros and cons of this approach.&lt;/p&gt;
&lt;p&gt;Feel free to ping me with any questions.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.marsmenschen.com/content/distributing-virtually-boxed-applications&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 10:20:43 +0000</pubDate>

</item> 
<item>
	<title>Fabio Tranchitella: Mobile internet in France and Spain?</title>
	<guid>http://kobold.it/blog/2009/06/mobile-internet-in-france-and.html</guid>
	<link>http://kobold.it/blog/2009/06/mobile-internet-in-france-and.html</link>
     <description>  Dear Lazyweb,&lt;br /&gt;&lt;br /&gt;I&#39;m starting my trip to attend the Debconf. I wonder if there is an internet provider in France and Spain which can provide me a pre-paid mobile internet subscription (all in all, I only need one month) at a reasonable price.&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 08:37:18 +0000</pubDate>

</item> 
<item>
	<title>Russ Allbery: New desktop</title>
	<guid>http://www.eyrie.org/~eagle/journal/2009-06/014.html</guid>
	<link>http://www.eyrie.org/~eagle/journal/2009-06/014.html</link>
     <description>  &lt;p&gt;
Saturday, I finally built the new desktop system for work, which I also
use as my primary home directory and mail server and a build system for
Debian packages and other software.  Today, I switched over to the new
system.  It&#39;s pretty and much faster, and also has the advantage of being
built within the last five years, so I don&#39;t have to worry as much about
the hard drive dying.
&lt;/p&gt;

&lt;p&gt;
The new system is an HP Firebird 802, bought straight off their web site.
The drawback from a Debian perspective is that it uses nVidia motherboard
video (nForce 760i SLI), but it&#39;s supported by the non-free Linux drivers
(despite being missing from the README).  I&#39;d prefer ATI or Intel video
with free drivers, but not enough to veto the system for it.  Otherwise,
it&#39;s water-cooled, very quiet, and has a four-core Intel processor, 4GB of
memory, and two 250GB hard drives.
&lt;/p&gt;

&lt;p&gt;
I &lt;a href=&quot;http://www.eyrie.org/~eagle/notes/debian/firebird.html&quot;&gt;kept notes on the build and
configuration&lt;/a&gt; in case they prove helpful for anyone else.
&lt;/p&gt;

&lt;p&gt;
This is the first time I&#39;ve built a system with LVM, and I even did an
online resize of the root logical volume since the installer used an
extremely small 7GB default size and I couldn&#39;t figure out the easy way to
increase it in the installer.  I like the flexibility of allocating space
as I need it into separate logical volumes.
&lt;/p&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 04:49:00 +0000</pubDate>

</item> 
<item>
	<title>Gunnar Wolf: My strongest rejection to the de-facto government in Honduras</title>
	<guid>http://gwolf.org/2288 at http://gwolf.org</guid>
	<link>http://gwolf.org/blog/my-strongest-rejection-th-de-facto-government-honduras</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/gwolf.png&quot; width=&quot;54&quot; height=&quot;97&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;I will here translate the text of a petition a friend is starting, which will be delivered to the Hondurean embassy in Mexico. &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.petitiononline.com/romluelt/petition.html&quot;&gt;Original text in Spanish&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the early hours of Sunday, June 28 2009, the legal Hondurean president Manuel Zelaya was forcibly removed from his position. A coup de etat, perpetrated by the Hondurean army, air force and navy, and with the consent of the Supreme Court. In his place, they imposed Roberto Micheleti, until then the Senate president, a conservative politician (although he is formally part of the Liberal party).&lt;/p&gt;
&lt;p&gt;The coup took place because many areas of the government oppose the presidential initiative to start a referendum geared towards starting a Constitutive Congress, among whose ideas were to implement reforms allowing for the immediate presidential reelection for a second term.&lt;/p&gt;
&lt;p&gt;Forcibly ousting a democratically elected government is nothing other than anti-democratic. The coup has made the world&#39;s eyes to be set on Honduras, unanimously condemning this incident in a strong and immediate way. The people has been left blind and deaf; the communication media -both traditional and Internet-based- has been blocked. Not only freedom of press and freedom of speech have been blocked. People are crying for the reestablishment of the legally elected government. There is a national strike, the unions have protested massively. This coup has been received by a generalized popular rejection; as the only answer to the protestors, Micheletti has set a curfew, and the army is dissolving the demonstrations with tear gas and long weapons; in some hours we might see them using heavy vehicles against the civilians.&lt;/p&gt;
&lt;p&gt;Latin American brothers, we must condemn, if at least symbolically, our rejection to the imposed Honduras government, our rejection to the human rights and individual warranties obstruction.&lt;/p&gt;
&lt;p&gt;This humble text was written to collect digital signatures from all those who oppose the violence that this Central American country is suffering. Those that passively just want to express the collective feeling, those that feel a social, civil and human empathy towards what is happening beyond our territorial borders.&lt;/p&gt;
&lt;p&gt;Every symbolic act, such as this one, does not weigh much by itself. But by making ourselves present by thousands, through different callings, we can generate enough pressure to incede in those sad actions.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.petitiononline.com/romluelt/petition.html&quot;&gt;Sign the petition&lt;/a&gt;&lt;/p&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 02:39:47 +0000</pubDate>

</item> 
<item>
	<title>Mart&amp;iacute;n Ferrari: Community service</title>
	<guid>http://beta.howtorecognise.mine.nu/blog/Community_service.html</guid>
	<link>http://beta.howtorecognise.mine.nu/blog/Community_service.html</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/tincho.png&quot; width=&quot;100&quot; height=&quot;100&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;While playing with different ways to bypass the stupid firewall that I have
at my current home, I found that the Google servers for XMPP/Jabber/Gtalk
accept connections on port 443. So, next time you cannot connect with the
standard 5222 port, you know what to try.&lt;/p&gt;

                &lt;p&gt;Tags: Planet Lugfi, Planet Debian&lt;/p&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 02:22:09 +0000</pubDate>
  <author>Martin.Ferrari@gmail.com (Martín Ferrari)</author>  
</item> 
<item>
	<title>Kenshi Muto: Oh my...</title>
	<guid>http://kmuto.jp/b.cgi/debian/my-mistake-plan-debconf9.htm</guid>
	<link>http://kmuto.jp/b.cgi/debian/my-mistake-plan-debconf9.htm</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/kmuto.png&quot; width=&quot;68&quot; height=&quot;101&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;p&gt;
Yesterday &lt;a href=&quot;https://penta.debconf.org/dc9_schedule/index.en.html&quot;&gt;Debconf provisional schedule&lt;/a&gt; was announced. Thanks Debconf team for your hard work!
&lt;/p&gt;&lt;p&gt;
But I understood I couldn&#39;t attend some interesting sessions and keysign party due to my schedule... I have to leave Caceres on 29 July afternoon. I made a big mistake about my travel plan.
&lt;/p&gt;&lt;p&gt;
OK, so I&#39;ll try to exchange keysign personally during the conference and watch the talks later when Debconf video team create them.
&lt;/p&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 01:34:00 +0000</pubDate>

</item> 
<item>
	<title>Jonathan Yu: How You Define Yourself</title>
	<guid>http://jawnsy.wordpress.com/?p=157</guid>
	<link>http://jawnsy.wordpress.com/2009/06/29/how-you-define-yourself/</link>
     <description>  &lt;img src=&quot;http://planet.debian.org/heads/jawnsy.png&quot; width=&quot;75&quot; height=&quot;85&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;  &lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Recently there was a thread on the Google Summer of Code students’ list discussing gender dynamics in open source, but more broadly, interactions between those of different genders (mainly the discussion was simplified to be a discussion of sexes, which I think demonstrates the lack of understanding of the difference between gender and sex. But I suppose that’s a blog post for another day).&lt;/p&gt;
&lt;p&gt;It was noted that many of the women on the list have blog addresses and other details that quickly self-identify the authors as female. There was discussion about whether this is a good thing or not, and the possible reasons behind it.&lt;/p&gt;
&lt;p&gt;Here is what I wrote:&lt;/p&gt;
&lt;p&gt;I think what you mention about yourself shows the world what you think about yourself, and what you consider yourself.&lt;/p&gt;
&lt;p&gt;If first and foremost you associate your identity with being female (or male) or straight (or not)… then I guess that’s your prerogative.&lt;/p&gt;
&lt;p&gt;But I, for one, am not /just/ an Asian male. I’m not just a Computer Science student. I’m not just a coder. I’m not just an Engineering student. I’m not just 20-years old. I’m not just a blogger. I’m not just an Open Source contributor. I’m not just an advocate of strange and often unpopular ideas.&lt;/p&gt;
&lt;p&gt;I am a human being, with many dimensions. And I don’t try to simplify it by putting myself in a box and categorizing myself as anything.&lt;/p&gt;
&lt;p&gt;I think that the key is just to understand everyone for who they are, and part of that is being somewhat ambiguous. As Leslie [Hawthorne] somewhat alluded to, it’s about managing people’s preconceptions about you.&lt;/p&gt;
&lt;p&gt;I do not actively try to hide that I am male, or that I am Asian (you might guess that from my last name). There are all sorts of preconceptions people might have about things, and there are lots of -isms we should seek to avoid. (I’m Asian – maybe that means I’m a bad driver, and that I can’t pronounce Rs. I’m male – maybe I’m violent. I’m in Computer Science, presumably that means I play Dungeons &amp;amp; Dragons with my classmates on the weekends. I’m in Engineering, maybe that means I’m sexist.)&lt;/p&gt;
&lt;p&gt;The reality is: none of these things should matter, nor should they define you.&lt;/p&gt;
&lt;p&gt;Just be yourself. You show to the world what you consider relevant about yourself.&lt;/p&gt;
&lt;p&gt;And for what it’s worth, I found out the other day that someone I respect and admire in the open source community is a teenager. Somewhere around 15 years old. It’s impressive, really. I look up to him, because he’s a really smart guy. But that wasn’t something he brought up right away; his nickname wasn’t “smartdude15″ or anything&lt;br /&gt;
like that. That’s the magic of open source, and the Internet — I judged him purely on his knowledge. And once I did find out, I thought to myself… Wow, would I have thought the same thing of him if I knew his age right away? Would I have even given him a chance, or would I just dismiss everything he said as something an immature teenager might say?&lt;/p&gt;
&lt;p&gt;I think along with sexism there are tons of other issues to worry about, like racism (consider how difficult it is in some cultures, and even in Western culture, to be really accepted if you are gay, lesbian, transgender, bisexual, two-spirited, asexual, intersex…) In fact, being gay was considered a disease until relatively recently.&lt;/p&gt;
&lt;p&gt;I’m glad for all the progress women have made in the past several decades. Not everyone has reached a point where they are accepted in mainstream society, and not everyone feels comfortable announcing certain details about themselves.&lt;/p&gt;
&lt;p&gt;If *all* you are is a woman in a male-dominated world, then I feel sorry for you. I truly, truly do. Because none of the women I respect and admire are that. They are, first, talented Engineers, Scientists and Programmers, who are only incidentally female. Being female isn’t something that really identifies them any more than the colour of their skin, hair or eyes. No, no, they are talented, and that is, in the end, all I care about, and that is one reason I am grateful for Open Source — because you oftentimes don’t meet the people you are working with all the time in real life, so you cannot judge them on anything other than their ability.&lt;/p&gt;
Posted in Computer Science, Engineering, Peer Relationships, Relationships Tagged: Community Dynamics, Equity, Gender Discrimination, Google Summer of Code &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/jawnsy.wordpress.com/157/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/jawnsy.wordpress.com/157/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/jawnsy.wordpress.com/157/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/jawnsy.wordpress.com/157/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/jawnsy.wordpress.com/157/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/jawnsy.wordpress.com/157/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/jawnsy.wordpress.com/157/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/jawnsy.wordpress.com/157/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/jawnsy.wordpress.com/157/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/jawnsy.wordpress.com/157/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=jawnsy.wordpress.com&amp;amp;blog=5968506&amp;amp;post=157&amp;amp;subd=jawnsy&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt; </description> 
	<pubDate>Tue, 30 Jun 2009 00:05:53 +0000</pubDate>

</item> 
<item>
	<title>Anand Kumria: My last five girlfriends …</title>
	<guid>http://www.progsoc.org/~wildfire/aum/2009/06/30#filmfest</guid>
	<link>http://www.progsoc.org/~wildfire/aum/2009/06/30#filmfest</link>
     <description>  &lt;p&gt;
Going to see films has been, for me, usually a solitary exercise.
&lt;/p&gt;
&lt;p&gt;
Either no one was interested in seeing what I wanted to, my tastes are somewhat elceltic. Or they wanted to see that right at the beginning or right at the end.
&lt;/p&gt;
&lt;p&gt;
Fortunately there are &lt;a href=&quot;http://en.wikipedia.org/wiki/Film_festival&quot;&gt;film festivals&lt;/a&gt; where other people with eclectic tastes gather. And even more fortuitously there is one in Edinburgh.
&lt;/p&gt;
&lt;div id=&quot;hreview-my-last-5-girlfriends&quot; class=&quot;hreview description&quot;&gt;
&lt;p&gt;
Whilst I would have loved to see some films during working hours -- that was not to be. Instead I saw &lt;a href=&quot;http://www.imdb.com/title/tt1050002/&quot; class=&quot;item fn url&quot;&gt;My Last 5 Girlfriends&lt;/a&gt;. It stars &lt;a href=&quot;http://www.imdb.com/name/nm1981245/&quot;&gt;Brendan Patricks&lt;/a&gt; and, judging by the swooning going on in the audience, he is likely to be the Hugh Grant of his time. The story is a cross between &lt;a href=&quot;http://www.imdb.com/title/tt0338013/&quot;&gt;Eternal Sunshine of the Spotless Mind&lt;/a&gt; and &lt;a href=&quot;http://www.imdb.com/title/tt0120601/&quot;&gt;Being John Malkovich&lt;/a&gt; in style.
&lt;/p&gt;
&lt;p&gt;
Most of the girlfriend scenes are what you expect them to be: alternatively predictable, funny and often cringe-worthy. That is not because the script is bad, actually it is the opposite. It is due to the fact that everyone has gone through this exact set of problems and issues with girlfriends. If you get the chance, well worth seeing. &lt;abbr class=&quot;rating&quot; title=&quot;4&quot;&gt;★★★★☆&lt;/abbr&gt;&lt;span style=&quot;display: none;&quot; class=&quot;version&quot;&gt;0.3&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&quot;hreview-van-diemans-land&quot; class=