<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>The Party Line</title>
    <link rel="alternate" type="text/html" href="http://blog.tobez.org/" />
    <link rel="self" type="application/atom+xml" href="http://blog.tobez.org/atom.xml" />
    <id>tag:blog.tobez.org,2010-01-06://3</id>
    <updated>2010-01-07T15:29:23Z</updated>
    <subtitle>tobez&apos;s personal weblog</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 5.01</generator>

<entry>
    <title>Do not use synergy, use synergy+</title>
    <link rel="alternate" type="text/html" href="http://blog.tobez.org/2010/01/do-not-use-synergy-use-synergy.html" />
    <id>tag:blog.tobez.org,2010://3.117</id>

    <published>2010-01-07T15:26:28Z</published>
    <updated>2010-01-07T15:29:23Z</updated>

    <summary>For months, I&#8217;ve been plagued by intermittent mouse freezes on one of my boxes. It started after a regular Xorg upgrade. According to various mailing lists, that particular upgrade caused similar problems to a lot of people, so I tried...</summary>
    <author>
        <name>tobez</name>
        
    </author>
    
        <category term="FreeBSD" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Rants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="freebsd" label="freebsd" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="freebsdports" label="freebsd ports" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rants" label="rants" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="synergy" label="synergy" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="xorg" label="xorg" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.tobez.org/">
        <![CDATA[<p>For months, I&#8217;ve been plagued by intermittent
mouse freezes on one of my boxes.</p>

<p>It started after a regular
<a href="http://www.x.org/wiki/">Xorg</a>
upgrade.
According to various mailing lists,
that particular upgrade caused similar problems
to a lot of people, so I tried different suggested fixes.
No luck.</p>

<p>A bit later, Xorg on
<a href="http://www.freebsd.org/">FreeBSD</a>
was modified to fix the
reported problems.  But the upgrade did not fix
<em>my</em> problem.</p>

<p>Eventually I came to a realization that it is likely
that the problem is not with the mouse driver or with
any other part of Xorg.  Rather, it was a problem with
<a href="http://synergy2.sourceforge.net/">synergy</a>
client interaction with the new
<a href="http://xcb.freedesktop.org/">xcb</a>.
I even found
<a href="http://www.freebsd.org/cgi/query-pr.cgi?pr=127791">a problem report</a>
with a supposed fix to the
problem.  By the time I&#8217;ve found it, the fix was committed
to the
<a href="http://www.freshports.org/sysutils/synergy/">synergy port</a>,
and was subsequently rolled back
because it lead to other problems.  I tried the patch in the
PR anyway.  Still did not help me.</p>

<p>Not wanting to spend too much time on this,
I was coping with the delays and only occasionally,
when annoyed more than usual,
was trying to find another fix.  Unsuccessfully, I must add,
until this morning, when I discovered
<a href="http://code.google.com/p/synergy-plus/">synergy+</a>,
a maintenance fork of the original synergy.
I was not aware that synergy+ is basically a drop-in replacement
to synergy, the binaries having the same names as in the original.
Better still, synergy+ client works just fine with the original
synergy server.
So I&#8217;ve decided to give it a shot, removed the synergy package,
and installed the synergy+ port.
Voila, the freezes are gone.  I am a happy camper now.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Heart-attack date (mis)calculation</title>
    <link rel="alternate" type="text/html" href="http://blog.tobez.org/2009/03/heart-attack-date-miscalculation.html" />
    <id>tag:blog.tobez.org,2009://3.83</id>

    <published>2009-03-18T10:52:41Z</published>
    <updated>2009-03-18T10:56:25Z</updated>

    <summary>Me and my wife are going to Paris in April. So, some time ago we have ordered tickets from a popular Danish travel site, rejsefeber.dk. The tickets are for 2009-04-18. This morning I have got a shiny (HTML) email from...</summary>
    <author>
        <name>tobez</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Rants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="date" label="date" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="france" label="france" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="fuckup" label="fuckup" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="paris" label="paris" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rants" label="rants" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="travel" label="travel" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="woblomo" label="woblomo" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.tobez.org/">
        <![CDATA[<p>Me and my wife are going to Paris in April.
So, some time ago we have ordered
tickets from a popular Danish
travel site, rejsefeber.dk.</p>

<p>The tickets are for 2009-04-18.</p>

<p>This morning I have got a shiny (HTML) email from them
which said the following (loosely translated 
from Danish):</p>

<blockquote>
  <p>Bon Vojage.</p>
  
  <p>Hello Anton.</p>
  
  <p>In a moment you will be traveling to Paris!
  There are often many things that should be
  taken care of before the journey, and
  we would like to help you with practical details.
  We hope that you will find in this mail something
  that will make your journey even better.
  Have a good journey!</p>
</blockquote>

<p>After realizing that today is 2009-03-18,
I had my moment of panic, frantically searching
for the PDF with the electronic ticket,
verifying that I have not made a major fuckup
and that our tickets are indeed for April the 18th,
not March the 18th.</p>

<p>So the fuckup is not mine.  Fine.
But it would be nice to be absolutely really positively
sure, so I called their customer service.
The robot helpfully told me that </p>

<ul>
<li>this is a paid call (I don&#8217;t remember the exact amount per minute, but it was not peanuts);</li>
<li>I am number 10 in the queue. </li>
</ul>

<p>And there is no contact E-mail on the website.</p>

<p>So what do you think - is it a simple,
albeit embarrasing programming error
on behalf of rejsefeber.dk programmers,
or a secret plot to get some more money out
of customers induced into a state of panic?</p>

<p>At any rate,
I do not think I will be using their services
again.  If I need some excitement in my life,
there are better ways to obtain it.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Fun with the laptop</title>
    <link rel="alternate" type="text/html" href="http://blog.tobez.org/2009/03/fun-with-the-laptop.html" />
    <id>tag:blog.tobez.org,2009://3.79</id>

    <published>2009-03-11T21:03:17Z</published>
    <updated>2009-03-11T21:08:26Z</updated>

    <summary><![CDATA[Model: HP 2510p. We have: StateCPU temperature Idle, in dock82&deg;C Idle, on a table68&deg;C Idle, fan inlet is not on the table60&deg;C Compiling, fan outlet is not on the table68&deg;C The docking station covers about 90% of the outlet and...]]></summary>
    <author>
        <name>tobez</name>
        
    </author>
    
        <category term="Rants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="baddesign" label="bad design" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="hardware" label="hardware" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="laptop" label="laptop" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="woblomo" label="woblomo" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.tobez.org/">
        <![CDATA[<p>Model: <em>HP 2510p</em>.</p>

<p>We have:</p>

<table>
<tr>
<th width="70%">State</th><th>CPU temperature</th>
</tr>
<tr><td>Idle, in dock</td><td>82&deg;C</td></tr>
<tr><td>Idle, on a table</td><td>68&deg;C</td></tr>
<tr><td>Idle, fan inlet is not on the table</td><td>60&deg;C</td></tr>
<tr><td>Compiling, fan outlet is not on the table</td><td>68&deg;C</td></tr>
</table>

<p></p>

<p>The docking station covers about 90% of the outlet and some substantial
part of the inlet.</p>

<p>Make of this what you wish.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>rrdtool legend box rant</title>
    <link rel="alternate" type="text/html" href="http://blog.tobez.org/2009/03/rrdtool-legend-box-rant.html" />
    <id>tag:blog.tobez.org,2009://3.74</id>

    <published>2009-03-05T13:21:41Z</published>
    <updated>2009-03-05T16:21:33Z</updated>

    <summary>Last time I ranted about one thing that is wrong with rrdtool. It turns out that I, unfortunately, have more gripes to share. Let&#8217;s talk today about the legend control. The rrdtool&#8217;s language for controlling how the graph is going...</summary>
    <author>
        <name>tobez</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Hints" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Rants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="rants" label="rants" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rrdtool" label="rrdtool" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="unixtools" label="unix tools" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="woblomo" label="woblomo" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.tobez.org/">
        <![CDATA[<p><a href="http://blog.tobez.org/2009/03/rrdtool-cdef-restrictions-rant.html">Last time</a>
I ranted about one thing that is wrong with <a href="http://oss.oetiker.ch/rrdtool/">rrdtool</a>.</p>

<p>It turns out that I, unfortunately, have more gripes
to share.  Let&#8217;s talk today about the legend control.</p>

<p>The rrdtool&#8217;s language for controlling how the graph
is going to look and feel is pretty rich and complex.
Among other things, it has a bunch of graphing commands
that are able to manipulate the legend section of the graph.
Some of those commands do nothing else,
while the other commands only modify the legend
as a side effect, and primarily exist for
doing something else.</p>

<p>Let&#8217;s take as an example the graph below:</p>

<pre><code>rrdtool graph x.png
  --end 1235800000 --start end-150000
  'DEF:data=some.rrd:data:AVERAGE'
  'CDEF:sine=data,POP,1235800000,TIME,-,10000,/,SIN'
  'LINE1:sine#0000ff:a sine of foo\l'
  'CDEF:cosine=data,POP,1235800000,TIME,-,5000,/,COS'
  'LINE1:cosine#00ff00:a cosine of bar'
</code></pre>

<p><img src="http://www.tobez.org/images/blog/rrdtool/sine.png" alt="" /></p>

<p>The trouble is that there is <em>no</em> instruction which
can produce a so called &#8220;legend box&#8221; (a small blue
box next to the &#8220;a sine of foo&#8221; legend text)
without doing something else in the process.
<em>All</em> of the commands that actually graph something
can optionally produce a legend box, but there
is no other way to make it.</p>

<p>If we extend our sine example with some nice
<a href="http://blog.tobez.org/2009/03/rrdtool-cdef-restrictions-rant.html">downtime background</a> (in Soviet Russia sines
can have a downtime!), we get a nice picture like this:</p>

<pre><code>rrdtool graph x.png
  --end 1235800000 --start end-150000
  'DEF:data=some.rrd:data:AVERAGE'
  'CDEF:downtime=data,0,0,IF,
    TIME,1235769489,GE,TIME,1235779489,LE,*,
    TIME,1235689489,GE,TIME,1235729489,LE,*,+,+'
  'CDEF:sine=data,POP,1235800000,TIME,-,10000,/,SIN'
  'LINE1:sine#0000ff:a sine of foo\l'
  'CDEF:cosine=data,POP,1235800000,TIME,-,5000,/,COS'
  'LINE1:cosine#00ff00:a cosine of bar\l'
  <strong>'TICK:downtime#ffe0e0:1.0:downtime'</strong>
</code></pre>

<p><img src="http://www.tobez.org/images/blog/rrdtool/sine-with-downtime.png" alt="" /></p>

<p>But let&#8217;s suppose that we&#8217;d also like to add background
coloring for uptime, and indicate that in a legend.
Let&#8217;s use another CDEF for uptime, which will be just
the opposite of our downtime CDEF:</p>

<pre><code>rrdtool graph x.png
  --end 1235800000 --start end-150000
  'DEF:data=some.rrd:data:AVERAGE'
  'CDEF:downtime=data,0,0,IF,
    TIME,1235769489,GE,TIME,1235779489,LE,*,
    TIME,1235689489,GE,TIME,1235729489,LE,*,+,+'
  <strong>'CDEF:uptime=downtime,0,1,IF'</strong>
  'CDEF:sine=data,POP,1235800000,TIME,-,10000,/,SIN'
  'LINE1:sine#0000ff:a sine of foo\l'
  'CDEF:cosine=data,POP,1235800000,TIME,-,5000,/,COS'
  'LINE1:cosine#00ff00:a cosine of bar\l'
  <strong>'TICK:uptime#e0ffe0:1.0:uptime'</strong>
  <strong>'TEXTALIGN:left'</strong>
  'TICK:downtime#ffe0e0:1.0:downtime'
</code></pre>

<p><img src="http://www.tobez.org/images/blog/rrdtool/uptime-no-sine.png" alt="" /></p>

<p>Oops.  Of course.  The graphing commands are processed
in sequence, so the uptime &#8220;background&#8221; has obscured
our actual sinusoidal data!
We will have to put the uptime TICK before anything else
to avoid this:</p>

<pre><code>rrdtool graph x.png
  --end 1235800000 --start end-150000
  'DEF:data=some.rrd:data:AVERAGE'
  'CDEF:downtime=data,0,0,IF,
    TIME,1235769489,GE,TIME,1235779489,LE,*,
    TIME,1235689489,GE,TIME,1235729489,LE,*,+,+'
  'CDEF:uptime=downtime,0,1,IF'
  'CDEF:sine=data,POP,1235800000,TIME,-,10000,/,SIN'
  <strong>'TICK:uptime#e0ffe0:1.0:uptime'</strong>
  'LINE1:sine#0000ff:a sine of foo\l'
  'CDEF:cosine=data,POP,1235800000,TIME,-,5000,/,COS'
  'LINE1:cosine#00ff00:a cosine of bar\l'
  'TICK:downtime#ffe0e0:1.0:downtime'
</code></pre>

<p><img src="http://www.tobez.org/images/blog/rrdtool/uptime-bad-legend.png" alt="" /></p>

<p>See the problem?  Now the legend boxes are not in the
right order.</p>

<p>Naturally, it is pretty trivial to solve - we just remove
the legend (it is optional) from the uptime TICK,
and add another graphing command in the end with the
right legend text.
We&#8217;ll simply have to make sure that this &#8220;graphing command&#8221;
does not actually graph anything:</p>

<pre><code>rrdtool graph x.png
  --end 1235800000 --start end-150000
  'DEF:data=some.rrd:data:AVERAGE'
  'CDEF:downtime=data,0,0,IF,
    TIME,1235769489,GE,TIME,1235779489,LE,*,
    TIME,1235689489,GE,TIME,1235729489,LE,*,+,+'
  'CDEF:uptime=downtime,0,1,IF'
  'CDEF:sine=data,POP,1235800000,TIME,-,10000,/,SIN'
  <strong>'TICK:uptime#e0ffe0:1.0'</strong>
  'LINE1:sine#0000ff:a sine of foo\l'
  'CDEF:cosine=data,POP,1235800000,TIME,-,5000,/,COS'
  'LINE1:cosine#00ff00:a cosine of bar\l'
  <strong>'TICK:uptime#e0ffe0:0.0:uptime'</strong>
  <strong>'TEXTALIGN:left'</strong>
  'TICK:downtime#ffe0e0:1.0:downtime'
</code></pre>

<p><img src="http://www.tobez.org/images/blog/rrdtool/nice-sine.png" alt="" /></p>

<p>Just like the last time - the problem is easily solvable,
but it annoys me, since rrdtool again forces us to work
against it instead of working with us.
It would be nicer to have a way to put a legend
box where we want it in some more direct way
(maybe a variant of the COMMENT command)?</p>
]]>
        

    </content>
</entry>

<entry>
    <title>rrdtool CDEF restrictions rant</title>
    <link rel="alternate" type="text/html" href="http://blog.tobez.org/2009/03/rrdtool-cdef-restrictions-rant.html" />
    <id>tag:blog.tobez.org,2009://3.73</id>

    <published>2009-03-03T19:40:06Z</published>
    <updated>2009-03-05T13:31:51Z</updated>

    <summary>Last time I spread some rrdtool love around. Love with no hate won&#8217;t do, however. Taking a page from the way the BBC and many other news outlets cover certain conflicts, it seems prudent to present an unbiased view of...</summary>
    <author>
        <name>tobez</name>
        
    </author>
    
        <category term="General" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Hints" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Rants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="baddesign" label="bad design" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rants" label="rants" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rrdtool" label="rrdtool" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="unixtools" label="unix tools" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="woblomo" label="woblomo" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.tobez.org/">
        <![CDATA[<p><a href="http://blog.tobez.org/2009/03/some-rrdtool-love.html">Last time</a> I spread some <a href="http://oss.oetiker.ch/rrdtool/">rrdtool</a> love
around.
Love with no hate won&#8217;t do, however.
Taking a page from the way the BBC and many other news outlets
cover certain conflicts,
it seems prudent to present an unbiased view of rrdtool.
And what better way to do that if not by spreading some
hate this time?</p>

<p>Some time ago I had a task of adding background coloring
to the portions of a graph, representing downtime of a device.
This information was not available in the RRD archive
itself, but could be obtained from elsewhere.</p>

<p>The information was in the form of epoch ranges, like this:</p>

<pre><code>1235639489-1235646689,1235725889-1235729489
</code></pre>

<p>After some thought, I decided that making a CDEF
with some simple RPN magic, in combination with a
TICK graphing command would do the trick.
The TICK command draws a vertical line of a specified height
when a data point is not
a zero or an UNKNOWN value, so I na&iuml;vely thought
that this simple CDEF will achieve what I want
(one long line here is split into several lines for your browsing convenience):</p>

<pre><code>CDEF:downtime=0,TIME,1235639489,GE,
    TIME,1235646689,LE,*,
    TIME,1235725889,GE,
    TIME,1235729489,LE,*,+,+
</code></pre>

<p>The boolean values in rddtool&#8217;s RPN are represented using
the usual C-like convention (0 = false, 1 = true),
so for any given time point the result of the CDEF above
will be 0 if the point is outside any of the downtime
intervals, 1 if it is inside one of the intervals,
and more than 1 if it is inside several intervals
(which should not happen, but is possible if we specify
overlapping downtime epoch ranges).</p>

<p>If you did not understand how this is supposed to work,
<a href="http://oss.oetiker.ch/rrdtool/doc/rrdgraph_rpn.en.html">go read the rrdgraph_rpn manpage</a>.</p>

<p>Anyway, that was easy enough, even if it was not very clean.
So where is the promised hate, you&#8217;ll ask?  Here it is:</p>

<pre><code>rrdtool graph x.png --end 1235800000 --start end-150000
    'DEF:data=some.rrd:someds:AVERAGE'
    'CDEF:downtime=0,TIME,1235639489,GE,TIME,1235646689,LE,*,
     TIME,1235725889,GE,TIME,1235729489,LE,*,+,+'
    'TICK:downtime#ffe0e0:1.0'

ERROR: rpn expressions without DEF or CDEF variables are not supported
</code></pre>

<p>You&#8217;ve read that right!
Rrdtool insists that everything you put into a graph must ultimately come
from some data source in some RRD archive.
How stupid is that?</p>

<p>And the answer is - very stupid indeed, for at least two reasons.</p>

<p>First, it tries to pretend it knows what I might want to do better than me,
and I really hate that in software.
Whatever has happened to the idea that a tool must not get in the way of its user?</p>

<p>Secondly, this check is easily circumvented by adding a real DEF somewhere in
the CDEF and then (mis)using RPN language to get rid of any value which comes
from the DEF.
There are many ways to do it, some more creative than others, but even this
ham-fisted &#8220;solution&#8221; will do the job:</p>

<pre><code>CDEF:downtime=data,0,0,IF,TIME,1235639489,GE,
    TIME,1235646689,LE,*,
    TIME,1235725889,GE,
    TIME,1235729489,LE,*,+,+
</code></pre>

<p>So we have a pointless restriction, and we are forced to work around it.
Some might say that working against the tool to reach the goal is somehow
challenging and maybe even fun.
If you ask me, this is akin to programming in <a href="http://en.wikipedia.org/wiki/Brainfuck">Brainfuck</a> -
a kind of activity better performed as a hobby, if that&#8217;s your idea of
how to spend your copious free time.</p>

<p>To rephrase the Perl&#8217;s motto, <em>rrdtool makes simple things hard</em>.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>&quot;Idiots can vote too&quot;</title>
    <link rel="alternate" type="text/html" href="http://blog.tobez.org/2009/02/idiots-can-vote-too.html" />
    <id>tag:blog.tobez.org,2009://3.70</id>

    <published>2009-02-16T09:49:51Z</published>
    <updated>2009-03-01T12:07:39Z</updated>

    <summary>My blood pressure was quickly raised by this: http://cpanratings.perl.org/user/dandv. The gist of his so called reviews: &#8220;I did not use this module, but Catalyst has switched from it to something else, hence I rate it with 1 star out of...</summary>
    <author>
        <name>tobez</name>
        
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Rants" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.tobez.org/">
        <![CDATA[<p>My blood pressure was quickly raised by this: <a href="http://cpanratings.perl.org/user/dandv">http://cpanratings.perl.org/user/dandv</a>.</p>

<p>The gist of his so called reviews: &#8220;I did not use this module, but Catalyst has switched from it to something else, hence I rate it with 1 star out of 5.  Avoid.  Use Moose&#8221;.</p>

<p>WTF??  Whatever has happened to TIMTOWTDI?  Who <strong>is</strong> this guy?</p>

<p><font size="-2"><sup>1</sup> The title of this post shamelessly taken from kaare&#8217;s remark on #cph.pm</font></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Stupid code examples in documentation</title>
    <link rel="alternate" type="text/html" href="http://blog.tobez.org/2008/06/stupid-code-examples-in-documentation.html" />
    <id>tag:blog.tobez.org,2008://3.69</id>

    <published>2008-06-25T10:21:17Z</published>
    <updated>2009-03-01T12:07:39Z</updated>

    <summary><![CDATA[Dear maintainer of Spreadsheet::ParseExcel! Please remove the $sheet-&gt;{MaxCol} ||= $sheet-&gt;{MinCol}; statement from the loop over spreadsheet rows in the example at the top of the module documentation. People just cut and paste this into their code, which is pointless. This...]]></summary>
    <author>
        <name>tobez</name>
        
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Rants" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.tobez.org/">
        <![CDATA[<p>Dear <a href="http://www.szabgab.com/">maintainer</a> of <a href="http://search.cpan.org/dist/Spreadsheet-ParseExcel/">Spreadsheet::ParseExcel</a>!</p>

<p>Please remove the</p>

<pre><code>$sheet-&gt;{MaxCol} ||= $sheet-&gt;{MinCol};
</code></pre>

<p>statement from the loop over spreadsheet rows in the example at the top
of the module documentation.  People just cut and paste this into their
code, which is pointless.</p>

<p>This madness goes far - I even saw this code in a presentation at
<a href="http://cph.pm.org/">the local Perl Mongers group</a> technical meeting.</p>

<p>Take pity on poor wasted electrons, <a href="http://www.urbandictionary.com/define.php?term=k+thx">K THX</a>.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Moronic weblog spam protection</title>
    <link rel="alternate" type="text/html" href="http://blog.tobez.org/2007/07/moronic-weblog-spam-protection.html" />
    <id>tag:blog.tobez.org,2007://3.58</id>

    <published>2007-07-07T21:16:00Z</published>
    <updated>2009-03-01T12:07:31Z</updated>

    <summary>I was going through the list of posts constituting the Carnival of Space week 10, clicking through to look at the topics which sounded interesting. When I went to see an argument for thinking big for the next moon rocket,...</summary>
    <author>
        <name>tobez</name>
        
    </author>
    
        <category term="Rants" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.tobez.org/">
        <![CDATA[<p>I was going through the list of posts constituting
<a href="http://whyhomeschool.blogspot.com/2007/07/carnival-of-space-week-10.html">the Carnival of Space week 10</a>, clicking through
to look at the topics which sounded interesting.
When I went to see <a href="http://www.whatsnextnetwork.com/technology/index.php/2007/06/27/thinking_big_for_the_next_moon_rocket">an argument for thinking big
for the next moon rocket</a>, I saw:</p>

<blockquote>
  <p>403 Forbidden</p>
  
  <p>Please stop referer spam.</p>
  
  <p>We have identified that you have been refered here by a known or supposed spammer.</p>
  
  <p>If you feel this is an error, please bypass this message and leave us a
  comment about the error. We are sorry for the inconvenience.</p>
</blockquote>

<p>When I tried to leave a comment informing the authors that they
actually block folks coming through the host of the Carnival
they were participating in, all I&#8217;ve got after pressing &#8220;submit&#8221;
and filling in all the mandatory CAPTCHA hoopla was:</p>

<blockquote>
  <p>Invalid comment</p>
</blockquote>

<p>This is almost a topic for <a href="http://we.hates-software.com/">we hates software</a>,
except that here we deal with hateful and/or clueless
people instead of hateful software.</p>

<p>They really don&#8217;t want to be read, do they?</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Google disk failures paper</title>
    <link rel="alternate" type="text/html" href="http://blog.tobez.org/2007/02/google-disk-failures-paper.html" />
    <id>tag:blog.tobez.org,2007://3.54</id>

    <published>2007-02-19T18:55:20Z</published>
    <updated>2009-03-01T12:07:20Z</updated>

    <summary> What do we learn from this paper by google-folk Pinheiro, Weber, and Barroso? We learn that the famed Bigtable is good for gathering time-series statistical data about servers. It&#8217;s probably better than what the rest of the world does...</summary>
    <author>
        <name>tobez</name>
        
    </author>
    
        <category term="Rants" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.tobez.org/">
        <![CDATA[<p><img src="http://www.tobez.org/images/blog/google-labs.gif" alt="" /></p>

<p>What do we learn from <a href="http://labs.google.com/papers/disk_failures.pdf">this paper</a> by google-folk Pinheiro, Weber, and Barroso?</p>

<p>We learn that the famed <a href="http://labs.google.com/papers/bigtable.html">Bigtable</a> is good for gathering time-series statistical data about servers.  It&#8217;s probably better than what the rest of the world does with <a href="http://oss.oetiker.ch/rrdtool/">rrdtool</a>, since there is no loss of granularity over time.  We hear again about <a href="http://labs.google.com/papers/mapreduce.html">Mapreduce</a> and about <a href="http://labs.google.com/papers/sawzall.html">Sawzall</a>.  It&#8217;s all well and good, and pretty impressive.</p>

<p>Furthermore, we read that</p>

<blockquote>
  <p>We conclude that it is unlikely that SMART data alone
  can be effectively used to build models that predict failures of individual drives.</p>
</blockquote>

<p>Is it a good science?  Yeah, it&#8217;s fine, the negative result is nevertheless a result, and we can learn some important things from failures.</p>

<p>But then we read:</p>

<blockquote>
  <p>Failure rates are known to be highly correlated with drive
  models, manufacturers and vintages. Our results do
  not contradict this fact. For example, Figure 2 changes
  significantly when we normalize failure rates per each
  drive model. Most age-related results are impacted by
  drive vintages. However, in this paper, we do not show a
  breakdown of drives per manufacturer, model, or vintage
  due to the proprietary nature of these data.</p>
</blockquote>

<p>And this, my friends, is not a good science at all.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>CPAN is 10 years old!  Er, 11?</title>
    <link rel="alternate" type="text/html" href="http://blog.tobez.org/2007/01/cpan-is-10-years-old-er-11.html" />
    <id>tag:blog.tobez.org,2007://3.53</id>

    <published>2007-01-29T09:16:49Z</published>
    <updated>2009-03-01T12:07:18Z</updated>

    <summary> Why does that birthday cake with a little 10 in it in the CPAN logo annoy me? It&#8217;s been only up there for a year or so. I think it makes PERFECT sense to keep it there until 2015....</summary>
    <author>
        <name>tobez</name>
        
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Rants" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.tobez.org/">
        <![CDATA[<p><img src="http://www.tobez.org/images/blog/cpan-10.jpg" alt="" /></p>

<p>Why does that birthday cake with a little 10 in it in the <a href="http://search.cpan.org/">CPAN</a> logo annoy me?
It&#8217;s been only up there for a year or so.
I think it makes PERFECT sense to keep it there until 2015.</p>
]]>
        

    </content>
</entry>

</feed>
