<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>(...)</title>
    <link>http://www.stderr.nl/</link>
    <description>"In het verleden behaalde resultaten bieden geen garanties voor de toekomst"</description>
    <language>en</language>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>blosxom/2.1.2+dev</generator>

  <item>
    <title>Putting my office chair on legs</title>
    <pubDate>Sat, 30 Mar 2013 23:59:00 +0100</pubDate>
    <link>http://www.stderr.nl/2013/03/30#ChairOnLegs</link>
    <category>/Blog/DIY</category>
    <guid isPermaLink="false">http://www.stderr.nl/Blog/DIY/ChairOnLegs</guid>
    <description>&lt;p&gt;For a while, I&apos;ve been annoyed by the height of my desk. It is slightly
higher than ergonomical, which causes my shoulders to be always raised
when I&apos;m working behind my computer.&lt;/p&gt;

&lt;p&gt;Since sawing off a bit from the feet of my desk was a bit too
irreversible for me (and it&apos;s hard to figure out how much to cut off
exactly), I looked for a way to raise my office chair a bit further
than its normal adaptable range. I couldn&apos;t find a way to get the
central pillar loose from the base (even though the pillar looks
threaded, it wouldn&apos;t turn), so I looked for a way to extend the wheels
a bit.&lt;/p&gt;

&lt;p&gt;The wheels are fixed into the base of the chair using a pin in the wheel
that clamps into a socket in the base of the chair (&quot;klemstift&quot;).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/static//images/DIY/ChairOnLegs/Wieltje.jpg&quot; alt=&quot;Chair wheels&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I was hoping to find a part that has a pin at the top, and a matching
socket at the bottom, which I could use to extend the length of the pins
of my wheels a bit. It seems these things don&apos;t actually exist, at least
I couldn&apos;t find any online.&lt;/p&gt;

&lt;p&gt;Looking at the wheels more closely showed me that the pin wasn&apos;t
actually fixed in the wheel, but it was actually a two-side pin that
also clamped into the wheel.&lt;/p&gt;

&lt;p&gt;This opened up the option of replacing the pin with &lt;a href=&quot;http://www.neita.nl/winkel/wielenbevmblstdr.html&quot;&gt;one that has one
threaded end&lt;/a&gt;, which can receive a &quot;&lt;a href=&quot;http://www.enned.org/store/index.php?page=shop.product_details&amp;amp;product_id=868&amp;amp;flypage=flypage.tpl&amp;amp;pop=1&amp;amp;option=com_virtuemart&amp;amp;Itemid=53&quot;&gt;coupler nut&lt;/a&gt;&quot; (not sure how
these things are really called connecting to another identical pin,
which can be inserted into the chair base again). These parts should be
available from a proper hardware store for less money than the webshops
I linked, by the way.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/static//images/DIY/ChairOnLegs/Pins.jpg&quot; alt=&quot;Chair wheels&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The end result is that I now have a chair that is around 5cm higher than
before. It looks a bit weird and a bit fragile, but it actually feels
more robust than it looks.&lt;/p&gt;

&lt;p&gt;My legs are now pushed against the bottom of my desktop, so this is as
high as it gets. For the &lt;a href=&quot;http://en.wikipedia.org/wiki/File:Computer_Workstation_Variables.jpg&quot;&gt;perfect ergonomical position&lt;/a&gt;, I should be
even higher, but that seems impossible unless I find a desk with
negative thickness (I suspect this is because my arm length to torso
length is a bit non-standard due to my above-avarage body length). Even
so, I can already feel that this handful of centimeters greatly helps to
improve my posture and removes a ton of strain from my shoulders. Yay!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/static//images/DIY/ChairOnLegs/Result.jpg&quot; alt=&quot;Chair wheels&quot; /&gt;&lt;/p&gt;
</description>
  </item>
  <item>
    <title>DIY desk cabinet and power switch panels</title>
    <pubDate>Mon, 15 Oct 2012 12:10:00 +0200</pubDate>
    <link>http://www.stderr.nl/2012/10/15#DIYPowerSwitchPanels</link>
    <category>/Blog/Hardware</category>
    <guid isPermaLink="false">http://www.stderr.nl/Blog/Hardware/DIYPowerSwitchPanels</guid>
    <description>&lt;p&gt;Since ages, I&apos;ve been using switched power bars to connect my computer
equipment. Originally, I used a normal outlet to connect my PC and a
switched bar to connect my monitor, speakers, printer, etc. This allows
me to actually completely switch off everything when I&apos;m not using it,
saving a couple of Watts of leakage power and removing the need to switch
all of my equipment off separately.&lt;/p&gt;

&lt;p&gt;Since then, the amount of electrical stuff on my desk has increased a
bit, now also including quite some stuff unrelated to my computer. I now
count: a laptop adapter, an USB hub, speakers, a printer/scanner, an
external hard disk, a battery charger, a phone charger, a charger for my
shaver, some soldering equipment, a pile of wireless access points (my
work for &lt;a href=&quot;http://www.fon.com&quot;&gt;Fon&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Plugging in all this stuff in a single power bar wasn&apos;t very helpful: I
would have the bar turned on most of the day when working on my laptop,
so all the other devices would be leaking power as well.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://afuture.nl/productview.php?productID=71629&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Brennenstuhl%20individually%20switched%20outlet.jpeg&quot; alt=&quot;Brennenstuhl outlet&quot; style=&quot;float: right&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It thought I found the perfect solution when I found this &lt;a href=&quot;http://afuture.nl/productview.php?productID=71629&quot;&gt;power bar
with five individually switched outlets&lt;/a&gt; from Brennenstuhl. However,
because both the switches and the outlets need some space, this power
bar is pretty huge (±60 cm long), making it pretty impossible to give it
a useful place on my desk (without taking up too much desk space), so I
would have to think of something else.&lt;/p&gt;

&lt;p&gt;I have been thinking about building a nice cabinet to put on top of my
desk to put my laptop, speakers and printer on top of and to put various
paperwork and other misc items in (to replace the cardboard boxes that
kept my laptop at an ergonomical height until then). In the design of
that cabinet, I realized that I could just as well include some power
switch panels in the cabinet.&lt;/p&gt;

&lt;p&gt;After a few iterations of the design, I ended up with the following
result:&lt;/p&gt;

&lt;p&gt;&lt;div style=&quot;margin:auto; overflow: hidden; width:701px;&quot;&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6705.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/Overview.jpg&quot; alt=&quot;Desk cabinet overview&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6707.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/Left%20detail.jpg&quot; alt=&quot;Left switch panel detail&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6708.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/Right%20detail.jpg&quot; alt=&quot;Right switch panel detail&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
 &lt;/div&gt;&lt;/p&gt;

&lt;p&gt;As you can see, there&apos;s two switch panels with eight switches each in
the lower corners. Each switch controls one or two outlets, most of
which are hidden behind the panels. Since most of the devices don&apos;t move
around much, it&apos;s perfect if the outlets and plugs are hidden inside the
cabinet, since that means less cluttering of my desk.&lt;/p&gt;

&lt;p&gt;However, I also have some devices (mostly wireless access points,
settopboxes and monitors that I use for my work) that are not fixed all
the time and regularly change. If I would need to get behind the switch
panels everytime I wanted to change a device, I would get tired of that
real quick. I could of course have used a completely separate outlet bar
for those devices, but I still like to make those devices individually
switched (since most of them have power adapters, which are prone to
leak power, and I hardly ever use all of the devices at the same time).&lt;/p&gt;

&lt;p&gt;So, I ended up making five of the switches in the right panel control
outlets in a separate power bar, which I put on my (second) desk instead of
behind the panel. To be able to do this, I had to get a length of thick
power cable containing 12 separate leads (two for each outlet, plus one
for the earth terminal). Also, since I didn&apos;t want the cable to be fixed
onto the switch box, I got a humongous power plug, containing 10
contacts (plus chassis earth).&lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6861.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6861.JPG&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;I designed these boxes for a current up to 10A. All components should be
able to handle 16A, except for the power inlets, which contain a 10A
fuse. Each switch panel contains 8 switches, for controlling 9 outlets
(theres one switch in each box that controls two outlets).&lt;/p&gt;

&lt;p&gt;I used two-pole switches, which can switch both the line and neutral
terminals of each outlets. In theory, it should be sufficient to only
switch the line terminals and leave the neutral terminals always
connected, but since the boxes are connected to a wall socket using a
normal power plug, there is no way to tell which incoming power
wire is the line terminal and which is the neutral terminal, so you have
to switch both of them.&lt;/p&gt;

&lt;p&gt;One thing I had not accounted for in advance, is that the switch boxes
themselves also draw a bit of power. The power inlets I used contain
some filtering circuitry, which should improve the stability of the
power delivered. However, these inlets also draw about 50-100mW (hard to
measure since it&apos;s so little and has a low &lt;a href=&quot;http://en.wikipedia.org/wiki/Power_factor&quot;&gt;power factor&lt;/a&gt;) each,
when there is nothing else connected. On yearly basis, this would amount
to about one kWh, so that&apos;s not really a problem.&lt;/p&gt;

&lt;p&gt;In addition, the lights in the switches also draw around 300mW, but
since that only happens when a device is switched on, that power draw is
negligible compared to the power usage of the connected device.&lt;/p&gt;

&lt;p&gt;I started out  building the cabinet, which took me just under a day (I
just screwed all the panels together, not bothering with fine &lt;a href=&quot;http://en.wikipedia.org/wiki/Dovetail_joint&quot;&gt;dovetail
joints&lt;/a&gt; or other fine woodworking details, since I mostly wanted this
cabinet to be functional without costing too much time. Then I started
on the switch boxes, which took me three or four days in total, which
seems really out of proportion :-)&lt;/p&gt;

&lt;h2&gt;Front panels&lt;/h2&gt;

&lt;p&gt;I started out preparing the front panel, using an oldschool
&lt;a href=&quot;http://en.wikipedia.org/wiki/Fretsaw&quot;&gt;fretsaw&lt;/a&gt;. Fortunately, the switches have a small front panel that
covers up a few milimeters of the hole, so I didn&apos;t have to get perfect
cuts (though a few mm of space is still not that much room for error).&lt;/p&gt;

&lt;p&gt;The switches are mounted in the panel by just snapping them into the
holes cut out of the panel.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6653.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6653.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6654.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6654.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6656.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6656.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6657.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6657.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6658.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6658.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Outlets&lt;/h2&gt;

&lt;p&gt;For the outlets, I was considering to use &lt;a href=&quot;http://nl.farnell.com/berker/09-4185-25-02/socket-schuko-eu-white/dp/1634568&quot;&gt;these power sockets&lt;/a&gt; or
standard wall sockets, with the big downside of them being fairly
expensive (± €8, I would need 20 of them). Fortunately, I found a box of
old wall outlets at &lt;a href=&quot;http://www.vanaltena-bedrijfskleding.nl/&quot;&gt;van Altena, local second-hand hardware store&lt;/a&gt; that
has all kinds of old and new tools and equipment at cheap prieces. I
ended up paying €0,75 per outlet, which reduced the total cost
of the project quite a bit (though it still cost me around €175 in
materials).&lt;/p&gt;

&lt;p&gt;To save a bit of space and make everything fit better, I ended up
cutting off the top of the outlets, so the outer mantle would come off
and the outlets could be placed closer togeter. After doing the first
one with a saw, I ended up doing all the others using a &lt;a href=&quot;http://en.wikipedia.org/wiki/Belt_sander&quot;&gt;belt
sander&lt;/a&gt;, fixed upside down in my vice creating an ad-hoc stationary
belt sander.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6661.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6661.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6662.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6662.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6659.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6659.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6660.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6660.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Box construction&lt;/h2&gt;

&lt;p&gt;Next, I created a base for the boxes and constructed the boxes on top.
Apparently I didn&apos;t take any pictures of the process (I remember doing
so, but perhaps I somehow lost the pictures, not sure). The base plate
is thick (18mm) &lt;a href=&quot;http://en.wikipedia.org/wiki/Medium-density_fibreboard&quot;&gt;MDF&lt;/a&gt;, on which I&apos;ve used my &lt;a href=&quot;http://en.wikipedia.org/wiki/Router_(woodworking)&quot;&gt;router&lt;/a&gt; to route out a
10mm deep &quot;trench&quot; in the wood through which the cabling can be put (so
it can go underneath the outlets). You can see one of the trenches on
the left of the right box below.&lt;/p&gt;

&lt;p&gt;Most of the rest of the construction is 15mm &lt;a href=&quot;http://en.wikipedia.org/wiki/Plywood&quot;&gt;plywood&lt;/a&gt;, except for
the top plate (with holes for the outlets), I used 6mm MDF for that.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6663.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6663.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6664.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6664.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Distribution wires&lt;/h2&gt;

&lt;p&gt;To connect the incoming power lines to each of the switches, I had a bit
of a challenge. The switches have &lt;a href=&quot;http://en.wikipedia.org/wiki/Electrical_connector#Blade_connector&quot;&gt;blade connectors&lt;/a&gt;, onto which blade
receptacle connectors can be attached. These blade receptacles are
&quot;&lt;a href=&quot;http://nl.wikipedia.org/wiki/Krimpen_(elektrotechniek)&quot;&gt;crimped&lt;/a&gt;&quot; onto a cable. I tried to find some component that I could
use to connect all a dozen of blade receptacles onto, but I couldn&apos;t
find any of those. There are special blade connectors that allow daisy
chaining each switch onto the next, but I didn&apos;t like the idea that the
last switch would be connected through two dozen of crimp connections
(and I did not have those daisy chaining connectors when I was working
on this).&lt;/p&gt;

&lt;p&gt;I also could not use a &lt;a href=&quot;http://en.wikipedia.org/wiki/Twist-on_wire_connector&quot;&gt;Twist-on wire connector&lt;/a&gt;, since that only
works with solid cable (and the crimped blade connectors need
&lt;a href=&quot;http://en.wikipedia.org/wiki/Wire#Solid_versus_stranded&quot;&gt;stranded&lt;/a&gt; cable).&lt;/p&gt;

&lt;p&gt;In the end, I just settled for soldering all these cables together. It&apos;s
not very elegant, but I&apos;m confident that this soldering connection
should be capable of easily handling 16A of current, which is the most
important in the end. I used two layers of &lt;a href=&quot;http://en.wikipedia.org/wiki/Heat-shrink_tubing&quot;&gt;heat-shrink tubing&lt;/a&gt; to
insulate the big lump of soldering tin.&lt;/p&gt;

&lt;p&gt;The last picture shows the end result: four cable octopusses that
connect with one wire to the power entry point, and with eight wires to
each of the switches. There&apos;s four of these in total, for both the line
(with the brown marking tape) and neutral (with the white marking tape)
connections in both of the boxes.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6668.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6668.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6670.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6670.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6671.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6671.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6672.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6672.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6673.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6673.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6674.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6674.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6675.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6675.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6676.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6676.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Connecting the outlets&lt;/h2&gt;

&lt;p&gt;The line and neutral connections of each outlet need to be connected to
a single switch. I first connected wires to all of the outlets, with a
blade connector crimped onto the other side. I used wires cut from the
multicable I bought, which are conveniently numbered. Since the line and
neutral connections are interchangeable in the European outlet system
(&lt;a href=&quot;http://en.wikipedia.org/wiki/Schuko&quot;&gt;&quot;Schuko&quot;&lt;/a&gt;), I didn&apos;t need to add labels to distinguish both cables
coming from the same outlet.&lt;/p&gt;

&lt;p&gt;The earth terminals do not need to pass the switch, these need to be
always connected. In the bigger box, I used an earthing terminal block
(which is intended to be used in a breaker box) to connect the outlets
in a &quot;star&quot; topology. For the smaller box, I couldn&apos;t find a smaller
earthing terminal block, so I just daisy chained the outlets together.
Since there&apos;s only a few outlets and there should never be much current
through the earth terminals, this shouldn&apos;t be a problem here.&lt;/p&gt;

&lt;p&gt;I also connected the multicable connector in the same way, but those
wires are already covered by a MDF plate in the pictures.&lt;/p&gt;

&lt;p&gt;The end result is 32 cables sticking out from each box, four cables for
each switch.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6680.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6680.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6681.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6681.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6682.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6682.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6683.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6683.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Connecting the switches&lt;/h2&gt;

&lt;p&gt;Connecting the switches was a matter of connecting all the 32 wires I
prepared to the switches in the panel. After connecting the switches, I
glued the front panel onto the box (so there would not be any visible
screws on the front panel).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6684.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6684.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6685.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6685.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6686.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6686.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6688.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6688.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Assembled boxes&lt;/h2&gt;

&lt;p&gt;Now the boxes are assembled and ready for use, time to build the
external outlet bar.&lt;/p&gt;

&lt;p&gt;Note that the outlets seem a bit randomly placed, but I&apos;ve tried to
leave as much room available for power adapters to stick out in
different directions, without blocking other outlets.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6694.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6694.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6690.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6690.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6691.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6691.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6692.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6692.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6693.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6693.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;External outlets&lt;/h2&gt;

&lt;p&gt;For the external outlets, I got an old powerbar (again at &lt;a href=&quot;http://www.vanaltena-bedrijfskleding.nl/&quot;&gt;van
Altena&lt;/a&gt;), which has each outlet individually connected internally. I
connected the big multicable to all of the outlets on side and to the
big connector on the other side of the cable&lt;/p&gt;

&lt;p&gt;The old powerbar also had a single powerswitch to control all of the
outlets. Since I couldn&apos;t find any use for this switch, I just removed
it. To cover up the hole that it left, I used two rectangles cut out of an
old plastic cable conduit. The smaller rectangle exactly fits in the
hole, the larger rectangle just serves to glue the smaller one in place.
The result is a cleanly covered switch hole.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6689.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6689.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6695.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6695.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6696.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6696.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6697.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6697.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6698.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6698.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6699.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6699.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6700.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6700.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Fixing the front panels&lt;/h2&gt;

&lt;p&gt;After installing the boxes into the cabinet, it turned out the front
panels weren&apos;t glued on properly, the left one came off. Since I
was already doubting if they would hold, I settled for a less elegant,
but more secure solution: I just added some screws in an angle from the
back, making them just long enough to not stick out at the front.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6703.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6703.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6704.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6704.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Finished&lt;/h2&gt;

&lt;p&gt;So, here&apos;s the finished thing. I really like the contrast between the
green buttons and the red &lt;a href=&quot;http://en.wikipedia.org/wiki/Mahogany&quot;&gt;mahogany&lt;/a&gt; finish I used, it gives the thing a
very classic look.&lt;/p&gt;

&lt;p&gt;To be able to plug in devices, I can pull out the boxes towards the
front. This is not very quick to do, but since I do not need to switch
devices very often, that works out just fine.&lt;/p&gt;

&lt;p&gt;I also added labels to the various switches, so I won&apos;t have to remember
where I plugged in every device.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6705.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6705.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6707.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6707.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6708.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6708.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6859.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6859.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6860.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6860.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6861.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6861.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Design drawings&lt;/h2&gt;

&lt;p&gt;And just for historical reference, here are the design drawings I created
during the process. If they look fuzzy to you, that&apos;s probably because I
erased every part of the drawings probably at least once...&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6709.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6709.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6710.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6710.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6711.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6711.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6712.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6712.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;/static//images/Hardware/Desk%20cabinet/full/IMG_6713.JPG&quot;&gt;&lt;img src=&quot;/static//images/Hardware/Desk%20cabinet/thumb/IMG_6713.JPG&quot; alt=&quot;&quot; style=&quot;float: left&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</description>
  </item>
  <item>
    <title>New pet: Pelle the pelikan</title>
    <pubDate>Sun, 14 Oct 2012 16:58:00 +0200</pubDate>
    <link>http://www.stderr.nl/2012/10/14#Pelle</link>
    <category>/Blog/Personal</category>
    <guid isPermaLink="false">http://www.stderr.nl/Blog/Personal/Pelle</guid>
    <description>&lt;p&gt;&lt;img src=&quot;/static//images/Personal/Pelle.png&quot; alt=&quot;Pluche Pelle the pelikan&quot; style=&quot;float: left&quot; /&gt;
&lt;a href=&quot;Sanquin&quot;&gt;&lt;img src=&quot;/static//images/Personal/Sanquin.png&quot; alt=&quot;Sanquin&quot; style=&quot;float: right&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the occasion of my fourtieth blood donation at the &lt;a href=&quot;http://www.sanquin.nl&quot;&gt;Sanquin&lt;/a&gt; blood
bank, I got a nice pluche pelikan (which is their mascotte / logo). It
got a nice spot on top of one of the speakers on my desk, where it has a
nice view of my room.&lt;/p&gt;

&lt;p&gt;Are you a blood donor yet? More donors are still needed in the
Netherlands, &lt;a href=&quot;http://www.sanquin.nl/bloed-geven/bloeddonor-worden/aanmelding-bloeddonor/&quot;&gt;so sign up now&lt;/a&gt;!&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Folk weekend in Mattstedt with the Gonnagles</title>
    <pubDate>Mon, 03 Sep 2012 15:52:00 +0200</pubDate>
    <link>http://www.stderr.nl/2012/09/03#FestivalMattstedt</link>
    <category>/Blog/Personal/Balfolk</category>
    <guid isPermaLink="false">http://www.stderr.nl/Blog/Personal/Balfolk/FestivalMattstedt</guid>
    <description>&lt;p&gt;&lt;a href=&quot;http://gonnagles.nl/&quot;&gt;&lt;img src=&quot;/static//images/Personal/Balfolk/Gonnagles.jpg&quot; alt=&quot;Gonnagles logo&quot; style=&quot;float: left&quot; title=&quot;Gonnagles logo, image taken from http://www.gonnagles.nl&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last weekend, I&apos;ve travelled to &lt;a href=&quot;http://maps.google.com/maps?q=Mattstedt,Germany&quot;&gt;Mattstedt&lt;/a&gt;, a small village near the
center of Germany, to attend a &lt;a href=&quot;http://www.folk-weekender.de/&quot;&gt;folk festival&lt;/a&gt; there. The &lt;a href=&quot;http://gonnagles.nl/&quot;&gt;Gonnagles&lt;/a&gt;, a
Dutch folk band, were performing at the festival and asked me to help
out as an audio technician (since not all of the Gonnagles could
attend). Liking the opportunity to do some more sound engineering, do
some dancing and hang out with the Gonnagles, I agreed to come along.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://maps.google.com/maps?q=from:Amersfoort%20to:Enschede%20to:Mattstedt,Germany&quot;&gt;&lt;img src=&quot;/static//images/Personal/Balfolk/Mattstedt.png&quot; alt=&quot;Route to Mattstedt&quot; style=&quot;float: right&quot; title=&quot;9 hour drive from Amersfoort to Mattstedt&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After I said yes, I realized that the Festival was quite far into
Germany (5 hours from Enschede, though on the way there, we got caught
in a traffic jam making it 7,5 hours, plus 1,5 hours from Amersfoort to
Enschede). Still, I shared the car with nice people (Erik and Moes on
the way there, just Erik on the way back) and the festival was nice, so
in the end it was worth every minute of driving time. Moes, Erik and I
also travelled on friday instead of saturday, leaving an extra
fridaynight for dancing and saturday afternoon for relaxing.&lt;/p&gt;

&lt;p&gt;During the festival, I ended up helping out with the audio engineering
of the rest of the festival, instead of just the Gonnagles&apos; performance.
There were two audio technicians there, but neither of them were very
experienced in setting up a live performance and getting to the bottom
of any problems that (always) show up. Also, the rented equipmented
wasn&apos;t quite top-notch quality, which didn&apos;t really help either.&lt;/p&gt;

&lt;p&gt;Fortunately, I was able to help out a bit and debug some problems with
the PA system and monitor speakers. On saturday, I also did most of the
mixing for &lt;a href=&quot;http://www.cassis-folk.de/&quot;&gt;Cassis&lt;/a&gt;, one of the other bands. Apparently people
thought I did a good job, since I got a lot of thanks from people who
apparently thought I single-handedly saved the festival from horrible
sound quality (which would be underappreciating the other technicians,
which also worked hard to get everything running).&lt;/p&gt;

&lt;p&gt;The festival itself was nice as well. I always enjoy the performance of
&lt;a href=&quot;http://www.parasolgodongrimault.fr&quot;&gt;Parasol&lt;/a&gt;, who are very talented, but I also enjoyed the other bands.
The weather was good, so I had some nice relaxed moments lying in the
sun, I listened to good music, shared some nice dances with a pretty
German girl, and just had fun.&lt;/p&gt;

&lt;p&gt;So, again next year?&lt;/p&gt;
</description>
  </item>
  <item>
    <title>CrashPlan: Cheap cloud backup that runs on Linux</title>
    <pubDate>Tue, 28 Aug 2012 13:01:00 +0200</pubDate>
    <link>http://www.stderr.nl/2012/08/28#CrashPlan</link>
    <category>/Blog/Software/Linux</category>
    <guid isPermaLink="false">http://www.stderr.nl/Blog/Software/Linux/CrashPlan</guid>
    <description>&lt;p&gt;For some time, I&apos;ve been looking for a decent backup solution. Such a
solution should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;be completely unattended,&lt;/li&gt;
&lt;li&gt;do off-site backups (and possibly onsite as well)&lt;/li&gt;
&lt;li&gt;be affordable (say, €5 per month max)&lt;/li&gt;
&lt;li&gt;run on Linux (both desktops and headless servers)&lt;/li&gt;
&lt;li&gt;offer plenty of space (couple of hundred gigabytes)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Up until now I haven&apos;t found anything that met my demands. Most backup
solutions don&apos;t run on (headless Linux) and most generic cloud storage
providers are way too expensive (because they offer high-availability,
high-performance storage, which I don&apos;t really need).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.backblaze.com&quot;&gt;Backblaze&lt;/a&gt; seemed interesting when they launched a few years ago.
They just took enormous piles of &lt;a href=&quot;http://en.wikipedia.org/wiki/Commercial_off-the-shelf&quot;&gt;COTS&lt;/a&gt; hard disks and crammed a couple
dozen of them in a &lt;a href=&quot;http://blog.backblaze.com/2009/09/01/petabytes-on-a-budget-how-to-build-cheap-cloud-storage/&quot;&gt;custom designed case&lt;/a&gt;, to get a lot of cheap storage.
They offered an unlimited backup plan, for only a few euros per month.
Ideal, but it only works with their own backup client (no normal
FTP/DAV/whatever supported), which (still) does not run on Linux.&lt;/p&gt;

&lt;h1&gt;Crashplan&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;http://crashplan.com/&quot;&gt;&lt;img src=&quot;/static//images/Software/Linux/CrashPlanLogo.png&quot; alt=&quot;Crashplan logo&quot; style=&quot;float: right&quot; title=&quot;Crashplan Logo. Image taken from http://crashplan.com&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Recently, I had another look around and found &lt;a href=&quot;http://crashplan.com/&quot;&gt;CrashPlan&lt;/a&gt;, which offers an
unlimited backup plan for only $5 per month (note that they advertise
with $3 per month, but that is only when you pay in advance for four
years of subscription, which is a bit much. Given that if you cancel
beforehand, you will still &lt;a href=&quot;http://support.crashplan.com/doku.php/faq/license#what_is_the_cancellation_policy&quot;&gt;get a refund of any remaining months&lt;/a&gt;,
paying up front might still be a good idea, though). They also offer a
&lt;a href=&quot;http://support.crashplan.com/doku.php/feature/family_plans&quot;&gt;family pack&lt;/a&gt;, which allows you to run CrashPlan on up to 10
computers for just over twice the price of a single license. I&apos;ll
probably get one of these, to backup my laptop, &lt;a href=&quot;http://weblog.ninniach.nl&quot;&gt;Brenda&lt;/a&gt;&apos;s laptop and
my colocated server.&lt;/p&gt;

&lt;p&gt;The best part is that the CrashPlan software runs on Linux, and even on
a headless Linux server (which is not officially supported, &lt;a href=&quot;http://support.crashplan.com/doku.php/how_to/configure_a_headless_client&quot;&gt;but
CrashPlan does document the setup needed&lt;/a&gt;). The headless setup is
possible because CrashPlan runs a daemon (as root) that takes care of
all the actual work, while the GUI connects to the daemon through a TCP
port. I still need to double-check what this means for the security
though (especially on a multi-user system, I don&apos;t want to every user
with localhost TCP access to be able to administer my backups), but it
seems that CrashPlan can be configured to require the account password
when the GUI connects to the daemon.&lt;/p&gt;

&lt;p&gt;The CrashPlan software itself is free and allows you to do local backups
and backups to other computers running CrashPlan (either running under your
own account, or computers of friends running on separate accounts).
Another cool feature is that it keeps multiple snapshots of each file in
the backup, so you can even get back a previous version of a file you
messed up. This part is entirely configurable, but by default it keeps
up to one snapshot every 15 minutes for recent changes, and reduces that
to one snapshot for every month for snapshots over a year old.&lt;/p&gt;

&lt;p&gt;When you pay for a subscription, the software transforms into CrashPlan+
(no reinstall required) and you get extra features such as multiple
backup sets, automatic software upgrades and most notably, access to the
CrashPlan Central cloud storage.&lt;/p&gt;

&lt;p&gt;I&apos;ve been running the CrashPlan software for a few days now (it comes
with a 30-day free trial of the unlimited subscription) and so far, I&apos;m
quite content with it. It&apos;s been backing up my homedir to a local USB
disk and into the cloud automatically, I don&apos;t need to check up on it
every time.&lt;/p&gt;

&lt;p&gt;The CrashPlan runs on Java, which I doesn&apos;t usually make me particularly
enthousiastic. However, the software seems to run fast and reliable so far,
so I&apos;m not complaining. Regarding the software itself, it does seem to
me that it&apos;s not intended for micromanaging. For example, when my
external USB disk is not mounted, the interface shows &quot;Destination
unavailable&quot;. When I then power on and mount the external disk, it takes
some time for Crashplan to find out about this and in the meanwhile,
there&apos;s no button in the interface to convince CrashPlan to recheck the
disk. Also, I can add a list of filenames/path patterns to ignore, but
there&apos;s not really any way to test these regexes.&lt;/p&gt;

&lt;p&gt;Having said that, the software seems to do its job nicely if you just
let it do its job in the background. On piece of micromanagement which I
do like is that you can manually pause and resume the backups. If you
pause the backups, they&apos;ll be automatically resumed after 24 hours,
which is useful if the backups are somehow bothering you, without the
risk that you forget to turn the backups back on.&lt;/p&gt;

&lt;h1&gt;Backing up only when docked&lt;/h1&gt;

&lt;p&gt;Of course, sending away backups is nice when I am at home and have
50Mbit fiber available, but when I&apos;m on the road, running on some wifi
or even 3G connection, I really don&apos;t want to load my connection with
the sending of backup data.&lt;/p&gt;

&lt;p&gt;Of course I can manually pause the backups, but I don&apos;t want to be doing
that every time when I pick up my laptop and get moving. Since I&apos;m using
a docking station, it makes sense to simply pause backups whenever I
undock and resume them when I dock again.&lt;/p&gt;

&lt;p&gt;The obvious way to implement this would be to simply stop the CrashPlan
daemon when undocking, but when I do that, the CrashPlanDesktop GUI
becomes unresponsive (and does not recover when the daemon is started
again).&lt;/p&gt;

&lt;p&gt;So, I had a look at the &quot;&lt;a href=&quot;http://support.crashplan.com/doku.php/client/manual_commands&quot;&gt;admin console&lt;/a&gt;&quot;, which offers &quot;command
line&quot; commands, such as &lt;code&gt;pause&lt;/code&gt; and &lt;code&gt;resume&lt;/code&gt;. However, this command line
seems to be available only inside the GUI, which is a bit hard to
script (also note that not all of the commands seem to work for me,
&lt;code&gt;sleep&lt;/code&gt; and &lt;code&gt;help&lt;/code&gt; seem to be unknown commands, which cause the console
to close without an error message, just like when I just type something
random).&lt;/p&gt;

&lt;p&gt;It seems that these console commands are really just sent verbatim to
the CrashPlan daemon. Googling around a bit more, I found &lt;a href=&quot;http://support.crashplanpro.com/doku.php/reference/proclient/commands&quot;&gt;a small
script for CrashPlan PRO&lt;/a&gt; (the business version of their software),
which allows sending commands to the daemon through a shell script. I
made some modifications to this script to make it useful for me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;don&apos;t depend on the current working dir, hardcode
&lt;code&gt;/usr/local/crashplan&lt;/code&gt; in the script instead&lt;/li&gt;
&lt;li&gt;fixed a bashism (&lt;code&gt;==&lt;/code&gt; vs &lt;code&gt;=&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;removed &lt;code&gt;-XstartOnFirstThread&lt;/code&gt; argument from java (MacOS only?)&lt;/li&gt;
&lt;li&gt;don&apos;t store the commands to send in a separate &lt;code&gt;&amp;#036;command&lt;/code&gt; but instead
pass &quot;$@&quot; to java directly. This latter prevents bash from splitting
arguments with spaces in them into multiple arguments, which
causes the command &quot;pause 9999&quot; to be interpreted as two commands
instead of one with an argument.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have this script under &lt;code&gt;/usr/local/bin/CrashPlanCommand&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/bin/sh
BASE_DIR=/usr/local/crashplan

if [ &quot;x&amp;#036;@&quot; == &quot;x&quot; ] ; then
  echo &quot;Usage: &amp;#036;0 &amp;lt;command&amp;gt; [&amp;lt;command&amp;gt;...]&quot;
  exit
fi

hostPort=localhost:4243
echo &quot;Connecting to &amp;#036;hostPort&quot;

echo &quot;Executing &amp;#036;@&quot;

CP=.
for f in `ls &amp;#036;BASE_DIR/lib/*.jar`; do
    CP=&amp;#036;{CP}:&amp;#036;f
done

java -classpath &amp;#036;CP com.backup42.service.ui.client.ConsoleApp &amp;#036;hostPort &quot;&amp;#036;@&quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now I can run &lt;code&gt;CrashPlanCommand &apos;pause 9999&apos;&lt;/code&gt; and &lt;code&gt;CrashPlanCommand
resume&lt;/code&gt; to pause and resume the backups (9999 is the number of minutes
to pause, which is about a week, since I might be undocked more than 24
hourse, which is the default pause time).&lt;/p&gt;

&lt;p&gt;To make this run automatically on undock, I created a simply udev rules
file as &lt;code&gt;/etc/udev/rules.d/10-local-crashplan-dock.rules&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ACTION==&quot;change&quot;, ATTR{docked}==&quot;0&quot;, ATTR{type}==&quot;dock_station&quot;, RUN+=&quot;/usr/local/bin/CrashPlanCommand &apos;pause 9999&apos;&quot;
ACTION==&quot;change&quot;, ATTR{docked}==&quot;1&quot;, ATTR{type}==&quot;dock_station&quot;, RUN+=&quot;/usr/local/bin/CrashPlanCommand resume&quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And voilà! Automatica pausing and resuming on undocking/docking of my
laptop!&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Booting an old Sparc Ultra1 with dead NVRAM</title>
    <pubDate>Wed, 23 May 2012 13:14:00 +0200</pubDate>
    <link>http://www.stderr.nl/2012/05/23#OldSparc</link>
    <category>/Blog/Hardware</category>
    <guid isPermaLink="false">http://www.stderr.nl/Blog/Hardware/OldSparc</guid>
    <description>&lt;p&gt;&lt;img src=&quot;/static//images/Hardware/SunUltra1.jpg&quot; alt=&quot;Sun Ultra1&quot; style=&quot;float: left&quot; title=&quot;Sun Ultra1 creator. Image licensed under CC-BY-SA, taken from http://en.wikipedia.org/wiki/File:Sun_ultra_1.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To be able to debug a &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=641146&quot;&gt;bug&lt;/a&gt; in &lt;a href=&quot;http://www.openttd.org&quot;&gt;OpenTTD&lt;/a&gt; that only occured on
&lt;a href=&quot;http://en.wikipedia.org/wiki/SPARC&quot;&gt;SPARC&lt;/a&gt; machines, I needed an old SPARC machine so I could reproduce
and hopefully fix the bug. After some inquiring at our local
hackerspace, &lt;a href=&quot;https://bitlair.nl/&quot;&gt;Bitlair&lt;/a&gt; (which had a few SPARC32 machines lying around,
but I needed SPARC64), I got in touch with &lt;a href=&quot;http://nurdspace.nl/User:The_Niz&quot;&gt;The_Niz&lt;/a&gt; from
&lt;a href=&quot;http://nurdspace.nl/&quot;&gt;NURDSpace&lt;/a&gt;, the hackerspace in Wageningen. Surprisingly, it turned out
I actually knew The_Niz already through work :-)&lt;/p&gt;

&lt;p&gt;In any case, The_Niz was kind enough to lend me a &lt;a href=&quot;http://en.wikipedia.org/wiki/Ultra_1&quot;&gt;SPARC Ultra1
workstation&lt;/a&gt; and Sun keyboard, and &lt;a href=&quot;https://r3blog.nl/&quot;&gt;r3boot&lt;/a&gt; gave me a Sun monitor
I could use (of course Sun hardware doesn&apos;t use a regular VGA
connector...).&lt;/p&gt;

&lt;p&gt;There was one caveat, though: The NVRAM battery in the Ultra1 was dead.
The NVRAM chip stores the boot settings (like the BIOS settings in a
regular PC), but also the serial number and MAC address of the machine
(called the IDPROM info).  Without those settings, you&apos;ll have to
manually select the boot device on every boot (by typing commands at a
prompt) and netbooting does not work, for lack of a MAC address (I
presume regular networking, e.g., from within Linux, does not work
either, but I haven&apos;t tested that yet).&lt;/p&gt;

&lt;p&gt;Sun has taken an interesting approach to their NVRAM chip. Where most
machines just use a piece of EEPROM (Flash) memory, which does not need
power to remember its contents, Sun has used a piece of RAM memory
(which needs power to remember its contents) combined with a small
rechargeable battery.&lt;/p&gt;

&lt;p&gt;This means that when the machine is not used for a
long time or is very old, the battery will eventually die, causing the
machine to spit out messages like &quot;&lt;code&gt;The IDPROM contents are
invalid&lt;/code&gt; and &quot;&lt;code&gt;Internal loopback test -- Did not receive expected
loopback packet&lt;/code&gt;&quot;.&lt;/p&gt;

&lt;p&gt;I needed to install Debian on this Ultra1, so I needed some way to boot
the installer. Since netbooting did not work, my first attempt was to
ignore the NVRAM problem and just get the machine to boot off a Debian
boot cd. This did not quite work out: the cdrom player in the Ultra1 (a
4x burner connected through SCSI) didn&apos;t like any of the CD-Rs and
CD-RWs I threw at it. It spat out errors like &quot;Illegal Instruction&quot;,
&quot;Program Terminated&quot; or &quot;SProgram Terminated&quot; (where the first &quot;S&quot; is
the start of &quot;SILO&quot;, the SPARC bootloader).&lt;/p&gt;

&lt;p&gt;As we all remember from a long time ago, the early generation CD-ROM
players were quite picky with burnt CDs, so also this one. I found some
advice online to burn my CDs at a lower speed (apparently the drive was
rumoured to break on discs burned at 4x or higher), but my drive or
CD-Rs didn&apos;t support writing slower than 8x...  I could write my CD-RW
at 4x and at one occasion I managed to boot the installer from a CD-RW
and succesfully (but very, very slowly) scan the CD-RW contents, but
then it broke with read errors when trying to actually load files from
the CD-RW.&lt;/p&gt;

&lt;p&gt;So, having no usable CD-ROM drive to boot from, I really had to get
netboot going. Apparently it is possible (and even easy and not so
expensive) to replace the NVRAM chip, but I didn&apos;t feel like waiting for
one to be shipped. There is a &lt;a href=&quot;http://www.squirrel.com/squirrel/sun-nvram-hostid.faq&quot;&gt;FAQ available online&lt;/a&gt; with extensive
documentation about the NVRAM chip and instructions on how to reprogram
the IDPROM part with valid contents.&lt;/p&gt;

&lt;p&gt;So, I reckoned that the battery was only needed when the machine was
powered down, so I should be able to reprogram the IDPROM info and then
just not poweroff the system, right?&lt;/p&gt;

&lt;p&gt;Turns out that works perfectly. I reprogrammed the IDPROM using the MAC
address I read off the sticker on the NVRAM chip and made up a dummy
serial number. For some reason, the &lt;code&gt;mkpl&lt;/code&gt; command did not work, I had
to use the more verbose &lt;code&gt;mkp&lt;/code&gt; command. Afterwards, I gave the &lt;code&gt;reset&lt;/code&gt;
command and the &quot;Internal loopback test&quot; error was gone and the machine
started netbooting, using RARP and TFTP.&lt;/p&gt;

&lt;p&gt;By now, I&apos;ve managed to install Debian, get Xorg working and reproduce
the bug in OpenTTD, so time for fixing it :-D&lt;/p&gt;
</description>
  </item>
  <item>
    <title>New website for &quot;Matthijs Kooijman IT&quot;</title>
    <pubDate>Thu, 23 Feb 2012 15:27:00 +0100</pubDate>
    <link>http://www.stderr.nl/2012/02/23#MKIT</link>
    <category>/Blog/Personal</category>
    <guid isPermaLink="false">http://www.stderr.nl/Blog/Personal/MKIT</guid>
    <description>&lt;p&gt;&lt;a href=&quot;http://www.mkit.nl&quot;&gt;&lt;img src=&quot;/static//images/Personal/MKIT%20Website.png&quot; alt=&quot;Matthijs Kooijman IT&quot; style=&quot;float: right&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since 2010, I&apos;ve been working as a Freelancer (&lt;a href=&quot;http://nl.wikipedia.org/wiki/Zelfstandige_zonder_personeel&quot;&gt;ZZP&apos;er&lt;/a&gt;). Of course I
registered a domain name right away, but until now, I didn&apos;t get around
to actually putting a website on there (just as single page with boring
markup and some contact information).&lt;/p&gt;

&lt;p&gt;Last week, I created an actual website. It&apos;s still not spectacular, but
at least it has some actual content and a few pages etc. So, with a
modest amount of pride, I present: &lt;a href=&quot;http://www.mkit.nl&quot;&gt;the website of Matthijs Kooijman
IT&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;For anyone wondering: I didn&apos;t put up some bloated CMS, running on a
database, but I store my content in a handful of text files (using
Markdown markup) and using &lt;a href=&quot;http://bitbucket.org/obensonne/poole&quot;&gt;poole&lt;/a&gt; to translate those to (static)
HTML files. I keep the files in git and set up a git post-update hook to
generate the HTML to make things extra convenient.&lt;/em&gt;&lt;/p&gt;
</description>
  </item>
  <item>
    <title>dconf-editor is the new gconf-editor</title>
    <pubDate>Wed, 11 Jan 2012 12:17:00 +0100</pubDate>
    <link>http://www.stderr.nl/2012/01/11#Gnome3-gconf-editor</link>
    <category>/Blog/Software/Gnome</category>
    <guid isPermaLink="false">http://www.stderr.nl/Blog/Software/Gnome/Gnome3-gconf-editor</guid>
    <description>&lt;p&gt;&lt;img src=&quot;/static//images/Software/Gnome/GnomeSmall.png&quot; alt=&quot;Gnome&quot; style=&quot;float: left&quot; title=&quot;Gnome logo. Image licensed under GNU GPL2.1+, taken from http://en.wikipedia.org/wiki/File:Gnomelogo.svg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A I &lt;a href=&quot;http://www.stderr.nl/Blog/Software/Gnome/Gnome3-Gdm3-Background.rss&quot;&gt;previously mentioned&lt;/a&gt;, &lt;a href=&quot;http://www.gnome.org/gnome-3/&quot;&gt;Gnome3&lt;/a&gt; is migrating away from the
&lt;a href=&quot;http://en.wikipedia.org/wiki/GConf&quot;&gt;gconf&lt;/a&gt; settings storage to the to &lt;a href=&quot;http://live.gnome.org/GnomeGoals/GSettingsMigration&quot;&gt;GSettings&lt;/a&gt; settings API (along
with the default &lt;a href=&quot;http://live.gnome.org/dconf&quot;&gt;dconf&lt;/a&gt; settings storage backend).&lt;/p&gt;

&lt;p&gt;So where you previously used the &lt;code&gt;gconf-editor&lt;/code&gt; program to browse and
edit &lt;a href=&quot;http://www.gnome.org/&quot;&gt;Gnome&lt;/a&gt; settings, you can now use &lt;code&gt;dconf-editor&lt;/code&gt; to browse and
edit settings.&lt;/p&gt;

&lt;p&gt;I do wonder if the name actually implies that &lt;code&gt;dconf-editor&lt;/code&gt; is editing
the dconf storage directly, instead of using the fancy new GSettings
API? :-S&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Changing the gdm3 (login screen) background in Gnome3</title>
    <pubDate>Wed, 04 Jan 2012 16:31:00 +0100</pubDate>
    <link>http://www.stderr.nl/2012/01/04#Gnome3-Gdm3-Background</link>
    <category>/Blog/Software/Gnome</category>
    <guid isPermaLink="false">http://www.stderr.nl/Blog/Software/Gnome/Gnome3-Gdm3-Background</guid>
    <description>&lt;p&gt;&lt;img src=&quot;/static//images/Software/Gnome/Gnome.png&quot; alt=&quot;Gnome&quot; style=&quot;float: right&quot; title=&quot;Gnome logo. Image licensed under GNU GPL2.1+, taken from http://en.wikipedia.org/wiki/File:Gnomelogo.svg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I upgraded to &lt;a href=&quot;http://www.gnome.org/gnome-3/&quot;&gt;Gnome3&lt;/a&gt; this week, and after half a day of debugging I got
my (quite non-standard) setup working completely again. One of the
things that got broken was my custom wallpaper on the gdm3 login screen.
This used to be configured in &lt;code&gt;/etc/gdm3/greeter.gconf.defaults&lt;/code&gt;, but
apparently Gnome3 replaced gconf by this new &quot;gsettings&quot; thingy.&lt;/p&gt;

&lt;p&gt;Anyway, to change the desktop background in gdm, add the following lines
to &lt;code&gt;/etc/gdm3/greeter.gsettings&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[org.gnome.desktop.background]
picture-uri=&apos;file:///etc/gdm3/thinkpad.jpg&apos;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;For reference, &lt;a href=&quot;http://www.webupd8.org/2011/07/change-gnome-3-login-screen-gdm3.html&quot;&gt;I also found some other method&lt;/a&gt;, which looks a lot
more complicated. I suspect it also doesn&apos;t work in Debian, which runs
gdm as root, not as a separate &quot;&lt;code&gt;gdm&lt;/code&gt;&quot; user. Systems that do use such a
user might need the more complicated method, I guess (which probably
ends up storing the settings somewhere in the homedir of the &lt;code&gt;gdm&lt;/code&gt;
user...).&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Thinkpad X201 mute button breaking speaker output</title>
    <pubDate>Fri, 25 Nov 2011 00:13:00 +0100</pubDate>
    <link>http://www.stderr.nl/2011/11/25#WeirdMuteButtonBehaviour</link>
    <category>/Blog/Hardware/Thinkpad</category>
    <guid isPermaLink="false">http://www.stderr.nl/Blog/Hardware/Thinkpad/WeirdMuteButtonBehaviour</guid>
    <description>&lt;p&gt;&lt;img src=&quot;/static//images/Hardware/X201/Thinkpad.png&quot; alt=&quot;Thinkpad&quot; style=&quot;float: right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Recently, I was having some problems with the internal speakers on my
&lt;a href=&quot;http://www.thinkwiki.org/wiki/Category:X201&quot;&gt;Lenovo Thinkpad X201&lt;/a&gt;. Three times now, the internal speakers just
stopped producing sound. The headphone jack worked, it&apos;s just the
speakers which were silent. Nothing helped: fiddling with volume
controls, reloading alsa modules, rebooting my laptop, nothing fixed the
sound...&lt;/p&gt;

&lt;p&gt;When trying to see if the speakers weren&apos;t physically broken, I
discovered that booting into Windows actually fixed the problem and
restored the sound from the speakers. It&apos;s of course a bit of a defeat
to accept Windows a fix for my problem, but I was busy with other
things, so it sufficed for a while.&lt;/p&gt;

&lt;p&gt;When migrating my laptop to my new &lt;a href=&quot;http://www.intel.com/content/www/us/en/solid-state-drives/solid-state-drives-320-series.html&quot;&gt;Intel SSD&lt;/a&gt;, I broke my Windows
installation, so when the problem occured again, I had no choice but to
actualy investigate it.&lt;/p&gt;

&lt;p&gt;I&apos;ll skip right to the conclusion here: I had broken my sound by
pressing the mute button on my keyboard... Now, before you think I&apos;m
stupid, I had of course checked my volume controls and the device really
was unmuted! But it turns out the mute button in Thinkpads combined with
Linux is a bit weird...&lt;/p&gt;

&lt;p&gt;This is how you would expect a mute button to be implemented: You press
the mute button, it sends a keypress to the operating system, which then
tells the audio driver to mute.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/static//images/Hardware/X201/X201%20Mute.png&quot; alt=&quot;X201 volume buttons&quot; style=&quot;float: left&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is how it works on my Thinkpad: You press the mute button, causing
the EC (embedded controller) in the thinkpad to directly mute the
speakers. This is not visible from the normal volume
controls in the software, since it happens on a very low level (though
&lt;a href=&quot;http://ibm-acpi.sourceforge.net/README&quot;&gt;the &lt;code&gt;thinkpad_acpi&lt;/code&gt; kernel module&lt;/a&gt; can be used to expose this special
mute state through a &lt;code&gt;/proc&lt;/code&gt; interface and special audio device).&lt;/p&gt;

&lt;p&gt;In addition to muting the speakers, it also sends a &lt;code&gt;MUTE&lt;/code&gt; acpi keypress
to the operating system. This keypress then causes the audio driver to
mute the audio stream (actually, it&apos;s &lt;a href=&quot;http://www.pulseaudio.org/&quot;&gt;pulseaudio&lt;/a&gt; that does that).&lt;/p&gt;

&lt;p&gt;Now, here&apos;s the fun part: If you now unmute the audio stream through the
software volume controls, everything looks like it should work, but the
hardware is still muted! It never occured to me to press the mute button
again, since the volume wasn&apos;t muted (or at least didn&apos;t look like
it).&lt;/p&gt;

&lt;p&gt;I originally thought that the mute button handling was even more
complex, when I &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=drivers/platform/x86/thinkpad_acpi.c;hb=v3.1#l2483&quot;&gt;found some register polling code&lt;/a&gt; that faked
keypresses, but it seems that&apos;s only for older Thinkpads (phew!).&lt;/p&gt;

&lt;p&gt;In any case, the bottom line is: If you have a Thinkpad whose speakers
suddely stop working, try pressing the mute button!&lt;/p&gt;
</description>
  </item>
  </channel>
</rss>
