Planet Linux Australia

Syndicate content
Planet Linux Australia -
Updated: 1 hour 14 min ago

Ian Wienand: Finding out if you're a Rackspace instance

Tue, 2014-08-05 16:25

Different hosting providers do things slightly differently, so it's sometimes handy to be able to figure out where you are. Rackspace is based on Xen and their provided images should include the xenstore-ls command available. xenstore-ls vm-data will give you a handy provider and even region fields to let you know where you are.

function is_rackspace { if [ ! -f /usr/bin/xenstore-ls ]; then return 1 fi /usr/bin/xenstore-ls vm-data | grep -q "Rackspace" } if is_rackspace; then echo "I am on Rackspace" fi

Other reading about how this works:

Glen Turner: Ancient word processor files

Tue, 2014-08-05 14:19

One of the issues with writing document filters is the lack of a corpus of real documents in the various ancient formats.

If you have files you have written in the past in Wordstar, PC-Write, XyWrite, DisplayWrite and other pre-Windows word processors then I would be interested in contributions.

My hope would be that such files have little content of value, and thus the corpus could be licensed CC BY-ND 4.0.

David Rowe: Embedded FreeDV

Tue, 2014-08-05 07:29

For the SM1000 development I need a way to embed the core functionality of a FreeDV “mode” in a simple library. A FreeDV “mode” is defined by the Codec 2 rate, the FEC, the frame structure, and the FDMDV modem waveform. Several modes have evolved over the past 18 months, and more are likely in the future. The current widely used mode (e.g. in the FreeDV GUI application) is known as “1600″ due to the bit rate.

Here is the simple C API I came up with:

struct freedv *freedv_open(int mode);

void freedv_close(struct freedv *freedv);

void freedv_tx(struct freedv *f, short mod_out[], short speech_in[]);

int freedv_nin(struct freedv *f);

int freedv_rx(struct freedv *f, short speech_out[], short demod_in[]);

Here is the header file freedv_api.h , C implementation freedv_api.c, and example transmitter and receiver programs.

It’s really easy to use from the command line:

$ ./freedv_tx ../../raw/hts1.raw - | ./freedv_rx - - | play -t raw -r 8000 -s -2 -

More examples are in the Codec 2 README.

The receive side is little tricky, as the number of input samples to the demodulator (and output samples from the codec) is time varying. You can see how that’s handled in this while loop:

    nin = freedv_nin(freedv);

    while(fread(demod_in, sizeof(short), nin, fin) == nin) {

        nout = freedv_rx(freedv, speech_out, demod_in);

        fwrite(speech_out, sizeof(short), nout, fout);

        nin = freedv_nin(freedv);


The demodulator works out how many samples it needs, to adjust for differences in the transmit and receive sample clocks (e.g. a few hundred ppm).

Transmit and receive of text characters is handled through call-back functions.

This API will be useful for “embedding” FreeDV into general purpose digital comms applications like fldigi, SDR radios, Android applications, custom embedded devices like the SM1000, or “headless” implementations of FreeDV on platforms like the Raspberry Pi. It needs hardware floating point and at least a 168MHz ARM4 (the SM1000 CPU).

SM1000 Update

OK, back to the SM1000 integration. Over the last week I have optimised the FDMDV modem by re-arranging the rx filtering. The modulator now takes 5ms and the demodulator 15ms (20ms total) for 40ms worth of data (200% real time). The modem optimisation work has also accelerated the code on x86 machines significantly.

Right now I’m working on drivers for the UI (switches and LEDs) so I can put it all together. Key tests include (i) everything operates OK in real time (ii) test the modem performance is OK through the SM1000 analog interfaces and (iii) test coverage of all of the hardware so we can kick off a Qty 100 beta run.

Andrew Pollock: [life] Day 187: Kindergarten, tinkering, a spot of break and entry and some baking

Mon, 2014-08-04 20:25

Today was busy. I didn't end up getting a chance to do any Debian work, but I did do some satisfying hacking, which I'll write about separately once I've got it slightly less... hackish.

Zoe slept solidly for about 12 hours. I was a bit slow getting going this morning, and that made us a bit late getting to Kindergarten. Drop off was nice and quick and easy though.

I was supposed to have a coffee with my downstairs neighbour, Michelle, who was in the process of moving out. She had asked if she could borrow an Allen key to dismantle her bed, so I popped down with that when I got home. She'd also managed to misplace her wallet, and thought it might be at her boyfriend's house. Long story short, we ended up over there with a ladder to get into his house and (fortunately) retrieve her wallet before we ended up having our coffee.

After that, I did some hacking on my phone to try and integrate NFC with HabitRPG, which ended up being successful, but not ideally so. I managed to get that going before just before Anshu arrived to come with me to Kindergarten to pick up Zoe and Megan.

I'd asked the girls if they wanted to help bake some carrot and kale muffins when we got home, but they quickly got distracted doing some craft, so they did that while Anshu and I started on the muffins. Part way through, they decided they wanted to help after all, so they took turns throwing ingredients into the Thermomix. They then proceeded to lick the bowl clean while watching them rise in the oven.

Zoe wanted to watch an episode of Spiderman on her tablet, and so did Megan, so I put it on the TV with the Chromecast and they happily watched it while the muffins finished baking.

After that, Zoe and Megan went for a scooter around the block with us while I put a letter in the mail and picked up some mushrooms from the Hawthorne Garage. By that stage Sarah was on her way to pick up Zoe, so we got home and got Zoe organised to get picked up.

Sarah picked up Zoe, but Jason was held up in traffic, so Megan came back upstairs and watched some more TV until Jason arrived.

It was a nice, busy afternoon, which went quite quickly.

Paul Wayper: Stop the unemployed

Mon, 2014-08-04 10:25
I think there's quite a simple answer to why the Coalition is putting so much effort into punishing the unemployed: it's exactly the same as their "stop the boats" policy. If they make it so unattractive to actually register as unemployed (in order to get Centrelink benefits) then a lot of people will just not register. They'll look for work, and they'll depend on the charities and on other forms of income (begging, stealing, etc), but they won't show up in the books as unemployed. Instantly, unemployment goes down, the Coalition looks like it's "tough on dole bludgers", and someone else foots the bill.

I've been there. I was unemployed for six months in late 2000. I tried to get benefits, and after spending every day trying to find work so that I could tick off my twenty-five job searches a month I was told that since I had shares I didn't qualify for assistance. In other words, you can't save, you can't have any reserves, you have to be scraping the bottom of the barrel yourself before you get any money from the Government.

So I just didn't bother. I didn't show up to Centrelink again, and they (presumably) removed my name from the list of unemployed. Howard at that time was trumpeting the work he was doing to reduce unemployment and kept pointing to the unemployment figures. No-one looked at the number of jobs at the same time. I think a few people pointed out at the time that the worse of his policies - which match those of the Coalition today - were just designed to punish the unemployed and make them into a cheap work force rather than actually get more jobs.

It's especially poignant since the Coalition also wants to sign into law trade partnerships that send jobs overseas (by making it uneconomical to manufacture things here in Australia), denying climate change and cutting spending on renewable energy (stopping the entire renewable energy sector from investing and thus losing jobs), cutting funding for education and health (as if States are suddenly going to find that money somewhere - more jobs lost), and telling Toyota and Holden that they get nothing to keep people employed here in Australia.

It's been well pointed out that there only about 146,100 jobs for 741,700 unemployed people. But the government's own way of calculating this only thinks a person is unemployed if they actively looked for work in the week of being surveyed - they identify an entire group called "currently inactive (not in the labour force)" and then coyly ignore that group entirely, not even mentioning it on the page.

That group comprises a lot of people, some of who need help. It's the long term unemployed who have given up on the mindless form-filling, tracking and justification required for government payments. It includes mothers who stay at home full time to care for their children (which is a full time job in my opinion). It includes lots of disabled people. It includes people on pensions. And it's that group that seems to be conveniently ignored by the Coalition in their War On Bludgers.

Sridhar Dhanapalan: Twitter posts: 2014-07-28 to 2014-08-03

Mon, 2014-08-04 01:26

Rusty Russell: ccan/io: revisited

Sat, 2014-08-02 18:27

There are numerous C async I/O libraries; tevent being the one I’m most familiar with.  Yet, tevent has a very wide API, and programs using it inevitably descend into “callback hell”.  So I wrote ccan/io.

The idea is that each I/O callback returns a “struct io_plan” which says what I/O to do next, and what callback to call.  Examples are “io_read(buf, len, next, next_arg)” to read a fixed number of bytes, and “io_read_partial(buf, lenp, next, next_arg)” to perform a single read.  You could also write your own, such as pettycoin’s “io_read_packet()” which read a length then allocated and read in the rest of the packet.

This should enable a convenient debug mode: you turn each io_read() etc. into synchronous operations and now you have a nice callchain showing what happened to a file descriptor.  In practice, however, debug was painful to use and a frequent source of bugs inside ccan/io, so I never used it for debugging.

And I became less happy when I used it in anger for pettycoin, but at some point you’ve got to stop procrastinating and start producing code, so I left it alone.

Now I’ve revisited it.   820 insertions(+), 1042 deletions(-) and the code is significantly less hairy, and the API a little simpler.  In particular, writing the normal “read-then-write” loops is still very nice, while doing full duplex I/O is possible, but more complex.  Let’s see if I’m still happy once I’ve merged it into pettycoin…

Russell Coker: More BTRFS Fun

Fri, 2014-08-01 22:26

I wrote a BTRFS status report yesterday commenting on the uneventful use of BTRFS recently [1].

Early this morning the server that stores my email (which had 93 days uptime) had a filesystem related problem. The root filesystem became read-only and then the kernel message log filled with unrelated messages so there was no record of the problem. I’m now considering setting up rsyslogd to log the kernel messages to a tmpfs filesystem to cover such problems in future. As RAM is so cheap it wouldn’t matter if a few megs of RAM were wasted by that in normal operation if it allowed me to extract useful data when something goes really wrong. It’s really annoying to have a system in a state where I can login as root but not find out what went wrong.

After that I tried 2 kernels in the 3.14 series, both of which had kernel BUG assertions related to Xen networking and failed to network correctly, I filed Debian Bug #756714. Fortunately they at least had enough uptime for me to run a filesystem scrub which reported no errors.

Then I reverted to kernel 3.13.10 but the reboot to apply that kernel change failed. Systemd was unable to umount the root filesystem (maybe because of a problem with Xen) and then hung the system instead of rebooting, I filed Debian Bug #756725. I believe that if asked to reboot a system there is no benefit in hanging the system with no user space processes accessible. Here are some useful things that systemd could have done:

  1. Just reboot without umounting (like “reboot -nf” does).
  2. Pause for some reasonable amount of time to give the sysadmin a possibility of seeing the error and then rebooting.
  3. Go back to a regular runlevel, starting daemons like sshd.
  4. Offer a login prompt to allow the sysadmin to login as root and diagnose the problem.

Options 1, 2, and 3 would have saved me a bit of driving. Option 4 would have allowed me to at least diagnose the problem (which might be worth the drive).

Having a system on the other side of the city which has no remote console access just hang after a reboot command is not useful, it would be near the top of the list of things I don’t want to happen in that situation. The best thing I can say about systemd’s operation in this regard is that it didn’t make the server catch fire.

Now all I really know is that 3.14 kernels won’t work for my server, 3.13 will cause problems that no-one can diagnose due to lack of data, and I’m now going to wait for it to fail again. As an aside the server has ECC RAM and it’s hardware is known to be good, so I’m sure that BTRFS is at fault.

Related posts:

  1. BTRFS Status March 2014 I’m currently using BTRFS on most systems that I can...
  2. BTRFS Status April 2014 Since my blog post about BTRFS in March [1] not...
  3. BTRFS vs LVM For some years LVM (the Linux Logical Volume Manager) has...

Andrew Pollock: [life] Day 184: Random fun, trampolining, Hawthorne Markets

Fri, 2014-08-01 21:25

Today I had planned to take Zoe up to Sunshine Castle, which is apparently bigger than it was when I went as a kid, but she wasn't interested in going, so I decided not to push it.

So after watching a bit of TV, and us having some random play (pillow fights!), I hunted around for an indoor trampoline place, and got very lucky in discovering BOUNCEinc had just opened a location in Tingalpa.

Zoe watched a video on their website with me, and was up for it without any argument.

We got out there for the 11am session. It's a massive facility. I'm not sure if it was purpose built, or if it's just a repurposed industrial shed, but it's all new and shiny, only having opened in May. Zoe, being under 110cm, was limited to using the "big bag" and a smaller, netted off section of the "free jumping" area, but that was plenty for us. Today was an unseasonably warm winter's day, and it got pretty hot. I can see the place being a veritable sauna in summer unless they do something about actively cooling it, which given the size will be quite an undertaking.

We had a really good time, and an hour was definitely enough. Zoe's favourite area was definitely the big bag, and I liked it too. Zoe was a hot, tired, hungry and grumpy little girl by midday. She wanted quesadillas for lunch, so we stopped by the Garage on the way home to grab what we needed and had a late lunch at home.

As we were going to go to the Hawthorne Markets that evening, I managed to convince Zoe to take a nap. Her cough seems to have returned with a vengeance though, and she coughed in her sleep all the way through her nap.

Zoe woke up with enough time to have some afternoon tea and get ready to walk down for the start of the markets. She was dying for Megan to come out as well, but Jason had forgotten about it, and said they weren't coming out, which disappointed Zoe immensely. Much to our pleasant surprise, the whole family did end up coming out, and Zoe was very happy to hang out with Megan.

We walked back home and I managed to get Zoe to bed reasonably close to normal time. I hope her cough doesn't give her too much grief overnight.

Linux Users of Victoria (LUV) Announce: LUV Main August Meeting: 3D Printing and Linux Houses

Fri, 2014-08-01 11:28
Start: Aug 5 2014 19:00 End: Aug 5 2014 21:00 Start: Aug 5 2014 19:00 End: Aug 5 2014 21:00 Location: 

The Buzzard Lecture Theatre. Evan Burge Building, Trinity College, Melbourne University Main Campus, Parkville.



Richard Keech "Linux for monitoring and control in a sustainable house"

Bernard Meade "Recent Developments in 3 Printing"


This talk will describe how the use of Linux with One-Wire bus sensors and controls can provide the smarts for an energy-efficient home. This will look at:

* Hardware for monitoring of temperature, the use of water, and the use and generation of energy;

* Wireless interfacing to smart meters;

* One-Wire bus and how it interfaces to Linux;

* How to switch devices using One-Wire bus;

* Controlling data collection;

The Buzzard Lecture Theatre, Evan Burge Building, Trinity College Main Campus Parkville Melways Map: 2B C5

Notes: Trinity College's Main Campus is located off Royal Parade. The Evan Burge Building is located near the Tennis Courts. See our Map of Trinity College. Additional maps of Trinity and the surrounding area (including its relation to the city) can be found at

Parking can be found along or near Royal Parade, Grattan Street, Swanston Street and College Crescent. Parking within Trinity College is unfortunately only available to staff.

For those coming via Public Transport, the number 19 tram (North Coburg - City) passes by the main entrance of Trinity College (Get off at Morrah St, Stop 12). This tram departs from the Elizabeth Street tram terminus (Flinders Street end) and goes past Melbourne Central Timetables can be found on-line at:

Before and/or after each meeting those who are interested are welcome to join other members for dinner. We are open to suggestions for a good place to eat near our venue. Maria's on Peel Street in North Melbourne is currently the most popular place to eat after meetings.

LUV would like to acknowledge Red Hat for their help in obtaining the Buzzard Lecture Theatre venue and VPAC for hosting, and BENK Open Systems for their financial support of the Beginners Workshops

Linux Users of Victoria Inc., is an incorporated association, registration number A0040056C.

August 5, 2014 - 19:00

read more

Russell Coker: Links July 2014

Fri, 2014-08-01 02:26

Dave Johnson wrote an interesting article for Salon about companies ripping off the tax system by claiming that all their income is produced in low tax countries [1].

Seb Lee-Delisle wrote an insightful article about how to ask to get paid to speak [2]. I should do that.

Daniel Pocock wrote an informative article about the reConServer simple SIP conferencing server [3]. I should try it out, currently most people I want to conference with are using Google Hangouts, but getting away from Google is a good thing.

François Marier wrote an informative post about hardening ssh servers [4].

S. E. Smith wrote an interesting article “I Am Tired of Hearing Programmers Defend Gender Essentialism [5].

Bert Archer wrote an insightful article about lazy tourism [6]. His initial example of “love locks” breaking bridges was a bit silly (it’s not difficult to cut locks off a bridge) but his general point about lazy/stupid tourism is good.

Daniel Pocock wrote an insightful post about new developments in taxis, the London Taxi protest against Uber, and related changes [7]. His post convinced me that Uber is a good thing and should be supported. I checked the prices and unfortunately Uber is more expensive than normal taxis for my most common journey.

Cory Doctorow wrote an insightful article for The Guardian about the moral issues related to government spying [8].

The Verge has an interesting review of the latest Lytro Lightbox camera [9]. Not nearly ready for me to use, but interesting technology.

Prospect has an informative article by Kathryn Joyce about the Protestant child sex abuse scandal in the US [10]. Billy Graham’s grandson is leading the work to reform churches so that they protect children instead of pedophiles. Prospect also has an article by Kathryn Joyce about Christians home-schooling kids to try and program them to be zealots and how that hurts kids [11].

The Daily Beast has an interesting article about the way that the extreme right wing in the US are trying to kill people, it’s the right wing death panel [12].

Jay Michaelson wrote an informative article for The Daily Beast about right-wing hate groups in the US who promote the extreme homophobic legislation in Russia and other countries [13]. It also connects to the Koch brothers who seem to be associated with most evil. Elias Isquith wrote an insightful article for Salon about the current right-wing obsession with making homophobic discrimination an issue of “religious liberty” will hurt religious people [14]. He also describes how stupid the right-wing extremists are in relation to other issues too. has a really great comic explaning the economics of Social Security in the US [15]. They also have a comic explaining the TPP which is really good [16]. They sell a comic book about economics which I’m sure is worth buying. We need to have comics explaining all technical topics, it’s a good way of conveying concepts. When I was in primary school my parents gave me comic books covering nuclear physics and other science topics which were really good.

Mia McKenzie wrote an insightful article for about dealing with racist white teachers [17]. I think that it would be ideal to have a school dedicated to each minority group with teachers from that group.

Related posts:

  1. Links July 2013 Wayne Mcgregor gave an interesting TED talk about the creative...
  2. Links May 2014 Charmian Gooch gave an interesting TED talk about her efforts...
  3. Links June 2014 Russ Albery wrote an insightful blog post about trust, computer...

Andrew Pollock: [life] Day 183: Scootering, home tennis lesson, laksa

Thu, 2014-07-31 23:25

Today was a really nice day, another one that wasn't too jam packed, but was continuously busy.

After a lovely yoga class this morning, I drove to Sarah's place to pick up Zoe.

I needed to pick up some more fruit from the Hawthorne Garage, so after we got back home, I walked and Zoe scootered there. She wanted to keep scootering afterwards, so we went the long way home, going around the block.

There was some sort of excavation going on at a house around the corner from the Garage, and they'd broken the water pipe, which was making for a bit of a spectacular geyser. That made for something interesting to look at on the way home.

Zoe wanted to stop off at Crackerjack Toys on the way back. We managed to escape without buying anything, but that wasn't without trying.

After that, we had a "tennis lesson" in the garage. It was fun. We alternated between role playing teacher and student, and rehashed a few things from the previous real tennis class.

I thought it'd be a good idea to show her what "real" tennis looked like, so after we'd finished downstairs, we came back upstairs and watched some random Wimbledon and Australian Open footage on YouTube. She seemed to enjoy it. I'm really enjoying explaining new sports to her.

After that, Zoe wanted to watch an episode of the Muppets on YouTube, so we watched that, and then it was about time to start heading into the Valley for lunch.

I've managed to make it onto the invite list for an irregular laksa lunch of a bunch of current and former employees of WebCentral (because one of my ex-co-workers was from WebCentral), and there was a lunch today. I've taken Zoe before and she enjoyed herself, so I thought I'd try it again today.

We walked to the CityCat, and managed to make it just in time to walk onto a ferry as it arrived, and then took the CityGlider bus to Chinatown. We had a bit of time to kill, which Zoe solved by making a toilet stop, and then we went to Super Bowl.

Zoe had her wonton noodle soup again, and also tried the salt and pepper squid. She was really well behaved again while the rest of us talked about stuff of no interest to her. She's such a good kid.

After lunch, we browsed the dollar stores, and Zoe saw a bubble tea place and wanted to try a bubble tea again, so we shared a bubble tea.

We ended up taking the cross-river ferry to Bulimba instead of the CityCat, because it came first. There was a lady with a 3 year old in a stroller that Zoe struck up a conversation with. It turned out they'd just moved up to Teneriffe from Sydney three weeks previously. The little girl also went to Hampton Swim School for swim lessons, and they were on their way to Morningside State School for a class that afternoon. I got talking with her mother, and we ended up exchanging details for a future play date.

By the time we got home, we had half an hour to kill until TV time, which Zoe spent jumping on my bed and getting tickled, and then we watched some TV. For some reason the TV wasn't on ABC2, but on the Commonwealth Games coverage, so we watched some women's javelin, and some women's 200M heats. It was good to be able to explain some more sports to Zoe, and also for her to see some women's events. She was happy watching the Games coverage for almost half an hour before asking for some kid's stuff.

After that, Anshu arrived, and then Sarah arrived not much later to pick up Zoe.

Russell Coker: BTRFS Status July 2014

Thu, 2014-07-31 22:26

My last BTRFS status report was in April [1], it wasn’t the most positive report with data corruption and system hangs. Hacker News has a brief discussion of BTRFS which includes the statement “Russell Coker’s reports of his experiences with BTRFS give me the screaming heebie-jeebies, no matter how up-beat and positive he stays about it” [2] (that’s one of my favorite comments about my blog).

Since April things have worked better. Linux kernel 3.14 solves the worst problems I had with 3.13 and it’s generally doing everything I want it to do. I now have cron jobs making snapshots as often as I wish (as frequently as every 15 minutes on some systems), automatically removing snapshots (removing 500+ snapshots at once doesn’t hang the system), balancing, and scrubbing. The fact that I can now expect that a filesystem balance (which is a type of defragment operation for BTRFS that frees some “chunks”) from a cron job and expect the system not to hang means that I haven’t run out of metadata chunk space. I expect that running out of metadata space can still cause filesystem deadlocks given a lack of reports on the BTRFS mailing list of fixes in that regard, but as long as balance works well we can work around that.

My main workstation now has 35 days of uptime and my home server has 90 days of uptime. Also the server that stores my email now has 93 days uptime even though it’s running Linux kernel 3.13.10. I am rather nervous about the server running 3.13.10 because in my experience every kernel before 3.14.1 had BTRFS problems that would cause system hangs. I don’t want a server that’s an hour’s drive away to hang…

The server that runs my email is using kernel 3.13.10 because when I briefly tried a 3.14 kernel it didn’t work reliably with the Xen kernel 4.1 from Debian/Wheezy and I had a choice of using the Xen kernel 4.3 from Debian/Unstable to match the Linux kernel or use an earlier Linux kernel. I have a couple of Xen servers running Debian/Unstable for test purposes which are working well so I may upgrade my mail server to the latest Xen and Linux kernels from Unstable in the near future. But for the moment I’m just not doing many snapshots and never running a filesystem scrub on that server.


In kernel 3.14 scrub is working reliably for me and I have cron jobs to scrub filesystems on every system running that kernel. So far I’ve never seen it report an error on a system that matters to me but I expect that it will happen eventually.

The paper “An Analysis of Data Corruption in the Storage Stack” from the University of Wisconsin (based on NetApp data) [3] shows that “nearline” disks (IE any disks I can afford) have an incidence of checksum errors (occasions when the disk returns bad data but claims it to be good) of about 0.42%. There are 18 disks running in systems I personally care about (as opposed to systems where I am paid to care) so with a 0.42% probability of a disk experiencing data corruption per year that would give a 7.3% probability of having such corruption on one disk in any year and a greater than 50% chance that it’s already happened over the last 10 years. Of the 18 disks in question 15 are currently running BTRFS. Of the 15 running BTRFS 10 are scrubbed regularly (the other 5 are systems that don’t run 24*7 and the system running kernel 3.13.10).

Newer Kernels

The discussion on the BTRFS mailing list about kernel 3.15 is mostly about hangs. This is correlated with some changes to improve performance so I presume that it has exposed race conditions. Based on those discussions I haven’t felt inclined to run a 3.15 kernel. As the developers already have some good bug reports I don’t think that I could provide any benefit by doing more testing at this time. I think that there would be no benefit to me personally or the Linux community in testing 3.15.

I don’t have a personal interest in RAID-5 or RAID-6. The only systems I run that have more data than will fit on a RAID-1 array of cheap SATA disks are ones that I am paid to run – and they are running ZFS. So the ongoing development of RAID-5 and RAID-6 code isn’t an incentive for me to run newer kernels. Eventually I’ll test out RAID-6 code, but at the moment I don’t think they need more bug reports in this area.

I don’t have a great personal interest in filesystem performance at this time. There are some serious BTRFS performance issues. One problem is that a filesystem balance and subtree removal seem to take excessive amounts of CPU time. Another is that there isn’t much support for balancing IO to multiple devices (in RAID-1 every process has all it’s read requests sent to one device). For large-scale use of a filesystem these are significant problems. But when you have basic requirements (such as a mail server for dozens of users or a personal workstation with a quad-core CPU and fast SSD storage) it doesn’t make much difference. Currently all of my systems which use BTRFS have storage hardware that exceeds the system performance requirements by such a large margin that nothing other than installing Debian packages can slow the system down. So while there are performance improvements in newer versions of the BTRFS kernel code that isn’t an incentive for me to upgrade.

It’s just been announced that Debian/Jessie will use Linux 3.16, so I guess I’ll have to test that a bit for the benefit of Debian users. I am concerned that 3.16 won’t be stable enough for typical users at the time that Jessie is released.

Related posts:

  1. BTRFS Status March 2014 I’m currently using BTRFS on most systems that I can...
  2. BTRFS Status April 2014 Since my blog post about BTRFS in March [1] not...
  3. Starting with BTRFS Based on my investigation of RAID reliability [1] I have...

Stewart Smith: Testing that all projects need

Thu, 2014-07-31 17:26

Today, I was reminded of a Jim Starkey quote on the Random Query Generator:

“The Colonoscopy of Database Software”

- Jim Starkey

If your project does not have something that you can adapt that quote to, odds are your testing is inadequate.

Andrew Pollock: [life] Day 182: Errands, movie, bike ride and swim class

Wed, 2014-07-30 22:26

Zoe woke up at around midnight and ended up in bed with me. I think I'll be spending the weekend doing some retraining.

I had noticed that Tinkerbell and the Pirate Fairy was still showing at the Hawthorne Cineplex, so I thought I'd take Zoe today. She ended up doing a poor job listening this morning when we were trying to get going, so I told her we'd go see it tomorrow as a consequence.

We headed out to exchange her tennis racquet for a larger one, and picked up a few other bits and pieces while we were out. I got a witches hat from Bunnings, and now she's very excited about having a tennis lesson at home.

We dropped by the movie theatre to see what time the movie would be showing tomorrow, because they haven't published the times for the next week yet, and the time didn't really work for what I wanted to do tomorrow, so we ended up watching the movie today anyway.

The movie was pretty good. It's nice to see Disney allowing John Lasseter to have creative input into non-Pixar films. I noticed his name in the trailers for Frozen as well.

After that, we dropped into Ooniverse next door, and ended up having lunch there. I struck up a conversation with Nicky Noo. I can see an opportunity to potentially keep my recently acquired barista skills vaguely sharp by doing some freebie barista work there in my copious amounts of spare time.

We walked home after that, and to kill some time, we were going to do a bike tour of the local parks until it was time for Zoe's swim class. After pumping up the tyres and getting to Bulimba Memorial Park, that was about as far as we got before it was time to leave for swim class.

We biked over to the swim class, and I had a great time watching Zoe learning to roll and breathe. It's the last piece she needs to pick up before she can properly swim, and then it's just refinement. She didn't do too badly.

Megan arrived for her class, which was after Zoe's, so the girls got to briefly hang out, and Zoe wanted to stay for a bit to watch Megan swim.

After that, we biked home, and Sarah arrived a bit earlier than usual to pick up Zoe. News: Call for bids for LCA 2017

Wed, 2014-07-30 20:27

Plans are coming along really well for 2015 in Auckland. We're very much looking forward to seeing you all there, but in the meantime it's time to start thinking about plans for 2017.

Here is the timeline:

  • July - Council works with Bid Teams to help them prepare their bids, answering questions and providing guidance.
  • 8th August - Submission of formal bids closes.
  • August - Council clarifies any questions regarding the bids and reviews them.
  • September - Council conducts Site Inspections with shortlisted Bid Teams.
  • October - Council decides on the winning city and informs the Bid Teams.
  • January - The winning bid is announced at 2015.

If you have ever sat in the back of a LUG meeting or an LCA talk and had an informal chat to someone about running an LCA now is the time to put that idea into action. If you were the person two seats back listening in, go bug that person to put in a bid!

If you haven’t already, the first thing to to do is to send an email to to let them know you are thinking of submitting a bid. You should also CC, this might help you find other people keen on helping you out.

Once you've done that here are two documents to help you get started:

The first outlines what is required for the bid process, while the second give a fairly detailed overview of the sorts of things you need to think about when preparing to run an LCA, and provide example bid documents.

There is also a comprehensive Event Portal with lots of useful information on how to run a successful event at

So go out, get your team together, talk to some venues/vendors and start bidding to run the next awesome LCA! Armed with your amazing organising skills, this is your opportunity to show off your city, do what you always wanted to do at LCA, add something extra special to the conference and have a say in the programme of the conference.

This is something you will remember for a lifetime and gain life-long friends, professional contacts and the experience looks amazing on a resume. Not to mention, it’s great fun to run!

Once you've finalised your bid document then please send to and

If you are thinking of bidding, please put your hand up sooner rather than later so that the Council can make sure you get the support you need to prepare a high quality bid. Please don’t hesitate to contact us if you have any questions or need any help in preparing your bid.

Russell Coker: Android Screen Saving

Wed, 2014-07-30 00:26

Just over a year ago I bought a Samsung Galaxy Note 2 [1]. About 3 months ago I noticed that some of the Ingress menus had burned in to the screen. Back in ancient computer times there were “screen saver” programs that blanked the screen to avoid this, then the “screen saver” programs transitioned to displaying a variety of fancy graphics which didn’t really fulfill the purpose of saving the screen. With LCD screens I have the impression that screen burn wasn’t an issue, but now with modern phones we have LED displays which have the problem again.

Unfortunately there doesn’t seem to be a free screen-saver program for Android in the Google Play store. While I can turn the screen off entirely there are some apps such as Ingress that I’d like to keep running while the screen is off or greatly dimmed. Now I sometimes pull the notification menu down when I’m going to leave Ingress idle for a while, this doesn’t stop the screen burning but it does cause different parts to burn which alleviates the problem.

It would be nice if apps were designed to alleviate this. A long running app should have an option to change the color of it’s menus, it would be ideal to randomly change the color on startup. If the common menus such as the “COMM” menu would appear in either red, green, or blue (the 3 primary colors of light) in a ratio according to the tendency to burn (blue burns fastest so should display least) then it probably wouldn’t cause noticable screen burn after 9 months. The next thing that they could do is to slightly vary the position of the menus, instead of having a thin line that’s strongly burned into the screen there would be a fat line lightly burned in which should be easier to ignore.

It’s good when apps have an option of a “dark” theme, that involves less light coming from the screen that should reduce battery use and screen burn. A dark theme should be at least default and probably mandatory for long running apps, a dark theme is fortunately the only option for Ingress.

I am a little disappointed with my phone. I’m not the most intensive Ingress player so I think that the screen should have lasted for more than 9 months before being obviously burned.

Related posts:

  1. Maintaining Screen Output In my post about getting started with KVM I noted...
  2. Android Device Service Life In recent years Android devices have been the most expensive...
  3. Cheap Android Tablet from Aldi I’ve just bought a 7″ Onix tablet from Aldi....

Andrew Pollock: [life] Day 181: Kindergarten, startup stuff, tennis and haircuts

Tue, 2014-07-29 23:25

Zoe had a massive sleep last night. I had her in bed by 7:20pm. She woke up a little before 6am because she'd lost Cowie, and went back to sleep until 7:30am. I had planned to try biking to Kindergarten for the first time in ages, but we got to Kindergarten late enough as it was driving.

I pretty much spent the day studying for my real estate license. I selected finalists for the design contest I'm running on 99designs. If you'd like to vote, I'm running a poll.

I picked up Zoe from Kindergarten and walked her next door to her tennis lesson. She really didn't want to do it this afternoon, and it took some firm encouragement to get her to participate. I'm never sure where to draw the line, but based on the grinning and running around within seconds of her finally joining in, I think I made the right decision. I think the problem was she was too hot. It was quite a warm day today.

The plan after that had been to go back to Megan's house for a play date, but her little sister had come home from day care early, showing signs of conjunctivitis, so we instead went to the local coffee shop for a babyccino with Megan and her Dad. While we were there, I managed to snag an appointment for a haircut for me, and a fringe trim for Zoe, so we headed over there afterwards.

After our haircuts, it was pretty much time to start making dinner, so Zoe watched some TV, and I prepared dinner.

I managed to get Zoe to bed early. It'll be interesting to see if she has another massive sleep again.

Russell Coker: Happiness and Lecture Questions

Tue, 2014-07-29 22:26

I just attended a lecture about happiness comparing Australia and India at the Australia India Institute [1]. The lecture was interesting but the “questions” were so bad that it makes a good case for entirely banning questions from public lectures. Based on this and other lectures I’ve attended I’ve written a document about how to recognise worthless questions and cut them off early [2].

As you might expect from a lecture on happiness there were plenty of stupid comments from the audience about depression, as if happiness is merely the absence of depression.

Then they got onto stupidity about suicide. One “question” claimed that Australia has a high suicide rate, Wikipedia however places Australia 49th out of 110 countries, that means Australia is slightly above the median for suicide rates per country. Given some of the dubious statistics in the list (for example the countries claiming to have no suicides and the low numbers reported by some countries with extreme religious policies) I don’t think we can be sure that Australia would be above the median if we had better statistics. Another “question” claimed that Sweden had the highest suicide rate in Europe, while Greenland, Belgium, Finland, Austria, France, Norway, Denmark, Iceland, and most of Eastern Europe are higher on the list.

But the bigger problem in regard to discussing suicide is that the suicide rate isn’t about happiness. When someone kills themself because they have a terminal illness that doesn’t mean that they were unhappy for the majority of their life and doesn’t mean that they were any unhappier than the terminally ill people who don’t do that. Some countries have a culture that is more positive towards suicide which would increase the incidence, Japan for example. While people who kill themselves in Japan are probably quite unhappy at the time I don’t think that there is any reason to believe that they are more unhappy than people in other countries who only keep living because suicide is considered to be wrong.

It seems to me that the best strategy when giving or MCing a lecture about a potentially contentious topic is to plan ahead for what not to discuss. For a lecture about happiness it would make sense to rule out all discussion of suicide, anti-depressants, and related issues as they aren’t relevant to the discussion and can’t be handled in an appropriate manner in question time.

Related posts:

  1. Length of Conference Questions After LCA last year I wrote about “speaking stacks” and...
  2. Questions During Lectures An issue that causes some discussion and debate is the...
  3. Ziggy’s Lecture about Nuclear Power The Event I just attended a lecture by Dr Ziggy...

Rusty Russell: Pettycoin Alpha01 Tagged

Tue, 2014-07-29 19:27

As all software, it took longer than I expected, but today I tagged the first version of pettycoin.  Now, lots more polish and features, but at least there’s something more than the git repo for others to look at!