What is the value of negative feedback on the Internet?

Posted on Tuesday, 11 October 2011

I'm sure we've all been there - you buy something on eBay or from a third party on Amazon, and what you get is either rubbish or not what you asked for.
The correct thing to do is to talk to the seller first to try and resolve your problem, and then when everything is said and done, leave feedback rating the overall experience.

Several times in the last year I have gone through this process and ended up feeling the need to leave negative feedback. The most obvious case was some bluetooth headphones I'd bought from an eBay seller in China that were so obviously fake that it was hilarious he was even trying to convince me I was doing something wrong.
In each of these cases, I have been contacted shortly after the negative feedback to ask if I will remove the feedback in return for a full/partial refund.

This has tickled the curious side of my brain into wanting to know what the value of negative feedback is. The obvious way to find out would be to buy items of various different price and then leave negative feedback and see how far the sellers are prepared to go to preserve their reputations.

The obvious problem here is that this would be an unethical and unfair way to do science. Perhaps it would be possible to crowd-source anecdotes until they count as data?


Dear Apple

Posted on Thursday, 6 October 2011

I just woke up here in London and saw the news about Steve Jobs. It's early and, as usual for this time of day, my seven month old son is playing next to me. He has no concept of what my iPhone is, but it holds his fascination like none of his brightly coloured toys do. Only iPad can cause him to abandon his toys and crawl faster.

I'd like to thank you all, including Steve, for your work. You have brought technology to ordinary people in a way that delights them without them having to know why.

Please keep doing that for a very long time


Terminator 0.96 released

Posted on Friday, 23 September 2011

I've just pushed up the release tarball and PPA uploads for Terminator 0.96. It's mainly a bug fix release, but it does include a few new features. Many thanks to the various community folks who have contributed fixes, patches, bugs, translations and branches to this release. The changelog is below:

terminator 0.96:
  * Unity support for opening new windows (Lucian Adrian Grijincu)
  * Fix searching with infinite scrollback (Julien Thewys #755077)
  * Fix searching on Ubuntu 10.10 and 11.04, and implement searching
    by regular expression (Roberto Aguilar #709018)
  * Optimise various low level components so they are dramatically
    faster (Stephen Boddy)
  * Fix various bugs (Stephen Boddy)
  * Fix cursor colours (#700969) and a cursor blink issue (Tony Baker)
  * Improve and extend drag&drop support to include more sources of
    text, e.g. Gtk file chooser path buttons (#643425)
  * Add a plugin to watch a terminal for inactvity (i.e. silence)
  * Fix loading layouts with more than two tabs (#646826)
  * Fix order of tabs created from saved layouts (#615930)
  * Add configuration to remove terminal dimensions from titlebars
    (patch from João Pinto #691213)
  * Restore split positions more accurately (patch from Glenn Moss 
  * Fix activity notification in active terminals. (patch from Chris
    Newton #748681)
  * Stop leaking child processes if terminals are closed using the
    context menu (#308025)
  * Don't forget tab order and custom labels when closing terminals
    in them (#711356)
  * Each terminal is assigned a unique identifier and this is exposed
    to the processes inside the terminal via the environment variable
  * Expand dbus support to start covering useful methods. Also add
    a commandline tool called 'remotinator' that can be used to control
    Terminator from a terminal running inside it.
  * Fix terminal font settings for users of older Linux distributions



Posted on Saturday, 16 July 2011

To the cloud!

I'm officially done hosting my own Wordpress blog. Not because it's particularly hard, but because it's quite boring. I would have done a straight export/import into a wordpress.com blog, but their options for hosting on a personal domain are pretty insane - if you want to host your blog on domain.com or www.domain.com you have to just point the entire domain at the wordpress.com DNS servers.
I'm not prepared to trust my domain to a bunch of PHP bloggers, so instead I've shoved the blog over to Blogger (by way of a very helpful online conversion tool), but this still presents a few niggles around URLs.
You can have Blogger send 404s to another vhost, so for now I just have a tiny little vhost somewhere else which uses mod_rewrite to catch the old page names and attempt to catch the blog post names. Ideally I'd fetch all the old post URLs and make a proper map to the new ones, but I can't really be bothered to do that, so I just went for the approximate:

RewriteRule ^/archives/([0-9]{4})/([0-9]{2})/([0-9]{2})/([a-zA-Z0-9\-]{1,39}).*$ http://www.tenshu.net/$1/$2/$4.html [R=301,L]

Another obvious sticking point is that Wordpress categories become Blogger labels, so another rewrite rule can take care of them (although not so much if you've used nested categories, but again I can't really be bothered to account for that):

RewriteRule ^/archives/category/(.)(.*) http://www.tenshu.net/search/label/${upmap:$1}$2 [R=301,L]

Also cloudified so far is the DNS for tenshu.net - I'm trying out Amazon's Route53 and it seems to be pretty good so far. Next up will be email and then I can pretty much entirely stop faffing around running my own infrastructure :)


Monitoring an Apple Airport Express/Extreme with Munin

Posted on Saturday, 29 January 2011

So you have an Apple Airport (Express or Extreme), or a Time Capsule, and you want to monitor things like the signal levels of the connected clients? I thought so! That's why I wrote this post, because I'm thoughtful like that.

While it's not necessary, I'd like to mention that this was made possible by virtue of Apple having put out an SNMP MIB file. Without that, finding the relevant OIDs would have been sufficiently boring that I wouldn't have bothered with this, so yay for that (even if the MIB is suspiciously ancient).

So if you don't need the MIB file, what do you need?

Having all of those things, how do you use it? Simple!

  • Place the munin plugin somewhere (doesn't really matter where, but the munin package probably put the other plugins in /usr/share/munin/plugins/)

  • Make sure you have a hostname or IP address for your Airport(s). If you have more than one you should either make sure they have static IPs configured, or that the one doing DHCP has static leases configured for all the other Airports.

  • Create a symlink for each of the types of graph for each of your Airports. Assuming that your Munin machine can resolve your Airport as 'myairport' you'd want to make the following symlinks:

    • cd /etc/munin/plugins/

    • ln -s /path/to/snmp__airport snmp_myairport_airport_clients

    • ln -s /path/to/snmp__airport snmp_myairport_airport_signal

    • ln -s /path/to/snmp__airport snmp_myairport_airport_noise

    • ln -s /path/to/snmp__airport snmp_myairport_airport_rate

There is an explicit assumption that your SNMP community is the default of 'public'. If it's not then you'll need to hack the script. Otherwise, you're done! Now you win pretty graphs showing lots of juicy information about your Airport. Yay! You're welcome ;)