<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Too Busy For Words - The PaulWay Blog</title>
    <link>http://mabula.net/tbfw/</link>
    <description>Yet another Blosxom weblog with a self-contradictory name.</description>
    <language>en</language>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>blosxom/2.1.2</generator>

  <item>
    <title>Modern kernels and uncooperative monitors</title>
    <pubDate>Tue, 14 May 2013 21:11:00 +1000</pubDate>
    <link>http://mabula.net/tbfw/2013/05/14#2013-05-14-modern-kernels-uncooperative-monitors</link>
    <category>/tech</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/tech/2013-05-14-modern-kernels-uncooperative-monitors</guid>
    <description>Our main TV screen is a Kogan 32&quot; TV hooked up to a Mini-ITX machine running
a MythTV frontend on Fedora 18.  Due to Kogan buying the cheapest monitors,
which are the ones with the &lt;a href=&quot;http://blog.ringerc.id.au/2010/11/kogan-kgn1080p32vaa-avoid-this-tv-and.html&quot;&gt;worst
firmware&lt;/a&gt;, it has several annoyingly braindead features that make it hard
to use with a computer:&lt;P&gt;
&lt;ul&gt;
 &lt;li&gt;When using HDMI, the picture is &lt;i&gt;overscanned&lt;/I&gt;.  In other words, they
 think that the digital signal is like an analog signal, and might not be
 synced correctly, so they &lt;em&gt;expand the picture up&lt;/em&gt;.&lt;/li&gt;
 &lt;li&gt;When using VGA, the monitor reports no EDID.&lt;/li&gt;
&lt;/ul&gt;

Now, not having an EDID used not to be a problem when X did most of the heavy
work of setting up the display, because you could, at a pinch, tell it to
trust you on what modes the monitor could support. With a program like cvt you
could generate a modeline that you&apos;d stick in your /etc/X11/xorg.conf and it&apos;d
output the right frequencies. This is what I had to do for Fedora 16.&lt;P&gt;

The new paradigm now is that the kernel sets the monitor resolution and X is
basically a client application to use it.  This solves a lot of problems for
most people, but unfortunately the kernel doesn&apos;t really handle the situation
when the monitor doesn&apos;t actually respond with a valid EDID.  More
unfortunately, this actually happens in numerous situations - dodgy monitors
and dodgy KVM switches being two obvious ones.&lt;P&gt;

It turns out, however, that there is &lt;a href=&quot;https://www.osadl.org/Single-View.111+M5b7fe294ea7.0.html&quot;&gt;a
workaround&lt;/a&gt;.  You can tell the kernel that you have a (made-up) EDID block
to load that it&apos;s going to pretend came from the monitor.  To do this, you
have to generate an EDID block - handily explained in the &lt;a href=&quot;http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/EDID/HOWTO.txt&quot;&gt;Kernel
documentation&lt;/a&gt; - which requires grabbing the kernel source code and Making
the files in the Documentation/EDID directory. Then put the required file, say
1920x1080.bin, in a new directory /lib/firmware/edid, and add the parameter
&quot;drm_kms_helper.edid_firmware=edid/1920x1080.bin&quot; to your kernel boot line in
GRUB, and away you go.&lt;P&gt;

Well, nearly. Because the monitor literally does not respond, rather than
responding with something useless, the kernel doesn&apos;t turn that display on
(because, after all, not responding is also what the HDMI and DVI ports are
also doing, because nothing is plugged into them). So you also have to tell
the kernel that you really do have a monitor there, by also including the
parameter &quot;video=VGA-1:e&quot; on the kernel boot line as well.&lt;P&gt;

Once you&apos;ve done that, you&apos;re good to go.  Thank you to the people at OSADL
for documenting this.  Domestic harmony at PaulWay Central is now restored.</description>
  </item>
  <item>
    <title>Dear &lt;a href=&quot;http://www.dailymail.co.uk&quot;&gt;Mail Online&lt;/a&gt; editor,&lt;P&gt;</title>
    <pubDate>Tue, 02 Apr 2013 08:51:00 +1000</pubDate>
    <link>http://mabula.net/tbfw/2013/04/02#2013-04-02-dear-sexist-mail-online</link>
    <category>/society</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/society/2013-04-02-dear-sexist-mail-online</guid>
    <description>
I followed a link to one of the stories on the Daily Mail Online website, 
but my attention was arrested by the &quot;FeMail Today&quot; side bar.  From the 
content, one would apparently think that all women are only interested in 
what famous women are wearing, what babies they have, who they&apos;re sleeping 
with or what they&apos;re saying about each other.  Male celebrities might be 
involved but only when they&apos;re controversial or when the story is about 
their wife.&lt;P&gt;

Don&apos;t give us that claptrap about &quot;this is what women want&quot;.  Don&apos;t give us
some excuse about what sells or what your surveys have said.  This is so
obviously a sexist, demeaning bunch of claptrap that it&apos;s insulting to look
at.  It&apos;s shallow, it&apos;s boring, and it&apos;s painfully one-sided in its portrayal
of women.  No women scientists, leaders, or workers; no current politics,
economics or public interest; nothing, in short, in common with the other
readers of your paper.&lt;P&gt;

Please grow a backbone, get rid of your demeaning sexist view of women, and
start writing real content.  Your women readers will thank you for it.&lt;P&gt;

This post has also been sent to the Daily Mail Online editor.&lt;P&gt;

Your sincerely,&lt;P&gt;

Paul</description>
  </item>
  <item>
    <title>Recording video at LCA</title>
    <pubDate>Sat, 23 Mar 2013 09:23:00 +1100</pubDate>
    <link>http://mabula.net/tbfw/2013/03/23#2013-03-16-recording-video-at-LCA</link>
    <category>/tech/lca</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/tech/lca/2013-03-16-recording-video-at-LCA</guid>
    <description>A couple of people have asked me about the process of recording the talks at
&lt;a href=&quot;http://lca2013.linux.org.au&quot;&gt;Linux Conference Australia&lt;/a&gt;, and
it&apos;s worth publishing something about it so more people get a better idea
of what goes on.&lt;P&gt;

The basic process of recording each talk involves recording a video camera,
a number of microphones, the video (and possibly audio) of the speaker&apos;s
laptop, and possibly other video and audio sources.  For keynotes we recorded
three different cameras plus the speaker&apos;s laptop video.  In 2013 in the
Manning Clark theatres we were able to tie into ANU&apos;s own video projection
system, which mixed together the audio from the speaker&apos;s lapel microphone,
the wireless microphone and the lectern microphone, and the video from the
speaker&apos;s laptop and the document scanner.  Llewellyn Hall provided a mixed
feed of the audio in the room.&lt;P&gt;

Immediately the problems are: how do you digitise all these things, how do 
you get them together into one recording system, and how do you produce a
final recording of all of these things together?  The answer to this at
present is DVswitch, a program which takes one or more audio and video feeds
and acts as a live mixing console.  The sources can be local to the machine
or available on other machines on the network, and the DVswitch program
itself acts as a source that can then be saved to disk or mixed elsewhere.
DVswitch also allows some effects such as picture-in-picture and fades
between sources.  The aim is for the room editor to start the recording
before the start of the talk and cut each recording after the talk
finishes so that each file ends up containing an entire talk.  It&apos;s always
better to record too much and cut it out later rather than stop recording
just before the applause or questions.  The file path gives the room and
time and date of recording.&lt;P&gt;

The current system then feeds these final per-room recordings into a system
called Veyepar.  It uses the programme of the conference to match the time,
date and room of each recording with the talk being given in the room at that
time.  A fairly simple editing system then allows multiple people to &apos;mark up&apos;
the video - choosing which recorded files form part of the talk, and
optionally setting the start and/or end times of each segment (so that the
video starts at the speaker&apos;s introduction, not at the minute of setup
beforehand).&lt;P&gt;

When ready, the talk is marked for encoding in Veyepar and a script then runs
the necessar programs to assemble the talk title and credits and the files
that form the entire video into one single entity and produce the desired
output files. These are stored on the main server and uploaded via rsync to &lt;a
href=&quot;http://mirror.linux.org.au/pub/linux.conf.au/2013/&quot;&gt;mirror.linux.org.au&lt;/a&gt;
and are then mirrored or downloaded from there. Veyepar can also email the
speakers, tweet the completion of video files, and do other things to announce
their existence to the world.&lt;P&gt;

There are a couple of hurdles in this process. Firstly, DVswitch only deals
with raw DV files recorded via Firewire. These consume about a gigabyte per
hour of video, per room - the whole of LCA&apos;s raw recorded video for a week
comes to about 2.2 terabytes.  These are recorded to the hard drive of the
master machine in each room; from there they have to be rsync&apos;ed to the
main video server before any actual mark-up and processing in Veyepar can
begin.  It also means that previews must be generated of each raw file
before it can be watched normally in Veyepar, a further slow-down to the
process of speedily delivering raw video.  We tried using a file sink on the
main video server that talked to the master laptop&apos;s DVswitch program and
saved its recordings directly onto the disk in real time, but despite having
tested this process in November 2012 and it working perfectly, during the
conference it tended to produce a new file each second or three even when
the master laptop was recording single, hour-long files.&lt;P&gt;

Most people these days are wary of &quot;yak shaving&quot; - starting a series of
dependent side-tasks that become increasingly irrelevant to solving the main
problem. We&apos;re also wary of spending a lot of time doing something by hand
that can or should be automated.  In any large endeavour it is important to
strike a balance between these two behaviours - one must work out when to
stop work and improve the system as a whole, and when to keep using the
system as is because improving it would take too long or risk breaking things
irrevocably.  I fear in running the AV system at LCA I have tended toward
the latter too much - partly because of the desire within the team (and
myself) to make sure we got video from the conference at all, and partly
because I sometimes prefer a known irritation to the unknown.&lt;P&gt;

The other major hurdle is that Veyepar is not inherently set up for
distributed processing. In order to have a second Veyepar machine processing
video, one must duplicate the entire Veyepar environment (which is written in
Django) and point both at the same database on the main server. Due to a
variety of complications, this was not possible without stopping Veyepar and
possibly having to rebuild its database from scratch, and I and the team
lacked the experience with Veyepar to know how to easily set it up in this
configuration. I didn&apos;t want to start to set up Veyepar on other machines and
finding myself shaving a yak and looking for a piece of glass to mount a piece
of 1000-grit wet and dry sandpaper on to sharpen the razor correctly.&lt;P&gt;

Instead, I wrote a separate system that produced batch files in a &apos;todo&apos;
directory.  A script running on each &apos;slave&apos; encoding machine periodically
checked this directory for new scripts; when it found one it would move it
to a &apos;wip&apos; directory, run it, and move it and its dependent file into a
&apos;done&apos; directory when finished.  If the processes in the script failed
it would be moved into a &apos;failed&apos; directory and could be resumed manually
without having to be regenerated.  A separate script (already supplied in
Veyepar and modified by me) periodically checked Veyepar for talks that
were set to &quot;encode&quot;, wrote their encode script and set them to &quot;review&quot;.
Thus, as each talk was marked up and saved as ready to encode, it would
automatically be fed into the pipeline.  If a slave saw multiple scripts
it would try to execute them all, but would check that each script file
existed before trying to execute it in case another encoding machine had
got to it first.&lt;P&gt;

That system took me about a week of gradual improvements to refine.  It
also took me giving a talk at the CLUG programming SIG on parallelising
work (and the tricks thereof) to realise that instead of each machine
trying to allocate work to itself in parallel, it was much more efficient
to make each slave script do one thing at a time and then run multiple
slave scripts on each encoder to get more parallel processing, thus
avoiding the explicit communication of a single work queue per machine.
It relies on NFS correctly handling the timing of a file move so that one
slave script cannot execute the script another has already moved into
work in progress, but that at this granularity of work is a very small
time of overlap.&lt;P&gt;

I admit that, really, I was unprepared for just how much could go wrong with
the gear during the conference.  I had actually prepared; I had used the
same system to record a number of CLUG talks in months leading up to the
conference; I&apos;d used the system by myself at home; I&apos;d set it up with
others in the team and tested it out for a weekend; I&apos;ve used similar
recording equipment for many years.  What I wasn&apos;t prepared for was that
things that I&apos;d previously tested and had found to work perfectly would
break in unexpected ways:&lt;P&gt;

&lt;ul&gt;

&lt;li&gt;In testing, the slave system capturing the output from the speaker&apos;s
laptop would continue capturing when it was unplugged; during the conference,
the capture process would die completely and had to be restarted
manually.&lt;/li&gt;

&lt;li&gt;Noticeable audio hum would come from a couple of rooms when the speaker
left the audio cable unplugged.&lt;/li&gt;

&lt;li&gt;The main video server&apos;s RAID system threw a hard disk on Wednesday and
had to be taken offline to be backed up in full before I could start using
it again.&lt;/li&gt;

&lt;li&gt;The machines we used for recording Llewellyn Hall were newer than the
kernel in the image we were using and it didn&apos;t recognise the firewire
cards or the video display, and had to be upgraded.&lt;/li&gt;

&lt;li&gt;The 60 minute DV tapes only recorded about 40 minutes of video.&lt;/li&gt;

&lt;li&gt;The wireless microphone batteries would occasionally die, often producing
lots of pops beforehand.&lt;/li&gt;

&lt;li&gt;In a couple of recordings, the video just speeds up for no readily
apparent reason and then goes back to normal.&lt;/li&gt;

&lt;li&gt;Speakers laptops are a very mixed bunch and, even when the speaker
is convinced that they&apos;ve set their external output to the right resolution,
can stop producing video or refuse to work with the input system.&lt;/li&gt;

&lt;li&gt;It was difficult for the person in charge of the mixing in each room to
be sure that what they were seeing on their screen, and what they were
hearing, was actually what was being recorded to disk.&lt;/li&gt;

&lt;li&gt;DVswitch does not handle partial failure well - when we started, the only
way for a room to easily fix a system that wasn&apos;t working was to restart all
the software and hope it worked that time. By the end of the conference, Jason
Nicholls and Luke John in the AV team had written a system that handled this
process much better.&lt;/li&gt;

&lt;li&gt;The naming scheme of the files was roomname/date/time, which meant
that it was possible to inadvertently copy the video from one room&apos;s master
laptop into the directory for another room.  This happened because the rsync
process was being run manually for fear of overloading the network and/or
the main server&apos;s hard disk transfer speed.&lt;/p&gt;

&lt;li&gt;It turns out that using a souped-up games machine with motherboard RAID
controller isn&apos;t very good at handling one disk failing.&lt;/li&gt;

&lt;li&gt;Running all the VMs for running the conference including the video
processing and the main router for the network on one souped-up games machine
can be a problem if there are hardware issues with that machine, and is going
to be a problem if one or more of those machines is going to run CPU-intensive
tasks like video processing.&lt;/li&gt;

&lt;li&gt;Top-end, brand new machines running a standard version of Ubuntu lock up
hard and have to be manually reset on an intermittent basis.  Some locked up
when running ffmpeg or ffmpeg2theora, and some locked up literally as I was
typing a command into them when they were otherwise completely idle.  It&apos;s
more difficult to reset these when they&apos;re sitting in an office in ANU and
you aren&apos;t.&lt;/p&gt;

&lt;/ul&gt;

The other main problem that galls me is that there are inconsistencies in
the recordings that I could have fixed if I&apos;d been aware of them at the
time.  Some rooms are very loud, others quite soft.  Some rooms cut the
recording at the start of the applause, so I had to join the next segment
of recording on and cut it early to include the applause that the speaker
deserved.  There were a few recordings that we missed entirely for reasons
I don&apos;t know.  I was busy trying to sort out all the problems with the main
server and I was immensely proud of and thankful for the team of Matt
Franklin, Tomas Miljenovic, Leon Wright, Euan De Koch, Luke John and Jason
Nicholls who got there early, left late, worked tirelessly, and leapt - 
literally - up to fix a problem when it was reported.  Even with a time
machine some of those problems would never be fixed - I consider it
both rude and amateur to interrupt a speaker to tell them that we them to 
start again due to some glitch in the recording process.&lt;P&gt;

But the main lesson to me is that you can only practice setting it up, using
it, packing it up and trying again with something different in order to find
out all the problems and know how to avoid them.  The 2014 team were there
in the AV room and they&apos;ll know all of what we faced, but they may still find
their own unique problems that arise as a result of their location and
technology.&lt;P&gt;

There&apos;s a lot of interest and effort being put in to improve what we have.
Tim Ansell has started producing gstswitch, a Gstreamer-based program 
similar to DVswitch which can cope with modern, high-definition, compressed
media.  There&apos;s a lot of interest in the LCA 2014 team and in other people
to produce a better video system that is better suited to distributed
processing, distributed storage and cloud computing.  I&apos;m hoping to be
involved in this process but my time is already split between many different
priorities and I don&apos;t have the raw knowledge of the technologies to be 
able to easily lead or contribute greatly such a process.  All I can do is
to contribute my knowledge of how this particular LCA worked, and what I
would improve.</description>
  </item>
  <item>
    <title>Code on the beach!</title>
    <pubDate>Tue, 05 Mar 2013 21:13:00 +1100</pubDate>
    <link>http://mabula.net/tbfw/2013/03/05#2013-03-05-codebeach-2013</link>
    <category>/tech</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/tech/2013-03-05-codebeach-2013</guid>
    <description>In 2011 I ran an event called &lt;a href=&quot;http://mabula.net/codecave2011.html&quot;&gt;CodeCave&lt;/a&gt;, which
saw nine intrepid coders and three intrepid family go to Yarrangobilly Caves to
spend a cool, wet winter weekend coding, eating, exploring in caves, coding,
playing Werewolf, taking photos, coding, swimming (!), talking, flying planes
and helicopters, and coding. Being an extrovert, I love those opportunities to
see friends doing cool things with code, and my impression is everyone enjoyed
the weekend.&lt;P&gt;

I had a hiatus in 2012 for various reasons, but this year I&apos;ve decided to run
another similar event.  But, as lovely as Yarrangobilly is and as comfortable
as the Caves House was to stay in, it&apos;s a fair old five hour drive for people
in Sydney, and even Canberrans have to spend the best part of two hours
driving to get there.  And Peter Miller, who runs the fabulous CodeCon (on
which CodeCave was styled) every year, is going to be a lot better off near
his health care and preferred hospital.  Where to have such an event, then?&lt;P&gt;

One idea that I&apos;d toyed with was the Pittwater YHA: close to Sydney (where
many of the attendees of CodeCave and CodeCon come from), still within a
reasonable driving distance from Canberra (from where much of the remainder of
the attendees hail), and close to Peter&apos;s base in Gosford.  But there&apos;s no
road up to it, you literally have to catch the ferry and walk 15 minutes to
get there - while this suits the internet-free aesthetic of previous events,
for Peter it&apos;s probably less practical.  I discussed it on Google+ a couple
of weeks ago without a firm, obvious answer (Peter is, obviously, reserving
his say until he knows what his health will be like, which will probably be
somewhere about two to three weeks out I imagine :-) ).&lt;P&gt;

And then Tridge calls me up and says &quot;as it happens, my family has a house
up on the Pittwater&quot;.  To me it sounds brilliant - a house all to ourselves,
with several bedrooms, a good kitchen, and best of all on the roads and
transport side of the bay; close to local shops, close to public transport,
and still within a reasonable drive via ambulance to Gosford Hospital (or,
who knows, a helicopter).  Tridge was enthusiastic, I was overjoyed, and
after a week or so to reify some of my calendar that far out, I picked from
&lt;B&gt;Friday 26th July&lt;/B&gt; to &lt;B&gt;Sunday 28th July&lt;/B&gt; 2013.&lt;P&gt;

So it&apos;s now called &lt;a href=&quot;http://mabula.net/codebeach2013.html&quot;&gt;CodeBeach
2013&lt;/B&gt;, and it also has a &lt;a href=&quot;https://docs.google.com/forms/d/1zhSiDFZwfF7vzbwM-pUSk-W-NfsCjWsLEjQHm_sPMAo/viewform&quot;&gt;snazzy
Google Form&lt;/a&gt; to take bookings on.  Please &lt;a href=&quot;mailto:paulway&amp;#64;mabula.net&quot;&gt;drop
me an email&lt;/a&gt; if you&apos;ve got any questions.  We&apos;d love to have you there!</description>
  </item>
  <item>
    <title>There&apos;s no solution</title>
    <pubDate>Tue, 20 Nov 2012 22:15:00 +1100</pubDate>
    <link>http://mabula.net/tbfw/2012/11/20#2012-11-20-no-solution</link>
    <category>/society</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/society/2012-11-20-no-solution</guid>
    <description>There&apos;s no &apos;once again&apos; or &apos;recently&apos; about this; it&apos;s not like it&apos;s crept up
on us.  There are the people, like myself and most of the women I know, that
keep on asking for women to be treated equally and fairly.  There are the
other people, poking their heads up from time to time, who seem to come up
with all these reasons why the reasons why we should treat people equally and
fairly are wrong, or biased, or silly, or being made too much of, or finding
problems with some of the reasons, or just endlessly debating why any of this
should be talked about at all.  The battleground I&apos;m particularly thinking of
is within the Free Open Source Software community, but it applies everywhere.&lt;P&gt;

Tom Morris &lt;a href=&quot;http://tommorris.org/posts/2506&quot;&gt;recently observed&lt;/a&gt;
that it comes down to privilege: the people who don&apos;t have to worry about
being taken seriously and don&apos;t get sexually harrassed at conferences don&apos;t
know what all the fuss is about.  They don&apos;t see the lovely invisible glow that
surrounds them, coming mainly from their background - they&apos;re white males from
the middle and upper classes.  Tom points out that they - we - like to tell
ourselves that really we had it tough, and really we&apos;re here because of our
hard hacker cred, but actually we only got that because we got the computers,
and that&apos;s more to do with being white and male and having parents that could
afford computers and going to schools that had computers.  Let&apos;s face it, if
your elder brother kicks you off the computer every chance he gets, you&apos;re not
going to get much of a chance to use one no matter who you are.&lt;P&gt;

I think you can see this, also, in the variants of the Four Yorkshiremen
Sketch that one almost inevitably hears when a group of geeks get together.
A sample dialogue goes something like:

&lt;ul&gt;
 &lt;li&gt;Joshua: Yeah, you can&apos;t beat the old platforms.  I remember learning to
 program on a 386.&lt;/li&gt;
 &lt;li&gt;Obadiah: 386, eh?  We couldn&apos;t afford one of those.  We had a 286 with a
 broken memory controller thanks to IBM.&lt;/li&gt;
 &lt;li&gt;Ezekiel: Memory controller!  Luxury.  We had an 8086 with 128 kilobytes
 of memory and we ran Windows 1 on it.  When we got an upgrade and could put
 an extra 128 kilobytes of RAM chips into the sockets by hand we thought we&apos;d
 died and gone to heaven.&lt;/li&gt;
 &lt;li&gt;Joshua: Well, when I say a 386, it was only emulating a Z80 with 48
 kilobytes of RAM.&lt;/li&gt;
 &lt;li&gt;Josiah: We had the school&apos;s Z80 confiscated from us.  We used to write
 programs on pieces of paper and have other people act as parsers for us until
 we got our access back.&lt;/li&gt;
 &lt;li&gt;Obadiah: Well, of course, we had it tough.  We had to program
 on punched cards, and we only had a stanley knife to cut the chads out.&lt;/li&gt;
 &lt;li&gt;Ezekiel: Oh, aye, punched cards.  We used to use them, but we only had
 four of them, and if we wanted to use a fifth card we&apos;d take the first card
 and sticky-tape the chads back in.&lt;/li&gt;
 &lt;li&gt;Joshua: And if you tell the young people of today that, they won&apos;t
 believe you.&lt;/li&gt;
&lt;/ul&gt;

Etc. etc. etc.  The point of this is partly one-upmanship, to try and
establish who&apos;s worked on the more esoteric platform, but the subtext (like
that of the original sketch) is that it was pure skill and hard work that got
us to be where we are.  Yet look at the situations these people talk about,
and all of them indicate access to a computer - that&apos;s not something that just
happened, those people were lucky to have parents or a school that had the
equipment and be granted access to the machine.  That, Gentlemen, is
privilege.&lt;P&gt;

One thing that I recently learned - in perhaps a bit more blunt way than I
really wanted - is that sometimes even when you can see a solution to a
problem, it still won&apos;t actually get solved.  In the FOSS community we have a
tendency to try and solve every problem: it&apos;s almost inevitable that given a
group of hackers and suboptimal situation - trying to work out the cost per
person at a restaurant, or waiting a long time for a change of lights at an
intersection, or &lt;a href=&quot;http://xkcd.com/173/&quot;&gt;seating people at a theatre&lt;/a&gt;
- a &quot;friendly&quot; discussion will ensue on how to &quot;solve&quot; this &quot;problem&quot;.  Any
slight problem - from not getting a T-shirt that fits correctly for one&apos;s
body type to not being able to watch a video when one wants - becomes
something that &lt;u&gt;must&lt;/u&gt; be solved.  And when that solution is not enacted
by those in the power to do so, it is seen as some kind of malicious assault
on not just oneself but the whole principle of efficiency and reason,
&lt;a href=https://en.wikipedia.org/wiki/Hanlon%27s_razor&quot;&gt;Hanlon&apos;s Razor&lt;/a&gt; not
withstanding.&lt;P&gt;

There is one fundamental problem with this view: it is utterly wrong.&lt;P&gt;

It is another day&apos;s labour to talk about the problems that this behaviour
causes.  To relate it to the problems of fairness and equality, it is, I
believe, a mistake to see these as problems one can &quot;solve&quot; in the same sense
that one solves a problem with software by submitting a bug report, a patch, or
working with the maintainers.  And I&apos;m not talking about solving social
problems with technical solutions (although some have proposed them).&lt;P&gt;

Put simply, the problems we have with a lack of fairness and equality,
particularly in gender, are only solved by a long, hard, tedious process of
gradually educating people, by trying to right individual wrongs over and over
again, of continually trying to make people aware of the problem they are so
determined to ignore.  There&apos;s no magic fix.  This, or any other blog post,
will not make everything work.  No cunning argument or cogent example or
impeccable logic will convert everyone.  It&apos;s a long, boring, degrading process
- but the alternative is to see equality and fairness eroded away over time.&lt;P&gt;

And, worse, there are people who will never concede that there is a problem,
who are mysoginst bastards, who will always assert that they&apos;re being
perfectly reasonable even when being completely sexist.  There are people who
we cannot change, and who expect that we must change.  And we have to accept
and allow those people to be a &lt;a href=&quot;http://rusty.ozlabs.org/?p=196&quot;&gt;part
of our community&lt;/a&gt;.  We can, as Matt Garrett has, choose who we personally
want to associate with, but in my view that makes us a little less tolerant
and a little more like the people we hate in the process.&lt;P&gt;

So we must continue to support women - to support all the groups that are
ill-treated or neglected by the communities in which we play.  We must keep on
patiently reasoning with people who object to whatever encroaches on their
sense of entitlement.  We must keep writing the anti-harrassment policies, and
keep on enforcing them.  We must persevere to make the world a better place.&lt;P&gt;

I&apos;d also add that we need to remember that the opinions that a person may have
do not summarise them completely.  As Rusty says, just because you&apos;re a great
coder doesn&apos;t mean you&apos;re not a crackpot.  Likewise, just because someone is
a crackpot - or expresses views we disagree with - doesn&apos;t mean they don&apos;t
write good code.  (And sometimes someone we agree wholeheartedly with at a
deep philosophical level also writes crap code, but that&apos;s another story).
We don&apos;t even necessarily have to agree with all the other people who are
similarly disposed to want more equality and fairness.  We all play our own
parts, in whatever ways we can and for whatever causes we believe in.&lt;P&gt;

These are tough problems, and there aren&apos;t easy solutions; but we can&apos;t
let that lack of easy solutions put us off trying to make it better.
</description>
  </item>
  <item>
    <title>Why ask the question?</title>
    <pubDate>Sun, 04 Nov 2012 21:17:00 +1100</pubDate>
    <link>http://mabula.net/tbfw/2012/11/04#2012-11-04-why-ask-the-question</link>
    <category>/personal</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/personal/2012-11-04-why-ask-the-question</guid>
    <description>A friend at work mentioned that his daughter had been given an assignment in
maths to find a series of five numbers such that the median is less than the
mode, and the mode is equal to the mean.  Naturally, I couldn&apos;t let this rest
until I&apos;d worked it out, and eventually I got to proving that it&apos;s impossible.
Here&apos;s my proof - if someone finds a hole in it please let me know :-)&lt;P&gt;

Let the five numbers be a, b, c, d, e, in ascending order.  For there to be a
mode that is not the median, two numbers have to be the same and every other
number is different - those two numbers have to be a and b or d and e.  Let&apos;s
consider the case where they&apos;re d and e - the other case is symmetric.  For
the mean to equal the mode:&lt;P&gt;
&lt;ol&gt;
 &lt;li&gt;(a+b+c+d+e)/5 = d.  In other words:&lt;/li&gt;
 &lt;li&gt;a+b+c+d+e = 5d.  Since d = e,&lt;/li&gt;
 &lt;li&gt;a+b+c = 5d - 2d.  Therefore:&lt;/li&gt;
 &lt;li&gt;(a+b+c)/3 = d.&lt;/li&gt;
&lt;/ol&gt;

Now, we know that a, b and c are all less than d.  This means they can never
sum to be equal to d, and thus it&apos;s impossible to find such a sequence.&lt;P&gt;

Hopefully the next person who gets given this rather bizarre question will find
this and get the answer without straining their brain coming up with cases.
It is, of course, quite possible that the question had been garbled in
between the teacher and me - it is, of course, trivial to think of a five
number series where the median is less than the mean which in turn is less than
the mode.  Ah well, that&apos;s that off my brain now... :-)</description>
  </item>
  <item>
    <title>Emotional computing</title>
    <pubDate>Mon, 17 Sep 2012 21:21:00 +1000</pubDate>
    <link>http://mabula.net/tbfw/2012/09/17#2012-09-17-emotional-computing</link>
    <category>/society/tech</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/society/tech/2012-09-17-emotional-computing</guid>
    <description>Kate and I were wandering through the Canberra Centre a week or two ago and
passed the new Apple Store on its opening day.  And OMG the total losing fanboy
idiocy of it was stunning.  People queueing for their right to go in, people
getting high-fives from Apple staff when entering, videoing themselves going in
on iPads and whatever.  It was such a great quantity of wankery - sad,
self-indulgent narcissism - that both of us instinctively reacted to it by not
wanting to be anywhere near it.  It actually tarnished the whole experience by
being so over-the-top.&lt;P&gt;

Now, we know that Apple works very hard to maintain that emotion-steeped,
intellect-free connection to their fanboys - even their programming howto videos
come across more as marketing hype than real useful information.  The amusing
thing is that even there, in my opinion, they still outshine Linux zealots for
pure fact-free, judgemental thinking.  Linux zealots are much worse than Apple
fanboys for telling everyone to convert to free open source software whenever
someone complains about any other product, though, so that&apos;s kind of evened up.
To go a step back from the great T-shirt slogan &quot;No I Will Not Fix Your
Computer&quot;, we need to stop trying to fix everyone else&apos;s problems, or assuming
that we have to (or even can).&lt;P&gt;

The really funny thing to me, in this competition of eagerness, is how
Microsoft has really given up.  The &quot;Mac Vs PC&quot; ads did wonders for that
emotional image-based buy-in for Apple, but I wasn&apos;t really expecting Microsoft
to embrace the image too.  They have, though - Microsoft seems to be making no
effort to be anything but conventional, slightly stuffy, older and prone to
clumsiness.  Worse, they&apos;ve inspired the GNOME 3 developers: Microsoft started
&quot;reinventing&quot; the Windows interface and throwing in pointless, ugly, hard to
use changes to its Office suite about eighteen months before the GNOME
developers started telling everyone that making things more difficult was the
way of the future, as far as I can see.&lt;P&gt;

Microsoft is also engaging in exactly the same tactics it used twenty years
ago that got it in trouble with the US government.  It&apos;s paying Intel and AMD
a lot of money to create &quot;Windows-Only Processors&quot;, on the amazingly naive
notion that somehow the rest of the world a) can&apos;t read machine code, b) can&apos;t
reverse engineer, and c) gives a toss, given that those processors are slower,
more power hungry and less innovative than ARM processors these days.  It&apos;s
been waging this war on other operating systems via UEFI and presumably thinking
that at some point the Linux community will just give up, rather than doing what
it&apos;s done for the last 20 years and work a way around the problem.  It keeps
utterly failing to get any real traction with its phones and tablets.  It&apos;s
only now started to try and market a costly product that vaguely duplicates
what you get for free with Google Docs.&lt;P&gt;

Personally, I think this is due to Bill Gates leaving.  I think he knew that
Microsoft was heading toward a brick wall and it was just too big, stupid and
uncoordinated to think to take its foot off the accelerator pedal.  They&apos;ve
bled money in court cases, in DRM systems that no-one&apos;s wanted, in aborted
projects (e.g. Pink) and just in sheer lack of anything new.  Even that famed
vendor lock in gradually erodes - look at how abysmally Vista did in the
business world, even if you disregard the various organisations and government
departments that are going with Linux on the desktop.  And without someone with
the fame, or even the charisma, of Gates, they&apos;re just hand-waving and hoping
that someone cares about them.&lt;P&gt;

Ultimately, I believe that free software won&apos;t &quot;win&quot; any more than Apple could
&quot;win&quot; the phone market.  It&apos;ll be part of the ecosystem.  As more and more
people learn of the advantages of using free, open source software, I think it
will be more popular - really, it&apos;s problem in not reaching a wider audience has
been obscurity rather than active oppression.  And I think there&apos;s still the
emotional attachment to free, open source software, but it&apos;s the same emotional
attachment one has to science - it&apos;s cool and majestic but also based on
principles we know and can see.  The more Apple and Microsoft try to eliminate
their competition, the more they lose the respect of their fans.
</description>
  </item>
  <item>
    <title>The depressing news about electric cars</title>
    <pubDate>Sun, 19 Aug 2012 07:50:00 +1000</pubDate>
    <link>http://mabula.net/tbfw/2012/08/19#2012-08-12-depressing-news-electric-cars</link>
    <category>/society</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/society/2012-08-12-depressing-news-electric-cars</guid>
    <description>One of the members of the Canberra Electric Vehicles group recently asked
&lt;B&gt;&quot;...what you think would be incentives that [the government could implement
that] would work at increasing the number of electric vehicles on the
roads?&quot;&lt;/B&gt;.  The more I think about it, the more I fear the real answer is
&quot;nothing&quot;.&lt;P&gt;

The absolute last thing they should do&lt;sup&gt;&lt;small&gt;&lt;a
href=&quot;#20120810note1&quot;&gt;[1]&lt;/a&gt;&lt;/small&gt;&lt;/sup&gt;, in my opinion, is offer any form of
rebate or cash back on buying an electric vehicle.  We&apos;ve seen this time and
time again: offer a rebate on LPG fitting for cars and, &lt;i&gt;mirabile dictu&lt;/i&gt;,
suddenly the cost of fitting LPG to cars goes up by almost exactly the same
amount.  Offer a $4000 bonus for first home owners, and the entire housing
market jumps up by $4000 (hurting just about everyone else even worse).  In my
opinion this is a classic tactic suggested by the industry in question when it
wants to make it sound like it&apos;s working with the Government to do something to
help, but make sure that it gets a lot more money in the process.  It&apos;s not a
bad policy for the Government, since it gets a cut of their business taxes
anyway.&lt;P&gt;

The second last thing is to make other &apos;cash back&apos; or discount gestures to
electric car buyers that aren&apos;t going to be permanent.  The wailing and
gnashing of teeth when the Government cut the Solar Panel Rebate was heard
throughout the land - it bootstrapped the industry, yes, and that was a good
thing, but when the rebate is dropped it then makes the Government look uncaring
for the people it was only recently helping.  If it&apos;s something I pay yearly,
like registration, I don&apos;t want to find out that it&apos;s suddenly gone up because I
was one of the first to do something that other people finally joined in on.&lt;P&gt;

It&apos;s also trivial in comparison to the cost of the whole vehicle, especially
when looked at in total.  The Government putting $10,000 into paying all
road-worthy electric vehicles&apos; registrations doesn&apos;t, one has to admit, have
much sound-bite potential.  And when the vehicle is $50,000, a saving of $500
is but 1% - you save more than that in choosing to not get the luxury leather
seats.  And for people like me building a vehicle it&apos;s at the wrong end of the
process - I&apos;ve already committed over $12,000 to the bike now, I&apos;m not going
to hold off registering it because I can&apos;t afford the rego.&lt;P&gt;

What&apos;s left?  Really, as far as I can see, there are two major remaining
options left to get more people to buy electric vehicles.  One is to actually
mandate their cost, so that they actually are cheaper.  The other is to
massively subsidise a new electric car industry in Australia to compete with
the existing manufacturers - their price can be lower because their costs are
subsidised by the Government.&lt;P&gt;

Both of those, as far as I can see, aren&apos;t going to happen.  The first would
have every petrol car company screaming blue murder about price fixing and
uncompetitive practices.  And the second would ... yeah, have about the same
effect.  And take much longer.  In the plus column, building a new industry
producing cars that we know there will be a big demand for in the future is
what Tesla did five years ago; with car manufacturing plants closing across
the country, getting them going again with electric cars would be a big
boost to employment and the manufacturing sector.  But not even a Labor
government is going to suggest that we do this; it&apos;s just too much like
British Leyland&lt;sup&gt;&lt;small&gt;&lt;a href=&quot;#20120810note2&quot;&gt;[2]&lt;/a&gt;&lt;/small&gt;&lt;/sup&gt;.&lt;P&gt;

Electric vehicles still suffer from an image problem, despite the in-roads
that the Tesla Roadster has made.  New cars like the Renault Fluence, the
Holden Volt and the &lt;a href=&quot;http://evengineering.com.au/&quot;&gt;Holden Commodore
conversions&lt;/a&gt; are looking more like standard cars, and have standard
abilities such as towing a trailer.  But these are still relatively 
expensive; fortunately, there&apos;s a way the price can come down.  Meanwhile,
with the Leaf and the iMiev looking like bubbles of plastic and the Twizy
looking like the designer was from a magical land where it never rained
and never got below 20&amp;deg;C or above 30&amp;deg;C, we&apos;ve got a way to go yet
before people can accept that electric cars are ordinary, working cars.&lt;P&gt;

At the EV group meeting we had a speaker from &lt;a href=&quot;http://www.betterplace.com.au/&quot;&gt;Better
Place&lt;/a&gt;.  Unfortunately I missed his main presentation but the question and
answer session was fairly lively&lt;sup&gt;&lt;small&gt;&lt;a
href=&quot;#20120810note3&quot;&gt;[3]&lt;/a&gt;&lt;/small&gt;&lt;/sup&gt;.  One of the things Better Place
is putting forward is &lt;a
href=&quot;http://www.betterplace.com.au/about-us/our-solution.html&quot;&gt;switching
batteries&lt;/a&gt; rather than recharging in the car.  The Fluence and the
Commodore conversion will support this; Better Place is obviously working with
other manufacturers to get them to use the technology.&lt;P&gt;

The two big questions with that are: is there going to be competition to 
Better Place, and is there going to be a standard for removable car batteries.
Some kind of competition is good, so that Better Place don&apos;t get a monopoly
on the technology and then limit access.  And that competition needs a set of
standards on how batteries are designed, manufactured and instrumented, so
that we can rely on being able to plug in a battery and having it work and not
lie about its charge state&lt;P&gt;

My question to the Better Place representative, that followed on from those two
principles, was: hobbyists want to get in on this technology too.  We know it&apos;s
easier for you to deal with major manufacturers, but if you lock out the very
people that have been leading the way, you&apos;ll alienate a group of enthusiastic
potential customers.  This happens all the time, so it&apos;s not going to stop us
building electric vehicles, but it&apos;s disheartening when you can see the prize in
front of you but you&apos;re barred from taking it.&lt;P&gt;

The strategy that Better Place is taking is that the car is cheap but you pay
to change the batteries over.  This has the feel of the &quot;razor and blade&quot;
problem, but it is a reasonable way to lower the price of the vehicle.  But
even when we lower the price down to comparable to a current petrol car, EVs
are still going to have lower range for the next five or so years while
lithium battery technology ramps up.  In that time, there&apos;s really not much
the Government can do to get more people to buy electric vehicles.&lt;P&gt;

Actually, there is one: use them themselves.  If the Government were to start
converting their fleets to electric, there&apos;d be numerous benefits.  The cost per
car would come down, as manufacturers could commit to larger production numbers
and shipments.  More people would find out about electric cars, find that
they&apos;re pretty decent vehicles, found some of their myths dispelled, and got
used to their foibles (e.g. the quiet).  The Government can show that it&apos;s
reducing its carbon footprint and pay less in carbon tax and fuel.  And in three
to four years&apos; time we&apos;d see a further flow-on effect as the leased fleet got
sold into the general used vehicle pool.&lt;P&gt;

Overall, it sounds like a win to me.  Let&apos;s hope that writing to my local
Federal member has some effect.&lt;P&gt;

&lt;a name=&quot;#20120810note1&quot;&gt;[1]&lt;/a&gt;: of course, there&apos;s even worse that they can do.
They can do nothing.  They can charge more for registering electric vehicles
since they don&apos;t pay fuel tax.  They can offer massive subsidies to the fuel
industry to keep it going.  I&apos;m positing that the Government actually wants
to promote electric vehicles, for example as part of its carbon reduction
strategy&lt;P&gt;

&lt;a name=&quot;#20120810note2&quot;&gt;[2]&lt;/a&gt;: it&apos;s a bizarre world when it makes sense for
the Government to do something because the commercial operators are too 
inherently conservative and resistant to change to actually try to keep their
industry alive and move with the times.&lt;P&gt;  

&lt;a name=&quot;#20120810note3&quot;&gt;[3]&lt;/a&gt;: as you&apos;d expect from a bunch of people who
have been saying &quot;come on, everybody, electric cars are the future, let&apos;s 
move now, let&apos;s not get trapped into depending on oil!&quot; for the last twenty
years.&lt;/p&gt;
</description>
  </item>
  <item>
    <title>The Library That Should Be</title>
    <pubDate>Sat, 18 Aug 2012 18:25:00 +1000</pubDate>
    <link>http://mabula.net/tbfw/2012/08/18#2012-08-13-the-library-that-should-be</link>
    <category>/tech</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/tech/2012-08-13-the-library-that-should-be</guid>
    <description>In my current job, I have to look at PHP.  Often, I have to run command-line
programs written in PHP.  All of these programs have a typically PHP approach
to command line processing - in other words, it&apos;s often a hack, it&apos;s done
without any great consistency, and you have to do a lot of the hard work
yourself.  There are at least three command-line processing libraries in PHP,
but I longed for Perl&apos;s wonderful &lt;tt&gt;Getopt::Long&lt;/tt&gt; module because it 
improved on them in several important ways:&lt;P&gt;

&lt;ul&gt;
 &lt;li&gt;You specify all the synonyms for the option in one go, both short and
   long.&lt;/li&gt;
 &lt;li&gt;The result of that command-line option is put in a linked variable,
   rather than having to fish around for it yourself.&lt;/li&gt;
 &lt;li&gt;It can do basic type-checking for options that take integers.&lt;/li&gt;
 &lt;li&gt;It can check whether there is an argument needed for that flag and
   die if it isn&apos;t supplied.&lt;/li&gt;
 &lt;li&gt;It also handles flags, incrementing options, and putting multiple
   arguments into an array rather than just catching the last one.&lt;/li&gt;
 &lt;li&gt;It gives you back the list of other, non-&apos;option&apos; arguments - for
   example, a list of files can be interspersed amongst options.&lt;/li&gt;
&lt;/ul&gt;

The main thing we want to eliminate by using modules is &apos;boilerplate&apos;, and
the current offerings for command-line processing in PHP still require lots of
extra code to process their results.  So, because the current offerings were
insufficient, I decided to write my own.  The result is:&lt;P&gt;

&lt;a href=&quot;http://tangram.dnsalias.net/repos/PWphp/getopt_long/trunk&quot;&gt;Console_GetoptLong&lt;/a&gt;&lt;P&gt;

Along the way I added a couple of things.  For a start, Console_GetoptLong
recognises --option=value arguments, as well as -ovalue where &apos;o&apos; is a single
letter option and doesn&apos;t already match a synonym.  It also allows combining
single-letter options, like &lt;tt&gt;tar -tvfz&lt;/tt&gt; instead of &lt;tt&gt;tar -t -v -f
-z&lt;/tt&gt; (and you&apos;ve specified that it should do that - this is off by default).
It gives you several ways of handling something starting with a dash that
isn&apos;t a defined synonym - warn, die, ignore, or add it to the unprocessed
arguments list.&lt;P&gt;

One recent feature which hopefully will also reduce the amount of boilerplate
code is what I call &apos;ordered unflagged&apos; options.  These are parameters that
aren&apos;t signified by an option but by their position in the argument list.  We
use commands like this every day - &lt;tt&gt;mv&lt;/tt&gt; and &lt;tt&gt;cp&lt;/tt&gt; are examples.
By specifying that &apos;_1&apos; is a synonym for an option, Console_GetoptLong will
automatically pick the first remaining argument off the processed list and, if
that parameter isn&apos;t already set, it will make that first argument the value
of that parameter.  So you can have a command that takes both &apos;-i input_file&apos;
and &apos;input_file&apos; style arguments, in the one parameter definition.&lt;P&gt;

Another way of hopefully reducing the amount of boilerplate is that it can
automatically generate your help listing for you.  The details are superfluous
to this post, but the other convenience here is that your help text and your
synonyms for the parameter are all kept in one place, which makes sure that if
you add a new option it&apos;s fairly obvious how to add help text to it.&lt;P&gt;

As always, &lt;a href=&quot;mailto:paulway&amp;#64;mabula.net&quot;&gt;I welcome any feedback&lt;/a&gt;
on this.  Patches are even better, of course, but suggestions, bug reports, or
critiques are also gladly accepted.</description>
  </item>
  <item>
    <title>Satisfying Sudokus</title>
    <pubDate>Sun, 12 Aug 2012 21:33:00 +1000</pubDate>
    <link>http://mabula.net/tbfw/2012/08/12#2012-07-17-satisfying-sudokus</link>
    <category>/personal</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/personal/2012-07-17-satisfying-sudokus</guid>
    <description>I do like Sudoku puzzles.  There&apos;s something satisfying about the types of
logic, the positive and negative inferences, one uses to solve it.  I have
several processes I use, depending on whether I&apos;m using a paper and pen or a
computer or a phone.  I&apos;m up to solving some of the &quot;Very hard&quot; in GNOME
Sudoku - in SudokuWiki terms I can usually solve anything that doesn&apos;t need
one of their &quot;tough&quot; strategies, although I&apos;ve had a couple of times when I&apos;ve
recognised e.g. a unique rectangle as well.&lt;P&gt;

But some puzzles are more satisfying to solve than others.  I hate ones where
you have to use any kind of guesswork - in other words, trying out one number
in a position and seeing if it breaks any rules anywhere.  I don&apos;t like having
to find positions where there&apos;s a unique number as a result of box, row and
column intersection.  Not being able to solve a puzzle that should be solvable
at my skill level is frustrating - especially as I suspect that some puzzle
setters rate things I find hard as easy.  And there&apos;s a nagging doubt that, for
some puzzles, my way of solving a Sudoku occasionally leads to it being harder
to solve than if I just, for example, turned on GNOME Sudoku&apos;s &quot;show possible
numbers&quot; display and filled in the places that only listed one possibility.&lt;P&gt;

Incidentally, this is why I find it amusing that someone wrote a program to
solve Sudokus as fast as possible by trying possible combinations in turn, as
a kind of &quot;so there&quot; to all those humans who toil away thinking them so smart
to solve a Sudoku.  The point of climbing Mount Everest, Mount Kosciuszko or
Mount Painter is simply because it&apos;s there; the amazing thing about a dog that
walks on its hind legs is simply because it can do it at all.  Computers might
be much faster at solving virtually any logic puzzle than humans, but that
doesn&apos;t diminish the satisfaction of doing one in the meaty confines of ones
own brain.&lt;P&gt;

And, strangely, the ones that are satisfying to solve also display a level of
symmetry to the eye.  One I solved just tonight looked a bit like a 
&lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Fylfot&quot;&gt;fylfot&lt;/a&gt;, and
it was pleasing the way lines of two and three numbers would provide some
insight into solving the next box.  I could use one or two techniques for a
while, and then switch to another couple of techniques later in the process.
Others I&apos;ve solved have looked like crosshatchings, or have many numbers
clustered in boxes one and nine and have boxes three and seven blanks.&lt;P&gt;

So I started wondering about writing my own Sudoku generator that would take
five by five matrices listing the order in which cells were to be filled, and
two symmetry options for horizontal or vertical: as is, mirrored, rotated
clockwise, anticlockwise or 180 degrees.  Use a character: 0, 1, 5, 2, 3.
The cells could either be lettered A-Z or blank, so, for example:&lt;P&gt;

&lt;TT&gt;ABCG____H____I_DEFJ______55&lt;/TT&gt; would indicate:

&lt;pre&gt;
ABCG_D__A
___H_E__B
___I_F__C
DEFJ_JIHG
_________
GHIJ_JFED
C__F_I___
B__E_H___
A__D_GCBA
&lt;/pre&gt;

So the square pattern in the top left quadrant has been turned by 90 degrees
clockwise (&apos;5&apos;) to make the top right quadrant; this then gets turned 90
degrees clockwise again (&apos;5&apos;) to make the bottom right quadrant and thus,
symmetrically, the remaining quadrant is the last rotation of the quadrant.
The overlapping in the fifth row and column is handled by not filling in a
number if that cell already has one.  Sudokus need at least 17 clues to be
solvable, from &lt;a href=&quot;https://secure.wikimedia.org/wikipedia/en/wiki/Sudoku&quot;&gt;Wikipedia&lt;/a&gt;,
but with twenty-five to thirty-two clues being the more usual range, having
letters A-J with four areas for symmetry should be enough.&lt;P&gt;

Now to sit down and work out how to write a program to generate this.</description>
  </item>
  <item>
    <title>The lightbulb moment</title>
    <pubDate>Sat, 07 Jul 2012 16:53:00 +1000</pubDate>
    <link>http://mabula.net/tbfw/2012/07/07#2012-07-07-the-lightbulb-moment</link>
    <category>/personal/ebike</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/personal/ebike/2012-07-07-the-lightbulb-moment</guid>
    <description>Tony, the other person in Canberra building an electric motorbike, came over
last night.  We were both keen to try out the new 150W DC-DC converter I&apos;d
got recently to augment my auxiliary battery when supplying power for the
headlights (permanently on, at the moment) and other systems.  Each headlight
is about 55-60W, with one for main drive and two for high beam.  Having
crashed the bike in part because the light was just not strong enough, I
wanted to kick it up a notch and make sure I had enough light to drive safely.&lt;P&gt;

So, we clipped off the strange proprietary connector on the DC-DC converter,
fitted a pair of Anderson connectors for the 120V end (to match those on the
120V fuse box) and a pair of female spade lugs for the 12V end (to match the
fittings on the auxiliary battery wiring.  We plugged it into the battery
pack and all that happened was that the green LED came on.  That was all we
were expecting; sure enough, a multimeter showed it was outputting 12.5V on
the output stage.  This obviously wasn&apos;t impressive enough for us.&lt;P&gt;

Tony had the bright idea of plugging it into the headlights of the old bike,
still in their boxy plastic housing.  The high beam worked.  The high beam
side of the dual-output lamp worked.  The low beam worked - but showed us a
very interesting thing.  The output was noticeably dimmer than the high
beams, even though it should only be 92% as bright (barely noticeable).&lt;P&gt;

We pulled the bulb out and tried a couple of other experiments.  We plugged
it into the small 12V battery, and it did the same thing - low beam was
definitely dimmer than the high beam.  And a careful examination of the actual
bulb showed that the filament was damaged - it looked rough and slightly
irregular compared to the smooth, regular coil of the high beam - and there was
a small amount of soot on the inside of the bulb near the low beam coil.  So
it was definitely physically damaged.  Even the small battery would still give
full output brightness if the bulb had been working correctly.&lt;P&gt;

This made me feel a bit better about the accident.  I was still riding beyond
the range of the headlights, and it&apos;s still my fault.  But it wasn&apos;t that the
bike electrics were incapable of driving the bulb.  If I&apos;d noticed, and turned
on my high beam, I would have been fine.  I&apos;d charged the auxiliary battery in
the bike the previous night; it definitely would have given me full range of
vision if the bulb had been working.  I feel a lot more confident that the
bike will give me full range of light, even if the traction battery or DC-DC
converter dies and I have to run on auxiliary battery alone.&lt;P&gt;

I&apos;d also started to wonder whether I should put an external switch, or full
DC relay, on the auxiliary 12V systems - the input from the battery charger,
the output to the battery monitor, and the DC-DC converter.  If the DC-DC
converter is draining 150W from the traction battery pack continuously, it&apos;d
last about 48 hours from full charge to dead; I didn&apos;t want to find out that
the converter had killed the $4000 battery over a weekend.  But we realised
that once the DC-DC converter has brought the auxiliary battery back up to
12.5V, the load on that circuit would be quite low - the DC-DC converter simply
isn&apos;t going to be able to push 12.5V against a 12.7V auxiliary battery.  It
might be worth putting a suitable 15A diode in series with the lead to the
battery, just in case the DC-DC converter doesn&apos;t have back current protection,
but I kind of doubt that that&apos;d be left out.&lt;P&gt;

Of course, disconnecting all the auxiliary electrics is a good thing to do if
I&apos;m going away for a while anyway.  The auxiliary 120V system connects from the
battery to the fuse box via an Anderson connector that I can pull out.  It&apos;s
easier and less prone to Catch-22 problems than a relay.
</description>
  </item>
  <item>
    <title>Not taking the bad with the good</title>
    <pubDate>Tue, 26 Jun 2012 21:49:00 +1000</pubDate>
    <link>http://mabula.net/tbfw/2012/06/26#2012-06-26-not-taking-the-bad-with-the-good</link>
    <category>/personal</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/personal/2012-06-26-not-taking-the-bad-with-the-good</guid>
    <description>I finally looked my TV recording schedule in the face and decided to delete
all my recordings of Top Gear, and remove the schedule so it never records
again.  Why?  Mainly because I realised that I actually hate it.&lt;P&gt;

The main thing I hate is actually Jeremy Clarkson.  It took me a while to
realise, but it really hit home when I was watching the episode where they
race across Japan.  Clarkson is shown speeding more or less the entire
journey; speed cameras in Japan allegedly require a photo of your face, so
he holds up a picture of Bill Oddie.  This made me realise what he really is:
a bully.  He can&apos;t stand losing, he cheats outrageously, he then denies it,
and he puts everyone else down - even his guests, when he thinks he can get away
with it, but mostly his co-hosts.  Watching Clarkson for five minutes fills
me with a burning desire to find some way of putting him in his place.&lt;P&gt;

And then there&apos;s the whole &quot;we&apos;re naff&quot; theme.  When set any of their usual
construction or adventure challenges, they act completely hopelessly.  After
a while you realise that this is a calculated thing - they&apos;re not, actually,
really that clumsy, idiotic or clueless, they&apos;re actually putting it on as a
kind of act.  Yes, they&apos;ve made moronic caricatures of themselves, which they
then fit themselves into.  This, to me, is not humour; it&apos;s infantile.  How
any Briton can hold their head up and say &quot;Yes, Top Gear really represents
the best of British television&quot; is beyond me.&lt;P&gt;

It was in the episode when the three (first season) Top Gear Australia hosts
took on the UK team that the two of these congealed unpleasantly together.
The first challenge has the UK team driving cars where the pedals are in one
car and the steering is in another car welded on top.  Only - in a pathetic,
tired attempt at humour - the Australian top cars are turned upside down.  Ho
ho ho, those funny Australians, upside down on the other side of the world,
they&apos;d be used to it, ho ho, oh my aching sides.&lt;P&gt;

You can see the three Australians are clearly pissed off at this; they know
that they&apos;ve been handed a teaspoon and asked to shear a sheep, only they
can&apos;t complain lest they look unsporting.  It&apos;s the same with the other
challenges - each one that Clarkson comes up with is off-beat, and has a twist
deliberately designed to give the UK team an advantage.  Even when the
Australian team organises a fairly straight-up competition at using motorbikes
to round up sheep, Clarkson thinks he&apos;s been clever by purchasing &quot;Austrian&quot;
bikes, rather than &quot;Australian&quot; ones.&lt;P&gt;

Only, yes, that&apos;s the &quot;we&apos;re naff&quot; side coming through again - as it becomes
obvious that not only have they bought really good bikes to ride (KTM), but
that the UK team&apos;s idea of being able to work together is not merely
non-existent, but in some weird negative state: they almost spend more time
criticising eachother and &apos;accidentally&apos; being stupid than doing anything
else.  And, yes, in another event Hammond and May &apos;accidentally&apos; give the
Australian team more points than the UK team - in fact, enough points to
even them up after the previous rounds.&lt;P&gt;

This is pitiful.  I don&apos;t care about the sportsmanship - which is still
atrocious - it&apos;s just bad TV.  Who wants to watch a soccer game where both
teams miss the ball, &apos;accidentally&apos; hit own goals, make deliberate mistakes and
try to trip the other team up?  No-one.  By the time we get to the last round,
where they &apos;unnoticeably&apos; substitute The Stig for James May driving a rally
car, I have ceased to care.  Even if the Australians win, it&apos;ll be only because
the UK team stuffs up in some allegedly humourous fashion.  If the UK team wins,
it&apos;ll be because they cheated.  Most likely, I imagine, it was a tie some
British TV producer&apos;s idea of promoting the two brands without snubbing either.
I don&apos;t know, the recording cut out before the show finished, and I have as much
interest in finding out as I do trying to see if I can crash my motorbike
again.&lt;P&gt;

Then there&apos;s the clear bias that Clarkson has against any electric vehicle, and
in fact any vehicle which isn&apos;t somehow a symbol of power, and his willingness
to cheat, lie, and outright make up crap about them.  Tesla took the BBC to
court after trying to get this straightened out for months to no response.  In
October, the judge in the case &lt;a href=&quot;http://www.guardian.co.uk/media/2011/oct/19/top-gear-not-libel-tesla?CMP=twt_fd&quot;&gt;decided&lt;/a&gt;
that &quot;no Top Gear viewer would have reasonably compared the car&apos;s performance on
the show&apos;s airfield track to its likely performance on a public road.&quot;  Funny,
that, because that&apos;s exactly what Clarkson is claiming - if he says &quot;the range
is 55 miles per charge, not 211&quot;, he&apos;s not comparing it to 211 miles on the
track, is he?  If the car had &quot;reduced drive&quot;, and not &quot;run out of charge&quot;,
why did they show the film with them pushing the car back into the shed? The
other &lt;a href=&quot;http://www.teslamotors.com/teslavstopgear&quot;&gt;four claims&lt;/a&gt; are
still being pursued and I can&apos;t find any evidence of a decision yet on them.&lt;P&gt;

At the heart of this is the dichotomy of the show: when criticised, they simply
claim that they&apos;re &quot;merely entertainment&quot; and not a fact-based show.  Funny,
that, because they spend an awful lot of time talking about facts: torque,
power, top speeds, times around the track, weights, lengths, etc.  It fits in
perfectly with Clarkson&apos;s attitude: I&apos;m going to criticise anything I like, but
you can&apos;t criticise me because my role is not to be critical.  It&apos;s morally
bankrupt, in my opinion.&lt;P&gt;

Top Gear Australia is bearable, mainly because even when they do get set
challenges - doing the Oodnadatta Track mail run in small european cars, for
example - they at least give it a go.  They come out looking like they&apos;ve done
a good job, not been told to be naff because that&apos;s what the public expects.
But, no, I&apos;ve got more interesting, and less personally irritating, things to do
than to watch Top Gear.
</description>
  </item>
  <item>
    <title>Forgotten projects</title>
    <pubDate>Sat, 23 Jun 2012 20:03:00 +1000</pubDate>
    <link>http://mabula.net/tbfw/2012/06/23#2012-06-23-forgotten-projects</link>
    <category>/tech</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/tech/2012-06-23-forgotten-projects</guid>
    <description>MythTV has recently updated to version 0.25.  That has meant a small but
important change to the parameters necessary for updating guide data.  Chris
Yeoh was ahead of the game and, knowing I used it, sent me a
patch for the &lt;tt&gt;tv_grab_oztivo&lt;/tt&gt; script.  He noted that he&apos;d tried to
get it from the last known good source, and it wasn&apos;t answering.&lt;P&gt;

Well, it sort of is.  The normal URL doesn&apos;t work but Google reveals
&lt;a href=&quot;http://web.aanet.com.au/auric/files2/tv_grab_oztivo&quot;&gt;http://web.aanet.com.au/auric/files2/tv_grab_oztivo&lt;/a&gt;.
Interestingly, its version number is still at the recognised place - 
&lt;a href=&quot;http://web.aanet.com.au/auric/tv_grab_oztivo-version.txt&quot;&gt;1.36&lt;/a&gt; -
but all other parts of the site seem to be having problems with its database.
And since it hasn&apos;t been updated since this time in 2010, I think there&apos;s a
good possibility it may remain unchanged from now on.&lt;P&gt;

A number of years ago I offered to host the script on my home Subversion
repository, but got no response.  So I&apos;ve blown the dust off, updated it, added
Chris&apos;s patch, and it&apos;s now up to date at
&lt;a href=&quot;http://tangram.dnsalias.net/repos/tv_grab_oztivo/trunk/tv_grab_oztivo&quot;&gt;http://tangram.dnsalias.net/repos/tv_grab_oztivo/trunk/tv_grab_oztivo&lt;/a&gt;.
Please feel free to check that out and send me patches if there are other
improvements to make to it.</description>
  </item>
  <item>
    <title>Swapping Shackles</title>
    <pubDate>Thu, 07 Jun 2012 22:41:00 +1000</pubDate>
    <link>http://mabula.net/tbfw/2012/06/07#2012-04-16-swapping-shackles</link>
    <category>/tech</category>
    <guid isPermaLink="false">http://mabula.net/tbfw/tech/2012-04-16-swapping-shackles</guid>
    <description>Charles Stross
&lt;a href=&quot;http://www.antipope.org/charlie/blog-static/2012/04/understanding-amazons-strategy.html&quot;&gt;talks
here&lt;/a&gt; about why book publishers are afraid of Amazon and that the
publishers have given Amazon control over them by insisting on DRM.  The
problem I see with this analysis is that, actually, the publishers have
another option: publish their own &apos;free&apos; app that can read their own DRM.  Cut
Amazon out of the equation by selling direct to the readers.  There may be
contractual reasons why the Big Six can&apos;t set up a web store to compete
directly with Amazon, but I&apos;m sure that&apos;s a matter that their lawyers could
sort out.  There might be a possible legal reason - I don&apos;t study this field
and Charlie does, so he might correct me there, but I don&apos;t see anything in
his comments on it and a few people suggest it.&lt;P&gt;

The cited reason that the Big Six don&apos;t sell their own books directly seems to
be that they just haven&apos;t set up their websites.  Bad news for Amazon: that&apos;s
easy with the budgets the big publishers have - Baen already do sell their own
ebooks, for example (without DRM, too).  More bad news for Amazon: generating
more sales by referrals (the &quot;other readers also bought&quot; stuff) isn&apos;t a matter
of customers or catalogue, it&apos;s just a matter of data.  Start selling books and
you&apos;ve got that kind of referral.  Each publisher has reams of back catalogue
begging to be digitised and sold.  They&apos;ve got the catalogue, they&apos;ve got the
direct access to the readers, they&apos;ve got the money to set up the web sites,
and they&apos;ve now got the motivation to avoid Amazon and sell direct to the
reader.  That to me spells disaster for Amazon.&lt;P&gt;

But it also means disaster for us.  Because you&apos;re going to have multiple
different publisher&apos;s proprietary e-book reader - the only one they&apos;ll bless
with their own DRM.  Each one will have its own little annoyances, peccadilloes
and bugs.  Some won&apos;t let you search.  Some won&apos;t let you bookmark.  Some will
make navigation difficult.  Some won&apos;t remember where you were up to in one
book if you open up another.  Others might lock up your reader, have back doors
into your system, use ugly fonts, be slow, have no &apos;night&apos; mode, or might
invasively scan your device for other free books and move them into their own
locked-down storage.  And you won&apos;t be able to change, because none of your
books will work in any other reader than the publisher&apos;s own.  After all, why
would they give another app writer access to their DRM if it means the reader
might then go to a different publisher and buy books elsewhere?&lt;P&gt;

We already have this situation.  I have to use the Angus &amp;amp; Robertson reader
(created by Kobo) for reading some of my eBooks.  It doesn&apos;t allow me to
bookmark places in the text, its library view has one mode (and it&apos;s icons, not
titles), I can&apos;t search for text, and its page view is per chapter (e.g.  &apos;24
of 229&apos;) not through the entire book.  In those ways and more it&apos;s inferior to
the free FBReader that I read the rest of my books in - mostly from &lt;a
href=&quot;http://gutenberg.org&quot;&gt;Project Gutenberg&lt;/a&gt; - but I have no choice;
the only way to get the books from the store is through the app.  These are
books I paid money for and I&apos;m restricted by what the software company that
works for the publishing broker contracted by the retailer wants to implement.
This is not a good thing.&lt;P&gt;

What can we, the general public, do about this?  Nothing, basically.  Write to
your government and they&apos;ll nod politely, file your name in the &quot;wants to hear
more about the arts&quot; mailing list, and not be able to do a thing.  Write to a
publisher and they&apos;ll nod vacantly, file your name in the wastepaper bin, and
get back to thinking how they can make more profit.  Write to your favourite
author and they&apos;ll nod politely, wring their hands, say something about how
it&apos;s out of their control what their editor&apos;s manager&apos;s manager&apos;s manager
decides, and be unable to do anything about it.  Everyone else is out of the
picture.&lt;P&gt;

Occasionally someone suggests that Authors could just deal directly with the
readers directly.  At this point, everyone else sneers - even fanfic writers
look down on self-publishers.  And, sadly, they&apos;re right - because (as Charlie
&lt;a href=&quot;http://www.antipope.org/charlie/blog-static/2010/02/cmap-2-how-books-are-made.html&quot;&gt;points
out&lt;/a&gt;) we do actually need editors, copy-readers and proofers to turn the
mass of words an author emits into a really compelling story.  (I personally
can&apos;t imagine Charlie writing bad prose or forgetting a character&apos;s name, but I
can imagine an editor saying &quot;hey, if you replaced that minor character with
this other less minor character in this reference, it&apos;d make the story more
interesting&quot;, and it&apos;s these things that are what we often really enjoy about a
story.)  I&apos;ve written fiction, and I&apos;ve had what I thought was elegantly clear
writing shown to be the confusing mess of conflicting ideas and rubbish
imagery that it was.  Editors are needed in this equation, and by extension
publishers, imprints, marketers, cover designers, etc.&lt;p&gt;

Likewise, instead of running your own site, why not get a couple of authors
together and share the costs of running a site?  Then you get something like
&lt;a href=&quot;http://smashwords.com&quot;&gt;Smashwords&lt;/a&gt; or any of the other indie book
publishers - and then you get common design standards, the requirement to not
have a conflicting title with another book on the same site, etc.  So either
way you&apos;re going to end up with publishers.  And small publishers tend to
get bought up by larger publishers, and so forth; capitalism tends to produce
this kind of structure to organisations.&lt;P&gt;

So as far as I can see, it&apos;s going to get worse, and then it&apos;s going to get
even worse than that.  I don&apos;t think Amazon will win - if nothing else, because
they&apos;re already looking suspiciously like a monopolist to the US Government
(it&apos;s just that the publishers and Apple were stupid enough to look like they
were being greedier than Amazon).  But either way, the people that will control
your reading experience have no interest in sharing with anyone else, no
interest in giving you free access to the book you&apos;ve paid to read (and no
reason if they can give you a license, call it a book, charge what a book
costs, and then screw you later on), and everyone else has no control over what
they&apos;re going to do with an ebook in the future.  If the publisher wants to
revoke it, rewrite it, charge you again for it, stop you re-reading it,
disallow you reading previous pages, only read it in the publisher&apos;s colours of
lime green on pink, or whatever, we have absolutely no way of stopping this.
The vast majority of people are already happy to shackle themselves to Amazon,
to lock themselves into Apple, and tell themselves they&apos;re doing just fine.&lt;P&gt;

Sorry to be cynical about this, but I think this is going to be one of those
situations where the disruptive technologies just come too little and too
late.  Even J. L. Rowling putting her books online DRM-free isn&apos;t going to
change things - most of the commentators I&apos;ve read just point to this and say
&quot;oh well, the rest of us aren&apos;t that powerful, we&apos;ll just have to co-operate
with (Amazon|the publisher I&apos;m already dealing with)&quot;.  Even the ray of hope
that Cory Doctorow offers with his piece on
&lt;a href=&quot;http://craphound.com/?p=3890&quot;&gt;Digital Lysenkoism&lt;/a&gt;
- that the Humble E-Book Bundle has authors wanting to get their publishers
off DRM because there&apos;s a new smash-hit to be had with the Humble Bundle
phenomenon - is a drop of nectar in the ocean of tears; no publisher&apos;s really
going to care about the Humble Bundle success if it means facing down the
bogey-man of unfettered public copying of ebooks that they themselves have
been telling everyone for the last twenty years.&lt;P&gt;

So publishers are definitely worrying about Amazon&apos;s monopsony.  But the idea
that that will cause them to give up DRM is wishful thinking.  They&apos;ve got too
much commitment to preventing people copying their books, they don&apos;t have to
give up DRM in order to cut Amazon out of the deal, and if DRM then locks
readers into a reliance on the publishers it&apos;s a three-way win for them.  And
a total lose for us, but then capitalism has never been about giving the
customer what they want.</description>
  </item>
  </channel>
</rss>
