<?xml version="1.0"?>
<!-- RSS generated by bzero 0.19/darwin (C) 2002-04 Phillip Pearson; http://www.myelin.co.nz/bzero/ -->
<rss version="2.0" xmlns:ent="http://www.purl.org/NET/ENT/1.0/">
        <channel>
                <title>Second p0st</title>
                <link>http://www.myelin.co.nz/post/</link>
                <description>tech notes and &lt;a href=&quot;http://www.myelin.co.nz/notes/&quot;&gt;web hackery&lt;/a&gt; from &lt;a href=&quot;http://www.myelin.co.nz/phil/&quot;&gt;the guy&lt;/a&gt; that brought you &lt;a href=&quot;http://www.myelin.co.nz/bzero/&quot;&gt;bzero&lt;/a&gt;, &lt;a href=&quot;http://www.pycs.net/&quot;&gt;python community server&lt;/a&gt;, the &lt;a href=&quot;http://www.myelin.co.nz/ecosystem/&quot;&gt;blogging ecosystem&lt;/a&gt;, the &lt;a href=&quot;http://coffee.gen.nz/&quot;&gt;new zealand coffee review&lt;/a&gt; and the &lt;a href=&quot;http://topicexchange.com/&quot;&gt;internet topic exchange&lt;/a&gt;</description>
                <copyright>Copyright 2010 Phillip Pearson</copyright>
                <lastBuildDate>Mon, 15 Feb 2010 22:49:08 GMT</lastBuildDate>
                <docs>http://backend.userland.com/rss2</docs>
                <managingEditor>salon-at-myelin-dot-co-dot-nz (Phillip Pearson)</managingEditor>
                <webMaster>salon-at-myelin-dot-co-dot-nz (Phillip Pearson)</webMaster>
		<generator>bzero; http://www.myelin.co.nz/bzero/</generator>

<item>
<title>2009 - 2010</title>
<link>http://www.myelin.co.nz/post/2010/1/4/#201001041</link>
<description>
&lt;p&gt;Well.  I've resurrected my old &lt;a href=&quot;http://www.myelin.co.nz/post/&quot;&gt;blogging tool&lt;/a&gt; and blog data from my last laptop, so, prompted by &lt;a href=&quot;http://benward.me/blog/2010-52&quot;&gt;Ben Ward's 2009 retrospective&lt;/a&gt;, here goes the first post of the new year.  2009's been... interesting.  This time last year, I was interviewing with &lt;a href=&quot;http://www.ning.com/&quot;&gt;Ning&lt;/a&gt;, after Yahoo! &lt;a href=&quot;http://www.techcrunch.com/2008/12/09/yahoo-to-close-brickhouse-by-end-of-year/&quot;&gt;closed&lt;/a&gt; the &lt;a href=&quot;http://www.businessweek.com/technology/content/feb2007/tc20070209_179924.htm&quot;&gt;Brickhouse team/project/experiment&lt;/a&gt; that I'd been part of for just over a year, since late 2007.  Brickhouse (and &lt;a href=&quot;http://fireeagle.yahoo.net/&quot;&gt;Fire Eagle&lt;/a&gt;, the project I spent most of my time working on there) was an incredible environment, where I met some very cool people and made a couple of close friends.  I'm glad I had the chance to be part of it.
&lt;/p&gt;

&lt;p&gt;So, Ning offered me the job, and my priorities abruptly switched from trying to extend my Yahoo! contract to trying to wrap up and hand over &lt;a href=&quot;http://apps.facebook.com/on-fire/&quot;&gt;Friends On Fire&lt;/a&gt;, the Fire Eagle Facebook app that I'd been working on, before taking off for the year's first trip over the Pacific, to meet my new coworkers and learn about the software I'd be working on, in late January.  That all worked out well, and I had a great time in Palo Alto.
&lt;/p&gt;

&lt;p&gt;I returned home, had a crazy week trying to be productive on this codebase I'd barely scraped the surface of at the same time, after which my appendix gave up the ghost, putting me in hospital for the next three weeks, then off work for another three!
&lt;/p&gt;

&lt;p&gt;The rest of the year has been a bit of a blur.  I've travelled a lot:  Wellington, Auckland, Adelaide, San Francisco, Munich and London, plus a couple of smaller trips inside Canterbury: Peel Forest, Loburn, Hanmer Springs, Arthur's Pass.  Reconnected with a bunch of old friends, and made many new ones.  Spent a lot of time at the &lt;a href=&quot;http://chchspace.nztech.org/&quot;&gt;Christchurch Creative Space&lt;/a&gt; and with the people who hang out there.  Visited almost all of my family living outside Christchurch; in five different cities: my brother, two cousins, an aunt, and an uncle and his family!
&lt;/p&gt;

&lt;p&gt;At some point in August, I mentioned to my boss that I'd just booked flights for a visit to San Francisco, and was planning to drop by once every few months, and she asked &quot;well, how about moving here instead?&quot;.  I slept on it, and took her up on the offer the next day.  The process of getting a working visa was surprisingly smooth, and in November I found myself the proud holder of a passport with a US H1B visa sticker, and a whole set of new things to do to tidy up my life in New Zealand for easy transport (or storage).
&lt;/p&gt;

&lt;p&gt;Another notable thing to mention is that I picked up an old hobby: DJing.  I dragged my turntables, mixer, stereo and records down to the Creative Space every week for a little while, then took the whole rig out to the &lt;a href=&quot;http://groups.google.co.nz/group/chchspace/browse_thread/thread/511d7c5d9a9d27b3&quot;&gt;Melting Man&lt;/a&gt; outdoor dance party, where I met the &lt;a href=&quot;http://www.mystiqcatalysts.com/&quot;&gt;Mystiq Catalysts&lt;/a&gt;, who introduced me to drum &amp;amp; bass and the &lt;a href=&quot;http://www.serato.com/&quot;&gt;Serato&lt;/a&gt; line of digital DJ equipment.  Since then, I've played several times at their Thursday night jam sessions, and have started running my own dance music club night, &quot;&lt;a href=&quot;http://www.facebook.com/pages/Midweek-Mix/265787125585&quot;&gt;Midweek Mix&lt;/a&gt;&quot;, on Wednesday nights at Foam, the same club.  I suppose you could call it my first DJ residency?  Now, with the move date getting closer, I've been spending the last few weeks trying to digitize as many of my 12&quot; vinyl records so I can take the music with me and DJ in America without having to carry the (rather heavy) physical media.  It appears that the type of music I used to DJ (or &quot;spin&quot;, which seems to be what people in SF call it) from 1999-2002, trance and progressive trance, has fallen out of favour at home but still has a bit of a following in SF, so it'll be interesting to see how things go when I make it over.
&lt;/p&gt;

&lt;p&gt;So, now, all the Christmas and New Year celebrations are over, and it's back to work!  2009's been a transition year for me -- between one stage of my life that ended with the hospital stay, and another, that'll start when I arrive in California -- and the best year I've had in a long while.  I'm excited to see what 2010 will bring ...
&lt;/p&gt;

&lt;p&gt;Some more 2009 retrospectives from friends: &lt;a href=&quot;http://seldo.com/weblog/2009/12/31/this_blog_in_review_2009&quot;&gt;Laurie&lt;/a&gt;, &lt;a href=&quot;http://ghewgill.livejournal.com/140281.html&quot;&gt;Greg&lt;/a&gt;, &lt;a href=&quot;http://www.facebook.com/note.php?note_id=218885332933&quot;&gt;Soo&lt;/a&gt;, &lt;a href=&quot;http://blog.broadbandmechanics.com/2010/01/03/a-new-decade-of-blogging-10/&quot;&gt;Marc&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;(No comments here any more, but you can &lt;a href=&quot;http://www.facebook.com/notes/phillip-pearson/2009-2010/235440608929&quot;&gt;comment on this on Facebook, if you're my friend there&lt;/a&gt;.)
&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.myelin.co.nz/post/comments?u=2&amp;amp;p=201001041&amp;amp;link=http://www.myelin.co.nz/post/2010/1/4/#201001041&quot; onclick=&quot;window.open( this.href, 'comments', 'width=515, height=480, location=0, resizable=1, scrollbars=1, status=0, toolbar=0, directories=0'); return(false);&quot; title=&quot;Click here to comment on this post.&quot;&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description>
<guid>http://www.myelin.co.nz/post/2010/1/4/#201001041</guid>
<pubDate>Mon, 04 Jan 2010 03:52:28 GMT</pubDate>
<comments>http://www.myelin.co.nz/post/comments?u=2&amp;p=201001041&amp;link=http://www.myelin.co.nz/post/2010/1/4/#201001041</comments>
</item>
<item>
<title>Fixing backspace when ssh'ing to Linux servers in OS X 10.5 Terminal.app</title>
<link>http://www.myelin.co.nz/post/2009/4/28/#200904281</link>
<description>
&lt;p&gt;For some reason the default OS X terminal program, Terminal.app, sets TERM=xterm-color but doesn't send the correct keycode that a colour xterm would send when you hit backspace.  &lt;a href=&quot;http://chad.glendenin.com/macosx-backspace.html&quot;&gt;The solution is to set TERM=rxvt&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;The instructions at the end of that link are a bit out of date; here's how to do it on OS X 10.5.6:
&lt;/p&gt;

&lt;p&gt;- Open Terminal.
&lt;/p&gt;

&lt;p&gt;- Hit Cmd-, or select Terminal &amp;gt; Preferences from the menu, to bring up the Preferences.
&lt;/p&gt;

&lt;p&gt;- Click Settings (the second icon from the left in the bar along the top).
&lt;/p&gt;

&lt;p&gt;- Click Advanced (rightmost tab).
&lt;/p&gt;

&lt;p&gt;- Select 'rxvt' after 'Declare terminal as'.
&lt;/p&gt;

&lt;p&gt;- Uncheck 'Delete sends Ctrl-H'.
&lt;/p&gt;

&lt;p&gt;... and you're done.  You might also want to click through to the Keyboard pane and select 'Use option as meta key', which is useful (although I wish I could use &lt;b&gt;Command&lt;/b&gt; as the meta key).
&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.myelin.co.nz/post/comments?u=2&amp;amp;p=200904281&amp;amp;link=http://www.myelin.co.nz/post/2009/4/28/#200904281&quot; onclick=&quot;window.open( this.href, 'comments', 'width=515, height=480, location=0, resizable=1, scrollbars=1, status=0, toolbar=0, directories=0'); return(false);&quot; title=&quot;Click here to comment on this post.&quot;&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description>
<guid>http://www.myelin.co.nz/post/2009/4/28/#200904281</guid>
<pubDate>Tue, 28 Apr 2009 04:49:35 GMT</pubDate>
<comments>http://www.myelin.co.nz/post/comments?u=2&amp;p=200904281&amp;link=http://www.myelin.co.nz/post/2009/4/28/#200904281</comments>
</item>
<item>
<title>Reading while recovering</title>
<link>http://www.myelin.co.nz/post/2009/3/21/#200903211</link>
<description>
&lt;p&gt;A couple of good books I've read over the past week:
&lt;/p&gt;

&lt;p&gt;- &quot;Imperium&quot; by Robert Harris.
&lt;/p&gt;

&lt;p&gt;- &quot;The Bourne Identity&quot; by Robert Ludlum (I've never seen the film, but the book was good).
&lt;/p&gt;

&lt;p&gt;Following that, I'm just starting on &quot;Zen and the Art of Motorcycle Maintenance&quot;.
&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.myelin.co.nz/post/comments?u=2&amp;amp;p=200903211&amp;amp;link=http://www.myelin.co.nz/post/2009/3/21/#200903211&quot; onclick=&quot;window.open( this.href, 'comments', 'width=515, height=480, location=0, resizable=1, scrollbars=1, status=0, toolbar=0, directories=0'); return(false);&quot; title=&quot;Click here to comment on this post.&quot;&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description>
<guid>http://www.myelin.co.nz/post/2009/3/21/#200903211</guid>
<pubDate>Sat, 21 Mar 2009 09:19:10 GMT</pubDate>
<comments>http://www.myelin.co.nz/post/comments?u=2&amp;p=200903211&amp;link=http://www.myelin.co.nz/post/2009/3/21/#200903211</comments>
</item>
<item>
<title>Minor happenings</title>
<link>http://www.myelin.co.nz/post/2009/3/14/#200903141</link>
<description>
&lt;p&gt;I've been away for a bit.  My appendix started playing up on Sunday 23 February and sometime between then and Wednesday 26 February, when I was admitted to Christchurch Public Hospital, it burst, resulting in a full blown case of peritonitis.  There was a pretty nasty week in hospital while I was recovering from the operation, and also dealing with pneumonia (a surgical complication, I think) and the rotovirus stomach bug (which I guess I caught in the Emergency Department).  Since then it's been pretty much waiting for things to straighten themselves out, and finally today (after 2.5 weeks in hospital) I've been pronounced stable enough to go home for the weekend.  Thanks so much to everyone who e-mailed or twittered their well wishes - it really made the time pass much more quickly.
&lt;/p&gt;

&lt;p&gt;[&lt;b&gt;Update&lt;/b&gt;: There was some other news here, which is still valid but probably doesn't need to be recorded in perpetuity on my blog.]
&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.myelin.co.nz/post/comments?u=2&amp;amp;p=200903141&amp;amp;link=http://www.myelin.co.nz/post/2009/3/14/#200903141&quot; onclick=&quot;window.open( this.href, 'comments', 'width=515, height=480, location=0, resizable=1, scrollbars=1, status=0, toolbar=0, directories=0'); return(false);&quot; title=&quot;Click here to comment on this post.&quot;&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description>
<guid>http://www.myelin.co.nz/post/2009/3/14/#200903141</guid>
<pubDate>Sat, 14 Mar 2009 00:13:52 GMT</pubDate>
<comments>http://www.myelin.co.nz/post/comments?u=2&amp;p=200903141&amp;link=http://www.myelin.co.nz/post/2009/3/14/#200903141</comments>
</item>
<item>
<title>[Minimal] pure PHP Subversion client</title>
<link>http://www.myelin.co.nz/post/2009/2/6/#200902061</link>
<description>
&lt;p&gt;Something interesting I did back in 2006 was &lt;a href=&quot;http://www.myelin.co.nz/post/2006/6/13/&quot;&gt;write a pure PHP parser for the Subversion REPORT XML format&lt;/a&gt;, which is what a Subversion server sends in response to a checkout or update request.  The code could check out a fresh copy of a repository, and also handle the XML well enough to update from revision to revision.  I did this to implement the auto-update process for &lt;a href=&quot;http://peopleaggregator.net/&quot;&gt;PeopleAggregator&lt;/a&gt;, for &lt;a href=&quot;http://www.broadbandmechanics.com/&quot;&gt;Broadband Mechanics&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;It's worked pretty well, and I'm pretty proud of the code... not its beauty, because it's fairly inscrutable, but in that it worked at all, and that it was as reliable as it was.  I think it took a few days to write, and after a couple of minor bugs found over the next week or two, we didn't find anything wrong with it until much later, when we shipped an update which deleted a file, which was a case I hadn't considered when writing it.  After fixing that it worked just fine from then on.
&lt;/p&gt;

&lt;p&gt;Anyway, &lt;a href=&quot;http://blog.broadbandmechanics.com/&quot;&gt;Marc&lt;/a&gt; gave me permission to release this as open source under the MIT license (like CC-BY: fairly unrestricted use, with attribution) a year or two back, and people have asked me about it from time to time, but I've never actually put up an official copy with the MIT license on it.  So, here you go:
&lt;/p&gt;

&lt;p&gt;&amp;rarr; &lt;b&gt;&lt;a href=&quot;http://github.com/myelin/pure-php-subversion/tree/master&quot;&gt;pure-php-subversion&lt;/a&gt;&lt;/b&gt; on GitHub.
&lt;/p&gt;

&lt;p&gt;I never spent the time to properly extricate it from PeopleAggregator, so you'll need to hack PAStateStore.php into something that fits your own database, and figure out the schema.  If someone wants to write a pure-PHP handler for .svn directories, or even a generic state store which stores hashes like PAStateStore (but maybe in a flat file rather than a database), that would be brilliant.  Fork and enjoy!
&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.myelin.co.nz/post/comments?u=2&amp;amp;p=200902061&amp;amp;link=http://www.myelin.co.nz/post/2009/2/6/#200902061&quot; onclick=&quot;window.open( this.href, 'comments', 'width=515, height=480, location=0, resizable=1, scrollbars=1, status=0, toolbar=0, directories=0'); return(false);&quot; title=&quot;Click here to comment on this post.&quot;&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description>
<guid>http://www.myelin.co.nz/post/2009/2/6/#200902061</guid>
<category>Subversion</category>
<pubDate>Fri, 06 Feb 2009 10:52:12 GMT</pubDate>
<comments>http://www.myelin.co.nz/post/comments?u=2&amp;p=200902061&amp;link=http://www.myelin.co.nz/post/2009/2/6/#200902061</comments>
</item>
<item>
<title>Clever things about the MacBook that other laptop makers should steal</title>
<link>http://www.myelin.co.nz/post/2009/2/2/#200902021</link>
<description>
&lt;p&gt;I've been using a MacBook Pro for a week now, and here are some of the things I'm surprised nobody appears to have cloned.
&lt;/p&gt;

&lt;p&gt;- Giant touchpad with multi-touch gestures.  Two finger scroll that works both vertically and horizontally is excellent, and the three finger page up/down is good, if not something I need as often.
&lt;/p&gt;

&lt;p&gt;- Power indicator that tells you how long it will be before the battery is fully charged.
&lt;/p&gt;

&lt;p&gt;- Fans that vent through the top of the case rather than the bottom/side, so you can put it on a soft surface without it overheating (any more than it normally does).
&lt;/p&gt;

&lt;p&gt;- The ability to act like a wifi base station and share an internet connection from a wired ethernet connection out via wifi.
&lt;/p&gt;

&lt;p&gt;- Autosensing ethernet, so you don't need crossover cables.
&lt;/p&gt;

&lt;p&gt;- Good keyboard shortcut to eject a volume, which also tries to close windows using the volume so you don't get an error about something being in use.
&lt;/p&gt;

&lt;p&gt;There are some things that could be improved.
&lt;/p&gt;

&lt;p&gt;- The not-so-often-used function key is off in the bottom left hand corner of the keyboard, which is prime real estate.  My Windows laptop puts the Control key there.
&lt;/p&gt;

&lt;p&gt;- Home/end/pgup/pgdn would be nicer as separate keys -- this makes me much slower editing text in OS X than Windows.
&lt;/p&gt;

&lt;p&gt;- A lot of apps use similar-but-different keyboard shortcuts.  Lots of things use shift-cmd-[] to switch tabs, but I've also seen cmd-left/right and shift-cmd-left/right.
&lt;/p&gt;

&lt;p&gt;- I haven't figured out a good way to completely wrap up the power brick yet.  My Toshiba has a velcro strap I can use to secure everything.  The thin cord coming out of the brick wraps nicely around the little hooks, but the big cord that plugs into the mains needs a bit of velcro.
&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.myelin.co.nz/post/comments?u=2&amp;amp;p=200902021&amp;amp;link=http://www.myelin.co.nz/post/2009/2/2/#200902021&quot; onclick=&quot;window.open( this.href, 'comments', 'width=515, height=480, location=0, resizable=1, scrollbars=1, status=0, toolbar=0, directories=0'); return(false);&quot; title=&quot;Click here to comment on this post.&quot;&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description>
<guid>http://www.myelin.co.nz/post/2009/2/2/#200902021</guid>
<pubDate>Mon, 02 Feb 2009 07:03:30 GMT</pubDate>
<comments>http://www.myelin.co.nz/post/comments?u=2&amp;p=200902021&amp;link=http://www.myelin.co.nz/post/2009/2/2/#200902021</comments>
</item>
<item>
<title>Small-scale revision control</title>
<link>http://www.myelin.co.nz/post/2009/1/23/#200901232</link>
<description>
&lt;p&gt;Here's something I'd like: revision control that stores *ALL* its (required) working-directory metadata inside the actual files.
&lt;/p&gt;

&lt;p&gt;This would be a godsend for when you have to work with people who don't grok the revision control religion and like to do things like copy scripts around the place and make many small untracked modifications.  The idea would be to have a comment somewhere in the file pointing to the repository, path, and version.  The RCS could have a temp folder somewhere else on the system to cache revisions for fast local access.
&lt;/p&gt;

&lt;p&gt;Then, wherever you are, you could run &lt;code&gt;$RCS &amp;lt;status|commit|update&amp;gt;&lt;/code&gt; on any file containing a magic metadata block connecting it to the repository.  I guess you could write this as a frontend to any current revision control system; the metadata block could refer to a Subversion or Git repository path, and operations on it would set up a working directory with just that file and the appropriate metadata, then act as usual.
&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.myelin.co.nz/post/comments?u=2&amp;amp;p=200901232&amp;amp;link=http://www.myelin.co.nz/post/2009/1/23/#200901232&quot; onclick=&quot;window.open( this.href, 'comments', 'width=515, height=480, location=0, resizable=1, scrollbars=1, status=0, toolbar=0, directories=0'); return(false);&quot; title=&quot;Click here to comment on this post.&quot;&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description>
<guid>http://www.myelin.co.nz/post/2009/1/23/#200901232</guid>
<pubDate>Fri, 23 Jan 2009 00:23:11 GMT</pubDate>
<comments>http://www.myelin.co.nz/post/comments?u=2&amp;p=200901232&amp;link=http://www.myelin.co.nz/post/2009/1/23/#200901232</comments>
</item>
<item>
<title>Locking down a MediaWiki</title>
<link>http://www.myelin.co.nz/post/2009/1/23/#200901231</link>
<description>
&lt;p&gt;I know, it's a crime against wiki nature, but sometimes you want to lock down a MediaWiki install so only certain people can edit it.  To do so, put this in LocalSettings.php:
&lt;/p&gt;

&lt;pre&gt;  $wgGroupPermissions['*']['edit'] = false;
  $wgShowIPinHeader = false;&lt;br&gt;
  $wgGroupPermissions['*']['createaccount'] = false;&lt;/pre&gt;


&lt;p&gt;Then, to create someone an account, you have to log in, then return to the login page and click 'Create account'.  The flow is a bit weird; the best I can recommend is to bookmark the 'Create account' page, which will be something like this for a wiki on http://example.com/:
&lt;/p&gt;

&lt;pre&gt;  http://example.com/Special:UserLogin?type=signup&lt;/pre&gt;



&lt;p&gt;&lt;a href=&quot;http://www.myelin.co.nz/post/comments?u=2&amp;amp;p=200901231&amp;amp;link=http://www.myelin.co.nz/post/2009/1/23/#200901231&quot; onclick=&quot;window.open( this.href, 'comments', 'width=515, height=480, location=0, resizable=1, scrollbars=1, status=0, toolbar=0, directories=0'); return(false);&quot; title=&quot;Click here to comment on this post.&quot;&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description>
<guid>http://www.myelin.co.nz/post/2009/1/23/#200901231</guid>
<pubDate>Thu, 22 Jan 2009 22:41:22 GMT</pubDate>
<comments>http://www.myelin.co.nz/post/comments?u=2&amp;p=200901231&amp;link=http://www.myelin.co.nz/post/2009/1/23/#200901231</comments>
</item>
<item>
<title>High availability, the social side</title>
<link>http://www.myelin.co.nz/post/2009/1/20/#200901201</link>
<description>
&lt;p&gt;Everyone loves to blog about how to achieve high availability with various schemes of redundant servers.  However, there are some other things to consider.  How do you assure high availability, or more importantly, that you won't lose data, when your company runs out of money (hopefully temporarily)?  How about if someone hacks into your system and gets a copy of your private SSH key, or your AWS credentials?  What if you have disgruntled employees?
&lt;/p&gt;

&lt;p&gt;The best solution I can think of is to have a backup box on a totally different provider, ideally located in the boss's home or someplace relatively secure, that nobody can directly connect to, but which is able to take a complete snapshot of everything.  Either it'll have a very privileged SSH key, or it'll have access to pull from a &quot;dropbox&quot; that all your servers back themselves up to.
&lt;/p&gt;

&lt;p&gt;One backup system I've set up uses the &quot;dropbox&quot; approach.  The backup server runs the rsync daemon, with a separate user (plus randomly generated password) for each server that needs to be backed up.  Each server user is restricted to its own private area in the backup filesystem, and each server runs rsync at a random time in the day to back itself up.
&lt;/p&gt;

&lt;p&gt;Then, you can create an rsync user with read-only access to the backup data, and rsync it all down to some other box.  If you want to protect against angry sysadmins, several (presumably technical) people in the company should run their own private backups.
&lt;/p&gt;

&lt;p&gt;Keeping all this data private is left as an exercise for the reader :-)
&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.myelin.co.nz/post/comments?u=2&amp;amp;p=200901201&amp;amp;link=http://www.myelin.co.nz/post/2009/1/20/#200901201&quot; onclick=&quot;window.open( this.href, 'comments', 'width=515, height=480, location=0, resizable=1, scrollbars=1, status=0, toolbar=0, directories=0'); return(false);&quot; title=&quot;Click here to comment on this post.&quot;&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description>
<guid>http://www.myelin.co.nz/post/2009/1/20/#200901201</guid>
<pubDate>Mon, 19 Jan 2009 22:46:05 GMT</pubDate>
<comments>http://www.myelin.co.nz/post/comments?u=2&amp;p=200901201&amp;link=http://www.myelin.co.nz/post/2009/1/20/#200901201</comments>
</item>
<item>
<title>Consolidating backups</title>
<link>http://www.myelin.co.nz/post/2008/12/29/#200812291</link>
<description>
&lt;p&gt;I wrote about a fictional backup tool a while ago that would crawl through all your hard disks, figure out which files are already adequately replicated, and replicate the rest into temporary directories so as to ensure that you could always recover from the loss of a disk or two.  I'm finally getting this up and running: I have a script that builds a file containing a hash of every file on all the disks in a machine, and another that walks through all these files and works out where things are.  Currently all it does is tell me the aggregate size of all unique files, as the first thing I want to do with it is make a single global backup of all my stuff onto an appropriately large hard disk.  I'm pretty confident I have less than a terabyte of &lt;a href=&quot;http://www.paulgraham.com/stuff.html&quot;&gt;stuff&lt;/a&gt;, but it might be even less than that, given that I have multiple old backups of my laptop hard disk, and so on.
&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.myelin.co.nz/post/comments?u=2&amp;amp;p=200812291&amp;amp;link=http://www.myelin.co.nz/post/2008/12/29/#200812291&quot; onclick=&quot;window.open( this.href, 'comments', 'width=515, height=480, location=0, resizable=1, scrollbars=1, status=0, toolbar=0, directories=0'); return(false);&quot; title=&quot;Click here to comment on this post.&quot;&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description>
<guid>http://www.myelin.co.nz/post/2008/12/29/#200812291</guid>
<pubDate>Sun, 28 Dec 2008 23:13:13 GMT</pubDate>
<comments>http://www.myelin.co.nz/post/comments?u=2&amp;p=200812291&amp;link=http://www.myelin.co.nz/post/2008/12/29/#200812291</comments>
</item>
<item>
<title>Vodafone 3G Broadband Early Termination math</title>
<link>http://www.myelin.co.nz/post/2008/12/10/#200812101</link>
<description>
&lt;p&gt;I'm wondering whether to sign up for a &lt;a href=&quot;http://www.vodafone.co.nz/mobile-broadband/&quot;&gt;3G data plan&lt;/a&gt; here.  Doing some math to work out what the penalties for early termination are.  There are some interesting discontinuities.
&lt;/p&gt;

&lt;p&gt;I'd probably get the 1GB data (+ $10 for a second GB if I go over that in a calendar month) plan, which has two choices:
&lt;/p&gt;

&lt;p&gt;- $24.95 for 6 months, then $49.95 for 18 months, with early termination fees of $400 in the first 6 months, $300 in months 7-12, and $150 after that.
&lt;/p&gt;

&lt;p&gt;- $200 for the modem, and $59.95 per month after that.
&lt;/p&gt;

&lt;p&gt;Working it out, the no-plan option is best if you're going to quit in the first 5 months.  After that, the discounts add up to make the 24-month option cheaper.  There are a couple of points where it's pointless to quit due to an upcoming reduction in early termination fees.  It's cheaper overall ($599.40 total) to wait out the first year (quitting before month 13) than to quit in months 10-12.  Likewise, it's cheaper overall to wait out the whole term ($1048.80 total) than to quit after month 20.
&lt;/p&gt;

&lt;p&gt;Interestingly, the $150 termination fee in months 13-24 exactly balances the discount over the first six months, so if you sign a 24 month plan then quit in months 13-24, the overall average monthly cost including the termination fee will be $49.95.
&lt;/p&gt;

&lt;p&gt;If the 3G connection is tax-deductible for you and you're in the 39c tax bracket, the &quot;effective cost&quot; per month is $27.08 if you quit after 12 months, or $23.70 if you stay for the full 24 months.
&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Update 2010-02-16&lt;/b&gt; - I signed up for a 24 month Broadband Pro (3G for $70/mo) contract in March, and am just about to move overseas.  The early termination fee 6-12 months into the plan is now $400, but I could transfer down to a Broadband Starter (300MB for $30/mo) for free, so I've done that.  I think there's 13 months left on the plan, so just continuing to pay the $30/month for that time will only cost $390.  It's also possible that I'll be able to cancel for $150 next month, depending whether they calculate the early termination fee based on the original or the current plan.
&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.myelin.co.nz/post/comments?u=2&amp;amp;p=200812101&amp;amp;link=http://www.myelin.co.nz/post/2008/12/10/#200812101&quot; onclick=&quot;window.open( this.href, 'comments', 'width=515, height=480, location=0, resizable=1, scrollbars=1, status=0, toolbar=0, directories=0'); return(false);&quot; title=&quot;Click here to comment on this post.&quot;&gt;Comment&lt;/a&gt;&lt;/p&gt;
</description>
<guid>http://www.myelin.co.nz/post/2008/12/10/#200812101</guid>
<pubDate>Wed, 10 Dec 2008 07:53:10 GMT</pubDate>
<comments>http://www.myelin.co.nz/post/comments?u=2&amp;p=200812101&amp;link=http://www.myelin.co.nz/post/2008/12/10/#200812101</comments>
</item>

	</channel>
</rss>


