<?xml version="1.0" encoding="utf-8" ?>

<rdf:RDF 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns="http://my.netscape.com/rdf/simple/0.9/">
<channel>
    <title>Wilmer's stuff</title>
    <link>http://wilmer.gaa.st/blog/</link>
    <description>So today I...</description>
    <dc:language>en</dc:language>
    <admin:errorReportsTo rdf:resource="mailto:" />

    <image rdf:resource="http://wilmer.gaa.st/blog/templates/default/img/s9y_banner_small.png" />

    <items>
      <rdf:Seq>
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/71-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/70-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/69-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/68-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/67-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/66-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/65-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/64-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/63-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/62-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/61-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/60-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/59-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/58-guid.html" />
        <rdf:li resource="http://wilmer.gaa.st/blog/archives/57-guid.html" />
      </rdf:Seq>
    </items>
</channel>

<image rdf:about="http://wilmer.gaa.st/blog/templates/default/img/s9y_banner_small.png">
        <url>http://wilmer.gaa.st/blog/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Wilmer's stuff - So today I...</title>
        <link>http://wilmer.gaa.st/blog/</link>
        <width>100</width>
        <height>21</height>
    </image>


<item rdf:about="http://wilmer.gaa.st/blog/archives/71-guid.html">
    <title>Bank statement scraper for Bank of Ireland</title>
    <link>http://wilmer.gaa.st/blog/archives/71-Bank-statement-scraper-for-Bank-of-Ireland.html</link>
    <description>
    Like many people, I was also losing track of my finance. Having bank accounts in use in both NL and IE probably didn&#039;t help. :-) As any proper FOSS geek, I learned to like the monster called &lt;a href=&quot;http://www.gnucash.org/&quot;  class=&quot;bb-url&quot;&gt;GnuCash&lt;/a&gt;. (Psst! Guys! It&#039;s pretty amazing that a product more than ten years old still doesn&#039;t let you do operations (like delete) on multiple entries at once, dont you think?)&lt;br /&gt;
&lt;br /&gt;
And there&#039;s this thing about Irish Banks. They have &lt;a href=&quot;http://en.wikipedia.org/wiki/2008%E2%80%932011_Irish_banking_crisis&quot;  class=&quot;bb-url&quot;&gt;bigger issues&lt;/a&gt; to worry about than how well their Internet banking service works. What keeps you away from looking at my bank account? You (hopefully) not knowing my six-digit user ID, date of birth (top secret information! Have I mentioned that my birthday is next Saturday? ;-P) and another six-digit number, this time my PIN number. No one-time passwords, no challenge-response system, nothing else.&lt;br /&gt;
&lt;br /&gt;
My only hope is that this lets you transfer money only to accounts to which I&#039;ve transferred money before. IOW all you can do is give my landlady a little present. Pfew!&lt;br /&gt;
&lt;br /&gt;
Also, going back to the original topic, there&#039;s no way to export info from their web interface. So I wrote one myself. One advantage of a pretty simple website is that I could easily write &lt;a href=&quot;http://wilmer.gaa.st/main.php/boiscrape.html&quot;  class=&quot;bb-url&quot;&gt;a scraper&lt;/a&gt; for it. Run it with the right arguments, and it&#039;ll spit out a CSV bank statement, ready to be fed to your favourite accounting software.&lt;br /&gt;
&lt;br /&gt;
What else have I been doing? Been working on &lt;a href=&quot;http://wilmer.gaa.st/main.php/giggity.html&quot;  class=&quot;bb-url&quot;&gt;Giggity&lt;/a&gt;. Android development&#039;s fun. I spent the weekend scraping the &lt;a href=&quot;http://www.dancevalley.com/2011/#nl/news/volledige-timetable-bekend.html&quot;  class=&quot;bb-url&quot;&gt;Dance Valley&lt;/a&gt; timetable page, Google, Last.FM, Wikipedia and more to automatically generate a Giggity schedule file for it. Love it! :-)  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    Development, </dc:subject>
    <dc:date>2011-08-01T15:14:35Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=71</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=71</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/70-guid.html">
    <title>On Pandaboard SD card performance</title>
    <link>http://wilmer.gaa.st/blog/archives/70-On-Pandaboard-SD-card-performance.html</link>
    <description>
    I have the Pandaboard running as my home server for a while now. Until last weekend, I was using a Microdrive as its root filesystem. Sadly, the drive seems to be broken. :-( That means I finally had a chance to try bootstrapping a server very quickly using Puppet. This worked fairly well, which means the time investment is paying off already.&lt;br /&gt;
&lt;br /&gt;
Since all the storage I had at home was the 32GB SD card I bought for this thing anyway, I decided to give it another chance. At some point I was reminded already that &lt;span style=&quot;font-weight:bold&quot;&gt;alignment &lt;span style=&quot;font-style:italic&quot;&gt;really&lt;/span&gt; matters&lt;/span&gt; with these things. Some Bonnie++ runs do seem to confirm this. I removed the second partition on the SD, and recreated it on a 4MB barrier. (The trick to do this is to use the &quot;u&quot; command in fdisk to switch units to sector instead of cylinders, and make sure the start sector is a multiple of 8192.)&lt;br /&gt;
&lt;br /&gt;
To be honest, I did run most of these benchmarks with the SD card reader/writer in my desktop machine. Only the last test was done on my Pandaboard, but as you can see the results are very similar.&lt;br /&gt;
&lt;br /&gt;
&lt;STYLE type=&quot;text/css&quot;&gt;TABLE.small TD {font-size: 66%; padding: 0;} TABLE.small { border-width: 0 0 1px 1px; border-style: solid; } TABLE.small TD { border-width: 1px 1px 0 0; border-style: solid; } TD.header {text-align: center; backgroundcolor: &quot;#CCFFFF&quot; }TD.rowheader {text-align: center; backgroundcolor: &quot;#CCCFFF&quot; }TD.size {text-align: center; backgroundcolor: &quot;#CCCFFF&quot; }TD.ksec {text-align: center; fontstyle: italic }&lt;/STYLE&gt;&lt;TABLE CELLSPACING=0 CLASS=&quot;small&quot; ALIGN=center BORDER=3 CELLPADDING=2 CELLSPACING=1&gt;&lt;TR&gt;&lt;TD COLSPAN=2 class=&quot;header&quot;&gt;&lt;FONT SIZE=+1&gt;&lt;B&gt;Version 1.96&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD COLSPAN=6 class=&quot;header&quot;&gt;&lt;FONT SIZE=+2&gt;&lt;B&gt;Sequential Output&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD COLSPAN=4 class=&quot;header&quot;&gt;&lt;FONT SIZE=+2&gt;&lt;B&gt;Sequential Input&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD COLSPAN=2 ROWSPAN=2 class=&quot;header&quot;&gt;&lt;FONT SIZE=+2&gt;&lt;B&gt;Random&lt;BR /&gt;Seeks&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD COLSPAN=1 class=&quot;header&quot;&gt;&lt;/TD&gt;&lt;TD COLSPAN=6 class=&quot;header&quot;&gt;&lt;FONT SIZE=+2&gt;&lt;B&gt;Sequential Create&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD COLSPAN=6 class=&quot;header&quot;&gt;&lt;FONT SIZE=+2&gt;&lt;B&gt;Random Create&lt;/B&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Size&lt;/TD&gt;&lt;TD COLSPAN=2&gt;Per Char&lt;/TD&gt;&lt;TD COLSPAN=2&gt;Block&lt;/TD&gt;&lt;TD COLSPAN=2&gt;Rewrite&lt;/TD&gt;&lt;TD COLSPAN=2&gt;Per Char&lt;/TD&gt;&lt;TD COLSPAN=2&gt;Block&lt;/TD&gt;&lt;TD&gt;Num Files&lt;/TD&gt;&lt;TD COLSPAN=2&gt;Create&lt;/TD&gt;&lt;TD COLSPAN=2&gt;Read&lt;/TD&gt;&lt;TD COLSPAN=2&gt;Delete&lt;/TD&gt;&lt;TD COLSPAN=2&gt;Create&lt;/TD&gt;&lt;TD COLSPAN=2&gt;Read&lt;/TD&gt;&lt;TD COLSPAN=2&gt;Delete&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD COLSPAN=2&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;K/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;% CPU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;K/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;% CPU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;K/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;% CPU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;K/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;% CPU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;K/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;% CPU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;% CPU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD COLSPAN=1&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;% CPU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;% CPU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;% CPU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;% CPU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;% CPU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;/sec&lt;/FONT&gt;&lt;/TD&gt;&lt;TD class=&quot;ksec&quot;&gt;&lt;FONT SIZE=-2&gt;% CPU&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD rowspan=2 bgcolor=&quot;#FFFFFF&quot; class=&quot;rowheader&quot;&gt;&lt;FONT SIZE=+1&gt;ext3-noalign&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot;&gt;4G&lt;/TD&gt;&lt;TD bgcolor=&quot;#EB1400&quot;&gt;189&lt;/TD&gt;&lt;TD bgcolor=&quot;#2FD000&quot;&gt;41&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;3514&lt;/TD&gt;&lt;TD bgcolor=&quot;#7B8400&quot;&gt;1&lt;/TD&gt;&lt;TD bgcolor=&quot;#C43B00&quot;&gt;4878&lt;/TD&gt;&lt;TD bgcolor=&quot;#08F700&quot;&gt;1&lt;/TD&gt;&lt;TD bgcolor=&quot;#0AF500&quot;&gt;2646&lt;/TD&gt;&lt;TD bgcolor=&quot;#03FC00&quot;&gt;98&lt;/TD&gt;&lt;TD bgcolor=&quot;#34CB00&quot;&gt;21147&lt;/TD&gt;&lt;TD bgcolor=&quot;#04FB00&quot;&gt;2&lt;/TD&gt;&lt;TD bgcolor=&quot;#F90600&quot;&gt;20.9&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot;&gt;16&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;463&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD bgcolor=&quot;#E71800&quot;&gt;2832&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;3&lt;/TD&gt;&lt;TD bgcolor=&quot;#CA3500&quot;&gt;3214&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;4&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD bgcolor=&quot;#D12E00&quot;&gt;3221&lt;/TD&gt;&lt;TD bgcolor=&quot;#04FB00&quot;&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot; COLSPAN=1&gt;Latency&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot; COLSPAN=2&gt;6643ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#E51A00&quot; COLSPAN=2&gt;28833ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot; COLSPAN=2&gt;19841ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#03FC00&quot; COLSPAN=2&gt;6668us&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot; COLSPAN=2&gt;483ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#EA1500&quot; COLSPAN=2&gt;47888ms&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot; COLSPAN=1&gt;Latency&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;1335us&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot; COLSPAN=2&gt;655us&lt;/TD&gt;&lt;TD bgcolor=&quot;#08F700&quot; COLSPAN=2&gt;933us&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;531us&lt;/TD&gt;&lt;TD bgcolor=&quot;#0DF200&quot; COLSPAN=2&gt;85us&lt;/TD&gt;&lt;TD bgcolor=&quot;#1CE300&quot; COLSPAN=2&gt;60814us&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD rowspan=2 bgcolor=&quot;#FFFFFF&quot; class=&quot;rowheader&quot;&gt;&lt;FONT SIZE=+1&gt;ext3&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot;&gt;4G&lt;/TD&gt;&lt;TD bgcolor=&quot;#AF5000&quot;&gt;437&lt;/TD&gt;&lt;TD bgcolor=&quot;#2DD200&quot;&gt;93&lt;/TD&gt;&lt;TD bgcolor=&quot;#FC0300&quot;&gt;3727&lt;/TD&gt;&lt;TD bgcolor=&quot;#6F9000&quot;&gt;1&lt;/TD&gt;&lt;TD bgcolor=&quot;#A35C00&quot;&gt;5631&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;1&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;2725&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot;&gt;99&lt;/TD&gt;&lt;TD bgcolor=&quot;#30CF00&quot;&gt;21484&lt;/TD&gt;&lt;TD bgcolor=&quot;#04FB00&quot;&gt;2&lt;/TD&gt;&lt;TD bgcolor=&quot;#F90600&quot;&gt;21.5&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot;&gt;16&lt;/TD&gt;&lt;TD bgcolor=&quot;#D82700&quot;&gt;938&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;1&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD bgcolor=&quot;#57A800&quot;&gt;4303&lt;/TD&gt;&lt;TD bgcolor=&quot;#06F900&quot;&gt;5&lt;/TD&gt;&lt;TD bgcolor=&quot;#B74800&quot;&gt;3743&lt;/TD&gt;&lt;TD bgcolor=&quot;#07F800&quot;&gt;6&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD bgcolor=&quot;#B44B00&quot;&gt;4304&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot; COLSPAN=1&gt;Latency&lt;/TD&gt;&lt;TD bgcolor=&quot;#10EF00&quot; COLSPAN=2&gt;412ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot; COLSPAN=2&gt;32024ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#40BF00&quot; COLSPAN=2&gt;5622ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot; COLSPAN=2&gt;6422us&lt;/TD&gt;&lt;TD bgcolor=&quot;#F80700&quot; COLSPAN=2&gt;469ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot; COLSPAN=2&gt;52114ms&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot; COLSPAN=1&gt;Latency&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;1574us&lt;/TD&gt;&lt;TD bgcolor=&quot;#04FB00&quot; COLSPAN=2&gt;760us&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot; COLSPAN=2&gt;713us&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;1644us&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot; COLSPAN=2&gt;13us&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;585us&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD rowspan=2 bgcolor=&quot;#FFFFFF&quot; class=&quot;rowheader&quot;&gt;&lt;FONT SIZE=+1&gt;logfs&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot;&gt;4G&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;1149&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;75&lt;/TD&gt;&lt;TD bgcolor=&quot;#51AE00&quot;&gt;13670&lt;/TD&gt;&lt;TD bgcolor=&quot;#B34C00&quot;&gt;5&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;3530&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;4&lt;/TD&gt;&lt;TD bgcolor=&quot;#CE3100&quot;&gt;1067&lt;/TD&gt;&lt;TD bgcolor=&quot;#5AA500&quot;&gt;81&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;5920&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;7&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;6.5&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;3&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot;&gt;16&lt;/TD&gt;&lt;TD bgcolor=&quot;#7F8000&quot;&gt;2033&lt;/TD&gt;&lt;TD bgcolor=&quot;#36C900&quot;&gt;9&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD bgcolor=&quot;#2CD300&quot;&gt;4731&lt;/TD&gt;&lt;TD bgcolor=&quot;#C63900&quot;&gt;22&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;1755&lt;/TD&gt;&lt;TD bgcolor=&quot;#3CC300&quot;&gt;8&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;1516&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot; COLSPAN=1&gt;Latency&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot; COLSPAN=2&gt;10944us&lt;/TD&gt;&lt;TD bgcolor=&quot;#08F700&quot; COLSPAN=2&gt;1810ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#32CD00&quot; COLSPAN=2&gt;4562ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot; COLSPAN=2&gt;29505us&lt;/TD&gt;&lt;TD bgcolor=&quot;#16E900&quot; COLSPAN=2&gt;54279us&lt;/TD&gt;&lt;TD bgcolor=&quot;#06F900&quot; COLSPAN=2&gt;2401ms&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot; COLSPAN=1&gt;Latency&lt;/TD&gt;&lt;TD bgcolor=&quot;#1EE100&quot; COLSPAN=2&gt;568ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot; COLSPAN=2&gt;9300us&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot; COLSPAN=2&gt;7881us&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot; COLSPAN=2&gt;2783ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot; COLSPAN=2&gt;1483us&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot; COLSPAN=2&gt;570ms&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD rowspan=2 bgcolor=&quot;#FFFFFF&quot; class=&quot;rowheader&quot;&gt;&lt;FONT SIZE=+1&gt;nilfs2&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot;&gt;4G&lt;/TD&gt;&lt;TD bgcolor=&quot;#57A800&quot;&gt;797&lt;/TD&gt;&lt;TD bgcolor=&quot;#11EE00&quot;&gt;95&lt;/TD&gt;&lt;TD bgcolor=&quot;#C13E00&quot;&gt;7118&lt;/TD&gt;&lt;TD bgcolor=&quot;#788700&quot;&gt;2&lt;/TD&gt;&lt;TD bgcolor=&quot;#B64900&quot;&gt;5186&lt;/TD&gt;&lt;TD bgcolor=&quot;#05FA00&quot;&gt;1&lt;/TD&gt;&lt;TD bgcolor=&quot;#02FD00&quot;&gt;2711&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;98&lt;/TD&gt;&lt;TD bgcolor=&quot;#0DF200&quot;&gt;24112&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot;&gt;2&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;617.3&lt;/TD&gt;&lt;TD bgcolor=&quot;#09F600&quot;&gt;29&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot;&gt;16&lt;/TD&gt;&lt;TD bgcolor=&quot;#798600&quot;&gt;2102&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;36&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD bgcolor=&quot;#986700&quot;&gt;4592&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;71&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;10886&lt;/TD&gt;&lt;TD bgcolor=&quot;#A75800&quot;&gt;56&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot; COLSPAN=1&gt;Latency&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;20454us&lt;/TD&gt;&lt;TD bgcolor=&quot;#10EF00&quot; COLSPAN=2&gt;2767ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#1AE500&quot; COLSPAN=2&gt;2788ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#D82700&quot; COLSPAN=2&gt;25974us&lt;/TD&gt;&lt;TD bgcolor=&quot;#05FA00&quot; COLSPAN=2&gt;21810us&lt;/TD&gt;&lt;TD bgcolor=&quot;#0BF400&quot; COLSPAN=2&gt;3432ms&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot; COLSPAN=1&gt;Latency&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot; COLSPAN=2&gt;4928ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#13EC00&quot; COLSPAN=2&gt;1288us&lt;/TD&gt;&lt;TD bgcolor=&quot;#0BF400&quot; COLSPAN=2&gt;1020us&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;1339us&lt;/TD&gt;&lt;TD bgcolor=&quot;#3CC300&quot; COLSPAN=2&gt;358us&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot; COLSPAN=2&gt;294us&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD rowspan=2 bgcolor=&quot;#FFFFFF&quot; class=&quot;rowheader&quot;&gt;&lt;FONT SIZE=+1&gt;ext4&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot;&gt;4G&lt;/TD&gt;&lt;TD bgcolor=&quot;#AD5200&quot;&gt;443&lt;/TD&gt;&lt;TD bgcolor=&quot;#2BD400&quot;&gt;91&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;18315&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;2&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;9299&lt;/TD&gt;&lt;TD bgcolor=&quot;#0BF400&quot;&gt;2&lt;/TD&gt;&lt;TD bgcolor=&quot;#10EF00&quot;&gt;2602&lt;/TD&gt;&lt;TD bgcolor=&quot;#05FA00&quot;&gt;99&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;25041&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;2&lt;/TD&gt;&lt;TD bgcolor=&quot;#F90600&quot;&gt;22.4&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot;&gt;16&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;3567&lt;/TD&gt;&lt;TD bgcolor=&quot;#13EC00&quot;&gt;8&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD bgcolor=&quot;#50AF00&quot;&gt;4369&lt;/TD&gt;&lt;TD bgcolor=&quot;#1EE100&quot;&gt;7&lt;/TD&gt;&lt;TD bgcolor=&quot;#B54A00&quot;&gt;3792&lt;/TD&gt;&lt;TD bgcolor=&quot;#0BF400&quot;&gt;7&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD bgcolor=&quot;#B14E00&quot;&gt;4393&lt;/TD&gt;&lt;TD bgcolor=&quot;#09F600&quot;&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot; COLSPAN=1&gt;Latency&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;32264us&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot; COLSPAN=2&gt;920ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot; COLSPAN=2&gt;926ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#48B700&quot; COLSPAN=2&gt;12851us&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot; COLSPAN=2&gt;14137us&lt;/TD&gt;&lt;TD bgcolor=&quot;#14EB00&quot; COLSPAN=2&gt;5042ms&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot; COLSPAN=1&gt;Latency&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot; COLSPAN=2&gt;530us&lt;/TD&gt;&lt;TD bgcolor=&quot;#18E700&quot; COLSPAN=2&gt;1451us&lt;/TD&gt;&lt;TD bgcolor=&quot;#16E900&quot; COLSPAN=2&gt;1316us&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot; COLSPAN=2&gt;393us&lt;/TD&gt;&lt;TD bgcolor=&quot;#44BB00&quot; COLSPAN=2&gt;401us&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;771us&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD rowspan=2 bgcolor=&quot;#FFFFFF&quot; class=&quot;rowheader&quot;&gt;&lt;FONT SIZE=+1&gt;ext4-panda&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot;&gt;1496M&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;106&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;96&lt;/TD&gt;&lt;TD bgcolor=&quot;#1AE500&quot;&gt;16838&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;8&lt;/TD&gt;&lt;TD bgcolor=&quot;#14EB00&quot;&gt;8865&lt;/TD&gt;&lt;TD bgcolor=&quot;#A45B00&quot;&gt;7&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;663&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;99&lt;/TD&gt;&lt;TD bgcolor=&quot;#26D900&quot;&gt;22243&lt;/TD&gt;&lt;TD bgcolor=&quot;#6B9400&quot;&gt;12&lt;/TD&gt;&lt;TD bgcolor=&quot;#F60900&quot;&gt;30.1&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;1&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot;&gt;16&lt;/TD&gt;&lt;TD bgcolor=&quot;#08F700&quot;&gt;3479&lt;/TD&gt;&lt;TD bgcolor=&quot;#669900&quot;&gt;26&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD bgcolor=&quot;#718E00&quot;&gt;4035&lt;/TD&gt;&lt;TD bgcolor=&quot;#FF0000&quot;&gt;23&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot;&gt;8760&lt;/TD&gt;&lt;TD bgcolor=&quot;#6F9000&quot;&gt;65&lt;/TD&gt;&lt;TD&gt;+++++&lt;/TD&gt;&lt;TD&gt;+++&lt;/TD&gt;&lt;TD bgcolor=&quot;#0EF100&quot;&gt;10388&lt;/TD&gt;&lt;TD bgcolor=&quot;#CE3100&quot;&gt;63&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot; COLSPAN=1&gt;Latency&lt;/TD&gt;&lt;TD bgcolor=&quot;#03FC00&quot; COLSPAN=2&gt;78219us&lt;/TD&gt;&lt;TD bgcolor=&quot;#19E600&quot; COLSPAN=2&gt;3925ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;961ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#51AE00&quot; COLSPAN=2&gt;13732us&lt;/TD&gt;&lt;TD bgcolor=&quot;#31CE00&quot; COLSPAN=2&gt;104ms&lt;/TD&gt;&lt;TD bgcolor=&quot;#00FF00&quot; COLSPAN=2&gt;1251ms&lt;/TD&gt;&lt;TD class=&quot;size&quot; bgcolor=&quot;#FFFFFF&quot; COLSPAN=1&gt;Latency&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;1190us&lt;/TD&gt;&lt;TD bgcolor=&quot;#22DD00&quot; COLSPAN=2&gt;1801us&lt;/TD&gt;&lt;TD bgcolor=&quot;#2AD500&quot; COLSPAN=2&gt;1892us&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;762us&lt;/TD&gt;&lt;TD bgcolor=&quot;#09F600&quot; COLSPAN=2&gt;61us&lt;/TD&gt;&lt;TD bgcolor=&quot;#01FE00&quot; COLSPAN=2&gt;671us&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;br /&gt;
Click &lt;a href=&quot;http://roy.gaast.net/~wilmer/bonniepp.html&quot;  class=&quot;bb-url&quot;&gt;here&lt;/a&gt; for a table not f*cked up by my blog software.&lt;br /&gt;
&lt;br /&gt;
Although the throughput numbers for ext3 are pretty similar for non-aligned and aligned access, look at the latency numbers. Unfortunately I haven&#039;t got a clue how Bonnie++ calculates these and can&#039;t find very good documentation on it. Throughput may be average and latency worst-case? Either way, as you can see a misaligned partition can cause some slowdowns.&lt;br /&gt;
&lt;br /&gt;
What surprised me more is that a switch to ext4fs sped up things a lot more, up to the point that the performance is perfectly reasonable! I&#039;m running with this SD as my root filesystem now and everything just works. (While before a simple apt-get install run could take several minutes.)&lt;br /&gt;
&lt;br /&gt;
While I was at it, I also tried out logfs and nilfs2, which are officially optimised for flash media. However, AFAIK they&#039;re more meant for raw NAND storage, not for block devices with all the NAND logic abstracted away (like anything you buy in stores these days). Not worth it for these SDs.&lt;br /&gt;
&lt;br /&gt;
Obviously this test is far from scientific. Only in the case of ext4-panda have I run the test five times to then pick a decent result (there were some outliers in all areas). All other tests were done on a freshly formatted filesystem, which I&#039;m sure also doesn&#039;t make the result that reliable.&lt;br /&gt;
&lt;br /&gt;
Just my 2 cents! But my Pandaboard&#039;s definitely happier now. Here&#039;s hoping that wear leveling works well..&lt;br /&gt;
&lt;br /&gt;
If you&#039;re interested, &lt;a href=&quot;https://wiki.linaro.org/WorkingGroups/Kernel/Projects/FlashCardSurvey&quot;  class=&quot;bb-url&quot;&gt;here&lt;/a&gt; is a more thorough overview of SD card performance. The LWN article about flash storage it links to is interesting too. The Flash card I used here is a 32GB class 10 Transcend card.&lt;br /&gt;
  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    OSS, </dc:subject>
    <dc:date>2011-06-13T21:03:53Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=70</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=70</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/69-guid.html">
    <title>Splitting PDFs with pyPdf</title>
    <link>http://wilmer.gaa.st/blog/archives/69-Splitting-PDFs-with-pyPdf.html</link>
    <description>
    A simple task, yet I couldn&#039;t find a quick cmdline to do it with, apart from pdftk, 15MB of Java rubbish.&lt;br /&gt;
&lt;br /&gt;
Instead, here only 10 or so lines of Python. It was so fast I wasn&#039;t sure if it worked until I saw the results were there. Usage: split [prefix] [infiles...]. Multiple infiles possible. First argument is the filename prefix to use for all created files.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;bb-code-title&quot;&gt;CODE:&lt;/div&gt;&lt;div class=&quot;bb-code&quot;&gt;import&amp;#160;pyPdf&lt;br /&gt;
import&amp;#160;sys&lt;br /&gt;
&lt;br /&gt;
n&amp;#160;=&amp;#160;0&lt;br /&gt;
for&amp;#160;f&amp;#160;in&amp;#160;sys.argv&amp;#91;2&amp;#58;&amp;#93;&amp;#58;&lt;br /&gt;
	f&amp;#160;=&amp;#160;pyPdf.PdfFileReader&amp;#40;open&amp;#40;f&amp;#41;&amp;#41;&lt;br /&gt;
	for&amp;#160;p&amp;#160;in&amp;#160;f.pages&amp;#58;&lt;br /&gt;
		of&amp;#160;=&amp;#160;pyPdf.PdfFileWriter&amp;#40;&amp;#41;&lt;br /&gt;
		of.addPage&amp;#40;p&amp;#41;&lt;br /&gt;
		of.write&amp;#40;open&amp;#40;&quot;%s-%03d.pdf&quot;&amp;#160;%&amp;#160;&amp;#40;sys.argv&amp;#91;1&amp;#93;,&amp;#160;n&amp;#41;,&amp;#160;&quot;w&quot;&amp;#41;&amp;#41;&lt;br /&gt;
		n&amp;#160;+=&amp;#160;1&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Don&#039;t pay attention to Serendipity screwing up the code layout. We all know it&#039;s rubbish, I just can&#039;t be arsed to migrate to something better. :-/  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    </dc:subject>
    <dc:date>2011-06-03T22:04:02Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=69</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=69</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/68-guid.html">
    <title>dnsrev</title>
    <link>http://wilmer.gaa.st/blog/archives/68-dnsrev.html</link>
    <description>
    As a bit of a cloud &quot;sceptic&quot; I still like to waste too much time maintaining my own network/IT infrastructure. :&gt; I&#039;m definitely trying to avoid the more tedious stuff though. I started using &lt;a href=&quot;http://www.puppetlabs.com/&quot;  class=&quot;bb-url&quot;&gt;Puppet&lt;/a&gt; a while ago which definitely helps.&lt;br /&gt;
&lt;br /&gt;
Last week I was looking for a way to automatically populate DNS reverse lookup zones. The only thing I could find was &lt;a href=&quot;http://www.mkrdns.org/&quot;  class=&quot;bb-url&quot;&gt;mkrdns&lt;/a&gt; which is unmaintained for almost ten years and doesn&#039;t seem to support IPv6. So I decided to write my own thing, &lt;a href=&quot;http://gaa.st/dnsrev&quot;  class=&quot;bb-url&quot;&gt;dnsrev&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
It&#039;s pretty simple, written in Python with help from some modules. It can read any number of zonefiles and update any number of reverse zonefiles. There&#039;s no need for any kind of 1:1 mapping between them, so it can deal with multiple netblocks in one zonefile, etc. I hope it&#039;ll be useful to someone. Comments, suggestions and patches are welcome.  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    Development, </dc:subject>
    <dc:date>2011-05-24T00:09:14Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=68</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=68</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/67-guid.html">
    <title>Shiny happy hardware</title>
    <link>http://wilmer.gaa.st/blog/archives/67-Shiny-happy-hardware.html</link>
    <description>
    For years I&#039;m using &lt;a href=&quot;http://winterm.gaast.net/&quot;  class=&quot;bb-url&quot;&gt;Winterms&lt;/a&gt; as simple home &quot;servers&quot;. It was a fun project to work on and some people were even nice enough to send me some examples of more powerful (relatively, we&#039;re talking about ~300MHz here at most) hardware. Two of them are still working as nameservers/printservers and one of them even hosted the Winterm hacking website for a while.&lt;br /&gt;
&lt;br /&gt;
But they&#039;re getting old, slow, and pretty painful to upgrade. Time to move on I&#039;m afraid. So before my last trip to the US, I ordered two shiny pieces of hardware: A &lt;a href=&quot;http://www.pandaboard.org/&quot;  class=&quot;bb-url&quot;&gt;Pandaboard&lt;/a&gt; and an &lt;a href=&quot;http://developer.nvidia.com/tegra/tegra-devkit-features&quot;  class=&quot;bb-url&quot;&gt;Nvidia Tegra developer board&lt;/a&gt;. Due to circumstances, I didn&#039;t really expect both (or even either) of them to arrive - Nvidia seemed to send the board only to people who have projects they find interesting/important (stuff like the &lt;a href=&quot;http://en.wikipedia.org/wiki/Motorola_Xoom&quot;  class=&quot;bb-url&quot;&gt;Motorola Xoom&lt;/a&gt; probably), and the Pandaboards never seem to be in stock.&lt;br /&gt;
&lt;br /&gt;
Yet, here I am with both of them, wondering which one to actually use. :-)&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://fotos.gaast.net/stuff/20110423_armboards.jpeg&quot;  class=&quot;bb-url&quot;&gt;&lt;img src=&quot;http://fotos.gaast.net/stuff/20110423s_armboards.jpeg&quot; alt=&quot;http://fotos.gaast.net/stuff/20110423s_armboards.jpeg&quot; class=&quot;bb-image&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Left: Pandaboard, right: Tegra2 250 Harmony board&lt;br /&gt;
&lt;br /&gt;
I guess I&#039;ll just write down my findings here so far. I&#039;ll probably end up using both, one as a server and the other one to run stuff like &lt;a href=&quot;http://www.xbmc.org/&quot;  class=&quot;bb-url&quot;&gt;xbmc&lt;/a&gt; on my TV.&lt;br /&gt;
&lt;br /&gt;
Both boards seem quite similar, spec-wise. Two 1GHz ARM cores, 1G of RAM, USB, sound, networking (including WiFi and Bluetooth), HDMI output, and an SD card slot. The Pandaboard has an internal antenna, no clue about the range.&lt;br /&gt;
&lt;br /&gt;
Although both boards&#039; USB ports apparently aren&#039;t really meant for powering 2.5&quot; USB HDDs, it seems to work quite well anyway. Which is good, because SD cards as root filesystems seems like a bad idea. Did you know that (according to &lt;a href=&quot;http://www.coker.com.au/bonnie++/&quot;  class=&quot;bb-url&quot;&gt;bonnie++&lt;/a&gt;) a desktop hard disk from 2007 outperforms SD cards (at least in the Pandaboard and Tegra) not just on sequential reads, but also on seeks? So yeah, I may be using USB HDDs instead, which sadly means more power usage. :-( Especially in the Pandaboard SD performance is too bad to be usable.&lt;br /&gt;
&lt;br /&gt;
One big advantage of the Pandaboard seems to be the community. A pretty busy (and generally helpful) IRC channel, lots of info online on Wikis. The Pandaboard iss &quot;just another OMAP architecture&quot; so lots of stuff that worked for BeagleBoard should work on the Panda with some customizations. Canonical/Ubuntu also &lt;a href=&quot;https://wiki.ubuntu.com/ARM/OMAP&quot;  class=&quot;bb-url&quot;&gt;support&lt;/a&gt; the thing officially.&lt;br /&gt;
&lt;br /&gt;
Here comes the biggest contrast with the Tegra. Nvidia seems to be &lt;a href=&quot;http://developer.nvidia.com/tegra/forum/linux-support-becoming-unsupported&quot;  class=&quot;bb-url&quot;&gt;too busy with Android&lt;/a&gt;, the result is that there&#039;s little support for doing other stuff with the board. The only thing you get for now is L4T (Linux 4 Tegra), which is an Ubuntu Jaunty (yes, 9.04, that&#039;s two years ago by now..) image you can run on it. There are efforts on getting Lucid to run, don&#039;t know where those are ATM. But one complication there is some binary-only drivers/helpers (like nvrm_daemon, which I guess manages the memory shared between OS and video/etc), which means troubles getting X to work after an upgrade. Ouch.&lt;br /&gt;
&lt;br /&gt;
The Panda also certainly wins in the bootloader department, as it just loads uboot stuff from a FAT partition on the SD card (tricky part here is that if you do &lt;strong&gt;anything&lt;/strong&gt; wrong with the partitioning and formatting of this SD card, the boot process will just fail silently). For flashing the Tegra you need a proprietary fastboot flasher binary. Possibly, once booted, I can just write my kernels to NAND myself from inside the OS, but I haven&#039;t yet tried this.&lt;br /&gt;
&lt;br /&gt;
So yes, with this all in mind, it&#039;s a delight to run a normal (and not outdated) Debian/Ubuntu install on a Pandaboard. Video is also supposed to work flawlessly almost out of the box on Ubuntu. However, I seem to be unlucky/doing it wrong since the framerate is not impressive, and playback seems buggy. (While the little video playback I&#039;ve done on the Tegra was pretty good, super smooth, and with only 10% of CPU usage!)&lt;br /&gt;
&lt;br /&gt;
For my original goal, running a simple home server, I feel that both boards are suitable - I&#039;d just run Debian inside a chroot on the Tegra so the helper daemons (and maybe some video stuff) can run outside it. But before I get this video stuff to work, I have some work to do. And hopefully, if I wait for long enough, some other patient souls out there will also fix some of these problems...  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    OSS, </dc:subject>
    <dc:date>2011-04-23T13:05:00Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=67</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=67</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/66-guid.html">
    <title>Xen horror, just upgraded my box to Squeeze</title>
    <link>http://wilmer.gaa.st/blog/archives/66-Xen-horror,-just-upgraded-my-box-to-Squeeze.html</link>
    <description>
    Of course I could just &lt;strong&gt;not&lt;/strong&gt; upgrade, but I&#039;d have to do it sooner or later anyway..&lt;br /&gt;
&lt;br /&gt;
It looks like Xen, now that it&#039;s owned by Citrix, also suffers from the &lt;a href=&quot;http://bugs.bitlbee.org/bitlbee/browser/devel/protocols/msn/soap.c#L8&quot;  class=&quot;bb-url&quot;&gt;XML manager syndrome&lt;/a&gt;. At least the extremely annoying &lt;a href=&quot;http://www.google.com/search?q=%22clocksource%2F0%3A+Time+went+backwards%22&quot;  class=&quot;bb-url&quot;&gt;clock bug&lt;/a&gt; was fixed, which means I get &gt;4ms precision in timing again.&lt;br /&gt;
&lt;br /&gt;
Just dumping this here in my blog since more people seem to have this problem and aren&#039;t getting very helpful answers so far. Or maybe I just didn&#039;t try the right Google queries..&lt;br /&gt;
&lt;br /&gt;
This:&lt;br /&gt;
&lt;pre&gt;hypnotoad:/tmp# xm suspend bijtje&lt;br /&gt;Error: Domain is not managed by Xend lifecycle support.&lt;br /&gt;Usage: xm suspend &amp;lt;DomainName&gt;&lt;br /&gt;
Suspend a Xend managed domain&lt;/pre&gt;means you&#039;re not using the shiny new (whatever the purpose is) lifecycle tool that keeps track of domain configs and other stuff in /var/lib/xend/domains/$UUID/. You can use &quot;xm new&quot; to set this up, except this is broken on Debian:&lt;br /&gt;
&lt;pre&gt;hypnotoad:/tmp# xm new&lt;br /&gt;Unexpected error: &amp;lt;type &#039;exceptions.ImportError&#039;&gt;&lt;br /&gt;...&lt;br /&gt;ImportError: No module named xmlproc&lt;/pre&gt;This, my dear reader, means that Debian&#039;s shipping Xen utils that depend on a Python XML module that was actually removed from Debian since it&#039;s not maintained by upstream anymore.&lt;br /&gt;
&lt;br /&gt;
So I was just trying to figure out how to make this all go, and then I realised:&lt;br /&gt;
&lt;pre&gt;hypnotoad:/tmp# xm save bijtje bijtje.sav&lt;br /&gt;hypnotoad:/tmp# xm restore bijtje.sav&lt;/pre&gt;Oh look! I can still do it. I just have to tell Xen where to save the statefile.&lt;br /&gt;
&lt;br /&gt;
So in short:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Xen is also suffering from XML-itus&lt;br /&gt;
&lt;li&gt;Debian drops packages that other packages still depend on&lt;br /&gt;
&lt;li&gt;Use &quot;xml save&quot;, not &quot;xml suspend&quot;&lt;/ul&gt;  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    </dc:subject>
    <dc:date>2011-02-13T23:49:48Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=66</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=66</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/65-guid.html">
    <title>Burn all spammers!</title>
    <link>http://wilmer.gaa.st/blog/archives/65-Burn-all-spammers!.html</link>
    <description>
    I have a habit of always having a tail -f /var/log/mail.log running on my mailserver somewhere. It&#039;s noisy, but has been useful in the past. Over the last weeks/months, I noticed open relay probes are getting incredibly popular (again), but also extremely aggressive. They&#039;re frequent, done by hundreds of botnet drones all the time.&lt;br /&gt;
&lt;br /&gt;
Obviously my Postfix is configured properly, so this is mostly a waste of (fairly scarce, on a DSL box several km away from the exchange) bandwidth and annoying noise in the logs.  But getting rid of it is harder than I hoped. :-(&lt;br /&gt;
&lt;br /&gt;
This is what I have now: iptables -I FORWARD -p tcp --sport 25 -s 192.168.0.0/16 -m string --algo kmp --string &#039;554 5.7.1 &lt;&#039; -j REJECT --reject-with tcp-reset&lt;br /&gt;
&lt;br /&gt;
This works as-in it kills the connection as soon as my mailserver sends a &quot;554 5.7.1 Relaying denied&quot; response. The REJECT goes to the mailserver, but together with the tcp-reset this also kills the TCP connection on both sides fairly quickly. However, the little fuckers are also using pipelining, so I still get a screen full of logspam for pretty much every attempt. Although this is mostly cosmetic, I&#039;d love to get rid of that crap..&lt;br /&gt;
&lt;br /&gt;
What I really wonder is, WTF are they even doing this? Are open relays really still that common? Don&#039;t they have their botnets already? I guess the open relays are nice multipliers and are also more willing to deal with stuff like graylisting...&lt;br /&gt;
&lt;br /&gt;
[edit]Looks like &quot;554 5.7.1&quot; is not just about &quot;relaying denied&quot;, so possibly not such a great idea. Don&#039;t try this at home!  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    </dc:subject>
    <dc:date>2010-08-08T14:31:06Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=65</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=65</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/64-guid.html">
    <title>BitlBee, alive and kicking</title>
    <link>http://wilmer.gaa.st/blog/archives/64-BitlBee,-alive-and-kicking.html</link>
    <description>
    As quin in #bitlbee said a little while ago, I stole someone&#039;s mojo and found an amazing amount of productivity when it comes to writing code, and it feels great. I&#039;m quit relieved that I can still find plenty of time and motivation to work on BitlBee even though during the week I already spend a lot of time at the keyboard. This after not working much on it for probably at least a year.&lt;br /&gt;
&lt;br /&gt;
I managed to finally do the &lt;a href=&quot;http://wiki.bitlbee.org/UiFix&quot;  class=&quot;bb-url&quot;&gt;IRC core rewrite + abstraction&lt;/a&gt; that I intended to do for so long already. It&#039;ll allow adding non-IRC frontends to BitlBee if someone ever wants to, and also the IRC core has the flexibility it needs to add many more features that I wanted for years already, and were impossible to implement without adding even more horrible hacks.&lt;br /&gt;
&lt;br /&gt;
There&#039;s also a libpurple-based backend for a few months already, plus file transfer support (written by Uli Meis and Marijn Kruisselbrink actually, it just took me a long time to merge the &gt;3000-line diff, fortunately &lt;a href=&quot;http://code.bitlbee.org/rb/&quot;  class=&quot;bb-url&quot;&gt;Review Board&lt;/a&gt; did make it a lot less painful), all thrown into a bleeding edge branch called &lt;a href=&quot;http://code.bitlbee.org/lh/killerbee&quot;  class=&quot;bb-url&quot;&gt;killerbee&lt;/a&gt;. It&#039;s code that needs a little bit more work before I really like it.&lt;br /&gt;
&lt;br /&gt;
Also, BitlBee has Twitter support for about two months already (thanks to hard work done by Geert Mulders), and according to the application registration page on Twitter it has almost 500 users already. It&#039;s quite likely that many of those used it for five minutes and went back to a client with more features, but it&#039;s still nice to see.&lt;br /&gt;
&lt;br /&gt;
Last of all, to help with the current lack/fragmentation of online documentation there&#039;s now a &lt;a href=&quot;http://wiki.bitlbee.org/&quot;  class=&quot;bb-url&quot;&gt;BitlBee Wiki&lt;/a&gt;. Its supposed to have easy-to-find docs about common FAQs, but the easy-to-find part isn&#039;t really working out yet since it hardly shows up in any search results. Hopefully this hyperlink from a high-profile weblog will improve that a tiny bit. ;o) Possibly the content is not that good yet either, so if anyone has something to add to it, by all means, please do!&lt;br /&gt;
&lt;br /&gt;
With a 1.2.8 release coming up, BitlBee is totally alive - and is for almost eight years already. It&#039;s been a fun project to work on so far, and hopefully will be for a long time.  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    BitlBee, </dc:subject>
    <dc:date>2010-06-10T23:43:23Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=64</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=64</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/63-guid.html">
    <title>Sending files using netcat</title>
    <link>http://wilmer.gaa.st/blog/archives/63-Sending-files-using-netcat.html</link>
    <description>
    There are plenty of articles about this already, but I couldn&#039;t find anyone who wrote a script to automate this simple task of transferring files using just netcat.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;bb-code-title&quot;&gt;CODE:&lt;/div&gt;&lt;div class=&quot;bb-code&quot;&gt;wilmer@ruby&amp;#58;~/src/bitlbee/devel$&amp;#160;ncsend.sh&amp;#160;/audio/03\&amp;#160;Tree\&amp;#160;of\&amp;#160;Life.mp3&amp;#160;&lt;br /&gt;
nc&amp;#160;87.198.255.202&amp;#160;6886&amp;#160;|&amp;#160;pv&amp;#160;&amp;#62;&amp;#160;03\&amp;#160;Tree\&amp;#160;of\&amp;#160;Life.mp3&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Run it and it will give you a command to run/copy-paste on the remote side/pass to the person who wants the file. It uses pv as a nice progress indicator, and the script assumes pv is available on both sending and receiving ends. But that&#039;s good, everyone &lt;i&gt;should&lt;/i&gt; have &lt;a href=&quot;http://www.ivarch.com/programs/pv.shtml&quot;&gt;pv&lt;/a&gt; installed on his/her machine.&lt;br /&gt;
&lt;br /&gt;
I&#039;d just include the code in this little article, but Serendipity would screw up the layout completely, so instead you can &lt;a href=&quot;/downloads/ncsend.sh&quot;&gt;download it here&lt;/a&gt;.  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    OSS, </dc:subject>
    <dc:date>2010-05-22T20:34:34Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=63</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=63</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/62-guid.html">
    <title>Gotta love Unix hacks...</title>
    <link>http://wilmer.gaa.st/blog/archives/62-Gotta-love-Unix-hacks....html</link>
    <description>
    Forgetting your LUKS cryptopart password sucks. But writing a shell oneliner like this:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;bb-code-title&quot;&gt;CODE:&lt;/div&gt;&lt;div class=&quot;bb-code&quot;&gt;for&amp;#160;i&amp;#160;in&amp;#160;P{a,4}ssw{0,o}rd{-,}Permut{4,a}tions;&amp;#160;do&lt;br /&gt;
&amp;#160;&amp;#160;echo&amp;#160;-n&amp;#160;$i&amp;#160;&amp;#62;&amp;#160;/tmp/pwd&lt;br /&gt;
&amp;#160;&amp;#160;cryptsetup&amp;#160;luksOpen&amp;#160;/dev/loop0&amp;#160;test&amp;#160;--keyfile&amp;#160;/tmp/pwd&amp;#160;&amp;amp;&amp;amp;&amp;#160;echo&amp;#160;$i&lt;br /&gt;
done&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
is awesome. :-) Took me only ten minutes to get it back once I had a copy of the superblock onto my workstation.  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    </dc:subject>
    <dc:date>2010-05-05T23:35:07Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=62</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=62</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/61-guid.html">
    <title>spamass-milter and IPv6</title>
    <link>http://wilmer.gaa.st/blog/archives/61-spamass-milter-and-IPv6.html</link>
    <description>
    While migrating my mailserver from Ubuntu Dapper to Debian Lenny, I noticed spamass-milter didn&#039;t want to start:&lt;br /&gt;
&lt;br /&gt;
Could not parse &quot;2001:770:017b::&quot; as a network&lt;br /&gt;
&lt;br /&gt;
After scratching my head on that for a while (it worked on the old box!) I remembered two years ago I spent some time adding IPv6 support to spamass-milter myself. Support as-in allowing IPv6 subnets to be whitelisted/auto-accepted. Very useful if you want mails from your local IPv6 machines to be accepted automatically without waiting for 10s while spamassasin is checking if you&#039;re not a spammer...&lt;br /&gt;
&lt;br /&gt;
I never published the thing and now I could hardly find back the damn thing at all. :-)&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://wilmer.gaast.net/downloads/spamass-milter-ipv6.diff&quot;  class=&quot;bb-url&quot;&gt;http://wilmer.gaast.net/downloads/spamass-milter-ipv6.diff&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Just to make sure I won&#039;t lose it again ... and maybe it&#039;ll be useful for someone else.&lt;br /&gt;
&lt;br /&gt;
Also just de-Ubuntufied my laptop. Debian&#039;s doing great so far: Suspend and Resume actually work better out of the box, but fonts look a bit ugly (and sometimes really less readable I&#039;m afraid) compared to Ubuntu...  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    OSS, </dc:subject>
    <dc:date>2010-01-31T11:51:51Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=61</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=61</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/60-guid.html">
    <title>edns-client-ip</title>
    <link>http://wilmer.gaa.st/blog/archives/60-edns-client-ip.html</link>
    <description>
    Finally, the Internet-Draft I was working on with my team over the last months made it to the public.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://googlecode.blogspot.com/2010/01/proposal-to-extend-dns-protocol.html&quot;  class=&quot;bb-url&quot;&gt;http://googlecode.blogspot.com/2010/01/proposal-to-extend-dns-protocol.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.ietf.org/id/draft-vandergaast-edns-client-ip-00.txt&quot;  class=&quot;bb-url&quot;&gt;http://www.ietf.org/id/draft-vandergaast-edns-client-ip-00.txt&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This draft was the main purpose of my visit to IETF76 last year. I&#039;ll have to go to 77/78 this year then to hopefully get this idea accepted as a working group item.&lt;br /&gt;
&lt;br /&gt;
It&#039;s interesting to see all the comments coming up claiming that this is evil and meant for tracking purposes just because it has the name Google on it... :-/  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    Work, </dc:subject>
    <dc:date>2010-01-28T10:16:09Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=60</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=60</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/59-guid.html">
    <title>Running 32-bit 3D apps on 64-bit Debian NVIDIA systems</title>
    <link>http://wilmer.gaa.st/blog/archives/59-Running-32-bit-3D-apps-on-64-bit-Debian-NVIDIA-systems.html</link>
    <description>
    Because Intel on-board video isn&#039;t quite good enough at 3D and my somewhat old laptop with built-in NVIDIA chip wasn&#039;t doing all that well at X-Plane either, I bought an NVIDIA GT240 card. Mostly because it seemed to be a good performer without doubling the power consumption of my PC. Stuff wasn&#039;t working all that well though and I got pretty frustrated:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;bb-code-title&quot;&gt;QUOTE:&lt;/div&gt;&lt;div class=&quot;bb-quote&quot;&gt;X Error of failed request:  BadLength (poly request too large or internal Xlib length error)&lt;br /&gt;
  Major opcode of failed request:  135 (GLX)&lt;br /&gt;
  Minor opcode of failed request:  2 (X_GLXRenderLarge)&lt;br /&gt;
  Serial number of failed request:  1468&lt;br /&gt;
  Current serial number in output stream:  1483&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
was all X-Plane could tell me. Google Earth also didn&#039;t work and seemed more like Google Black hole to me. Both are 32-bit apps. A 64-bit binary of Flightgear did work. Sigh.&lt;br /&gt;
&lt;br /&gt;
After some poking I noticed the nvidia-glx package replaces /usr/lib{64,}/libGL* with its own versions, but didn&#039;t touch /usr/lib32. A-ha!&lt;br /&gt;
&lt;br /&gt;
The fix: Get a &lt;a href=&quot;http://packages.debian.org/sid/i386/nvidia-glx/download&quot;  class=&quot;bb-url&quot;&gt;32-bit version of nvidia-glx&lt;/a&gt;, extract it somewhere (dpkg -X) and copy all the files in its usr/lib to /usr/lib32, overwriting the libGL symlink that is currently there.&lt;br /&gt;
&lt;br /&gt;
Or, hmm, as I just found out: apt-get install nvidia-glx-ia32. I&#039;m glad someone thought of it already.&lt;br /&gt;
&lt;br /&gt;
Now X-Plane works perfectly (with maybe even ten times the frame rate I had with Intel on-board) and Google Earth can show me my house again.&lt;br /&gt;
&lt;br /&gt;
Just blogging this since so far a Google search for any part of the error above didn&#039;t give useful results.&lt;br /&gt;
&lt;br /&gt;
Now, I just have to find out if I can get a TV signal out of this thing somehow, since my TV was made long before HDMI was invented. :-/  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    Linux, </dc:subject>
    <dc:date>2009-12-30T12:46:22Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=59</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=59</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/58-guid.html">
    <title>Google Public DNS</title>
    <link>http://wilmer.gaa.st/blog/archives/58-Google-Public-DNS.html</link>
    <description>
    Today at work my first user facing product was released, &lt;a href=&quot;http://googleblog.blogspot.com/2009/12/introducing-google-public-dns.html&quot;  class=&quot;bb-url&quot;&gt;Google Public DNS&lt;/a&gt;. I&#039;ve worked a lot on it over the last months and it was actually the reason for my visit to NY this Summer. :-)&lt;br /&gt;
&lt;br /&gt;
But now, finally after a long time, I can actually start calling the thing by its name instead of saying &quot;my secret project at work&quot;, which makes me very happy.&lt;br /&gt;
&lt;br /&gt;
Praise, complaints and comments about the service are welcome! :-)  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    Work, </dc:subject>
    <dc:date>2009-12-04T00:13:03Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=58</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=58</wfw:commentRss>
    
    
</item>
<item rdf:about="http://wilmer.gaa.st/blog/archives/57-guid.html">
    <title>Back from Japan</title>
    <link>http://wilmer.gaa.st/blog/archives/57-Back-from-Japan.html</link>
    <description>
    I&#039;m back ... for almost two weeks already. Getting used again to bad weather (today&#039;s a very foggy and cold day in Dublin), working and all the other things of daily life. Japan was fantastic. I&#039;ll be careful to not sound like your average &quot;everything&#039;s better in Japan&quot; idiot, but admittedly, there were some things there I really liked.&lt;br /&gt;
&lt;br /&gt;
One of the first things I noticed was that a rule about escalators I really like is actually enforced over there. Wherever I&#039;ve been so far escalators are always full of people who don&#039;t understand how stairs work; they think the fact that the escalator goes up means they can just put their lazy feet on it and wait (forgetting that for lazy people we already invented elevators :-P). Many civilizations have tried introducing a &quot;stand still on the left, walk on the right&quot; rule, but Japan&#039;s the only place where I&#039;ve seen people all obeying it.&lt;br /&gt;
&lt;br /&gt;
Getting around there indeed turned out to be challenging at times. Even though people (at least from &quot;my generation&quot;) learn English for about ten years at school, many people still don&#039;t or hardly speak it. This was never really a problem though. Menus in restaurants have pictures and pointing at things is the most successful international language ever invented. :-) One of the first days I had sushi in a place just a few steps away from &lt;a href=&quot;http://www.kangetsu.com/sub7.htm&quot;  class=&quot;bb-url&quot;&gt;my hotel in Tokyo&lt;/a&gt;. While eating my meal, the man behind the bar (probably also the owner of the place) came to me with a map, asking me to point at where I come from. Also, the little origami bird he folded for me from my chopsticks wrapper is still sitting on my desk here. :-D&lt;br /&gt;
&lt;br /&gt;
The ramen place I went to for breakfast one of the first days was also amazing. Not so much because of the food (which was also good), but because of the size. Literally, it was a room of maybe just over 2m wide, about 10m deep, with a bar separating it into two small 10m × something areas. Two people working on one side, and ten seats on the other (all occupied, most of the time).&lt;br /&gt;
&lt;br /&gt;
My camera claims I made over 700 pictures there. Obviously there are many duplicates and worthless pictures, and after soring there will probably only be around 100 left. I hope to put them online soon, and probably with some more stories. I wrote too much now already.&lt;br /&gt;
&lt;br /&gt;
All I know is that I&#039;m definitely going there again.  
    </description>

    <dc:publisher>Wilmer's stuff</dc:publisher>
    <dc:creator>blog@wilmer.gaast.net (Wilmer van der Gaast)</dc:creator>
    <dc:subject>
    Japan, </dc:subject>
    <dc:date>2009-11-28T16:06:55Z</dc:date>
    <wfw:comment>http://wilmer.gaa.st/blog/wfwcomment.php?cid=57</wfw:comment>
        <wfw:commentRss>http://wilmer.gaa.st/blog/rss.php?version=1.0&amp;type=comments&amp;cid=57</wfw:commentRss>
    
    
</item>

</rdf:RDF>

