<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
      <title>Benjamin Schweizer. Technology, Art and Culture.</title>
      <description>combined news feed for benjamin-schweizer.de/ and related sites.</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=Uok7Jed73BGohcv8dbq02Q</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=Uok7Jed73BGohcv8dbq02Q&amp;_render=rss&amp;page=2"/>
      <pubDate>Sat, 04 Feb 2012 21:12:49 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>Facebook-Syndizierungsfehler</title>
         <link>http://www.facebook.com/feeds/syndication_error.php#aae30a65c640c9173016f7a8f66df57a_</link>
         <description>Die Feed-URL ist nicht mehr gültig. Besuchen Sie diese Website um die neue URL zu finden, wenn Sie Zugriff haben: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.facebook.com/minifeed.php?status&amp;amp;id=813072776&quot;&gt;http://www.facebook.com/minifeed.php?status&amp;amp;id=813072776&lt;/a&gt;</description>
         <author>Facebook.com</author>
         <guid isPermaLink="false">http://www.facebook.com/feeds/syndication_error.php#aae30a65c640c9173016f7a8f66df57a_</guid>
         <pubDate>Sat, 04 Feb 2012 21:12:49 +0000</pubDate>
      </item>
      <item>
         <title>gopher__: #Fedora 16 brings latest #KVM virtualization, but it's all broken. https://t.co/8lg7oiWj http://t.co/UhErKxQx</title>
         <link>http://twitter.com/gopher__/statuses/163560997389484032</link>
         <description>gopher__: #Fedora 16 brings latest #KVM virtualization, but it's all broken. https://t.co/8lg7oiWj http://t.co/UhErKxQx</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/163560997389484032</guid>
         <pubDate>Sun, 29 Jan 2012 09:55:55 +0000</pubDate>
      </item>
      <item>
         <title>gopher__: Every 2nd Tuesday: Join us at http://t.co/kmDzODzT #ccc #heilbronn</title>
         <link>http://twitter.com/gopher__/statuses/161582054339903488</link>
         <description>gopher__: Every 2nd Tuesday: Join us at http://t.co/kmDzODzT #ccc #heilbronn</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/161582054339903488</guid>
         <pubDate>Mon, 23 Jan 2012 22:52:18 +0000</pubDate>
      </item>
      <item>
         <title>gopher__: RT @GGS_Heilbronn: Kommunikativer Jahresauftakt des Alumnivereins am 04.02.12! http://t.co/zcSTnj5Y</title>
         <link>http://twitter.com/gopher__/statuses/161580064385929216</link>
         <description>gopher__: RT @GGS_Heilbronn: Kommunikativer Jahresauftakt des Alumnivereins am 04.02.12! http://t.co/zcSTnj5Y</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/161580064385929216</guid>
         <pubDate>Mon, 23 Jan 2012 22:44:24 +0000</pubDate>
      </item>
      <item>
         <title>gopher pushed to master at gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/compare/51ca30c4c2...7e7978fe74</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to master at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  January 22, 2012 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;7e7978f&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;update magickwand4 bindings for 4.0.1&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1513424515</guid>
         <pubDate>Sun, 22 Jan 2012 13:29:02 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to master at gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/compare/34225c27a8...51ca30c4c2</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to master at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  January 22, 2012 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;51ca30c&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;updated docs&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1513423173</guid>
         <pubDate>Sun, 22 Jan 2012 13:11:12 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to master at gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/compare/6fd842351a...34225c27a8</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to master at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  January 22, 2012 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;34225c2&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;Merge pull request #1 from toofishes/lib5&lt;br&gt;
&lt;br&gt;
Add support for libMagickWand.so.5&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;toofishes&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;e7596af&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;Remove libc cruft from MagicWandv5 API&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;toofishes&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;74494ff&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;Add support for MagickWand v5&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      &lt;li class=&quot;more&quot;&gt;&lt;a rel=&quot;nofollow&quot;&gt;1 more commits &amp;raquo;&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1513420003</guid>
         <pubDate>Sun, 22 Jan 2012 12:29:49 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher merged pull request 1 on gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/pull/1</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;merged&lt;/span&gt; &lt;a rel=&quot;nofollow&quot;&gt;pull request 1&lt;/a&gt; on &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  January 22, 2012 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;
    &lt;blockquote&gt;Add support for libMagickWand.so.5&lt;/blockquote&gt;
    3 commits with 
    22,015 additions and 
    0 deletions
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PullRequestEvent/1513420001</guid>
         <pubDate>Sun, 22 Jan 2012 12:29:49 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher commented on pull request 1 on gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/pull/1#issuecomment-3444745</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt;
  &lt;span&gt;commented&lt;/span&gt; on
  &lt;a rel=&quot;nofollow&quot;&gt;pull request 1&lt;/a&gt; on &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  January 11, 2012 
&lt;/div&gt;

&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;
    &lt;blockquote title=&quot;Hello,

thanks for the patch, I'll check it on the weekend.


regards,

On Tue, Jan 10, 2012 at 7:02 PM, Dan McGee &amp;lt;
reply@reply.github.com
&amp;gt; wrote:

&amp;gt; As subject. Let me know if there are any questions, but seems to be
&amp;gt; working OK here. I also cleaned out some of the generated cruft, which I
&amp;gt; noticed is present in the v3 and v4 APIs, but unfortunately it was a pretty
&amp;gt; manual process.
&amp;gt;
&amp;gt; You can merge this Pull Request by running:
&amp;gt;
&amp;gt;  git pull https://github.com/toofishes/python-magickwand lib5
&amp;gt;
&amp;gt; Or you can view, comment on it, or merge it online at:
&amp;gt;
&amp;gt;  https://github.com/gopher/python-magickwand/pull/1
&amp;gt;
&amp;gt; -- Commit Summary --
&amp;gt;
&amp;gt; * Temporary support for library version 5
&amp;gt; * Add support for MagickWand v5
&amp;gt; * Remove libc cruft from MagicWandv5 API
&amp;gt;
&amp;gt; -- File Changes --
&amp;gt;
&amp;gt; M magickwand/__init__.py (3)
&amp;gt; A magickwand/magickwand5.py (8327)
&amp;gt; A tools/magickwand5.xml (13685)
&amp;gt;
&amp;gt; -- Patch Links --
&amp;gt;
&amp;gt;  https://github.com/gopher/python-magickwand/pull/1.patch
&amp;gt;  https://github.com/gopher/python-magickwand/pull/1.diff
&amp;gt;
&amp;gt; ---
&amp;gt; Reply to this email directly or view it on GitHub:
&amp;gt; https://github.com/gopher/python-magickwand/pull/1
&amp;gt;



-- 
http://benjamin-schweizer.de/contact&quot;&gt;
      &lt;p&gt;Hello, thanks for the patch, I'll check it on the weekend. regards, On Tue, Jan 10, 2012 at 7:02 PM, Dan McGee &amp;lt;
reply@reply.github.com
&lt;/p&gt;
    &lt;/blockquote&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:IssueCommentEvent/1510671757</guid>
         <pubDate>Wed, 11 Jan 2012 10:43:22 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher started following nitram509</title>
         <link>https://github.com/gopher</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;started following&lt;/span&gt; &lt;a rel=&quot;nofollow&quot;&gt;nitram509&lt;/a&gt;
  January 10, 2012 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;
    nitram509 has
    1
    public repo
    and 1 follower
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:FollowEvent/1510548732</guid>
         <pubDate>Tue, 10 Jan 2012 22:14:10 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher commented on issue 7 on altercation/solarized</title>
         <link>https://github.com/altercation/solarized/issues/7#issuecomment-3241595</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt;
  &lt;span&gt;commented&lt;/span&gt; on
  &lt;a rel=&quot;nofollow&quot;&gt;issue 7&lt;/a&gt; on &lt;a rel=&quot;nofollow&quot;&gt;altercation/solarized&lt;/a&gt;
  December 21, 2011 
&lt;/div&gt;

&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;
    &lt;blockquote title=&quot;I've created a patch for tmux which allows color mapping at terminal layer. It works for me and solved exactly this screen issue. May be somebody wants to add the solarized scheme, too?
http://benjamin-schweizer.de/colorful-terminals-theme-support-for-tmux.html&quot;&gt;
      &lt;p&gt;I've created a patch for tmux which allows color mapping at terminal layer. It works for me and solved exactly this screen issue. May be somebody w…&lt;/p&gt;
    &lt;/blockquote&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:IssueCommentEvent/1507043664</guid>
         <pubDate>Wed, 21 Dec 2011 23:59:28 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher__: I've created a #tmux patch that enables color mapping and theming; see http://t.co/eNOSNrwK #terminal #asciiart</title>
         <link>http://twitter.com/gopher__/statuses/149637627832832001</link>
         <description>gopher__: I've created a #tmux patch that enables color mapping and theming; see http://t.co/eNOSNrwK #terminal #asciiart</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/149637627832832001</guid>
         <pubDate>Wed, 21 Dec 2011 23:49:25 +0000</pubDate>
      </item>
      <item>
         <title>Colorful Terminals: Theme Support for Tmux</title>
         <link>http://benjamin-schweizer.de/colorful-terminals-theme-support-for-tmux.html</link>
         <description>Most modern terminals have 88/256 color support, but only few applications take advantage of this. Popular software like Irssi, Mignight Commander or Aptitude are still using 16 color mode. To overcome this, I&amp;#8217;ve created a patch for tmux (a screen-like terminal multiplexer). This patch adds a new &amp;#8220;map-color&amp;#8221; command, which can be used to translate [...]</description>
         <guid isPermaLink="false">http://benjamin-schweizer.de/?p=478</guid>
         <pubDate>Wed, 21 Dec 2011 23:39:50 +0000</pubDate>
         <content:encoded><![CDATA[<p>Most modern terminals have 88/256 color support, but only few applications take advantage of this. Popular software like Irssi, Mignight Commander or Aptitude are still using 16 color mode.</p>
<p>To overcome this, I&#8217;ve created a patch for <a rel="nofollow" target="_blank" href="http://tmux.sourceforge.net/">tmux</a> (a screen-like terminal multiplexer). <a rel="nofollow" target="_blank" href="http://benjamin-schweizer.de/files/tmux/">This patch</a> adds a new &#8220;map-color&#8221; command, which can be used to translate from 16 to 256 color palettes.</p>
<pre>
map-colour 7 4 208 236
</pre>
<p>The example above would translate the 16 color pair &#8220;gray on blue&#8221; to 256 color pair &#8220;dark orange on dark grey&#8221;. It matches the default Irssi status line.</p>
<pre>
reset-colours
map-colour * 4 * 236
map-colour * 6 * 238
</pre>
<p>The second example illustrates the use of the color-reset command along with the map-color wildcard feature. First, all existing color mappings are cleared. Then, two new mappings are added: all blue backgrounds map to a grey shade, and all cyan backgrounds map to a similar grey shade.</p>
<p>With these commands, one can create complete themes. I&#8217;ve put <a rel="nofollow" target="_blank" href="http://benjamin-schweizer.de/files/tmux/tmux-themes/">some examples</a> aside the source code. They can be activated using the source command like &#8220;source /usr/share/tmux/amber.tmux.conf&#8221;.</p>
<p><img src="http://benjamin-schweizer.de/files/tmux/tmux-themes/tmux_amber_irssi.png"/></p>
<p>To apply <a rel="nofollow" target="_blank" href="http://benjamin-schweizer.de/files/tmux/">the colormap patch</a>, grab the current tmux-1.5 source tree, replace the patched files and run &#8220;aclocal &#038;&#038; automake&#8221; for updating the configure script. Now, you can &#8220;./configure &#038;&#038; make &#038;&#038; make install&#8221; tmux as before.</p>
<p>Of course, contributions are welcome!</p>
<p>→ <a rel="nofollow" target="_blank" href="http://tmux.sourceforge.net/">tmux project site</a><br />
→ <a rel="nofollow" target="_blank" href="http://benjamin-schweizer.de/files/tmux/">tmux colourmap patch</a></p>]]></content:encoded>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>gopher__: today: Chaostreff Heilbronn, 2011 years retrospective, cccongress planning, +++ #cthn #ccc #heilbronn</title>
         <link>http://twitter.com/gopher__/statuses/146536459392917504</link>
         <description>gopher__: today: Chaostreff Heilbronn, 2011 years retrospective, cccongress planning, +++ #cthn #ccc #heilbronn</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/146536459392917504</guid>
         <pubDate>Tue, 13 Dec 2011 10:26:29 +0000</pubDate>
      </item>
      <item>
         <title>gopher pushed to master at gopher/favpng</title>
         <link>https://github.com/gopher/favpng/compare/27f35d043d...01660d91ee</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to master at &lt;a rel=&quot;nofollow&quot;&gt;gopher/favpng&lt;/a&gt;
  December 04, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;01660d9&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;fixed typo&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;3fb0dbe&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;fixed codec-lookup&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;d34cb33&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;clean-ups for content-type sniffing and decoding&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      &lt;li class=&quot;more&quot;&gt;&lt;a rel=&quot;nofollow&quot;&gt;1 more commits &amp;raquo;&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1502991757</guid>
         <pubDate>Sun, 04 Dec 2011 17:56:09 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher started watching matahari/matahari</title>
         <link>https://github.com/matahari/matahari</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;started watching&lt;/span&gt; &lt;a rel=&quot;nofollow&quot;&gt;matahari/matahari&lt;/a&gt;
  December 02, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;
    matahari's description:
&lt;blockquote&gt;Matahari provides agents for systems management and monitoring.  The agents support both DBus and AMQP based transports.  The Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol providing reliable transport of messages.  QMF provides a modeling framework layer on top of qpid (which implements AMQP).  This interface allows you to manage a host and its various components as a set of objects with properties and methods. &lt;/blockquote&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:WatchEvent/1502735186</guid>
         <pubDate>Fri, 02 Dec 2011 20:11:25 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to master at gopher/python-tracebackturbo</title>
         <link>https://github.com/gopher/python-tracebackturbo/compare/faf9ec2765...f0d2de3682</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to master at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-tracebackturbo&lt;/a&gt;
  December 01, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;f0d2de3&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;Merge pull request #1 from tito/patch-1&lt;br&gt;
&lt;br&gt;
Fix undefined sort + variables output on stderr/files&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;tito&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;5751f9b&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;Fix crash about unknown variable sort + fix variables print to the file instead of always stderr.&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      &lt;li class=&quot;more&quot;&gt;&lt;a rel=&quot;nofollow&quot;&gt;View comparison for these 2 commits &amp;raquo;&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1502325690</guid>
         <pubDate>Thu, 01 Dec 2011 09:45:23 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher merged pull request 1 on gopher/python-tracebackturbo</title>
         <link>https://github.com/gopher/python-tracebackturbo/pull/1</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;merged&lt;/span&gt; &lt;a rel=&quot;nofollow&quot;&gt;pull request 1&lt;/a&gt; on &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-tracebackturbo&lt;/a&gt;
  December 01, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;
    &lt;blockquote&gt;Fix undefined sort + variables output on stderr/files&lt;/blockquote&gt;
    1 commit with 
    1 addition and 
    1 deletion
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PullRequestEvent/1502325687</guid>
         <pubDate>Thu, 01 Dec 2011 09:45:22 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to master at gopher/favpng</title>
         <link>https://github.com/gopher/favpng/compare/72c149fd51...27f35d043d</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to master at &lt;a rel=&quot;nofollow&quot;&gt;gopher/favpng&lt;/a&gt;
  December 01, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;27f35d0&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;added feedparser support, many bugfixes&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1502309952</guid>
         <pubDate>Thu, 01 Dec 2011 07:50:08 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher__: today: Chaostreff Heilbronn, Last LED Cube Workshop http://t.co/xJppZ8tZ #cthn #ccc #heilbronn #ledcube</title>
         <link>http://twitter.com/gopher__/statuses/141435419463127040</link>
         <description>gopher__: today: Chaostreff Heilbronn, Last LED Cube Workshop http://t.co/xJppZ8tZ #cthn #ccc #heilbronn #ledcube</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/141435419463127040</guid>
         <pubDate>Tue, 29 Nov 2011 08:36:46 +0000</pubDate>
      </item>
      <item>
         <title>gopher pushed to master at gopher/favpng</title>
         <link>https://github.com/gopher/favpng/compare/7a27dff5c3...72c149fd51</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to master at &lt;a rel=&quot;nofollow&quot;&gt;gopher/favpng&lt;/a&gt;
  November 20, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;72c149f&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;updated about page&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1499918588</guid>
         <pubDate>Sun, 20 Nov 2011 11:11:27 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher started watching zacharyvoase/markdoc</title>
         <link>https://github.com/zacharyvoase/markdoc</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;started watching&lt;/span&gt; &lt;a rel=&quot;nofollow&quot;&gt;zacharyvoase/markdoc&lt;/a&gt;
  November 18, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;
    markdoc's description:
&lt;blockquote&gt;A lightweight Markdown-based wiki system.&lt;/blockquote&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:WatchEvent/1499587995</guid>
         <pubDate>Fri, 18 Nov 2011 09:23:22 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to master at ydkn/raki</title>
         <link>https://github.com/ydkn/raki/compare/342ebcac1c...8fe296cef5</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to master at &lt;a rel=&quot;nofollow&quot;&gt;ydkn/raki&lt;/a&gt;
  November 17, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;8fe296c&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;removed author email from atom feeds&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1499422317</guid>
         <pubDate>Thu, 17 Nov 2011 17:09:04 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher__: @tlunde ccc rsync has some patch applied that changes text output for use with the GUI process, this makes standalone use ugly</title>
         <link>http://twitter.com/gopher__/statuses/136923273836503042</link>
         <description>gopher__: @tlunde ccc rsync has some patch applied that changes text output for use with the GUI process, this makes standalone use ugly</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/136923273836503042</guid>
         <pubDate>Wed, 16 Nov 2011 21:47:07 +0000</pubDate>
      </item>
      <item>
         <title>gopher__: today: Chaostreff Heilbronn LED Cube Workshop + Grafitti App preview http://t.co/xJppZ8tZ #cthn #ccc #grafitti #heilbronn</title>
         <link>http://twitter.com/gopher__/statuses/136484371287900162</link>
         <description>gopher__: today: Chaostreff Heilbronn LED Cube Workshop + Grafitti App preview http://t.co/xJppZ8tZ #cthn #ccc #grafitti #heilbronn</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/136484371287900162</guid>
         <pubDate>Tue, 15 Nov 2011 16:43:04 +0000</pubDate>
      </item>
      <item>
         <title>gopher created branch master  at gopher/favpng</title>
         <link>https://github.com/gopher/favpng/compare/master</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;created&lt;/span&gt; branch &lt;a rel=&quot;nofollow&quot;&gt;master&lt;/a&gt;  at &lt;a rel=&quot;nofollow&quot;&gt;gopher/favpng&lt;/a&gt;
  November 14, 2011 
&lt;/div&gt;

&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;
      New branch is at &lt;a rel=&quot;nofollow&quot;&gt;/gopher/favpng/tree/master&lt;/a&gt;
      &lt;br /&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;compare-link&quot;&gt;Compare master branch with master &amp;raquo;&lt;/a&gt;


  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:CreateEvent/1498690625</guid>
         <pubDate>Mon, 14 Nov 2011 22:35:17 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher created repository favpng</title>
         <link>https://github.com/gopher/favpng</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;created&lt;/span&gt; repository &lt;a rel=&quot;nofollow&quot;&gt;favpng&lt;/a&gt; 
  November 14, 2011 
&lt;/div&gt;

&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;

        a web service to retrieve favicons 

  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:CreateEvent/1498690481</guid>
         <pubDate>Mon, 14 Nov 2011 22:34:44 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher started watching matahari/matahari</title>
         <link>https://github.com/matahari/matahari</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;started watching&lt;/span&gt; &lt;a rel=&quot;nofollow&quot;&gt;matahari/matahari&lt;/a&gt;
  November 08, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;
    matahari's description:
&lt;blockquote&gt;Matahari provides agents for systems management and monitoring.  The agents support both DBus and AMQP based transports.  The Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol providing reliable transport of messages.  QMF provides a modeling framework layer on top of qpid (which implements AMQP).  This interface allows you to manage a host and its various components as a set of objects with properties and methods. &lt;/blockquote&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:WatchEvent/1497380062</guid>
         <pubDate>Tue, 08 Nov 2011 16:32:24 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher__: we're in #bf3 fever and hang out this weekend; here's a link to my profile in case you want to friend me http://t.co/EJjvFfMA</title>
         <link>http://twitter.com/gopher__/statuses/132429233095061504</link>
         <description>gopher__: we're in #bf3 fever and hang out this weekend; here's a link to my profile in case you want to friend me http://t.co/EJjvFfMA</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/132429233095061504</guid>
         <pubDate>Fri, 04 Nov 2011 12:09:24 +0000</pubDate>
      </item>
      <item>
         <title>gopher created branch master  at gopher/dsnapshot</title>
         <link>https://github.com/gopher/dsnapshot/compare/master</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;created&lt;/span&gt; branch &lt;a rel=&quot;nofollow&quot;&gt;master&lt;/a&gt;  at &lt;a rel=&quot;nofollow&quot;&gt;gopher/dsnapshot&lt;/a&gt;
  November 02, 2011 
&lt;/div&gt;

&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;
      New branch is at &lt;a rel=&quot;nofollow&quot;&gt;/gopher/dsnapshot/tree/master&lt;/a&gt;
      &lt;br /&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;compare-link&quot;&gt;Compare master branch with master &amp;raquo;&lt;/a&gt;


  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:CreateEvent/1496225222</guid>
         <pubDate>Wed, 02 Nov 2011 19:47:54 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher created repository dsnapshot</title>
         <link>https://github.com/gopher/dsnapshot</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;created&lt;/span&gt; repository &lt;a rel=&quot;nofollow&quot;&gt;dsnapshot&lt;/a&gt; 
  November 02, 2011 
&lt;/div&gt;

&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;

        The dsnapshot script provides a high-level interface to the Linux Logical Volume Manager (LVM). It uses its block-level snapshot support to create directory-level snapshots. 

  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:CreateEvent/1496139056</guid>
         <pubDate>Wed, 02 Nov 2011 14:11:26 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher__: RT @otih__: Today: Chaostreff #Heilbronn LED Cube Workshop at our room #cthn #ccc http://t.co/mwdBnm4g http://t.co/u6n328tf</title>
         <link>http://twitter.com/gopher__/statuses/121274287385612288</link>
         <description>gopher__: RT @otih__: Today: Chaostreff #Heilbronn LED Cube Workshop at our room #cthn #ccc http://t.co/mwdBnm4g http://t.co/u6n328tf</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/121274287385612288</guid>
         <pubDate>Tue, 04 Oct 2011 17:23:37 +0000</pubDate>
      </item>
      <item>
         <title>gopher pushed to master at gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/compare/f7bd4bc474...6fd842351a</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to master at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  October 02, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;6fd8423&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;updated docs&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1490171949</guid>
         <pubDate>Sun, 02 Oct 2011 15:26:37 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to master at gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/compare/c29036b25d...f7bd4bc474</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to master at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  October 02, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;f7bd4bc&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;merged with native-api&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;952e2f6&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;Merge branch &amp;#39;native-api&amp;#39;&lt;br&gt;
&lt;br&gt;
Conflicts:&lt;br&gt;
	README.md&lt;br&gt;
	magickwand/api.py&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;22d6903&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;cleanup&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      &lt;li class=&quot;more&quot;&gt;&lt;a rel=&quot;nofollow&quot;&gt;5 more commits &amp;raquo;&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1490171667</guid>
         <pubDate>Sun, 02 Oct 2011 15:22:58 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to native-api at gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/compare/7e8cedc072...22d6903f5e</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to native-api at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  October 02, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;22d6903&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;cleanup&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1490166361</guid>
         <pubDate>Sun, 02 Oct 2011 14:03:37 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher started watching StyleShare/wand</title>
         <link>https://github.com/StyleShare/wand</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;started watching&lt;/span&gt; &lt;a rel=&quot;nofollow&quot;&gt;StyleShare/wand&lt;/a&gt;
  October 02, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  
  &lt;div class=&quot;message&quot;&gt;
    wand's description:
&lt;blockquote&gt;The ctypes-based simple MagickWand API binding for Python&lt;/blockquote&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:WatchEvent/1490165325</guid>
         <pubDate>Sun, 02 Oct 2011 13:47:10 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to native-api at gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/compare/9e41c7e336...7e8cedc072</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to native-api at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  October 02, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;7e8cedc&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;updated docs&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1490164724</guid>
         <pubDate>Sun, 02 Oct 2011 13:38:45 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to native-api at gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/compare/767642d662...9e41c7e336</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to native-api at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  October 02, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;9e41c7e&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;updated docs&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1490163941</guid>
         <pubDate>Sun, 02 Oct 2011 13:25:19 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to native-api at gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/compare/d5e73863e8...767642d662</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to native-api at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  October 02, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;767642d&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;added generic exception handling&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1490148519</guid>
         <pubDate>Sun, 02 Oct 2011 08:20:07 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to native-api at gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/compare/4297eb168c...d5e73863e8</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to native-api at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  September 30, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;d5e7386&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;imported old api as magickfoo&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1489974938</guid>
         <pubDate>Fri, 30 Sep 2011 17:39:24 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to native-api at gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/compare/993179c780...4297eb168c</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to native-api at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  September 27, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;4297eb1&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;updated docs&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1489338712</guid>
         <pubDate>Tue, 27 Sep 2011 20:28:54 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher pushed to master at gopher/python-magickwand</title>
         <link>https://github.com/gopher/python-magickwand/compare/95a0431677...c29036b25d</link>
         <description>&lt;div class=&quot;title&quot;&gt;
  &lt;a rel=&quot;nofollow&quot;&gt;gopher&lt;/a&gt; &lt;span&gt;pushed&lt;/span&gt; to master at &lt;a rel=&quot;nofollow&quot;&gt;gopher/python-magickwand&lt;/a&gt;
  September 27, 2011 
&lt;/div&gt;
&lt;div class=&quot;details&quot;&gt;
  

  &lt;div class=&quot;commits&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;
      &lt;a rel=&quot;nofollow&quot; class=&quot;committer&quot;&gt;gopher&lt;/a&gt; committed &lt;a rel=&quot;nofollow&quot;&gt;c29036b&lt;/a&gt;

        &lt;div class=&quot;message&quot;&gt;
          &lt;blockquote&gt;reverted api to distinguish from native-api branch&lt;/blockquote&gt;
        &lt;/div&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
&lt;/div&gt;</description>
         <author>gopher</author>
         <guid isPermaLink="false">tag:github.com,2008:PushEvent/1489337106</guid>
         <pubDate>Tue, 27 Sep 2011 20:21:47 +0000</pubDate>
         <media:thumbnail height="30" url="https://secure.gravatar.com/avatar/aa1409cd6bfd7a846aba1c37311fa1f4?s=30&amp;d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="30"/>
      </item>
      <item>
         <title>gopher__: today: Chaostreff Heilbronn LED Cube Workshop at our new room http://t.co/xJppZ8tZ #cthn #ccc</title>
         <link>http://twitter.com/gopher__/statuses/116207947671015426</link>
         <description>gopher__: today: Chaostreff Heilbronn LED Cube Workshop at our new room http://t.co/xJppZ8tZ #cthn #ccc</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/116207947671015426</guid>
         <pubDate>Tue, 20 Sep 2011 17:51:48 +0000</pubDate>
      </item>
      <item>
         <title>The Evolution of the Web</title>
         <link>http://evolutionofweb.appspot.com/</link>
         <description>Over time web technologies have evolved to give web developers the ability to create new generations of useful and immersive web experiences. Today's web is a result of the ongoing efforts of an open web community that helps define these web technologies, like HTML5, CSS3 and WebGL and ensure that they're supported in all web browsers.</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 03 Sep 2011 16:44:03 +0000</pubDate>
      </item>
      <item>
         <title>gopher__: @mitsuhiko i use #json for simple data and #marshall when i can do without compatibibility. Whats exactly wrong with #pickle?</title>
         <link>http://twitter.com/gopher__/statuses/110021919734120449</link>
         <description>gopher__: @mitsuhiko i use #json for simple data and #marshall when i can do without compatibibility. Whats exactly wrong with #pickle?</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/110021919734120449</guid>
         <pubDate>Sat, 03 Sep 2011 16:10:44 +0000</pubDate>
      </item>
      <item>
         <title>gopher__: is there an rss feed or some other api which can be used to query links posted to google +1? #plus1</title>
         <link>http://twitter.com/gopher__/statuses/108652858009862144</link>
         <description>gopher__: is there an rss feed or some other api which can be used to query links posted to google +1? #plus1</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/108652858009862144</guid>
         <pubDate>Tue, 30 Aug 2011 21:30:34 +0000</pubDate>
      </item>
      <item>
         <title>gopher__: @disqus: the user activity rss feeds are broken, links include python markup. See http://t.co/SzHCeqj, have you already noticed? #disqus</title>
         <link>http://twitter.com/gopher__/statuses/108617381852622848</link>
         <description>gopher__: @disqus: the user activity rss feeds are broken, links include python markup. See http://t.co/SzHCeqj, have you already noticed? #disqus</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/108617381852622848</guid>
         <pubDate>Tue, 30 Aug 2011 19:09:36 +0000</pubDate>
      </item>
      <item>
         <title>gopher__: Der #cthn wird ab September einen eigenen Raum beziehen. Als erstes Projekt werden wir einen LED Cube bauen. http://t.co/hTBZn8p #heilbronn</title>
         <link>http://twitter.com/gopher__/statuses/106469547917324288</link>
         <description>gopher__: Der #cthn wird ab September einen eigenen Raum beziehen. Als erstes Projekt werden wir einen LED Cube bauen. http://t.co/hTBZn8p #heilbronn</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/106469547917324288</guid>
         <pubDate>Wed, 24 Aug 2011 20:54:52 +0000</pubDate>
      </item>
      <item>
         <title>Large Hackerspace Convention Episode II</title>
         <link>http://shackspace.de/wiki/doku.php?id=event:lhc-ii</link>
         <description>The Large Hackerspace Convention Episode II should be exactly that. Hackerspaces and hackerspace-folks from all over Germany, Europe, the world, our galaxy, and the rest of the universe will meet for an informal exchange of knowledge. Together we'll talk about our experiences and ideas regarding the hackerspace movement.</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 16 Aug 2011 09:10:38 +0000</pubDate>
      </item>
      <item>
         <title>gopher__: @otih__ could you please update the GPS position in our wiki? #cthn #cccamp11</title>
         <link>http://twitter.com/gopher__/statuses/100530249237921792</link>
         <description>gopher__: @otih__ could you please update the GPS position in our wiki? #cthn #cccamp11</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/100530249237921792</guid>
         <pubDate>Mon, 08 Aug 2011 11:34:13 +0000</pubDate>
      </item>
      <item>
         <title>gopher__: I've a 5 day camping ticket for sale. If anyone has interest http://t.co/6gHozRd; eta today 20 CEST #cccamp11 #ticket #cthn @towo</title>
         <link>http://twitter.com/gopher__/statuses/100490162097762304</link>
         <description>gopher__: I've a 5 day camping ticket for sale. If anyone has interest http://t.co/6gHozRd; eta today 20 CEST #cccamp11 #ticket #cthn @towo</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/100490162097762304</guid>
         <pubDate>Mon, 08 Aug 2011 08:54:56 +0000</pubDate>
      </item>
      <item>
         <title>gopher__: I've updated the planning page at http://t.co/MOibDDk #camp #cthn #sickos</title>
         <link>http://twitter.com/gopher__/statuses/99851301868937216</link>
         <description>gopher__: I've updated the planning page at http://t.co/MOibDDk #camp #cthn #sickos</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/99851301868937216</guid>
         <pubDate>Sat, 06 Aug 2011 14:36:20 +0000</pubDate>
      </item>
      <item>
         <title>gopher__: please use the #cthn hashtag for camp orga and discussion</title>
         <link>http://twitter.com/gopher__/statuses/99851106473099264</link>
         <description>gopher__: please use the #cthn hashtag for camp orga and discussion</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/99851106473099264</guid>
         <pubDate>Sat, 06 Aug 2011 14:35:33 +0000</pubDate>
      </item>
      <item>
         <title>Remaining Anonymous</title>
         <link>http://benjamin-schweizer.de/remaining-anonymous.html</link>
         <description>Sometimes, it&amp;#8217;s better to remain anonymous. For this, I am using the Tor anonymity network from a dedicated user account on a Linux machine. This user account is somewhat special, hence it is locked down by the local firewall and cannot open any outgoing internet connection. The only way out is the Tor network, which [...]</description>
         <guid isPermaLink="false">http://benjamin-schweizer.de/?p=457</guid>
         <pubDate>Wed, 20 Jul 2011 19:39:09 +0000</pubDate>
         <content:encoded><![CDATA[<p>Sometimes, it&#8217;s better to remain anonymous. For this, I am using the <a rel="nofollow" target="_blank" href="http://www.torproject.org/">Tor anonymity network</a> from a dedicated user account on a Linux machine. This user account is somewhat special, hence it is locked down by the local firewall and cannot open any outgoing internet connection. The only way out is the Tor network, which ensures this user&#8217;s identity is effectively kept private. Here&#8217;s how:</p>
<pre>
# part of my bashrc
sudo /sbin/iptables -D OUTPUT -o eth0 -m owner --uid-owner $USER -j REJECT
sudo /sbin/iptables -A OUTPUT -o eth0 -m owner --uid-owner $USER -j REJECT
export LD_PRELOAD="/usr/lib/torsocks/libtorsocks.so"
export HOSTNAME="somewhere"
PS1="&#92;A &#92;[&#92;e[30;100m&#92;] $HOSTNAME &#92;[&#92;e[0m&#92;]:&#92;w&#92;$ "
</pre>
<p>First, I ensure a proper firewall rule is set up which forbids all outgoing traffic (this requires sudo permissions). Then, the <a rel="nofollow" target="_blank" href="http://code.google.com/p/torsocks/">Torsocks</a> library is preloaded to this environment. This ensures all programs that are invoked from this shell are also wrapped to use the Tor proxy. Torsocks wraps most programs that use TCP sockets and (in contrast to torify/socksify), it also wraps DNS requests properly. Any other UDP and ICMP traffic is effectively blocked by the local firewall.</p>
<p>Next thing is to figure out some <a rel="nofollow" target="_blank" href="https://gitweb.torproject.org/torspec.git?a=blob_plain;hb=HEAD;f=address-spec.txt">special hostnames</a> within the Tor network. For example, &#8220;elinks http://www.ip2location.com.klollely.exit/&#8221; will use the exit note klollely (<a rel="nofollow" target="_blank" href="http://proxy.org/tor.shtml">which is in Russia</a>) and &#8220;telnet towel.blinkenlights.nl.uhhhhhh.exit&#8221; will open a Telnet connection originating from Thailand. Have fund and use it for good.</p>]]></content:encoded>
         <category>Uncategorized</category>
      </item>
      <item>
         <title>gopher__: @neingeist bist du am wochenende auf der #gpn11?</title>
         <link>http://twitter.com/gopher__/statuses/84264051860971520</link>
         <description>gopher__: @neingeist bist du am wochenende auf der #gpn11?</description>
         <guid isPermaLink="false">http://twitter.com/gopher__/statuses/84264051860971520</guid>
         <pubDate>Fri, 24 Jun 2011 14:18:10 +0000</pubDate>
      </item>
      <item>
         <title>Shackspace</title>
         <link>http://www.flickr.com/photos/gopher/5296471149/</link>
         <description>&lt;img src=&quot;http://farm6.staticflickr.com/5202/5296471149_249a3cae52_b.jpg&quot;/&gt;</description>
         <author>nobody@flickr.com (gopher23)</author>
         <guid isPermaLink="false">tag:flickr.com,2004:/photo/5296471149</guid>
         <pubDate>Mon, 27 Dec 2010 15:51:10 +0000</pubDate>
         <media:content height="613" type="image/jpeg" url="http://farm6.staticflickr.com/5202/5296471149_249a3cae52_b.jpg" width="1024"/>
         <media:title>Shackspace</media:title>
         <media:thumbnail height="75" url="http://farm6.staticflickr.com/5202/5296471149_249a3cae52_s.jpg" width="75"/>
         <media:category scheme="urn:flickr:tags">moblog stuttgart hacking shackspace</media:category>
         <media:credit role="photographer">gopher23</media:credit>
      </item>
      <item>
         <title>Measuring Disk IO Performance</title>
         <link>http://benjamin-schweizer.de/measuring-disk-io-performance.html</link>
         <description>Hard disk drives have become larger and larger over the years, but their rotation speeds remain at nearly the same level since decades. This has lead to some odd trait: we have seen greatly improved transfer rates for sequential input/output, but random input/output remains at nearly the same level since ever. The reason for this [...]</description>
         <guid isPermaLink="false">http://benjamin-schweizer.de/?p=324</guid>
         <pubDate>Sat, 14 Aug 2010 11:01:27 +0000</pubDate>
         <content:encoded><![CDATA[<p>Hard disk drives have become larger and larger over the years, but their rotation speeds remain at nearly the same level since decades. This has lead to some odd trait: we have seen greatly improved transfer rates for sequential input/output, but random input/output remains at nearly the same level since ever.</p>
<p><img class="alignleft" style="margin-top:10px;margin-bottom:10px;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Hard_drive-en.svg/300px-Hard_drive-en.svg.png" alt="Diagram of a computer hard disk drive, (cc) Surachit" width="300" height="214"/>The reason for this is the physical build-up of hard disk drives: to read (or write) some random position on the magnetic layer, a drive needs to move its heads to a given track and <em>wait</em> until the requested sector arrives. Typical mean access times for this are in the range from 5ms to 15ms, resulting in 50-150 random <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/IOPS">input/output operations per second</a> (IOPS).</p>
<p>In practice, there are some measures to deal with this constraint. Modern hard drives utilize native command queuing (NCQ) to optimize seek times, we use disk arrays to spread the io load on multiple spindles (RAID), various caching strategies reduce the amount of input/output operations that are issued to the drive and read-ahead/prefetching tries to load the data beforehand.</p>
<p>Though, the question arises: how many input/output operations can we actually perform with all these optimizations in place? Let&#8217;s benchmark this. One tool that we can use for this is <a rel="nofollow" target="_blank" href="http://benjamin-schweizer.de/files/iops/">iops(1)</a>, a benchmark utility that runs on Linux/FreeBSD/Mac OS X. Iops issues random read requests with increasing blocksizes:</p>
<pre>
$ sudo ./iops --num_threads 1 --time 2 /dev/md1
/dev/md1,   6.00 TB, 1 threads:
 512   B blocks:   43.9 IO/s,  21.9 KiB/s (179.8 kbit/s)
   1 KiB blocks:   46.7 IO/s,  46.7 KiB/s (382.9 kbit/s)
   2 KiB blocks:   46.4 IO/s,  92.7 KiB/s (759.6 kbit/s)
   4 KiB blocks:   37.5 IO/s, 150.0 KiB/s (  1.2 Mbit/s)
   8 KiB blocks:   33.6 IO/s, 268.5 KiB/s (  2.2 Mbit/s)
  16 KiB blocks:   29.5 IO/s, 471.4 KiB/s (  3.9 Mbit/s)
  32 KiB blocks:   26.0 IO/s, 833.3 KiB/s (  6.8 Mbit/s)
  64 KiB blocks:   24.0 IO/s,   1.5 MiB/s ( 12.6 Mbit/s)
 128 KiB blocks:   24.1 IO/s,   3.0 MiB/s ( 25.3 Mbit/s)
 256 KiB blocks:   20.1 IO/s,   5.0 MiB/s ( 42.1 Mbit/s)
 512 KiB blocks:   18.5 IO/s,   9.3 MiB/s ( 77.6 Mbit/s)
   1 MiB blocks:   16.9 IO/s,  16.9 MiB/s (142.0 Mbit/s)
   2 MiB blocks:   11.7 IO/s,  23.3 MiB/s (195.7 Mbit/s)
   4 MiB blocks:    9.2 IO/s,  36.6 MiB/s (307.3 Mbit/s)
   8 MiB blocks:    5.1 IO/s,  41.0 MiB/s (343.6 Mbit/s)
  16 MiB blocks:    3.8 IO/s,  60.8 MiB/s (510.2 Mbit/s)
  32 MiB blocks:    3.1 IO/s, 100.6 MiB/s (843.7 Mbit/s)
  64 MiB blocks:    2.0 IO/s, 127.2 MiB/s (  1.1 Gbit/s)
 128 MiB blocks:    1.1 IO/s, 141.7 MiB/s (  1.2 Gbit/s)
 256 MiB blocks:    0.5 IO/s, 136.1 MiB/s (  1.1 Gbit/s)
</pre>
<p>In this example, the tested device is a Linux software raid5 with four 2 TB, 5.400rpm disks. We have started iops(1) with a single thread and a sampling time of two seconds for each block size. The results show that we reach about 45 IOPS for very small block sizes (or 22ms per IO request).</p>
<p>Now, let&#8217;s increase the number of threads and see how this affects overall performance:</p>
<pre>
$ sudo ./iops --num_threads 16 --time 2 /dev/md1
/dev/md1,   6.00 TB, 16 threads:
 512   B blocks:  151.4 IO/s,  75.7 KiB/s (620.3 kbit/s)
   1 KiB blocks:  123.7 IO/s, 123.7 KiB/s (  1.0 Mbit/s)
   2 KiB blocks:  117.0 IO/s, 234.1 KiB/s (  1.9 Mbit/s)
   4 KiB blocks:   97.7 IO/s, 390.6 KiB/s (  3.2 Mbit/s)
   8 KiB blocks:   78.6 IO/s, 629.1 KiB/s (  5.2 Mbit/s)
  16 KiB blocks:   60.7 IO/s, 970.7 KiB/s (  8.0 Mbit/s)
caught ctrl-c, bye.
</pre>
<p>We see that concurrent requests increase the IO limit to 150 IOPS. This indicates that the requests are actually spread to multiple spindles or optimized by native command queuing. I guess it&#8217;s the spindles, but we could investigate further by benchmarking a single disk instead of the array. Though, this is beyond the scope of this blog post.</p>
<p>→ <a rel="nofollow" target="_blank" href="http://hg.sickos.org/iops/archive/tip.tar.bz2">get the latest source code</a><br />
→ <a rel="nofollow" target="_blank" href="https://wiki.sickos.org/iops">visit project page</a><br />
→ <a rel="nofollow" target="_blank" href="http://hg.sickos.org/iops">visit mercurial repository</a></p>]]></content:encoded>
      </item>
      <item>
         <title>Building rsync3 on Mac OS X (Universal Binary)</title>
         <link>http://benjamin-schweizer.de/building-rsync3-on-mac-os-x-universal-binary.html</link>
         <description>Apple Mac OS X 10.4-10.6 ships with a modified version of rsync2 that has support for extended attributes and resource forks. Though, it &amp;#8220;does not perform as well as rsync 3.x, consumes more memory (especially for transfers of many files), and will copy unmodified resource forks every single time&amp;#8221; (Mike Bombich). Luckily, you can install [...]</description>
         <guid isPermaLink="false">http://benjamin-schweizer.de/?p=307</guid>
         <pubDate>Mon, 26 Jul 2010 16:15:21 +0000</pubDate>
         <content:encoded><![CDATA[<p>Apple Mac OS X 10.4-10.6 ships with a modified version of <a rel="nofollow" target="_blank" href="http://www.samba.org/rsync/">rsync2</a> that has support for extended attributes and resource forks. Though, it &#8220;does not perform as well as rsync 3.x, consumes more memory (especially for transfers of many files), and will copy unmodified resource forks every single time&#8221; (<a rel="nofollow" target="_blank" href="http://www.bombich.com/mactips/rsync.html">Mike Bombich</a>).</p>
<p>Luckily, you can install rsync3 from <a rel="nofollow" target="_blank" href="http://www.macports.org/">MacPorts</a>, using Mike&#8217;s <a rel="nofollow" target="_blank" href="http://www.bombich.com/ccc_features.html">Carbon Copy Cloner</a> (which ships with a mutilated binary) or compile it on your own. This is an receipt for building an rsync3 universal binary that runs on Mac OS X 10.4-10.6 ppc/x86/x86_64:</p>
<pre>
# 2010-07-07, benjamin: receipt for building rsync3 universal binary for
#   mac os x 10.4+ ppc/i386/x86_64 on a build host running 10.6
#   based upon http://www.bombich.com/mactips/rsync.html

# install xcode from http://developer.apple.com/technologies/xcode.html

# get sources
curl -O http://samba.anu.edu.au/ftp/rsync/rsync-3.0.7.tar.gz
curl -O http://samba.anu.edu.au/ftp/rsync/rsync-patches-3.0.7.tar.gz

# optionally verify signatures
curl -O http://samba.anu.edu.au/ftp/rsync/rsync-3.0.7.tar.gz.asc
gpg --verify rsync-3.0.7.tar.gz.asc
curl -O http://samba.anu.edu.au/ftp/rsync/rsync-patches-3.0.7.tar.gz.asc
gpg --verify rsync-patches-3.0.7.tar.gz.asc

# apply patches relevant for preserving Mac OS X metadata
tar xvzf rsync-3.0.7.tar.gz
tar xvzf rsync-patches-3.0.7.tar.gz
cd rsync-3.0.7/
patch -p1 &lt;patches/fileflags.diff
patch -p1 &lt;patches/crtimes.diff

# build 10.4+ ppc binary
CC="gcc-4.0" LDFLAGS="-arch ppc" CFLAGS="-arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4" ./configure
make -j4
mv rsync rsync3.ppc

# build 10.4+ x86 binary
CC="gcc-4.0" LDFLAGS="-arch i386" CFLAGS="-arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4" ./configure
make -j4
mv rsync rsync3.i386

# build 10.5+ x86_64 binary
CC="gcc-4.2" LDFLAGS="-arch x86_64" CFLAGS="-arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5" ./configure
make -j4
mv rsync rsync3.x86_64

# combine platform specific binaries into an universal binary
lipo -create rsync3.ppc rsync3.i386 rsync3.x86_64 -output rsync3

# eof.</pre>
<p>You can find binaries, patches etc. in the download section below.</p>
<p>→ <a rel="nofollow" target="_blank" href="http://benjamin-schweizer.de/files/rsync3/">download binaries</a></p>]]></content:encoded>
      </item>
      <item>
         <title>Visions on Responsible Leadership</title>
         <link>http://www.flickr.com/photos/gopher/4692864519/</link>
         <description>&lt;img src=&quot;http://farm5.staticflickr.com/4055/4692864519_118ece2798_b.jpg&quot;/&gt;</description>
         <author>nobody@flickr.com (gopher23)</author>
         <guid isPermaLink="false">tag:flickr.com,2004:/photo/4692864519</guid>
         <pubDate>Sat, 12 Jun 2010 14:52:13 +0000</pubDate>
         <media:content height="480" type="image/jpeg" url="http://farm5.staticflickr.com/4055/4692864519_118ece2798_b.jpg" width="640"/>
         <media:title>Visions on Responsible Leadership</media:title>
         <media:thumbnail height="75" url="http://farm5.staticflickr.com/4055/4692864519_118ece2798_s.jpg" width="75"/>
         <media:category scheme="urn:flickr:tags">moblog day faculty heilbronn untergruppenbach ggs stettenfels</media:category>
         <media:credit role="photographer">gopher23</media:credit>
      </item>
      <item>
         <title>Someone Parking</title>
         <link>http://www.flickr.com/photos/gopher/4548246705/</link>
         <description>&lt;img src=&quot;http://farm3.staticflickr.com/2464/4548246705_7fac0349a0_z.jpg&quot;/&gt;</description>
         <author>nobody@flickr.com (gopher23)</author>
         <guid isPermaLink="false">tag:flickr.com,2004:/photo/4548246705</guid>
         <pubDate>Sat, 24 Apr 2010 18:57:02 +0000</pubDate>
         <media:content height="480" type="image/jpeg" url="http://farm3.staticflickr.com/2464/4548246705_7fac0349a0_z.jpg" width="640"/>
         <media:title>Someone Parking</media:title>
         <media:thumbnail height="75" url="http://farm3.staticflickr.com/2464/4548246705_7fac0349a0_s.jpg" width="75"/>
         <media:category scheme="urn:flickr:tags">moblog parking</media:category>
         <media:credit role="photographer">gopher23</media:credit>
      </item>
      <item>
         <title>Unix Terminals: Surviving the Encoding Hell</title>
         <link>http://benjamin-schweizer.de/unix-terminals-surviving-the-encoding-hell.html</link>
         <description>Every now and then, I see people using misconfigured text terminals. People show up in chatrooms and post gibberish or they leave broken umlauts in text, html and source files. This is mostly the case because they (or you) have a broken terminal configuration. In this post, I will try to explain how terminal encodings [...]</description>
         <guid isPermaLink="false">http://benjamin-schweizer.de/?p=255</guid>
         <pubDate>Thu, 15 Apr 2010 14:08:19 +0000</pubDate>
         <content:encoded><![CDATA[<p>Every now and then, I see people using misconfigured text terminals. People show up in chatrooms and post gibberish or they leave broken umlauts in text, html and source files. This is mostly the case because they (or you) have a broken terminal configuration. In this post, I will try to explain how terminal encodings work and how you can fix things.</p>
<p>Generally spoken, things break if you are using a different terminal encoding than your peers. When you enter text like umlauts and other international characters, it gets encoded using your local terminal encoding (something like latin1, utf-8 or cp850). If a different encoding is used to display this data, you are likely to see gibberish and other strange effects in your terminal. Thus, we need to define what encoding we want to use for a specific file, a chatroom or on a system-wide level. A good guess would be utf8 nowadays, but us-ascii/ascii7 is also pretty common.</p>
<p>First, let&#8217;s find out our actual terminal encoding. Just enter some umlauts like &#8220;äöü&#8221; and show the binary representation in hexadecimal:</p>
<pre>$ printf "äöü" | xxd
0000000: c3a4 c3b6 c3bc                           ......
</pre>
<p>In this example, we find &#8220;c3a4 c3b6 c3bc&#8221; which indicates that the umlauts got encoded into utf8. Other possible results would be &#8220;e4 f6 fc&#8221; for win1252 or &#8220;84 94 81&#8243; for cp850. You can lookup <a rel="nofollow" target="_blank" href="http://benjamin-schweizer.de/files/umlauts/umlauts.bin">some more encodings here</a>. (Of course, you can also check the manual for your terminal emulator).</p>
<p>Now that we know our actual terminal encoding, we need to tell this to the system libraries and other console software. This is done using <a rel="nofollow" target="_blank" href="http://linux.die.net/man/5/locale">locale(5)</a>, a standard that is used by almost any program that is capable of doing character encoding and not just passes dumb binary data. To do so, you can list all available encodings by running &#8220;locale -a&#8221; and pick an appropriate one:</p>
<pre>$ locale -a
C
de_DE.utf8
en_US.utf8
POSIX</pre>
<p>This list contains entries in the format location_language.encoding; additional locales can be created using tools like locale-gen(1). I use &#8220;en_US.utf-8 hence my terminal uses utf8 and I prefer English program output. This locale string should be set as $LC_ALL as environment variable (or LC_CTYPE if you want to ignore the language and location). Some terminals do this automatically, but we can also do this in our ~/.profile file which is sourced whenever a new terminal is started. For compatibility with older software, we also set $LANG to the same value:</p>
<pre>export LC_ALL=en_US.utf-8
export LANG="$LC_ALL"</pre>
<p>You can check the result in a new terminal by typing &#8220;locale&#8221;; if you see &#8220;C&#8221; instead of your locale string, something went wrong and the locales felt back to the default settings. Check that your locale string is in the list. When everything looks ok, you should see the utf8 line in my <a rel="nofollow" target="_blank" href="http://benjamin-schweizer.de/files/umlauts/umlauts.bin">umlauts test file</a> (just type &#8220;cat umlauts.bin&#8221;).</p>
<p>Now that we have checked the local terminal settings, we should do the same for hosts where we ssh into. Luckily, ssh can forward our locales settings, just append &#8220;SendEnv LANG LC_ALL&#8221; to ~/.ssh/config and check that your locale is also available on the remote host. Voila, you have a properly working terminal with defined locales.</p>
<p>If you still see malformed characters, it is likely that you use software that does not know about locales at all and just passes raw data. In theory, such software should fall back to us-ascii/ascii7 and strip or replace all other characters. If this fails, you can either use another program or you are forced to use a terminal program with the same binary encoding (or avoid umlauts if you are on IRC;-).</p>]]></content:encoded>
      </item>
      <item>
         <title>More Fun with the Python Class Dispatcher</title>
         <link>http://benjamin-schweizer.de/more-fun-with-the-python-class-dispatcher.html</link>
         <description>In a recent post, I have demonstrated how to do prototype-style method injection in Python. Today, I&amp;#8217;ll show how you can have even more fun with the class dispatcher by changing the base class of an object during run-time. But first, let me illustrate a real-world problem where this proposed solution becomes handy&amp;#8230; Like many [...]</description>
         <guid isPermaLink="false">http://benjamin-schweizer.de/?p=224</guid>
         <pubDate>Fri, 26 Mar 2010 13:15:39 +0000</pubDate>
         <content:encoded><![CDATA[<p>In a recent post, I have demonstrated how to do <a rel="nofollow" target="_blank" href="http://benjamin-schweizer.de/fun-with-the-python-class-dispatcher.html">prototype-style method injection in Python</a>. Today, I&#8217;ll show how you can have even more fun with the class dispatcher by changing the base class of an object during run-time. But first, let me illustrate a real-world problem where this proposed solution becomes handy&#8230;</p>
<p>Like many others, I&#8217;ve jumped the distributed computing hype and spent a lot of time with nosql databases (I prefer <a rel="nofollow" target="_blank" href="http://www.mongodb.org/">Mongo</a>). Due to the document-based storage model, the actual document type is stored inside a given document. In example, imagine you have something like {&#8216;type&#8217;: &#8216;post&#8217;, &#8216;id&#8217;: 23, &#8230;} stored inside a collection, say it represents a blog post. When you load an object from the database, you cannot decide what type it is unless you have retrieved it from the database. If you want to represent the retrieved data as an object, you have to add a loader that fetches the raw data and decides what type of object it should create. So, it is likely that you end up with an interface like this:</p>
<pre>db = DB()
post = Post()
id = db.save(post)
same_post = db.get(id)
db.delete(id)
</pre>
<p>This is fairly ok, but you&#8217;ll end up splitting the interface into a db object and a post object. The db object appears reasonable because it can load the raw data and create objects of different types like Post or Comment, depending on the type variable. This is ok, but I think we can do better. Imagine an interface like this:</p>
<pre>post = Post()
id = post.save()
same_post = Post(id)
same_post.delete()
</pre>
<p>It feels more intuitive and reflects the way you would describe the actual task. You could have the database code in the same object (or a parent of it) and make things more explicit. Though, if you cannot determine the object type before you fetch it from the database, you cannot decide what type of object to create. So, if you invoke the constructor of a post object, but you find the actual type to be &#8220;comment&#8221;, how can you change the base class now? Like this:</p>
<pre>class Generic:
    def __init__(self, class_name=None):
        if not class_name:
            return

        classes = globals()
        if not class_name in classes:
            raise Exception("%s not found in global scope" % class_name)
        _class = classes[class_name]
        if not type(_class) == type(self.__class__):
            raise Exception("%s is not a class" % class_name)

        self.__class__ = _class

class Specialized(Generic):
    pass

c = Generic("Specialized")
print c     # prints &lt;Specialized&gt;</pre>
<p>In this example,we run the constructor of class Generic and dependent on some contextual data (class_name here), we change the base class of our object after instantiation. What we get is an object of class Specialized even though we invoked the constructor of Generic. This methodology can easily be applied to our blog example, making the interface much cleaner and more expressive.</p>]]></content:encoded>
      </item>
      <item>
         <title>Samsung LED TV: The Good, The Bad, The Ugly</title>
         <link>http://benjamin-schweizer.de/samsung-led-tv-the-good-the-bad-the-ugly.html</link>
         <description>Recently, we&amp;#8217;ve bought a shiny new Samsung LED TV. It&amp;#8217;s a Series 6 model with a large screen and an integrated DVB-C decoder. The TV set is pretty fine, it runs a Linux-based firmware and has an integrated media player. After reading the tech specs, I&amp;#8217;ve found out about the differences of Series 6 and [...]</description>
         <guid isPermaLink="false">http://benjamin-schweizer.de/?p=203</guid>
         <pubDate>Wed, 24 Mar 2010 15:09:07 +0000</pubDate>
         <content:encoded><![CDATA[<p>Recently, we&#8217;ve bought a shiny new Samsung LED TV. It&#8217;s a Series 6 model with a large screen and an integrated DVB-C decoder. The TV set is pretty fine, it runs <a rel="nofollow" target="_blank" href="http://downloadcenter.samsung.com/content/UM/200910/20091012160308796/GNU_license-1113.pdf">a Linux-based firmware</a> and has an integrated media player.</p>
<p>After reading the tech specs, I&#8217;ve found out about the differences of Series 6 and Series 7 models and started worrying. The hardware is almost the same: Series 7 models have a CI+ interface and an additional USB port but this is not important for me. Both TV sets run the same firmware, but on Series 6 models, the integrated media player does not play movies. Hence the hardware is nearly the same, this limitation has no technical reasons.</p>
<p>So, I&#8217;ve investigated further&#8230; A friend suggested that we could patch the firmware and enable the movie playback there. I&#8217;ve contacted Samsung and requested a copy of the GPL-licensed source code. Though, their customer support never responded to my request. After this, I started to tinker with the firmware binary files, but I had to find that they are encrypted and digitally signed (using OpenSSL, lol).</p>
<p>This means, even if you get Samsung to hand over the source code, they won&#8217;t allow you to use it in the sense of correcting bugs on your own television. Bad karma; this is clearly not the will of the original software authors.</p>
<p style="text-align:center;"><img class="aligncenter" src="http://farm3.static.flickr.com/2640/4112072507_419f2bb68e.jpg" alt=""/></p>
<p>In spite of everything, there&#8217;s yet a simple solution &#8211; at least for the media player issue. The firmware holds <a rel="nofollow" target="_blank" href="http://www.flickr.com/photos/nk-h/4102072907/">a hidden service menu</a> that can be entered by pressing INFO-MENU-MUTE-POWER when the TV is in standby. From there, I was able to change the model number to a Series 7 model and reach the fully-featured media player (see <a rel="nofollow" target="_blank" href="http://www.smovs.dk/htpc/index.php?note=16&amp;subject=Samsung%20UE32B6050%20(6000%20series%20LED%20TV)%20movie%20mode">here</a>).</p>]]></content:encoded>
      </item>
      <item>
         <title>Designs, Lessons and Advice from Building Large Distributed Systems (pdf)</title>
         <link>http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf</link>
         <description>As part of implementing the many products and services offered by Google, we have built a collection of systems and tools that simplify the storing and processing of large-scale data sets, and the construction of heavily-used public services based on these data sets. These systems are intended to work well in Google's computational environment, which consists of large numbers of commodity machines connected by commodity networking hardware. Our systems handle issues like storage reliability and availability in the face of machine failures, and our processing tools make it relatively easy to write robust computations that run reliably and efficiently on thousands of machines. In this talk I'll highlight some of the systems we have built, and discuss some challenges and future directions for new systems.</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Mon, 08 Feb 2010 22:27:28 +0000</pubDate>
         <enclosure length="2530972" type="application/pdf" url="http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf"/>
      </item>
      <item>
         <title>Panopticlick</title>
         <link>http://panopticlick.eff.org/</link>
         <description>Is your browser configuration rare or unique? If so, web sites may be able to track you, even if you limit or disable cookies.</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Fri, 29 Jan 2010 20:38:56 +0000</pubDate>
      </item>
      <item>
         <title>Improved Python Traceback Module</title>
         <link>http://benjamin-schweizer.de/improved-python-traceback-module.html</link>
         <description>Like any modern language, Python comes along with a nice traceback module. This module gives you stack traces from the line of code where an exception is raised up to the next try-except clause. So, you can easily catch exceptions and write stack traces into a debug log. This debugging technique is pretty handy to [...]</description>
         <guid isPermaLink="false">http://benjamin-schweizer.de/?p=188</guid>
         <pubDate>Wed, 27 Jan 2010 21:39:50 +0000</pubDate>
         <content:encoded><![CDATA[<p>Like any modern language, Python comes along with a nice <a rel="nofollow" target="_blank" href="http://docs.python.org/library/traceback.html">traceback module</a>. This module gives you stack traces from the line of code where an exception is raised up to the next try-except clause. So, you can easily catch exceptions and write stack traces into a debug log. This debugging technique is pretty handy to drill down bugs and I use it a lot in prototyping.</p>
<p>Using the traceback module is straight forward for evident programming mistakes. However, real bugs are context-sensitive and they can hardly be reproduced without the actual data that was processed when an exception was raised. If you can reproduce a specific bug, you can add some logging code in front and inspect the variables the next time the bug is triggered. But if a bug occurs once in a blue moon, you&#8217;d be better in logging the data the first time an exception raises.</p>
<pre>import tracebackturbo as traceback

def erroneous_function():
    ham = u"unicode string with umlauts äöü."
    eggs = "binary string with umlauts äöü."
    i = 23
    if i&gt;5:
        raise Exception("it's true!")

try:
    erroneous_function()
except:
    print traceback.format_exc(with_vars=True)</pre>
<p>Here&#8217;s my solution; an improved Python traceback module the logs variables from the local scope next to the affected code. You can find a working copy in our Mercirual repository (see the below).</p>
<pre>Traceback (most recent call last):
  File "test.py", line 11, in 
    Local variables:
      __builtins__ = 
      __doc__ = None
      __file__ = "x"
      __name__ = "__main__"
      __package__ = None
      erroneous_function = 
      traceback = &lt;module 'tracebackturbo' from '/private/tmp/python-...
    erroneous_function()
  File "test.py", line 8, in erroneous_function
    Local variables:
      eggs = "binary string with umlauts &#92;xc3&#92;xa4&#92;xc3&#92;xb6&#92;xc3&#92;xbc."
      ham = u"unicode string with umlauts ???."
      i = 23
    raise Exception("it's true!")
Exception: it's true!
</pre> 
<p>I am not sure if it is the &#8220;right&#8221; solution as sensitive information might be logged. This might have security implications for some real-world scenarios where webapps report stack traces to the end user (e.g. by using cgitb in production).</p>
<p>Credit: this code was inspired by <a rel="nofollow" target="_blank" href="http://code.activestate.com/recipes/52215/">format_exc_plus</a> by Bryn Keller.</p>
<p>2010-01-28: there&#8217;s an active discussion on <a rel="nofollow" target="_blank" href="http://thread.gmane.org/gmane.comp.python.devel/110326">python-dev</a>.<br />
2011-06-25: I&#8217;ve renamed the module, enable print_vars by default and merge with upstream</p>
<p>→ <a rel="nofollow" target="_blank" href="http://hg.sickos.org/python-traceback/archive/tip.tar.bz2">get latest source code</a><br />
→ <a rel="nofollow" target="_blank" href="http://hg.sickos.org/python-traceback/">visit mercurial repository</a></p>]]></content:encoded>
      </item>
      <item>
         <title>Adding a Custom LDAP Schema to Open Directory on 10.5+</title>
         <link>http://benjamin-schweizer.de/adding-a-custom-ldap-schema-to-open-directory.html</link>
         <description>Open Directory is a key component of Mac OS X Server. It consists of OpenLDAP, MIT Kerberos, Password Server and a tool chain that enables GUI administration. Sadly, adding new ldap schemas to the directory server is not documented in the advanced administration guides and you have to tinker with the command line tools. I [...]</description>
         <guid isPermaLink="false">http://benjamin-schweizer.de/?p=183</guid>
         <pubDate>Fri, 15 Jan 2010 09:55:10 +0000</pubDate>
         <content:encoded><![CDATA[<p>Open Directory is a key component of Mac OS X Server. It consists of OpenLDAP, MIT Kerberos, Password Server and a tool chain that enables GUI administration. Sadly, adding new ldap schemas to the directory server is not documented in the <a rel="nofollow" target="_blank" href="http://www.apple.com/server/macosx/resources/documentation.html">advanced administration guides</a> and you have to tinker with the command line tools. I could not find any good documentation how you to add a custom LDAP schema, so I&#8217;ll show my solution here.</p>
<p>Mac OS X Server 10.5 ships with OpenLDAP 2.3. This release supports run-time configuration, which means that the LDAP schemas are stored within the directory server and you cannot simply put your new schema file in /etc/openldap/schema/; you have to convert it to an LDIF file and load this into the directory itself. This can be done during run-time but it breaks replication if you do so. So, instead you have to create a proper old-style config and run a manual conversion to the new run-time config.</p>
<p>To do so, you need to place the new schema file in /etc/openldap/schema/some-new.schema. This directory is copied  to new replicas when you join them, so you won&#8217;t break the Apple tool chain. Then, you need to include the new schema file from /etc/openldap/slapd.conf; this has no direct effect but slaptest(1) uses this to re-create the run-time config. Finally, convert the old-style config to a new <a rel="nofollow" target="_blank" href="http://www.zytrax.com/books/ldap/ch6/slapd-config.html">run-time config using slaptest(1)</a> like &#8220;slaptest -f slapd.conf -F slapd.d&#8221; and restart slapd:</p>
<pre>cd /etc/openldap
cp some-new.schema schema/
cat &gt;&gt; slapd.conf &lt;&lt;HERE
include /etc/openldap/schema/some-new.schema
HERE
mv slapd.d slapd.d_bak
slaptest -f slapd.conf -F slapd.d
launchctl unload /System/Library/LaunchDaemons/org.openldap.slapd.plist
launchctl load /System/Library/LaunchDaemons/org.openldap.slapd.plist
</pre>
<p><strong>Beware</strong>: we are deleting the old run-time config here and create a new one from the static config. If you have changed the config without adopting the old-style config, you might loose modifications. So, check twice if all required schemas are included from slapd.conf. AFAIK, Kerio Mailserver is troublesome here as it is not adding the include lines to slapd.conf. Though, thise procedure is exactly what the Apple tool chain does on replication and I suggest you do it exactly this way. Good luck!</p>]]></content:encoded>
      </item>
      <item>
         <title>Eight Questions on Twitter</title>
         <link>http://benjamin-schweizer.de/eight-questions-on-twitter.html</link>
         <description>Why&amp;#8230; is it too slow for real-time communications (that is available on IRC since 1988)? can&amp;#8217;t #hashtags contain unicode? is there a length limit for my nickname? can&amp;#8217;t I sign on from multiple computers simultanously? does their web page no auto-refresh? is it always over capacity? didn&amp;#8217;t they register appropriate country TLDs like .de? have [...]</description>
         <guid isPermaLink="false">http://benjamin-schweizer.de/?p=158</guid>
         <pubDate>Thu, 07 Jan 2010 21:54:15 +0000</pubDate>
         <content:encoded><![CDATA[<p>Why&#8230;</p>
<ol>
<li>is it too slow for real-time communications (that is available on IRC since 1988)?</li>
<li>can&#8217;t #hashtags contain unicode?</li>
<li>is there a length limit for my nickname?</li>
<li>can&#8217;t I sign on from multiple computers simultanously?</li>
<li>does their web page no auto-refresh?</li>
<li>is it always over capacity?</li>
<li>didn&#8217;t they register appropriate country TLDs like .de?</li>
<li>have they shut down their Jabber interface?</li>
</ol>
<ol></ol>]]></content:encoded>
      </item>
      <item>
         <title>Negative Caching in Python httplib2</title>
         <link>http://code.google.com/p/httplib2/issues/detail?id=83</link>
         <description>I think it's not standards conform, but sometimes it is desireable to cache remote errors like 404 etc. Below is a runtime patch that wraps _entry_disposition() so that it uses the Cache-Control header also for errnous responses.</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 23 Dec 2009 11:50:28 +0000</pubDate>
      </item>
      <item>
         <title>KVM and libvirt best practices</title>
         <link>http://dag.wieers.com/blog/kvm-and-libvirt-best-practices#comment-3758</link>
         <description>Dag is &quot;disappointed about the lack of best practices and standardization regarding KVM on GFS clustering. [...] Have you been setting up libvirt environments, share your best practices here ! If you found interesting links to information, let us know too. Let's fill this void.&quot;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 17 Dec 2009 12:58:52 +0000</pubDate>
      </item>
      <item>
         <title>Implementing Thread-safe Tree Structures in MongoDB</title>
         <link>http://groups.google.com/group/mongodb-user/browse_thread/thread/8ffe9065612e0c0e</link>
         <description>Using MongoDB to implement tree structures has some advantages, but as it lacks features that traditional RDBMSes have (like table locking and transactions), it is easy to create race conditions during simultanous operations. This is a pretty generic problem and I hope we can emphasize common problems and best practices on the implementation of thread-safe tree tables here.</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 15 Dec 2009 17:48:44 +0000</pubDate>
      </item>
      <item>
         <title>Network Interface Firmware Back door with Tigon2</title>
         <link>http://www.eeye.com/html/resources/newsletters/vice/VI20070425.html#vexposed</link>
         <description>The first time I saw details about the Tigon2, I came up with the idea that it could be used to make a back door, remote gdb stub or remote sniffer in the firmware. In this paper, I will explain a way to develop such firmware programs and also the associated security risks.</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Mon, 23 Nov 2009 18:28:50 +0000</pubDate>
      </item>
   </channel>
</rss>
<!-- fe1.pipes.ch1.yahoo.com uncompressed/chunked Sat Feb  4 21:12:45 UTC 2012 -->

