<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>Planet SAGE-AU</title>
  <updated>2012-05-17T03:01:14Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>Russell Coker</name>
    <email>russell@coker.com.au</email>
  </author>
  <id>http://planet.coker.com.au/sage/atom.xml</id>
  <link href="http://planet.coker.com.au/sage/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://planet.coker.com.au/sage/" rel="alternate"/>

  <entry xml:lang="en">
    <id>http://etbe.coker.com.au/?p=3304</id>
    <link href="http://etbe.coker.com.au/2012/05/13/really-want-from-nbn/" rel="alternate" type="text/html"/>
    <title>What I REALLY Want from the NBN</title>
    <summary>Generally I haven’t had a positive attitude towards the NBN. It doesn’t seem likely to fulfill the claims of commercial success and would be a really bad thing to privatise anyway. Also it hasn’t seemed to offer any great benefits either. The claim that it will enable lots of new technical developments which we can’t [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Generally I haven’t had a positive attitude towards the NBN. It doesn’t seem likely to fulfill the claims of commercial success and would be a really bad thing to privatise anyway. Also it hasn’t seemed to offer any great benefits either. The claim that it will enable lots of new technical developments which we can’t even imagine yet that aren’t possible with 25Mb/s ADSL but which also don’t require more than the 100Mb/s speed of the NBN never convinced me.</p>
<p>But one thing it could really do well is to give better Internet access in remote areas. Ideally with static or near-static IPv6 addresses (because we have already run out of IPv4 addresses). Currently 3G networks do all sorts of nasty NAT things to deal with the lack of IPv4 addresses which causes a lot of needless pain if you have a server connected via 3G. One of the NBN plans is for wireless net access to remote homes, with some sanity among the people designing the network such NBN connections would all have static IPv6 subnets as long as they don’t move.</p>
<p>I’m currently working on a project that involves servers on 3G links. I don’t have a lot of options on implementation due to hardware and software constraints. So if the ISPs using the NBN and the NBN itself (for the wireless part) could just give us all IPv6 static ranges then lots of problems would be solved.</p>
<p>Of course I don’t have high hopes for this. One of the many ways that the NBN has been messed up is in allowing the provision of lower speed connections. As having an ADSL2+ speed NBN connection is the cheapest option a lot of people will choose it. Therefore the organisations providing services will have to do so with the expectation that most NBN customers have ADSL2+ speed and thus they won’t provide services to take advantage of higher speeds.</p>
<p>Related posts:</p><ol>
<li><a href="http://etbe.coker.com.au/2008/10/07/rpc-and-se-linux/" rel="bookmark" title="RPC and SE Linux">RPC and SE Linux</a> <small>One ongoing problem with TCP networking is the combination of...</small></li>
<li><a href="http://etbe.coker.com.au/2008/08/05/new-strategy-xen-mac-allocation/" rel="bookmark" title="A New Strategy for Xen MAC Allocation">A New Strategy for Xen MAC Allocation</a> <small>When installing Xen servers one issue that arises is how...</small></li>
<li><a href="http://etbe.coker.com.au/2008/07/28/new-net-connections/" rel="bookmark" title="New Net Connections">New Net Connections</a> <small>On Thursday my new InterNode ADSL2+ service was connected [1]....</small></li>
</ol></div>
    </content>
    <updated>2012-05-13T08:13:22Z</updated>
    <category term="Networking"/>
    <author>
      <name>etbe</name>
    </author>
    <source>
      <id>http://etbe.coker.com.au</id>
      <link href="http://etbe.coker.com.au/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://etbe.coker.com.au" rel="alternate" type="text/html"/>
      <subtitle>Linux, politics, and other interesting things</subtitle>
      <title>etbe - Russell Cokeretbe - Russell Coker</title>
      <updated>2012-05-13T09:01:13Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:openfusion.net,2012:/linux/yum_error_performing_checksum</id>
    <link href="http://www.openfusion.net/linux/yum_error_performing_checksum" rel="alternate" type="text/html"/>
    <title>Yum Error Performing Checksum</title>
    <content type="xhtml" xml:lang="en-au"><div xmlns="http://www.w3.org/1999/xhtml"><p>Ok, this has bitten me enough times now that I'm going to blog it so I
don't forget it again.</p>

<p>Symptom: you're doing a yum update on a centos5 or rhel5 box, using rpms
from a repository on a centos6 or rhel6 server (or anywhere else with
a more modern <code>createrepo</code> available), and you get errors like this:</p>

<pre><code>http://example.com/repodata/filelists.sqlite.bz2: [Errno -3] Error performing checksum
http://example.com/repodata/primary.sqlite.bz2: [Errno -3] Error performing checksum
</code></pre>

<p>What this really means that yum is too stupid to calculate the sha256
checksum correctly (and also too stupid to give you a sensible error
message like "Sorry, primary.sqlite.bz2 is using a sha256 checksum,
but I don't know how to calculate that").</p>

<p>The fix is simple:</p>

<pre><code>yum install python-hashlib
</code></pre>

<p>from either rpmforge or epel, which makes the necessary libraries
available for yum to calculate the new checksums correctly. Sorted.</p></div>
    </content>
    <updated>2012-05-08T02:35:00Z</updated>
    <published>2012-05-08T02:26:00Z</published>
    <category term="/linux"/>
    <author>
      <name>Gavin Carr</name>
      <uri>http://www.openfusion.net</uri>
    </author>
    <source>
      <id>tag:openfusion.net,2007:/</id>
      <link href="http://www.openfusion.net/atom" rel="self" type="application/atom+xml"/>
      <link href="http://www.openfusion.net" rel="alternate" type="text/html"/>
      <subtitle>World disintermediation, one hack at a time</subtitle>
      <title>Gavin Carr's Hackery</title>
      <updated>2012-05-08T02:35:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://etbe.coker.com.au/?p=3268</id>
    <link href="http://etbe.coker.com.au/2012/05/07/mac-mini-osx-lion/" rel="alternate" type="text/html"/>
    <title>A Quick Review of the Mac Mini with OS/X Lion compared to Linux</title>
    <summary>A client just lent me a new Mac Mini with OS/X Lion to play with. I think it’s interesting to compare it with regular PCs running Linux. Hardware The Mac Mini is tiny. It’s volume can be compared to that of a laptop. The entire outside apart from the base is made from aluminium which [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>A client just lent me a new Mac Mini with OS/X Lion to play with. I think it’s interesting to compare it with regular PCs running Linux.</p>
<h3>Hardware</h3>
<p>The Mac Mini is tiny. It’s volume can be compared to that of a laptop. The entire outside apart from the base is made from aluminium which helps dissipate heat, it’s not as effective as copper but a lot better than plastic. The ports on the system are sound input/output, 4*USB, Ethernet, Firewire, <a href="http://en.wikipedia.org/wiki/Thunderbolt_(interface)">Thunderbolt (replacement for Firewire)</a>, <a href="http://en.wikipedia.org/wiki/SDXC">SDXC</a>, and HDMI. It ships with a HDMI to DVI-D adapter which is convenient if you have an older monitor (or if you have a recent monitor but no HDMI cable as I do).</p>
<p>To open the case you unscrew the bottom, this is much like opening a watch. Also like opening a watch it’s not particularly easy to screw it back on tightly, I will probably return the Mac Mini without managing to completely screw the base in.</p>
<p>The hardware is very stylish and intricately designed, what we expect from Apple. It’s also quiet. In every way it’s a much better system than the workstation I’m using to write this blog post. The difference of course is that this workstation was free and the Mac Mini cost just over $1000 including the RAM upgrade. A Mac Mini could be a decent Linux workstation and if I see one about to be recycled I’ll be sure to grab it!</p>
<h3>Installation</h3>
<p>The Mac OS comes pre-installed so I didn’t get to do a full installation. When I first booted it up it asked me if I wanted to migrate the configuration from an existing server, I don’t know how well this works as I don’t have a second Mac system but the concept is a good one. Maybe having full support for such a migration process would be a good release goal for a Linux distribution.</p>
<p>After determining that the installation is a fresh one I was asked for a mac.com email address or other form of registration. I skipped this step as I don’t have such an email address, but it could be useful. Red Hat has “Kickstart” to allow configuration of an OS install based on a file from a server (via NFS or HTTP). <a href="http://wiki.debian.org/DebianInstaller/Preseed">Debian supports “preseeding” to take OS configuration options from a file at install time [1]</a> and the same option can be used for later stages of OS autoconfiguration.</p>
<p>One thing that would be really useful is to allow the user to enter a URL for configuration data for an individual account or for all accounts, so someone with an account on one workstation could upload the configuration (which would be either encrypted or sanitised to not have secret data) and then download it when first logging in to a new system. I can easily take a tar archive of my home directory to a new system, but people like my parents don’t have the skill to do that.</p>
<p>One of the final stages of system configuration was to identify the keyboard. The system asked me to press the key to the right of the left shift key and then the key to the left of the right shift key and then offered me three choices of keyboard. That was an interesting way of reducing the list of possible keyboards offered to the user and thus preventing the user from selecting one that is grossly incorrect.</p>
<h3>Cloud Storage</h3>
<p>When first logging in I was asked for an <a href="http://en.wikipedia.org/wiki/Icloud">iCloud [2]</a> login. iCloud doesn’t seem like a service that should be trusted, it’s based in the US and has been designed to facilitate access by government agencies. <a href="http://en.wikipedia.org/wiki/Ubuntu_One">Ubuntu One [3]</a> is a similar service that is run by a more reputable organisation, but the data is still stored by Amazon (a US corporation) which seems like a security risk. Ubuntu One isn’t in Debian (which is strange as Ubuntu is based on Debian) so it was too much effort for me to determine whether it encrypts data in a way that protects the users against US surveillance.</p>
<p>The cost of Ubuntu One storage is $4 per month with music streaming. A better option is to use <a href="https://owncloud.com/">a self-hosted OwnCloud installation for a private or semi-private cloud [4]</a>. A cheap server from someone like <a href="http://www.hetzner.de/en/hosting/produktmatrix/rootserver-produktmatrix-ex">Hetzner (E49 per month for 3TB of RAID-1 storage) [5]</a> is a good option for OwnCloud hosting. A cheap Hetzner server is about $US64 per month (at current conversion rates) which is equivalent to about 16 users of Ubuntu One for music streaming. So if 20 people shared a Hetzner server they could save money when compared to Ubuntu One while also getting a lot more storage. I’ve got about 300G of unused disk space on the Hetzner server that hosts my blog and when the system is migrated to a newer Hetzner server with 3TB disks it will have 2.5TB of unused space, I could store a lot of cloud data in that!</p>
<p>The main features of iCloud and Ubuntu One seem to be distribution of random data files (anything you wish), streaming music to various playing systems, and copying pictures from phones as soon as they are taken. These are all great features but it’s a pity that they don’t appear to support distributed document storage. Apple Pages apparently allows documents to be immediately saved to the cloud. I’d like to be able to save a file with Libre Office at home and then access it from my netbook using the cloud, of course that would require encryption for secret files but that’s not so hard to do. One advantage with such distributed storage is that when combined with offline-IMAP for email it would almost entirely remove the need for backups of the desktop systems I maintain for my relatives. I could have all their pictures and documents go to the cloud and all their email stay on the server so if their desktop PC dies I could just give them a new PC and get it all back from the cloud! OwnCloud supports replication, so if I got two servers I would be covered against a server failure. But I think that for a small server with less than a dozen users it’s probably better to just take some down-time when things go wrong and do regular backups to an array of cheap SATA disks.</p>
<h3>App Store</h3>
<p>Apple has an “App Store” in the OS. The use of such a store on a desktop OS is a new thing for me. It’s basically the same as the Android Market (Google Play) but on the desktop. I think that there is a real scope for an organisation such as Canonical to provide such a market service for Linux. I think that there is a lot of potential for apps to be sold for less than $10 to a reasonable number of Linux users. A small payment would be inconvenient for the seller if they have to interact with the customer in any way and also inconvenient for the buyer if they are entering all their credit card details into a web site for the sale. But for repeat sales with one company being an intermediary it would be convenient for everyone. A market program for a desktop Linux system could provide a friendly interface to selecting free apps from repositories (for Debian, Ubuntu, Fedora, or other distributions) and also have the same interface used for selecting paid applications.</p>
<h3>Conclusion</h3>
<p>This isn’t much of a review of Apple OS/X or the Mac Mini. Thinking about ways of implementing the best features of Lion on Linux is a lot more interesting. I admire Apple in the same way that I admire sharks, they are really good at what they do but they don’t care about my best interests any more than a hungry shark cares about me.</p>
<h3>Update</h3>
<p>I got the currency conversion wrong in the first version of this article. It seems that to save money via a shared Hetzner server instead of Ubuntu One about 20 users would be needed instead of 10. But that’s still not too many and would still give a lot more storage. It would be a little more difficult to arrange though, probably anyone who is seriously into computers knows 10 people who would want to share such a service (including people like their parents who want things to just work and don’t understand what’s happening). But getting 20 people would be more difficult.</p>
<ul>
<li>[1]<a href="http://wiki.debian.org/DebianInstaller/Preseed"> http://wiki.debian.org/DebianInstaller/Preseed</a></li>
<li>[2]<a href="http://en.wikipedia.org/wiki/Icloud"> http://en.wikipedia.org/wiki/Icloud</a></li>
<li>[3]<a href="http://en.wikipedia.org/wiki/Ubuntu_One"> http://en.wikipedia.org/wiki/Ubuntu_One</a></li>
<li>[4]<a href="https://owncloud.com/"> https://owncloud.com/</a></li>
<li>[5]<a href="http://www.hetzner.de/en/hosting/produktmatrix/rootserver-produktmatrix-ex"> http://www.hetzner.de/en/hosting/produktmatrix/rootserver-produktmatrix-ex</a></li>
</ul>
<p>Related posts:</p><ol>
<li><a href="http://etbe.coker.com.au/2007/04/11/xen-and-se-linux-eweek-review-of-rhel5/" rel="bookmark" title="Xen and SE Linux &#x2013; EWeek review of RHEL5">Xen and SE Linux – EWeek review of RHEL5</a> <small>The online magazine EWeek has done a review of RHEL5....</small></li>
<li><a href="http://etbe.coker.com.au/2011/10/18/servers-vs-phones/" rel="bookmark" title="Servers vs Phones">Servers vs Phones</a> <small>Hetzner have recently updated their offerings to include servers with...</small></li>
<li><a href="http://etbe.coker.com.au/2011/09/09/modern-laptops-suck/" rel="bookmark" title="Modern Laptops Suck">Modern Laptops Suck</a> <small>One of the reasons why I’m moving from a laptop...</small></li>
</ol></div>
    </content>
    <updated>2012-05-06T15:50:50Z</updated>
    <category term="Review"/>
    <author>
      <name>etbe</name>
    </author>
    <source>
      <id>http://etbe.coker.com.au</id>
      <link href="http://etbe.coker.com.au/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://etbe.coker.com.au" rel="alternate" type="text/html"/>
      <subtitle>Linux, politics, and other interesting things</subtitle>
      <title>etbe - Russell Cokeretbe - Russell Coker</title>
      <updated>2012-05-13T09:01:13Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://etbe.coker.com.au/?p=3291</id>
    <link href="http://etbe.coker.com.au/2012/05/06/liberty-mobile-phones/" rel="alternate" type="text/html"/>
    <title>Liberty and Mobile Phones</title>
    <summary>I own two mobile phones at the moment, I use a Samsung Galaxy S running Cyanogenmod [1] (Android 2.3.7) for most things, and I have a Sony Ericsson Xperia X10 running Android 2.1 that I use for taking photos, some occasional Wifi web browsing, and using some applications. Comparing Android Hardware The hardware for the [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I own two mobile phones at the moment, I use a <a href="http://en.wikipedia.org/wiki/Galaxy_S">Samsung Galaxy S</a> running <a href="http://www.cyanogenmod.com/">Cyanogenmod [1]</a> (Android 2.3.7) for most things, and I have a <a href="http://en.wikipedia.org/wiki/Xperia_X10">Sony Ericsson Xperia X10</a> running Android 2.1 that I use for taking photos, some occasional Wifi web browsing, and using some applications.</p>
<h3>Comparing Android Hardware</h3>
<p>The hardware for the Xperia X10 is better than that of the Galaxy S in many ways. It has a slightly higher resolution (480*854 vs 480*800), a significantly better camera (8.1MP with a “flash” vs 5MP without), and a status LED which I find really handy (although some people don’t care about it).</p>
<p>The only benefit of the Galaxy S hardware is that it has 16G of internal storage (of which about 2G can be used for applications) and 512M of RAM while the Xperia X10 has 1G of internal storage and 384M of RAM. These are significant issues, I have had applications run out of RAM on the Xperia X10 and I have been forced to uninstall applications to make space.</p>
<p>Overall I consider the Xperia X10 to be a significantly better piece of hardware as I am willing to trade off some RAM and internal storage to get a better resolution screen and a better camera. The problem is that Sony Ericsson have locked down their phones as much as possible and they don’t even give users the option of making a useful backup – they inspired <a href="http://etbe.coker.com.au/2012/02/07/5-principles-backup/">my post about 5 principles of backups [2]</a>.</p>
<p>The fact that the Galaxy S allows installing CyanogenMod which then gives me the liberty to do whatever I want with my phone is a massive feature. It outweighs the hardware benefits of the Sony Ericsson phones over Samsung phones prior to the Galaxy Nexus and Galaxy Note.</p>
<p>For an individual user the ability to control their own hardware is a feature. Such an ability wouldn’t be much use if there wasn’t a community of software developers, so if you buy an Android phone that isn’t supported by CyanogenMod or another free Android distribution then whether it is locked probably won’t matter to you. But for any popular Android phone that’s sold on the mass market it seems that if it’s not locked then it will get a binary distribution of Android in a reasonable amount of time.</p>
<h3>Comparing with Apple</h3>
<p>It seems that Apple is the benchmark for non-free computing at the moment. The iPhone is locked down and Apple takes steps to re-lock phones that can be rooted – as opposed to the Android vendors who ship phones and then don’t bother to update the firmware for any reason. The Apple app market is more expensive and difficult to enter and if an app isn’t in the market then you have to pay if you want to install it on a small number of development/test phones. This compares to Android where the Google market is cheaper and easier to enter and anyone can distribute an app outside the market and have people use it.</p>
<p>But for an individual this doesn’t necessarily cause any problems. I have friends and clients who use iPhones and are very happy with them. In terms of software development it’s a real benefit to have a large number of systems running the same software. As Apple seems to have higher margins and larger volume than any other phone vendor as well as shipping only one phone at any time (compared to every other phone vendor which seems to ship at least 3 different products for different use cases) they are in a much better economic position to get the software development right. As far as I can tell the hardware and software of the iPhone is of very high quality. The iPad (which has a similar market position) is also a quality product. The fact that the Apple app market is more difficult to enter (both in terms of Apple liking the application and the cost of entry) also has it’s advantages, I get the impression that the general quality of iPhone apps is quite high as opposed to Android where there are a lot of low quality apps and many more fraudulent apps than there should be.</p>
<p>The lack of choice in Apple hardware (one phone and one tablet) is a disadvantage for the user. There is no option for a phone with a slide-out keyboard, a large screen (for the elderly and people with fat fingers), or any of the other features that some Android phones have. The lack of a range of sizes for the iPad is also a disadvantage. But it seems that Apple has produced hardware that is good enough for most users so there aren’t many complaints about a lack of choice.</p>
<p>It seems to me that the biggest disadvantage of the closed Apple ecosystem is for society in general. Anyone who wants to write a mobile app to do something which might be considered controversial would probably think twice about whether to develop for the iPhone/iPad as Apple could remove the app at a whim which would waste all the software development work that was invested in writing the app. Google seem to have much less interest in removing apps from their store and if they do remove an app then with some inconvenience it can be distributed on the web without involving them – so the work won’t be wasted.</p>
<h3>How Much Freedom Should a Vendor Provide?</h3>
<p>The Apple approach of locking everything down is clearly working for them at the moment. The Samsung approach of taking the Google prescribed code and allowing users to replace it is good for the users and works well. The Sony Ericsson approach of taking the Google code, adding some proprietary code, and then locking the phone down is bad for the users and I think it will be bad for Sony Ericsson. People are more likely to tell others about negative experiences and negative reviews are more likely to be noticed than positive reviews. So while many people are reasonably happy with Sony Ericsson products (until they find themselves unable to restore from a backup) it’s still not a good situation for Sony Ericsson marketing.</p>
<p>It seems that there are benefits to hardware vendors for being really open and for locking their users in properly. But being somewhat open isn’t a good choice, particularly for a vendor that ships poor quality proprietary apps such as the Sony Ericsson ones.</p>
<p>In terms of application distribution Google isn’t as nice as they appear. <a href="http://www.theverge.com/2011/05/12/google-android-skyhook-lawsuit-motorola-samsung/">The Skyhook case revealed that Google will do whatever it takes to prevent apps that compete with Google apps from being installed by default [3]</a>. <a href="http://arstechnica.com/gadgets/news/2011/05/google-blocks-android-movie-rentals-from-rooted-devices.ars">Google is also trying to make money from DRM sales via Youtube which it denies to rooted phones [4]</a>. Again it seems to me that the best options here are being more open than Google is and being as closed as Apple. Google might gain some useful benefits from applying DRM (even though everyone with technical knowledge knows that it doesn’t work) but the Skyhook shenanigans have got to be costing Google more than it’s worth.</p>
<h3>How to make Android devices more Free</h3>
<p><a href="http://f-droid.org/">The F-droid market is an alternative to the Google App market which only has free software [5]</a>. On it’s web site there are links to download the source for the applications, including the source and binaries for old versions. In the Google App market if an upgrade breaks your system then you just lose, with F-droid you can revert to the old version.</p>
<p><a href="https://owncloud.com/">A self-hosted OwnCloud installation for a private or semi-private cloud [6]</a> can be used as an alternative to the Google Music store as well as for hosting any other data that you want to store online.</p>
<p><a href="http://osmand.net/">The Open Street Map for Android (Osmand) project provides an alternative to the Google Map service [7]</a>. Osmand allows you to download all the vector data for the regions you will ever visit so it can run without Internet access. But it doesn’t have the ability to search for businesses and the search for an address functionality is clunky and doesn’t accept plain text, which among other things precludes pasting data that’s copied from email or SMS. While Osmand provides some important features that Google Maps will probably never provide, it doesn’t provide some of the most used features of Google Maps so uninstalling Google Maps isn’t a good option at the moment.</p>
<p><a href="http://code.google.com/p/k9mail/">The K9mail project provides a nice IMAP client for Android [8]</a>. Use K9 with a mail server that you run and you won’t need to use Gmail.</p>
<p>There are alternatives to all the Google applications. It seems that apart from the lack of commercial data and search ability in Osmand an Android device that is used for many serious purposes wouldn’t lack much if it had no Google apps.</p>
<p>Google seems to be going too far in controlling Android. Escaping from their control and helping others to do the same seems to be good for society and good for the users who don’t need apps which are only available in proprietary form.</p>
<ul>
<li>[1]<a href="http://www.cyanogenmod.com/"> http://www.cyanogenmod.com/</a></li>
<li>[2]<a href="http://etbe.coker.com.au/2012/02/07/5-principles-backup/"> http://etbe.coker.com.au/2012/02/07/5-principles-backup/</a></li>
<li>[3]<a href="http://www.theverge.com/2011/05/12/google-android-skyhook-lawsuit-motorola-samsung/"> http://www.theverge.com/2011/05/12/google-android-skyhook-lawsuit-motorola-samsung/</a></li>
<li>[4]<a href="http://arstechnica.com/gadgets/news/2011/05/google-blocks-android-movie-rentals-from-rooted-devices.ars"> http://arstechnica.com/gadgets/news/2011/05/google-blocks-android-movie-rentals-from-rooted-devices.ars</a></li>
<li>[5]<a href="http://f-droid.org/"> http://f-droid.org/</a></li>
<li>[6]<a href="https://owncloud.com/"> https://owncloud.com/</a></li>
<li>[7]<a href="http://osmand.net/"> http://osmand.net/</a></li>
<li>[8]<a href="http://code.google.com/p/k9mail/"> http://code.google.com/p/k9mail/</a></li>
</ul>
<p>Related posts:</p><ol>
<li><a href="http://etbe.coker.com.au/2011/10/27/dual-sim-amaysim-contract/" rel="bookmark" title="Dual SIM Phones vs Amaysim vs Contract for Mobile Phones">Dual SIM Phones vs Amaysim vs Contract for Mobile Phones</a> <small>Currently Dick Smith is offering two dual-SIM mobile phones for...</small></li>
<li><a href="http://etbe.coker.com.au/2010/01/31/my-ideal-mobile-phone/" rel="bookmark" title="My Ideal Mobile Phone">My Ideal Mobile Phone</a> <small>Based on my experience testing the IBM Seer software on...</small></li>
<li><a href="http://etbe.coker.com.au/2010/01/25/mobile-phones-toys/" rel="bookmark" title="Old Mobile Phones as Toys">Old Mobile Phones as Toys</a> <small>In the past I have had parents ask for advice...</small></li>
</ol></div>
    </content>
    <updated>2012-05-05T14:31:09Z</updated>
    <category term="Politics"/>
    <category term="android"/>
    <author>
      <name>etbe</name>
    </author>
    <source>
      <id>http://etbe.coker.com.au</id>
      <link href="http://etbe.coker.com.au/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://etbe.coker.com.au" rel="alternate" type="text/html"/>
      <subtitle>Linux, politics, and other interesting things</subtitle>
      <title>etbe - Russell Cokeretbe - Russell Coker</title>
      <updated>2012-05-13T09:01:13Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://etbe.coker.com.au/?p=3289</id>
    <link href="http://etbe.coker.com.au/2012/05/03/acoustiblok-thermablok/" rel="alternate" type="text/html"/>
    <title>Acoustiblok/Thermablok</title>
    <summary>Acoustiblok is an interesting product for blocking sound, it works by dissipating sound energy through friction within the sound barrier materiel [1]. They sell it in varieties that are designed for use within walls and for use as fences. As it isn’t solid it won’t reflect sound so it can be used to line the [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://www.acoustiblok.com/">Acoustiblok is an interesting product for blocking sound, it works by dissipating sound energy through friction within the sound barrier materiel [1]</a>. They sell it in varieties that are designed for use within walls and for use as fences. As it isn’t solid it won’t reflect sound so it can be used to line the walls to stop sound being reflected back at you. It’s design is based on NASA research.</p>
<p>The web site claims that a 3mm sheet of Acoustiblok gives a greater noise reduction than 12 inches (30.7cm) of poured concrete. I am a little dubious about that claim as I’ve read a report of someone using three layers of Acoustiblok to make a quiet room for recording music (and to be used as a play-room for an Autistic child). I find it difficult to imagine someone needing a meter of concrete to stop any sort of noise that they might encounter in a residential area so the fact that someone needed three layers of Acoustiblok is an indication that it might not be quite as good as they claim (although there is the possibility that Acoustiblok was badly installed). I wonder whether the claims about concrete concern particular frequencies. The <a href="http://www.acoustiblok.com/products.php">technical specifications and product comparisons page [2]</a> shows that Acoustiblok is least effective at 130Hz where it only reduces noise by 12dB and that it’s effectiveness increases to 38dB at 5KHz. So perhaps a concrete wall to stop low frequencies and Acoustiblok to stop high frequencies would be the best solution.</p>
<p><a href="http://acoustiblokau.com.au/">The Australian distributor for Acoustiblok is based in Brisbane [3]</a>.</p>
<p>The same company also sells <a href="http://www.thermablok.com/">Thermablok [4]</a> which is the first <a href="http://en.wikipedia.org/wiki/Aerogel">aerogel</a> based insulation that I’ve seen being advertised for commercial sale. I guess that it must be rather expensive as they are mostly advertising it for use as thin strips to cover stud faces (steel studs conduct heat well and can cause a lot of heat loss). A note in their FAQ says that it’s available in rolls for insulating entire walls or floors. The FAQ also indicates that they sell samples suitable for science classes. They are also apparently looking for retailers, it would be nice if someone wanted to sell this in Australia.</p>
<ul>
<li>[1]<a href="http://www.acoustiblok.com/"> http://www.acoustiblok.com/</a></li>
<li>[2]<a href="http://www.acoustiblok.com/products.php"> http://www.acoustiblok.com/products.php</a></li>
<li>[3]<a href="http://acoustiblokau.com.au/"> http://acoustiblokau.com.au/</a></li>
<li>[4]<a href="http://www.thermablok.com/"> http://www.thermablok.com/</a></li>
</ul>
<p>Related posts:</p><ol>
<li><a href="http://etbe.coker.com.au/2009/12/03/noise-canceling-headphones/" rel="bookmark" title="Noise Canceling Headphones">Noise Canceling Headphones</a> <small>My patience with the noise of airlines has run out,...</small></li>
<li><a href="http://etbe.coker.com.au/2009/12/04/testing-noise-canceling-headphones/" rel="bookmark" title="Testing Noise Canceling Headphones">Testing Noise Canceling Headphones</a> <small>This evening I tested some Noise Canceling Headphones (as described...</small></li>
<li><a href="http://etbe.coker.com.au/2009/12/20/bought-the-qc-15/" rel="bookmark" title="I Bought the Bose QC-15">I Bought the Bose QC-15</a> <small>I bought the Bose QC15 noise canceling headphones for my...</small></li>
</ol></div>
    </content>
    <updated>2012-05-03T05:44:23Z</updated>
    <category term="Review"/>
    <author>
      <name>etbe</name>
    </author>
    <source>
      <id>http://etbe.coker.com.au</id>
      <link href="http://etbe.coker.com.au/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://etbe.coker.com.au" rel="alternate" type="text/html"/>
      <subtitle>Linux, politics, and other interesting things</subtitle>
      <title>etbe - Russell Cokeretbe - Russell Coker</title>
      <updated>2012-05-13T09:01:13Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://etbe.coker.com.au/?p=3285</id>
    <link href="http://etbe.coker.com.au/2012/04/30/royal-caribbean-android/" rel="alternate" type="text/html"/>
    <title>The Royal Caribbean Official Android app</title>
    <summary>I’ve just played with the official Android app [1] for the Royal Carribean cruise line [2]. The cruise line is apparently great (I’ve never been on one of their ships but the reviews are good) but the Android app isn’t. Net Access The most obvious and significant problem with this app is that it’s entirely [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I’ve just played with <a href="https://play.google.com/store/apps/details?id=com.royalcaribbean.rccl">the official Android app [1]</a> for the <a href="http://www.royalcaribbean.com.au/">Royal Carribean cruise line [2]</a>. The cruise line is apparently great (I’ve never been on one of their ships but the reviews are good) but the Android app isn’t.</p>
<h3>Net Access</h3>
<p>The most obvious and significant problem with this app is that it’s entirely useless without net access. All data of note comes from the Internet which means that the program is useless in any location where Internet access is unavailable (or unreasonably expensive). They wrote an app about cruising that can’t be used on a cruise ship! Did they even think about what they were doing?</p>
<p>The correct thing to do when writing such an application is to have all basic data about all ships included in the app. This means that when they change the deck plan of a ship they need to release a new version of the app and have people download it. Having done a lot of software development I understand that forcing software updates (even updates to included data files) involves some effort and expense. But when they spend $20,000,000 to update a ship (which is about the minimum that is spent for a major ship in dry-dock according to TV documentaries I’ve watched) it seems quite reasonable to budget $10,000 to release new software. Also one benefit of updating the software is that it can promote the changes, after spending tens of millions of dollars improving a ship they probably want to promote that to customers and pushing a new app update with adverts for the improved ship seems like a good way of doing that.</p>
<p>There is some data that can’t reasonably be included in the app due to size constraints with photos of ships being the most notable example. The solution to this is to provide an option for the user to cache the data that interests them. For example if I was meeting some people to discuss the possibility of a group cruise on a RCL ship then I could download all the pictures of that ship on my home Wifi network and then have them all available with no delay or 3G costs.</p>
<p>Also the app seems to hang if net access is temporarily interrupted. As phones are expected to have unreliable net access this is also a significant flaw.</p>
<h3>Maps</h3>
<p>The maps of the ships are comprised of a series of pictures which each show one deck. In addition to being downloaded (not cached or included in the app) they aren’t scalable (they should be <a href="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics">SVG</a> or at least allow zooming the high resolution pictures) and they don’t allow a 3D view. The paper maps used to promote cruises (including RCI cruises) and which are given to all passengers on Princess cruises (I’m not sure about other lines) show a side cutaway view of the ship which is handy for working out which things are near where you are. It seems that an ideal cruise ship mapping program would have some sort of 3D component, maybe <a href="http://en.wikipedia.org/wiki/X3D">X3D</a>.</p>
<p>My experience is that a two night cruise isn’t long enough to become familiar with one of the smaller cruise ships. Using a map is essential and a smart phone is a good way of managing such a map as typical 2D paper maps just aren’t good enough for such a large and complex structure.</p>
<h3>Photos</h3>
<p>One of the significant things that is wrong with the app is a lack of care in displaying the photos of ships. They display three pictures of the <a href="http://en.wikipedia.org/wiki/Allure_of_the_Seas">Allure of the Seas</a> (one of the two newest, biggest, and most luxurious ships in their fleet), but one of those three photos is actually of the <a href="http://en.wikipedia.org/wiki/Oasis_of_the_Seas">Oasis of the Seas</a>. The fact that the two ships are almost identical is no excuse, there is a principle at stake! Also only having three pictures is pretty poor, there is no way that less than 50 pictures could do justice to such a big ship!</p>
<p>A Google search for the words <b>cruise</b> and <b>photos</b> turns up many sites with pictures of cruise ships and it’s not particularly difficult to find pictures of any particular ship. Photographs by customers are often of high quality as some of the better DSLR cameras are in the same price range as some of the cheaper tickets for cruise ships. Probably the best thing that RCI could do is to run a contest and allow their customers to enter photos and vote towards the winning entries. That would get them photos that aren’t as sterile as the official photos and which include the things that are of most interest to customers.</p>
<p>Finally in terms of caching, pictures are the most easily cached source of data and as phones get higher resolution they keep getting bigger. The storage space for a modern phone is equivalent to the entire 3G download quota for about a year on an affordable Australian 3G plan. When dealing with photos downloaded from the net the default should be to cache everything.</p>
<h3>Navigation</h3>
<p>Navigating a smart-phone app is a lot more difficult than navigating the same data on a desktop system (which would be in a web browser). Users can compensate for some deficiencies with web site organisation by using a large monitor and having several web browser windows with multiple tabs. But with a phone it should be possible to switch between things quickly.</p>
<p>The main menu has a “View Our Ships” option (which allows viewing deck plans and pictures) and a “View Our Staterooms” option which offers a list of ships and then describes the state rooms available for each one. This means that you can’t see all the information about a ship in one place and even worse you can’t easily compare ships. As it seems likely that people will want to use this app for selecting a cruise it should be possible to select a few ships that are of interest and then quickly flip between them. For example the Rhapsody of the Seas and the Voyager of the Seas are cruising in my part of the world so it would be nice if I could tell the app to compare those ships and then allow me to view a page about one ship and then flick to the equivalent page about the other ship.</p>
<p>Another notable problem is that the ships are listed in alphabetical order. The sensible thing to do is to list them by class going from biggest to smallest.</p>
<h3>Lessons to be Learned</h3>
<p>These problems aren’t specific to the RCI app, many other Android apps have the same flaws. For example the Google Play market app doesn’t cache the icons of the installed apps so every time I want to see a list of installed apps it goes slow and wastes some of my bandwidth. Doing something wrong in the same way as Google isn’t necessarily a great mistake, although using the Google Play market on a cruise ship is probably very uncommon.</p>
<p>Probably the biggest problem is a lack of testing. They should have sent the developers on a cruise as a live test. Every cruise ship has a sales desk for booking future cruises so it wouldn’t be difficult to have a dozen Android phones at the sales desk to see how real customers who really want to book a cruise find it. I presume that even if net access was available then such a test would fail dismally. If a 3D display of a ship combined with all the data management capabilities of a modern smart phone (which is a lot more powerful than the desktop systems I used prior to 2000) can’t at least be a useful supplement to a stack of paper brochures then it’s probably a failure.</p>
<p>I think that the RCI app is an example of how to make an Android app which doesn’t fall into the more common failings (such as being a quick and dirty port from iOS) but yet still isn’t useful to customers. I recommend that people who develop apps which have an objective of imparting information to users try it out as an example of what not to do. Try a few basic tasks like comparing the three biggest classes of RCI ships in terms of features, after failing to do that with the app you can then use Wikipedia to get the result. But don’t use the Wikipedia client apps, use a tabbed browser such as Opera Mini.</p>
<ul>
<li>[1]<a href="https://play.google.com/store/apps/details?id=com.royalcaribbean.rccl"> https://play.google.com/store/apps/details?id=com.royalcaribbean.rccl</a></li>
<li>[2]<a href="http://www.royalcaribbean.com.au/"> http://www.royalcaribbean.com.au/</a></li>
</ul>
<p>Related posts:</p><ol>
<li><a href="http://etbe.coker.com.au/2012/03/20/introduction-android/" rel="bookmark" title="An Introduction to Android">An Introduction to Android</a> <small>I gave a brief introductory talk about Android at this...</small></li>
<li><a href="http://etbe.coker.com.au/2010/10/08/choosing-an-android-phone/" rel="bookmark" title="Choosing an Android Phone">Choosing an Android Phone</a> <small>My phone contract ends in a few months, so I’m...</small></li>
<li><a href="http://etbe.coker.com.au/2011/11/21/galaxy-xperia-android-network/" rel="bookmark" title="Galaxy S vs Xperia X10 and Android Network Access">Galaxy S vs Xperia X10 and Android Network Access</a> <small>Galaxy S Review I’ve just been given an indefinite loan...</small></li>
</ol></div>
    </content>
    <updated>2012-04-30T05:40:12Z</updated>
    <category term="Review"/>
    <author>
      <name>etbe</name>
    </author>
    <source>
      <id>http://etbe.coker.com.au</id>
      <link href="http://etbe.coker.com.au/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://etbe.coker.com.au" rel="alternate" type="text/html"/>
      <subtitle>Linux, politics, and other interesting things</subtitle>
      <title>etbe - Russell Cokeretbe - Russell Coker</title>
      <updated>2012-05-13T09:01:13Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-6951891791466643809.post-4855628003322926032</id>
    <link href="http://pyarra.blogspot.com/feeds/4855628003322926032/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://pyarra.blogspot.com/2012/04/nagios-uptime-errors-for-windows-2003.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default/4855628003322926032" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default/4855628003322926032" rel="self" type="application/atom+xml"/>
    <link href="http://pyarra.blogspot.com/2012/04/nagios-uptime-errors-for-windows-2003.html" rel="alternate" type="text/html"/>
    <title>Nagios UPTIME errors for a Windows 2003 client</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">We have a Windows 2003 server - one of a farm of 5 similar machines - that suddenly started reporting errors in Nagios:<br/><br/><span style="font-family: &quot;Courier New&quot;,Courier,monospace;">nagios# /usr/local/libexec/nagios/check_nt -H mq-citrix-5 -v UPTIME </span><br/><span style="font-family: &quot;Courier New&quot;,Courier,monospace;">NSClient - ERROR: Could not get value</span><br/><br/>Looks like the issue was with the underlying Windows counters that nagios client uses to get this info - this was useful reading: <a href="http://nsclient.org/nscp/discussion/message/1066" target="_blank">http://nsclient.org/nscp/discussion/message/1066</a><br/><br/>So I did this to verify we had the same issue:<br/><br/><div style="font-family: &quot;Courier New&quot;,Courier,monospace;">cd "\Program Files\NSClient++ "</div><div style="font-family: &quot;Courier New&quot;,Courier,monospace;">nsclient++.exe /test </div><div style="font-family: &quot;Courier New&quot;,Courier,monospace;">(error output) </div><br/>To fix (on w2k3) we need to force a counter rebuild:<br/><br/><div style="font-family: &quot;Courier New&quot;,Courier,monospace;">cd \windows\system32 </div><div style="font-family: &quot;Courier New&quot;,Courier,monospace;">lodctr /R </div><div style="font-family: &quot;Courier New&quot;,Courier,monospace;"><br/></div>I had to re-start the NSClient++ service, then test again from nagios:<br/><br/><div style="font-family: &quot;Courier New&quot;,Courier,monospace;">nagios# /usr/local/libexec/nagios/check_nt -H mq-citrix-5 -v UPTIME </div><div style="font-family: &quot;Courier New&quot;,Courier,monospace;">System Uptime - 0 day(s) 9 hour(s) 7 minute(s) </div><br/>And we are happy again. In hindsight, I guess this server crashing 6 times in an hour must have corrupted the counters. Wait a couple of minutes, and this hits my inbox:<br/><br/>** RECOVERY alert - mq-citrix-5/UPTIME is OK **<br/><br/>Yay!<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/6951891791466643809-4855628003322926032?l=pyarra.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2012-04-20T02:57:02Z</updated>
    <published>2012-04-20T02:50:00Z</published>
    <author>
      <name>Philip Yarra</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/13703894792354956432</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-6951891791466643809</id>
      <category term="k3b"/>
      <category term="SNMP"/>
      <category term="openLDAP"/>
      <category term="awk"/>
      <category term="antivirus"/>
      <category term="rrdtool"/>
      <category term="JNDI"/>
      <category term="netstat"/>
      <category term="ldapsearch"/>
      <category term="uidNumber"/>
      <category term="Active Directory"/>
      <category term="perl-ldap"/>
      <category term="one-liner"/>
      <category term="posixAccount"/>
      <category term="trend"/>
      <category term="music"/>
      <category term="ORDERING"/>
      <category term="cacti"/>
      <category term="Nagios"/>
      <category term="you-mean-we-paid-for-this"/>
      <category term="Java"/>
      <category term="ReadyNAS"/>
      <category term="LDAP"/>
      <category term="see-it-was-obvious-after-all"/>
      <author>
        <name>Philip Yarra</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/13703894792354956432</uri>
      </author>
      <link href="http://pyarra.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://pyarra.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>I do computer stuff. When I solve a problem and it's not obvious, I document it here - it's a reference for myself, and hopefully, it can save other people out there days of problem solving, googling and assorted hair-tearing.</subtitle>
      <title>Sysadmin ramblings</title>
      <updated>2012-05-11T10:10:59Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-6951891791466643809.post-9160333648885007325</id>
    <link href="http://pyarra.blogspot.com/feeds/9160333648885007325/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://pyarra.blogspot.com/2012/04/courier-imap-migrating-all-users-email.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default/9160333648885007325" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default/9160333648885007325" rel="self" type="application/atom+xml"/>
    <link href="http://pyarra.blogspot.com/2012/04/courier-imap-migrating-all-users-email.html" rel="alternate" type="text/html"/>
    <title>Courier IMAP - migrating all users' email</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">So we have a project underway to move all our users off our old postfix+courier+squirrelmail system to Microsoft Exchange 2010. Now, you might think this would be easy, but you would be wrong.<br/><br/>Some bits are okay - getting a list of all users and their job titles, photos etc. from LDAP is easy - ldapsearch is a pretty powerful tool. But the bit that I assumed would be easiest of all - importing all their existing mail into Exchange - has proved a little more difficult.<br/><br/>Exchange seems not to have any native tools to import Maildir (which is of course what we use) so I planned to use <a href="http://imapsync.lamiral.info/">imapsync</a>. Good theory, and some useful blog posts <a href="http://www.georglutz.de/blog/2009/10/04/migrating-from-courier-imap-to-exchange-2007-using-imapsync/">here </a>and <a href="http://www.georglutz.de/blog/2009/10/04/superuser-administrators-group-in-courier-imap/">here </a>point the way to setting up one user account as an administrator who can connect to any mailbox. But after several hours of flailing around, I failed. Here's what I tried:<br/><br/>In <b>/etc/courier/authldaprc</b>, set <b>LDAP_AUXOPTIONS sharedgroup=group</b><br/><br/>In LDAP, use the (previously unused) sharedgroup attribute:<br/><div style="font-family: &quot;Courier New&quot;,Courier,monospace;"># ldapsearch -h ldap -x -b 'ou=People,dc=example,dc=com,dc=au' '(uid=migrate1)' sharedgroup -LLL<br/>dn: uid=migrate1,ou=People,dc=example,dc=com,dc=au<br/>sharedgroup: administrators</div><br/>Then test:<br/><div style="font-family: &quot;Courier New&quot;,Courier,monospace;"># courieruserinfo migrate1<br/>uid=10381<br/>gid=100<br/>home=/home/migrate1<br/>authaddr=migrate1<br/>authfullname=Email Migration User<br/>maildir=<br/>quota=<br/>options=</div><br/>Hmmm... options isn't set. OK, try the same with userdb:<br/><div style="font-family: &quot;Courier New&quot;,Courier,monospace;"># userdb migrate1 set options=group=administrators<br/># userdb -show migrate1<br/>options=group=administrators<br/>root@zappa:~# courieruserinfo migrate1<br/>uid=10381<br/>gid=100<br/>home=/home/migrate1<br/>authaddr=migrate1<br/>authfullname=Email Migration User<br/>maildir=<br/>quota=<br/>options=</div><br/>Still not set! Why not? Ahhhh, bugger, we're using PAM auth (in <b>/etc/courier/authdaemonrc</b>, I've set <b>authmodulelist="authpam"</b>)<br/><br/>and if you read the <a href="http://www.courier-mta.org/authlib/README_authlib.html#options">documentation </a>carefully enough:<br/><i>"The authentication library has a facility for keep arbitrary “name=value”-type settings, called “options”, for individual accounts. This feature is only available with userdb, LDAP, MySQL, and PostgresSQL modules. Individual account options are not supported with system-based authentication modules (password/shadow files, or PAM)."</i><br/><br/>Well that explains why it doesn't work... now how do we fix that? I can see a few options, which I guess I'll be trying out in the next few weeks. More to come.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/6951891791466643809-9160333648885007325?l=pyarra.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2012-04-20T01:35:13Z</updated>
    <published>2012-04-20T01:35:00Z</published>
    <author>
      <name>Philip Yarra</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/13703894792354956432</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-6951891791466643809</id>
      <category term="k3b"/>
      <category term="SNMP"/>
      <category term="openLDAP"/>
      <category term="awk"/>
      <category term="antivirus"/>
      <category term="rrdtool"/>
      <category term="JNDI"/>
      <category term="netstat"/>
      <category term="ldapsearch"/>
      <category term="uidNumber"/>
      <category term="Active Directory"/>
      <category term="perl-ldap"/>
      <category term="one-liner"/>
      <category term="posixAccount"/>
      <category term="trend"/>
      <category term="music"/>
      <category term="ORDERING"/>
      <category term="cacti"/>
      <category term="Nagios"/>
      <category term="you-mean-we-paid-for-this"/>
      <category term="Java"/>
      <category term="ReadyNAS"/>
      <category term="LDAP"/>
      <category term="see-it-was-obvious-after-all"/>
      <author>
        <name>Philip Yarra</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/13703894792354956432</uri>
      </author>
      <link href="http://pyarra.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://pyarra.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>I do computer stuff. When I solve a problem and it's not obvious, I document it here - it's a reference for myself, and hopefully, it can save other people out there days of problem solving, googling and assorted hair-tearing.</subtitle>
      <title>Sysadmin ramblings</title>
      <updated>2012-05-11T10:10:59Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:openfusion.net,2012:/linux/low_tech_pubsub_pattern</id>
    <link href="http://www.openfusion.net/linux/low_tech_pubsub_pattern" rel="alternate" type="text/html"/>
    <title>A Low Tech Pub-Sub Pattern</title>
    <content type="xhtml" xml:lang="en-au"><div xmlns="http://www.w3.org/1999/xhtml"><p>I've been enjoying playing around with <a href="http://www.zeromq.org/">ZeroMQ</a>
lately, and exploring some of the ways it changes the way you approach
system architecture.</p>

<p>One of the revelations for me has been how powerful the pub-sub (Publish-
Subscribe) pattern is. An architecture that makes it straightforward for
multiple consumers to process a given piece of data promotes lots of
small simple consumers, each performing a single task, instead of a
complex monolithic processor.</p>

<p>This is both simpler and more complex, since you end up with more
pieces, but each piece is radically simpler. It's also more flexible and
more scalable, since you can move components around individually, and it
allows greater language and library flexibility, since you can write
individual components in completely different languages.</p>

<p>What's also interesting is that the benefits of this pattern don't
necessarily require an advanced toolkit like ZeroMQ, particularly for
low-volume applications. Here's a sketch of a low-tech pub-sub pattern
that uses files as the pub-sub inflection point, and
<a href="http://inotify.aiken.cz/">incron</a>, the 'inotify cron' daemon, as our
dispatcher.</p>

<p>Recipe:</p>

<ol>
<li><p>Install <code>incron</code>, the inotify cron daemon, to monitor our data directory
for changes. On RHEL/CentOS this is available from the rpmforge or EPEL
repositories: <code>yum install incron</code>.</p></li>
<li><p>Capture data to files in our data directory in some useful format
e.g. json, yaml, text, whatever.</p></li>
<li><p>Setup an <code>incrontab</code> entry for each consumer monitoring CREATE operations
on our data directory e.g.</p>

<pre><code>/data/directory IN_CREATE /path/to/consumer1 $@/$#
/data/directory IN_CREATE /path/to/consumer2 $@/$#
/data/directory IN_CREATE /path/to/consumer3 $@/$#
</code></pre>

<p>The <code>$@/$#</code> magic passes the full file path to your consumer - see <code>man 5
incrontab</code> for details and further options.</p></li>
</ol>

<p>Done. Working pub-sub with minimal moving parts.</p></div>
    </content>
    <updated>2012-04-16T03:23:00Z</updated>
    <published>2012-03-13T00:27:00Z</published>
    <category term="/linux"/>
    <author>
      <name>Gavin Carr</name>
      <uri>http://www.openfusion.net</uri>
    </author>
    <source>
      <id>tag:openfusion.net,2007:/</id>
      <link href="http://www.openfusion.net/atom" rel="self" type="application/atom+xml"/>
      <link href="http://www.openfusion.net" rel="alternate" type="text/html"/>
      <subtitle>World disintermediation, one hack at a time</subtitle>
      <title>Gavin Carr's Hackery</title>
      <updated>2012-05-08T02:35:00Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-23643369.post-4984031306105404418</id>
    <link href="http://blog.tim.kent.id.au/feeds/4984031306105404418/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=23643369&amp;postID=4984031306105404418&amp;isPopup=true" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/23643369/posts/default/4984031306105404418" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/23643369/posts/default/4984031306105404418" rel="self" type="application/atom+xml"/>
    <link href="http://blog.tim.kent.id.au/2012/04/potential-backup-solution-for-small.html" rel="alternate" type="text/html"/>
    <title>A potential backup solution for small sites running VMware ESXi</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><span style="">Today, external consumer USB3 and/or eSATA drives can be a great low cost alternative to tape.  For most small outfits, they fulfil the speed and capacity requirements for nightly backups.  I use the same rotation scheme with these drives as I did tape with great success.<br/><br/>Unfortunately these drives can't easily be utilised by those running virtualised servers on top of ESXi.  VMware offers SCSI pass-through as a supported option, however the tape drives and media are quite expensive by comparison.<br/><br/>VMware offered a glimpse of hope with their USB pass-through introduced in ESXi 4.1, but it proved to have extremely poor throughput (~7MB/sec) so can realistically only shift a couple of hundred GB at most per night.<br/><br/>I have trialled some USB over IP devices; the best of these can lift the throughput from ~7MB/sec to ~25MB/sec, but the drivers can be problematic and are often only available for Windows platforms.<br/><br/>This got me thinking about presenting a USB3 controller via ESXi's <a href="http://communities.vmware.com/docs/DOC-11089">VMDirectPath I/O feature</a>.<br/><br/>VMDirectPath I/O requires a CPU and motherboard capable of Intel Virtualization Technology for Directed I/O (VT-d) or AMD IP Virtualization Technology (IOMMU).  It also requires that your target VM is at a hardware level of 7 or greater.  A full list of requirements can be found at <a href="http://kb.vmware.com/kb/1010789">http://kb.vmware.com/kb/1010789</a>.<br/><br/>I tested pass-through on a card with the NEC/Renesas uPD720200A chipset (Lindy part # 51122) running firmware 4015.  The test VM runs Windows Server 2003R2 with the Renesas 2.1.28.1 driver.  I had to configure the VM with pciPassthru0.msiEnabled = "FALSE" as per <a href="http://www.vmware.com/pdf/vsp_4_vmdirectpath_host.pdf">http://www.vmware.com/pdf/vsp_4_vmdirectpath_host.pdf</a> or the device would show up with a yellow bang in Device Manager and would not function.<br/><br/>The final result - over 80MB/sec throughput (both read and write) from a Seagate 2.5" USB3 drive!</span><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/23643369-4984031306105404418?l=blog.tim.kent.id.au" width="1"/></div></div>
    </content>
    <updated>2012-04-13T06:39:14Z</updated>
    <published>2012-04-13T06:25:00Z</published>
    <author>
      <name>Tim Kent</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/02261183846996156463</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-23643369</id>
      <author>
        <name>Tim Kent</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/02261183846996156463</uri>
      </author>
      <link href="http://blog.tim.kent.id.au/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/23643369/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://blog.tim.kent.id.au/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Tim Kent</title>
      <updated>2012-04-16T03:48:07Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-6951891791466643809.post-8503989661963939344</id>
    <link href="http://pyarra.blogspot.com/feeds/8503989661963939344/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://pyarra.blogspot.com/2012/03/disable-offline-files-on-windows-xp.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default/8503989661963939344" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default/8503989661963939344" rel="self" type="application/atom+xml"/>
    <link href="http://pyarra.blogspot.com/2012/03/disable-offline-files-on-windows-xp.html" rel="alternate" type="text/html"/>
    <title>Disable offline files on Windows XP</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">For some reason, the GUI way of disabling offline files was greyed out, regardless of me logging in as local admin or a domainadmin. Maybe because it was set up with the computer in a previous domain? Don't know, don't care. A regedit fixes it all: edit <strong>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRxSmb\Parameters\CSCEnabled</strong> and set it to <strong>0x0</strong>. Reboot. Sorted. <br/><br/>Kudos to <a href="http://offlinefiles.blogspot.com.au/2010/10/disable-offline-files-registry-key.html">http://offlinefiles.blogspot.com.au/2010/10/disable-offline-files-registry-key.html</a> for this info.<br/><br/><br/><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/6951891791466643809-8503989661963939344?l=pyarra.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2012-03-25T01:27:28Z</updated>
    <published>2012-03-25T01:27:00Z</published>
    <author>
      <name>Philip Yarra</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/13703894792354956432</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-6951891791466643809</id>
      <category term="k3b"/>
      <category term="SNMP"/>
      <category term="openLDAP"/>
      <category term="awk"/>
      <category term="antivirus"/>
      <category term="rrdtool"/>
      <category term="JNDI"/>
      <category term="netstat"/>
      <category term="ldapsearch"/>
      <category term="uidNumber"/>
      <category term="Active Directory"/>
      <category term="perl-ldap"/>
      <category term="one-liner"/>
      <category term="posixAccount"/>
      <category term="trend"/>
      <category term="music"/>
      <category term="ORDERING"/>
      <category term="cacti"/>
      <category term="Nagios"/>
      <category term="you-mean-we-paid-for-this"/>
      <category term="Java"/>
      <category term="ReadyNAS"/>
      <category term="LDAP"/>
      <category term="see-it-was-obvious-after-all"/>
      <author>
        <name>Philip Yarra</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/13703894792354956432</uri>
      </author>
      <link href="http://pyarra.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://pyarra.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>I do computer stuff. When I solve a problem and it's not obvious, I document it here - it's a reference for myself, and hopefully, it can save other people out there days of problem solving, googling and assorted hair-tearing.</subtitle>
      <title>Sysadmin ramblings</title>
      <updated>2012-05-11T10:10:59Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-6951891791466643809.post-6477432092000599858</id>
    <link href="http://pyarra.blogspot.com/feeds/6477432092000599858/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://pyarra.blogspot.com/2012/03/secure-hard-drive-destruction-or-fun.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default/6477432092000599858" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default/6477432092000599858" rel="self" type="application/atom+xml"/>
    <link href="http://pyarra.blogspot.com/2012/03/secure-hard-drive-destruction-or-fun.html" rel="alternate" type="text/html"/>
    <title>Secure hard drive destruction (or: Fun With Power Tools)</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Usually when I dispose of a hard drive, I wipe it using <a href="http://www.dban.org/">DBAN - Darik's Boot And Nuke</a> - secure enough for our purposes. But what about when the hard drive electronics or motor are damaged so that the disk can't be wiped?<br/><br/>Well then it's time for physical destruction:<br/><br/><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-wC43M24uDKw/T2GJ_Pzx6PI/AAAAAAAABpY/b2OyG92ayN8/s1600/secure_hdd_destruction.JPG" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="http://1.bp.blogspot.com/-wC43M24uDKw/T2GJ_Pzx6PI/AAAAAAAABpY/b2OyG92ayN8/s640/secure_hdd_destruction.JPG" width="480"/></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Physical destruction of Maxtor hard drives using a drill press</td></tr></tbody></table><br/>Very satisfying!<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/6951891791466643809-6477432092000599858?l=pyarra.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2012-03-15T06:20:53Z</updated>
    <published>2012-03-15T06:20:00Z</published>
    <author>
      <name>Philip Yarra</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/13703894792354956432</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-6951891791466643809</id>
      <category term="k3b"/>
      <category term="SNMP"/>
      <category term="openLDAP"/>
      <category term="awk"/>
      <category term="antivirus"/>
      <category term="rrdtool"/>
      <category term="JNDI"/>
      <category term="netstat"/>
      <category term="ldapsearch"/>
      <category term="uidNumber"/>
      <category term="Active Directory"/>
      <category term="perl-ldap"/>
      <category term="one-liner"/>
      <category term="posixAccount"/>
      <category term="trend"/>
      <category term="music"/>
      <category term="ORDERING"/>
      <category term="cacti"/>
      <category term="Nagios"/>
      <category term="you-mean-we-paid-for-this"/>
      <category term="Java"/>
      <category term="ReadyNAS"/>
      <category term="LDAP"/>
      <category term="see-it-was-obvious-after-all"/>
      <author>
        <name>Philip Yarra</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/13703894792354956432</uri>
      </author>
      <link href="http://pyarra.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://pyarra.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>I do computer stuff. When I solve a problem and it's not obvious, I document it here - it's a reference for myself, and hopefully, it can save other people out there days of problem solving, googling and assorted hair-tearing.</subtitle>
      <title>Sysadmin ramblings</title>
      <updated>2012-05-11T10:10:59Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-6951891791466643809.post-697272259954464145</id>
    <link href="http://pyarra.blogspot.com/feeds/697272259954464145/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://pyarra.blogspot.com/2012/03/mysterious-case-of-hp-procurve-poe.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default/697272259954464145" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default/697272259954464145" rel="self" type="application/atom+xml"/>
    <link href="http://pyarra.blogspot.com/2012/03/mysterious-case-of-hp-procurve-poe.html" rel="alternate" type="text/html"/>
    <title>The Mysterious Case of the HP ProCurve PoE switch(es)</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Lots of our sites use oldish Dell switches. They're nothing fancy, but they're pretty cheap, and they've stood the test of time - many of them are more than 5 years old, and never miss a beat. They just work.<br/><br/>One of our newer sites has a pair of fancy-pants HP ProCurve 2910al-48G-PoE switches (48 port, gigabit, power over ethernet). These switches were sufficiently expensive that we started joking that they must have gold-plated connectors and platinum cases. Still, we figured, you get what you pay for - spendy switches == extra good, right? Sadly not.<br/><br/>The first unpleasant surprise was when they arrived - both had chassis that were noticeably bent - as if someone had taken the "curve" part of ProCurve too literally. One was dead on arrival - wouldn't even power on. We kept the working-but-bent one, as we needed it ASAP. HP shipped the replacement for the DOA one, and life went on... <br/><br/>A year later another one died - quite spectacularly - the PoE power supply died, so while the switch kept on working, there was no power over ethernet, and any phones connected to it stopped working. I took out the power cord to power cycle the unit, and when I restored power, there was an unpleasant crackling noise, and acrid smoke issued from the unit. You've never seen two sysadmins move so quickly!<br/><br/>Again HP shipped a replacement, which died within a month, again with a fault in the PoE power supply. HP support asked us to run "show tech all" but we found this from "show log" most useful:<br/><br/>W 01/25/90 22:59:43 00576 chassis: 50V Power Supply 1 is Faulted.  Failures: 2 <br/>W 01/25/90 22:59:44 00071 chassis: Power Supply failure:  Supply: 1,  Failures: 1 <br/>W 01/25/90 22:59:45 00578 chassis: Co-processor Unrecoverable fault on  PoE controller 1<br/><br/>Yep, another dead PoE power supply.  That was in 2010. Replacement shipped, life went on...<br/><br/>You guessed it... yesterday, I got a call to say that some of the phones at that site had stopped working. It wasn't too hard to guess the cause! The web UI showed no faults, but the port status display showed 5 ports were delivering PoE but had no ethernet link. Definitely not what I expect to see - once the phones are getting power, they boot and establish an ethernet link. So a 55 km drive to the site, and what do you know, another dead PoE power supply:<br/><br/><div class="separator" style="clear: both; text-align: center;"/><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-NjTLVKLmx2M/T2ES2UWX35I/AAAAAAAABpQ/dwOqOtMi6z4/s1600/IMG_1891.JPG" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://4.bp.blogspot.com/-NjTLVKLmx2M/T2ES2UWX35I/AAAAAAAABpQ/dwOqOtMi6z4/s320/IMG_1891.JPG" width="240"/></a></td></tr><tr><td class="tr-caption" style="text-align: center;">PoE fault lights on an HP ProCurve switch - a most unpleasant sight!</td><td class="tr-caption" style="text-align: center;"><br/></td></tr></tbody></table>Just to be thorough, I also hooked up the <a href="http://www.flukenetworks.com/enterprise-network/network-testing/LinkRunner-Pro-Duo-Network-Multimeter">LinkRunner</a> to confirm what commonsense was already telling me - yep, no power being delivered. Sigh. Before calling HP I checked the <a href="http://h10025.www1.hp.com/ewfrf/wc/weInput?cc=au&amp;dlc=en&amp;lc=en">warranty status</a> and it told me the warranty expires in 2108 - 96 years from now! I assumed this was an error, but when I called HP to order the replacement, I was told that it is correct - these switches are covered for life (I doubt I have another 96 years on this mortal coil, so probably somewhat beyond my life-span). So that's nice, I guess, given how unreliable they are.<br/><br/>Anyway, the nice lady at HP is shipping out another one, so I guess I'll go to the site again, and replace it yet again. I wonder how long this one will last.<br/><br/>In summary: nice features, expensive switches, totally unreliable.<br/><br/>I'm contemplating buying or making some sort of PoE monitoring device that we could monitor from Nagios, so we know when it fails.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/6951891791466643809-697272259954464145?l=pyarra.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2012-03-15T05:51:30Z</updated>
    <published>2012-03-14T22:02:00Z</published>
    <author>
      <name>Philip Yarra</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/13703894792354956432</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-6951891791466643809</id>
      <category term="k3b"/>
      <category term="SNMP"/>
      <category term="openLDAP"/>
      <category term="awk"/>
      <category term="antivirus"/>
      <category term="rrdtool"/>
      <category term="JNDI"/>
      <category term="netstat"/>
      <category term="ldapsearch"/>
      <category term="uidNumber"/>
      <category term="Active Directory"/>
      <category term="perl-ldap"/>
      <category term="one-liner"/>
      <category term="posixAccount"/>
      <category term="trend"/>
      <category term="music"/>
      <category term="ORDERING"/>
      <category term="cacti"/>
      <category term="Nagios"/>
      <category term="you-mean-we-paid-for-this"/>
      <category term="Java"/>
      <category term="ReadyNAS"/>
      <category term="LDAP"/>
      <category term="see-it-was-obvious-after-all"/>
      <author>
        <name>Philip Yarra</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/13703894792354956432</uri>
      </author>
      <link href="http://pyarra.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://pyarra.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/6951891791466643809/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>I do computer stuff. When I solve a problem and it's not obvious, I document it here - it's a reference for myself, and hopefully, it can save other people out there days of problem solving, googling and assorted hair-tearing.</subtitle>
      <title>Sysadmin ramblings</title>
      <updated>2012-05-11T10:10:59Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.neuromesh.net/?p=1766</id>
    <link href="http://www.neuromesh.net/pics/" rel="alternate" type="text/html"/>
    <title>Pics!</title>
    <summary>Did a Photoshop Digital Imaging unit for Uni over summer, that may or may not be responsible for the radio silence here at Neuromesh.  Anyway, here’s the final assignment! As always, click for bigness The freedom available in photomontage, especially in Dada, led me to think about the conflict between our free childlike nature and [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Did a Photoshop Digital Imaging unit for Uni over summer, that may or may not be responsible for the radio silence here at Neuromesh.  Anyway, here’s the final assignment!  As always, click for bigness</p>
<blockquote><p>The freedom available in photomontage, especially in Dada, led me to think about the conflict between our free childlike nature and the necessities of adulthood, and the exhausted banality that can result.  Responsibilities to family and community draw us away from our dreaming and adventurous selves.</p>
<p>For some the rejection of maturity and deferred adulthood are the answer, living at home until their 30ʼs, and for others the inner child is locked away forever and they embrace the grown up world eagerly.  But for the many, we are pulled both by the desire to do right by those who need us, and the need to let go and run free.  This creates a constant friction in life, trying to give sufficient time and space to both sides of our fractured identity, and in the world it is the adult who usually wins.</p>
<p>The person who does the ʻright thingʼ, waiting until all the jobs are done before going out to play, will grow old and die before they get to run in the sunshine. The core of what I want to achieve then, is letting the child run and play in the adult world.</p></blockquote>

<a href="http://www.neuromesh.net/pics/traffic/" title="traffic"><img alt="traffic" class="attachment-thumbnail" height="150" src="http://www.neuromesh.net/wp-content/uploads/traffic-150x150.jpg" title="traffic" width="150"/></a>
<a href="http://www.neuromesh.net/pics/shop/" title="shop"><img alt="shop" class="attachment-thumbnail" height="150" src="http://www.neuromesh.net/wp-content/uploads/shop-150x150.jpg" title="shop" width="150"/></a>
<a href="http://www.neuromesh.net/pics/pedestrianstreet/" title="pedestrianstreet"><img alt="pedestrianstreet" class="attachment-thumbnail" height="150" src="http://www.neuromesh.net/wp-content/uploads/pedestrianstreet-150x150.jpg" title="pedestrianstreet" width="150"/></a>
<a href="http://www.neuromesh.net/pics/office/" title="office"><img alt="office" class="attachment-thumbnail" height="150" src="http://www.neuromesh.net/wp-content/uploads/office-150x150.jpg" title="office" width="150"/></a></div>
    </content>
    <updated>2012-03-07T12:22:07Z</updated>
    <category term="Etc..."/>
    <category term="adulthood"/>
    <category term="dada"/>
    <category term="Fun"/>
    <category term="life"/>
    <author>
      <name>Jase</name>
    </author>
    <source>
      <id>http://www.neuromesh.net</id>
      <link href="http://www.neuromesh.net/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.neuromesh.net" rel="alternate" type="text/html"/>
      <subtitle>Bitten by an eclectic eel...</subtitle>
      <title>Neuromesh</title>
      <updated>2012-03-07T14:01:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.mibus.org/?p=1478</id>
    <link href="http://www.mibus.org/2012/02/24/godaddy-mixed-case-dns-wtfery/" rel="alternate" type="text/html"/>
    <title>GoDaddy – mixed-case DNS WTFery.</title>
    <summary>A friend passed me a bounce of mail to my domain; DNS-related it said. Dutifully, I checked the record: $ dig @ns43.domaincontrol.com mibus.org mx ; DiG 9.7.3 @ns43.domaincontrol.com mibus.org mx ; (2 servers found) ;; global options: +cmd ;; Got answer: ;; -&gt;&gt;HEADER</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>A friend passed me a bounce of mail to my domain; DNS-related it said.</p>
<p>Dutifully, I checked the record:</p>
<p><code>$ dig @ns43.domaincontrol.com mibus.org mx</code></p>
<p>; &lt;</p><p>&gt; DiG 9.7.3 &lt;</p><p>&gt; @ns43.domaincontrol.com mibus.org mx<br/>
; (2 servers found)<br/>
;; global options: +cmd<br/>
;; Got answer:<br/>
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 541<br/>
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 0<br/>
;; WARNING: recursion requested but not available</p>
<p>;; QUESTION SECTION:<br/>
;MibUs.OrG.			IN	MX</p>
<p>;; ANSWER SECTION:<br/>
MibUs.OrG.		3600	IN	MX	10 aspmx.l.google.com.<br/>
MibUs.OrG.		3600	IN	MX	20 alt2.aspmx.l.google.com.<br/>
MibUs.OrG.		3600	IN	MX	20 alt1.aspmx.l.google.com.</p>
<p>;; AUTHORITY SECTION:<br/>
MibUs.OrG.		3600	IN	NS	ns43.domaincontrol.com.<br/>
MibUs.OrG.		3600	IN	NS	ns44.domaincontrol.com.</p>
<p>;; Query time: 89 msec<br/>
;; SERVER: 216.69.185.22#53(216.69.185.22)<br/>
;; WHEN: Fri Feb 24 08:42:50 2012<br/>
;; MSG SIZE  rcvd: 155<br/>
</p>
<p>Yep, there it is.</p>
<p>(...and yes, I'm with GoDaddy. I'm horribly likely to shift at my next renewal - if not before. But anyway).</p>
<p>Wait. "MibUs.OrG."?</p>
<p>It's repeatable, on that _one_ NS, from both the US and here in Australia. The other NS, is fine. Non-MX queries... are also fine. Mixed-case queries for the MX, all come back in that one same (different) case.</p>
<p>What. The. Hell.</p>
<p>I made a change to my zone data with their pretty web-based console. Re-ran the query... and it was fine. Except, all the mixed-case queries all came back lowercase.</p>
<p>Hmm. I wonder.</p>
<p>I made another change.</p>
<p><code>$ dig @ns43.domaincontrol.com Mibus.Org mx</code></p>
<p>; &lt;</p><p>&gt; DiG 9.7.3 &lt;</p><p>&gt; @ns43.domaincontrol.com Mibus.Org mx<br/>
; (2 servers found)<br/>
;; global options: +cmd<br/>
;; Got answer:<br/>
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 57417<br/>
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 0<br/>
;; WARNING: recursion requested but not available</p>
<p>;; QUESTION SECTION:<br/>
;Mibus.Org.			IN	MX</p>
<p>;; ANSWER SECTION:<br/>
Mibus.Org.		3600	IN	MX	10 aspmx.l.google.com.<br/>
Mibus.Org.		3600	IN	MX	20 alt2.aspmx.l.google.com.<br/>
Mibus.Org.		3600	IN	MX	20 alt1.aspmx.l.google.com.</p>
<p>;; AUTHORITY SECTION:<br/>
Mibus.Org.		3600	IN	NS	ns43.domaincontrol.com.<br/>
Mibus.Org.		3600	IN	NS	ns44.domaincontrol.com.</p>
<p>;; Query time: 86 msec<br/>
;; SERVER: 216.69.185.22#53(216.69.185.22)<br/>
;; WHEN: Fri Feb 24 08:47:52 2012<br/>
;; MSG SIZE  rcvd: 155<br/>
</p>
<p>...and now, all DNS queries come back with this "proper case" version.</p>
<p>It's my humble opinion as a DNS administrator elsewhere, that they're running some sort of fancy reverse-caching DNS server in front of their "real" DNS servers; one that fakes the "AA" flag on responses, doesn't drop the TTL, and is cleared by their software on updates.</p>
<p>Oh, and one that preserves the case of the first query it sees in its cache, and keeps it around.</p>
<p>Why is this important? Well, for starters it's <i>just stupid</i>. For seconds, people are starting to use bit 0x20 (ie., the "shift" bit) for <a href="http://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00">adding extra entropy in to DNS queries</a>. GoDaddy's DNS servers go well beyond breaking it and in to the territory of royally messing it up.</p></div>
    </content>
    <updated>2012-02-23T22:24:34Z</updated>
    <category term="Uncategorized"/>
    <category term="dns"/>
    <category term="sysadmin"/>
    <author>
      <name>mibus</name>
    </author>
    <source>
      <id>http://www.mibus.org</id>
      <link href="http://www.mibus.org/tag/sysadmin/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.mibus.org" rel="alternate" type="text/html"/>
      <subtitle>geek refuge</subtitle>
      <title>mibus.org » sysadmin</title>
      <updated>2012-05-16T14:01:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.mibus.org/?p=1473</id>
    <link href="http://www.mibus.org/2012/02/22/desktop-scram/" rel="alternate" type="text/html"/>
    <title>Desktop SCRAM</title>
    <summary>So the problem goes like this: A coworker asks if I want to join them for a coffee. (This happens multiple times per day, FWIW). I say "Yes!" and jump up... ...then sit back down to lock my computer screen, and hop back up... ...only to realise I've left my music playing - so I [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>So the problem goes like this:</p>
<p>
</p><ul>
<li>A coworker asks if I want to join them for a coffee. (This happens multiple times per day, FWIW). I say "Yes!" and jump up...</li>
<li>...then sit back down to lock my computer screen, and hop back up...</li>
<li>...only to realise I've left my music playing - so I sit down, unlock my screen, pause my music, and re-lock my screen...</li>
<li>...at which point, my coworkers have already long since disappeared.</li>
</ul>
<p><a href="http://www.mibus.org/wp-uploads/2012/02/button.jpg"><img align="center" height="225" src="http://www.mibus.org/wp-uploads/2012/02/button-300x225.jpg" width="300"/></a></p>
<p>My solution? A Desktop SCRAM button, where I can just go <i>whack</i> and walk away with impunity.</p>
<p>It's made up of a USB-serial cable, and a ~$10 button. The button's two contacts are wired to the DSR and Ground lines respectively.</p>
<p>The code is available (GPLv3) at: <a href="http://github.com/mibus/DesktopScram/">http://github.com/mibus/DesktopScram/</a></p>
<p><a href="http://www.mibus.org/wp-uploads/2012/02/button-action-shot.jpg"><img align="center" height="300" src="http://www.mibus.org/wp-uploads/2012/02/button-action-shot-225x300.jpg" width="225"/></a></p></div>
    </content>
    <updated>2012-02-22T05:49:05Z</updated>
    <category term="Uncategorized"/>
    <category term="electronics"/>
    <category term="sysadmin"/>
    <author>
      <name>mibus</name>
    </author>
    <source>
      <id>http://www.mibus.org</id>
      <link href="http://www.mibus.org/tag/sysadmin/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.mibus.org" rel="alternate" type="text/html"/>
      <subtitle>geek refuge</subtitle>
      <title>mibus.org » sysadmin</title>
      <updated>2012-05-16T14:01:16Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7619825339500996624.post-7670985643611936542</id>
    <link href="http://open-audit.blogspot.com/feeds/7670985643611936542/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://open-audit.blogspot.com/2012/01/einstein-quote.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default/7670985643611936542" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default/7670985643611936542" rel="self" type="application/atom+xml"/>
    <link href="http://open-audit.blogspot.com/2012/01/einstein-quote.html" rel="alternate" type="text/html"/>
    <title>Einstein quote</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;">“Any fool can make things bigger, more complex, and more violent. It takes a touch of genius-and a lot of courage-to move in the opposite direction.”</span><br style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;"/><span style="background-color: white; font-family: arial, sans-serif; font-size: 13px; line-height: 18px;">Albert Einstein.</span><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/7619825339500996624-7670985643611936542?l=open-audit.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2012-01-28T22:05:38Z</updated>
    <published>2012-01-28T22:05:00Z</published>
    <author>
      <name>Mark Unwin</name>
      <email>noreply@blogger.com</email>
      <uri>https://profiles.google.com/112127280862367349650</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7619825339500996624</id>
      <category term="Ubuntu"/>
      <category term="CodeIgniter"/>
      <category term="jQuery"/>
      <category term="FirePHP"/>
      <category term="Open-AudIT"/>
      <category term="OAv2"/>
      <category term="Open Source"/>
      <category term="CMDB"/>
      <author>
        <name>Mark Unwin</name>
        <email>noreply@blogger.com</email>
        <uri>https://profiles.google.com/112127280862367349650</uri>
      </author>
      <link href="http://open-audit.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://open-audit.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>Adventure's of a code writing SysAdmin</title>
      <updated>2012-05-16T06:04:50Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7619825339500996624.post-3894114674724759349</id>
    <link href="http://open-audit.blogspot.com/feeds/3894114674724759349/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://open-audit.blogspot.com/2012/01/its-australia-day.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default/3894114674724759349" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default/3894114674724759349" rel="self" type="application/atom+xml"/>
    <link href="http://open-audit.blogspot.com/2012/01/its-australia-day.html" rel="alternate" type="text/html"/>
    <title>It's Australia Day!</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">w00t!!!<br/>Best country in the world (OK, so I'm slightly biased).<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/7619825339500996624-3894114674724759349?l=open-audit.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2012-01-25T22:43:54Z</updated>
    <published>2012-01-25T22:43:00Z</published>
    <author>
      <name>Mark Unwin</name>
      <email>noreply@blogger.com</email>
      <uri>https://profiles.google.com/112127280862367349650</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7619825339500996624</id>
      <category term="Ubuntu"/>
      <category term="CodeIgniter"/>
      <category term="jQuery"/>
      <category term="FirePHP"/>
      <category term="Open-AudIT"/>
      <category term="OAv2"/>
      <category term="Open Source"/>
      <category term="CMDB"/>
      <author>
        <name>Mark Unwin</name>
        <email>noreply@blogger.com</email>
        <uri>https://profiles.google.com/112127280862367349650</uri>
      </author>
      <link href="http://open-audit.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://open-audit.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>Adventure's of a code writing SysAdmin</title>
      <updated>2012-05-16T06:04:50Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.mibus.org/?p=1462</id>
    <link href="http://www.mibus.org/2012/01/17/linux-conf-au-ipv6-automatic-reverse-dns-mappings/" rel="alternate" type="text/html"/>
    <title>Linux.Conf.Au – IPv6 &amp; automatic reverse DNS mappings</title>
    <summary>Today is the day for my IPv6/Automatic reverse DNS mappings presentation at LCA2012. Get the custom pymds fork here; it'll be merged upstream shortly-ish.</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Today is the day for my IPv6/Automatic reverse DNS mappings presentation at LCA2012.</p>
<p>Get the <a href="http://users.on.net/~rmibus/pymds/">custom pymds fork</a> here; it'll be merged upstream shortly-ish.</p></div>
    </content>
    <updated>2012-01-17T04:20:39Z</updated>
    <category term="Uncategorized"/>
    <category term="dns"/>
    <category term="ipv6"/>
    <category term="lca2012"/>
    <category term="pymds"/>
    <category term="sysadmin"/>
    <author>
      <name>mibus</name>
    </author>
    <source>
      <id>http://www.mibus.org</id>
      <link href="http://www.mibus.org/tag/sysadmin/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.mibus.org" rel="alternate" type="text/html"/>
      <subtitle>geek refuge</subtitle>
      <title>mibus.org » sysadmin</title>
      <updated>2012-05-16T14:01:16Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:openfusion.net,2012:/linux/aoe_on_rhel_centos</id>
    <link href="http://www.openfusion.net/linux/aoe_on_rhel_centos" rel="alternate" type="text/html"/>
    <title>AoE on RHEL/CentOS</title>
    <content type="xhtml" xml:lang="en-au"><div xmlns="http://www.w3.org/1999/xhtml"><p>I'm a big fan of <a href="http://www.coraid.com/">Coraid</a> and their relatively
low-cost <a href="http://www.coraid.com/products/san_storage">storage units</a>.
I've been using them for 5+ years now, and they've always been pretty
well engineered, reliable, and performant.</p>

<p>They talk <a href="http://en.wikipedia.org/wiki/ATA_over_Ethernet">ATA-over-Ethernet (AoE)</a>,
which is a very simple non-routable protocol for transmitting ATA
commands directly via Ethernet frames, without the overhead of higher
level layers like IP and TCP. So they're a lighter protocol than
something like iSCSI, and so theoretically higher performance.</p>

<p>One issue with them on linux is that the in-kernel 'aoe' driver is
typically pretty old. Coraid's 
<a href="http://support.coraid.com/support/linux/">latest aoe driver</a> is version
78, for instance, while the RHEL6 kernel (2.6.32) comes with aoe v47,
and the RHEL5 kernel (2.6.18) comes with aoe v22. So updating to the
latest version is highly recommended, but also a bit of a pain, because
if you do it manually it has to be recompiled for each new kernel
update.</p>

<p>The modern way to handle this is to use a
<a href="http://elrepo.org/tiki/FAQ">kernel-ABI tracking kmod</a>, which gives you
a driver that will work across multiple kernel updates for a given EL
generation, without having to recompile each time.</p>

<p>So I've created a kmod-aoe package that seems to work nicely here. It's
downloadable below, or you can install it from my
<a href="http://www.openfusion.net/linux/openfusion_rpm_repository">yum repository</a>.
The kmod depends on the 'aoetools' package, which supplies the command
line utilities for managing your AoE devices.</p>

<p>kmod-aoe (v78):</p>

<ul>
<li>SRPM: <a href="http://www.openfusion.com.au/labs/srpms/aoe-kmod-78-2.of.el6.src.rpm">http://www.openfusion.com.au/labs/srpms/aoe-kmod-78-2.of.el6.src.rpm</a></li>
<li>CentOS5-x86_64 RPM: <a href="http://www.openfusion.com.au/mrepo/centos5-x86_64/RPMS.of/kmod-aoe-78-2.of.el5.x86_64.rpm">http://www.openfusion.com.au/mrepo/centos5-x86_64/RPMS.of/kmod-aoe-78-2.of.el5.x86_64.rpm</a></li>
<li>CentOS6-x86_64 RPM: <a href="http://www.openfusion.com.au/mrepo/centos6-x86_64/RPMS.of/kmod-aoe-78-2.of.el6.x86_64.rpm">http://www.openfusion.com.au/mrepo/centos6-x86_64/RPMS.of/kmod-aoe-78-2.of.el6.x86_64.rpm</a></li>
</ul>

<p>aoetools (v32):</p>

<ul>
<li>SRPM: <a href="http://www.openfusion.com.au/labs/srpms/aoetools-32-2.of.el6.src.rpm">http://www.openfusion.com.au/labs/srpms/aoetools-32-2.of.el6.src.rpm</a></li>
<li>CentOS5-i386 RPM: <a href="http://www.openfusion.com.au/mrepo/centos5-i386/RPMS.of/aoetools-32-2.of.el5.i386.rpm">http://www.openfusion.com.au/mrepo/centos5-i386/RPMS.of/aoetools-32-2.of.el5.i386.rpm</a></li>
<li>CentOS5-x86_64 RPM: <a href="http://www.openfusion.com.au/mrepo/centos5-x86_64/RPMS.of/aoetools-32-2.of.el5.x86_64.rpm">http://www.openfusion.com.au/mrepo/centos5-x86_64/RPMS.of/aoetools-32-2.of.el5.x86_64.rpm</a></li>
<li>CentOS6-i386 RPM: <a href="http://www.openfusion.com.au/mrepo/centos6-i386/RPMS.of/aoetools-32-2.of.el6.i686.rpm">http://www.openfusion.com.au/mrepo/centos6-i386/RPMS.of/aoetools-32-2.of.el6.i686.rpm</a></li>
<li>CentOS6-x86_64 RPM: <a href="http://www.openfusion.com.au/mrepo/centos6-x86_64/RPMS.of/aoetools-32-2.of.el6.x86_64.rpm">http://www.openfusion.com.au/mrepo/centos6-x86_64/RPMS.of/aoetools-32-2.of.el6.x86_64.rpm</a></li>
</ul>

<p>There's an init script in the aoetools package that loads the kernel module,
activates any configured LVM volume groups, and mounts any filesystems.
All configuration is done via <code>/etc/sysconfig/aoe</code>.</p></div>
    </content>
    <updated>2012-01-13T06:14:00Z</updated>
    <published>2012-01-13T06:03:00Z</published>
    <category term="/linux"/>
    <author>
      <name>Gavin Carr</name>
      <uri>http://www.openfusion.net</uri>
    </author>
    <source>
      <id>tag:openfusion.net,2007:/</id>
      <link href="http://www.openfusion.net/atom" rel="self" type="application/atom+xml"/>
      <link href="http://www.openfusion.net" rel="alternate" type="text/html"/>
      <subtitle>World disintermediation, one hack at a time</subtitle>
      <title>Gavin Carr's Hackery</title>
      <updated>2012-05-08T02:35:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.mibus.org/?p=1449</id>
    <link href="http://www.mibus.org/2011/12/31/oracle-java-6-ubuntu/" rel="alternate" type="text/html"/>
    <title>Oracle Java 6 &amp; Ubuntu</title>
    <summary>This is semi-draft, as I haven't gotten around to testing the packages I build... Caught out needing new "Sun" Java packages for Ubuntu, by the DLJ revocation? Grab a usable set of build source packages from http://archive.canonical.com/ubuntu/pool/partner/s/sun-java6/ - you'll need an *.orig.tar.gz, a *.dsc, and a *.debian.tar.gz file for the version you've picked. I used [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><em>This is semi-draft, as I haven't gotten around to testing the packages I build...</em></p>
<p>Caught out needing new "Sun" Java packages for Ubuntu, by the DLJ revocation?</p>
<p>Grab a usable set of build source packages from <em>http://archive.canonical.com/ubuntu/pool/partner/s/sun-java6/</em> - you'll need an <em>*.orig.tar.gz</em>, a <em>*.dsc</em>, and a <em>*.debian.tar.gz</em> file for the version you've picked. I used a 6.26 version from Natty.</p>
<p>Grab a latest (currently 6u30) "bin" Linux packages for each architecture from http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html (Note: needs Javascript!).</p>
<p><code>dpkg-source -x *.dsc<br/>
cd sun-java6-6.26/<br/>
rm *bin<br/>
mv ~/Downloads/jdk-6u30-linux-i586.bin jdk-6u30-dlj-linux-i586.bin<br/>
mv ~/Downloads/jdk-6u30-linux-x64.bin jdk-6u30-dlj-linux-amd64.bin<br/>
</code></p>
<p>Edit debian/rules, comment out the section following the comment '<em>check if the sources are the "same"</em>'.<br/>
<code><br/>
dch -v 6.30<br/>
</code><br/>
(add in a stub changelog entry - this is just so it realises what version it's building)</p>
<p><code><br/>
cd ../sun-java6-6.30<br/>
dpkg-buildpackage -b -uc<br/>
</code></p>
<p>Then you should be left with workable packages matching the last Ubuntu-released ones, but with a newer JRE/JDK.</p>
<p><b>Note #1:</b> I haven't so much as installed these packages, it's just theory. It built, it ships - I mean, hey, it's New Year's Eve! ;-)<br/>
<b>Note #2:</b> This won't include a working web plugin - I pulled the build packages from after 6.26-1natty1, which was the last release with a working web plugin.</p></div>
    </content>
    <updated>2011-12-31T02:31:08Z</updated>
    <category term="Uncategorized"/>
    <category term="java"/>
    <category term="sysadmin"/>
    <category term="ubuntu"/>
    <author>
      <name>mibus</name>
    </author>
    <source>
      <id>http://www.mibus.org</id>
      <link href="http://www.mibus.org/tag/sysadmin/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.mibus.org" rel="alternate" type="text/html"/>
      <subtitle>geek refuge</subtitle>
      <title>mibus.org » sysadmin</title>
      <updated>2012-05-16T14:01:16Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7619825339500996624.post-7753088081318163354</id>
    <link href="http://open-audit.blogspot.com/feeds/7753088081318163354/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://open-audit.blogspot.com/2011/11/what-would-you-like-to-see-next-in-oav2.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default/7753088081318163354" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default/7753088081318163354" rel="self" type="application/atom+xml"/>
    <link href="http://open-audit.blogspot.com/2011/11/what-would-you-like-to-see-next-in-oav2.html" rel="alternate" type="text/html"/>
    <title>What would you like to see next in OAv2?</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Go here and vote for your preferred feature.<br/>If you don't see your feature, let me know!<br/><br/><a href="http://www.open-audit.org/phpBB3/viewtopic.php?f=20&amp;t=5796">http://www.open-audit.org/phpBB3/viewtopic.php?f=20&amp;t=5796</a><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/7619825339500996624-7753088081318163354?l=open-audit.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2011-11-20T03:00:53Z</updated>
    <published>2011-11-20T03:00:00Z</published>
    <author>
      <name>Mark Unwin</name>
      <email>noreply@blogger.com</email>
      <uri>https://profiles.google.com/112127280862367349650</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7619825339500996624</id>
      <category term="Ubuntu"/>
      <category term="CodeIgniter"/>
      <category term="jQuery"/>
      <category term="FirePHP"/>
      <category term="Open-AudIT"/>
      <category term="OAv2"/>
      <category term="Open Source"/>
      <category term="CMDB"/>
      <author>
        <name>Mark Unwin</name>
        <email>noreply@blogger.com</email>
        <uri>https://profiles.google.com/112127280862367349650</uri>
      </author>
      <link href="http://open-audit.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://open-audit.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>Adventure's of a code writing SysAdmin</title>
      <updated>2012-05-16T06:04:50Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:openfusion.net,2011:/linux/openldap_tips_and_tricks</id>
    <link href="http://www.openfusion.net/linux/openldap_tips_and_tricks" rel="alternate" type="text/html"/>
    <title>OpenLDAP Tips and Tricks</title>
    <content type="xhtml" xml:lang="en-au"><div xmlns="http://www.w3.org/1999/xhtml"><p>Having spent too much of this week debugging problems around migrating
ldap servers from RHEL5 to RHEL6, here are some miscellaneous notes
to self:</p>

<ol>
<li><p>The service is named <code>ldap</code> on RHEL5, and <code>slapd</code> on RHEL6 e.g.
you do <code>service ldap start</code> on RHEL5, but <code>service slapd start</code>
on RHEL6</p></li>
<li><p>On RHEL6, you want all of the following packages installed on your clients:</p>

<pre><code>yum install openldap-clients pam_ldap nss-pam-ldapd
</code></pre></li>
<li><p>This seems to be the magic incantation that works for me (with real SSL
certificates, though):</p>

<pre><code>authconfig --enableldap --enableldapauth \
  --ldapserver ldap.example.com \
  --ldapbasedn="dc=example,dc=com" \
  --update
</code></pre></li>
<li><p>Be aware that there are <em>multiple</em> ldap configuration files involved now.
All of the following end up with ldap config entries in them and need to
be checked:</p>

<ul>
<li>/etc/openldap/ldap.conf</li>
<li>/etc/pam_ldap.conf</li>
<li>/etc/nslcd.conf</li>
<li>/etc/sssd/sssd.conf</li>
</ul>

<p>Note too that <code>/etc/openldap/ldap.conf</code> uses uppercased directives (e.g. <code>URI</code>)
that get lowercased in the other files (<code>URI</code> -&gt; <code>uri</code>). Additionally, some
directives are confusingly renamed as well - e.g. <code>TLA_CACERT</code> in
<code>/etc/openldap/ldap.conf</code> becomes <code>tla_cacertfile</code> in most of the others.
:-(</p></li>
<li><p>If you want to do SSL or TLS, you should know that the default behaviour
is for ldap clients to verify certificates, and give misleading bind errors
if they can't validate them. This means:</p>

<ul>
<li><p>if you're using self-signed certificates, add <code>TLS_REQCERT allow</code> to 
<code>/etc/openldap/ldap.conf</code> on your clients, which means allow certificates
the clients can't validate</p></li>
<li><p>if you're using CA-signed certificates, and want to verify them, add
your CA PEM certificate to a directory of your choice (e.g. 
<code>/etc/openldap/certs</code>, or <code>/etc/pki/tls/certs</code>, for instance), and point
to it using <code>TLA_CACERT</code> in <code>/etc/openldap/ldap.conf</code>, and
<code>tla_cacertfile</code> in <code>/etc/ldap.conf</code>.</p></li>
</ul></li>
<li><p>RHEL6 uses a new-fangled <code>/etc/openldap/slapd.d</code> directory for the old
<code>/etc/openldap/slapd.conf</code> config data, and the
<a href="http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Migration_Planning_Guide/ch07s03.html">RHEL6 Migration Guide</a>
tells you to how to convert from one to the other. But if you simply 
rename the default <code>slapd.d</code> directory, slapd will use the old-style
<code>slapd.conf</code> file quite happily, which is much easier to read/modify/debug,
at least while you're getting things working.</p></li>
<li><p>If you run into problems on the server, there are lots of helpful utilities
included with the <code>openldap-servers</code> package. Check out the manpages for
<code>slaptest(8)</code>, <code>slapcat(8)</code>, <code>slapacl(8)</code>, <code>slapadd(8)</code>, etc.</p></li>
</ol>

<p>Further reading:</p>

<ul>
<li><a href="http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Migration_Planning_Guide/ch07s03.html">RHEL6 Migration Planning Guide</a></li>
<li><a href="http://people.redhat.com/alikins/ldap/ldap.html">http://people.redhat.com/alikins/ldap/ldap.html</a></li>
<li><a href="http://islandlinux.org/howto/installing-secure-ldap-openldap-ssl-ubuntu-using-self-signed-certificate">http://islandlinux.org/howto/installing-secure-ldap-openldap-ssl-ubuntu-using-self-signed-certificate</a></li>
</ul></div>
    </content>
    <updated>2011-11-14T01:46:00Z</updated>
    <published>2011-10-27T21:48:00Z</published>
    <category term="/linux"/>
    <author>
      <name>Gavin Carr</name>
      <uri>http://www.openfusion.net</uri>
    </author>
    <source>
      <id>tag:openfusion.net,2007:/</id>
      <link href="http://www.openfusion.net/atom" rel="self" type="application/atom+xml"/>
      <link href="http://www.openfusion.net" rel="alternate" type="text/html"/>
      <subtitle>World disintermediation, one hack at a time</subtitle>
      <title>Gavin Carr's Hackery</title>
      <updated>2012-05-08T02:35:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://davehall.com.au/155 at http://davehall.com.au</id>
    <link href="http://davehall.com.au/blog/dave/2011/11/11/drupal-enterprise-aka-vote-my-drupalcon-session" rel="alternate" type="text/html"/>
    <title>Drupal in the Enterprise (aka Vote for my DrupalCon Session)</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>TL; DR: [spam]Please vote for my <a href="http://denver2012.drupal.org/program/sessions/drupal-workflows-enterprise" rel="nofollow">DrupalCon Denver proposal on Drupal workflows in the enterprise</a>.[/spam]</p>
<p>For the last few months I've been working for <a href="http://technocrat.com.au" rel="nofollow">Technocrat</a> on a new Drupal based site for the <a href="http://iag.com.au" rel="nofollow">Insurance Australia Group's</a> Direct Insurance brands.  The current sites are using Autonomy Teamsite.</p>
<p>The basics of the build are relatively straight forward, around 1000 nodes, a bunch of views and a bit of glue to hold it all together.  Where things get complicated is the workflow.  The Financial services sector in Australia is subject to strict control of representations being made about products.  The workflow system needs to ensure IAG complies with these requirements.</p>
<p>During the evaluation we found that generally Drupal workflows are based around publishing a single piece of content on the production site.  In the IAG case a collection of nodes need to be published as a piece of work, along with a new block.  These changes need to be reviewed by stakeholders and then deployed.  This led us to build a job based workflow system.</p>
<p>We are using the Features module to handle all configuration, deploy for entities and some additional tools, including Symfony, Jenkins and drush to hold it all together.</p>
<p>I've proposed the session for <a href="http://drupaldownunder.org" rel="nofollow">Drupal Downunder</a> in January and will refine the session based on feedback from there in preparation for Denver.  If you want to learn more about <a href="http://denver2012.drupal.org/program/sessions/drupal-workflows-enterprise" rel="nofollow">Drupal Workflows in the Enterprise</a>, please vote for my session.</p></div>
    </summary>
    <updated>2011-11-11T12:22:58Z</updated>
    <category scheme="http://davehall.com.au/tags/drupal" term="drupal"/>
    <category scheme="http://davehall.com.au/tags/drupalcon" term="drupalcon"/>
    <category scheme="http://davehall.com.au/tags/workflow" term="workflow"/>
    <author>
      <name>Dave</name>
    </author>
    <source>
      <id>http://davehall.com.au/blog</id>
      <link href="http://davehall.com.au/blog" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/DaveHallConsultingBlogs" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Dave Hall Consulting blogs</title>
      <updated>2012-02-06T14:01:19Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.neuromesh.net/?p=1762</id>
    <link href="http://www.neuromesh.net/information-gluttony/" rel="alternate" type="text/html"/>
    <title>Information Gluttony</title>
    <summary>Humans want more.  All the time more. It’s our nature.  In times long past, when your family/tribe killed a mammoth, you ate and ate for days until all the mammoth was gone and stored the excess energy as fat cos it would be another month before you saw anything more than nuts and berries again. [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Humans want more.  All the time more. It’s our nature.  In times long past, when your family/tribe killed a mammoth, you ate and ate for days until all the mammoth was gone and stored the excess energy as fat cos it would be another month before you saw anything more than nuts and berries again.  Good strategy in a world of scarcity and uncertain supply. A strong theory for the epidemic of obesity and diabetes in modern society suggests that an environment of plentiful energy supply does not divert our instinct to overconsume and store energy, so we will eat beyond our needs. We love starch and sugar as cheap carbs that our ancestors would have quickly used running away from bears and tigers, but which we take more than we can actually use, failing  to burn the kilojoules as we sit on our ever enlarging arses watching TV.</p>
<p>This instinct feeds the whole structure of commerce and capitalism.  In the same way that we don’t need another 1000kj today but still eat an evening snack, we have a hunger for new things that is obscene.  Many people will have retired a perfectly good iPhone 3 or 4 to get the iPhone 4S when it came out, which is a little faster, has better camera resolution (upgraded from more than you probably need for your limited photography skills, to even more than…) and umm yeah that’s about it.  But it’s new and more.  Walk past hard rubbish and you will virtually always see a CRT TV, which probably works, but isn’t flat panel HD so it’s no longer good enough for the kids’ bedrooms.  The sooner we want more, the faster the economy grows, and becomes dangerously fat and diabetic.</p>
<p>It’s reasonable to say that in my lifetime I will not spend more than two million dollars, yet Alan Joyce of Qantas strike breaking fame earns 5 million EVERY YEAR.  Perhaps his house is worth ten million dollars.  He could still pay it off in two years.  Where the hell is that money going?  It’s probably just piling up in his in tray at home like all the stuff you and I never get around to dealing with.  And he’s a low paid CEO. 5 mill a year is obscene, greedily taking far more than we could use, but not one of us would say no to it would we?</p>
<p>Which brings us to the internet and TV.  There is far more information than you could possibly absorb in an entire lifetime.  Wikipedia probably grows faster than you can read.  There are docos, news and current affairs to fill numerous 24 hour TV stations. And certainly reading and learning are good and useful things.  Just like you can’t get by without kilojoules and in a modern western world at least, gadgets, if you try to live without some reading and learning you will quickly become socially and functionally inept, not to mention turning into a redneck idiot. You need a certain amount of info to exist normally and healthily in society.</p>
<p>However there’s a point at which we are gluttonous with our information intake.   Watching said news when you can’t vote, influence, change, learn from the things you see is just consuming info you don’t need. I find myself refreshing websites to see if there is new stuff, reloading feeds and checking Facebook one more time.  When they run dry, I could write some lyrics/a song inspired by what I read; blog some thoughts about what I learned;  find friends to chat with online about things I’ve discovered; go to bed…  Instead, I’m thinking hmm, what can I search for that will provide another half hour or so of random reading.  Or at work Ooh there’s five minutes while this job runs, I’ll just read some feeds.  Or ahh it’s a bit late to play my guitar, I’ll just go and noodle on the internet for a bit…hey where did another evening go??  I  consumed a whole bunch of data that may have been interesting or even significant, but I ate so much of it that my brain got diabetic and didn’t process it properly, and it was far more than I needed to get through my day and I probably didn’t grow or learn and I likely won’t even remember half of it.  I should’ve eaten less and done more with it.</p>
<p>Tonight I obviously decided to create instead of consume – I took my recent experiences, a variety of things I had learned (consumed) before, processed them and compiled them into a new creation – this blog post. For a change I actually burned the mental energy from some things I had absorbed.  This post is the product of that mental energy I had consumed.  And now, assuming you got this far, you are the consumer of same.  And that’s great, your brain has had some healthy nutrition.  The question is…does it go into the pool of excess consumption and just make your head fat?  Or will you take what you ate here and burn it – doing, or making, or helping, or growing, or being?</p></div>
    </content>
    <updated>2011-11-05T13:29:30Z</updated>
    <category term="Etc..."/>
    <category term="greed consumption creativity"/>
    <author>
      <name>Jase</name>
    </author>
    <source>
      <id>http://www.neuromesh.net</id>
      <link href="http://www.neuromesh.net/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.neuromesh.net" rel="alternate" type="text/html"/>
      <subtitle>Bitten by an eclectic eel...</subtitle>
      <title>Neuromesh</title>
      <updated>2012-03-07T14:01:16Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:openfusion.net,2011:/linux/rhel6-gdm-session-workaround</id>
    <link href="http://www.openfusion.net/linux/rhel6-gdm-session-workaround" rel="alternate" type="text/html"/>
    <title>RHEL6 GDM Sessions Workaround</title>
    <content type="xhtml" xml:lang="en-au"><div xmlns="http://www.w3.org/1999/xhtml"><p>The GDM Greeter in RHEL6 seems to have lost the ability to select
'session types' (or window managers), which apparently means you're
stuck using Gnome, even if you have other better options installed.
One workaround is to install KDM instead, and set <code>DISPLAYMANAGER=KDE</code>
in your <code>/etc/sysconfig/desktop</code> config, as KDM does still support
selectable session types.</p>

<p>Since I've become a big fan of 
<a href="http://en.wikipedia.org/wiki/Tiling_window_managers">tiling window managers</a>
in general, and <a href="http://en.wikipedia.org/wiki/Ion_%28window_manager%29">ion</a>
in particular, this was pretty annoying, so I wasted a few hours
today working through the /etc/X11 scripts and figuring out how
they hung together on RHEL6.</p>

<p>So for any other gnome-haters out there who don't want to have to
go to KDM, here's a patch to <code>/etc/X11/xinit/Xsession</code> that ignores
the default 'gnome-session' set by GDM, which allows proper window
manager selection either by user <code>.xsession</code> or <code>.Xclients</code> files, 
or by the <code>/etc/sysconfig/desktop</code> DISPLAY setting.</p>

<pre class="sh_diff">diff --git a/xinit/Xsession b/xinit/Xsession
index e12e0ee..ab94d28 100755
--- a/xinit/Xsession
+++ b/xinit/Xsession
@@ -30,6 +30,14 @@ SWITCHDESKPATH=/usr/share/switchdesk
 # Xsession and xinitrc scripts which has been factored out to avoid duplication
 . /etc/X11/xinit/xinitrc-common

+# RHEL6 GDM doesn't seem to support selectable sessions, and always requests a
+# gnome-session. So we unset this default here, to allow things like user
+# .xsession or .Xclients files to be checked, and /etc/sysconfig/desktop
+# settings (via /etc/X11/xinit/Xclients) honoured.
+if [ -n "$GDMSESSION" -a $# -eq 1 -a "$1" = gnome-session ]; then
+  shift
+fi
+
 # This Xsession.d implementation, is intended to obsolte and replace the
 # various mechanisms present in the 'case' statement which follows, and to
 # eventually be able to easily remove all hard coded window manager specific

</pre>

<p>Apply as root:</p>

<pre class="sh_sh">cd /etc/X11
patch -p1 &lt; /tmp/xsession.patch
</pre></div>
    </content>
    <updated>2011-11-01T04:34:00Z</updated>
    <published>2011-01-13T18:11:00Z</published>
    <category term="/linux"/>
    <author>
      <name>Gavin Carr</name>
      <uri>http://www.openfusion.net</uri>
    </author>
    <source>
      <id>tag:openfusion.net,2007:/</id>
      <link href="http://www.openfusion.net/atom" rel="self" type="application/atom+xml"/>
      <link href="http://www.openfusion.net" rel="alternate" type="text/html"/>
      <subtitle>World disintermediation, one hack at a time</subtitle>
      <title>Gavin Carr's Hackery</title>
      <updated>2012-05-08T02:35:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.neuromesh.net/?p=1751</id>
    <link href="http://www.neuromesh.net/enough-is-never-enough/" rel="alternate" type="text/html"/>
    <title>Enough is….never enough!!!</title>
    <summary>Warning to the faint of heart. There’s a couple of rude words near the bottom of this, but they are artistically justified I swear.  Hehe, swear. A few years ago a friend told me he was doing Febfast. Good idea I thought – most years I give up alcohol for Lent, which is a great [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Warning to the faint of heart. There’s a couple of rude words near the bottom of this, but they are artistically justified I swear.  Hehe, swear.</p>
<p>A few years ago a friend told me he was doing Febfast. Good idea I thought – most years I give up alcohol for Lent, which is a great Lenten observance – as well as the old fashioned ‘giving something up’, it’s a good head clearing exercise. Febfast has the advantage of being a lot shorter – for the secular giving up for a calendar month, you choose the shortest month. Another great idea! Also it is a fundraiser to support organisations that help <a href="http://febfast.org.au/beneficiaries">young people with alcohol and other drug problems</a>.</p>
<p>Then I heard of Dry July, and I thought yeah well, you have a good idea and someone else will hijack it, at least it rhymes that’s kind of neat.  They support adults living with cancer, which is a useful thing – you can’t help but think most cancer related fundraising will result in patented medications and big profits for someone, so a charity that fundraises for <a href="http://www.dryjuly.com/beneficiaries/default.aspx">hospitals providing day to day support</a> isn’t too bad.</p>
<p>A local junior footy club did ‘Give it a Flick for Auskick’ which raised discussion about the appropriateness of alcohol related fundraising for junior sports.  I can see both sides of that argument, can’t make a judgement there.</p>
<p>And then on Facebook the other day, someone mentioned Ocsober.  And I thought, ‘great, another one.’  And then I thought, ‘hehe Ocsober, funny.’  And THEN, I thought, ‘no! Enough is enough!’  February, July ,October…that’s a quarter of the year already…it’s the thin end of the wedge I tell you. It will be all year before you know it.  I’m starting to think it’s a conspiracy of the old fashioned Christian right, to slowly squeeze out of our society the last relief we have from the gaping hole left by all the colour they squeezed out of the rest of life.  If the Puritans have their way, next will be ‘March’ on the Bottle-O, ‘May’ ye all be Temperate or worst of all, Nobeervember.</p>
<p>Luckily for you, dear readers, Neuromesh has your calendar covered.  It’s time to strike a blow against those who would repress <a href="http://www.thinkgeek.com/tshirts-apparel/unisex/generic/a87c/">this wondrous molecule</a>.  Intoxication wants to be free!  Sure we could aim against the incursions that have already been made on our <a href="http://www.biblegateway.com/passage/?search=Psalm%20104:15&amp;version=NIV">God</a> <a href="http://www.biblegateway.com/passage/?search=Psalm%20104:15&amp;version=NIV">given</a> tipple,  and claim our rights in February, June and October, but I believe we should <del>always get the first shout in</del> be proactive, not just countering those months but claiming the whole year for freedom and inebriation.  With this in mind, allow me to present to you….the Alcohalander!</p>
<p><strong>Wineuary</strong></p>
<p>Your liver is well conditioned by the Christmas festivities, so why not put all that work to good use!  It’s important to make the most of the Australian summer, it’s hot and thirsty and you’ve had a good leadup from Christmas.  But maybe you are a bit fat from all the Christmas beer, so get your friends to sponsor you for each bottle of wine you get through in January.  Chardy, Cab Sav or Bubbly, every glass you have can help someone in need.</p>
<p><em>Fundraising for:</em> families who spent too much on X-Boxes for their kids at Christmas and have an unmanageable credit card debt.</p>
<p><strong>Febrewary</strong></p>
<p><strong/>It’s home brew month. Reaching the end of Summer spending, with a big year still ahead of you, it’s an ideal time to stash away a few bucks by drinking on the cheap.  Also the warm Australian weather makes for fast fermenting temperatures, so you should be able to get four ‘home projects’ completed in February.  While you wait for your brew to settle, drink whatever you like.</p>
<p><em>Fundraising for: </em><a href="http://communitygarden.org.au/">Community garden projects</a>, especially if they grow hops and barley</p>
<p><strong>March to the Pub</strong></p>
<p><strong/>Occupy Wall Street, Occupy London,  Occupy Melbourne…Occupy the local we say!  Take your liver and your stomach out for a treat – get your friends, family and workmates to sponsor you for every Pot/Schooner + Chicken Parma meal you consume at the pub during March!</p>
<p><em>Fundraising for: </em><a href="http://www.chickenwelfare.com.au/">Chicken Welfare </a></p>
<p><strong>Graperil</strong></p>
<p><strong/>Spent too much at the pub in March?  Time to resort to Chateau Cardboard.  The humble goony is the drink of fundraising choice for April.  Strike back at your year ten English teacher and say No!  Quantity is a <em>great</em> substitute for quality!  Remember to tell your sponsors whether you will be drinking the two, four or the mighty five litre cask!</p>
<p><em>Fundraising For: </em>Recycling awareness, but if you can’t find any sponsors, put your empty goony box in the recycling instead of throwing it in the garden of the local primary school, and we’ll call it even.</p>
<p><strong>May Part-ayyy</strong></p>
<p><strong/>What comes before Part B?  Part Ayyyy!!! It’s the end of autumn and of sunshine.  The sun is down earlier and the night is longer, and the longer the night, the longer the party.  This month, your sponsors will be raising funds based on every nighttime hour you can spend drunk, so party for a cause!</p>
<p><em>Fundraising For: </em>Insomnia research</p>
<p><strong>Brewn</strong></p>
<p><strong/>Chances are you completely forgot about the home brew you made in Febrewary, so it’s time to tidy up the garage and drink that.  Of course, unless your friends drink as much as you they’ll probably remember that they already sponsored you for these home brewed charitable efforts, so it’s a good time to enlist some new sponsors for your community service work in Brewn.  Plus you’ll have twice as many potential sponsors to hit up next month!</p>
<p><em>Fundraising for: </em><a href="http://www.fightdementia.org.au/">Alzheimers research</a></p>
<p><strong>Try July</strong></p>
<p><strong/>It’s cold, it’s wet….stick to the warmth of your home and experiment. Try July is all about new things.  Go to the grog shop  and say “One of each thanks”, mix and match and see what works.  You’ll be making money for charity each time you try a new cocktail, plus you can win prizes for the most suggestive new cocktail names! Imagine the fun when you offer your friends an  ’Energetic Eel Enema’?</p>
<p><em>Fundraising for: </em>Diversity thing</p>
<p><strong>Auguzzle</strong></p>
<p><strong/>Crank it up, it’s all about the numbers in Auguzzle. It’s cold and dark, but hey have a few and a few more and you don’t mind. What’s the drunkest you’ve ever been mate, haha, you have 31 days to acheive it.</p>
<p><em>Fundraising for: </em>I dunno, probably stomach ulcers or something.<br/>
<strong/></p>
<p><strong>Pisstember</strong></p>
<p><strong/>Yeah what’s more Australian than gettin’ on the piss yeah?  Get a few friends, and it’s your shout, and his shout and the other guys shout, as long as you don’t leave just when it’s your shout yeah!</p>
<p><em>Fundraising for:  </em>more beers!!!</p>
<p><strong>Octoberfest</strong></p>
<p>Maulticutural and stuff it;s German so its’qw good they invented beer right?  Also, girls in them oktoberfest outfits and big beers and like lids on and that.</p>
<p><em>Fundraising for:</em> scheiße hehe I swore in German</p>
<p><strong>Noremember</strong></p>
<p><strong/>I was gonna type something or…something, it was a, like, it was fu, it was fu…fuckin…hey, it’s been….mate…I love you mate, your fuckin….you know….</p>
<p><em>Fundraising for : </em>Kebabs</p>
<p><strong>Bleghcember</strong></p>
<p>Yeah I used to, you know…and it’s fugn…I gotta….wait…be right back….</p>
<p><em>Fundraising for: </em>Taxi fare</p></div>
    </content>
    <updated>2011-10-28T13:34:30Z</updated>
    <category term="Living"/>
    <category term="alcohol"/>
    <category term="beer"/>
    <category term="temperance"/>
    <category term="wine"/>
    <author>
      <name>Jase</name>
    </author>
    <source>
      <id>http://www.neuromesh.net</id>
      <link href="http://www.neuromesh.net/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.neuromesh.net" rel="alternate" type="text/html"/>
      <subtitle>Bitten by an eclectic eel...</subtitle>
      <title>Neuromesh</title>
      <updated>2012-03-07T14:01:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.neuromesh.net/?p=1746</id>
    <link href="http://www.neuromesh.net/the-talking-cloc/" rel="alternate" type="text/html"/>
    <title>The Talking Clock</title>
    <summary>This is wonderful – a ‘film’ from when the first automated talking clock was installed in Australia in 1954, by the Post Office because Telecom didn’t even exist then. Prior to that, a human sat at the desk and literally read the time, over and over and over. And you think you hate your job. [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>This is wonderful – a ‘film’ from when the first automated talking clock was installed in Australia in 1954, by the Post Office because Telecom didn’t even exist then.  Prior to that, a human sat at the desk and literally read the time, over and over and over.  And you think you hate your job.  It goes for four minutes, well worth it to see the classic video, and also shows how the system was a literal clockwork mechanism that played off three discs.</p>
<p>&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/fp4zlMZVcmM" width="420"&gt;&lt;/iframe&gt;</p>
<p>I was inspired to look for this by wondering how the talking clock system managed daylight savings. Is there someone whose sole job is to manage the talking clock?  What does s/he do, just come in twice a year to shift it back and forth at daylight savings?  </p>
<p><a href="http://en.wikipedia.org/wiki/Speaking_clock#Australia">The above system managed it</a> because two systems were actually installed, one live and the second ran constantly as a hot spare.  When it came to daylight savings, the secondary was manually advanced, and a technician would cut over to that at the crucial moment.  The first machine would then be advanced and it would become the hot spare, and the process was reversed at the end of daylight savings. It was some quality engineering, designed to run constantly, which it did for 36 years.</p>
<p>The glass disc mechanical system with the BBC style Received Pronunciation accent was replaced in 1990 by a digital one recorded by Adelaide ABC broadcaster Richard Peach. <a href="http://www.abc.net.au/news/2008-12-04/voice-of-speaking-clock-peach-dead-at-59/229178">He passed away in 2008</a> so possibly the talking clock should contain a warning to indigenous cultures that it contains the voice of someone who has died.  This system probably just cuts over automatically.  Whenever you replace something wonderfully clever with something merely computerised, a little bit of the magic goes out of the world.  Telecom commemorated this fact by making a video twice as long and far less interesting.</p>
<p>&lt;object height="375" width="500"&gt;&lt;param name="movie" value="http://www.youtube.com/v/9LVzKHOodC4?version=3"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowscriptaccess" value="always"/&gt;&lt;embed allowfullscreen="true" allowscriptaccess="always" height="375" src="http://www.youtube.com/v/9LVzKHOodC4?version=3" type="application/x-shockwave-flash" width="500"&gt;&lt;/embed&gt;&lt;/object&gt;</p></div>
    </content>
    <updated>2011-10-01T12:30:53Z</updated>
    <category term="World"/>
    <author>
      <name>Jase</name>
    </author>
    <source>
      <id>http://www.neuromesh.net</id>
      <link href="http://www.neuromesh.net/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.neuromesh.net" rel="alternate" type="text/html"/>
      <subtitle>Bitten by an eclectic eel...</subtitle>
      <title>Neuromesh</title>
      <updated>2012-03-07T14:01:16Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7619825339500996624.post-8386502302257040360</id>
    <link href="http://open-audit.blogspot.com/feeds/8386502302257040360/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://open-audit.blogspot.com/2011/09/oav2-beta3-released.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default/8386502302257040360" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default/8386502302257040360" rel="self" type="application/atom+xml"/>
    <link href="http://open-audit.blogspot.com/2011/09/oav2-beta3-released.html" rel="alternate" type="text/html"/>
    <title>OAv2 beta3 released</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div style=""><span style="line-height: 18px;"/><br/><div><span style="line-height: 18px;">Go grab it.</span></div><div><span style="line-height: 18px;">To upgrade your database (for an existing beta1 or beta2 install), copy the OAv2 files over the old ones, then fire up OAv2 and go to Help -&gt; about (as an Admin).</span></div><div><span style="line-height: 18px;">Then click the red upgrade text. Done.</span></div><div><span style="line-height: 18px;"><br/></span></div><div><span style="line-height: 18px;">Make sure you use the new audit script, too.</span></div><div><span style="line-height: 18px;"><br/></span></div><div><span style="line-height: 18px;">FWIW - I would backup your database before doing this and also copy your original OAv2 files somewhere else. That way, if the worst happens, you can always revert back...</span></div><div><span style="line-height: 18px;"><br/></span></div><div><span style="line-height: 18px;">Please submit some statistics (Help -&gt; Statistics) so I have some idea of how many people are using OAv2 (and how many systems they are auditing with it). This submission cannot be linked back to your organisation.</span></div><div><span style="line-height: 18px;"><br/></span></div><div><span style="line-height: 18px;">Also - I am off camping with the family from tomorrow night (Tue, Brisbane time). I will have limited internet access and no access to debug issue's. I will check the forums, but fixes won't be forthcoming until next week. Apologies if this causes an inconvenience.</span></div><div><span style="line-height: 18px;"><br/></span></div><div><span style="line-height: 18px;"><br/></span></div><div><span style="line-height: 18px;"><a href="https://launchpad.net/oav2/trunk/beta3">https://launchpad.net/oav2/trunk/beta3</a></span></div></div><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/7619825339500996624-8386502302257040360?l=open-audit.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2011-09-26T03:49:38Z</updated>
    <published>2011-09-26T02:01:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="OAv2"/>
    <author>
      <name>Mark Unwin</name>
      <email>noreply@blogger.com</email>
      <uri>https://profiles.google.com/112127280862367349650</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7619825339500996624</id>
      <category term="Ubuntu"/>
      <category term="CodeIgniter"/>
      <category term="jQuery"/>
      <category term="FirePHP"/>
      <category term="Open-AudIT"/>
      <category term="OAv2"/>
      <category term="Open Source"/>
      <category term="CMDB"/>
      <author>
        <name>Mark Unwin</name>
        <email>noreply@blogger.com</email>
        <uri>https://profiles.google.com/112127280862367349650</uri>
      </author>
      <link href="http://open-audit.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://open-audit.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>Adventure's of a code writing SysAdmin</title>
      <updated>2012-05-16T06:04:50Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7619825339500996624.post-7857790982172682621</id>
    <link href="http://open-audit.blogspot.com/feeds/7857790982172682621/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://open-audit.blogspot.com/2011/01/alpha-7-is-out.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default/7857790982172682621" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default/7857790982172682621" rel="self" type="application/atom+xml"/>
    <link href="http://open-audit.blogspot.com/2011/01/alpha-7-is-out.html" rel="alternate" type="text/html"/>
    <title>Alpha 7 is out</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Printers and Monitors now audited.<br/>Many bugs squashed.<br/>Get it now !<br/><br/>http://launchpad.net/oav2/trunk/alpha7/+download/OAv2.zip<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/7619825339500996624-7857790982172682621?l=open-audit.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2011-09-26T02:09:47Z</updated>
    <published>2011-01-17T11:56:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="OAv2"/>
    <author>
      <name>Mark Unwin</name>
      <email>noreply@blogger.com</email>
      <uri>https://profiles.google.com/112127280862367349650</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7619825339500996624</id>
      <category term="Ubuntu"/>
      <category term="CodeIgniter"/>
      <category term="jQuery"/>
      <category term="FirePHP"/>
      <category term="Open-AudIT"/>
      <category term="OAv2"/>
      <category term="Open Source"/>
      <category term="CMDB"/>
      <author>
        <name>Mark Unwin</name>
        <email>noreply@blogger.com</email>
        <uri>https://profiles.google.com/112127280862367349650</uri>
      </author>
      <link href="http://open-audit.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://open-audit.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/7619825339500996624/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>Adventure's of a code writing SysAdmin</title>
      <updated>2012-05-16T06:04:50Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-4023878807110224913.post-2084205723335791232</id>
    <link href="http://indigoid.blogspot.com/feeds/2084205723335791232/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://indigoid.blogspot.com/2011/09/arduino-combining-can-bus-and-xbee.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default/2084205723335791232" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default/2084205723335791232" rel="self" type="application/atom+xml"/>
    <link href="http://indigoid.blogspot.com/2011/09/arduino-combining-can-bus-and-xbee.html" rel="alternate" type="text/html"/>
    <title>Arduino: combining CAN-bus and Xbee shields</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div style="text-align: left; padding: 3px;"><a href="http://www.flickr.com/photos/indigoid/6181308178/" title="photo sharing"><img alt="" src="http://farm7.static.flickr.com/6160/6181308178_299555cae0.jpg" style="border: solid 2px #000000;"/></a><br/><span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/indigoid/6181308178/">A little box of Arduino</a>, originally uploaded by <a href="http://www.flickr.com/photos/indigoid/">indigoid</a>.</span></div><br/><p>So I created a simple little sketch, based on the TimeGPS sample that comes with the TinyGPS library, that waits for a "p" over the Xbee interface and upon receiving it, sends back the date, time, latitude and longitude data from the GPS.  The CAN-bus shield uses pins 4 and 5 for the GPS serial interface.  I found that the Xbee modules I have (as supplied in the SparkFun Xbee retail kit) have rather shorter range than I'd hoped for, but at least they work and I am learning about their usage.  Here's the sketch:</p><br/><pre>#include &lt;TinyGPS.h&gt;        //http://arduiniana.org/libraries/TinyGPS/<br/>#include &lt;NewSoftSerial.h&gt;  //http://arduiniana.org/libraries/newsoftserial/<br/>// GPS and NewSoftSerial libraries are the work of Mikal Hart<br/><br/>TinyGPS gps; <br/>NewSoftSerial serial_gps =  NewSoftSerial(4, 5);  // receive on pin 3<br/><br/>void setup()<br/>{<br/>  Serial.begin(9600);<br/>  serial_gps.begin(4800);<br/>  Serial.println("setup...");<br/>}<br/><br/>void dump_lat_long(float flat, float flong) {<br/>  Serial.print("lat : "); Serial.println(flat);<br/>  Serial.print("long: "); Serial.println(flong);<br/>}<br/><br/>#define pdec(x) { Serial.print(x,DEC); }<br/>#define p(x) { Serial.print(x); }<br/>#define s() p(" ")<br/>#define d() p("-")<br/>#define c() p(":")<br/>void dump_datetime() {<br/>  int year;<br/>  byte month, day, hour, minutes, second, hundredths;<br/>  unsigned long fix_age;<br/>  gps.crack_datetime(&amp;year, &amp;month, &amp;day, &amp;hour, &amp;minutes, &amp;second, &amp;hundredths, &amp;fix_age);<br/>  pdec(year); d(); pdec(month); d(); pdec(day);<br/>  s();<br/>  pdec(hour); c(); pdec(minutes); c(); pdec(second); p("."); pdec(hundredths);<br/>  Serial.println();<br/>}<br/><br/>void loop() {<br/>  float flat, flon;<br/>  unsigned long fix_age;<br/>  String msg;<br/>  byte havedata = 1;<br/>  byte polled = 0;<br/>  while (serial_gps.available() &amp;&amp; !polled) {<br/>    if(gps.encode(serial_gps.read())) {<br/>      // returns +- latitude/longitude in degrees<br/>      gps.f_get_position(&amp;flat, &amp;flon, &amp;fix_age);<br/>      if (fix_age == TinyGPS::GPS_INVALID_AGE) {<br/>        msg = "No fix detected";<br/>        havedata = 0;<br/>      } else if (fix_age &gt; 5000)<br/>        msg = "Warning: possible stale data!";<br/>      else<br/>        msg = "Data is current.";<br/>      polled = 1;<br/>      if (Serial.available() &amp;&amp; Serial.read() == 'p') {<br/>        Serial.println(msg);<br/>        if (havedata) {<br/>          dump_datetime();<br/>          dump_lat_long(flat,flon);<br/>        }<br/>        delay(100);<br/>      }<br/>    }<br/>  }<br/>}<br/></pre><br/><p>I also wrote a small Perl script that (via <tt>Device::SerialPort</tt> from CPAN) interrogates the Arduino every 5 seconds or so, using a USB-attached Xbee Explorer.  For Linux you will need to change the serial port device filename to <tt>/dev/ttyS0</tt> or similar. No idea about Windows, sorry.  Again, I started out with some sample code (this time from the Device::SerialPort distribution) and hacked most of it off. Code follows:</p><br/><pre>#!/usr/bin/perl<br/><br/>use strict;<br/>use warnings;<br/>use Device::SerialPort;<br/><br/>my $file = "/dev/tty.usbserial-A700fbpg";<br/>my $ob = Device::SerialPort-&gt;new ($file) || die "Can't open $file: $!";<br/><br/>$ob-&gt;baudrate(9600)     || die "fail setting baudrate";<br/>$ob-&gt;parity("none")     || die "fail setting parity";<br/>$ob-&gt;databits(8)        || die "fail setting databits";<br/>$ob-&gt;stopbits(1)        || die "fail setting stopbits";<br/>$ob-&gt;handshake("none")  || die "fail setting handshake";<br/>$ob-&gt;write_settings || die "no settings";<br/>$ob-&gt;error_msg(1);              # use built-in error messages<br/>$ob-&gt;user_msg(1);<br/><br/>while(1) {<br/>  $ob-&gt;write("p");<br/>  print $ob-&gt;input;<br/>  sleep 5;<br/>}<br/></pre><p/><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/4023878807110224913-2084205723335791232?l=indigoid.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2011-09-25T13:58:53Z</updated>
    <published>2011-09-25T13:45:00Z</published>
    <author>
      <name>indigoid</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/13767305461631761203</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-4023878807110224913</id>
      <author>
        <name>indigoid</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/13767305461631761203</uri>
      </author>
      <link href="http://indigoid.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://indigoid.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>no place like home</title>
      <updated>2012-03-17T21:50:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-4023878807110224913.post-3210926526807241124</id>
    <link href="http://indigoid.blogspot.com/feeds/3210926526807241124/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://indigoid.blogspot.com/2011/09/and-if-your-xbee-shield-is-behaving.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default/3210926526807241124" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default/3210926526807241124" rel="self" type="application/atom+xml"/>
    <link href="http://indigoid.blogspot.com/2011/09/and-if-your-xbee-shield-is-behaving.html" rel="alternate" type="text/html"/>
    <title>And if your Xbee shield is behaving strangely...</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>If you are combining the CAN-Bus and Xbee shields from <a href="http://www.sparkfun.com">SparkFun</a>, it can be very tempting to plonk the EM406 GPS atop the nice flat prototyping area on the Xbee shield. It's a good fit there! But if stuff suddenly and inexplicably stops working, check that the GPS chassis isn't bridging the terminals on the Xbee shield's RESET switch. I felt like a real idiot :-(</p><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/4023878807110224913-3210926526807241124?l=indigoid.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2011-09-25T13:57:58Z</updated>
    <published>2011-09-25T13:57:00Z</published>
    <author>
      <name>indigoid</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/13767305461631761203</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-4023878807110224913</id>
      <author>
        <name>indigoid</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/13767305461631761203</uri>
      </author>
      <link href="http://indigoid.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://indigoid.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>no place like home</title>
      <updated>2012-03-17T21:50:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-4023878807110224913.post-7690826755074591837</id>
    <link href="http://indigoid.blogspot.com/feeds/7690826755074591837/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://indigoid.blogspot.com/2011/09/stairwell-sensor-light-arduino.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default/7690826755074591837" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default/7690826755074591837" rel="self" type="application/atom+xml"/>
    <link href="http://indigoid.blogspot.com/2011/09/stairwell-sensor-light-arduino.html" rel="alternate" type="text/html"/>
    <title>stairwell sensor light: Arduino!</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>So I wanted a small light at the bottom of the short set of stairs that lead from the door of my apartment into the main living area. I've been learning about <a href="http://www.arduino.cc/">Arduino</a> lately, so I figured this might be a practical experiment.  I decided to use a reed switch to sense when the door had been opened.</p> <p>After getting frustrated at the reed switch functioning just fine when closed (Arduino <tt>digitalRead()</tt> returning <tt>HIGH</tt>) but bouncing around randomly when it should have been staying open, I did some Googling and found that I should have used a pullup resistor to coax the current in the right direction.  I don't pretend to understand why this works, but I intend to find out.</p> <p>Anyway, I used a circuit based very much on <a href="http://arduino.cc/en/Tutorial/DigitalReadSerial">this one</a>, plus of course an RGB LED to do the actual lighting.  The next step is to grab a couple more RGB LEDs (I only had one on hand that had been supplied in the <a href="http://www.sparkfun.com/products/10173">Sparkfun Inventors Kit</a>) and make it brighter.</p> <p>Learning about and experimenting with Arduino has been a lot of fun so far. Am working on a larger project for the bike. Along the way I've dramatically improved my soldering skills, though they are still pretty terrible!</p> <pre><br/>#include &lt;Time.h&gt;<br/><br/>// pins<br/>const int reedswitch = 2;<br/>const int red = 9;<br/>const int green = 10;<br/>const int blue = 11;<br/><br/>// door states<br/>const int DOOR_OPEN = 0;<br/>const int DOOR_CLOSED = 1;<br/><br/>// minimum time the courtesy light will stay on for (seconds)<br/>const int MIN_OPENTIME = 10;<br/><br/>///////////////////////////////////////////<br/><br/>int door = DOOR_CLOSED;<br/>int last_open_at = 0;<br/><br/>void setup() {<br/>  pinMode(reedswitch, INPUT);<br/>  setTime(0);<br/>}<br/><br/>void rgbled(int r, int g, int b) {<br/>  analogWrite(red,r);<br/>  analogWrite(green,g);<br/>  analogWrite(blue,b);<br/>}<br/><br/>void loop() {<br/>  int reedswitch_state = digitalRead(reedswitch);<br/>  if (reedswitch_state == HIGH &amp;&amp; now() &gt;= last_open_at + MIN_OPENTIME) {<br/>    door = DOOR_CLOSED;<br/>  } else if (reedswitch_state == LOW) {<br/>    last_open_at = now();<br/>    door = DOOR_OPEN;<br/>  } else {<br/>    // no change in state, do nothing<br/>  }<br/>  if (door == DOOR_OPEN) {<br/>    rgbled(255,255,255);<br/>  } else {<br/>    rgbled(0,0,0);<br/>  }<br/>  delay(500);<br/>}<br/></pre><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/4023878807110224913-7690826755074591837?l=indigoid.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2011-09-12T10:41:39Z</updated>
    <published>2011-09-12T10:41:00Z</published>
    <author>
      <name>indigoid</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/13767305461631761203</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-4023878807110224913</id>
      <author>
        <name>indigoid</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/13767305461631761203</uri>
      </author>
      <link href="http://indigoid.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://indigoid.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>no place like home</title>
      <updated>2012-03-17T21:50:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.neuromesh.net/?p=1742</id>
    <link href="http://www.neuromesh.net/new-song-i-defy/" rel="alternate" type="text/html"/>
    <title>New song, I Defy</title>
    <summary>Did you think I was dead?  No I’ve just been busy playing my guitar.  I have several songs on the boil at the moment, but this one is complete.  It has random 5/4 timings and a four part guitar harmony bit.  Also, it’s strong and grrr yeah!  Listen to I Defy</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Did you think I was dead?  No I’ve just been busy playing my guitar.  I have several songs on the boil at the moment, but this one is complete.  It has random 5/4 timings and a four part guitar harmony bit.  Also, it’s strong and grrr yeah!  <a href="http://www.thedeathofme.com/songs.php?sid=10">Listen to I Defy</a></p></div>
    </content>
    <updated>2011-09-09T11:03:52Z</updated>
    <category term="Music"/>
    <author>
      <name>Jase</name>
    </author>
    <source>
      <id>http://www.neuromesh.net</id>
      <link href="http://www.neuromesh.net/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.neuromesh.net" rel="alternate" type="text/html"/>
      <subtitle>Bitten by an eclectic eel...</subtitle>
      <title>Neuromesh</title>
      <updated>2012-03-07T14:01:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.mibus.org/?p=1441</id>
    <link href="http://www.mibus.org/2011/09/09/linux-conf-au-1/" rel="alternate" type="text/html"/>
    <title>Linux.Conf.Au – +1!</title>
    <summary>Just got this email...: We're pleased to announce that your proposal(s) has/have been ACCEPTED for LCA2012. &lt;SNIP&gt; --- IPv6 Dynamic Reverse Mapping - the magic, misery and mayhem --- So - wow! I'll see you there :)</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Just got this email...:</p>
<pre>We're pleased to announce that your proposal(s) has/have been ACCEPTED for LCA2012.

&lt;SNIP&gt;

---
 IPv6 Dynamic Reverse Mapping - the magic, misery and mayhem
---
</pre>
<p>So - wow! I'll see you there :)</p></div>
    </content>
    <updated>2011-09-09T02:40:23Z</updated>
    <category term="Uncategorized"/>
    <category term="dns"/>
    <category term="ipv6"/>
    <category term="sysadmin"/>
    <author>
      <name>mibus</name>
    </author>
    <source>
      <id>http://www.mibus.org</id>
      <link href="http://www.mibus.org/tag/sysadmin/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://www.mibus.org" rel="alternate" type="text/html"/>
      <subtitle>geek refuge</subtitle>
      <title>mibus.org » sysadmin</title>
      <updated>2012-05-16T14:01:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.mavetju.org/weblog/00336@http://www.mavetju.org/weblog/</id>
    <link href="http://www.mavetju.org/weblog/html/00336.html" rel="alternate" type="text/html"/>
    <title>iPhone dock bar</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
The iPhone home screen has four icons stuck at the bottom of the
screen. For the last year I had there Safari, Mail, Phone and
Facebook.

</p><p>
Yesterday I swapped Facebook for Podcaster, which I have been using
more frequent in the last four months.

</p><p>
Facebook is for people who are bored.<br/>
Podcasts are for people who want to learn!

</p></div>
    </summary>
    <updated>2011-09-07T22:00:00Z</updated>
    <category term="iPhone"/>
    <category term="Happiness"/>
    <source>
      <id>http://www.mavetju.org/weblog/</id>
      <author>
        <name>Edwin Groothuis</name>
        <email>weblog@mavetju.org</email>
      </author>
      <link href="http://www.mavetju.org/weblog/" rel="alternate" type="text/html"/>
      <link href="http://www.mavetju.org/weblog/index.xml" rel="self" type="application/atom+xml"/>
      <subtitle>MavEtJu's Distorted View of the World</subtitle>
      <title>MavEtJu's Distorted View of the World</title>
      <updated>2012-04-22T01:22:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.mavetju.org/weblog/00335@http://www.mavetju.org/weblog/</id>
    <link href="http://www.mavetju.org/weblog/html/00335.html" rel="alternate" type="text/html"/>
    <title>Morrison Gedicht - Twee</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><pre>ik wou dat ik een oma had
die ik soms zomaar op mocht bellen
en die 's avonds bij m'n bedje zat
om mij een sprookje te vertellen

maar oma's hebben allemaal al iemand
voor wie ze oma kunnen zijn
ze zitten dan wel in tehuizen
maar elke zondag is het kamertje te klein

dan komen ze allemaal op visite
en vragen of ze een zwaantje vouwt
en als ze 's avonds moe gaat slapen
weet ze dat er iemand is die van haar houdt

hoe zou het dan toch komen
dat heel veel oma's eenzaam zijn
en van hun kleine kinderen dromen
die nu veel groter en verhinderd zijn

al die oma's die truien breien
waarvan niemand zegt: wat fijn!
die hoeven me dat truitje niet te geven
maar willen ze alstjeblieft mijn oma zijn?

Morrison
</pre></div>
    </summary>
    <updated>2011-08-04T06:00:01Z</updated>
    <category term="Happiness"/>
    <category term="Memories"/>
    <category term="Weeshuis van de Hits"/>
    <source>
      <id>http://www.mavetju.org/weblog/</id>
      <author>
        <name>Edwin Groothuis</name>
        <email>weblog@mavetju.org</email>
      </author>
      <link href="http://www.mavetju.org/weblog/" rel="alternate" type="text/html"/>
      <link href="http://www.mavetju.org/weblog/index.xml" rel="self" type="application/atom+xml"/>
      <subtitle>MavEtJu's Distorted View of the World</subtitle>
      <title>MavEtJu's Distorted View of the World</title>
      <updated>2012-04-22T01:22:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.mavetju.org/weblog/00334@http://www.mavetju.org/weblog/</id>
    <link href="http://www.mavetju.org/weblog/html/00334.html" rel="alternate" type="text/html"/>
    <title>Morrison Gedicht - Een</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><pre>het is al bijna avond
wat gaat zo'n dag toch gauw
ik klim zo in mijn bedje
en dan
denk ik weer aan jou

dan lig ik stil te luisteren
naar de geluiden om me heen
dan hoor ik
zoemen tikken fluisteren
want ik lig hier niet alleen!

soms vertel ik mijn avonturen
aan Tiberius
da's een bromvlieg
en die woont op het kozijn
dan snort ie heel tevreden
want als er iemand tegen 'm praat
dat vindt Tiberius hartstikke fijn

vandaag ook Ricky nog gesproken
die woont bij de kersenboom
het is een soort van rups
maar hij wil later vlinder worden
net als zijn vader en moeder
en zijn tante en z'n oom

zelf wil ik
als ik later groot word
proberen klein te blijven
omdat Tiberius en Ricky anders
bang voor me zijn

dan blijf ik ook dichter bij
de bloemen
en zal ik altijd
gelukkig zijn

Morrison
</pre></div>
    </summary>
    <updated>2011-08-04T06:00:00Z</updated>
    <category term="Happiness"/>
    <category term="Memories"/>
    <category term="Weeshuis van de Hits"/>
    <source>
      <id>http://www.mavetju.org/weblog/</id>
      <author>
        <name>Edwin Groothuis</name>
        <email>weblog@mavetju.org</email>
      </author>
      <link href="http://www.mavetju.org/weblog/" rel="alternate" type="text/html"/>
      <link href="http://www.mavetju.org/weblog/index.xml" rel="self" type="application/atom+xml"/>
      <subtitle>MavEtJu's Distorted View of the World</subtitle>
      <title>MavEtJu's Distorted View of the World</title>
      <updated>2012-04-22T01:22:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.bluebottle.net.au/blog/?p=780</id>
    <link href="http://alex.jurkiewi.cz/blog/2011/non-interactive-database-migration-of-kayako-3-to-4" rel="alternate" type="text/html"/>
    <title>Non-interactive database migration of Kayako 3 to 4</title>
    <summary>The Kayako 3 -&gt; 4 upgrade process is a little convoluted. You have to install a fresh copy of 4, then run a script to import your Kayako 3 data. For large installs you need to run the script multiple times to fully migrate your database, which is a problem because the script interactively asks [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The Kayako 3 -&gt; 4 upgrade process is a little convoluted. You have to install a fresh copy of 4, <a href="http://wiki.kayako.com/display/DOCS/Importing+your+data+from+Kayako+3+to+Kayako+4#ImportingyourdatafromKayako3toKayako4-Commandlineinterface">then run a script to import your Kayako 3 data</a>. For large installs you need to run the script multiple times to fully migrate your database, which is a problem because the script interactively asks  for your database credentials every time it's run. You don't really want to babysit the multi-hour migration process do you? Fear not, just patch the code:</p>

<div class="wp_syntax"><div class="code"><pre class="diff" style="font-family: monospace;">--- __swift/modules/base/console/class.Controller_Import.php.orig    <span style="">2011</span>-06-<span style="">16</span> <span style="">12</span>:09:<span style="">40.000000000</span> +<span style="">1000</span>
<span style="color: #888822;">+++ __swift/modules/base/console/class.Controller_Import.php    <span style="">2011</span>-06-<span style="">16</span> <span style="">12</span>:<span style="">11</span>:<span style="">06.000000000</span> +1000</span>
<span style="color: #440088;">@@ -<span style="">75</span>,<span style="">12</span> +<span style="">75</span>,<span style="">12</span> @@</span>
        $this-&gt;Console-&gt;WriteLine<span style="">(</span>'====================', false, SWIFT_Console::COLOR_GREEN<span style="">)</span>;
        $this-&gt;Console-&gt;WriteLine<span style="">(</span><span style="">)</span>;
 
<span style="color: #991111;">-       $_databaseHost = $this-&gt;Console-&gt;Prompt<span style="">(</span>'Database Host:'<span style="">)</span>;</span>
<span style="color: #991111;">-       $_databaseName = $this-&gt;Console-&gt;Prompt<span style="">(</span>'Database Name:'<span style="">)</span>;</span>
<span style="color: #991111;">-       $_databasePort = $this-&gt;Console-&gt;Prompt<span style="">(</span>'Database Port <span style="">(</span>enter for default port<span style="">)</span>:'<span style="">)</span>;</span>
<span style="color: #991111;">-       $_databaseSocket = $this-&gt;Console-&gt;Prompt<span style="">(</span>'Database Socket <span style="">(</span>enter for default socket<span style="">)</span>:'<span style="">)</span>;</span>
<span style="color: #991111;">-       $_databaseUsername = $this-&gt;Console-&gt;Prompt<span style="">(</span>'Database Username:'<span style="">)</span>;</span>
<span style="color: #991111;">-       $_databasePassword = $this-&gt;Console-&gt;Prompt<span style="">(</span>'Database Password:'<span style="">)</span>;</span>
<span style="color: #00b000;">+       $_databaseHost = 'localhost';</span>
<span style="color: #00b000;">+       $_databaseName = 'kayako3database';</span>
<span style="color: #00b000;">+       $_databasePort = '<span style="">3306</span>';</span>
<span style="color: #00b000;">+       $_databaseSocket = '';</span>
<span style="color: #00b000;">+       $_databaseUsername = 'kayako3user';</span>
<span style="color: #00b000;">+       $_databasePassword = 'sekret';</span>
 
        if <span style="">(</span>empty<span style="">(</span>$_databasePort<span style="">)</span><span style="">)</span>
        <span style="">{</span></pre></div></div>

<p>This post brought to you by too long spent trying to automate this with an expect script, before discovery of the fact Kayako don't encode <i>all</i> their PHP.</p></div>
    </content>
    <updated>2011-06-17T02:21:37Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Alex Jurkiewicz</name>
    </author>
    <source>
      <id>http://alex.jurkiewi.cz/blog</id>
      <link href="http://alex.jurkiewi.cz/blog/feed" rel="self" type="application/atom+xml"/>
      <link href="http://alex.jurkiewi.cz/blog" rel="alternate" type="text/html"/>
      <title>Alex Jurkiewicz's technical blog</title>
      <updated>2012-05-17T03:01:14Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.mavetju.org/weblog/00333@http://www.mavetju.org/weblog/</id>
    <link href="http://www.mavetju.org/weblog/html/00333.html" rel="alternate" type="text/html"/>
    <title>My mallet finger - Wednesday 15 June 2011</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Last week it was decided that my mallet finger had to be fixed via
an operation during which I will get two wires inserted into my
finger: One below the nail which will push the broken piece back
against the bone, and one through the upper bone and halfway the
middle bone so that bone doesn't move anymore.

</p><p>
Today was the big day. We had to be in the hospital at 08:30, which
is about half an hour before Dirkie and Hanorah go to school. So
they slept with their grandparents and were very excited about the
fact that they got breakfast in a plastic bag in the car on their
way to school. I wish everybody was so easily pleaseble.

</p><p>
When you made the appointment to go to the hospital, you know from
the moment you enter the building you have lost control over your
life until you leave you are on somebody elses schedule. It will
involve a lot of waiting, and there is nothing you can do about it:

</p><ul>
<li>Waiting at reception to go to the waiting area for day surgery.
</li><li>Waiting at the waiting area for day surgery to go to the beds at day surgery.
</li><li>Waiting at the beds at day surgery to go to the pre-operation room.
</li><li>Waiting at the pre-operation room to go to the operation waiting room.
</li><li>Waiting at the operation waiting room to go into the operation room.
</li><li>No waiting here, because this operation room is expensive!
</li><li>Waiting at the operation room to go into the recovery room.
</li><li>Waiting at the recovery room to go to the day surgery.
</li><li>Waiting at the day surgery to get out.
</li></ul>

<p/><p>
Before you get in the operation room, you will be asked the same
question every time: Your name, date of birth, name of the doctor
and what they are going to do on you. Just to make sure they have
the right guy in front of them.

</p><p>
The procedure done on my finger was over in 20 minutes. The anastetic
I got was a finger block, two needles in my hand which neutralized
all feeling in the ring finger, and some drowsiness stuff which I
think didn't really work at all. During the operation I could hear
the drill, but not feel the things they did on my finger.

</p><p>
At 14:30, after the operation and when I was out of bed, I was given
an arm sling to keep my hand up and a prescription for painkillers.
Six hours real-time for a 20 minutes procedure, it's very low
duty-cycle.

</p><p>
<a href="http://www.mavetju.org/weblog/images/IMG_1643.JPG"><img src="http://www.mavetju.org/weblog/images/IMG_1643-small.JPG"/></a>
The finger itself now has a splint at the top of the hand and a lot
of bandage around it. You can see the wire sticking out at the top
of my finger, which is right now not scary yet...

</p><p>
I was told to take the painkillers when my fingers started to tingle,
which was a couple of hours later. Since the pain didn't come back
after that, I didn't take anymore and slept through the night. 

</p><p>
So is there pain? Yes and no.

</p><p>
There is irritated skin (for lack of a better description) around
where the wires are sticking out.  But there is no pain because of
the drilling, which can be either because there is no pain or because
the nerves in my pink and ring finger there are numb: For the last
four years I haven't had any feeling in them. I have seen a specialist
for it who has done the famous frog tests which will pull your
muscles when an electrical current is going through them and they
didn't find anything wrong with the nerves there.

</p><p>
Maybe that has gotten me through the night without painkillers,
maybe there was no pain to start with...

</p><p>
On Monday I have my first physiotherapy at 08:00.

</p></div>
    </summary>
    <updated>2011-06-15T06:00:00Z</updated>
    <category term="My mallet finger"/>
    <source>
      <id>http://www.mavetju.org/weblog/</id>
      <author>
        <name>Edwin Groothuis</name>
        <email>weblog@mavetju.org</email>
      </author>
      <link href="http://www.mavetju.org/weblog/" rel="alternate" type="text/html"/>
      <link href="http://www.mavetju.org/weblog/index.xml" rel="self" type="application/atom+xml"/>
      <subtitle>MavEtJu's Distorted View of the World</subtitle>
      <title>MavEtJu's Distorted View of the World</title>
      <updated>2012-04-22T01:22:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.mavetju.org/weblog/00332@http://www.mavetju.org/weblog/</id>
    <link href="http://www.mavetju.org/weblog/html/00332.html" rel="alternate" type="text/html"/>
    <title>My mallet finger - Thursday 9 June 2011</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
We went to see the hand-surgeon. From the X-rays he saw that the
break was at a nasty location: it was broken of in the contact area
of the joint. First a proper cast instead if the splint and then
new X-rays in case the piece of bone was put back in place by the
cast: it wasn't.

</p><p>
So the next options were: leave it like this and it will be half-fine
or have an operation and it will be fully fine. There are two kind
of operations which he could do: a screw with which the broken piece
get puts back or a two-wire approach with which the broken piece
gets pushed against the bone and regrows that way. Because of the
size of the piece broken off we chose for the wire.

</p><p>
After the operation I will have two pieces of wire sticking out of
my finger for four to six weeks, but they are luckily under a
dressing, and have a cask for that period too. After that everything
should be back in volleyball-playing-condition again!

<br/>
<a href="http://www.mavetju.org/weblog/images/small cast.jpg"><img src="http://www.mavetju.org/weblog/images/small cast - small.jpg"/></a>
<a href="http://www.mavetju.org/weblog/images/xray - 2.jpg"><img src="http://www.mavetju.org/weblog/images/xray - 2 - small.jpg"/></a>

</p><p>
Next update: Coming Wednesday most likely.

</p></div>
    </summary>
    <updated>2011-06-09T06:00:00Z</updated>
    <category term="My mallet finger"/>
    <source>
      <id>http://www.mavetju.org/weblog/</id>
      <author>
        <name>Edwin Groothuis</name>
        <email>weblog@mavetju.org</email>
      </author>
      <link href="http://www.mavetju.org/weblog/" rel="alternate" type="text/html"/>
      <link href="http://www.mavetju.org/weblog/index.xml" rel="self" type="application/atom+xml"/>
      <subtitle>MavEtJu's Distorted View of the World</subtitle>
      <title>MavEtJu's Distorted View of the World</title>
      <updated>2012-04-22T01:22:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.bluebottle.net.au/blog/?p=756</id>
    <link href="http://alex.jurkiewi.cz/blog/2011/backslash-in-username-or-cwd-breaks-bash-shell" rel="alternate" type="text/html"/>
    <title>Backslash in username or CWD breaks Bash prompt in Centos</title>
    <summary>Something I just ran in to. If your username or current directory has an escape code in it (say, because your username is from Active Directory like "DOMAIN\alex.jurkiewicz"), the default Bash shell on Centos 5 has problems. Depending on the escape code you might get a broken prompt or even no terminal output at all!
The [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Something I just ran in to. If your username or current directory has an escape code in it (say, because your username is from Active Directory like "DOMAIN\alex.jurkiewicz"), the default Bash shell on Centos 5 has problems. Depending on the escape code you might get a broken prompt or even no terminal output at all!</p>
<p>The problem is that <code>PROMPT_COMMAND</code> set in <code>/etc/bashrc</code> is set to interpret escape codes in the username and current directory:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family: monospace;"><span style="color: #007800;">PROMPT_COMMAND</span>=<span style="color: #ff0000;">'echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}\007"'</span></pre></div></div>

<p>PROMPT_COMMAND is run each time before the prompt is printed. Here it is used to set the xterm or GNU screen window title.</p>
<p>There are two ways to fix this:</p>
<ol>
<li>Add '<code>unset PROMPT_COMMAND</code>' to your .bashrc. This will stop your xterm / screen title from being updated but is a simple fix.</li>
<li>Set <code>PROMPT_COMMAND</code> properly using override files in /etc/sysconfig, so <code>$USER</code> and <code>$PWD</code> are echoed literally without escape code interpretation. Create the following two files with +x permissions:</li>
</ol>
<p style="padding-left: 30px;"><code>/etc/sysconfig/bash-prompt-xterm</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family: monospace;"><span style="color: #666666; font-style: italic;"># Duplicate of default PROMPT_COMMAND, but using a single command to stop race conditions and without escape code interpretation for USER, HOSTNAME and PWD</span>
<span style="color: #7a0874; font-weight: bold;">printf</span> <span style="color: #ff0000;">"\033]0;%s@%s:%s\007"</span> <span style="color: #ff0000;">"<span style="color: #007800;">${USER}</span>"</span> <span style="color: #ff0000;">"<span style="color: #007800;">${HOSTNAME%%.*}</span>"</span> <span style="color: #ff0000;">"<span style="color: #007800;">${PWD/#$HOME/~}</span>"</span></pre></div></div>

<p style="padding-left: 30px;"><code>/etc/sysconfig/bash-prompt-screen</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family: monospace;"><span style="color: #666666; font-style: italic;"># Duplicate of default PROMPT_COMMAND, but using a single command to stop race conditions and without escape code interpretation for USER, HOSTNAME and PWD</span>
<span style="color: #7a0874; font-weight: bold;">printf</span> <span style="color: #ff0000;">"\033_%s@%s:%s\033\<span style="color: #000099; font-weight: bold;">\"</span> "</span><span style="color: #800000;">${USER}</span><span style="color: #ff0000;">" "</span><span style="color: #800000;">${HOSTNAME%%.*}</span><span style="color: #ff0000;">" "</span><span style="color: #800000;">${PWD/#$HOME/~}</span><span style="color: #ff0000;">"</span></pre></div></div>

<p>(The printf statement was taken from <a href="https://bugzilla.redhat.com/show_bug.cgi?id=620408">this RH bug</a>.)</p>
<p>Logging out and back in again should result in a fixed terminal.</p></div>
    </content>
    <updated>2011-05-18T02:09:21Z</updated>
    <category term="FreeBSD"/>
    <category term="Linux"/>
    <author>
      <name>Alex Jurkiewicz</name>
    </author>
    <source>
      <id>http://alex.jurkiewi.cz/blog</id>
      <link href="http://alex.jurkiewi.cz/blog/feed" rel="self" type="application/atom+xml"/>
      <link href="http://alex.jurkiewi.cz/blog" rel="alternate" type="text/html"/>
      <title>Alex Jurkiewicz's technical blog</title>
      <updated>2012-05-17T03:01:14Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://davehall.com.au/154 at http://davehall.com.au</id>
    <link href="http://davehall.com.au/blog/dave/2011/05/17/drush-make-and-module-dependencies" rel="alternate" type="text/html"/>
    <title>Drush Make and Module Dependencies</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://drupal.org/project/drush_make">Drush make</a> is a wonderful tool for constructing Drupal platforms.  A lot of Drupal developers are  used to adding a list of modules, a few libraries and theme or 2 then running drush make to build their platform.  It all seems pretty easy.  What if I told you module developers could make things even easier for site builders?</p>
<p>Some contrib modules depend on third party libraries, and due to various reasons they can't always be stored in git repositories on drupal.org and included in the module release.  To solve this problem module developers can include a .make file for their module.  Drush recursively processes make files, so the module make file would be processed once found by drush make.</p>
<p>A good example of where this could be useful is the <a href="http://drupal.org/project/smtp">SMTP module</a>, which depends on the LGPL licensed <a href="http://phpmailer.worxware.com/">PHPMailer</a> library.  The module also requires a patch to be applied to the library, which drush make can apply for us.   The following .make file could be included in the SMTP module as smtp.make:</p>
<div class="file">
<pre>core = 6.x
api = 2

libraries[phpmailer][download][type] = "get"
libraries[phpmailer][download][url] = "http://downloads.sourceforge.net/project/phpmailer/phpmailer%20for%20php5_6/Previous%20Versions/2.2.1/phpMailer_v2.2.1_.tar.gz"
libraries[phpmailer][download][md5] = "0bf75c1bcef8bde6adbebcdc69f1a02d"
libraries[phpmailer][directory_name] = "phpmailer"
libraries[phpmailer][destination] = "modules/contrib/smtp"

libraries[phpmailer][patch][drupal-compatibility][url] = "http://drupalcode.org/project/smtp.git/blob_plain/2acaba97adcad7304c22624ceeb009d358b596e3:/class.phpmailer.php.2.2.1.patch"
libraries[phpmailer][patch][drupal-compatibility][md5] = "2d82de03b1a4b60f3b69cc20fae61b76"
</pre>
</div>
<p>Now when the SMTP module is included a normal drush make file it will be downloaded, the PHPMailer library will be downloaded and patched ready for use.</p>
<p>Unfortunately there are some limitations to this approach.  Firstly it assumes that the SMTP module will be installed under the modules/contrib directory, which is accepted best practice, but may not suit everyone's needs.  When I tested this with the current stable version of drush make (6.x-2.2) it failed, and drush make 6.x-3.x from git needed to be <a href="http://drupal.org/node/1091510#comment-4470800">patched</a>.  Hopefully a fix for this can be backported to the 6.x-2.x branch and included in a future release.</p>
<p><strong>Update:</strong> I have posted the make file for the SMTP module as patch in <a href="http://drupal.org/node/1159080">issue #1159080</a>.</p></div>
    </summary>
    <updated>2011-05-16T14:38:47Z</updated>
    <category scheme="http://davehall.com.au/tags/config-management" term="config-management"/>
    <category scheme="http://davehall.com.au/tags/drupal" term="drupal"/>
    <category scheme="http://davehall.com.au/tags/drush" term="drush"/>
    <author>
      <name>Dave</name>
    </author>
    <source>
      <id>http://davehall.com.au/blog</id>
      <link href="http://davehall.com.au/blog" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/DaveHallConsultingBlogs" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Dave Hall Consulting blogs</title>
      <updated>2012-02-06T14:01:19Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://davehall.com.au/153 at http://davehall.com.au</id>
    <link href="http://davehall.com.au/blog/dave/2011/04/02/fixing-zimbras-broken-debs" rel="alternate" type="text/html"/>
    <title>Fixing Zimbra's Broken debs</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>As much as I love <a href="http://zimbra.com" rel="nofollow">Zimbra</a>, I find their Debian packaging frustrating.  Why do they insist on shipping half broken debs?  I can excuse vmware for being too lazy to provide proper descriptions for their packages, although the generic "Best email money can buy" text seems a little lame.  Failing to populate the "Provides" field is brain dead.  This makes it possible to install mailx on a server running Zimbra without installing another MTA.</p>
<p>I've created a simple workaround deb which provides mail-transport-agent and depends on zimbra-mta.  The deb also symlinks the zimbra sendmail binary to /usr/sbin/sendmail - where it belongs.  Now mailx and other tools which depend on mail-transport-agent can be installed.  The package should work with both Debian and Ubuntu.</p>
<p>The <a href="https://github.com/skwashd/zimbra-dummy-mta" rel="nofollow">source available on github</a>, or you can <a href="https://github.com/skwashd/zimbra-dummy-mta/archives/master" rel="nofollow">download a prebuilt platform independent deb from github's download manager</a>.  The package is released under the terms of the <a href="http://sam.zoy.org/wtfpl/" rel="nofollow">WTFPLv2</a>.</p>
<p>I hope that Zimbra builds better debs and makes this package obsolete.</p></div>
    </summary>
    <updated>2011-04-02T04:55:48Z</updated>
    <category scheme="http://davehall.com.au/tags/debian" term="debian"/>
    <category scheme="http://davehall.com.au/tags/packaging" term="packaging"/>
    <category scheme="http://davehall.com.au/tags/ubuntu" term="ubuntu"/>
    <category scheme="http://davehall.com.au/tags/zimbra" term="zimbra"/>
    <author>
      <name>Dave</name>
    </author>
    <source>
      <id>http://davehall.com.au/blog</id>
      <link href="http://davehall.com.au/blog" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/DaveHallConsultingBlogs" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Dave Hall Consulting blogs</title>
      <updated>2012-02-06T14:01:19Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://davehall.com.au/152 at http://davehall.com.au</id>
    <link href="http://davehall.com.au/blog/dave/2011/02/05/help-drupal-geek-earn-his-way-drupalcon-chicago" rel="alternate" type="text/html"/>
    <title>Help a Drupal Geek Earn his Way to DrupalCon Chicago</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I really want to attend <a href="http://chicago2011.drupal.org" rel="nofollow">DrupalCon Chicago</a>, which kicks off in just over 4 weeks.  The problem is that since <a href="http://cph2010.drupal.org" rel="nofollow">DrupalCon Copenhagen</a> business has been pretty quiet and so I find that I can't really afford to fund it myself.  After deciding I had to be in Chicago I got creative about how to make it happen.  The <a href="http://buyaline.drupalgardens.com" rel="nofollow">buy a line project</a> was born.</p>
<p>Instead of just asking people to kick in some cash to get me to Chicago, I felt it was only right to earn my keep.  People can buy a line of code, or sentence of documentation for Drupal.  All code and docs created will be contributed to drupal.org.  Buyers are free to specify where the lines are to be contributed, or leave me to decide.  I'm looking forward to writing some of the lines on the <a href="http://groups.drupal.org/node/120989" rel="nofollow">Drupal Bus</a>.</p>
<p>Recently I have been working on <a href="http://drupal.org/node/1005138" rel="nofollow">porting the UUID module to Drupal 7</a>.  I hope to get this module into  Drupal 8 core.  To make this happen I have to be in Chicago!  Improvements to UUID will mean that content can be packaged up and moved around like configuration can be using the <a href="http://drupal.org/project/features" rel="nofollow">Features module</a>.</p>
<p>All buy a line issues will be <a href="http://drupal.org/search/issues?issue_tags=buyaline" rel="nofollow">tagged</a> so people can watch my progress.  The <a href="http://drupal.org/node/937864" rel="nofollow">first lines of code have been contributed</a> to the getID3() module, so Drupal Commons can be installed by Aegir.</p>
<p>Thanks to <a href="http://buyaline.drupalgardens.com/supporters" rel="nofollow">everyone who has contributed</a> so far.  I have almost covered the DrupalCon ticket I bought from the <a href="http://gizra.com" rel="nofollow">Gizra</a> team.</p>
<p>Please consider <a href="http://buyaline.drupalgardens.com/contribute" rel="nofollow">buying a line (or more)</a> to help get this Drupal geek to Chicago. This is a great way of getting a module ported to Drupal 7, better documentation or even just a bug fixed.  I have a decent <a href="http://drupal.org/user/116305/track" rel="nofollow">track record</a> of contributing to the project.</p>
<p>When deciding how <a href="http://buyaline.drupalgardens.com/contribute" rel="nofollow">many lines to buy</a>, think about this - if I don't make it to Chicago, <a href="https://twitter.com/skwashd/status/22094928684" rel="nofollow">who will lock themselves out of their hotel room at 4am - naked</a>!</p></div>
    </summary>
    <updated>2011-02-05T11:25:37Z</updated>
    <category scheme="http://davehall.com.au/tags/buyaline" term="buyaline"/>
    <category scheme="http://davehall.com.au/tags/drupal" term="drupal"/>
    <category scheme="http://davehall.com.au/tags/drupalbus" term="drupalbus"/>
    <category scheme="http://davehall.com.au/tags/drupalcon" term="drupalcon"/>
    <author>
      <name>Dave</name>
    </author>
    <source>
      <id>http://davehall.com.au/blog</id>
      <link href="http://davehall.com.au/blog" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/DaveHallConsultingBlogs" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Dave Hall Consulting blogs</title>
      <updated>2012-02-06T14:01:19Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://davehall.com.au/151 at http://davehall.com.au</id>
    <link href="http://davehall.com.au/blog/dave/2011/01/26/looking-back-drupal-downunder" rel="alternate" type="text/html"/>
    <title>Looking Back at Drupal Downunder</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I spent the weekend at <a href="http://drupaldownunder.org" rel="nofollow">Drupal Downunder</a> in Brisbane.  The <a href="http://centralbardon.com.au/" rel="nofollow">venue</a> was excellent.  I'm a fan of not using "traditional" venues for conferences, to help make them even more memorable for attendees.</p>
<p>I managed to catch up with a bunch of people.  The relaxed feel about the event was great.  Most conferences I've attended recently have either been large or I've helped organise them, this time I could relax and enjoy.</p>
<p>On the Saturday I presented <a href="http://drupaldownunder.org/session/building-distributions-drupal-7" rel="nofollow">Building Distributions with Drupal 7</a>, which had a small turn out as I was up against <a href="http://drupaldownunder.org/session/session-josh-koenig" rel="nofollow">Josh Koenig and his Pantheon presentation</a>.  My presentation was hampered by lack of internet connectivity, but I think it went well.  I used Lego, Duplo and Quatro blocks to demonstrate the evolution of Drupal distros.</p>
<p>Saturday night involved a pub crawl with various DDU and LCA folks.  The highlight of the crawl was the <a href="http://www.manabar.com.au/" rel="nofollow">Mana Bar</a>, which is a gamers bar, that has a good collection of retro consoles and games on display.</p>
<p>I spent a fair bit of Sunday in the hallway track.  I discussed the D7 port of UUID with Dries, which helped confirm the direction I was heading with it.  Several people wanted to discuss my <a href="http://davehall.com.au/tags/100-drupal-site" rel="nofollow">$100 Drupal site blog series</a>.  I also gave my <a href="http://drupaldownunder.org/session/horizontally-scaling-drupal" rel="nofollow">Horizontally Scaling Drupal</a> presentation, which was very well attended.  Unfortunately due to people torrenting there was no usable internet access for my presentation.  I had to skip the post event BBQ so I could fly back to Melbourne.</p>
<p>The lack of mobile signal and wifi made it frustrating to prepare and present.  I would have liked to have seen an inclusive social event organised on the Saturday night.  Overall I really enjoyed DDU and the organisers are to be congratulated.  The vegetarian food options were excellent.</p>
<p>Thanks for <a href="http://fourkitchens.com" rel="nofollow">Four Kitchens</a> for funding me to get to DDU.  I have just started contracting with them, so I really appreciated them covering my trip.</p></div>
    </summary>
    <updated>2011-01-26T07:52:08Z</updated>
    <category scheme="http://davehall.com.au/tags/ddu2011" term="ddu2011"/>
    <category scheme="http://davehall.com.au/tags/drupal" term="drupal"/>
    <author>
      <name>Dave</name>
    </author>
    <source>
      <id>http://davehall.com.au/blog</id>
      <link href="http://davehall.com.au/blog" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/DaveHallConsultingBlogs" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Dave Hall Consulting blogs</title>
      <updated>2012-02-06T14:01:19Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://matt.bottrell.com.au/archives/384-guid.html</id>
    <link href="http://matt.bottrell.com.au/archives/384-A-fathers-poem-to-his-unborn-child.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"/>
    <title>A fathers poem to his unborn child</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I sit down now to pen this note,<br/>
Of how I feel, and of love denote.<br/>
For in a few weeks you shall appear,<br/>
A fulfilment of love sincere.<br/>
<br/>
I look forward to cradling you in my arm,<br/>
Able to protect you from any harm.<br/>
A tender kiss and soothing word,<br/>
A gentle stroke, nurtured.<br/>
<br/>
As you grow from baby to child,<br/>
Learning from experiences you have compiled.<br/>
Always remember I am close by,<br/>
A guiding hand you can rely.<br/>
<br/>
I look forward to many an embrace,<br/>
My arms open when you need their place.<br/>
My knee is yours for a horsey ride,<br/>
My ears listening to your story side.<br/>
<br/>
As you migrate from child to adult,<br/>
Remember I am here to consult,<br/>
I promise to be there until I die,<br/>
For you are the apple of my eye.</div>
    </content>
    <updated>2011-01-10T07:19:42Z</updated>
    <category term="Family"/>
    <category term="Opinion"/>
    <category term="birth"/>
    <category term="child"/>
    <category term="children"/>
    <category term="family"/>
    <category term="life"/>
    <category term="love"/>
    <category term="matt"/>
    <category term="opinion"/>
    <category term="wonderment"/>
    <author>
      <name>Matt</name>
      <email>mbottrell@gmail.com</email>
    </author>
    <source>
      <id>http://matt.bottrell.com.au/</id>
      <logo>http://matt.bottrell.com.au/templates/default/img/s9y_banner_small.png</logo>
      <link href="http://matt.bottrell.com.au/" rel="alternate" type="text/html"/>
      <link href="http://matt.bottrell.com.au/feeds/index.rss2" rel="self" type="application/rss+xml"/>
      <subtitle>A blog about Linux, Life and the 'Net</subtitle>
      <title>Bend in the Weather</title>
      <updated>2011-01-10T08:12:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-4023878807110224913.post-7416287937950019196</id>
    <link href="http://indigoid.blogspot.com/feeds/7416287937950019196/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://indigoid.blogspot.com/2010/12/k1200gt-tyre-pressure-adjustment.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default/7416287937950019196" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default/7416287937950019196" rel="self" type="application/atom+xml"/>
    <link href="http://indigoid.blogspot.com/2010/12/k1200gt-tyre-pressure-adjustment.html" rel="alternate" type="text/html"/>
    <title>K1200GT tyre pressure adjustment technique</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Note that this probably also works with other BMW models with the tyre pressure monitoring (RDC) option fitted, but I have only tried it on my K1200GT.</p> <p>If you need to adjust your tyre pressures and you don't have a tyre pressure gauge with you:</p> <ol><li>ride the bike until the dash starts displaying the pressures</li><li>stop the bike and then stop the engine, <em>without touching the key in the ignition</em>. Use the kill-switch</li><li>adjust pressures, noting that as you do so, the dash display changes</li><li>ride the bike :-)</li></ol> <p>This may be obvious to people smarter than me.  RDC is a wonderful feature to have.</p><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/4023878807110224913-7416287937950019196?l=indigoid.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2010-12-27T13:47:12Z</updated>
    <published>2010-12-27T13:46:00Z</published>
    <author>
      <name>indigoid</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/13767305461631761203</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-4023878807110224913</id>
      <author>
        <name>indigoid</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/13767305461631761203</uri>
      </author>
      <link href="http://indigoid.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://indigoid.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>no place like home</title>
      <updated>2012-03-17T21:50:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-4023878807110224913.post-6867985949064244604</id>
    <link href="http://indigoid.blogspot.com/feeds/6867985949064244604/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://indigoid.blogspot.com/2010/12/end-of-year-roundup.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default/6867985949064244604" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default/6867985949064244604" rel="self" type="application/atom+xml"/>
    <link href="http://indigoid.blogspot.com/2010/12/end-of-year-roundup.html" rel="alternate" type="text/html"/>
    <title>End of year roundup</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>A quick blog post to wrap up 2010...</p> <p><strong>Work:</strong> Happy, challenged, excited. No serious complaints. Learning about AIX and Puppet, and of course Linux sysadmin continues to be my main role. Looking forward to the <a href="http://www.sage-au.org.au/">SAGE-AU</a> conference in Melbourne, in September 2011. Didn't take as much time off as I should have, but riding my bike to and from Hobart for the 2010 SAGE-AU conference was extremely satisfying and gave me a good chance to be out of the office and clear my head.</p> <p><strong>Not-work:</strong> In May I started living and working in Sydney full-time. Have been appreciating commuting by train. I ditched my Nokia E71 for an iPhone 3GS and am loving it; it has been the single most satisfying tech purchase I have ever made. Haven't spent as much time in the gym as I should have, but this sorry state of affairs will not continue. I haven't spent nearly as much quality time with <a href="http://twitter.com/#%21/NarnieBelle">Anna</a> as I'd like (we do live in different cities, after all), but I am hoping that this can improve in 2011.</p> <p><strong>Motorcycling, overall:</strong> I put about equal kilometres on the Dakar and K1200GT this year, and in total, rather fewer than last year. I don't have an odometer figure for the K-bike as of January 1 this year, but I do for the Dakar. A combined total of about 35000km, I think. The K1200GT odometer currently reads 51610km, and the Dakar odometer tells a very similar tale. My BMW Roadside Assistance subscription proved worthwhile as I achieved four punctured tyres in three months of riding.</p> <p><strong>K1200GT:</strong> This year saw a lot of warranty repair work on the K-bike, mostly at the time of the 40000km service, where it was at the dealer for a month or more. It now has a K1300 gearbox and clutch, and this does appear to be a bit better than the old units, but still not nearly as good as your average Japanese bike, such as a friend's Blackbird that I had the significant pleasure of borrowing.</p> <p><strong>F650GS Dakar:</strong> 2010 saw this bike back on the road after a bit of a hiatus, and I still have a deep, abiding love for it, especially the delightful little Rotax engine. 40000 and 50000km services were done, and I with the aforementioned Blackbird owner's help, I finished the <a href="http://www.pro-oiler.com/">Pro-Oiler</a> install. The bike still needs more work, though, needing new chain/sprockets, new tyres and (for the second time) new steering head bearings. Michelin's perennial supply problems caused me to get Pirelli's gimmicky new Angel ST tyres instead of my usual Pilot Road2, and this was a mistake that I won't repeat.</p> <p><strong>Projects:</strong> In 2010 I acquired a Honda XL250 K0 (early 1970s model) and the other day I also acquired (Free! Thanks, Norm!) a Honda CT110 "postie" bike. The XL250 has a long road ahead, as I'd like to fully restore it. The CT110 on the other hand I would like to have registered and ridable as soon as possible. I don't think it will cost very much at all to get there. Job #1 is to transport it to my Sydney garage from its current location.</p><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/4023878807110224913-6867985949064244604?l=indigoid.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2010-12-27T11:28:57Z</updated>
    <published>2010-12-27T11:26:00Z</published>
    <author>
      <name>indigoid</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/13767305461631761203</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-4023878807110224913</id>
      <author>
        <name>indigoid</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/13767305461631761203</uri>
      </author>
      <link href="http://indigoid.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://indigoid.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/4023878807110224913/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>no place like home</title>
      <updated>2012-03-17T21:50:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.bluebottle.net.au/blog/?p=670</id>
    <link href="http://alex.jurkiewi.cz/blog/2010/splashid-sucks" rel="alternate" type="text/html"/>
    <title>SplashID Sucks</title>
    <summary>After an evaluation of SplashID (made by SplashData) as a new password manager for my workplace I've come to the conclusion it's snake oil rather than secure. And not just snake oil, but poorly designed snake oil. Here's why.
The architecture of SplashID is simple. The backend is a plain MySQL database. The user interface is [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>After an evaluation of SplashID (made by SplashData) as a new password manager for my workplace I've come to the conclusion it's snake oil rather than secure. And not just snake oil, but poorly designed snake oil. Here's why.</p>
<p>The architecture of SplashID is simple. The backend is a plain MySQL database. The user interface is SplashID's app, available on Windows and Mac. When you start your client and log in, it communicates directly in MySQL-speak to the database backend. The connection to MySQL is SSLified (yay!), although bizzarely SplashData call this encryption "IPSec". Not having an actual server process between the clients and database is an unusual design, but it's possible to build something secure this way so we press on.</p>
<p>In SplashID's world, each user's access credentials are made up of three parts. Since each user has a MySQL account, the first two are a username and password. The third part is a "master password". What's a master password? I'm glad you asked. You see, every cell of data in the SplashID database is encrypted <em>with the same key</em>. (Encrypted with AES-256 <em>and</em> Blowfish. Why use two ciphers? Why not!) The encryption key is, of course, the "master password". Because all data is encrypted with this key, every user has to have access to it. Most programs do this by storing the "master password" in the database, one copy per user, encrypted with that user's password. Unlike these programs, SplashID just makes every user remember piece of secret information. Why SplashID does this is another mystery, and a strike against them for poor UI design.</p>
<p style="text-align: center;"><img alt="" class="aligncenter size-full wp-image-682" height="306" src="http://static.bluebottle.net.au/blog/wp-content/uploads/2010/08/splashid-logon.png" title="I heard you like passwords so I put a password in your password in your login form" width="366"/></p>
<p>Let's investigate this "every user is a MySQL user" concept. I've created a limited user for myself in SplashID with no access to any passwords. The Splash client app obviously lets me see nothing, but how about a generic MySQL client?</p>
<p>Inappropriate syntax highlighting turn on!</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family: monospace;">$ mysql <span style="color: #CC0099;">-</span>u user1 <span style="color: #CC0099;">-</span>p <span style="color: #CC0099;">-</span>h splashtest
Enter <span style="color: #000099;">password</span>:
Welcome <span style="color: #990099; font-weight: bold;">to</span> the MySQL monitor.  Commands <span style="color: #009900;">end</span> <span style="color: #990099; font-weight: bold;">with</span> <span style="color: #000033;">;</span> <span style="color: #CC0099; font-weight: bold;">or</span> \g.
Your MySQL <span style="color: #FF9900; font-weight: bold;">connection</span> id <span style="color: #CC0099; font-weight: bold;">is</span> <span style="color: #008080;">92</span> <span style="color: #990099; font-weight: bold;">to</span> server <span style="color: #000099;">version</span>: 5.1.47<span style="color: #CC0099;">-</span>community
 
<span style="color: #990099; font-weight: bold;">Type</span> <span style="color: #008000;">'help;'</span> <span style="color: #CC0099; font-weight: bold;">or</span> <span style="color: #008000;">'<span style="color: #004000; font-weight: bold;">\h</span>'</span> for <span style="color: #990099; font-weight: bold;">help</span>. <span style="color: #990099; font-weight: bold;">Type</span> <span style="color: #008000;">'<span style="color: #004000; font-weight: bold;">\c</span>'</span> <span style="color: #990099; font-weight: bold;">to</span> clear the <span style="color: #00CC00;">buffer</span>.
mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #990099; font-weight: bold;">show</span> <span style="color: #990099; font-weight: bold;">databases</span><span style="color: #000033;">;</span>
<span style="color: #CC0099;">+--------------------+</span>
<span style="color: #CC0099;">|</span> <span style="color: #990099; font-weight: bold;">Database</span>           <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">+--------------------+</span>
<span style="color: #CC0099;">|</span> information_schema <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> mysql              <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> splashiddb         <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">+--------------------+</span>
<span style="color: #008080;">3</span> rows <span style="color: #990099; font-weight: bold;">in</span> <span style="color: #990099; font-weight: bold;">set</span> <span style="color: #FF00FF;">(</span><span style="color: #008080;">0.02</span> sec<span style="color: #FF00FF;">)</span>
 
mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #990099; font-weight: bold;">use</span> splashiddb<span style="color: #000033;">;</span>
Reading <span style="color: #990099; font-weight: bold;">table</span> information for completion of <span style="color: #990099; font-weight: bold;">table</span> <span style="color: #CC0099; font-weight: bold;">and</span> <span style="color: #990099; font-weight: bold;">column</span> names
You can turn off this feature <span style="color: #990099; font-weight: bold;">to</span> get a quicker startup <span style="color: #990099; font-weight: bold;">with</span> <span style="color: #CC0099;">-</span>A
 
<span style="color: #990099; font-weight: bold;">Database</span> changed
mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #990099; font-weight: bold;">show</span> <span style="color: #990099; font-weight: bold;">tables</span><span style="color: #000033;">;</span>
<span style="color: #CC0099;">+-----------------------+</span>
<span style="color: #CC0099;">|</span> Tables_in_splashiddb  <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">+-----------------------+</span>
<span style="color: #CC0099;">|</span> apppreftable          <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> attachmenttable       <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> columninfotable       <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> customicontable       <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> customtypetable       <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> databaseinfotable     <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> eventloggertable      <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> groupsubgrouptable    <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> grouptable            <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> mostviewedtable       <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> recentlyaddedtable    <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> recentlymodifiedtable <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> recentlyviewedtable   <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> recordtable           <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> typetable             <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> usergrouptable        <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">|</span> usertable             <span style="color: #CC0099;">|</span>
<span style="color: #CC0099;">+-----------------------+</span>
<span style="color: #008080;">17</span> rows <span style="color: #990099; font-weight: bold;">in</span> <span style="color: #990099; font-weight: bold;">set</span> <span style="color: #FF00FF;">(</span><span style="color: #008080;">0.02</span> sec<span style="color: #FF00FF;">)</span></pre></div></div>

<p>It looks like there's only one table that all passwords are stored in. MySQL doesn't offer per-row access controls, but surely I can't view <em>every</em> password in the database with my limited user???</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family: monospace;">mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #990099; font-weight: bold;">select</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">from</span> recordtable\G
<span style="color: #CC0099;">***************************</span> <span style="color: #008080;">1.</span> row <span style="color: #CC0099;">***************************</span>
RECORDID: 1F6642A0C892BC76
TYPEUID: <span style="color: #008080;">0000000000000013</span>
GROUPUID: 1F66429EC892BBDB
FIELD1: <span style="color: #CC0099;">&lt;</span>blob<span style="color: #CC0099;">&gt;</span>
FIELD2: <span style="color: #CC0099;">&lt;</span>blob<span style="color: #CC0099;">&gt;</span>
FIELD3: 
FIELD4: 
FIELD5:
FIELD6:
FIELD7:
FIELD8:
FIELD9: <span style="color: #CC0099;">&lt;</span>blob<span style="color: #CC0099;">&gt;</span> 
FIELD10: <span style="color: #CC0099;">&lt;</span>blob<span style="color: #CC0099;">&gt;</span>
NOTE:
HASATTACHMENT: <span style="color: #008080;">0</span>
HASCUSTOMFIELD: <span style="color: #008080;">0</span>
VIEWCOUNT: <span style="color: #008080;">6</span>
<span style="color: #CC0099;">***************************</span> <span style="color: #008080;">2.</span> row <span style="color: #CC0099;">***************************</span>
<span style="color: #FF00FF;">[</span>snip<span style="color: #FF00FF;">]</span>
<span style="color: #008080;">10</span> rows <span style="color: #990099; font-weight: bold;">in</span> <span style="color: #990099; font-weight: bold;">set</span> <span style="color: #FF00FF;">(</span><span style="color: #008080;">0.03</span> sec<span style="color: #FF00FF;">)</span></pre></div></div>

<p>Oh dear. Oh dear oh dear.</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family: monospace;">mysql<span style="color: #CC0099;">&gt;</span> Bye</pre></div></div>

<p>So there you go. Every user in SplashID, no matter how limited, can view every password in the database, all encrypted with a key they know. Another strike against SplashID. They need a miracle now.</p>
<p>And hark! Here comes the explanation from SplashData. I emailed them specifically regarding my findings, wanting to make sure this wasn't some huge mistake. I asked:</p>
<blockquote><p>...every cell is encrypted using the same process, right? From that it follows that if a user can decrypt one cell, they can decrypt every cell. The only protection is that your encryption routine is not published. Or am I missing something?</p></blockquote>
<p>The reply:</p>
<blockquote><p>That’s right Alex.</p>
<p>That’s why I mentioned-<br/>
&gt; Actually, they don't use the same key. AES key is a hash function of the<br/>
&gt; Blowfish key. I'm sorry I cannot give you more details on the algorithms we use.</p>
<p>So, if the user knows the Blowfish key, it is not enough. They still need to decrypt using SplashID Enterprise application.</p></blockquote>
<p>Even though every user can download the entire encrypted database, even though the master password decryption routine is stored in the client side application, it's all fine because <em>nobody</em> has ever reverse engineered an application to extract a single hash function before! In the end, the previous security missteps hardly matter compared to this blunder. All it will take is one enterprising security researcher or blackhat to figure it out and put their findings on the web, and suddenly every password in every SplashID install is wide open for the taking by its users.</p>
<p>We won't be using SplashID at my workplace, and my advice to you, dear reader, is to avoid them too.</p></div>
    </content>
    <updated>2010-08-22T01:12:21Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Alex Jurkiewicz</name>
    </author>
    <source>
      <id>http://alex.jurkiewi.cz/blog</id>
      <link href="http://alex.jurkiewi.cz/blog/feed" rel="self" type="application/atom+xml"/>
      <link href="http://alex.jurkiewi.cz/blog" rel="alternate" type="text/html"/>
      <title>Alex Jurkiewicz's technical blog</title>
      <updated>2012-05-17T03:01:14Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://matt.bottrell.com.au/archives/383-guid.html</id>
    <link href="http://matt.bottrell.com.au/archives/383-When-customer-profiling-and-targeted-advertising-goes-wrong.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"/>
    <title>When customer profiling and targeted advertising goes wrong</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Don't get me wrong...  I love a bargain as much as the next guy or girl.<br/>
 <br/>
What I don't like however is when a computer system is implemented with little regard and isn't actively checked by a human.<br/>
It's one way to make your company look like a jack-ass.<br/>
 <br/>
Sorry Woolworths - you've landed yourself in such a category.<br/>
 <br/>
Most Australian supermarket shoppers are aware of the fuel discounts offered by Coles and Woolworths, which can slice anything from $0.03 - $0.20 per litre of the cost of your fuel.   Something that's always welcome by motorists.<br/>
 <br/>
It's the only reason I have an everyday rewards card.   Fuel discounts add up over time, even more so for myself, as I drive with LPG the majority of the time, so $0.20 off per litre on LPG is quite substantial.<br/>
 <br/>
During the months of April and May Woolies decided that for 8 weeks straight I would like to buy wine.  I'm not talking 1 bottle either.  Most 'deals' require a purchase of 6 or more bottles in a given purchase.<br/>
 <br/>
A sample of the Email contents is included below:<br/>
<div align="centre&quot;" class="s9y_typeset s9y_typeset_center" style="text-align: center; margin: 0px auto 0px auto;"><img align="center" alt="Sample Email from Woolworths" src="http://matt.bottrell.com.au/uploads/Woolies.gif"/></div><br/>
To be honest, I love a good drop of red.   Probably more so than the average punter.  (We normally have a few dozen on hand in the house).   At the end of March I had let our stocks go down over a period of time so had restocked.   This seems to have triggered their rewards system to pester me for the next 8 weeks straight.  No fuel offers (which was the main selling point of the card), nor any other offer... just grog.<br/>
 <br/>
At 6 bottles minimum per Email over 8 weeks, anyone reading my Email from Woolworths, would think I'm an alcoholic!   <br/>
<div align="centre&quot;" class="s9y_typeset s9y_typeset_center" style="text-align: center; margin: 0px auto 0px auto;"><img align="center" alt="Email listing from Woolworths" src="http://matt.bottrell.com.au/uploads/Woolies-Email.gif"/></div><br/>
The crazy thing...  It backfired.<br/>
I didn't buy any wine during that period.  (As I had just restocked my levels.)  This form of marketing happens 'after the fact', and as such it fails.    If I have already made a bulk purchase, why would I wish to repeat it shortly after, and every week for a period of 8 weeks?<br/>
 <br/>
Woolworths reward system needs looking at.   (As does Coles for that matter).     It would be more beneficial to flag such bulk purchases of your customers, then look at sending it out 'specials' say every 3,6 or 12 months...  you're likely to have a bigger uptake.   I can't see my car dealership sending out a "buy a brand new car" Emails if I had just taken delivery of a new vehicle.<br/>
 <br/>
Certainly for everyday staples, it would be nice to have these filter through regularly.     However don't see these, like 25% off either Meat, Fruit or Vegies for a week.  It seems to be items like Coca-Cola, Alcohol and other non-essentials.  I'm not surprised though... the supermarkets know we need staples.. and are trying to increase our trolley sizes by teasing us into buying these non-basic item.<br/>
 <br/>
Certainly I do hope that Woolworths and Coles both learn that their average shopper has the intelligence above that of a broken trolley wheel, as the current marketing strategies to date are quite insulting.</div>
    </content>
    <updated>2010-07-25T00:10:00Z</updated>
    <category term="Apps"/>
    <category term="Coding"/>
    <category term="Opinion"/>
    <category term="Society"/>
    <category term="advertising"/>
    <category term="apps"/>
    <category term="coding"/>
    <category term="email"/>
    <category term="failure"/>
    <category term="matt"/>
    <category term="opinion"/>
    <category term="shopping"/>
    <category term="society"/>
    <category term="wine"/>
    <author>
      <name>Matt</name>
      <email>mbottrell@gmail.com</email>
    </author>
    <source>
      <id>http://matt.bottrell.com.au/</id>
      <logo>http://matt.bottrell.com.au/templates/default/img/s9y_banner_small.png</logo>
      <link href="http://matt.bottrell.com.au/" rel="alternate" type="text/html"/>
      <link href="http://matt.bottrell.com.au/feeds/index.rss2" rel="self" type="application/rss+xml"/>
      <subtitle>A blog about Linux, Life and the 'Net</subtitle>
      <title>Bend in the Weather</title>
      <updated>2011-01-10T08:12:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.bluebottle.net.au/blog/?p=603</id>
    <link href="http://alex.jurkiewi.cz/blog/2010/wordpresss-wp-super-caches-super-cache-with-nginx" rel="alternate" type="text/html"/>
    <title>Wordpress's WP-Super-Cache's Super Cache with nginx</title>
    <summary>(Apologies for the triple-layer title, but it's a specific subject involving a badly named plugin.)
This has been explained before (the progenitor for most other examples on the net seems to be this forum post), but the solution was ugly and slightly incomplete. nginx's lack of a one-line RewriteCond equivalent means there will never be an [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>(Apologies for the triple-layer title, but it's a specific subject involving a badly named plugin.)</p>
<p>This has been explained before (the progenitor for most other examples on the net seems to be <a href="http://forum.slicehost.com/comments.php?DiscussionID=2087">this forum post</a>), but the solution was ugly and slightly incomplete. nginx's lack of a one-line RewriteCond equivalent means there will never be an elegant solution, but I think I've come up with something clearer.</p>
<p>First, background. WP Super Cache has two levels of caching:</p>
<ol>
<li>"WP Cache". Whenever Wordpress's index.php renders a page, a copy of the page output is stored in <code>/blog/wp-content/cache</code> (and the <code>meta</code> subfolder). For future requests for the same page, this cached copy is served by <code>index.php</code>. The good: subsequent requests don't hit the database or re-run your badly coded widgets for every visitor. The bad: PHP still runs for every request.</li>
<li>"Super Cache". As well as a copy of page output being stored as per above, a copy is also stored in <code>/blog/wp-content/supercache</code>, in a structure that mirrors your blog's URL hierarchy. With clever use of rewrite rules at your webserver layer, you can entirely skip loading PHP &amp; Wordpress for any request that a cached file has been created for.</li>
</ol>
<p>The WP Cache layer always works. The rest of this post is about making use of the Super Cached files with your shiny nginx server. For reference, the Apache rules are <a href="http://wordpress.org/extend/plugins/wp-super-cache/installation/">here</a>. This nginx code follows the same order and structure, but has some differences. Read:</p>
<pre>location /blog {
    gzip_static on;</pre>
<p><em>Aside: gzip_static requires an nginx configured with <code>--with-http_gzip_static_module</code>. If your build isn't, and you don't want to compile your own, just remove this directive. Instead of serving pre-compressed Super Cache files to clients that support compression, nginx will compress them on the fly (like normal).</em></p>
<pre>    set $supercache "";
    if ($request_method = GET) {
        set $supercache "${supercache}G";
    }
    if ($args = "") {
        set $supercache "${supercache}A";
    }
    if ($http_cookie !~ (comment_author_|wordpress_logged_in|wp-postpass_)) {
        set $supercache "${supercache}C";
    }
    if (-f $document_root/blog/wp-content/cache/supercache/$http_host$request_uri/index.html) {
        set $supercache "${supercache}F";
    }
    # If we met all the conditions, serve the supercached file
    if ($supercache = GACF) {
        rewrite ^ /blog/wp-content/cache/supercache/$http_host$request_uri/index.html break;
    }
    # Otherwise pass to wordpress as normal
    if (!-e $request_filename) {
        rewrite ^ /blog/index.php last;
    }
}

# The cache files should not be directly accessible to clients
location /blog/wp-content/cache { internal; }

# Configure the PHP backend as per normal
location ~ (\.php$) {
    include fastcgi_params;
    if (-e $request_filename) {
        fastcgi_pass unix:/tmp/nginx-php-fastcgi.sock;
    }
}</pre>
<p>Done! If you have problems, three pointers:</p>
<ol>
<li>WP Super Cache has a very big settings page. You can set them as you like mostly, but make sure you set <a href="http://img.bluebottle.net.au/blog/wp-content/uploads/2010/05/wp-super-cache-1.png">this</a> and <a href="http://img.bluebottle.net.au/blog/wp-content/uploads/2010/05/wp-super-cache-2.png">this</a> (if you're using gzip_static).</li>
<li>Check the bottom of the source of your pages to see if a page was server from the cache, and if so, whether it was served from the Super Cache.</li>
<li>If you need to troubleshoot, make liberal use of the logging facility that WP Super Cache implements.</li>
</ol></div>
    </content>
    <updated>2010-05-11T16:53:59Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Alex Jurkiewicz</name>
    </author>
    <source>
      <id>http://alex.jurkiewi.cz/blog</id>
      <link href="http://alex.jurkiewi.cz/blog/feed" rel="self" type="application/atom+xml"/>
      <link href="http://alex.jurkiewi.cz/blog" rel="alternate" type="text/html"/>
      <title>Alex Jurkiewicz's technical blog</title>
      <updated>2012-05-17T03:01:14Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.bluebottle.net.au/blog/?p=536</id>
    <link href="http://alex.jurkiewi.cz/blog/2010/cross-compiling-x264-for-win32-on-ubuntu-linux" rel="alternate" type="text/html"/>
    <title>Cross-compiling x264 for win32 on Ubuntu Linux</title>
    <summary>The total lack of documentation on compiling x264 (and dependencies) for win32 on a linux32 system is henceforth rectified. This guide assumes you are using Ubuntu 9.10 and the packaged version of mingw32. Newer versions of the below packages might require additional/less wrangling.
Required packages in the base system:

sudo apt-get install pkg-config yasm subversion cvs git-core [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The total lack of documentation on compiling x264 (and dependencies) for win32 on a linux32 system is henceforth rectified. This guide assumes you are using Ubuntu 9.10 and the packaged version of mingw32. Newer versions of the below packages might require additional/less wrangling.</p>
<p>Required packages in the base system:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> pkg-config yasm subversion <span style="color: #c20cb9; font-weight: bold;">cvs</span> git-core mingw32</pre></div></div>

<p>Create the basic tree for installing win32-compatible dependancies to:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> ~<span style="color: #000000; font-weight: bold;">/</span>win32-x264<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">{</span>src,lib,include,share,bin<span style="color: #7a0874; font-weight: bold;">}</span></pre></div></div>

<p>Place this helper script at ~/win32-x264/mingw and chmod +x it:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family: monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">CC</span>=i586-mingw32msvc-gcc
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">CXX</span>=i586-mingw32msvc-g++
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">CPP</span>=i586-mingw32msvc-cpp
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">AR</span>=i586-mingw32msvc-ar
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">RANLIB</span>=i586-mingw32msvc-ranlib
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">ADD2LINE</span>=i586-mingw32msvc-addr2line
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">AS</span>=i586-mingw32msvc-as
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">LD</span>=i586-mingw32msvc-ld
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">NM</span>=i586-mingw32msvc-nm
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">STRIP</span>=i586-mingw32msvc-strip
 
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #ff0000;">"/usr/i586-mingw32msvc/bin:<span style="color: #007800;">$PATH</span>"</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PKG_CONFIG_PATH</span>=<span style="color: #ff0000;">"<span style="color: #007800;">$HOME</span>/win32-x264/lib/pkgconfig/"</span>
<span style="color: #7a0874; font-weight: bold;">exec</span> <span style="color: #ff0000;">"$@"</span></pre></div></div>

<p>Now to install pthread &amp; zlib:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family: monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>win32-x264<span style="color: #000000; font-weight: bold;">/</span>src
<span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-qO</span> - <span style="color: #c20cb9; font-weight: bold;">ftp</span>:<span style="color: #000000; font-weight: bold;">//</span>sourceware.org<span style="color: #000000; font-weight: bold;">/</span>pub<span style="color: #000000; font-weight: bold;">/</span>pthreads-win32<span style="color: #000000; font-weight: bold;">/</span>pthreads-w32-<span style="color: #000000;">2</span>-<span style="color: #000000;">8</span>-<span style="color: #000000;">0</span>-release.tar.gz <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">tar</span> xzvf -
<span style="color: #7a0874; font-weight: bold;">cd</span> pthreads-w32-<span style="color: #000000;">2</span>-<span style="color: #000000;">8</span>-<span style="color: #000000;">0</span>-release
<span style="color: #c20cb9; font-weight: bold;">make</span> GC-static <span style="color: #007800;">CROSS</span>=i586-mingw32msvc-
<span style="color: #c20cb9; font-weight: bold;">cp</span> libpthreadGC2.a ..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>lib
<span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #000000; font-weight: bold;">*</span>.h ..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>include</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family: monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>win32-x264<span style="color: #000000; font-weight: bold;">/</span>src
<span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-qO</span> - http:<span style="color: #000000; font-weight: bold;">//</span>zlib.net<span style="color: #000000; font-weight: bold;">/</span>zlib-1.2.4.tar.gz <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">tar</span> xzvf -
<span style="color: #7a0874; font-weight: bold;">cd</span> zlib-1.2.4
..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>mingw .<span style="color: #000000; font-weight: bold;">/</span>configure
<span style="color: #666666; font-style: italic;"># Remove references to "-lc" from the Makefile (tells GCC to link output with libc, which is implied anyway, and explicit declaration causes a script error)</span>
<span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-i</span><span style="color: #ff0000;">""</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'s/-lc//'</span> Makefile
<span style="color: #c20cb9; font-weight: bold;">make</span>
<span style="color: #007800;">DESTDIR</span>=..<span style="color: #000000; font-weight: bold;">/</span>.. <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span> <span style="color: #007800;">prefix</span>=</pre></div></div>

<p>Installing FFmpeg:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family: monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>win32-x264<span style="color: #000000; font-weight: bold;">/</span>src
<span style="color: #c20cb9; font-weight: bold;">svn</span> checkout <span style="color: #c20cb9; font-weight: bold;">svn</span>:<span style="color: #000000; font-weight: bold;">//</span>svn.ffmpeg.org<span style="color: #000000; font-weight: bold;">/</span>ffmpeg<span style="color: #000000; font-weight: bold;">/</span>trunk <span style="color: #c20cb9; font-weight: bold;">ffmpeg</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #c20cb9; font-weight: bold;">ffmpeg</span>
<span style="color: #666666; font-style: italic;"># Delete references to -Wmissing-prototypes, a GCC warning that fails when cross-compiling</span>
<span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-i</span><span style="color: #ff0000;">""</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'/missing-prototypes/d'</span> configure
.<span style="color: #000000; font-weight: bold;">/</span>configure \
    <span style="color: #660033;">--target-os</span>=mingw32 <span style="color: #660033;">--cross-prefix</span>=i586-mingw32msvc- <span style="color: #660033;">--arch</span>=x86 <span style="color: #660033;">--prefix</span>=..<span style="color: #000000; font-weight: bold;">/</span>.. \
    <span style="color: #660033;">--enable-memalign-hack</span> <span style="color: #660033;">--enable-gpl</span> <span style="color: #660033;">--enable-avisynth</span> <span style="color: #660033;">--enable-postproc</span> <span style="color: #660033;">--enable-runtime-cpudetect</span> \
    <span style="color: #660033;">--disable-encoders</span> <span style="color: #660033;">--disable-muxers</span> <span style="color: #660033;">--disable-network</span> <span style="color: #660033;">--disable-devices</span>
<span style="color: #c20cb9; font-weight: bold;">make</span>
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<p>Installing FFmpegsource:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family: monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>win32-x264<span style="color: #000000; font-weight: bold;">/</span>src
<span style="color: #c20cb9; font-weight: bold;">svn</span> checkout http:<span style="color: #000000; font-weight: bold;">//</span>ffmpegsource.googlecode.com<span style="color: #000000; font-weight: bold;">/</span>svn<span style="color: #000000; font-weight: bold;">/</span>trunk<span style="color: #000000; font-weight: bold;">/</span> ffms
<span style="color: #7a0874; font-weight: bold;">cd</span> ffms
..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>mingw .<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--host</span>=mingw32 <span style="color: #660033;">--with-zlib</span>=..<span style="color: #000000; font-weight: bold;">/</span>.. <span style="color: #660033;">--prefix</span>=<span style="color: #007800;">$HOME</span><span style="color: #000000; font-weight: bold;">/</span>win32-x264
..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>mingw <span style="color: #c20cb9; font-weight: bold;">make</span>
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<p>Installing GPAC:<br/>
Special thanks to the GPAC dev who kindly assisted me in beating the terrible configure/Makefile scripts into shape.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family: monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$HOME</span><span style="color: #000000; font-weight: bold;">/</span>win32-x264<span style="color: #000000; font-weight: bold;">/</span>src
<span style="color: #666666; font-style: italic;"># Create a CVS auth file on your machine</span>
<span style="color: #c20cb9; font-weight: bold;">cvs</span> -d:pserver:anonymous<span style="color: #000000; font-weight: bold;">@</span>gpac.cvs.sourceforge.net:<span style="color: #000000; font-weight: bold;">/</span>cvsroot<span style="color: #000000; font-weight: bold;">/</span>gpac <span style="color: #c20cb9; font-weight: bold;">login</span>
<span style="color: #c20cb9; font-weight: bold;">cvs</span> <span style="color: #660033;">-z3</span> -d:pserver:anonymous<span style="color: #000000; font-weight: bold;">@</span>gpac.cvs.sourceforge.net:<span style="color: #000000; font-weight: bold;">/</span>cvsroot<span style="color: #000000; font-weight: bold;">/</span>gpac <span style="color: #c20cb9; font-weight: bold;">co</span> <span style="color: #660033;">-P</span> gpac
<span style="color: #7a0874; font-weight: bold;">cd</span> gpac
<span style="color: #c20cb9; font-weight: bold;">chmod</span> +rwx configure src<span style="color: #000000; font-weight: bold;">/</span>Makefile
<span style="color: #666666; font-style: italic;"># Hardcode cross-prefix</span>
<span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-i</span><span style="color: #ff0000;">''</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'s/cross_prefix=""/cross_prefix="i586-mingw32msvc-"/'</span> configure
..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>mingw .<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--static</span> <span style="color: #660033;">--use-js</span>=no <span style="color: #660033;">--use-ft</span>=no <span style="color: #660033;">--use-jpeg</span>=no <span style="color: #660033;">--use-png</span>=no <span style="color: #660033;">--use-faad</span>=no <span style="color: #660033;">--use-mad</span>=no <span style="color: #660033;">--use-xvid</span>=no <span style="color: #660033;">--use-ffmpeg</span>=no <span style="color: #660033;">--use-ogg</span>=no <span style="color: #660033;">--use-vorbis</span>=no <span style="color: #660033;">--use-theora</span>=no <span style="color: #660033;">--use-openjpeg</span>=no <span style="color: #660033;">--disable-ssl</span> <span style="color: #660033;">--disable-opengl</span> <span style="color: #660033;">--disable-wx</span> <span style="color: #660033;">--disable-oss-audio</span> <span style="color: #660033;">--disable-x11-shm</span> <span style="color: #660033;">--disable-x11-xv</span> <span style="color: #660033;">--disable-fragments--use-a52</span>=no <span style="color: #660033;">--disable-xmlrpc</span> <span style="color: #660033;">--disable-dvb</span> <span style="color: #660033;">--disable-alsa</span> <span style="color: #660033;">--static-mp4box</span> <span style="color: #660033;">--extra-cflags</span>=<span style="color: #ff0000;">"-I<span style="color: #007800;">$HOME</span>/win32-x264/include -I/usr/i586-mingw32msvc/include"</span> <span style="color: #660033;">--extra-ldflags</span>=<span style="color: #ff0000;">"-L<span style="color: #007800;">$HOME</span>/win32-x264/lib -L/usr/i586-mingw32msvc/lib"</span>
<span style="color: #666666; font-style: italic;"># Fix pthread lib name</span>
<span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-i</span><span style="color: #ff0000;">""</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'s/pthread/pthreadGC2/'</span> config.mak
<span style="color: #666666; font-style: italic;"># Add extra libs that are required but not included</span>
<span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-i</span><span style="color: #ff0000;">""</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'s/-lpthreadGC2/-lpthreadGC2 -lwinmm -lwsock32 -lopengl32 -lglu32/'</span> config.mak
<span style="color: #c20cb9; font-weight: bold;">make</span>
<span style="color: #666666; font-style: italic;"># Make will fail a few commands after building libgpac_static.a (i586-mingw32msvc-ar cr ../bin/gcc/libgpac_static.a ...). That's fine, we just need libgpac_static.a</span>
<span style="color: #c20cb9; font-weight: bold;">cp</span> bin<span style="color: #000000; font-weight: bold;">/</span>gcc<span style="color: #000000; font-weight: bold;">/</span>libgpac_static.a ..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #660033;">-r</span> include<span style="color: #000000; font-weight: bold;">/</span>gpac ..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>include<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Building x264:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family: monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>win32-x264<span style="color: #000000; font-weight: bold;">/</span>src
git clone git:<span style="color: #000000; font-weight: bold;">//</span>git.videolan.org<span style="color: #000000; font-weight: bold;">/</span>x264.git
<span style="color: #7a0874; font-weight: bold;">cd</span> x264
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--cross-prefix</span>=i586-mingw32msvc- <span style="color: #660033;">--host</span>=i586-pc-mingw32 <span style="color: #660033;">--extra-cflags</span>=<span style="color: #ff0000;">"-I<span style="color: #007800;">$HOME</span>/win32-x264/include"</span> <span style="color: #660033;">--extra-ldflags</span>=<span style="color: #ff0000;">"-L<span style="color: #007800;">$HOME</span>/win32-x264/lib"</span>
<span style="color: #c20cb9; font-weight: bold;">make</span></pre></div></div>

<p>Leave to cool for 15 minutes. Serves four.</p>
<p>Changelog:</p>
<ul>
<li> 20100518: Updated ffmpeg configure args. ffms build needs mingw wrapper. Add cvs to required packages.</li>
</ul></div>
    </content>
    <updated>2010-03-29T13:58:00Z</updated>
    <category term="Uncategorized"/>
    <author>
      <name>Alex Jurkiewicz</name>
    </author>
    <source>
      <id>http://alex.jurkiewi.cz/blog</id>
      <link href="http://alex.jurkiewi.cz/blog/feed" rel="self" type="application/atom+xml"/>
      <link href="http://alex.jurkiewi.cz/blog" rel="alternate" type="text/html"/>
      <title>Alex Jurkiewicz's technical blog</title>
      <updated>2012-05-17T03:01:14Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://matt.bottrell.com.au/archives/382-guid.html</id>
    <link href="http://matt.bottrell.com.au/archives/382-Cant-beat-em,-join-em.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"/>
    <title>Can't beat 'em, join 'em</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Well I <a href="http://matt.bottrell.com.au/archives/380-Innocent-Farmville-hostage..html">ranted in my previous post</a> about being held hostage to <a href="http://www.farmville.com/">Farmville</a>.<br/>
<br/>
It was in jest and was poking my adorable wife....  <img alt=":-)" class="emoticon" src="http://matt.bottrell.com.au/templates/default/img/emoticons/smile.png" style="display: inline; vertical-align: bottom;"/> <br/>
<br/>
I bit the bullet in the end, and <a href="http://www.facebook.com/mattbottrell">finally joined Facebook</a> and even bloody Farmville.<br/>
There should be a law against that game, it's far too addictive.   <img alt=":-P" class="emoticon" src="http://matt.bottrell.com.au/templates/default/img/emoticons/tongue.png" style="display: inline; vertical-align: bottom;"/><br/>
<br/>
So dear reader, I'm still wiping egg off my face...  I held out for years and didn't see the point of it... but it looks like I've slipped and fell on it.<br/>
<br/>
Though, I gotta admit this whole FB think is great for keeping in touch with long lost friends.... it's really quite scarey.<br/>
Pity one can't always seem to shake those people you'd rather forget.   <img alt=":-|" class="emoticon" src="http://matt.bottrell.com.au/templates/default/img/emoticons/normal.png" style="display: inline; vertical-align: bottom;"/> <br/>
<br/>
I'm not yet on Twitter, but who knows what 2010 will hold in store.</div>
    </content>
    <updated>2009-12-09T13:11:38Z</updated>
    <category term="Family"/>
    <category term="Opinion"/>
    <category term="Play"/>
    <category term="Society"/>
    <category term="Web"/>
    <author>
      <name>Matt</name>
      <email>mbottrell@gmail.com</email>
    </author>
    <source>
      <id>http://matt.bottrell.com.au/</id>
      <logo>http://matt.bottrell.com.au/templates/default/img/s9y_banner_small.png</logo>
      <link href="http://matt.bottrell.com.au/" rel="alternate" type="text/html"/>
      <link href="http://matt.bottrell.com.au/feeds/index.rss2" rel="self" type="application/rss+xml"/>
      <subtitle>A blog about Linux, Life and the 'Net</subtitle>
      <title>Bend in the Weather</title>
      <updated>2011-01-10T08:12:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://matt.bottrell.com.au/archives/380-guid.html</id>
    <link href="http://matt.bottrell.com.au/archives/380-Innocent-Farmville-hostage..html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"/>
    <title>Innocent Farmville hostage.</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">It would appear that even whilst I don't use either <a href="http://twitter.com/">Twitter</a> or <a href="http://www.facebook.com/">Facebook</a> -- I happen to be held hostage often to <a href="http://www.urbandictionary.com/define.php?term=Farmville">Farmville</a>.<br/>
<br/>
I have elected not to join either two communities for several reasons:<br/>
<br/>
<ul><li>I seriously spend far too many hours a day on a computer (12-18 hours a day).  I don't need something else to add to the hours.</li><li>I like keeping some level of personal privacy.  I really don't have a need to post what I ate for breakfast, what my favourite book/movie/music/clothing is. (You <em>really</em> want to know my favourite music is --<a href="http://www.last.fm/user/stryder3028"> follow me on last.fm</a>).  I also have a blog where I can write down my thoughts/opinions/frustrations already.</li><li>I have multiple methods to keep in touch with those I elect to already.  (Email, IM, Telephone, SMS).   I seriously couldn't give a flying razoo about people I went to primary/high school/Uni with.  I haven't seen them for over 20 years, and I don't have the desire to kindle the relationship due to the mere fact we attended the same education institution (and for the majority of that time -- compulsory; I'm sure neither of us wanted to be there!)</li></ul><br/>
Having said that -- I don't object to others that do use the services.  Each to their own I say.  <img alt="8-)" class="emoticon" src="http://matt.bottrell.com.au/templates/default/img/emoticons/cool.png" style="display: inline; vertical-align: bottom;"/> <em> (But don't expect me to accept invites for either -- both are duly ignored!)</em>    <img alt=":-P" class="emoticon" src="http://matt.bottrell.com.au/templates/default/img/emoticons/tongue.png" style="display: inline; vertical-align: bottom;"/> <br/>
<br/>
Pauline is a Facebook user, she enjoys it...  she catches up with a lot of old friends via it.   She has put off joining Farmville for months, but finally caved to the constant barrage of invites and joined.<br/>
<br/>
I now seems our daily life resolves around 'harvest time'... a classic case of seeing the <a href="http://www.urbandictionary.com/define.php?term=FarmVille%20Alarm">Farmville Alarm</a> come into effect.    An often quoted phrase at present is <blockquote>'<em>Ohh, I have to go harvest X .... gimme 10 mins.'</em></blockquote>This can happen at the most inconvenient times.   <img alt=":-|" class="emoticon" src="http://matt.bottrell.com.au/templates/default/img/emoticons/normal.png" style="display: inline; vertical-align: bottom;"/> <br/>
<br/>
So at present, I feel I'm affectively a Farmville hostage.   I'm wanting a virtual world-war to break out so that bombers blow  up the fields.   I might get a bit of normality back in my life.   <img alt=":-P" class="emoticon" src="http://matt.bottrell.com.au/templates/default/img/emoticons/tongue.png" style="display: inline; vertical-align: bottom;"/></div>
    </content>
    <updated>2009-11-15T00:23:00Z</updated>
    <category term="Family"/>
    <category term="Opinion"/>
    <category term="Play"/>
    <category term="Web"/>
    <category term="apps"/>
    <category term="facebook"/>
    <category term="family"/>
    <category term="farmville"/>
    <category term="friends"/>
    <category term="game"/>
    <category term="humour"/>
    <category term="internet"/>
    <category term="life"/>
    <category term="opinion"/>
    <category term="play"/>
    <category term="twitter"/>
    <category term="web"/>
    <author>
      <name>Matt</name>
      <email>mbottrell@gmail.com</email>
    </author>
    <source>
      <id>http://matt.bottrell.com.au/</id>
      <logo>http://matt.bottrell.com.au/templates/default/img/s9y_banner_small.png</logo>
      <link href="http://matt.bottrell.com.au/" rel="alternate" type="text/html"/>
      <link href="http://matt.bottrell.com.au/feeds/index.rss2" rel="self" type="application/rss+xml"/>
      <subtitle>A blog about Linux, Life and the 'Net</subtitle>
      <title>Bend in the Weather</title>
      <updated>2011-01-10T08:12:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://matt.bottrell.com.au/archives/378-guid.html</id>
    <link href="http://matt.bottrell.com.au/archives/378-Teddy-bear-moments.html" rel="alternate" type="text/html"/>
    <link href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license"/>
    <title>Teddy bear moments</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I think we can all attest to the phenomenon known as the <a href="http://www.downloadsquad.com/2009/10/16/troubleshooting-with-your-teddy-bear/">Teddy Bear troubleshooting</a>.<br/>
<br/>
I think we all probably need our own Teddy Bears in each of our <del>human office box</del> cubicles or work desks.<br/>
<br/>
So next time you need to do some serious troubleshooting or some heavy lifting when debugging - try pulling out the Teddy Bear.<br/>
Even better, you can hug something after it's solved!   <img alt="8-)" class="emoticon" src="http://matt.bottrell.com.au/templates/default/img/emoticons/cool.png" style="display: inline; vertical-align: bottom;"/></div>
    </content>
    <updated>2009-10-19T15:15:00Z</updated>
    <category term="Coding"/>
    <category term="Opinion"/>
    <category term="Work"/>
    <category term="apps"/>
    <category term="coding"/>
    <category term="geek"/>
    <category term="hack"/>
    <category term="humour"/>
    <category term="life"/>
    <category term="office"/>
    <category term="opinion"/>
    <category term="relax"/>
    <category term="review"/>
    <category term="software"/>
    <category term="support"/>
    <category term="sysadmin"/>
    <category term="therapy"/>
    <category term="work"/>
    <author>
      <name>Matt</name>
      <email>mbottrell@gmail.com</email>
    </author>
    <source>
      <id>http://matt.bottrell.com.au/</id>
      <logo>http://matt.bottrell.com.au/templates/default/img/s9y_banner_small.png</logo>
      <link href="http://matt.bottrell.com.au/" rel="alternate" type="text/html"/>
      <link href="http://matt.bottrell.com.au/feeds/index.rss2" rel="self" type="application/rss+xml"/>
      <subtitle>A blog about Linux, Life and the 'Net</subtitle>
      <title>Bend in the Weather</title>
      <updated>2011-01-10T08:12:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-23643369.post-9150924379763337138</id>
    <link href="http://blog.tim.kent.id.au/feeds/9150924379763337138/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=23643369&amp;postID=9150924379763337138&amp;isPopup=true" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/23643369/posts/default/9150924379763337138" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/23643369/posts/default/9150924379763337138" rel="self" type="application/atom+xml"/>
    <link href="http://blog.tim.kent.id.au/2009/10/blackberry-bes-proxy-pain.html" rel="alternate" type="text/html"/>
    <title>BlackBerry MDS proxy pain</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I'm just having a rant about MDS SSL connections through a proxy.  Non-SSL traffic will work fine, however SSL traffic appears to go direct even when proxy settings have been defined as per <a href="http://www.blackberry.com//btsc/dynamickc.do?cmd=show&amp;forward=nonthreadedKC&amp;docType=kc&amp;externalId=KB11028&amp;sliceId=1">KB11028</a>.  My regular expression matches the addresses fine.<br/><br/>Surely people out there want/need to proxy all their BES MDS traffic?<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/23643369-9150924379763337138?l=blog.tim.kent.id.au" width="1"/></div></div>
    </content>
    <updated>2009-10-08T06:16:15Z</updated>
    <published>2009-10-08T06:09:00Z</published>
    <author>
      <name>Tim Kent</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/02261183846996156463</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-23643369</id>
      <author>
        <name>Tim Kent</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/02261183846996156463</uri>
      </author>
      <link href="http://blog.tim.kent.id.au/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/23643369/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://blog.tim.kent.id.au/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Tim Kent</title>
      <updated>2012-04-16T03:48:07Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://cueballcentral.com/?p=276</id>
    <link href="http://cueballcentral.com/2009/03/humour-of-the-day-afl-grand-final/" rel="alternate" type="text/html"/>
    <title>Humour of the Day: AFL Grand Final</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Received this in an email a couple of years ago. Seems appropriate to repost given my impending excursion to Melbourne for Round 1 of the AFL Premiership Season 2009… Ah – 4 games of live footy in a weekend [plus … <a href="http://cueballcentral.com/2009/03/humour-of-the-day-afl-grand-final/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h5>Received this in an email a couple of years ago. Seems appropriate to repost given my impending excursion to Melbourne for Round 1 of the <span class="caps">AFL</span> Premiership Season 2009…</h5>

	<p>Ah – 4 games of live footy in a weekend [plus the Eagles v Lions game on a big screen of course]…</p>

	<p/><blockquote>It’s the <span class="caps">AFL</span> grand final and a man makes his way to his seat right on the wing. He sits down, noticing that the seat next to him is empty.<p/>

	<p>He leans over and asks his neighbor if someone will be sitting there.</p>

	<p>“No,” says the neighbor. “The seat is empty.”</p>

	<p>“This is incredible”, said the man. “Who in their right mind would have a seat like this for the <span class="caps">AFL</span> Grandfinal and not use it?”</p>

	<p>The neighbour says “Well, actually, the seat belongs to me. I was supposed to come with my wife, but she passed away. This is the first <span class="caps">AFL</span> Grand final we haven’t been to together since we got married in 1967.”</p>

	<p>“Oh … I’m sorry to hear that. That’s terrible. But couldn’t you find someone else, a friend or relative, or even a neighbor to take the seat?”</p>

	<p>The man shakes his head “No, they’re all at her funeral.”</p></blockquote><p/></div>
    </content>
    <updated>2009-03-24T16:00:43Z</updated>
    <category term="Footy"/>
    <category term="Humour"/>
    <author>
      <name>Mark Glossop</name>
    </author>
    <source>
      <id>http://cueballcentral.com</id>
      <link href="http://cueballcentral.com/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://cueballcentral.com" rel="alternate" type="text/html"/>
      <subtitle>50% sysadmin, 50% developer, 100% footy fan...</subtitle>
      <title>System ∩ Code ∩ Footy</title>
      <updated>2012-05-16T12:01:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://cueballcentral.com/?p=281</id>
    <link href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/" rel="alternate" type="text/html"/>
    <title>Some Thoughts on IT jobs and Working Conditions</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Had an interview recently. Overall the interview itself was relatively positive, and I think the challenge that was offered was something that I’d have been quite up for, but I had some reservations about the work environment – more than … <a href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Had an interview recently. Overall the interview itself was relatively positive, and I think the challenge that was offered was something that I’d have been quite up for, but I had some reservations about the work environment – more than just “passing reservations”, so I thought I’d put some thoughts onto digital paper, so to speak.</p>

	<p>I do have fairly strong feelings about the inadequacies of “open plan offices” for IT workers [or more generally, “knowledge-based workers”.] To give you a better idea of what I am referring to:
	</p><ul>
		<li><a href="http://www.amazon.com/o/asin/0932633439/2/ref=nosim">Peopleware</a> – possibly the single-most important reference on working conditions for tech workers. It shows comprehensively how people with fewer distractions get more productive work done than those who are constantly interrupted<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_0_281" id="identifier_0_281" title="Peopleware pp. 52-3.">1</a>]</sup><sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_1_281" id="identifier_1_281" title="And yes, I&amp;#8217;m aware that the authors of Peopleware aren&amp;#8217;t against all shared workspaces &amp;#8211; but those who share workspaces should be working on similar tasks or projects">2</a>]</sup>:<blockquote>“The people who brought us open-plan seating simply weren’t up to the task. But they talked a good game. They sidestepped the issue of whether productivity might go down by asserting very loudly that the new office arrangement would cause productivity to go up, and up a lot, by as much as three hundred percent. …The only method we have ever seen used to confirm claims that the open plan improves productivity is proof by repeated assertion.”</blockquote> </li>
		<li><a href="http://www.joelonsoftware.com/articles/BionicOffice.html">Joel’s [Original] ‘Bionic Office’</a></li>
		<li><a href="http://www.joelonsoftware.com/items/2008/12/29.html">Joel’s Updated Offices</a> – keep in mind this is Manhattan office space, so getting the best people on board <em>requires</em> the best environment. Contrariwise, you may not get the worst people in the worst environments — but the “best” IT people will usually move on to better, more productive environments fairly quickly. </li>
		<li>Open plans make establishing “Mutual Interruption Shields”<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_2_281" id="identifier_2_281" title="From Time Management from Systems Administrators">3</a>]</sup> almost impossible.</li>
		<li>Tom Limoncelli also makes the following quote <a href="http://www.oreillynet.com/sysadmin/blog/2005/12/i_disagree_with_paul_graham_on.html">here</a>: <blockquote>The biggest time management problem for system administrators is interruptions.</blockquote>I tend to think that the same problem applies to software developers – it’s sometimes referred to as a “mental context switch”, and can cut the productivity of your IT workers <em>in half</em> – or worse. Open plan offices are, <em>generally speaking</em>, the epitome of evil when it comes to protecting your IT employees from interruptions.</li>
		<li><a href="http://www.joelonsoftware.com/articles/fieldguidetodevelopers.html">A Field Guide to Developers</a> – some interesting observations about what things are [and aren’t] important to IT workers [the article was written with software developers in mind, but in my experience systems administrators are quite similar in their expectations and ideas about “good workplaces”.] From the Field Guide: <blockquote>“One thing that programmers don’t care about – They don’t care about money, actually, unless you’re screwing up on the other things. If you start to hear complaints about salaries where you never heard them before, that’s usually a sign that people aren’t really loving their job. If potential new hires just won’t back down on their demands for outlandish salaries, you’re probably dealing with a case of people who are thinking, ‘Well, if it’s going to have to suck to go to work, at least I should be getting paid well.’<br/>
<br/>
“That doesn’t mean you can underpay people, because they do care about justice, and they will get infuriated if they find out that different people are getting different salaries for the same work, or that everyone in your shop is making 20% less than an otherwise identical shop down the road, and suddenly money will be a big issue. You do have to pay competitively, but all said, of all the things that programmers look at in deciding where to work, as long as the salaries are basically fair, they will be surprisingly low on their list of considerations, and offering high salaries is a surprisingly ineffective tool in overcoming problems like the fact that programmers get 15” monitors and salespeople yell at them all the time and the job involves making nuclear weapons out of baby seals.”</blockquote></li>
	</ul>
	<ul>
		<li>From <em>The Practice of System and Network Administration</em>, Chapter 35.1<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_3_281" id="identifier_3_281" title="The Bible for System Administrators IMHO">4</a>]</sup>: <blockquote>The hiring process can be simplified into two stages. The first stage is to identify the people whom you want to hire. The second stage is to persuade them that they want to work for you.</blockquote>Making a persuasive argument with a poor workplace environment is always going to be difficult, regardless of salary or any other factors. Many people in the IT industry can be “unique” in this respect – they find roles that keep them interested and excited about each day at work – and that aspect is far more important than work that pays a top-dollar salary but is rote and monotonous.</li>
	</ul><p/>

	<p>Some things I noted about the place where I interviewed (either from observation while I was waiting, or during the interview):
	</p><ul>
		<li>Almost all IT staff in one open plan area. Think of a 1950’s newspaper bullpen, and you get the idea. There was one area to the side where where some of the more senior staff seemed to have their own bullpen.</li>
		<li>Not even cubicles for some semblance of privacy. I’ve worked in a place where even the telephone operators in the call centre had more privacy and insulation from distractions.</li>
		<li>Apparently this “extreme open plan” was a deliberate decision — it was apparently part of an ongoing attempt to fix some ingrained cultural deficiencies. [How <em>exactly</em> this was expected to achieve their goals is still unclear to me…the actual problems weren’t fully disclosed.]</li>
		<li>Some people were trying to work while others carried on in one corner of the room in a fairly noisy discussion – from what I could see and from the information I was provided in the interview, there was no separate meeting area or room for ideas to be brainstormed. Not seeing the impact of that on overall worker productivity completely escapes me.</li>
		<li>The interview itself was conducted in one of the few private offices [presumably because privacy is important for  an interview, and without a private meeting room, what else will you do?] </li>
		<li>From what I could tell, only very senior management were allocated the few private offices. Apparently parking was allocated on a similar theme…only for the very senior.<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_4_281" id="identifier_4_281" title="Everyone else was expected to battle for the limited public parking available in the precinct. No subsidisation. I got the impression that since there was a train station very close by that there was an expectation staff would use that option. Never mind that public transport would actually cost me the same or more than driving and parking.">5</a>]</sup></li>
		<li>No space for individual whiteboards or reference libraries. No, Google doesn’t answer all questions, and the two whiteboards I saw seemed to be shared by all staff.</li>
		<li>Two excessively <em>noisy</em> airconditioners — not a ducted or even split A/C system, and the compressors were completely underspecified for the office space/volume [making them run at or above capacity by the sound they were making – and it wasn’t even a hot day.]</li>
		<li>Very large space with large windows, but using overhead lights instead of lots of natural light — opening the blinds and letting more light in seemed like an easy fix, but one that seemed to be overlooked by a lot of intelligent people.</li>
		<li>The space could actually quite easily be converted into a two-storey, split or lofted area, providing significantly more workspace area and worker privacy. But I expect that would be too much money spent on IT workers [hmm, wait, apparently that’s the thinking that caused many of these problems initially! Meh.]</li>
		<li>Non-ergonomic chairs and desks. If you’re putting people in chairs for 8 hrs per day, those desks and chairs had better be comfortable and compliant with occupational health and safety regulations.</li>
	</ul>
	<ul>
		<li>Multiple monitors – if you’ve got 4 different 19” monitors attached to a single machine – maybe, just maybe, you should consider using those monitors elsewhere and buying two 24” monitors. You get 13% less pixels in a typical scenario, but only two monitors with more actual pixel real estate. Two monitors that use less power, are easier to manage and there’s only one break in your overall screen real estate. You’re also less likely to waste time juggling windows from one screen to the next – which is another productivity win. Sure it’s a small detail, but lots of small things over a long time actually add up pretty quickly.<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_5_281" id="identifier_5_281" title="Kudos where due &amp;#8211; actually having multiple monitors for tech workers is almost a given these days, but I&amp;#8217;ve still seen places where it&amp;#8217;s not done, despite being de rigueur for programmers/sysadmins.">6</a>]</sup></li>
	</ul><p/>

	<p>Recruiting new staff for such poor environments is going to be difficult. Not impossible, but definitely difficult:
	</p><ul>
		<li>If you’re planning to build a team – changing the environment to attract good candidates is critical to your prospects of building a top-notch technical team.</li>
		<li>In a place where salaries aren’t really competitive, and office working conditions are assessed with a low priority, people are going to want you to offer other remuneration options.</li>
		<li>Options you ask? Such as a subsidised mobile phone, <span class="caps">PDA</span> and broadband<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_6_281" id="identifier_6_281" title="Yes, accessing systems from home is important, even if you&amp;#8217;re not offering any sort of telecommuting.">7</a>]</sup>, telecommuting, higher than standard superannuation, salary packaging/salary sacrifice options, free or subsidised parking, regular technical training, flexible working hours, less restrictive dress codes, and of course the aforementioned things like private offices and quiet work environments.</li>
		<li>Given the current economic climate, and the tight budgets most businesses presently have, flexibility on “alternative” remuneration options seems like an easy option to consider, yet seemed like “a bridge too far” for this place.</li>
		<li>The poor economy isn’t going to last forever – when that happens, employers are going to find themselves on the back foot due to staff attrition: “the grass is always greener”, and when you’ve put up with poor conditions for long enough, it doesn’t take much to say “hey, I can do better – I’m out of here.” All it takes for that is a slight salary bump. If you provide a great work environment, better salary isn’t always going to compensate for that. [If tell you you can work in a great IT job with a great team for $70k p.a., then offer a crap, boring job with lousy conditions for $95k p.a. — how many IT people will take that? The number is a lot lower than you might think.]</li>
	</ul>
	<ul>
		<li>So – bad conditions, non-competitive salaries and lack of alternative remuneration options all add up to  “don’t work here unless things change”.</li>
	</ul><p/>

	<p>I’m lead to understand that the role I interviewed is a new role, paying OK<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_7_281" id="identifier_7_281" title="Although I was offered $5-$10k less than what I would expect for a comparable role at a similar employer">8</a>]</sup> with significant responsibilities and strong prospects for advancement, yet it has gone unfilled for some time. I’m not completely surprised. If something was to change and I was offered the role, I’d still feel “80% positive, 20% negative” about it – but that 20% could easily make the difference between a 9-12 month stop-gap tenure and a 3+ year team-building role. It simply would depend how committed they proved to be about making real change, and providing a top-notch workplace experience.</p>

<div style="background: #eeeeee; border: 1px solid #999999; padding: 5px;">
<strong>The Nutshell Version For Employers:</strong>
	<ul>
		<li>The current economic climate <em>will</em> not last forever. Signs of recovery are already present in Australia.<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_8_281" id="identifier_8_281" title="The stock market may take 2-3 years to regain lost ground, but that doesn&amp;#8217;t reflect the health of an economy &amp;#8211; continued growth does.">9</a>]</sup> If you’re reading this from the US, expect similar changes as the <span class="caps">ARRA</span> stimulus kicks in on all the <em>huge</em> IT projects Obama has approved.</li>
		<li>Despite the climate, <em>quality</em> IT staff are still in demand. That demand will only increase as the economy recovers.<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_9_281" id="identifier_9_281" title="Yes, I see the irony between my statement and the fact that I&amp;#8217;m still looking for work. Am I a quality IT worker? Yes. Am I selling myself properly? Maybe not. Am I possibly overqualified for some roles? Maybe. I&amp;#8217;ve really never been out of work for long enough to care, so maybe job hunting is one area where I need to learn a few more things. I&amp;#8217;d much rather be improving my tech skills and working on interesting things however.">10</a>]</sup></li>
		<li>Treat your staff well.</li>
		<li>Pay them at least comparable salaries to other people doing the same work at other companies/organisations/institutions.</li>
		<li>Offer alternative remuneration options.</li>
		<li>IT workers almost always have backup plans<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_10_281" id="identifier_10_281" title="Sometimes multiple backup plans.">11</a>]</sup> – poor timing may be the only problem for them. At the moment.<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_11_281" id="identifier_11_281" title="And yes, I&amp;#8217;m being deliberately cryptic.">12</a>]</sup></li>
		<li>If you don’t make them secure when times are bad, the first chance that comes along for better conditions and better pay may well leave you in the lurch, if you ignore this advice.</li>
		<li>IT workers talk to other IT workers. Information will and does travel.</li>
		<li>Perth isn’t a very large place. Information definitely travels quite easily in the IT industry here<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_12_281" id="identifier_12_281" title="Some might say it doesn&amp;#8217;t matter where you are.">13</a>]</sup></li>
		<li>Information – good and bad – travels easily through mechanisms that may not always be known to you<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_13_281" id="identifier_13_281" title="Say, for instance, a lunch with former colleagues who happen to know a lot more than you ever expected about the environment you were considering.">14</a>]</sup> “IT Networking” isn’t always about Cat5 cable <img alt=":-)" class="wp-smiley" src="http://cueballcentral.com/wp-includes/images/smilies/icon_smile.gif"/> </li>
		<li>Don’t think that people will stay out of loyalty when you’ve treated them like crap.<sup>[<a class="footnote-link footnote-identifier-link" href="http://cueballcentral.com/2009/03/some-thoughts-on-it-jobs-and-working-conditions/#footnote_14_281" id="identifier_14_281" title="As a historical reference, I was only earning about $63k (all up) when I was working at $JOB-2 &amp;#8212; money wasn&amp;#8217;t everything. I left mainly because of two things:The offer of a more challenging position with better conditionsThe prospect of the existing working conditions at $JOB-2 being sharply compromised was becoming very real. [After I left, that &amp;#8220;prospect&amp;#8221; did in fact become a reality.]There were other, less significant factors &amp;#8211; but those were the two main ones.">15</a>]</sup></li>
	</ul>
	<ul>
		<li>If you’re an employer and this is all news to you – you <em>really</em> need to do your homework better.</li>
	</ul>
</div><br/>


	<p>My $0.02 for today.</p>

	<p>P.S. If you’re going to comment, please refrain from mentioning names, if only to protect the guilty <img alt=":-D" class="wp-smiley" src="http://cueballcentral.com/wp-includes/images/smilies/icon_biggrin.gif"/> </p><ol class="footnotes"><li class="footnote" id="footnote_0_281">Peopleware pp. 52-3.</li><li class="footnote" id="footnote_1_281">And yes, I’m aware that the authors of Peopleware aren’t against all shared workspaces – but those who share workspaces should be working on similar tasks or projects</li><li class="footnote" id="footnote_2_281">From <a href="http://my.safaribooksonline.com/0596007833/timemgmt-CHP-1">Time Management from Systems Administrators</a></li><li class="footnote" id="footnote_3_281">The Bible for System Administrators <span class="caps">IMHO</span></li><li class="footnote" id="footnote_4_281">Everyone else was expected to battle for the limited public parking available in the precinct. No subsidisation. I got the impression that since there was a train station very close by that there was an expectation staff would use that option. Never mind that public transport would actually cost me the same or more than driving and parking.</li><li class="footnote" id="footnote_5_281">Kudos where due – actually having multiple monitors for tech workers is almost a given these days, but I’ve still seen places where it’s not done, despite being <em>de rigueur</em> for programmers/sysadmins.</li><li class="footnote" id="footnote_6_281">Yes, accessing systems from home is important, even if you’re not offering any sort of telecommuting.</li><li class="footnote" id="footnote_7_281">Although I was offered $5-$10k less than what I would expect for a comparable role at a similar employer</li><li class="footnote" id="footnote_8_281">The stock market may take 2-3 years to regain lost ground, but that doesn’t reflect the health of an economy – continued growth does.</li><li class="footnote" id="footnote_9_281">Yes, I see the irony between my statement and the fact that I’m still looking for work. Am I a quality IT worker? Yes. Am I selling myself properly? Maybe not. Am I possibly overqualified for some roles? Maybe. I’ve really never been out of work for long enough to care, so maybe job hunting is one area where I need to learn a few more things. I’d much rather be improving my tech skills and working on interesting things however.</li><li class="footnote" id="footnote_10_281">Sometimes multiple backup plans.</li><li class="footnote" id="footnote_11_281">And yes, I’m being deliberately cryptic.</li><li class="footnote" id="footnote_12_281">Some might say it doesn’t matter where you are.</li><li class="footnote" id="footnote_13_281">Say, for instance, a lunch with former colleagues who happen to know a lot more than you ever expected about the environment you were considering.</li><li class="footnote" id="footnote_14_281">As a historical reference, I was only earning about $63k (all up) when I was working at $JOB-2 — money wasn’t everything. I left mainly because of two things:<ul><li>The offer of a more challenging position with better conditions</li><li>The prospect of the existing working conditions at $JOB-2 being sharply compromised was becoming very real. [After I left, that “prospect” did in fact become a reality.]</li></ul>There were other, less significant factors – but those were the two main ones.</li></ol></div>
    </content>
    <updated>2009-03-20T09:26:28Z</updated>
    <category term="General Tech"/>
    <category term="Programming"/>
    <category term="Systems Administration"/>
    <author>
      <name>Mark Glossop</name>
    </author>
    <source>
      <id>http://cueballcentral.com</id>
      <link href="http://cueballcentral.com/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://cueballcentral.com" rel="alternate" type="text/html"/>
      <subtitle>50% sysadmin, 50% developer, 100% footy fan...</subtitle>
      <title>System ∩ Code ∩ Footy</title>
      <updated>2012-05-16T12:01:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://cueballcentral.com/?p=266</id>
    <link href="http://cueballcentral.com/2009/03/humour-of-the-day/" rel="alternate" type="text/html"/>
    <title>Humour of the Day: Bill Payment FTW</title>
    <summary>I wonder how long it will take for the bank to cash this cheque… Bill Payment Win » FAIL Blog:</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I wonder how long it will take for the bank to cash this cheque…<br/>
<a href="http://failblog.org/2009/03/18/bill-payment-win/">Bill Payment Win » <span class="caps">FAIL</span> Blog:<br/>
<img alt="FailBlog - Cheque Payment WIN" class="size-full wp-image-268" height="302" src="http://cueballcentral.com/wp-content/uploads/2009/03/fail-owned-verizon-fail.jpg" title="Interesting cheque" width="500"/></a></p></div>
    </content>
    <updated>2009-03-18T11:35:20Z</updated>
    <category term="Humour"/>
    <category term="Mathematics"/>
    <author>
      <name>Mark Glossop</name>
    </author>
    <source>
      <id>http://cueballcentral.com</id>
      <link href="http://cueballcentral.com/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://cueballcentral.com" rel="alternate" type="text/html"/>
      <subtitle>50% sysadmin, 50% developer, 100% footy fan...</subtitle>
      <title>System ∩ Code ∩ Footy</title>
      <updated>2012-05-16T12:01:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://cueballcentral.com/?p=243</id>
    <link href="http://cueballcentral.com/2009/03/wwdc-2009/" rel="alternate" type="text/html"/>
    <title>WWDC 2009</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">From a source that I can verify as being accurate for (at least) the last two years, WWDC 2009 will be held in San Francisco at Moscone West. The dates? Monday June 8 – Friday June 12 I wouldn’t go … <a href="http://cueballcentral.com/2009/03/wwdc-2009/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>From a source that I <em>can</em> verify as being accurate for (at least) the last two years, <span class="caps">WWDC</span> 2009 will be held in San Francisco at Moscone West. The dates?</p>

	<h4>Monday June 8 – Friday June 12</h4>

	<p>I wouldn’t go booking flights or hotels just yet, but that’s when I’m planning on being in SF again…i.e. nothing’s definite until Apple makes the announcement, but that’s the info I have from a previously reliable source.</p>

	<p>Will update info if I get any more news.</p>

	<p><strong>Belated Update:</strong> I was in Melbourne for the footy when the announcement was made last week, so I forgot about updating this post. Dates above are confirmed. See <a href="http://developer.apple.com/wwdc"><span class="caps">WWDC</span> site</a> for more info.</p></div>
    </content>
    <updated>2009-03-04T11:29:17Z</updated>
    <category term="General Tech"/>
    <category term="Mac OS X"/>
    <category term="Programming"/>
    <category term="Dev-Apple"/>
    <category term="Mac"/>
    <category term="Moscone West"/>
    <category term="San Francisco"/>
    <category term="WWDC"/>
    <author>
      <name>Mark Glossop</name>
    </author>
    <source>
      <id>http://cueballcentral.com</id>
      <link href="http://cueballcentral.com/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://cueballcentral.com" rel="alternate" type="text/html"/>
      <subtitle>50% sysadmin, 50% developer, 100% footy fan...</subtitle>
      <title>System ∩ Code ∩ Footy</title>
      <updated>2012-05-16T12:01:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://cueballcentral.com/?p=239</id>
    <link href="http://cueballcentral.com/2009/03/freeview-tv-the-real-advert/" rel="alternate" type="text/html"/>
    <link href="http://downwindmedia.com/mov/FREEVIEWdone.mov" length="44105201" rel="enclosure" type="video/quicktime"/>
    <title>Freeview TV – The Real Advert</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">OK so it’s no secret I’ve got a fair bit of pent-up animosity towards Australian network TV…so it shouldn’t be any surprise that I found this little gem on YouTube quite in line with my sense of humour. Note: if … <a href="http://cueballcentral.com/2009/03/freeview-tv-the-real-advert/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>OK so it’s no secret I’ve got a fair bit of pent-up animosity towards Australian network TV…so it shouldn’t be any surprise that I found this little gem on YouTube quite in line with my sense of humour.</p>

	<p>Note: if you’re not reading from Oz, then you probably won’t have seen the Freeview ads – but you should still be able to get a laugh out of it…network TV programmers worldwide pull the same crap whatever country you’re in.</p>

	<p><strong>Edit:</strong> Turns out Freeview didn’t like this being on YouTube. I believe there’s another way to get the video; will update when I find out more…but for now the link below doesn’t work.</p>

	<p><a href="http://www.youtube.com/watch?v=SU5NehjbNE8">Freeview – The Real Advert</a></p>

	<p><strong>Edit 2:</strong> <br/>
Updated <a href="http://www.tvtonight.com.au/2009/03/freeview-parody-pulled-from-youtube.html">TV Tonight article</a> about the video.<br/>
Reposted: <a href="http://www.youtube.com/watch?v=d9Qkixx9qgQ">YouTube – repost</a>.<br/>
Downloadable movie version available from <a href="http://downwindmedia.com/mov/FREEVIEWdone.mov">DownWind Media</a>.</p></div>
    </content>
    <updated>2009-03-04T05:06:03Z</updated>
    <category term="Television &amp; Movies"/>
    <category term="Freeview"/>
    <category term="network programming"/>
    <category term="TV"/>
    <author>
      <name>Mark Glossop</name>
    </author>
    <source>
      <id>http://cueballcentral.com</id>
      <link href="http://cueballcentral.com/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://cueballcentral.com" rel="alternate" type="text/html"/>
      <subtitle>50% sysadmin, 50% developer, 100% footy fan...</subtitle>
      <title>System ∩ Code ∩ Footy</title>
      <updated>2012-05-16T12:01:16Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-23643369.post-6267807613212562941</id>
    <link href="http://blog.tim.kent.id.au/feeds/6267807613212562941/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=23643369&amp;postID=6267807613212562941&amp;isPopup=true" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/23643369/posts/default/6267807613212562941" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/23643369/posts/default/6267807613212562941" rel="self" type="application/atom+xml"/>
    <link href="http://blog.tim.kent.id.au/2009/01/dns-resolution-on-iphone.html" rel="alternate" type="text/html"/>
    <title>DNS resolution on iPhone</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I've been playing with a few iPhones lately and have had trouble getting WiFi working through our proxy.  After much hair pulling the problem turns out to be a feature in the iPhone DNS resolver that refuses to look up any hostname ending in ".local".  This also appears to be a problem on Mac OS X:<br/><br/><a href="http://support.apple.com/kb/HT2385?viewlocale=en_US">http://support.apple.com/kb/HT2385?viewlocale=en_US</a><br/><br/>With OS X you can add "local" to the Search Domains field and disable this behaviour, unfortunately it doesn't work for the iPhone.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/23643369-6267807613212562941?l=blog.tim.kent.id.au" width="1"/></div></div>
    </content>
    <updated>2009-01-07T13:32:18Z</updated>
    <published>2009-01-07T13:13:00Z</published>
    <author>
      <name>Tim Kent</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/02261183846996156463</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-23643369</id>
      <author>
        <name>Tim Kent</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/02261183846996156463</uri>
      </author>
      <link href="http://blog.tim.kent.id.au/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/23643369/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://blog.tim.kent.id.au/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Tim Kent</title>
      <updated>2012-04-16T03:48:07Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-23643369.post-3299195925301135440</id>
    <link href="http://blog.tim.kent.id.au/feeds/3299195925301135440/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=23643369&amp;postID=3299195925301135440&amp;isPopup=true" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/23643369/posts/default/3299195925301135440" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/23643369/posts/default/3299195925301135440" rel="self" type="application/atom+xml"/>
    <link href="http://blog.tim.kent.id.au/2008/03/voip-headaches.html" rel="alternate" type="text/html"/>
    <title>VoIP headaches</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I've recently signed up with <a href="http://www.pennytel.com/">PennyTel</a> to get better prices on phone calls. This was after two relatives of mine both recommended PennyTel and said how easy the whole thing was to set up when using <span>a Linksys SPA-3102.<br/><br/></span>OK, so I signed up and purchased the Linksys device. I set the networking stuff through the phone then followed the guide on the PennyTel website to configure SIP (VoIP connectivity stuff). I was feeling pretty good about the whole thing, that is until I made the first phone call!<br/><br/>I thought I'd try to impress a mate so I called up one of my tech savvy friends and told them I was using VoIP to talk to them. The quality sounded quite good, then after 32 seconds the call dropped out! I had called a mobile so I thought it may just be a glitch. The next two calls resulted in the same drop out after 32 seconds. By this stage my friend thought it was quite amusing that my new phone service was so unreliable after I had been boasting about the cheap call rates!<br/><br/>After hours of Googling and messages back and forth between PennyTel support, I still hadn't managed to avoid the call drop out, or another intermittent problem where the SIP registration was randomly failing. The settings looked fine, and PennyTel didn't appear to have any outages as I tested things with a soft phone from another DSL connection. I was really regretting the whole thing, and getting pretty pissed off. I had a think about the whole scenario, and the only thing I hadn't eliminated was my DrayTek Vigor 2600We ADSL router. I had already set the port forwards required for the Linksys SPA (UDP 5060-5061 and 16384-16482) so thought nothing more of router configuration. As a last resort, I searched the Internet for people running VoIP through their DrayTek to see if any incompatibilities existed. I came across a site with someone experiencing my exact problem, and they had a workaround! It appears that the 2600We has a SIP application layer proxy enabled by default. This really confuses things on the Linksys and has to be disabled. After telnetting to the device and entering the following command, things were working great:<br/><br/><blockquote><span style="font-family: courier new;">sys sip_alg 0</span></blockquote><p>Note that you may need to upgrade your DrayTek firmware for this command to be available.</p><p>After the changes I made some calls and no longer got disconnected after 32 seconds! Woohoo!  At the end of the day I'm glad I chose VoIP for the cost savings, even though it caused me grief the first few days.</p>Update: One other setting I have found needed a bit of tweaking was the dial plan.  Here is my current Brisbane dial plan for an example:<br/><br/><blockquote><span style="font-family: courier new;">(000S0&lt;:@gw0&gt;|&lt;:07&gt;[3-5]xxxxxxxS0|0[23478]xxxxxxxxS0|1[38]xx.&lt;:@gw0&gt;|19xx.!|xx.)</span></blockquote><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/23643369-3299195925301135440?l=blog.tim.kent.id.au" width="1"/></div></div>
    </content>
    <updated>2008-10-26T22:55:08Z</updated>
    <published>2008-03-17T06:08:00Z</published>
    <author>
      <name>Tim Kent</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/02261183846996156463</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-23643369</id>
      <author>
        <name>Tim Kent</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/02261183846996156463</uri>
      </author>
      <link href="http://blog.tim.kent.id.au/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/23643369/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://blog.tim.kent.id.au/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Tim Kent</title>
      <updated>2012-04-16T03:48:07Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-23643369.post-2947924577588499912</id>
    <link href="http://blog.tim.kent.id.au/feeds/2947924577588499912/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=23643369&amp;postID=2947924577588499912&amp;isPopup=true" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/23643369/posts/default/2947924577588499912" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/23643369/posts/default/2947924577588499912" rel="self" type="application/atom+xml"/>
    <link href="http://blog.tim.kent.id.au/2008/08/data-destruction.html" rel="alternate" type="text/html"/>
    <title>Data destruction</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="http://www.flickr.com/photos/saboteur/2812154279/"><img alt="" border="0" src="http://farm4.static.flickr.com/3193/2812154279_51817d01ab_m.jpg" style="FLOAT: right; MARGIN: 0pt 0pt 10px 10px; WIDTH: 240px; CURSOR: pointer;"/></a>After cleaning my home office I was left with some old hard drives to dispose of, this got me thinking about data destruction. In the past I cleared my drives with a couple of passes of random data using dd, but is this thorough enough?<br/><br/>This time round I have used a free bootable CD called <a href="http://www.terabyteunlimited.com/copywipe.php">CopyWipe</a> (great utility, <a href="http://www.terabyteunlimited.com/bootit-next-generation.htm">BootIt NG</a> is also worth a mention). Each drive was given 5 passes, and then taken to with a hammer just to be sure. I've linked a picture to the "after" shot.<br/><br/>I can see data destruction being a larger problem as time goes on. I'd be interested to know the techniques others use for this problem.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/23643369-2947924577588499912?l=blog.tim.kent.id.au" width="1"/></div></div>
    </content>
    <updated>2008-08-31T03:10:56Z</updated>
    <published>2008-08-31T02:57:00Z</published>
    <author>
      <name>Tim Kent</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/02261183846996156463</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-23643369</id>
      <author>
        <name>Tim Kent</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/02261183846996156463</uri>
      </author>
      <link href="http://blog.tim.kent.id.au/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/23643369/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://blog.tim.kent.id.au/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Tim Kent</title>
      <updated>2012-04-16T03:48:07Z</updated>
    </source>
  </entry>
</feed>

