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't really handle the situation when the monitor doesn'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.
It turns out, however, that there is a workaround. You can tell the kernel that you have a (made-up) EDID block to load that it's going to pretend came from the monitor. To do this, you have to generate an EDID block - handily explained in the Kernel documentation - 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 "drm_kms_helper.edid_firmware=edid/1920x1080.bin" to your kernel boot line in GRUB, and away you go.
Well, nearly. Because the monitor literally does not respond, rather than responding with something useless, the kernel doesn'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 "video=VGA-1:e" on the kernel boot line as well.
Once you've done that, you're good to go. Thank you to the people at OSADL for documenting this. Domestic harmony at PaulWay Central is now restored.
posted at: 21:11 | path: /tech | permanent link to this entry
Don't give us that claptrap about "this is what women want". Don'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's insulting to look at. It's shallow, it's boring, and it'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.
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.
This post has also been sent to the Daily Mail Online editor.
Your sincerely,
Paul
posted at: 08:51 | path: /society | permanent link to this entry
The basic process of recording each talk involves recording a video camera, a number of microphones, the video (and possibly audio) of the speaker's laptop, and possibly other video and audio sources. For keynotes we recorded three different cameras plus the speaker's laptop video. In 2013 in the Manning Clark theatres we were able to tie into ANU's own video projection system, which mixed together the audio from the speaker's lapel microphone, the wireless microphone and the lectern microphone, and the video from the speaker's laptop and the document scanner. Llewellyn Hall provided a mixed feed of the audio in the room.
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'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.
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 'mark up' 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's introduction, not at the minute of setup beforehand).
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 mirror.linux.org.au 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.
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'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'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'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.
Most people these days are wary of "yak shaving" - starting a series of dependent side-tasks that become increasingly irrelevant to solving the main problem. We'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.
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'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.
Instead, I wrote a separate system that produced batch files in a 'todo' directory. A script running on each 'slave' encoding machine periodically checked this directory for new scripts; when it found one it would move it to a 'wip' directory, run it, and move it and its dependent file into a 'done' directory when finished. If the processes in the script failed it would be moved into a 'failed' 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 "encode", wrote their encode script and set them to "review". 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.
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.
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'd used the system by myself at home; I'd set it up with others in the team and tested it out for a weekend; I've used similar recording equipment for many years. What I wasn't prepared for was that things that I'd previously tested and had found to work perfectly would break in unexpected ways:
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'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.
There'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'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'm hoping to be involved in this process but my time is already split between many different priorities and I don'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.
posted at: 09:23 | path: /tech/lca | permanent link to this entry
I had a hiatus in 2012 for various reasons, but this year I'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'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?
One idea that I'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's base in Gosford. But there'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'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 :-) ).
And then Tridge calls me up and says "as it happens, my family has a house up on the Pittwater". 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 Friday 26th July to Sunday 28th July 2013.
So it's now called CodeBeach 2013, and it also has a snazzy Google Form to take bookings on. Please drop me an email if you've got any questions. We'd love to have you there!
posted at: 21:13 | path: /tech | permanent link to this entry
Tom Morris recently observed that it comes down to privilege: the people who don't have to worry about being taken seriously and don't get sexually harrassed at conferences don't know what all the fuss is about. They don't see the lovely invisible glow that surrounds them, coming mainly from their background - they'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're here because of our hard hacker cred, but actually we only got that because we got the computers, and that's more to do with being white and male and having parents that could afford computers and going to schools that had computers. Let's face it, if your elder brother kicks you off the computer every chance he gets, you're not going to get much of a chance to use one no matter who you are.
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:
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't actually get solved. In the FOSS community we have a tendency to try and solve every problem: it'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 seating people at a theatre - a "friendly" discussion will ensue on how to "solve" this "problem". Any slight problem - from not getting a T-shirt that fits correctly for one's body type to not being able to watch a video when one wants - becomes something that must 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, Hanlon's Razor not withstanding.
There is one fundamental problem with this view: it is utterly wrong.
It is another day'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 "solve" 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'm not talking about solving social problems with technical solutions (although some have proposed them).
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'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's a long, boring, degrading process - but the alternative is to see equality and fairness eroded away over time.
And, worse, there are people who will never concede that there is a problem, who are mysoginst bastards, who will always assert that they'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 part of our community. 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.
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.
I'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're a great coder doesn't mean you're not a crackpot. Likewise, just because someone is a crackpot - or expresses views we disagree with - doesn't mean they don't write good code. (And sometimes someone we agree wholeheartedly with at a deep philosophical level also writes crap code, but that's another story). We don'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.
These are tough problems, and there aren't easy solutions; but we can't let that lack of easy solutions put us off trying to make it better.
posted at: 22:15 | path: /society | permanent link to this entry
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's consider the case where they're d and e - the other case is symmetric. For the mean to equal the mode:
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's that off my brain now... :-)
posted at: 21:17 | path: /personal | permanent link to this entry
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's kind of evened up. To go a step back from the great T-shirt slogan "No I Will Not Fix Your Computer", we need to stop trying to fix everyone else's problems, or assuming that we have to (or even can).
The really funny thing to me, in this competition of eagerness, is how Microsoft has really given up. The "Mac Vs PC" ads did wonders for that emotional image-based buy-in for Apple, but I wasn'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've inspired the GNOME 3 developers: Microsoft started "reinventing" 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.
Microsoft is also engaging in exactly the same tactics it used twenty years ago that got it in trouble with the US government. It's paying Intel and AMD a lot of money to create "Windows-Only Processors", on the amazingly naive notion that somehow the rest of the world a) can't read machine code, b) can'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'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'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's only now started to try and market a costly product that vaguely duplicates what you get for free with Google Docs.
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've bled money in court cases, in DRM systems that no-one'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're just hand-waving and hoping that someone cares about them.
Ultimately, I believe that free software won't "win" any more than Apple could "win" the phone market. It'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's problem in not reaching a wider audience has been obscurity rather than active oppression. And I think there's still the emotional attachment to free, open source software, but it's the same emotional attachment one has to science - it'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.
posted at: 21:21 | path: /society/tech | permanent link to this entry
The absolute last thing they should do[1], in my opinion, is offer any form of rebate or cash back on buying an electric vehicle. We've seen this time and time again: offer a rebate on LPG fitting for cars and, mirabile dictu, 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's working with the Government to do something to help, but make sure that it gets a lot more money in the process. It's not a bad policy for the Government, since it gets a cut of their business taxes anyway.
The second last thing is to make other 'cash back' or discount gestures to electric car buyers that aren'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's something I pay yearly, like registration, I don't want to find out that it's suddenly gone up because I was one of the first to do something that other people finally joined in on.
It'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' registrations doesn'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's at the wrong end of the process - I've already committed over $12,000 to the bike now, I'm not going to hold off registering it because I can't afford the rego.
What'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.
Both of those, as far as I can see, aren'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's just too much like British Leyland[2].
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 Holden Commodore conversions are looking more like standard cars, and have standard abilities such as towing a trailer. But these are still relatively expensive; fortunately, there'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°C or above 30°C, we've got a way to go yet before people can accept that electric cars are ordinary, working cars.
At the EV group meeting we had a speaker from Better Place. Unfortunately I missed his main presentation but the question and answer session was fairly lively[3]. One of the things Better Place is putting forward is switching batteries 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.
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'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
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's easier for you to deal with major manufacturers, but if you lock out the very people that have been leading the way, you'll alienate a group of enthusiastic potential customers. This happens all the time, so it's not going to stop us building electric vehicles, but it's disheartening when you can see the prize in front of you but you're barred from taking it.
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 "razor and blade" 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's really not much the Government can do to get more people to buy electric vehicles.
Actually, there is one: use them themselves. If the Government were to start converting their fleets to electric, there'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'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's reducing its carbon footprint and pay less in carbon tax and fuel. And in three to four years' time we'd see a further flow-on effect as the leased fleet got sold into the general used vehicle pool.
Overall, it sounds like a win to me. Let's hope that writing to my local Federal member has some effect.
[1]: of course, there's even worse that they can do. They can do nothing. They can charge more for registering electric vehicles since they don't pay fuel tax. They can offer massive subsidies to the fuel industry to keep it going. I'm positing that the Government actually wants to promote electric vehicles, for example as part of its carbon reduction strategy
[2]: it'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.
[3]: as you'd expect from a bunch of people who have been saying "come on, everybody, electric cars are the future, let's move now, let's not get trapped into depending on oil!" for the last twenty years.
posted at: 07:50 | path: /society | permanent link to this entry
Along the way I added a couple of things. For a start, Console_GetoptLong recognises --option=value arguments, as well as -ovalue where 'o' is a single letter option and doesn't already match a synonym. It also allows combining single-letter options, like tar -tvfz instead of tar -t -v -f -z (and you'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't a defined synonym - warn, die, ignore, or add it to the unprocessed arguments list.
One recent feature which hopefully will also reduce the amount of boilerplate code is what I call 'ordered unflagged' options. These are parameters that aren't signified by an option but by their position in the argument list. We use commands like this every day - mv and cp are examples. By specifying that '_1' is a synonym for an option, Console_GetoptLong will automatically pick the first remaining argument off the processed list and, if that parameter isn't already set, it will make that first argument the value of that parameter. So you can have a command that takes both '-i input_file' and 'input_file' style arguments, in the one parameter definition.
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's fairly obvious how to add help text to it.
As always, I welcome any feedback on this. Patches are even better, of course, but suggestions, bug reports, or critiques are also gladly accepted.
posted at: 18:25 | path: /tech | permanent link to this entry
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't like having to find positions where there'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'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's "show possible numbers" display and filled in the places that only listed one possibility.
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 "so there" 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'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't diminish the satisfaction of doing one in the meaty confines of ones own brain.
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 fylfot, 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've solved have looked like crosshatchings, or have many numbers clustered in boxes one and nine and have boxes three and seven blanks.
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:
ABCG____H____I_DEFJ______55 would indicate:
ABCG_D__A ___H_E__B ___I_F__C DEFJ_JIHG _________ GHIJ_JFED C__F_I___ B__E_H___ A__D_GCBASo the square pattern in the top left quadrant has been turned by 90 degrees clockwise ('5') to make the top right quadrant; this then gets turned 90 degrees clockwise again ('5') 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 Wikipedia, 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.
Now to sit down and work out how to write a program to generate this.
posted at: 21:33 | path: /personal | permanent link to this entry
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't impressive enough for us.
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).
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.
This made me feel a bit better about the accident. I was still riding beyond the range of the headlights, and it's still my fault. But it wasn't that the bike electrics were incapable of driving the bulb. If I'd noticed, and turned on my high beam, I would have been fine. I'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.
I'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'd last about 48 hours from full charge to dead; I didn'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'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't have back current protection, but I kind of doubt that that'd be left out.
Of course, disconnecting all the auxiliary electrics is a good thing to do if I'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's easier and less prone to Catch-22 problems than a relay.
posted at: 16:53 | path: /personal/ebike | permanent link to this entry
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'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.
And then there's the whole "we're naff" 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're not, actually, really that clumsy, idiotic or clueless, they're actually putting it on as a kind of act. Yes, they've made moronic caricatures of themselves, which they then fit themselves into. This, to me, is not humour; it's infantile. How any Briton can hold their head up and say "Yes, Top Gear really represents the best of British television" is beyond me.
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'd be used to it, ho ho, oh my aching sides.
You can see the three Australians are clearly pissed off at this; they know that they've been handed a teaspoon and asked to shear a sheep, only they can't complain lest they look unsporting. It'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's been clever by purchasing "Austrian" bikes, rather than "Australian" ones.
Only, yes, that's the "we're naff" 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'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 'accidentally' being stupid than doing anything else. And, yes, in another event Hammond and May 'accidentally' give the Australian team more points than the UK team - in fact, enough points to even them up after the previous rounds.
This is pitiful. I don't care about the sportsmanship - which is still atrocious - it's just bad TV. Who wants to watch a soccer game where both teams miss the ball, 'accidentally' 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 'unnoticeably' substitute The Stig for James May driving a rally car, I have ceased to care. Even if the Australians win, it'll be only because the UK team stuffs up in some allegedly humourous fashion. If the UK team wins, it'll be because they cheated. Most likely, I imagine, it was a tie some British TV producer's idea of promoting the two brands without snubbing either. I don'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.
Then there's the clear bias that Clarkson has against any electric vehicle, and in fact any vehicle which isn'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 decided that "no Top Gear viewer would have reasonably compared the car's performance on the show's airfield track to its likely performance on a public road." Funny, that, because that's exactly what Clarkson is claiming - if he says "the range is 55 miles per charge, not 211", he's not comparing it to 211 miles on the track, is he? If the car had "reduced drive", and not "run out of charge", why did they show the film with them pushing the car back into the shed? The other four claims are still being pursued and I can't find any evidence of a decision yet on them.
At the heart of this is the dichotomy of the show: when criticised, they simply claim that they're "merely entertainment" 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's attitude: I'm going to criticise anything I like, but you can't criticise me because my role is not to be critical. It's morally bankrupt, in my opinion.
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've done a good job, not been told to be naff because that's what the public expects. But, no, I've got more interesting, and less personally irritating, things to do than to watch Top Gear.
posted at: 21:49 | path: /personal | permanent link to this entry
Well, it sort of is. The normal URL doesn't work but Google reveals http://web.aanet.com.au/auric/files2/tv_grab_oztivo. Interestingly, its version number is still at the recognised place - 1.36 - but all other parts of the site seem to be having problems with its database. And since it hasn't been updated since this time in 2010, I think there's a good possibility it may remain unchanged from now on.
A number of years ago I offered to host the script on my home Subversion repository, but got no response. So I've blown the dust off, updated it, added Chris's patch, and it's now up to date at http://tangram.dnsalias.net/repos/tv_grab_oztivo/trunk/tv_grab_oztivo. Please feel free to check that out and send me patches if there are other improvements to make to it.
posted at: 20:03 | path: /tech | permanent link to this entry
The cited reason that the Big Six don't sell their own books directly seems to be that they just haven't set up their websites. Bad news for Amazon: that'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 "other readers also bought" stuff) isn't a matter of customers or catalogue, it's just a matter of data. Start selling books and you've got that kind of referral. Each publisher has reams of back catalogue begging to be digitised and sold. They've got the catalogue, they've got the direct access to the readers, they've got the money to set up the web sites, and they've now got the motivation to avoid Amazon and sell direct to the reader. That to me spells disaster for Amazon.
But it also means disaster for us. Because you're going to have multiple different publisher's proprietary e-book reader - the only one they'll bless with their own DRM. Each one will have its own little annoyances, peccadilloes and bugs. Some won't let you search. Some won't let you bookmark. Some will make navigation difficult. Some won'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 'night' mode, or might invasively scan your device for other free books and move them into their own locked-down storage. And you won't be able to change, because none of your books will work in any other reader than the publisher'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?
We already have this situation. I have to use the Angus & Robertson reader (created by Kobo) for reading some of my eBooks. It doesn't allow me to bookmark places in the text, its library view has one mode (and it's icons, not titles), I can't search for text, and its page view is per chapter (e.g. '24 of 229') not through the entire book. In those ways and more it's inferior to the free FBReader that I read the rest of my books in - mostly from Project Gutenberg - 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'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.
What can we, the general public, do about this? Nothing, basically. Write to your government and they'll nod politely, file your name in the "wants to hear more about the arts" mailing list, and not be able to do a thing. Write to a publisher and they'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'll nod politely, wring their hands, say something about how it's out of their control what their editor's manager's manager's manager decides, and be unable to do anything about it. Everyone else is out of the picture.
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're right - because (as Charlie points out) 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't imagine Charlie writing bad prose or forgetting a character's name, but I can imagine an editor saying "hey, if you replaced that minor character with this other less minor character in this reference, it'd make the story more interesting", and it's these things that are what we often really enjoy about a story.) I've written fiction, and I'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.
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 Smashwords 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'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.
So as far as I can see, it's going to get worse, and then it's going to get even worse than that. I don't think Amazon will win - if nothing else, because they're already looking suspiciously like a monopolist to the US Government (it'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'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'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'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're doing just fine.
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't going to change things - most of the commentators I've read just point to this and say "oh well, the rest of us aren't that powerful, we'll just have to co-operate with (Amazon|the publisher I'm already dealing with)". Even the ray of hope that Cory Doctorow offers with his piece on Digital Lysenkoism - that the Humble E-Book Bundle has authors wanting to get their publishers off DRM because there'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'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.
So publishers are definitely worrying about Amazon's monopsony. But the idea that that will cause them to give up DRM is wishful thinking. They've got too much commitment to preventing people copying their books, they don'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'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.
posted at: 22:41 | path: /tech | permanent link to this entry
All posts licensed under the CC-BY-NC license. Author Paul Wayper.
You can also read this blog as a syndicated RSS feed.