Planet Linux Australia

Syndicate content
Planet Linux Australia -
Updated: 40 min 11 sec ago

Craig Sanders: lm-sensors configs for Asus Sabertooth 990FX and M5A97 R2.0

Wed, 2016-01-20 23:26

I had to replace a motherboard and CPU a few days ago (bought an Asus M5A97 R2.0), and wanted to get lm-sensors working properly on it. Got it working eventually, which was harder than it should have been because the lm-sensors site is MIA, seems to have been rm -rf -ed.

For anyone else with this motherboard, the config is included below.

This inspired me to fix the config for my Asus Sabertooth 990FX motherboard. Also included below.

To install, copy-paste to a file under /etc/sensors.d/ and run sensors -s to make sensors evaluate all of the set statemnents.

# Asus M5A97 R2.0 # based on Asus M5A97 PRO from chip "k10temp-pci-00c3" label temp1 "CPU Temp (rel)" chip "it8721-*" label in0 "+12V" label in1 "+5V" label in2 "Vcore" label in2 "+3.3V" ignore in4 ignore in5 ignore in6 ignore in7 ignore fan3 compute in0 @ * (515/120), @ / (515/120) compute in1 @ * (215/120), @ / (215/120) label temp1 "CPU Temp" label temp2 "M/B Temp" set temp1_min 30 set temp1_max 70 set temp2_min 30 set temp2_max 60 label fan1 "CPU Fan" label fan2 "Chassis Fan" label fan3 "Power Fan" ignore temp3 set in0_min 12 * 0.95 set in0_max 12 * 1.05 set in1_min 5 * 0.95 set in1_max 5 * 1.05 set in3_min 3.3 * 0.95 set in3_max 3.3 * 1.05 ignore intrusion0 #Asus Sabertooth 990FX # modified from the version at chip "it8721-isa-0290" # Temperatures label temp1 "CPU Temp" label temp2 "M/B Temp" label temp3 "VCORE-1" label temp4 "VCORE-2" label temp5 "Northbridge" # I put all these here as a reference since the label temp6 "DRAM" # Asus Thermal Radar tool on my Windows box displays label temp7 "USB3.0-1" # all of them. label temp8 "USB3.0-2" # lm-sensors ignores all but the CPU and M/B temps. label temp9 "PCIE-1" # If that is really what they are. label temp10 "PCIE-2" set temp1_min 0 set temp1_max 70 set temp2_min 0 set temp2_max 60 ignore temp3 # Fans label fan1 "CPU Fan" label fan2 "Chassis Fan 1" label fan3 "Chassis Fan 2" label fan4 "Chassis Fan 3" # label fan5 "Chassis Fan 4" # lm-sensor complains about this ignore fan2 ignore fan3 set fan1_min 600 set fan2_min 600 set fan3_min 600 # Voltages label in0 "+12V" label in1 "+5V" label in2 "Vcore" label in3 "+3.3V" label in5 "VDDA" compute in0 @ * (50/12), @ / (50/12) compute in1 @ * (205/120), @ / (205/120) set in0_min 12 * 0.95 set in0_max 12 * 1.05 set in1_min 5 * 0.95 set in1_max 5 * 1.05 set in2_min 0.80 set in2_max 1.6 set in3_min 3.20 set in3_max 3.6 set in5_min 2.2 set in5_max 2.8 ignore in4 ignore in6 ignore in7 ignore intrusion0 chip "k10temp-pci-00c3" label temp1 "CPU Temp"

lm-sensors configs for Asus Sabertooth 990FX and M5A97 R2.0 is a post from: Errata

Dave Hall: Internal Applications: When Semantic Versioning Doesn't Make Sense

Wed, 2016-01-20 00:30

Semantic Versioning (or SemVer) is great for libraries and open source applications. It allows development teams to communicate to user and downstream developers the scope of changes in a release. One of the most important indicators in versioning is backwards compatibility (BC). SemVer makes any BC break clear. Web services and public APIs are another excellent use case for SemVer.

As much as I love semantic versioning for public projects, I am not convinced about using it for internal projects.

Libraries, be they internal or publicly released should follow the semantic version spec. Not only does this encourage reuse and sharing of libraries, it also displays good manners towards your fellow developers. Internal API endpoints should also comply with SemVer, but versioning end points should only expose major.minor in the version string. Again this will help maintain good relations with other devs.

End users of your application probably won't care if you drop jQuery in favour of straight JS, swap Apache for nginx or even if you upgrade to PHP 7/Python 3.x. Some users will care if you move a button. They won't care that the underlying data model and classes remain unchanged and so this is only a patch release. In the mind of those users, the button move is a BC break, because you changed their UI. At the end of the day, users don't care about version numbers, they care about features and bug fixes.

Regardless of the versioning system used, changes should be documented in a changelog. The changelog shouldn't just be a list of git commits streamed into a text file. This changelog should be something a non technical user can get their head around. This allows all stakeholders to clearly see the incremental improvement in the system.

In my mind SemVer breaks down when it comes to these types of (web) applications. Without a doubt any of the external integration points of the app should use semantic versioning. However the actual app versioning should just increment. I recommend using date based version numbering, such as 201512010 for the first release on 1 December 2015. The next release on that same day, if required, would be 201512011 and so on. If you release many times per day then you might want to consider a 2 or 3 digit counter component.

The components that make up your application such as the libraries, docker base images, ansible playbooks and so on should be using SemVer. Your build and test infrastructure should be able to create reproducible builds of the full stack if you reference specific versions or dependencies.

Instead of conditioning end users to understand semantic versioning, energy should be expended on teaching users to understand continuous delivery and deployment. The app is going to grow and evolve, tagging a release should be something a script can do. It shouldn't need 5 people in the tea room trying to work out if a feature can go in or not because it might be considered a BC break.

When building an application, get the code written and have people using it. If they're not happy, continue to iterate.

Binh Nguyen: Anonymous Group, Random Thoughts, and More

Mon, 2016-01-18 01:43
One point leads to another. The latest group/movement to come into the limelight is 'Anonymous'. As you'll see their background is varied and at times it's hard to distinguish their exact intent... - despite what they say there's a lot of difficulty distinguishing whether or not they are activists or merely trouble makers at times. Part of the time you feel as though if they focused more on

Chris Smart: Resurrect Nexus 4 with red light of death by using wireless charger

Sun, 2016-01-17 22:29

I should have posted this ages ago. There is a well known problem which may affect Nexus 4 devices where it powers off and won’t power on again. When you plug it into the USB charger you get a solid red light and it never recovers.

If you search for the problem the main advice is to return the phone for a factory fix, however there’s an easier trick that’s worked for me; using a wireless charger.

Every time I’ve had this problem (on a few different Nexus 4 phones) I’ve been able to bring the phone back by sitting it on my Nexus wireless charger for a few minutes, then pressing the power button and it springs to life.

After that, you can charge and use the phone as normal. I am writing this now because I was reminded after using this trick to fix a friend’s phone tonight (he’d been googling the problem for a while with no luck).

Maybe someone still has one in their bottom drawer and can make use of it again by using this trick!

Jonathan Adamczewski: Another another C++11 ‘countof’

Sat, 2016-01-16 04:27

My earlier post received this comment which is a pretty neat little improvement over the one from

Here it is, with one further tweak:

template<typename T, std::size_t N> constexpr std::integral_constant<std::size_t, N> countof(T const (&)[N]) noexcept {   return {}; } #define COUNTOF(...) decltype(countof(__VA_ARGS__))::value

The change I’ve made to pfultz2’s version is to use ::value rather than {} after decltype in the macro.

This makes the type of the result std::size_t not std::integral_constant, so it can be used in va_arg settings without triggering compiler or static analysis warnings.

It also has the advantage of not triggering extra warnings in VS2015U1 (this issue).

Ian Wienand: Australia, ipv6 and dd-wrt

Fri, 2016-01-15 16:26

It seems that other than Internode, no Australian ISP has any details at all about native IPv6 deployment. Locally I am on Optus HFC, which I believe has been sold to the NBN, who I believe have since discovered that it is not quite what they thought it was. i.e. I think they have more problems than rolling out IPv6 and I won't hold my breath.

So the only other option is to use a tunnel of some sort, and it seems there is really only one option with local presence via SixXS. There are other options, notably, but they do not have Australian tunnel-servers. SixXS is the only one I could find with a tunnel in Sydney.

So first sign up for an account there. The process was rather painless and my tunnel was provided quickly.

After getting this, I got dd-wrt configured and working on my Netgear WNDR3700 V4. Here's my terse guide, cobbled together from other bits and pieces I found. I'm presuming you have a recent dd-wrt build that includes the aiccu tool to create the tunnel, and are pretty familiar with logging into it, etc.

Firstly, on dd-wrt make sure you have JFFS2 turned on for somewhere to install scripts. Go Administration, JFFS2 Support, Internal Flash Storage, Enabled.

Next, add the aiccu config file to /jffs/etc/aiccu.conf

# AICCU Configuration # Login information username USERNAME password PASSWORD # Protocol and server listed on your tunnel protocol tic server # Interface names to use ipv6_interface sixxs # The tunnel_id to use # (only required when there are multiple tunnels in the list) #tunnel_id <your tunnel id> # Be verbose? verbose false # Daemonize? daemonize true # Require TLS? requiretls true # Set default route? defaultroute true

Now you can add a script to bring up the tunnel and interface to /jffs/config/sixxs.ipup (make sure you make it executable) where you replace your tunnel address in the ip commands.

# wait until time is synced while [ `date +%Y` -eq 1970 ]; do sleep 5 done # check if aiccu is already running if [ -n "`ps|grep etc/aiccu|grep -v grep`" ]; then aiccu stop sleep 1 killall aiccu fi # start aiccu sleep 3 aiccu start /jffs/etc/aiccu.conf sleep 3 ip -6 addr add 2001:....:....:....::/64 dev br0 ip -6 route add 2001:....:....:....::/64 dev br0 sleep 5 #### BEGIN FIREWALL RULES #### WAN_IF=sixxs LAN_IF=br0 #flush tables ip6tables -F #define policy ip6tables -P INPUT DROP ip6tables -P FORWARD DROP ip6tables -P OUTPUT ACCEPT # Input to the router # Allow all loopback traffic ip6tables -A INPUT -i lo -j ACCEPT #Allow unrestricted access on internal network ip6tables -A INPUT -i $LAN_IF -j ACCEPT #Allow traffic related to outgoing connections ip6tables -A INPUT -i $WAN_IF -m state --state RELATED,ESTABLISHED -j ACCEPT # for multicast ping replies from link-local addresses (these don't have an # associated connection and would otherwise be marked INVALID) ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-reply -s fe80::/10 -j ACCEPT # Allow some useful ICMPv6 messages ip6tables -A INPUT -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT ip6tables -A INPUT -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT ip6tables -A INPUT -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT ip6tables -A INPUT -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-reply -j ACCEPT # Forwarding through from the internal network # Allow unrestricted access out from the internal network ip6tables -A FORWARD -i $LAN_IF -j ACCEPT # Allow some useful ICMPv6 messages ip6tables -A FORWARD -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT ip6tables -A FORWARD -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT ip6tables -A FORWARD -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT ip6tables -A FORWARD -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT ip6tables -A FORWARD -p icmpv6 --icmpv6-type echo-request -j ACCEPT ip6tables -A FORWARD -p icmpv6 --icmpv6-type echo-reply -j ACCEPT #Allow traffic related to outgoing connections ip6tables -A FORWARD -i $WAN_IF -m state --state RELATED,ESTABLISHED -j ACCEPT

Now you can reboot, or run the script, and it should bring the tunnel up and you should be correclty firewalled such that packets get out, but nobody can get in.

Back to the web-interface, you can now enable IPv6 with Setup, IPV6, Enable. You leave "IPv6 Type" as Native IPv6 from ISP. Then I enabled Radvd and added a custom config in the text-box to get DNS working with google DNS on hosts with:

interface br0 { AdvSendAdvert on; prefix 2001:....:....:....::/64 { }; RDNSS 2001:4860:4860::8888 2001:4860:4860::8844 { }; };

(again, replace the prefix with your own)

That is pretty much it; at this point, you should have an IPv6 network and it's most likely that all your network devices will "just work" with it. I got full scores on the IPv6 test sites on a range of devices.

Unfortunately, even a geographically close tunnel still really kills latency; compare these two traceroutes:

$ mtr -r -c 1 Start: Fri Jan 15 14:51:18 2016 HOST: jj Loss% Snt Last Avg Best Wrst StDev 1. |-- 2001:....:....:....:: 0.0% 1 1.4 1.4 1.4 1.4 0.0 2. |-- 0.0% 1 12.0 12.0 12.0 12.0 0.0 3. |-- 0.0% 1 13.5 13.5 13.5 13.5 0.0 4. |-- 0.0% 1 13.7 13.7 13.7 13.7 0.0 5. |-- 0.0% 1 11.5 11.5 11.5 11.5 0.0 6. |-- 2001:4860::1:0:8613 0.0% 1 14.1 14.1 14.1 14.1 0.0 7. |-- 2001:4860::8:0:79a0 0.0% 1 115.1 115.1 115.1 115.1 0.0 8. |-- 2001:4860::8:0:8877 0.0% 1 183.6 183.6 183.6 183.6 0.0 9. |-- 2001:4860::1:0:66d6 0.0% 1 196.6 196.6 196.6 196.6 0.0 10.|-- 2001:4860:0:1::72d 0.0% 1 189.7 189.7 189.7 189.7 0.0 11.|-- 0.0% 1 194.9 194.9 194.9 194.9 0.0 $ mtr -4 -r -c 1 Start: Fri Jan 15 14:51:46 2016 HOST: jj Loss% Snt Last Avg Best Wrst StDev 1.|-- gateway 0.0% 1 1.3 1.3 1.3 1.3 0.0 2.|-- 0.0% 1 11.0 11.0 11.0 11.0 0.0 3.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0 4.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0 5.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0 6.|-- 0.0% 1 12.1 12.1 12.1 12.1 0.0 7.|-- 0.0% 1 10.4 10.4 10.4 10.4 0.0

When you watch what is actually using ipv6 (the ipvfoo plugin for Chrome is pretty cool, it shows you what requests are going where), it's mostly all just traffic to really big sites (Google/Google Analytics, Facebook, Youtube, etc) who have figured out IPv6.

Since these are exactly the type of places that have made efforts to get caching as close as possible to you (Google's mirror servers are within Optus' network, for example) and so you're really shooting yourself in the foot going around it using an external tunnel. The other thing is that I'm often hitting IPv6 mirrors and downloading larger things for work stuff (distro updates, git clones, image downloads, etc) which is slower and wasting someone else's bandwith for really no benefit.

So while it's pretty cool to have an IPv6 address (and a fun experiment) I think I'm going to turn it off. One positive was that after running with it for about a month, nothing has broken -- which suggests that most consumer level gear in a typical house (phones, laptops, TVs, smart-watches, etc) is either ready or ignores it gracefully. Bring on native IPv6!

Jonathan Adamczewski: Another C++11 ‘countof’

Thu, 2016-01-14 20:27

Note: There’s an update here.

Read “Better array ‘countof’ implementation with C++ 11” for context. Specifically, it presents Listing 5 as an implementation of countof() using C++11 constexpr:

  • template<typename T, std::size_t N> constexpr std::size_t countof(T const (&)[N]) noexcept { return N; }

But this falls short. Just a little.

There are arguments that could be passed to a naive sizeof(a)/sizeof(a[0]) macro that will cause the above to fail to compile.


struct S { int a[4]; }; void f(S* s) { constexpr size_t s_a_count = countof(s->a); int b[s_a_count]; // do things... }

This does not compile. s is not constant, and countof() is a constexpr function whose result is needed at compile time, and so expects a constexpr-friendly argument. Even though it is not used.

Errors from this kind of thing can look like this from clang-3.7.0:

error: constexpr variable 's_a_count' must be initialized by a constant expression note: read of non-constexpr variable 's' is not allowed in a constant expression

or this from Visual Studio 2015 Update 1:

error: C2131: expression did not evaluate to a constant

(Aside: At the time of writing, the error C2131 seems to be undocumented for VS2015. But Visual Studio 6.0 had an error with the same number)

Here’s a C++11 version of countof() that will give the correct result for countof(s->a) above:

#include <type_traits> template<typename Tin> constexpr std::size_t countof() { using T = typename std::remove_reference<Tin>::type; static_assert(std::is_array<T>::value, "countof() requires an array argument"); static_assert(std::extent<T>::value > 0, // [0] "zero- or unknown-size array"); return std::extent<T>::value; } #define countof(a) countof<decltype(a)>()

Some of the details:

Adding a countof() macro allows use of decltype() in the caller’s context, which provides the type of the member array of a non-const object at compile time.

std::remove_reference is needed to get the array type from the result of decltype(). Without it, std::is_array and std::extent produce false and zero, respectively.

The first static assert ensures that countof() is being called on an actual array. The upside over failed template instantiation or specialization is that you can write your own human-readable, slightly more context aware error message (better than mine).

The second static assert validates that the array size is known, and is greater than zero. Without it, countof<int[]>() will return zero (which will be wrong) without error. And zero-sized arrays will also result in zero — in practice they rarely actually contain zero elements. This isn’t a function for finding the size of those arrays.

And then std::extent<T>::value produces the actual count of the elements of the array.


If replacing an existing sizeof-based macro with a constexpr countof() alternate, Visual Studio 2015 Update 1 will trigger warnings in certain cases where there previously were no warnings.

warning C4267: conversion from 'size_t' to 'int', possible loss of data

It is unfortunate to have to add explicit casts when the safety of such operations is able to be determined by the compiler. I have optimistically submitted this as an issue at

[0] Typo fix thanks to this commentor

Jeremy Kerr: Kernel testing for OpenPOWER platforms

Thu, 2016-01-14 17:27

Last week, Michael and I were discussing long-term Linux support for OpenPOWER platforms, particularly the concern about testing for non-IBM hardware. We'd like to ensure that the increasing range of OpenPOWER platforms, from different manufacturers, don't lose compatibility with the upstream Linux kernel.

Previously, there were only a few POWER vendors, producing a fairly limited range of hardware, so it's reasonable to get a decent amount of test coverage by booting the kernel on a small number of machines with diverse-enough components. Now, with OpenPOWER, machines are being built by different manufacturers, and so it's getting less feasible to do that coverage testing in a single lab.

To solve this, Chris, who has been running the jenkins setup on, has added some kernel builds for the latest mainline kernel. We're using a .config that should be suitable for all OpenPOWER platforms. The idea here is to get as much of the OpenPOWER hardware community as possible to test the latest Linux kernel.

If you're an OpenPOWER vendor, I'd strongly suggest setting up some regular testing on this kernel. This means you'll catch any breakages before they affect users of your platform.

Setting up a test process

The jenkins build jobs expose a last-sucessful-build URL, allowing you to grab the bootable kernel image easily:

[Note that these are HTTPS links, and you should be ensuring that the certificates are correct for anything you download and boot!]

To help with testing, we've also produced a little root-filesystem image that can be booted with this kernel as an initramfs image. That's produced via a similar jenkins job.

To set up an automated test process for this kernel:

If you find a build that fails on your machine, please send us an email at

Alternatively, if there's something extra you need in the kernel configuration or initramfs setup, let me know at

Future work

To improve the testing coverage, we'd like to add some automated tests to the initramfs image, rather than just booting to a shell. Stay tuned for updates!

Binh Nguyen: Xi Jinping, China Background, and More

Thu, 2016-01-14 01:12
One of the things that is obvious is that a lot of the people in the West don't understand Xi Jinping and China and what exactly they're up to. Moreover, the Chinese have stated outright that in general most people in the West don't understand enough of their background to have a genuine idea of why they hold certain positions. This post will hopefully address some of these issues and help you

Simon Lyall: Priorities for 2016

Wed, 2016-01-13 10:28

This is a almost New Years resolutions page but not quite. It is a list of the stuff that will take priority over other things in 2016

  • Chess – Aim to play regularly in tournaments, do weekly coaching and study at least 7 hours per week on tactics, endgames and openings.
  • Programming – Continue improving my programming skills, finish the book I am on, do a few exercises and create a few things
  • Blogging – At least 1 post each month to both my personal blog and the Auckland Chess Centre website
  • Driving – Get my Restricted Driver License
  • Reading – Read books (not online) at least half an hour per day
  • Health – 7500 steps every weekday plus get to goal weight
  • Conference – Run successful Sysadmin Miniconf at 2016

Stretch Goals – If I am keeping up with the above

  • Start working my way through Shakespeare’s plays
  • Do a couple of new website projects I’ve been putting off
  • Watch a 2-3 of hours of TV each week.


Russell Coker: Sociological Images 2015

Tue, 2016-01-12 22:26

The above sign was at the Melbourne Docks in December 2014 when I was returning from a cruise. I have no idea why there are 3 men and 1 woman on the sign (and a dock worker was also surprised when I explained why I was photographing it). I wonder whether a sign that had 3 women and 1 man would ever have been installed or not noticed if it was installed.

At the start of the first day of LCA 2015 the above was displayed at the keynote as a flow-chart for whether someone should ask a question at a lecture. Given that the first real item in the list is that a question should fit in a tweet I think it was inspired by my blog post about the length of conference questions [1].

At the introduction to the Astronomy Miniconf the above slide was displayed. In addition to referencing the flow-chart for asking questions it recommends dimming laptop screens (among other things).

The above sign was at a restaurant in Auckland in January 2015. I thought that sort of sexist “joke” went out of fashion a few decades ago.

The above photo is from a Melbourne department store in February 2015. Why gender a nerf gun? That just doesn’t make sense. Also it appeared that the only nerf crossbow was the purple/pink one, is a crossbow considered feminine nowadays?

The above picture is a screen-shot of one of the “Talking Angela” series of Android games from March. Appropriating the traditional clothing of marginalised groups is a bad thing. People of Native American heritage who want to wear their traditional clothing face discrimination when they do so, when white people play dress-up in clothing that is a parody of Native American style it’s really offensive. The site has a tag for articles about appropriation [2].

The above was in a library advertising an Ebook reader. In this case they didn’t even have pointlessly gendered products they just had pointlessly gendered adverts for the same product. They also perpetuate the myth that only girls read vampire books and only boys read about space. Also why is the girl lying down to read while the boy is sitting up?

Above is an Advent calendar on sale in a petrol station. Having end of year holiday presents that have nothing to do with religious festivals makes sense. But Advent is a religious observance. I think this would be a better candidate for “war on Christmas” paranoia than a coffee cup of the wrong colour.

The above photo is of boys and girls pipette suckers. Pointlessly gendered recreational products like Nerf guns is one thing, but I think that doing it to scientific equipment is a bigger problem. Are scientists going to stop work if they can’t find a pipette sucker of the desired gender? Is worrying about this going to distract them from their research (really bad if working with infectious or carcinogenic solutions). The Integra advertising claims to be doing this to promote breast cancer research which is also bogus. Here is a Sociological Images article about the problems of using pink to market breast cancer research [3] and the Sociological Images post about pinkwashing (boobies against breast cancer) is also worth reading [4].

As an aside I made a mistake in putting a pipette sucker over the woman’s chest in that picture. The way that Integra portreyed her chest is relevant to analysis of this advert. But unfortunately I didn’t photograph that.

Here is a link to my sociological images post from 2014 [5].

Related posts:

  1. Sociological Images 2014 White Trash The above poster was on a bridge pylon...
  2. Sociological Images 2012 In 2011 I wrote a post that was inspired by...
  3. Sociological Images I’ve recently been reading the Sociological Images blog [1]. That...

Colin Charles: FOSDEM 2016 – See you in Brussels

Tue, 2016-01-12 22:26

Over the weekend I read in the FT (paywall): Is Brussels safe? Ring a local resident to find out. I’m sure it will be fine, and you will want to be there for FOSDEM, happening 30-31 January 2016. 

There is the excellent one day track, that is the MySQL & Friends Devroom (site). Talks hail from Oracle, MariaDB Corporation, Percona and more. We don’t have a booth this year, but we do have amazingly good content on Saturday. I’m happy to have been part of the committee that chose the talks, but you know that this is a labour of love put on by Frédéric Descamps, Liz van Dijk, Dimitri Vanoverbeke, and Kenny Gryp. I’m sure the party will be awesome.

But that is not all! In the distributions devroom, you can see me give a talk at 11:00-11:20 titled Distributions from the view of a package. This is an important topic, because you start seeing MariaDB Server becoming the default in many distributions with the last holdout being Debian. But there is a lot of discussion, especially from the security standpoint there now, about MySQL overall. But that’s not the focus of my talk — I’m going to talk to you about how we, as upstream, have had to deal with distributions, changing requirements, etc. overall. I’ve done this since the MySQL days, so have quite a bit of experience dealing with it. 

If you are making software and want to be included and supported across all distributions, I highly recommend you coming to my talk. If you happen to decide to live in an ecosystem where there are forks, I also promise to make it useful for you.

And on Sunday, you will want to go visit the RocksDB Storage Engine for MySQL talk by none other than Yoshinori Matsunobu of Facebook. This will be at the main track and I highly recommend you visit it — I’m sure Sergei Petrunia will also make an appearance as he spends a lot of time on this too.

All in, I’m extremely excited to be at FOSDEM 2016. And you don’t need to ring a local resident to find out if its going to be safe/fun — come for the learning, stay for the beer ;-)

Colin Charles: SCALE14x – lots of MySQL content there

Tue, 2016-01-12 22:26

One of my favourite events run by a grassroots organisation is SCALE, and they are now doing their 14th edition, SCALE14x. If you’re into opensource software as well as all things open, this is the place to be from January 21-24 2016. It is at a new location in Pasadena (so not quite next to LAX as it was previously), but this is due to growth — so kudos to the team.

From MariaDB Corporation you get to see Max Mether (Scaling MySQL & MariaDB – I’m extremely interested in seeing what he has to say and will likely blog the session) and me (The MySQL Server Ecosystem in 2016).

One thing is for sure is that the topic I plan to present on will surely come under contention since I also represent a server maker — however I believe I will be extremely objective and will put up blog posts before/after the event as well as slides, because it is clear that MySQL is now going to be 21 years old and the ecosystem has grown tremendously. Let me reiterate my main thesis: MySQL server development has been at its most vibrant since the Oracle acquisition — the ecosystem is flourishing, and Oracle is doing a great job with MySQL, Percona with Percona Server, MariaDB Corporation/MariaDB Foundation with MariaDB Server, and lets not forget the wonderful work from the WebScaleSQL Consortium, Facebook’s MySQL tree and even Alibaba’s tree (the Twitter tree seems to be sadly not really maintained much these days, but there was innovation coming out of it in the past).

There are also going to be many other great talks at the MySQL track on Friday, from Peter Zaitsev, Dave Stokes (I’m excited about the JSON support in MySQL 5.7), Ovais Tariq/Aleksandr Kuzminsky on indexes, and Janis Griffin on query tuning. There’s also an excellent PostgreSQL track and I think one of the highlights should also be the keynote from Mark Shuttleworth at UbuCon on Thursday.

See you at SCALE14x? Oh, before I forget, MariaDB Corporation also has a booth, so you will get to see Rod Allen manning it and I’m sure there will be giveaways of some sort. 

If you have any feedback about the MySQL Server ecosystem and its developments, please feel free to leave a comment here or send an email to me. Thanks! News: Intel Fellow and cultural anthropologist Genevieve Bell to keynote 2016 Geelong

Tue, 2016-01-12 15:28

Intel Fellow and Vice President of Corporate Strategy at Intel, Australian-born Genevieve Bell leads a team of social scientists, interaction designers, human factors engineers and computer scientists whose mission is to build products in tune with people’s needs and desires. An industry expert and commentator on the intersection of culture and technology, she has published widely around the societal challenges facing us all as computing becomes ubiquitous. An accomplished anthropologist and researcher, Bell joined Intel in 1998. She has been granted a number of patents for consumer electronics innovations throughout her career, with additional patents in the user experience space pending, and is the author of numerous journal papers and articles. She was named an Intel Fellow in 2008.

In addition to her position at Intel, Bell is a highly regarded industry expert and frequent commentator on the intersection of culture and technology. She has been featured in publications such as Wired, Forbes, The Atlantic, Fast Company, the Wall Street Journal and the New York Times. She is also a sought-after public speaker and panelist at technology conferences worldwide for the insights she has gained from extensive international field work and research. Her industry recognition includes being listed among the "100 Most Creative People in Business" by Fast Company in 2010, induction in the Women in Technology International Hall of Fame in 2012, and being honored as the 2013 Woman of Vision for Leadership by the Anita Borg Institute. Bell's book, "Divining a Digital Future: Mess and Mythology in Ubiquitous Computing," written in collaboration with Paul Dourish, was published by MIT Press in 2011. Bell holds a combined bachelor's and master's degree in anthropology from Bryn Mawr College and a master's degree and Ph.D. in cultural anthropology from Stanford University, where she was a lecturer in the anthropology department from 1996 to 1998.

She is attributed with formalising user experience as a discipline, and ensuring that its practises are recognised as not just valuable, but vital, for ongoing technical success.

Conference 2IC and Speaker Liaison, Kathy Reid, was delighted to announce Ms Bell as one of four outstanding keynotes for 2016.

“As Linux moves from servers and desktops into embedded hardware, into the cloud, into mobile devices, the need for those products to be in affinity with user needs becomes ever more important. Genevieve’s area of practise is such a natural fit for our conference theme - Life is better with Linux - and we can’t wait to learn from Genevieve!”

One of the most respected technical conferences in Australia, Linux Conference Australia ( will make Geelong home between 1st-5th February 2016. The conference is expected to attract over 500 national and international professional and hobbyist developers, technicians and innovative hardware specialists, and will feature nearly 100 Speakers and presentations over five days. Deakin University’s stunning Waterfront Campus will host the conference, leveraging state of the art networking and audio visual facilities.

The conference delivers Delegates a range of presentations and tutorials on topics such as open source hardware, open source operating systems and open source software, storage, containers and related issues such as patents, copyright and technical community development.

Linux is a computer operating system, in the same way that MacOS, Windows, Android and iOS are operating systems. It can be used on desktop computers, servers, and increasingly on mobile devices such as smartphones and tablets.

Linux embodies the ‘open source’ paradigm of software development, which holds that source code – the code that is used to give computers and mobile devices functionality – should be ‘open’. That is, the source code should be viewable, modifiable and shareable by the entire community. There are a number of benefits to the open source paradigm, including facilitating innovation, sharing and re-use. The ‘open’ paradigm is increasingly extending to other areas such as open government, open culture, open health and open education.

Potential Delegates and Speakers are encouraged to remain up to date with conference news through one of the following channels;

  • Website:
  • Twitter: @linuxconfau, hashtag #lca2016
  • Facebook:
  • Google+:
  • Lanyrd:
  • IRC: on
  • Email:
  • Announce mailing list:

We warmly encourage you to forward this announcement to technical communities you may be involved in.

Photo credit: J.R. Mankoff/AUGUST

Binh Nguyen: The Occupy Movement, Veterans For Peace, and More

Tue, 2016-01-12 04:49
If you're a bit like me you've probably wondered what happened to the so called 'Occupy Movement'. In my recent look at Anti-War activists it's been clear that were part of that group but have basically splintered off of them. Reasons for this include internal/external subversion/dissent/dis-harmony, breakups by law enforcement/security services who see it as a threat to the state, etc... - one

Tridge on UAVs: APM:Plane 3.5.0 beta1 released

Sat, 2016-01-09 16:07

The ArduPilot development team is proud to announce the release of the first beta version of the 3.5.0 release of APM:Plane. We think this is going to be a great release and we'd love some feedback before we do the final version.

The biggest changes in this release are:

  • switch to new EKF2 kalman filter for attitude and position estimation
  • added support for parachutes
  • added support for QuadPlanes
  • support for 3 new flight boards, the QualComm Flight, the BHAT and the PXFmini
  • support for arming on moving platforms

New Kalman Filter

The 3.4 release series was the first where APM:Plane used a Kalman Filter by default for attitude and position estimation. It works very well, but Paul Riseborough has been working hard recently on a new EKF variant which fixes many issues seen with the old estimator. The key improvements are:

  • support for separate filters on each IMU for multi-IMU boards (such as the Pixhawk), giving a high degree of redundency
  • much better handling of gyro drift estimation, especially on startup
  • much faster recovery from attitude estimation errors

After extensive testing of the new EKF code we decided to make it the default for this release. You can still use the old EKF if you want to by setting AHRS_EKF_TYPE to 1, although it is recommended that the new EKF be used for all aircraft.

Parachute Support

This is the first release with support for parachute landings on plane. The configuration and use of a parachute is the same as the existing copter parachute support. See

Note that parachute support is considered experimental in planes.

QuadPlane Support

This release includes support for hybrid plane/multi-rotors called QuadPlanes. More details are available in this blog post:

Support for 3 new Flight Boards

The porting of ArduPilot to more flight boards continues, with support for 3 new flight boards in this release. They are:

  • the BHAT board
  • the PXFmini
  • the Qualcomm Flight

More information about the list of supported boards is available here:

Startup on a moving platform

One of the benefits of the new EKF2 estimator is that it allows for rapid estimation of gyro offset without doing a gyro calibration on startup. This makes it possible to startup and arm on a moving platform by setting the INS_GYR_CAL parameter to zero (to disable gyro calibration on boot). This should be a big help when flying off boats.

That is just a taste of all of the improvements in this release. In total the release includes over 1500 patches. Some of the other more significant changes include:

  • RPM logging
  • new waf build system
  • new async accel calibrator
  • SITL support for quadplanes
  • improved land approach logic
  • better rangefinder power control
  • ADSB adapter support
  • dataflash over mavlink support
  • settable main loop rate
  • hideable parameters
  • improved crash detection logic
  • added optional smooth speed weighting for landing
  • improved logging for dual-GPS setups
  • improvements to multiple RTK GPS drivers
  • numerous HAL_Linux improvements
  • improved logging of CAM messages
  • added support for IMU heaters in HAL_Linux
  • support for RCInput over UDP in HAL_Linux
  • improved EKF startup checks for GPS accuracy
  • added raw IMU logging for all platforms
  • added BRD_CAN_ENABLE parameter
  • support FlightGear visualisation in SITL
  • configurable RGB LED brightness

Many thanks to everyone who contributed to this release! The development team is growing at a fast pace, with 57 people contributing changes over this release cycle.

I'd like to make special mention of Tom Pittenger and Michael du Breuil who have been doing extensive testing of the plane development code, and also contributing a great deal of their own improvements. Thanks!

Tridge on UAVs: QuadPlane support in APM:Plane 3.5.0

Sat, 2016-01-09 15:04

The upcoming 3.5.0 release of APM:Plane includes support for QuadPlane - a hybrid plane/multi-rotor that allows for high speed long distance flight with vertical takeoff and landing.

The above video shows a converted HobbyKing Firstar 2000 doing a fully autonomous mission, with VTOL takeoff, followed by automatic transition to fixed wing flight and then a VTOL landing. The planes builder, Jack Pittar from CanberraUAV, is shown with the plane below.

The plane itself was fairly easy to build, with the simple additional of rectangular section aluminium arms on the Firstar wings and 4 quad motors.

One issue we found is that the battery we are using (a 3S 4Ah 65C) doesn't handle the 65A needed for vertical takeoff well, with the voltage dropping to 10V on takeoff. After takeoff completes and it transitions to fixed wing flight it quickly recovers. We will be changing the battery setup for future flights.

A second issue is that the wings tend to twist a bit in flight, especially when yaw is commanded. That greatly reduces yaw authority when hovering. We are still thinking about the best ways to prevent wing twist.

The new QuadPlane support is documented at and is included in the 3.5.0beta1 release (I will do a separate blog post on that release shortly).

In the near future we expect to add support for other hybrid frame types, including tilt-rotors and fixed wing aircraft with other types of multi-rotor frames attached.

This QuadPlane follows on from our earlier Senior Telemaster QuadPlane which used two Pixhawk flight controllers.

We built the Firstar QuadPlane to test the new code where a single flight controller board running APM:Plane is used, which makes for much simpler operation. We plan on now building a much larger version, with a 50cc petrol motor for fixed wing flight.

OpenSTEM: OSDC 2015 talk: Skulling Around – Hands on History

Sat, 2016-01-09 12:29

Here’s the video of Claire’s talk at the Open Source Developers’ Conference 2015 (November) in Hobart, TAS.

Open source has opened up huge opportunities for archaeologists. As well as high quality tools for research, we can use open source to engage kids with the past. Addressing the new National Curriculum, we use 3D printed fossil skulls and replicas of archaeological material to give kids a hands-on experience, making the past Funky and Fun!

Archaeologists are usually very good at sharing knowledge with each other and the wider world. Under Creative Commons licences many files are made available, including scans of fossil skulls, artefacts and other archaeological material. Using a suite of open source tools, including a 3D printer, a series of interactive experiences for school children has been developed allowing them hands-on involvement with this material.

The kids love examining the replica fossil skulls in their hands and learning about the changing features through time, as well as learning to measure and compare in a very real sense. These experiences are modern “we had 3D printed stuff in History class!”, engaging and fun for students and teachers alike, bringing the past alive.

This talk refers to some of the materials used in the OpenSTEM Introduction to Archaeology and Fossils Workshop. We have been fortunate to find quite a few more fossil skull models, and have already printed some of those also. The “family” is growing!

OpenSTEM also has an Integrated History/Geography Program for Primary Schools (full set of resources for F-6, including teacher handbooks, student workbooks and assessment guides), available from term 1, 2016.

There were many awesome talks at OSDC 2015 (Youtube playlist). See also the OSDC 2015 program overview.

Chris Neugebauer: Three weeks until LCA2016

Fri, 2016-01-08 21:25

In February, I’m presenting my first-ever solo presentation at, my favourite Free and Open Source Software Conference. This year, the conference is in Geelong (just out of Melbourne). I’ve been attending since 2008 in Melbourne, and am running the conference next year in Hobart.

I’m presenting Welcoming Everyone: Five Years of Outreach and Inclusion Programmes at PyCon Australia, a five-year retrospective on how we’ve handled running financial assistance and related programmes at PyCon Australia.

Doling out financial assistance money to people often looks like it should be an easy thing to do right, but targetting and assessing grants so that the right people are interested, want to attend, and receive assistance is quite a difficult task. This talk shares our successes, our mistakes, and what we’ve learned along the way.

Registration for 2016 is still open, so if you’re not yet planning on attending, there’s still time to get a ticket!

James Purser: First thoughts on the Wollongong/Shellharbour Merger

Fri, 2016-01-08 12:29

So we finally have some actual detail about how the proposed Wollongong/Shellharbour LGA merger might work. Not just the fluff about "so many millions" that might be spent, but actual structural information.

First off let's have a look at how the proposed new LGA is going to work from a representative point of view.

Wollongong currently has the following:

  • 3 Wards: Four Councillors in each
  • 1 Separately Elected Lord Mayor
  • 1 Councillor (including Lord Mayor) for every 15,907 residents

Shellharbour currently has the following:

  • 7 Councillors (the entire council area is the ward essentially)
  • Mayor is elected from within and by the currently sitting Councillors
  • 1 Councillor for every 9,823 residents

The new proposed LGA is going to have the following:

  • 13 Councillors
  • 1 Councillor for every 21,197 residents
  • Nothing is mentioned about Mayor selection

I'm not sure how to feel about this. On the one hand, it is an obvious reduction in Councillors to residents, especially for those coming from the Shellharbour LGA. On the other hand, even if the number of Councillors was boosted to 15 (the maximum allowed under current legislation) we're still looking at a Councillor to Resident ratio of 1:18370.

There are two other questions about representation that are not tackled in the proposal. Selection of Mayor (remember Wollongong has a Mayor elected by the electorate and Shellharbour is voted on by Councillors), and whether or not the new body will work with Wards, or a simple single ward system.

Personally I prefer the electorate to elect the mayor and wards ensure that Councillors at least nominally represent the distinct regions within the LGA. We'll have to wait and see what happens.

The financial part of the proposal is interesting as well.


Both Wollongong and Shellharbour have approval for Special Rate Variations (the ability to raise rates beyond the nominal cap imposed by the State Government). Wollongong has a cumulative 11.3% (3 years starting 14/15) and Shellharbour has a cumulative 28.9% (4 years starting 13/14). While the proposal suggests that the savings to be found in reduction of duplication in the newly merged body could reduce the pressure on rate rises, I think it's going to take a little while before the community will start seeing those benefits flow through in reduced rates bills.

Cost Reduction

Most of the cost reductions mentioned in the proposal focus around elliminating duplication in the new organisation.

  • $8 million from "streamlining senior positions"
  • $56 million from "redployment of back office and admin functions"
  • $19 million through  increased purchasing power (more bang for your buck)
  • $2.5 million from reduction of elected officials

Note all of the above numbers are spread out over 20 years. So that's meant to be a saving of about $3.75 million a year.

That's all very good and looks great.

Except, how much is going to be spent on merging the two councils systems. Just the two different IT systems are going to cost a fair chunk to merge properly (and that's assuming that things don't go wrong), then you need to look at front desk, library systems and so on. I honestly think that the estimates given are optimistic to say the least.

Infrastructure Management

The other thing I have thoughts about in this proposal is infrastructure management.

Both Shellharbour and Wollongong have large developments occuring within their borders. West Dapto has an infrastructure backlog as long as your arm, Albion park is continuing to be built out and there's an ongoing list of issues around flood management to the north of the City.

How exactly will the merged entity be any better at managing the demands, especially with the expected reduction in "back office" staff who deal with this every day?

Honestly I'm not sold on the merger. The proposed economic benefits don't really stack up, at least from a Wollongong Council point of view. For those coming from Shellharbour? Yeah I can see having access to the resources of a larger council being a benefit, but they definitely lose in terms of access to their elected reps.

We shall see.

Blog Catagories: Politicswollongongshellharbour