February 09, 2010

Robert Collins

Is a code of silence evil?


Looking at using google apps for my home email, as I want to be able to have my home machines totally turned off from time to time.

Found this interesting gem in the sign up agreement (which I have not yet agreed to :P ):

11. PR. Customer agrees not to issue any public announcement regarding the existence or content of this Agreement without Google’s prior written approval. Google may (i) include Customer’s Brand Features in presentations, marketing materials, and customer lists (which includes, without limitation, customer lists posted on Google’s web sites and screen shots of Customer’s implementation of the Service) and (ii) issue a public announcement regarding the existence or content of this Agreement. Upon Customer’s request, Google will furnish Customer with a sample of such usage or announcement.

This is rather asymmetrical: If I agree to the sign up page, I cannot say ‘I am using google apps’, but google can say ‘Robert is using google apps’. While I can appreciate not wanting to be dissed on if something goes wrong, this is very much not open! A couple of implications: Everyone seeking support for google apps in the apps forums is probably in violation of the sign up agreement; we can assume that anyone having a terrible experience has been squelched under this agreement.

Le sigh.

February 09, 2010 09:07 AM

Ben Leslie

Android Emulator Internals — Bus Scanning

Wow, I can’t believe it has been over two years since I last wrote about Android’s for of the QEMU emulator. Turns out there have been some changes since I last looked at it.

The most important is that the Android emulator no longer has a fixed layout of devices in the physical memory address space. So, while it may have previously been the case that the event device was always at 0xff007000, now it might be at 0xff008000, or 0xff009000, depending on what other devices have been configured for a particular device configuration.

Now, if a device may exist at some random physical address, how does the OS know how to setup the devices drivers? Well, as I’m sure you’ve guessed, the addresses and really random, they are located at page-offset addresses through a restricted range of memory. OK, so how does the OS know what the range is? Well, there is the goldfish_device_bus device.

Basically, this device provides a mechanism to enumerate the devices on the bus. The driver writes PDEV_BUS_OP_INIT to the PDEV_BUS_OP register, the goldfish_device_bus then raises an interrupt. The driver the reads the PDEV_BUS_OP register. Each time the value is PDEV_BUS_OP_ADD_DEV, the driver can read the other registers such as PDEV_BUS_IO_BASE, PDEV_BUS_IO_SIZE, PDEV_BUS_IRQ, to determine the properties of the new device. It continues doing this until it reads a PDEV_BUS_OP_DONE, which indicates the bus scan has finished.

The driver can determine what type of device it has found by writing a pointer to the PDEV_BUS_GET_NAME register. When this happens the device writes an the device’s name (as an ASCII string) to the pointer.

Linux uses these strings to perform device to driver matching as described in the Platform Devices and Drivers document.

February 09, 2010 04:14 AM

Sonia Hamilton

BJJ for women


I’ve been doing BJJ (Brazilian Jiu Jitsu) for years. It’s a great sport and form of self-defence, but in Australia it’s dominated by men – probably putting a lot of women off starting.

This is unfortunate, as I think BJJ is one of the best forms of self defence women can do; statistically violence against women is less likely to be the “pub punchup” that guys get in and more likely to be a grab/sexual assault (either in public or in the home). In these situations, reflexively knowing how to escape from someone’s grips or fight on the ground with someone stronger and heavier on top of you is invaluable, and just by training with a stinky, sweaty guy on top of you you’re much less to likely to panic and escape the situation (The Bene Gesserit Littany against Fear – Dune).

But BJJ is also a great sport! You get a great workout (especially abs), it’s exciting and you need to think a lot (BJJ is often called “physical chess”). You share the pain and triumphs, the sweat and exhilaration, the interstate and overseas trips with your team mates, and form close friendships.

I’m now training at The Dojo in Bondi Junction with Daniel Sainty. Amongst the guys there’s 4 other women training – Eleni, Kunita, Laura and Sam. They’re all inspirational, but the one who really gets me back to training when my middle-aged joints are creaking is Sam. She’s a petite high school girl, self-described “girly-girl” and geek. She fights against the boys, gives (and receives) a good thrashing, is starting to win competitions, and is now blogging about her training. You go girl!!

BJJ is so effective that the US Army now uses it as the foundation for their Army Combatives course. Not because they want their soldiers to throw down their rifles and start up UFC-style fights with “the baddies”. Rather, they found that teaching a random collection of  moves (this kick, this punch, this other kick) was ineffective for learning a “combat mindset”. The sport nature of BJJ allows for “an avenue or the motivation for continued training” as well as internalizing the “concept of a hierarchy of dominant positions”. And knowing how to rear naked choke when someone jumps on you and hangs on to your rifle is kind of handy…

See you on the mat sometime :-)

February 09, 2010 01:22 AM

February 08, 2010

Dave Airlie

whats in drm-radeon-testing?

I'll try and post these regularly when I make major additions/removals.

drm-radeon-testing is the cutting edge KMS radeon branch, it is going to be rebased and things will be added/removed as they are worked on by developers. So you can base patches on it but you should talk to the developer who owns the area first.

git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-radeon-testing

I've just pushed a rebased tree now with the following:

latest i2c algo + hw i2c engine code + all fixes squashed: This adds support for hw i2c engines found on radeons and
exposes them + sw i2c buses to userspace so i2c tools can use them. (agd5f).

pll algorithm reworking + quirks: cleans up the code to allow for the selection of the old pll algorithm on some hardware. (agd5f)

pm support so far: Adds all the current PM patches - just does engine reclocking so far using the power tables from the BIOS. (Zajec/agd5f)

Evergreen (Radeon HD 5xxx) support: basic KMS support for the evergreen range of devices - no irqs or accel yet. (agd5f)

radeon unlocked ioctl support (airlied)

bad CS recording (glisse)

misc cleanups/fixes - Dell/Sun server support ported from userspace hopefully.

The tree did contain Jerome's r600 CS checker but I've dropped it for now at his request as he has newer patches
in testing.

February 08, 2010 11:58 PM

February 07, 2010

Simon Rumble

Android, six months on


So I've been using the Google Android phone for about six months now, and it's about time I reflected on how it's gone. Here's a bit of a rambling review.

The hardware

The G1 hardware is pretty limited. There's not enough RAM, and the default Android way of storing apps on the phone rather than on the removable flash storage means you run out of space pretty quickly. The latter is fixed by using a custom image like Cyanogen, which is awesome.

The buttons on the phone are kinda dumb. There's green and red buttons for call management, just like most phones. Then there's a home and a "back" button, which are kinda superfluous as they could easily be replaced by some sort of touch gesture. The "Menu" is kind of a universal interupt button, and I suppose might be useful. And the trackball is completely useless yet seems to be mandatory for all designs. I never use it. On the sides are the camera and volume buttons, which I suppose are handy.

The buttons that would be really useful are missing. I'd love a pause/play button for when I'm using the thing to play music.

The G1 has a built-in keyboard. This is great, but has been dropped on later releases. Given a decent touchscreen interface, I think I could live without it. Not convinced that the on-screen keyboard is good enough, but it will make the device smaller, lighter and sexier. Though the keyboard rocks for answering emails or using ssh.

Multistasking: good and bad

Multitasking, the key difference between Android and the iPhone, is a double edged sword. It means you can run cool third-party apps that need to run all the time, like apps that show your calendar and weather forecast on the home screen. It also means that crap stays running all the time, meaning performance can be glacial if you've got something hogging the CPU in the background, and memory fills up very quickly.

Some allowance for the slowdown of background apps could be incorporated into the OS. It'd be nice to have apps not slow down core phone functions. I'd even be willing to completely pause background apps while something important is going on, like an incoming phone call. I kid you not, I've missed incoming calls because the phone's CPU has been busy on some other crap. Many is the time I've given up taking a photo because after pressing the camera button, whatever I wanted to snap has long finished before the camera app is up and ready to take a photo.

Shitty memory manglement

Android takes the same "automatic" approach to memory management as Symbian: if it runs out of memory, it kills something random that's running in the background to make some space. Apps tend to run in the background unless you explicitly exit, or use a power user tool to kill the process. That means while you might have something cool running in the background, it could randomly and without notice be killed at any time because you opened something else that wants more memory. The usual excuse for this kind of thing is you don't want to make users of consumer devices think about things like memory. Try telling that to some angry consumer whose fancy alarm clock app got killed to make space for another app meaning the user overslept and was late for work! How much sense does it make to kill the music player when I'm listening to music just to make space for something else? I'd much rather have to explicitly manage the memory and be asked what should get killed.

None of this is helped by the miserly allowance of RAM on the G1, 192MB. The Nexus One's 512MB should make this much more useful, though it's going to make running a G1 or any of the first generation Android phones somewhat suckier, given developers will now be targetting the new, faster, roomier Nexus One.

How about event-driven OS callbacks?

I think many of the problems with multitasking could be solved by introducing some OS-level event-driven triggers. What I'm thinking is instead of apps having to hang around in memory and periodically using the CPU, they could register with an OS service that they want to be woken on specific events: an SMS is received, the phone's power source changes, it's a specific time, the phone's location gets within x metres of a coordinate. That way you wouldn't need, for example, to keep your alarm clock app in memory all the time, wasting RAM and CPU cycles. The app would register the events its interested in, then explicitly exit.

No idea how practical this idea would be once implemented, and whether the overhead of loading up the app to handle the event would kill performance, but I think something different to the always-running-but-could-be-killed-any-time approach needs to be looked into.

Integrated apps

If you've taken a good slug of the GoogleJuice Kool Aid and moved your whole life into the cloud, Android is a really easy integration. I've got my email, calendar and instant messaging all in my Google Apps cloud, and have done for a while now. Starting with Android was as simple as logging in and waiting for it to all sync up. Brilliant. Everything Just Works™.

The apps are good too. Email is just like you'd expect, all your contacts are right there where you expect. A live calendar is life-changing, especially if you sync your work calendars into the cloud too.

One area that could do with some improvement is the way the GTalk app works. When I'm sitting at my desk and someone opens a chat session with me, I get three notifications that this has happened: inside my current browser Gmail session, the desktop GTalk app, and on my phone. Surely the server can work out which one I use to handle the session and close the others for me? Instead I have to go in and close those sessions myself, which is kinda clunky.

It'd also be nice if the instant messaging apps were a bit smarter. Let's say I want to contact someone, and the contact record shows the person has GTalk and a mobile phone. Surely I shouldn't have to work out which one to use, it can instead use the user's presence to work it out. If the remote user is on an Android phone, it could be really clever about it and switch to SMS if that user isn't online. All these contacts should show up in the same interface, regardless of underlying mechanism.

My favourite apps

SlideScreen integrates all your interactions

By far the finest app so far is SlideScreen, which replaces the default home screen. At the top are your "private" communications: phone calls, SMS, email, calendar. Below are your "public" comms: Google Reader, Twitter. In the middle you get some status info: date, time, network connection, current weather. You can slide the middle part up and down to give more space to one area at the expense of the other. You "throw" an item to the right to mark it as read and get rid of it.

It's a beautifully-designed app, and nearly completely suits my way of working. Unfortunately it's just too heavy for the poor little G1. It takes up pretty much the whole of the RAM, so if you run another app it gets killed, and you can't really run it and another app. Should be great on the Nexus One though!

Guardian Anywhere is the most intuitive interface for news

Ever since I lived in London, I've read the Guardian as my newspaper and news source of choice. I subscribed to the Guardian Weekly until recently. Part of the reason I stopped subscribing is this app, which downloads the whole paper overnight and presents it in an awesome UI that doesn't require network access. If you're writing a newspaper app, you should copy the design of this app.

Conclusion

The Android OS is excellent and improving all the time. Its openness means you can swap out much of the bits you don't like, which contasts well with Apple and Nokia's smartphone efforts, where you're stuck doing things the way the vendor tells you.

The app marketplace started off pretty poor, with lots of not very good apps, but is improving fast. People point out the high quality of the iPhone apps, but it's worth also pointing out that a popular app there can easily pay for multiple full-time developers. Android isn't there yet, but the marketplace is expanding incredibly fast. Some stand out apps are appearing (like SlideScreen) and you can expect more with the hundreds of Android handsets that will be available by the end of this year.

I'm looking forward to upgrading to the Nexus One, especially since I dropped the G1 and now have a lovely big crack across the LCD. Just have to keep working on the boss to release the funding. It'd be really good if a version appeared that handles the 850MHz UMTS band, since I'll probably be scoring a work SIM soon and Telstra's network uses this slightly-unusual frequency range.

Good

  • Multitasking means you can have awesome apps running all the time. The iPhone just can't do this unless Apple makes the app.
  • Open platform makes for some very cool apps: custom home screens.
  • Integration with Google apps is very slick.
  • The app marketplace is awesome, and growing fast. Apps are getting slicker pretty quickly.

Bad

  • Hardware on the G1 is very limited. Nexus One appears to solve this.
  • Memory management is "automatic" which means "dumb and confusing".
  • Multitasking means a background app can make the device glacially slow.
  • Stock music app is awful.
  • Buttons are kind of pointless. Trackball even more so.
  • Integrated messaging is needed.
  • Connectivity lost when you switch from 802.11 to GSM/3G.

Contact me

February 07, 2010 11:55 PM

February 06, 2010

James Purser's hackergotchi

James Purser

My first Android App

 Well, here's my first Android App. Essentially it's a recreation of my Google Wave Robot - OpenAusBot, well at least the House of Reps member search.

Right now, it just does basic member searches based on Federal Seat, returning name, party and date elected. Still working on the ImageView.

Further plans are to build postcode search and geo-search.

What I don't have (yet) is a real android phone, so if anyone wants to download the apk attached to this post and make sure it works (it uses the Android 2.0 SDK), that would be great, thanks.

AttachmentSize
android_openaus.apk17.61 KB
android_openaus_16.apk17.61 KB

February 06, 2010 04:18 AM

Robert Collins

Adding new languages to Ubuntu


Scott recently noted that we don’t have Klingon available in Ubuntu. Klingon is available in ISO 639, so adding it  should be straight forward.

Last time I blogged about this three packages needed changing, as well as Launchpad needing a translation team for the language. The situation is a little better now: only two packages need changing as gdm now dynamically looks for languages based on installed locales.

libx11 still needs changing – a minimal diff would be:

=== modified file 'nls/compose.dir.pre'
--- libx11-1.2.1/nls/compose.dir.pre
+++ libx11-1.2.1/nls/compose.dir.pre
@@ -406,0 +406,1 @@
+en_US.UTF-8/Compose:        tlh_GB.UTF-8
=== modified file 'nls/locale.alias.pre'
--- libx11-1.2.1/nls/locale.alias.pre
+++ libx11-1.2.1/nls/locale.alias.pre
@@ -1083,0 +1083,1 @@
+tlh_GB.utf8:                    tlh_GB.UTF-8
 === modified file 'nls/locale.dir.pre'
--- libx11-1.2.1/nls/locale.dir.pre
+++ libx11-1.2.1/nls/locale.dir.pre
@@ -429,0 +429,1 @@
+en_US.UTF-8/XLC_LOCALE:            tlh_GB.UTF-8
 

Secondly, langpack-locales has to change for two reasons. Firstly a locale definition has to be added (and locales define a place – a language and locale information like days of the week, phone number formatting etc. Secondly the language needs to be added to the SUPPORTED list in that package, so that language packs are generated from Launchpad translations.

Now, gdm autodetects, but it turns out that only ‘complete’ locales were being shown. And that on Ubuntu, this was not looking at language pack directories, rather at

/usr/share/locale

which langpack-built packages do not install translations into. So it could be a bit random about whether a language shows up in gdm. Martin Pitt has kindly turned on the ‘with-incomplete-locales’ configure flag to gdm, and this will permit less completely translated locales to show up (when their langpack is installed – without the langpack nothing will show up).

February 06, 2010 12:08 AM

February 05, 2010

Pia Waugh's hackergotchi

Pia Waugh

links for 2010-02-05

February 05, 2010 10:03 PM

February 04, 2010

Mark Greenaway

Injury

I had a pretty good first gym session with Benny, Keiran and Danny on Sunday, and I was fine. Then on Monday, I played frisbee/soccer with some Uni friends in Victoria Park. Still fine. That night, wanting to get into good shape for this week's judo lesson, I did a heavy set of judo push-ups. That seemed to be too much for my body to handle, and I woke up in pain and unable to fully straighten my arms.

Injury is a fact of life if you want to be a more active person, ask [info]emmasee100. It's not going to be fun tonight though when everyone else is doing awesome throws at judo, and I'm on the bench. Boo injuries.

February 04, 2010 05:33 AM

Dave Airlie

video of GPU switching

Here's a really badly shot video of GPU switching in action ;-0 - whiteouts are mostly be logging out and in ;-)

February 04, 2010 02:16 AM

February 03, 2010

Robert Thomson

Python interface to Linux's input_event and uinput

A little while back I bought an ASRock 330HT as a media PC. Aside from the fan being a little noisier than I hoped, the remote control had no Linux driver so I bought a Hama MCE remote control after reading that it works well under Linux. Unfortunately, while it works fine under Linux, it's got hardcoded key values and not every key is unique. As an example the "i" info button is actually a prolonged right click, a couple of the keys send *exactly* the same keycodes as others (Play and Pause), and there are a bunch of buttons which generate Control-Shift-foo and Alt-bar and so on. I guess under Windows Media Center these all serve a specific purpose. Under Linux and its media center programs (such as XBMC) they don't (and XBMC's input layer is a bit restrictive).

I had my toys, but things weren't working exactly as I wanted. What's a guy to do? I got hacking, of course.

The Linux Input Subsystem is pretty clean nowadays and detecting the correct device and reading a few bytes from /dev/input/eventXX isn't all that hard. Within a couple of hours I was reading the bytes from the remote and pretty printing them as I received them. Unfortunately, this lead to the realisation (as shown above) that the remote's a little screwy and that a few hacks would be necessary to make things work as I wanted. But I was having fun and I was learning something.

The next step was deciding how to use these key events. XBMC has an interface to LIRC and another chap had written a python script making the HAMA MCE remote produce LIRC events. I tried it, fixed some bugs, and it worked.. but it was unsatisfying.. the MCE remote also has a mouse cursor (there are two input devices generated - a mouse and a keyboard - but the mouse device also sends a few key events that I care about as well as the all-important info button).. I started to explore the uinput device which lets you create a fake input device and write to it. Figuring out how to initialise it was a little tricky but I found some similar code and worked it out.. after that it's just writing input events to the device.

My initial idea of just reading all input, munging a few things, and passing the remaining events directly through proved somewhat problematic. If you leave a stranded Control or Alt key pressed down then you have a serious problem and in my tests I had to kill my X session a few times. A better way is to read all the input and have a virtual keyboard that handles the MOD keys, does the processing of normal keystrokes, does the translations, and then converts the translated events back into input events for uinput, ensuring there're no dangling modkeys.

The final step was to create a versatile translated step. I decided that I wanted a configuration file, instead of coding the translations all in python.

Here's some snippets from my config file:

# simple 1-1 translation
KEY_HOMEPAGE-down = send KEY_ESC-down
KEY_HOMEPAGE-up = send KEY_ESC-up
# the info button/right click magic
BTN_RIGHT-down = set rightclick time.time()
BTN_RIGHT-up = if (time.time()-rightclick) > 0.3; send KEY_I; else; send BTN_RIGHT
# compound key sequence example
Alt-KEY_F4-down = wait
Alt-KEY_F4-down KEY_F4-up = send KEY_ESC; clear

The wait action means to add the current key event to the match criteria for the next keystroke. clear then clear's the list.

Code will be online soon at http://github.com/rmt/pyinputevent/

February 03, 2010 04:23 PM

Dave Airlie

hybrid graphics : the story continues (part 3)

v6 of the patch + another patch which needs some work before I can merge it are available now.

This mainly cleans up the patch architecture a lot and allow for Matthew to put his nvidia code in easier hopefully. Its moves the ATPX specific code to the radeon driver.

The second patch is from an experiment that I videod on a webcam but am now failing to upload, I'll probably get a better video tomorrow, the lighting was fairly bad for it today.

It basically allows for a delayed gpu switch ( it changes the debugfs API ), and allows gpu drivers to block the switch.

The switch file now takes ON/OFF like always, but the PCI IDs input is gone. There are 4 commands

IGD - try and switch now to the integrated device - can fail if drm drivers block it (mainly if X has the device open)
DIS - try and switch now to the discrete device - can fail if drm drivers block it (X again).
DIGD - try a delayed switch to integrated device
DDIS - try a delayed switch to discrete device.

So with X running you can echo DDIS to the file and log off X, it'll then switch as soon as X closes the drm device, and when
gdm restarts X it'll be running on the discrete GPU. If we had a shiny GUI on top of this it'd be as close as MacOSX can do it.
When you select to do a delayed switch we power up the other GPU straight away so the switch is quicker.

It needs more debugging, some open issues include:

after a few switches it can die on its ass
powering up the Intel glitches the display even when running the AMD
there may be race conditions in the patch, probably need a mutex around device open + this stuff
suspend/resume - since we D3 the card, if you do an s/r cycle it'll resume it, we need a flag in the
driver to say its powered off by the mux and to ignore s/r cycles - I've started adding this to radeon.

mjg59 has access to an nvidia laptop and is looking closely at how to make that all work.

February 03, 2010 07:07 AM

February 02, 2010

Jeremy Visser

Python-iView supports new JSON index from iView 327

Python-iView users are invited to update their setups to support the latest JSON–based index the ABC pushed yesterday. The index is in a more compact format, which means that loading the GTK+ interface should be faster for you.

Not only that, but the ABC have cleaned up all their blank programmes from the index, which should make picking and choosing something to watch.

Without further ado, here is the usual to get you to the latest version:

$ bzr pull

This latest update requires the use of the json module, which is only available for Python 2.6 users. I fall back to the user of simplejson if json is not available, so you may need to install the module manually (either from the simplejson website, or from your distribution’s package manager, e.g. python-simplejson for Debian or Ubuntu) if you use Python 2.5.

February 02, 2010 10:15 PM

Dave Airlie

hybrid graphics on Linux (Part 2)

Okay v4 of the patch is available at

http://people.freedesktop.org/~airlied/vgaswitcheroo/
http://people.freedesktop.org/~airlied/vgaswitcheroo/0001-vga_switcheroo-initial-implementation-v4.patch

First thing I added was power up/down methods. This calls the DRM suspend/resume methods + along with the cut power for discrete GPU. I'm not sure dynamic Windows ever does this as it seems to take a bit of work, I suspect they just run the second GPU in really low power modes. This is slow because we have to repost the ATI card after turning it back on.

I then talked to mjg59 and worked over the ATPX detection. I removed all the DMI code and it should detect *any* laptop that uses ATPX (i.e. ATI/ATI and Intel/ATI) from what I can see. I've tested on Lenovo W500 and T500 now and it appears to work on both. Would be nice if someone on a ATI/ATI and/or ASUS ATI/ATI or ATI/Intel machines could give it a whirl. I think the main problem with ATI/ATI is the poweroff methods have a hardcoded Intel PCI ID. I've no idea yet how to tell on an ATI/ATI which device is the IGD and which is discrete. Its probably more than likely the IGD is the one with the ATPX method on it.

It doesn't switch off at boot yet but I've added commands to let you do it.

echo "OFF" > switch - turns off the not in use card, so if Intel and ATI are on at boot, it will turn off ATI
echo "ON" > switch - turns back on not in use card
echo "PCIID" > switch - causes a switch with full off/on cycles.

nvidia combos appear to use a DSM method and in theory nouveau_acpi.c should be detecting that, so it might be possible for someone to hook that up.

I've also started looking at some desktop integration via gdm or logout - but its not my usual place to code so going is a bit slower ;-)

February 02, 2010 05:49 AM

Simon

Simon "Horms" Horman

Communication

[Chiz at the Kamakura Daibutsu]

Is it ok to use chat to communicate with my wife?
If she is sitting at the next desk?
If there is a sleeping baby in between?

Is any of this relevant if she laughs?

February 02, 2010 04:06 AM

February 01, 2010

Dave Airlie

hybrid graphics on Linux

So someone thought it would be a good idea to make laptops with two graphics chips in them and switch betweem them to save power.

Now other OSes support this to varying degrees, I think XP + MacOSX require a logout cycle and Vista/Win7 can dynamically switch while running, while Linux basically falls over in a heap.

So I sat down today with a Lenovo W500 which has an Intel GM45 and AMD Radeon 3650 Mobility in it, and I wrote a patch to try and get closer to the XP/MacOSX level.

The result of one days straight hacking is at:
http://people.freedesktop.org/~airlied/vgaswitcheroo/

The patch is totally focused on the Lenovo W500, other switchers will need to add stuff to this codebase.

So what works?
Boot in switchable graphics - which boots with intel and radeon turned on
KMS drivers load for radeon and intel, radeon BIOS stored in start of VRAM (driver hacked to read it)
bind to both drivers + fbs for both.
mount debugfs - cat /sys/kernel/debug/vgaswitcheroo/switch
2
0 :0000:01:00.0
1+:0000:00:02.0
shows the 02.0 (intel) device is in charge of the MUX.
goto runlevel 5, play with X under the Intel driver, goto runlevel 3 kill X
at fbcon echo "0000:01:00.0" > /sys/kernel/debug/vgaswitcheroo/switch
barely glitches console and switches
goto runlevel 5, play with X under the ATI driver, goto runlevel 3 kill X
echo "0000:00:02.0" > /sys/kernel/debug/vgaswitcheroo/switch
goto runlevel 5, play with X under intel again.
wash and repeat.

What does it do?
So far its just switching the MUX using the ACPI method and remapping all the console to the other framebuffer device,
it also reset the bits that denotes which devices is the boot vga device which X uses to pick the primary GPU. This
means X doesn't need an xorg.conf to switch. (I think all those patches are in upstream X server).

What does it not do?
It doesn't powerdown the radeon when its not in use yet. I know the ACPI call to power it off/on, and since I have
the BIOS I should be able to repost it. So I'll try adding the callbacks into the KMS driver to do this soon.
It doesn't poewrdown the intel when its not in use yet. Not sure what I can do here, since there is no ACPI method to turn
it off. I think I can just D3 the GPU, and use the normal s/r paths to bring it back. Again requires more investigation.
The whole what ACPI + methods map to what device, how the mux ids match etc will probably all need to be stored in the DMI table.
Anything not a Lenovo W500 - probably not that hard to add other Intel/AMD variants to this, add DMI and mux switching method.
nouveau isn't hooked up - this could probably be done by some interested party - the driver hooks so far aren't very hard.
No idea about ATI/ATI or NV/NV ones either.

I'm really hoping interested community people can make this actually useful to them on other hw, I won't have permanent access to the W500 to keep this all tested in the future.

Can we do dynamic switch without restarting X?
No. X needs a lot of work, a lot more than the day it took to hack the kernel.

How do we go forward?
We probably need to add gdm support to move this forward. A logout button that is "Switch GPU", that gdm kills the X server,
then hits the switch port and starts a new X server. I'll try and talk to some gdm hackers over the next few days.
I'll try and push this into a git tree against Linus current, and we can add tested patches for other machines as they go in.
Also the DMI section is only imaginary of what I think others might need, we might have to rip it all out. Also I've no idea
if there are ACPI methods to query the switchable modes etc.

February 01, 2010 09:03 AM

January 31, 2010

Jeremy Visser

MPEG-2 rendering artifacts in Bunnings Warehouse ads

The past week I’ve been watching the Australian Open. It’s been really awesome to watch, and that’s coming from someone who is normally bored stiff of just about any form of sport.

But one thing struck me over and over again: the Bunnings ads had horrible MPEG rendering artifacts at the end of each one. At first I thought it was due to poor reception, but this weekend we completely re-wired our house’s coax connections with quad-shielded cabling to our TV antenna and bought a new masthead amplifier, which greatly increased our signal quality.

(And no, we didn’t replace it just to watch the Bunnings ads.)

But this remained:

Bunnings ad with rendering artifacts

Yuck. That is definitely not signal loss — that’s crappy encoding. I can give people a (non-reencoded) AVI file of the original if they want proof.

I think it’s mainly a result of the fact that the ad is being rendered at 1080i with the outdated MPEG-2 codec. We desperately need an upgrade to H.264, or even better, Dirac.

January 31, 2010 12:45 PM

January 29, 2010

Silvia Pfeiffer

Government Report: “Access to Electronic Media for the Hearing and Vision Impaired”

Today was the last day to provide a submission and input to the Australian Government’s discussion report on “Access to Electronic Media for the Hearing and Vision Impaired: Approaches for Consideration”.

The report explains the Australian Government’s existing regulatory framework for accessibility to audio-visual content on TV, digital TV, DVDs, cinemas, and the Internet, and provides an overview about what it is planning to do over the next 3-5 years.

It is interesting to read that according to the Australian Bureau of Statistics about 2.67 million Australians – one in every eight people – have some form of hearing loss and 284,000 are completely or partially blind. Also, it is expected that these numbers will increase with an ageing population and obesity-linked diabetes are expected to continue to increase these numbers.

For obvious reasons, I was particularly interested in the Internet-related part of the report. It was the second-last section (number five), and to be honest, I was rather disappointed: only 3 pages of the 40 page long report concerned themselves with Internet content. Also, the main message was that “at this time the costs involved with providing captions for online content were deemed to represent an undue financial impost on a relatively new and developing service.”

Audio descriptions weren’t even touched with a stick and both were written off with “a lack of clear online caption production and delivery standard and requirements”. There is obviously a lot of truth to the statements of the report – the Internet audio-visual content industry is still fairly young compared to e.g. TV, and there are a multitude of standards rather than a single clear path.

However, I believe the report neglected to mention the new HTML5 video and audio elements and the opportunity they provide. Maybe HTML5 was excluded because it wasn’t expected to be relevant within the near future. I believe this is a big mistake and governments should pay more attention to what is happening with HTML5 audio and video and the opportunities they open for accessibility.

In the end, I made a submission because I wanted the Australian Government to wake up to the HTML5 efforts and I wanted to correct a mistake they made with claiming MPEG-2 was “not compatible with the delivery of closed audio descriptions”.

I believe a lot more can be done with accessibility for Internet content than just “monitor international developments” and industry partnership with disability representative groups. I therefore proposed to undertake trials in particular with textual audio descriptions to see if they could be produced in a similar manner to captions, which would make their cost come down enormously. Also I suggested actually aiming for WCAG 2.0 conformance within the next 5 years – which for audio-visual content means at minimum captions and audio descriptions.

You can read the report here and my 4 page long submission here.

January 29, 2010 12:44 PM

January 28, 2010

Jeremy Visser

Source IP weirdities with irssi and IPv6

I’m having a weird problem with irssi and IPv6. The long and the short of it is that irssi is trying to connect to an IRC server on the Internet with a source IP address of ::1, which is incorrect, as ::1 is the loopback address.

My server, glenstorm, is the IPv6 router, which contains the ppp0 interface that connects it to the IPv6 Internet. I am also running irssi on the same machine. It’s a router, so /proc/sys/net/ipv6/conf/all/forwarding is 1.

So, basically, when I fire up irssi, and type “/connect irc.ipv6.freenode.net“, it hangs when connecting. And for good reason: here’s the (edited for clarity) tcpdump output:

IP6 ::1.34823 > 2001:19f0:feee::dead:beef:cafe.6667
IP6 ::1.34823 > 2001:19f0:feee::dead:beef:cafe.6667
IP6 ::1.34823 > 2001:19f0:feee::dead:beef:cafe.6667

So obviously that’s wrong. And in violation of RFC 4291, I might add (“The loopback address must not be used as the source address in IPv6 packets that are sent outside of a single node.”).

I can hack around it by typing “/connect -host 2001:44b8:7df3:b970::14 irc.ipv6.freenode.net” into irssi, which forces it to use the source IP that I specified. But that’s just a hack — I’d like to get to the bottom of what actually causes it.

Update: Finally solved this. It’s because in my irssi config, I had the following directive:

core = {
    real_name = "Jeremy Visser";
    user_name = "jeremy";
    nick = "jayvee_zzZZ";
    resolve_prefer_ipv6 = "yes";
    host = "glenstorm";
};

It was being told to use “glenstorm” as the “host”, which translates to “resolve the IP address of glenstorm and use that as the source IP address” (I think I misunderstood the meaning of the directive when I put that configuration flag in).

Of course, in /etc/hosts, I had the following entry:

::1 glenstorm

So, naturally, irssi decided to use ::1 as the source IP address. So removing the “host” line from the irssi config fixed the problem. While I’m sure that because of the aforementioned RFC, that shouldn’t have resulted in the subsequent symptoms, at the end of the day, it was simply Unix allowing me to shoot myself in the foot.

January 28, 2010 12:08 PM

January 26, 2010

Simon

Simon "Horms" Horman

Australia Day Fireworks

[Fireworks] This evening Chiz, Hikari and I went down to Darling Harbour to watch the Australia Day Fireworks. Although there were rather a lot of people down there we managed to find a good vantage point. Close enough to be impressed by the show. Much to my surprise I managed to take some reasonable snaps of the show. Photos here.

January 26, 2010 11:47 AM

Michael Fox

Video clips of Darwyn

Since the purchase of a new digital camera, which happens to take lovely HD video clips, my wife and I have recorded Darwyn doing various things. Below is a selection of those things that happens everyday, and might not otherwise be recorded.

Below was recorded when we took him to a beach for the first time;

Followed by a clip showing him using his blow up tube in the spa for the first time, and then showing him eating a biscuit.

January 26, 2010 07:08 AM

Silvia Pfeiffer

Tutorial on HTML5 open video at LCA 2010

During last week’s LCA, Jan Gerber, Michael Dale and I gave a 3 hour tutorial on how to publish HTML5 video in an open format.

We basically taught people how to create and publish Ogg Theora video in HTML5 Web pages and how to make them work across browsers, including much of the available tools and libraries. We’re hoping that some people will have learnt enough to include modules in CMSes such as Drupal, Joomla and Wordpress, which will easily support the publishing of Ogg Theora.

I have been asked to share the material that we used. It consists of:

Note that if you would like to walk through the exercises, you should install the following software beforehand:

You might need to look for packages of your favourite OS (e.g. Windows or Mac, Ubuntu or Debian).

The exercises include:

  • creating a Ogg video from an editor
  • transcoding a video using http://firefogg.org/
  • creating a poster image using OggThumb
  • writing a first HTML5 video Web page with Ogg Theora
  • publishing it on a Web Server, with correct MIME type & Duration hint
  • writing a second HTML5 video Web page with Ogg Theora & MP4 to cover Safari/Webkit
  • transcoding using ffmpeg2theora in a script
  • writing a third HTML5 video Web page with Cortado fallback
  • writing a fourth Web page using “Video for Everybody”
  • writing a fifth Web page using “mwEmbed”
  • writing a sixth Web page using firefogg for transcoding before upload
  • and a seventh one with a progress bar
  • encoding srt subtitles into an Ogg Kate track
  • writing an eighth Web page using cortado to display the Ogg Kate track

For those that would like to see the slides here immediately, a special flash embed:

Enjoy!

January 26, 2010 01:40 AM

January 25, 2010

Erik de Castro Lopo

Golden Section - Jumping the Gun (1993).

Almost two decades ago, when I was at university I played bass guitar in a couple of rock bands; Golden Section and Fishtank. Both bands playing an all original set although Golden Section did cover a song by Fishtank and Fishtank had a song without lyrics but found by accident that the lyrics to the Beatles' "Lucy in the Sky with Diamonds" worked, despite our melody being different.

Recently one of my bands mates in Golden Section posted a video of Golden Section playing live at the Palais Hotel in Newcastle (Australia) in 1993. The first real glimpse of me playing bass is at 1:10.



Playing in Golden Section was just so much fun! Working up to the 1991 Newcastle University Band Competition (which we won) we were rehearsing twice a week and as a result reached a state where the band synced like clockwork. We could play light and reasonably heavy (Fishtank was heavier) and we were even a bit funky on certain songs.

I absolutely loved playing in this band. Good times, good memories.

January 25, 2010 12:01 PM

Silvia Pfeiffer

HTML5 video: 25% H.264 reach vs. 95% Ogg Theora reach

Vimeo started last week with a HTML5 beta test. They use the H.264 codec, probably because much of their content is already in this format through the Flash player.

But what really surprised me was their claim that roughly 25% of their users will be able to make use of their HTML5 beta test. The statement is that 25% of their users use Safari, Chrome, or IE with Chrome Frame. I wondered how they got to that number and what that generally means to the amount of support of H.264 vs Ogg Theora on the HTML5-based Web.

According to Statcounter’s browser market share statistics, the percentage of browsers that support HTML5 video is roughly: 31.1%, as summed up from Firefox 3.5+ (22.57%), Chrome 3.0+ (5.21%), and Safari 4.0+ (3.32%) (Opera’s recent release is not represented yet).

Out of those 31.1%,

8.53% browsers support H.264

and

27.78% browsers support Ogg Theora.

Given these numbers, Vimeo must assume that roughly 16% of their users have Chrome Frame in IE installed. That would be quite a number, but it may well be that their audience is special.

So, how is Ogg Theora support doing in comparison, if we allow such browser plugins to be counted?

With an installation of XiphQT, Safari can be turned into a browser that supports Ogg Theora. The Chome Frame installation will also turn IE into a Ogg Theora supporting browser. These could get the browser support for Ogg Theora up to 45%. Compare this to a claimed 48% of MS Silverlight support.

But we can do even better for Ogg Theora. If we use the Java Cortado player as a fallback inside the video element, we can capture all those users that have Java installed, which could be as high as 90%, taking Ogg Theora support potentially up to 95%, almost up to the claimed 99% of Adobe Flash.

I’m sure all these numbers are disputable, but it’s an interesting experiment with statistics and tells us that right now, Ogg Theora has better browser support than H.264.

UPDATE: I was told this article sounds aggressive. By no means am I trying to be aggressive – I am stating the numbers as they are right now, because there is a lot of confusion in the market. People believe they reach less audience if they publish in Ogg Theora compared to H.264. I am trying to straighten this view.

January 25, 2010 08:22 AM

January 24, 2010

Robert Collins

lCA 2010 Friday


Tridge on ‘Patent defence for open source projects’. Watch it! Some key elements:

  • prior art defence is very very hard – ‘non infringement’ is a much better defense because you only need to show you don’t do the independent claims.
  • Reading a patent doesn’t really harm us because triple damages is no less fatal than single damages :) Reading patents to avoid them is a good idea.
  • Dealing with patents is very technical. It needs training (and the talk has that training)
  • Patents are hard to read.
  • Claims are often interpreted much more specifically than engineers expect.
  • Best prior art is our own source code, with VCS date records and the exact date often matters because of the riority date.
  • Invalidation: dead patents are vampires… and when they come back they are harder to kill again. Read the file wrapper – audit log containing all correspondence <-> patent office and applicant.
  • Patents are not code: judges can vary the meaning.
  • Claim charts are what you use to talk to patent lawyers.
  • Build workarounds *and publish them*. Encourage others to adopt them.

January 24, 2010 03:08 AM

January 22, 2010

Pia Waugh's hackergotchi

Pia Waugh

linux.conf.au 2010 – Day 5: more open gov & hacking for children

I was a little late getting in this morning due to a headache and feeling like I’d been hit by a truck, so unfortunately this meant I missed giving my lightning talk. For those who were interested, I’ll be blogging the content next week.

I met up with Glyn Moody, Stephen Schmid and Julian Carver for a casual chat about open government which was really interesting. We spoke about Open data, which Glyn saw as low hanging fruit. We also spoke about other types of projects happening around transparency in government and technology procurement. It’s interesting to me, because there is a lot of rhetoric around open datoa, citizen engagement and making government more transparent, but there isn’t a lot of discussion about how the current processes of technology procurement may actually inhibit open government initiatives.

Steve has been working for 2 1/2 years on developing the Open Technology Foundation strategy along with some of the other clever folk at the South Australian Office of the CIO, and they are now in the process of putting the plan into action. The Open Technology Foundation will be a great support mechanism for government in pursuing open data, standards, technology and methodologies, so check it out.

After that I continued chatting to Julian for while, particularly about policy development which was great given his experience. We discussed how policy development can mean a lot of different things, and how successful policies usually involve not only logical points but also an understanding of broader social and political context. As we were chatting he came up with an interesting idea. He said that the development of policy could be compared to code development, and perhaps we could purposefully apply the processes of code development to policy development. It’s an interesting thought that needs more consideration before further blogging :)

After a lovely ladies lunch at a great vegetarian place on Cuba St, I got ready for Rusty’s talk.

Rusty always gives very entertaining talks, and this was no exception. It was great not only for it’s humour factor, but because so many of our geek peers are having children (and Jeff and I look forward to having children someday) so getting Rusty’s experience in trying to introduce his young girl to programming was fantastic!

It was wonderful to see video of Rusty’s child (who is now around two years old now) using the different wrist bracelets and software Rusty developed for her. After many experiments with writing software she might like, Rusty hooked up a drum machine to an application he wrote, and it was an interesting experiment because when she hit the drums on the outside she got the best physical feedback (sound) and when she hit it in the middle she got software feedback (more eyes on the screen), which wasn’t nearly as satisfying or understandable for her. :) So at this point he decided to simplify:

  • he went with the best wristband design
  • he wrote two very simple programmes that are fun to use, one to smear paint and one to bounce a ball around the screen

This has been quite successful, so nice work Rusty, particularly for being the world’s first kernel developer focused on the pre-school market. :)

Favourite saying of the speech about introducing children to programming -> “Brainwash early, brainwash often”.

And as for what I eluded to yesterday, I played the part of a 2 yr old child for Rusty’s talk to demonstrate his awesome user design hacking for children. It was a lot of fun! :)

As a side note, I really want Rusty’s shirt, it said “Video games ruined my life, good thing I have two extra lives. <3 <3”.

I had a great discussion with Nat Torkington, again about open government where we brainstormed what government does, is meant to do, and what it would look like if it was designed by geeks.

We talked about open data, and how there are many stages to achieving openness. In the first instance, it is just about getting the data publicly accessible in useful formats and with permissive licences. The second stage is automation of the data (so it is machine readable and continually updated), then interactability wherein the APIs to the data is all open so that people can create systems thatfully interact with the systems and thus the data. Finally achieving read/write public data means that government data can be updated by citizens.

We also spoke about trust, and how trust is beginning to trump statements made regardless of the logic or verifiability, because many people will believe a statement from a trusted source even if they can’t verify it. Access to data is one thing that can help with verifiability, however often data by itself is not enough and data needs to be presented in an understandable and if possible interactive way for people to get the best outcomes.

In terms of interacting with government directly, using open API’s would lower the cost of business transactions and ultimately service delivery for government as well as potentially making goverment better at partnering with others. This would be particularly useful in emergencies as a great example.

We also had a bit of a thought experiment about how would we build a government department from scratch. More on that idea in a later blog post I think. :)

The conference closing was great. Lots of love and thanks all round. They announced the competition outcomes, and the QR code commpetition was nicely explained by Glynn. :)

Gopal (T3rminat0r) was the runner up for the photography competition with this, which is an amazing shot, and Andy Fitzsimon said we should all set it as our backgrounds for “at least two months” :)

WGTN!

Mike Beattie took the great winning photo:

Mike Beattie's winning photo, a lucky shot he says :)

linux.conf.au 2011 was announced to be in Brisbane! Hooray!

I didn’t get to the Penguin Dinner, which was a real shame but I wasn’t feeling well and had to stay home and sleep a bit more.

Other cool stuff I saw today:

Some linux.conf.au media coverage I’ve enjoyed from this week so far:

Angus Kidman

Computer World — Stephen Bell

CIO — Rodney Gedda

Linuxworld — Trevor Clarke

Tech Eye — Nick Farrell

Computerworld — Georgina Swan

Computerworld — Kathryn Edwards

There’s a bunch more, I’ll try to do update the media list tomorrow, right now I need to go sleep some more.

January 22, 2010 11:52 AM

Dave Airlie

LCA 2010 talk

So I originally was going to attend LCA 2010 for the week, but real life interjected and I couldn't abandon family commitments for that long, so I ended up doing a crazy cross-Tasman dash. As well as the change in flights, Isabel came down with a virus and Gia also got it, I think I got a milder version of it, but they both seem alright by the time I left but I had little sleep the previous two nights.

So I flew on Wednesday morning, got in Wed afternoon, met up with ppl, had a couple of beers, wrote slides, slept, finished slides, went to Thur morning, drugged myself up on Nurofen Plus to combat viral effects, gave my talk, went to see ajax talk, went to professional network dinner, went for beers with ajax + benh (listening to an American and a Frenchman speaking about wine while listening to drum n bass in a Wellington pub was a bit wierd). Decided to push on through, so got back to room at 3am or so, checked out/left for airport at 4:20am, flew at 6:20am, into BNE at 7am, home, bed, sleep for a few hours and mind Isabel for afternoon.

So my talk was "So you've put kernel graphics drivers in the kernel... what next? can I haz ponies?". My slide deck is off the 0-content style + lots of pictures of various ponies, which I've found, they'll be on the LCA site soon and I'll upload them when I plug that laptop in again.

(a) stop people reading ahead of your bullet points so they don't doze off while you are catching up
(b) gives them something to look at apart from me while they actually have to listen to me :-P

It seemed well received, the room was pretty packed out (ppl standing/sitting - LCA schedulers you listening?) and I don't think the sickness or lack of decent preparation made a big difference. I'd like to apologise for not even mentioning SGX/poulsbo, I'm not sure how but it totally slipped my mind, but the situation hasn't really changed in terms of how screwed it is.

January 22, 2010 03:18 AM

January 21, 2010

Ian Wienand

Separate debug info

I've recently found out a bit more about separating debug info, and thought a consolidated reference might be handy.

The Idea

Most every distribution now provides separate debug packages which contain only the debug info, saving much space for the 99% of people who never want to start gdb.

This is achieved with objcopy and --only-keep-debug/--add-gnu-debuglink and is well explained in the man page.

What does this do?

This adds a .gnu_debuglink section to the binary with the name of debug file to look for.

$ gcc -g -shared -o libtest.so libtest.c
$ objcopy --only-keep-debug libtest.so libtest.debug
$ objcopy --add-gnu-debuglink=libtest.debug libtest.so
$ objdump -s -j .gnu_debuglink libtest.so

libtest.so:     file format elf32-i386

Contents of section .gnu_debuglink:
 0000 6c696274 6573742e 64656275 67000000  libtest.debug...
 0010 52a7fd0a                             R... 

The first part is the name of the file, the second part is a check-sum of debug-info file for later reference.

Build ID

Did you know that binaries also get stamped with a unique id when they are built? The ld --build-id flag stamps in a hash near the end of the link.

$ readelf --wide --sections ./libtest.so  | grep build
  [ 1] .note.gnu.build-id NOTE            000000d4 0000d4 000024 00   A  0   0  4
$ objdump -s -j .note.gnu.build-id libtest.so 

libtest.so:     file format elf32-i386

Contents of section .note.gnu.build-id:
 00d4 04000000 14000000 03000000 474e5500  ............GNU.
 00e4 a07ab0e4 7cd54f60 0f5cf66b 5799b05c  .z..|.O`.\.kW..\
 00f4 2d43f456                             -C.V            

Incase you're wondering what the format of that is...

uint32 name_size; /* size of the name */
uint32 hash_size; /* size of the hash */
uint32 identifier; /* NT_GNU_BUILD_ID == 0x3 */
char   name[name_size]; /* the name "GNU" */
char   hash[hash_size]; /* the hash */

Although the actual file may change (due to prelink or similar) the hash will not be updated and remain constant.

Finding the debug info files

The last piece of the puzzle is how gdb attempts to find the debug-info files when it is run. The main variable influencing this is debug-file-directory.

(gdb) show debug-file-directory 
The directory where separate debug symbols are searched for is "/usr/lib/debug".

The first thing gdb does, which you can verify via an strace, is search for a file called [debug-file-directory]/.build-id/xx/yyyyyy.debug; where xx is the first two hexadecimal digits of the hash, and yyy the rest of it:

$ objdump -s -j .note.gnu.build-id /bin/ls

/bin/ls:     file format elf32-i386

Contents of section .note.gnu.build-id:
 8048168 04000000 14000000 03000000 474e5500  ............GNU.
 8048178 c6fd8024 2a11673c 7c6a5af6 2c65b1b5  ...$*.g<|jZ.,e..
 8048188 d7e13fd4                             ..?.            

... [running gdb /bin/ls] ...

access("/usr/lib/debug/.build-id/c6/fd80242a11673c7c6a5af62c65b1b5d7e13fd4.debug", F_OK) = -1 ENOENT (No such file or directory)

Next it moves onto the debug-link info filename. First it looks for the filename in same directory as the object being debugged. After that it looks for the file in a sub-directory called .debug/ in the same directory.

Finally, it prepends the debug-file-directory to the path of the object being inspected and looks for the debug info there. This is why the

/usr/lib/debug directory looks like the root of a file-system; if you're looking for the debug-info of /usr/lib/libfoo.so it will be looked for in /usr/lib/debug/usr/lib/libfoo.so.

Interestingly, the sysroot and solib-search-path don't appear to have anything to do with these lookups. So if you change the sysroot, you also need to change the debug-file-directory to match.

However, most distributions make all this "just work", so hopefully you'll never have to worry about anyway!

January 21, 2010 10:11 PM

Robert Collins

LCA 2010 Friday keynote/lightning talks


Nathan Torkington on 3 lightning keynotes:

1) Lessons learnt!

‘Technology solves problems’… no it doesn’t, its all about the meatsacks!

‘If you live a good life you’ll never have to care about marketing’… steer the meatsacks

‘English is an imperative language for controlling meatsacks.’… Tell the smart meatsacks what you want (english is declarative).

2) Open source in New Zealand:

A bit of a satire :) ‘Sheep calculator’, tatoos as circuit diagrams. The reserve bank apparently has a *working* water-economy-simulator. Shades of Terry Pratchett!

3) Predictions – more satire about folk that make predictions – financial analysts, science journalists.

After that, it was lightning talk time. I’ve just grabbed some highlights.

Selena Deckelmann talked about going to Ondo in Nigeria and un-rigging an election:

  1. Run for political office.
  2. Lose – but polls had suggested the reverse result
  3. Don’t give up – protest file May 14 2007
  4. Use technology – fingerprint scanning – 84814 duplicate fingerprints, 360 exactly the same fingerprints
  5. Patience – 2 years and the courts reversed the election

http://flossmanuals.net – nice friendly manuals in many languages writen at book sprints.

Kate Olliver presented on making an origami penguin.

Mark Osbourne presented ‘Open Source School’ – a school in New Zealand that has gone completely open source, even though the NZ school system pays microsoft 10Million/year for a country wide license.

January 21, 2010 09:10 PM

Pia Waugh's hackergotchi

Pia Waugh

linux.conf.au 2010 – Day 4: elephants & emergencies

Early this morning I went to Yoga which was great! It was my first time, and a really wonderful class. The class was pretty full and the exercises were really interesting. Thanks very much Francois for organising it and to the lovely teacher for the illuminating class.

Afterwards I was feeling a little shaky and so I watched the keynote stream from another room. I enjoyed Glyn Moody’s talk immensly and really want to try to catch up with during the few remaining days at lca.

I had one interesting discussion today with Mako where we discussed the impacts of risk management and liability policies on innovation. It’s an interesting area and I’d love people’s comments or any examples they can think of. :)

Jeremy Allison gave a talk called “The Elephant in the Room” which discussed Microsoft and it’s relationship to the Free Software community. He spoke about several strategies Microsoft have attempted over the years:

  1. De-commoditisation — their move to de-commodotise their software through proprietary standards, media formats, closed integration of their products and other behaviours that locked out other software. In the long run they were made to open up a lot of their standards (through the SAMBA team’s great work).
  2. The OOXML fiasco — which ended up with the ISO standards process being quite dramatically corrupted. One blogger commented that it was effectively one company against everyone, and they won, which is a bit worrying. Industry, governments, community and many others around the world rallied strongly against OOXML. This ended up being a loss of Microsoft because although the standard was passed, there was a lot of frustration and global awareness of the issues resulting, and now Microsoft have adopted ODF support anyway.
  3. Corruption of the Open Internet — through rather particular implementation of standards as an example. Jeremy said that Firefox has been a great boon for openness. This is an ongoing battle, however Jeremy felt they would ultimately have a loss in this strategy too.

Jeremy see patents as the biggest current issue. He posed the Tom Tom lawsuit as “the first openly aggressive use of Microsoft’s patent portfolio against Free Software”.

His core messages came down to what we can do about the elephant in the room, and it came down to:

  • Ignore it — continuing creating awesome software and demonstrating the value of openness. He saw this as the most effective long term strategy.
  • Coral it — keep up pressure on governments and organisations to adopt open, uncorrupted standards and investigate monopolies. I think there will always be a small minority of our community committed to doing this, but I think we can all within our own lives drive education in our peers, workplaces, families and other networks around the importance of openness and software freedom.

I have always been quite firmly in the camp of not attacking individual companies. I do believe people and organisations should be held to account for disruptive and destructive actions, and unfortunately for them, Microsoft often come up due to many of their behaviours. But it is a mistake for people in our community to assume companies are “evil” or “good”. They’re just companies and we need to encourage open and collaborative behaviours whilst keeping our eyes open to bad behaviour, so to speak. :)

I then had a great lunch, catching up with some friends we haven’t seen for ages. We had a great discussion about gender, sexuality & culture. We were comparing social norms, good/bad behaviour, and how to actually drive social progress without excluding or blaming any person or group. It was a really fascinating conversation, and I personally believe that treating issues of negative bias or bad behaviour as a community problem, rather than a problem just of the target group is the way to draw everyone in to creating the best community we can.

I went along to the Sahana talk, but couldn’t stay long as I was helping Rusty prepare for his talk tomorrow. I’m a big fan of Sahana, it is disaster management (in the Tsunami sense) software, so if you are interested in FOSS for saving lives, you should check it out and get involved.

My role in Rusty’s talk is top secret, so you’ll have to come along to see. :)

I caught the Q&A from Jon Oxer’s talk — “Tux on the Moon: FOSS hardware and software in space” — which I’m going to make sure I watch once the recordings are put up as it sounded very interesting.

After that I thought I’d take advantage before it rained again to go out kayaking for an hour. Kate Olliver had said she was keen to go so off we went. I was feeling dizzy as we walked over but ignored the sensation and went kayaking. The kayaking was a lot of work but a lot of fun, and we saw amongst many other cool things a baby starfish which made me wish I’d risked bringing a camera. It was very cute.

Now the story gets a little more exciting. On the way back from kayaking I felt much more dizzy and had to sit down rather suddenly about half way back. We got back and I accepted I was actually a bit sick, so I wanted to figure out whether I had the same bug Andrew and Susanne (the core organisers) had suffered. I went into the NOC to ask and their symptoms didn’t match. I felt quite dizzy and sat down, then lay down, then had some muscle and body spasms which were quite unpleasant and at times painful. Got taken to the hospital where anti-inflamatories, a drip and bed rest calmed down the symptoms, and now I’m home feeling like I’ve been hit by a truck. Turns out muscle spasms are a pretty good form of exercise.

Anyway, thank you very much to the lca2010 team, especially Steve Walsh, Susanne Ruthven and Jayne Foster for putting up with and helping me out, and I’m sorry to everyone for causing a fuss.

Other cool stuff I came across today include:

UPDATE: Friday morning I felt a lot better. Massive headache, stiff neck. sore muscles, but still fine to attend lca. Hooray for panadol and anti-inflammatories. :)

January 21, 2010 12:35 PM

Robert Collins

LCA 2010 Thursday


Jeremy Allison on ‘The elephant in the room – free software and microsoft’. While he works at Google, this talk was ‘off the leash’ – not about Google :) . As usual – grab the  video :) We should care about Microsoft because Microsoft’s business model depends on a monopoly [the desktop]. Microsoft are very interested in ‘Open Source’ – Apache, MIT, BSD licenced software – the GPL is intolerable. Jeremy models Microsoft as a collection of warring tribes that hate each other… e.g. Word vs Excel.

The first attack was on protocols – make the protocols more complex and sophisticated. MS have done this on Kerberos, DCE/RPC, HTTP, and higher up the stack via MSIE rendering modes, ActiveX plugins, Silverlight…  The EU case was brought about this in the ‘Workgroup Server Market’. MS were fined 1 Billion Euros and forced to document their proprietary protocols.

OOXML showed up rampant corruption in the ISO Standards process – but it got through even though it was a battle against nearly everyone! On the good side it resulted into an investigation into MS dominance in file formats -> MS implemented ODF and MS have had to document their old formats.

MS have an ongoing battle in the world wide web – IE / Firefox, ajax applications/ silverlight.

All of these things are long term failures for MS… so what next?… Patents :( . Patents are GPL incompatible, but fine with BSD/MIT. The Tom Tom is the first direct attack using MS’s patent portfolio. This undermines all the outreach work done by the MS Open Source team – which Jeremy tells us are true believers in open source, trying to change MS from the inside. Look for MS pushing RAND patented standards: such things lock us out.

Netbooks are identified as a key point for MS to fight on – lose that and the desktop position is massively weakened.

We should:

  • Keep creating free software and content *under a copyleft license*.
  • Keep pressure on Governments and organisations to adopt open standards and investigate monopolies.
  • Lobby against software patents.
  • Search for prior art on relevant patents and destroy them.
  • Working for a corporation is a moral choice: respectfully call out MS employees.

Jonathan Oxer spoke about the google Moon X-prize and the lunarnumbat.org project – it needs contributors: software and hardware hackers, arduino/beagleboard/[M]JPEG2000 gooks, code testers and reviewers, web coding, documentation, math heads & RF hackers. Sounds like fun… now to find time!

Paul McKenney did another RCU talk – and as always it was interesting… Optimisation Gone Bad (RCU in Linux 1993-2008). Linux 2.6 -rt patch made RCU much much much more complex with atomic operations, memory barriers, frequent cache misses, and since then it was slowly being whittled back, but there is now a new simpler RCU based around the concept of doing the accounting during context switches & tracking running tasks.

January 21, 2010 04:09 AM

January 20, 2010

Robert Collins

LCA 2010 Thursday Keynote – Glyn Moody


Glyn Moody – Hackers at the end of the world. Rebel code is now 10 years old… 50+ interviews over a year – and could be considered an archaeology now :)   I probably haven’t down the keynote justice – it was excellent but high density – you should watch it online ;)

Glyn talks about open access – various examples like the public library of science (and how the scientific magazine business made 30%-40% profit margins. The Human Genome Project & the ‘Bermuda Principles’: public submimssion of annotated sequences. In 2000 Celera were going to patent the entire human genome. Jim Kent spent 3 weeks writing a program to join together the sequenced fragments on a 100 PC 800Mhz Pentium processor.  This was put into the public domain on just before Celera completed their processing – and by that action Celera were prevented from patenting *us*.

Openness as a concept is increasing within the scientific community – open access to result, open data, open science (the full process). An interesting aspect to it is ‘open notebook science’ – daily writeups, not peer reviewed: ‘release early, release often’ for science.

Amazingly, Project Gutenberg started in 1971!

Glyn ties together the scientific culture (all science is open to some degree) and artistic culture (artists share and build on /reference each others work) by talking about a lag between free software and free content worlds. In 1999 Larry Lessig setup ‘Copyright’s Commons’ built around an idea of ‘counter-copyright’ – copyleft for non-code. This didn’t really fly, and Creative Commons was setup 2 years later.

Wikipedia and newer sharing concepts like twitter/facebook etc are discussed. But… what about the real world: transparency and governments, or companies? They are opening up.

However, data release !=  control release. And there are challenges we all need to face:

  • GFinancialC “my gain is your loss”. Very opaque system.
  • GEnvironmentalC “my gain is our loss”

Glyn argues we need a different approach to economic governance: the commons. 2009 Nobel laureate for Economic Sciences – Elinor Ostrom – work on commons and their management via user associations… which is what we do in open source!

Awesome!

January 20, 2010 10:12 PM

Pia Waugh's hackergotchi

Pia Waugh

linux.conf.au 2010 – Day 3: freedom, games & Bruce Campbell

Day 3 of lca2010 and I had 3.5 hours sleep last night but got up early anyway and did some stick and pole weapons training with Ian Beardslee which was great fun.

Ian Beardslee demonstrating pole

This morning Benjamin Mako Hill gave the keynote. I met Mako years ago and he has always been a massive inspiration. He’s spoken, written and hacked on software freedom for many years, a freedom fighter from way back. :)

In his keynote he talked about empowerment and autonomy rather than licences. “Who controls the technology, controls how I get to use it. So the question of who controls software is a profound and political question.” He spoke about “antifeatures”, features that users hate and would even pay money to have removed. Mako holds that these antifeatures are very common and everyone deals with them. He gave four key categories of antifeatures:

  • Protection money - pay us so you are kept safe. For instance Gator, which was spyware installed on 35 million Windows computers that replaced banner ads with other ads. It shipped with other software so many users didn’t even know they had it. DivX for instance had a free download that had Gator, or you could get the “premium” version for $19.95 which was exactly the same software but without the Gator spyware. Wow.
  • Market segmentation (price discrimination) - for example Windows NT Workstation 4.0 vs the Server product. The workstation was basically artificially limited (although the actual code was identical) by a single registry key that identified whether the machine was a server or workstation. The differences were very limiting, for instance the workstation version could only have 10 TCP connections. Another example of market segmentation in this way is different versions of Windows even today will allow different limits of RAM, which again is a completely artificial limitation aimed at “segmenting the market” to charge different amounts. Vista Starter for instance apparently limits you to 3 graphical applications running simultaneously.
  • Securing monopolies - Panasonic released a firmware update for their cameras, which would identify whether the camera was third party and prevent the camera from turning on unless it was a genuine battery. Other camera companies have written similar firmware updates to make third party batteries not use power saving and so appear to be worse quality than a brand name battery.
  • “Protecting” copyrights (“from whom?”) - an example is that unskippable track at the beginning of DVDs.

He talked about how network services are creating new and interesting roadblocks to personal empowerment and autonomy and a bunch more. It was a highly informative and entertaining talk, so watch it! Also check out his Unhappy Birthday website.

Mako's talk at lca2010

Then I went to Richard Jones’ Games programming Tutorial, which I was really excited to see as I’ve always wanted to develop games, but had only got as far as some Battle for Wesnoth campaign development, which is more like marked up creative writing :) (but loads of fun).

I took a bunch of notes about games development, but it would be most useful to actually watch the tutorial and check out of Richard’s slides and material. It’s a great tutorial for all ages :)

My notes on collision detecting were:

Most common way of collision detection is the use of axis-aligned bounding boxes (squares). For example, one around the character, and then one around the ground and then when the boxes overlap they are colliding. Much faster than pixel-perfect collision detection. We used circle-circle collision detection, however there are also hash maps for more complications collision detection such as used in “bullet hell” games. This defines a grid on the screen and detects where in the grid each items are to determine what is overlapping.

By the end of the session (which just flew past) I had a basic but working Asteroids game! Now I just need to learn more Python and I intend on taking up the recommendations and get into more study. Thanks Richard!! He recommended the “Invent with Python” online book to check out, even though it was written for 12 yr olds :) Also check out PyCon Au.

I then spoke to Pamela Fox about applying Wave to a Public Sphere government consultation. I’m not sure how yet, but I have the feeling there could be some very clever way too do this. I need to think about it more.

I attended Matthew Garrett’s talk on “Social success in (and for) the Linux community”. I always enjoy Matthew’s talks, just the right mix of dry humour and cutting cynicism — very British. ;)

First he spoke about who the Linux community is:

  • Developers - people who make it
  • Users - people who use it
  • Anyone who cares enough to participate and count themselves in the community

Matthew observed “As a community we are very hostile”. He talked a bit about how obvious people are about minorities in the community, and gave a great example of women. He said that pointing out to people that they are in fact quite obviously different is not endearing. He posed the question “what is acceptable?”:

“The idea that we should be nice to each other does not mean that we can’t have fun.” Completely agree. I get so sick of inappropriate humour that marginalises people in the community. Great point! It’s much better to create a community where everyone feels comfortable and enthused to contribute and make the project rock! Matthew pointed out that as a community we often value code above all else, but this isn’t necessarily a good thing, and we should be thinking about what we want our community to be and then make a choice.

Matthew said in Q&A that he used to be very abusive and got a lot of attention for that, however he’s realised over time that he can earn respect through his contributions to the community and doesn’t need the other sort of attention. This was a very useful and personal insight to this kind of behaviour in projects.

Matthew Garrett asks what's acceptable

I watched Andrew Tridgell and Bob Edwards give a great talk about “Teaching FOSS at universities”. Basically they ran a course last year as a bit of an experiment to see whether it was feasible to teach people the technical and community methods of FOSS in the context of a university. Tridge says it was a resounding success and encourages us to suggest this kind of course to other universities. They are repeating the course in April 2010 and it looks very interesting. It would be great to get this kind of courseware into schools as it would help all students understand how to engage online, how to contribute to an online project and how to apply FOSS principles to other areas.

The final talk I attended today was Paul Fenwick’s “Worst inventions”. He compared leeches in glass bottles from one 18th Century invention with social networking, because the inventor said *glass* bottles were used so the “little comrades… were not in social isolation”.

He described some rather terrible inventions over the years, a few are below:

  • Cabbage Patch Snacktime - Eats Human Flesh
  • Bindeez which as it turns out got children high as the water activated soluble when made wet would create GHB, otherwise known as Ecstasy.
  • The “Atomic Energy Lab” for the budding nuclear physicist which had actual uranium, and a comic book called “Learn how Dagwood splits the atom”. Hilarious!

Paul Fenwick - the crazy scientist

The night finished with a Girl Geek Dinner with about 30 attendees. We had an amazing dinner at the Little India restaurant and Amber the dinner organiser also managed to coordinate heaps of prizes which was fantastic, thanks Amber! I managed to score an awesome KiwiCon tshirt from Joh which has Bruce Campbell on the back, and being a big Army of Darkness fan, I’ve been quoting Ash all night. :) It’s always great to catch up with a bunch of other technical women to just chill and not be the odd one out for a little while.

Other cool things I came across today include:

Below are a couple of photos I’ve taken this last week to keep it interesting :)

Spirit tree at Lake Taupo

A parade of paper penguins

Pouty Jeff John and Silvia Silvia at the falls "I wanna honey icecream" Hello!!! john, Jeff and Silvia in New Zealand Pia and Jeff in New Zealand Chilling at the waterfall Mitai Chief at Roturua Mitai Family presentation at Roturua Hungry Silvia Newly engaged on Te Mata Peak Newly engaged on Te Mata Peak Newly engaged on Te Mata Peak The ring fits... the wrong finger! Do you, I do! Silvia is shocked Engaged and a wide open sky Aww, the newly engaged monkies img_3104.jpg img_3108.jpg img_3112.jpg img_3114.jpg img_3123.jpg img_3131.jpg img_3134.jpg img_3136.jpg img_3142.jpg img_3143.jpg Spirit tree at Lake Taupo

January 20, 2010 10:39 AM

Robert Collins

LCA 2010 Wednesday


Pandora-build. There for support – I’ve contributed patches. Pandora is a set of additional glue and layers to improve autotools and make it easier to work with things like gettext and gnulib, turn on better build flags and so forth. If you’re using autotools its well worth watching this talk – or hop on #drizzle and chat to mtaylor :)

The open source database survey talk from Selena was really interesting – a useful way of categorising databases and a list of what db’s turned up in what category. E.g. high availability,community development model etc. Key takeaway: there is no one-true-db.

I gave my subunit talk in the early afternoon, reasonably well received I think, though I wish I had been less sick last week: I would have loved to have made the talk more polished.

Ceph seems to be coming along gangbusters. Really think it would be great to use for our bzr hosting backend. 0.19 will stablise the disk format! However we might not be willing to risk btrfs yet :(

Next up, the worst inventions ever.. catch it live if you can!

January 20, 2010 04:09 AM

Sonia Hamilton

Salary vs Contract Rates


I’ve always wondered what recruitment agents use as their formula to convert between salaries and contract rates. Here’s a formula (for giving ballpark figures) – thanks CK:

Salary divided by 48 weeks, divided by 40 hours, plus 20% (super, training, sick leave, etc) =~ Hourly rate

For example, $100K =~ $62.50/hour, $150K =~ $93.75/hour.

Here’s a quick ready reckoner – handy to print out when you’re doing the “job mambo”:

Salary Hourly Daily
$80,000 $50.00 $333.28
$85,000 $53.13 $354.11
$90,000 $56.25 $374.94
$95,000 $59.38 $395.77
$100,000 $62.50 $416.60
$105,000 $65.63 $437.43
$110,000 $68.75 $458.26
$115,000 $71.88 $479.09
$120,000 $75.00 $499.92
$125,000 $78.13 $520.75
$130,000 $81.25 $541.58
$135,000 $84.38 $562.41
$140,000 $87.50 $583.24
$145,000 $90.63 $604.07
$150,000 $93.75 $624.90
$155,000 $96.88 $645.73
$160,000 $100.00 $666.56
$165,000 $103.13 $687.39
$170,000 $106.25 $708.22
$175,000 $109.38 $729.05
$180,000 $112.50 $749.88
$185,000 $115.63 $770.71
$190,000 $118.75 $791.54
$195,000 $121.88 $812.37
$200,000 $125.00 $833.20

And here’s the numbers for doing quick calculations:

Salary Ks to Hourly * 0.625
Hourly to Salary Ks * 1.6
Salary Ks to Daily * 4.166
Daily to Salary * 0.24

January 20, 2010 03:39 AM

January 19, 2010

Robert Collins

LCA2010 Wednesday Keynote


Another must-grab-the-video talk : Mako’s keynote. Antifeatures, principles vs pragmatism do come together. The principled side – RMS & the FSF – important to control ones technology because its important to control ones life. The pragmatic side – quality, no vendor lock etc. False dichotomy.. freedom imparts pragmatic benefits even though it doesn’t intrinsically import quality, good design:  95% of projects 5 contributors; median number of contributors 1, and such small collaborations are no different than a closed source one.

Definition of antifeatures – built functionality to make a product do something one does not want it to do. Great example of phone books: spammers pay for access to the lists, and thus we have to pay *not to be listed*, but its actually harder to list and print our numbers in the first place. Mako makes a lovely analogy to the mafia there. Similarly with Sony charging 50 dollars not to install trialware on windows laptops in the past.

Cameras: Canon cameras disabled RAW saving…. CHDK, an open source addon for the camera outputs RAW again. Panasonic are locking down their cameras to reject third party batteries.

The tivo is an example of how focusing on licensing can miss the big picture: free stack, but still locked into a subscription to get an ongoing revenue stream.

Dongles! Mako claimed there wasn’t a facebook appreciation group for dongles… there is.

Github: paying for the billing model – lots of code there to figure out how many projects in a repo, so that they can charge on that basis.

DRM is the ‘mother of all antifeatures’ – 10K people writing DRM code that no users want!

January 19, 2010 09:10 PM

Pia Waugh's hackergotchi

Pia Waugh

linux.conf.au 2010 – Day 2: paradoxes & open government

Firstly I should say that the Martial Arts Bof last night was awesome! We had about 8 linux.conf.au people, plus a few locals. We had many styles represented and it was a fantastic night of knowledge sharing, training and loads more. Paul Wayper came along as a Martial Arts newbie and did a good write up that was fascinating as he was observing all of us with fresh eyes. :)

Day 2 of linux.conf.au was just amazing. The day started with the brilliant Biella Coleman who gave a keynote talk about the history of IP rights, which included some really interesting reflections on hacker culture and the paradox of the “global politics of IP” vs the free software (and broader open culture/knowledge/source) movements. One insight was about TINC (There Is No Cabal), and how it is a joke in most hacker circles, she reflected that the joke is actually a constant subtle reminder to project leaders and other people in positions of responsibility to maintain openness and transparency in the governance and process of their project. Had never thought of it that way. :) She’s about to release a book called “Coding Freedom: Hacker Pleasure and the Ethics of Free and Open Source Software” which I’m looking forward to very much. The amazing thing about Biella is how she has observed and participated in hacker culture for many years, and so many of her observations are an integral and internally unnoticed part of hacker culture, but very interesting to muse upon and communicate. Thanks heaps Biella! Great work and please keep it up!

Biella’s blog is well worth checking out. I first met her in Brazil at DebConf a number of years ago, and she has done a lot of interesting research. One paper I really enjoyed explored female hackers in the early days of computing when the machines were room size. Her research showed that it was mainly women coding because “typing” was seen as women’s work, however whenever there was press or announcements made, photos would be taken of the computers without any of the women. I’ll find the link later (as I am trying to blog this tonight so I get a post in every day :) ).

Finally, Biella made a fascinating comparison between the Free Software/Open Source movement and “clear-sighted irony”, watch her talk to see more. ;)

The rest of today I spent in the Open in the Public Sector miniconf where there was an amazing lineup of speakers from NZ, Australia and the UK. We also had attendees from all over the world, who participated in the conversation! It was an incredible day and I recommend anyone interested in government, politics and/or open government to check out the presentations once the video is made available. I’ll be helping Daniel Spector (the awesome organiser) to put up all the slides in the coming day.

Below is a quick wrap up of each talk. Please note I’ve linked where possible to their Twitter accounts so you can followup with them later:

  • Keynote from Andrew Stott, Director of Digital Engagement, UK. Andrew gave, as usual a fantastic talk however due to bandwidth and me stupidly using wireless he was very difficult to understand. His slides were quite thorough and they’ll be linked through from the miniconf website in the coming day or two so check them out.
  • Keynote from Lisa Harvey, representative of Australian Govt 2.0 Taskforce. Lisa gave a great talk outlining the Australian Government 2.0 Taskforce project and outcomes. I wanted to link to some of the cool stuff she mentioned:
    • The Taskforce Final Report was made publicly available December 22nd (2009) and is a great read. When the draft was posted a few weeks before that they had Gov 2.0 giants in the UK and US commenting on it within a few hours which was cool. It’s been a huge project to undertake in the 6 months the Taskforce was running, and the whole team should be very proud of their work as well as their commitment to public engagement, and for making the process of creating this report a sterling Gov 2.0 case study in itself. :)
    • She gave a shout out to the Public Spheres that I designed and ran with Senator Kate Lundy which was cool. Lisa said the Gov 2.0 Public Sphere was a vital contribution to the Taskforce which was great!
    • Lisa gave a huge thank you and recognition to Nicholas Gruen, the chair of the Taskforce and a powerhouse for open government and Gov 2.0.
    • Mashup Australia was a major Taskforce project wherein a bunch of data was made openly available for public mashups as well as some events coordinated to create places for hacking and knowledge sharing. Check out the projects and datasets.
  • Stephen Boyd (Aus) IT Security Adviser Department of the Environment, Water, Heritage & the Arts; Why hasn’t the year of the linux desktop arrived in Canberra? Stephen’s talk was a bit controversial for a few attendees as he outlined the issues and assumptions facing government departments in Australia.
  • Laurence Millar, How can Govt procurement better support Open? Laurence gave a great talk about open data, and the assumptions underpinning government decision making. He was, as always a wonderful presenter. :)
  • Pia Waugh, ICT Policy Advisor to Senator Kate Lundy (Aus); Open Government: Getting the core policy and technical principles right! I spoke about why getting basic principles is important to avoid falling off cliffs, and how every government department/office should have a FOSS geek to help them due to the open instincts they develop from our awesome community.
  • Panel Discussion: The Politics of Open: Moderator: Nat Torkington Panel: Clare Curran- Labour MP, Pia Waugh, Andrew Holmes, Principal Clinical Advisor, Health Information, National Health Board Business Unit, Ministry of Health. The panel was interesting and dealt with some questions about how geeks can engage politically, the challenges facing departments, the blockers to adoption of open standards and much more. Clare also announced that she will be running an open consultation on the NZ Labour Open Government policy which was cool to hear.
  • Steven Schmid, A/NZ Open Source Sand Pit; Implementing an authoritative repository of public sector Open Technologies for Government agencies. Stephen gave a great talk and followup Q&A about the OTF which he has been working on for 2 1/2 years as well as the possibility of creating a global repository of government knowledge and experience with open technologies like FOSS, open standards, etc. He  talked about it being federated and in collaboration with global projects, but also part of a broader project to create real government support for  adoption of open tech which is awesome. Great work Steve! Check it out.
  • Panel Discussion: Creative Commons, Open access/ licensing, and NZGOAL. Panel Professor Anne Fitzgerald - QUT Law Faculty, Keitha Booth - Open Government Information and Data work programme at NZSSC. Anne and Keitha both gave great short talks about copyright in government, where things are at and where they are going in New Zealand and Australia.
  • Jason Ryan, Manager, Communications & Records Management, NZ State Services Commission. Jason Ryan did a fantastic job of wrapping up the miniconf, reflecting on all of the speakers, their core messages, and allocating themes to each talk. Stephen Schmid got “The Matrix” for his talk on the Open Technology Foundation, and Laurence Millar was compared to “In the Name of the Rose”. :) It was hilarious! Jason gave me the “oscar of the day” for one of my suggestions for government: “open source geeks, get one”. He reflected on how important that was and useful regardless of the topic area. Definitely check out his talk!
  • The final comment from the day, from Jason, was that government is a bit like when he first played with Slackware. There’s hundreds of dependencies all all you need is a great package manager, and then he suggested all of us (at the open gov miniconf) were like the package managers for open government. Great comparison! :)

Am now getting to bed, past midnight, but importantly before midnight Australian time so I’m counting this as being on track to blog every day at lca, which has been my challenge this year! :P

January 19, 2010 12:01 PM

Michael Fox

RHEL 5.3 excessive file handles

As per my previous post here. I’d like to share some conclusions and how they came about.

A scheduled reboot was performed and the nagios agent and scripts got corrected. However this wasn’t the issue, which was sort of determined prior to the reboot, as I had them stopped for about 2 cycles of sar reports (20mins).

After the reboot, the problem of course happened again. sar -v output would show the file-sz increase over time. Somewhat like 3 steps forward and 2 steps back. So you get a slow increase, although as seen in previous post 500 or so handles consumed at a time.

I suspected some with oracle, so pointed out some processes that seemed to be respawning every 7 mins, but it turns out this was due to database scripts accessing the database, however one of the dba’s investigated further and determined they believed the emagent process seemed to be acting a bit odd. Upon further investigation a stop of the agent, and checking the current cat /proc/sys/fs/file-nr output showed the file-sz value drop by over 10000. Thus it looks like we found the issue, so of course they had to defer it to oracle support. At least we now have a way to bring the value down by a restart on emagent (which is Oracle Grid Control related I am told).

To aid others, if anyone is seeing something similar. I’d recommend making sure that the system wide file-max-nr value is greater then that of the limits.conf hard limit for the user you suspect that might be causing it. In the case of our system, the file-max-nr was set to 65536, however so was the oracle hard limit for nofiles. Thus when oracle user used up all the handles, then the system also had issues, aka unable to ssh in. So increase the system wide setting, can be performed without reboot. Then for any user’s you suspect that might be causing the issue, set them up with limits via the limits.conf file and then monitor. If a process running as one of those users is consuming all the file handlers, then only the software ran by this user will suffer the issue, and the system wide setting of a greater value will allow you to still ssh in and do various other things.

Hope this helps anyone else out in the wide world web, as it was certainly a good problem to investigate.

January 19, 2010 08:56 AM

Robert Collins

LCA 2010 Tuesday


Gabriella Colemans keynote was really good; grab it from the videos once they come online.

WETA run Ubuntu for their render farm: 3700 machines, 35000 cores, 7kw per ‘cold’ rack and 22kw per ‘hot’ rack. (Hot racks are rendering, cold racks are storage). Wow. Another talk well worth watching if you are at all interested in the issues related to running large numbers of very active machines in a small space.

And a classic thing from the samba4 talk at the start of the afternoon: MS AD domain controllers do no validation of updates from other domain controllers: classic crunchy surface security. (Discovered by samba4 borking AD while testing r/w replica mode).

Blue-ray on linux is getting there, however one sad thing is that the Blue ray standard has no requirement that vendors make players be able to play un-encrypted content – and there are some hints that in fact licences may require them to not play un-encrypted content.

Peter Chubb’s talk on Articulate was excellent for music geeks: midi that sounds like music from lillypond.

Ben Balbo talked about ‘Roll your own dropbox’. Ben works at a multimedia agency, but the staff work locally and don’t use the file server…. use instant messenger to send files around! Tried using subversion… too hard. Dropbox looked good but 3-7 hundred a month – too pricey given an existing 1.4TB of spare capacity.

He then considered svn + cron but deleted directories cause havoc & something automatic was wanted… so git + cron instead. Key thing used in doing this was having a work area with absolutely no metadata. Conflicts dealt with by filename.conflict.DATESTAMP.HOSTNAME.origextention

Doesn’t trigger of inotify, no status bar widget, only single user etc at the moment, but was written to meet the office needs so is sufficient. Interestingly he hadn’t looked at e.g. iFolder.

January 19, 2010 05:10 AM

January 18, 2010

Peter Hardy

So long, momo :-(

Yesterday I bricked my phone.

I bought a HTC Dream on an Optus plan the day they released it in Australia. Out of the box it was awesome, pretty much everything I wanted out of a smartphone. But as time passed, the Cupcake android release became widespread, and Optus lollygagged about pushing the update out to their users. One by one my favourite applications released updates that made them incompatible with my phone, until eventually I gave up and found a good guide on rooting G1s.

With an up-to-date firmware and Market Enabler to get around Optus’ other major problem of not making paid applications available, I was in smartphone heaven. That was until I heard wind of ROMs based on the Android 2.1 release (as seen on the new Nexus One handset) running on the G1. It looked like it might be fun to try, so off I went.

One of the steps involved in initially rooting a handset involves loading a new SPL to bypass region checking and enable booting unsigned ROMs, so I’d done it a couple of times before and was fairly comfortable with it. Unfortunately, newer builds need the Haykuro SPL, which is supposed to be more aggressive with how it deals with the internal storage space (leading to more size for bigger images), but also kind of dangerous. I double– and triple-checked everything, but still seem to have screwed something up flashing the SPL, and now I have a phone that is basically dead. The 1st bootloader screen comes up, but I can’t get in to the fastboot menu or the recovery image. My poor little momo (my computers are named after Samurai Champloo characters) was no more.

Luckily my birthday was yesterday, so I don’t feel too bad about treating myself to a new phone. After a morning of reading reviews, I think I’ve decided on a Motorola Milestone. I’m a little wary of Motorola — my last Moto handset was an absolute disaster, and working for a mobile communications company means I’ve had a chance to tinker with newer Motorola handsets that were similarly disappointing. But the Milestone seems to be a very impressive and solidly-built phone. The jury is still out on whether the Milestone or the new Nexus One would win for Best Android Phone right now, but I for one am swayed by a good hardware keyboard.

So, momo is dead, long live… uh… momo?

January 18, 2010 02:06 PM

James Purser's hackergotchi

James Purser

lca2010 Day 1

Well it's the end of day one of linux.conf.au here in Wellington and I have to say it's been a pretty good start to the event.

Breakfast, or so it claimed:

I left sleepy Dapto at 4am yesterday morning to make it up to Sydney for my 8:45 flight. Everything went well, and I met up with other lca attendees (Melissa Draper, Michael and Brett Morgan). Check in was fine and we were soon boarding. I took out my copy of LotR and the trip commenced.

Everything was fine, it was reasonably clear so got a good view of the ocean out of the window. Then they announced breakfast. "Hrmm" I thought, "I am a little hungry, I shall partake of their offerings."

Mistake.

When the flight attendants reached my row they had run out of the "cold breakfast". Instead they claimed they had scrambled eggs so I said "not a problem" and received my pre-heated meal. On taking the wrapper off the meal I was presented with what looked like a small mound of oatmeal (which I was to find was in fact meant to be a hash brown), what appeared to be a piece of leather (bacon) and something approaching scrambled eggs. This "delightful" meal was finished off by the presence of some mysterious red liquid with lumps in it (baked beans). Yum

Arriving in UnZud

Well I survived the meal and we finally arrived in Wellington. I have to say the approach to Wellington is very impressive from what I could see. It really did drive home the idea that New Zealand is a landscape still developing and growing as opposed to Australia, a land known for its deserts and plains in which the last million years has passed with nary a change.

Upon alighting from the plane, I discovered that it was 14 degrees and raining. I made this discovery wearing shorts and a t-shirt (yay me). Wasn't that bad though, caught a taxi-bus with Melissa and Brett to UStay where we all checked in and I wandered down to the registration desk at the venue to sign in. Well that was the plan. I ended up exploring half of the Wellington CBD/Foreshore before I finally got my bearings straight :)

The swag bag this year is impressive. It's a nice size and holds everything without issue. Luckily again this year the organisers of LCA were able to resist the urge to go with Slim Fit T-shirts so I might actually wear mine this week. The hand sanitizer was a bit of an odd one, but I believe that it's in response to the swine flu outbreak.

I have to hand it to the network people. This year they've managed not only to get the network running at the venue but through CafeNet, LCA attendees actually network access throughout Wellington. That has to be a first (cough, Sydney/Wollongong city wide wifi is a GOOD IDEA).

First Day

As I was presenting today I had to make that I did not sleep in and miss the first session of the day. Luckily I was able to up, showered and ready to go with plenty of time. 

I walked down to the venue, met up with a few people, and the wandered up to the room where the Google Wave miniconf was going to be held.

Dan Peterson the PM (I think that stands for Project Manager) started the day with an introduction to Federation, which led nicely into my first talk about "Building the Independent Wave". I was nervous as I usually am at these things, and I'm sure I went too fast, however I was reasonably happy with the way it went. It trigger some discussion, specifically my claim that for Iwave to move forward it needs to take over the role of the mail server.

After me came Brett Morgan with his discussion of Operational Transforms as they applied to his custom Gagdet. It was a good talk, however the application he was demonstrating failed to fail which caused some consternation ;)

The talks by Pamela were very interesting. If you don't know who Pamela is, she performs developer support for the Google Wave team, and has been single handedly, filling the Samples gallery with various Gadgets and Robots. If you want to dig deep into the Google Wave Robots and Gadgets API's Pamela is the one to ask.

As the day came to an end we all retired to the Green Man pub, for a drink and a tweetup. After that I went to the shops to stock up, and returned to my room at UStay, where I now await my daily Skype with my family :)

January 18, 2010 08:23 AM

Silvia Pfeiffer

Video Streaming from Linux.conf.au

You probably heard it already: Linux.conf.au is live streaming its video in a Microsoft proprietary format.

Fortunately, there is now a re-broadcast that you can get in an open format from http://stream.v2v.cc:8000/ . It comes from a server in Europe, but relies on transcoding here in New Zealand, so it may not be completely reliable.

UPDATE: A second server is now also available from the US at http://repeater.xiph.org:8000/.

Today, the down under open source / Linux conference linux.conf.au in Wellington started with the announcement that every talk and mini-conf will be live streamed to the Internet and later published online. That’s an awesome achievement!

However, minutes after the announcement, I was very disappointed to find out that the streams are actually provided in a proprietary format and through a proprietary streaming protocol: a Microsoft streaming service that provides Windows media streams.

Why stream an open source conference in a proprietary format with proprietary software? If we cannot use our own technologies for our own conferences, how will we get the rest of the world to use them?

I must say, I am personally embarrassed, because I was part of several audio/video teams of previous LCAs that have managed to record and stream content in open formats and with open media software. I would have helped get this going, but wasn’t aware of the situation.

I am also the main organiser of the FOMS Workshop (Foundations of Open Media Software) that ran the week before LCA and brought some of the core programmers in open media software into Wellington, most of which are also attending LCA. We have the brains here and should be able to get this going.

Fortunately, the published content will be made available in Ogg Theora/Vorbis. So, it’s only the publicly available stream that I am concerned about.

Speaking with the organisers, I can somewhat understand how this came to be. They took the “easy” way of delegating the video work to an external company. Even though this company is an expert in open source and networking, their media streaming customers are all using Flash or Windows media software, which are current de-facto standards and provide extra features such as DRM. It seems apart from linux.conf.au there were no requests on them for streaming Ogg Theora/Vorbis yet. Their existing infrastructure includes CDN distribution and CDN providers certainly typically don’t provide Ogg Theora/Vorbis support or Icecast streaming.

So, this is actually a problem founded in setting up streaming through a professional service rather than through the community. The way in which this was set up at other events was to get together a group of volunteers that provided streaming reflectors for free. In this way, a community-created CDN is built that can deal with the streams. That there are no professional CDN providers available yet that provide Icecast support is a sign that there is a gap in the market.

But phear not – a few of the FOMS folk got together to fix the situation.

It involved setting up Icecast streams for each room’s video stream. Since there is no access to the raw video stream, there is a need to transcode the video from proprietary codecs to the open Ogg Theora/Vorbis format.

To do this legally, a purchase of the codec libraries from Fluendo was necessary, which cost a whopping EURO 28 and covers all the necessary patent licenses. The glue to get the videos from mms to icecast streams is a GStreamer pipeline which I leave others to talk about.

Now, we have all the streams from the conference available as Ogg Theora/Video streams, we can also publish them in HTML5 video elements. Check out this Web page which has all the video streams together on a single page. Note that the connections may be a bit dodgy and some drop-outs may occur.

Further, let me recommend the Multimedia Miniconf at linux.conf.au, which will take place tomorrow, Tuesday 19th January. The Miniconf has decided to add a talk about “How to stream you conference with open codecs” to help educate any potential future conference organisers and point out the software that helps solve these issues.

UPDATE: I should have stated that I didn’t actually do any of the technical work: it was all done by Ralph Giles, Jan Gerber, and Jan Schmidt.

January 18, 2010 05:09 AM

Pia Waugh's hackergotchi

Pia Waugh

linux.conf.au 2010 – Day 1

Day one of linux.conf.au 2010 started with a fantastic video introducing Wellington in a very tongue in cheek fashion:

It turns out that Andrew and Susanne Ruthven, the core organisers of the conference are actually quite sick today, which must be heartbreaking for them given how much they have put into the conference. On the flip side, the rest of the team are doing really well, with Glynn Foster doing all the welcome and introductions this morning. So don’t worry Susanne and Andrew, it’s all going well! We miss you and hope you get better soon! :)

Glynn asked the audience members to stand up for previous lca’s they’ve been too which was interesting. There were only about 6 of us who stood us for the very first lca (CALU) in 1999 (although I didn’t actually get to 2001 and 2002 :/ ) . The numbers gradually grew, but it turns out about half the audience are attending lca for the first time, which is awesome!

40% of this years attendees are from Wellington, 40% are from Australia and 20% are from the rest of the world. Another interesting statistic is that 15% of attendees are women. I’m not sure, but I think it’s the highest percentage yet which is great! :)

Everyday there are podcasts happening from linux.conf.au so I’ll try to make sure I link to them all.

Radio NZ podcast on the linux.conf.au opening

The wireless here has generally been good, although I’ve had to reconnect a few times, so thanks very much to the networking team for keeping the juice flowing :)

Today we even had a few hours of sunshine, which was the first I’d seen in Wellington (I’ve been here since Wednesday). Yay!

Below are some thoughts about the talks I attended:

  • Haecksen & Linuxchix miniconf:
    • Sara Falamaki — “Happy Hackers == Happy Code”. Sara gave a great talk about some best practises, cool tools and other things that make hackers happy.
    • Elizabeth Garbee (ebeth) — “Through the Looking Glass - Free Software through the eyes of a teenager”. Elizabeth shares her experiences with FOSS, particularly as a teenager in the US public school system. “It turns out that any Unix-based machine brought into the school meant immediate expulsion, so we had to get that rule fixed!”. She also discussed how she is breaking the stereotype misconceptions held by her peers and teachers. Go Ebeth! Also, a funny quote from Bdale, “a GLUI is a GUI I’m stuck using”.
    • Joh Clarke — “Hackers, Crackers and Things That Go Bump in the Night”. Joh gave a great talk about security, things you can do to minimise your risk, and a bunch more. I’m going to go back and check out the slides later :) When asked what her favourite security tools were, she said there isn’t one, but experience is important. She also gave out a great poster with the title “Hackers don’t give a shit:” and then listing all the things hackers don’t apparently care about, like “About your Return on Investment” and such. It’s from KiwiCon 3 :)
  • I had a lovely lunch talking about open government, and the challenges facing government, politicians, and the public sector.
  • Business of Open Source miniconf:
    • Nic Steenhout — “Accessibility and FOSS”. Nic discussed the challenges around accessibility for people with a disability, as well as for people involved in FOSS who want their projects to be successful. In terms of reaching the major markets (government, education and medium/large business), accessibility support is mandatory, so if you want your project to be successful you must consider accessibility in your planning and development. He talked about what makes software accessible with examples like keyboard only options, alternate text, no dependence on a particular sense (eg - sound, colour, images).
  • Lightening talks:
    • Pamela Fox - Practical uses for Wave. Pamela gave a good talk about ways you can use Wave. Main points were event planning, learning new (programming) languages and collaborative documentation. Personally I can see that Wave gadgets could (and probably already do for many) make it something quite unique and useful, however I’m still struggling with it. I’ll continue experimenting and see where it goes :) At this point I kind of prefer IRC for chat, Twitter for microblogging, Wordpress for publishing and sharing and wiki’s for documentation collaboration. The collaborative doc devel in Wave is certainly much nicer than a wiki, but it also requires a Google account which simply isn’t open enough (nor publicly transparent enough) for most of my uses.

And now I’m off to the lca Tweetup, and then the Martial Arts BoF, both of which I’ll report on tomorrow. :)

UPDATE: There was a great writeup of the Haecksen & Linuxchix miniconf by Helen Varley Jamieson, make sure you click through to part 2 and 3.

January 18, 2010 03:52 AM

January 17, 2010

Pia Waugh's hackergotchi

Pia Waugh

linux.conf.au 2010 – registration day

Since starting my new job last April, I haven’t been blogging much because I’ve been so busy! I decided to take this week to make up for my slackness by trying to blog about each day of linux.conf.au, which is why I’m in Wellington, New Zealand all this week.

linux.conf.au, for those who don’t know it, is the yearly Australia/New Zealand Free and Open Source Software (FOSS) community conference. A bit of a mouthful, but basically it is one of the best technical and geeky conferences you’ll ever go to, seriously :) I’m probably biased due to being involved in that community for so long. However, when you look at how competitive the paper selection process is (this year there were 69 papers accepted out of 255 submissions), the quality of conference extras (like the Partners Programme, the Open Day and that it’s in a different city every year) and the fact that many of the world’s smartest geeks attend year after year from all around the world, you have a compelling case for awesomeness!

Every year it is run by a different group of volunteers who bring their own ideas and surprises to the mix. It is a great formula for continually keeping the conference fresh and interesting — although it does mean each team usually gets pretty burnt out. :/

Having been on the organising team for lca2007, I can completely understand the pressure and commitment of the current team. Given we arrived in Wellington a few days early I decided to volunteer to help over the last few days, so I’ve been running around playing gopher :) This year’s team have done a great job already, and are super-organised, so I think this week is going to be amazing!

Today the conference registration opened so people could get in early, get their passes and schwag (thanks Grant!), and catch up with other conference goers. It was great to catch up with a bunch of people, who I usually see either online or at lca :) The shirts are pretty cool (and apparently the printing actually breathes properly), and the name badges are fantastic as they’ve printed a tiny book inside so you have maps, schedules and other useful information at your fingertips. They’ve also included most other material on a USB key so no unnecessary printing, nice! They’ve also included a nice hat, to keep the rain and wind off I guess ;)

This is the first linux.conf.au not run in a University, so it’ll be interesting to see how it feels in a conference centre. I’ve checked out the building and although you’d expect a conference centre to feel a bit sterile, it is an interesting and warm building and I found it a great venue for lca. Today at registration it felt pretty chilled out and normal for an lca rego day :)

There are great coffee places close by, along with great shopping (clothes, games and gadgets). The conference is pretty much in the centre of town, there is plenty of sightseeing only a short walk away (if you haven’t been there yet, go to Te Papa. If you don’t have time for anything else, go to Te Papa). Check out the conference pages on Wellington for more.

Most looking forward to

I’m pretty excited about this year’s lca. Some of the things I’m most looking forward to are:

  • All the keynotes look great, in particular Mako and Nat.
  • There is a miniconf about openness in the public sector, where Andrew Stott (Director of Digital Engagement, UK), Laurence Millar (previous CIO of NZ Government) and many other interesting speakers will be presenting. I’ll also be giving a talk on the principles and practise of open government based on my experiences to date in Australia :)
  • The Haecksen and Linuxchix miniconf looks cool. Sara Falamaki’s talk is fantastic (I’ve seen a version of it before), and I’m also looking forward to Elizabeth Garbee’s talk and Joh Clarke’s one on security.
  • Open Day looks awesome this year, great job Jayne!
  • On Monday night is a Martial Arts BoF I’m really excited about! Always fun to share knowledge, particularly when there are weapons involved!
  • I’m sure I’ll find more things to look forward to as I finish reading through the schedule tonight :)

Finally, for those of you not attending linux.conf.au, you can follow it online with the live streaming, which will be linked every day from the schedule. Please note the links will be available during lca only (Monday to Saturday including the Linux Australia SGM).

Update: after some prompting, I should also add I alwayss love the Ghosts dinner where we catch up with other previous organisers of lca to share war stories :)

January 17, 2010 05:20 AM

Some pre-linux.conf.au 2010 sightseeing

At the beginning of this week Jeff and I travelled around the North Island of New Zealand with John and Silvia for a bit of sightseeing in the lead up to linux.conf.au 2010 as we drove down from Auckland to Wellington.

It was a lovely few days seeing the Rotorua mud baths and Mitai Maori culture, the amazing Art Deco towns of Napier and Hastings, and Te Mata Peak, where John surprised Silvia by proposing on the highest peak. It was a lovely moment, and one that I luckily (and accidentally) caught on camera :) Some photos are below. I’ll upload all the Art Deco town photos later (when I have decent bandwidth tomorrow).

We got into Wellington Tuesday night as Silvia and John were organising and going to the Foundations of Open Media Software (FOMS) conference from Wed - Fri, so I’ve been helping the lca2010 team out with their final preparations. It has been great to be in the action again, even just as a helper (I was on the organising team for lca2007) and I think this lca is going to be great!

The other great thing about an lca in Wellington is the opportunity to catch up with some friends in New Zealand, and also to do some Martial Arts training with friends and mentors. We are having a Martial Arts BoF on Monday night for anyone interested :) I’ll be taking a pole and some chain fire-twirlers to play with.

Pouty Jeff John and Silvia Silvia at the falls "I wanna honey icecream" Hello!!! john, Jeff and Silvia in New Zealand Pia and Jeff in New Zealand Chilling at the waterfall Mitai Chief at Roturua Mitai Family presentation at Roturua Hungry Silvia Newly engaged on Te Mata Peak Newly engaged on Te Mata Peak Newly engaged on Te Mata Peak The ring fits... the wrong finger! Do you, I do! Silvia is shocked Engaged and a wide open sky Aww, the newly engaged monkies

January 17, 2010 03:54 AM

January 16, 2010

Jeremy Visser

MP4 (for real this time) and Akamai support in Python-iView

You may have seen the workaround I presented to Python-iView users who wanted MP4 support, and wanted it now.

Also, (this has probably got to be the biggest duh moment for me in a year) I discovered Python-iView actually didn’t support those of you who use Akamai-based servers with iView. This includes all users who don’t have iView unmetered, as well as iiNet users. Sorry about that!

Well, now, if you type bzr pull, both MP4 and Akamai support work beautifully.

One thing to keep in mind is that the iview-cli programme has been changed to print out .flv and .mp4 extensions, which you mustn’t strip off when you paste it on to iview-cli --download. This is so it knows which version to ask for. No, they are not interchangeable — keep it what it prints out. (iview-gtk users don’t have to worry about any of this.)

Now all I need is Save dialog support for iview-gtk, and to package it up in .deb and .rpm formats, and it’ll take over the world! Oh, category support would be nice too.

January 16, 2010 10:30 PM

January 15, 2010

Michael Fox

RHEL 5.3 sar -v output continues to show an file-sz increase

Anyone out in the wide world web seen this before;

sar -v

16:50:01    dentunusd   file-sz  inode-sz  super-sz %super-sz  dquot-sz %dquot-sz  rtsig-sz %rtsig-sz
17:00:01        22144      5100     18581         0      0.00         0      0.00         0      0.00
17:10:01        22274      5610     18591         0      0.00         0      0.00         0      0.00
17:20:01        22631      5610     18832         0      0.00         0      0.00         0      0.00
17:30:01        22744      5610     18822         0      0.00         0      0.00         0      0.00
17:40:01        23233      6120     19172         0      0.00         0      0.00         0      0.00
17:50:01        23563      6120     19381         0      0.00         0      0.00         0      0.00
18:00:01        23702      5610     19395         0      0.00         0      0.00         0      0.00
18:10:01        24023      6120     19583         0      0.00         0      0.00         0      0.00
18:20:01        24093      6630     19522         0      0.00         0      0.00         0      0.00
18:30:01        24441      6630     19738         0      0.00         0      0.00         0      0.00

What I am referring too, is the file-sz value increasing, in fact on the system in question it continues to increase until it hits the system limit and then processes start to fail. Which is not what I want.

Any tips of trying to pin point the application that might be causing it and any associated commands. Platform is RHEL 5.3 x64, system is used to run three Oracle Database instances.

I have a suspicion against a possible application, and intend of having it shutdown at some point and then monitoring the output from the sar -v for several samples to determine if I see the same pattern as per the output above.

EDIT: I believe I think I found the cause, but won’t know until I can get approval to make the change and reboot the host. I had a feeling it might be something to do with nagios and some scripts that check various things. Still believe this to be the case, as I have found an issue with nrpe itself on the host. Will get the approval to make the changes and reboot. Then will post back outcome.

January 15, 2010 07:37 AM

January 14, 2010

Simon Rumble

Who should get my Haiti donation?


I've got a bit of a dilemma. I want to give some money for disaster relief in Haiti following the terrible earthquake. Problem is, none of the relief organisations active in Haiti meet my criteria for donations.

My criteria are:

  • Not a religious charity or affiliated with a religion.
  • Respects my request not to be spammed (email, phone or mail).
  • Does not use chuggers.
  • Does not spend inordinate amounts on administration and fundraising.

Oxfam uses chuggers and failed on the second item after my donation from the Indian Ocean Tsunami appeal. They also ignored my complaint about same.

Medecins Sans Frontieres, Red Cross also use chuggers.

Water Aid, much to my dismay as I respect the charity enormously, use chuggers.

Some will defend charities using these techniques, because the cause is too important. That doesn't wash with me because I expect a code of ethics to be applied across the organisation. I once had an argument with a telemarketer who called to solicit donations for Police Citizens Youth Clubs, along the lines of the government Do Not Call list excludes charities, as if that somehow excuses ignoring my expressly-stated preference.

Chuggers really got me annoyed when I worked on New Oxford Street in London and every time I set foot on Tottenham Court Road I'd be accosted by some slimebag raising money for him or herself in the guise of charity.

So can anyone suggest a charity worthy of my cash?

Contact me

January 14, 2010 01:06 AM

January 12, 2010

Mark Greenaway

Flexibility


Since I started martial arts, I've been frustrated by poor flexibility, particularly when trying to open my legs up for side kicks/guard etc. I've asked various people, including my instructors, what to do about this. I've gotten advice ranging from "Stretch more" to "Do yoga" and my personal favorite "Your joint could be calcified. It might never move". I spent a lot of time stretching when I was doing capoeira, and didn't seem to get very far, which was even more frustrating.
I know there are other people with the same problem, so I'll share what little I've learnt that is finally beginning to work for me.
  • Warm up first. Stretching cold doesn't do you much good. At least five to ten minutes of exercise to get the blood pumping.
  • Hold your stretches. Keep moving into the stretch until you can feel it, then hold it for at least ten seconds. Thirty would be better.
  • Dynamic stretches. When I was stretching a lot, I wasn't warming up and I was doing static stretching only. From what I've read, you'll get a lot more benefit if you do dynamic stretches, and both static and dynamic is best.
  • Stretch often. If you do a really long, intense stretching session once a week, and nothing else for the rest of the week, you'll get some benefit, but you'll get much more benefit from stretching more often. At the moment, I'm stretching every day.
  • Try to do a complete set of stretches. Many martial arts classes will have a set of stretches, often starting at the top of the body and working down. It's worth it to work through the entire set if you can remember them all or have a list. Flexibility of some parts of your body will depend on other parts, sometimes in surprising way for someone like me with a poor understanding of anatomy. It's best to stretch everything, within reason.
  • Strength and flexibility complement each other. You need strength to get your body into those stretched positions, and you'll find many movements easier (read: your strength is more effective) if you're flexible.
  • Be patient/don't give up. This is going to take some time.

Hope that's helpful to someone, and I plan to read back over it when I get frustrated.

January 12, 2010 11:35 AM

Michael Fox

Canon Ixus camera dies

After what has seemed to be about 7 years, our Canon Ixus camera suddenly died. It started to produce lines in the pictures, which is common with the CCD failure.

We replaced it with a Pentax E80, as found here. It’s a sweet little camera, and the 720p HD recording feature is nice.

January 12, 2010 08:44 AM

January 11, 2010

Ian Wienand

Salton (Sim)City

I was recently driving through the California desert and came across the Salton Sea. Long story short - it rained a lot and the Colorado River overflowed a bunch of dams and dikes meant to contain it and created a huge inland sea. Oops.

Some enterprising souls must have decided that despite the lack of any natural flushing dooming the sea to a salty, polluted existence, there was ripe opportunity to create a sea-side metropolis.

From the ground, it is a bit of a fun ghost town to explore. The typical "everything just abandoned" type thing. But when I came to geotag some photos I took there, I was quite astonished to see this.

Salton (Sim)City

That looks exactly like what I used to do in SimCity. I'd use the F-U-N-D-S cheat at the start to max out my money, then build my little empire with neat roads and school and harbours and whatnot — they've even got an airport! Then I'd press "go" and people would slowly move in to the residential areas, one house on one block at a time.

I guess poor old Salton City never made it past "turtle speed"!

January 11, 2010 05:26 AM

January 10, 2010

Robert Collins

Announcing testrepository


For a while now I’ve been using subunit as part of my regular development workflow. I would pipe test results to a file, use subunit to report on failures from that file, and be able to inspect all the failures at my leisure without rerunning tests or copy and pasting from far back in my history.

However this is a bit adhoc, and its not trivial to get good pipelines together – while its not hard, its not obvious either. And commands like tee are less readily available for Windows users.

So during my holidays I started a small project to automate this workflow. I didn’t get all that much done due to a combination of travel and coming down with a nasty bug near the end of my holidays – which I’m now recovering from. Yay health returning + medicines. If only we had medichines :) .

However, I managed to get a reasonable first release out the door this evening. Grab it from launchpad or pypi.

Testrepository has a few deps – all listed in INSTALL.txt. Folk on Ubuntu Lucid should be able to just apt-get them all (sudo apt-get install subunit will be enough to run testrepository). If you’re not on Lucid you can grab the debs manually, or use the subunit ppa (sudo add-apt-repository ppa:subunit), though I’ve noticed just today that that karmic subunit build there only works with python 2.5, not the default of 2.6 – I will fix that at some point.

Using Testrepository is easy if you are developing python code:

$ testr init
$ python -m subunit.run project.tests.test_suite | testr load
id: 0 tests: 114

This will report any failures that occur. To see them again:

$ testr last
id: 0 tests: 114

The actual subunit streams are stored in .testrepository in sequentially numbered files (for now at least). So its very easy to get at them (for instance, subunit-stats < .testrepository/12).

If you are not using python, you can still use subunit easily if you are using shunit, ‘check’ or ‘cppunit’. subunit ships with bindings for shunit and cppunit, and check uses libsubunit with the CK_SUBUNIT output mode. TAP users can use tap2subunit to get a subunit stream from a TAP based testsuite.

It’s still early days but I’m finding this much nicer than the adhoc subunit management I was doing before.

January 10, 2010 01:12 PM

January 09, 2010

James Purser's hackergotchi

James Purser

What I'm Going To Be Doing At LCA2010

This time next week, I'll be 30,000 feet over the tasman sea, winging my way to New Zealand for this years linux.conf.au.

I'm going to be presenting two talks at the Google Wave miniconf:

  • Building the Independent Wave
  • Harnessing the Wave

On Tuesday I'm going to be flitting between the Open and the Public Sector (yay scheduling changes has removed that particular conflict) and the Multimedia miniconfs.

During the conference proper the first talk I'm going to definitely hit is going to be Bdales talk on Flying Rockets with Free Hardware and Software.

Thursdays stand out for me is Drupal - Under the hood. Mind you I'm then conflicted. Do I want to catch half of Silvia Pfeiffers HTML 5 Video talk and then switch over to Jon Oxers FOSS In Spaaaaaace presentation? Decisions, decisions.

Fridays fun project would have to be FOSS Fun with the Wiimote by Rusty Russell. Of course this occures at exactly the same time the Open Source Assistive Tech which is an area I've recently become interested in.

All in all it's going to be a great conference by the looks of things.

January 09, 2010 10:14 PM

January 08, 2010

Ian Wienand

vi backup files considered harmful

Mark this one down as another in the long list of "duh" — once you realise what is going on!

Bug report comes in about a long running daemon that has stopped logging. lsof reports the log file is now named logfile~ and further more is deleted! This happens after a system upgrade scenario, so of course I go off digging through a multitude of scripts and what-not to find the culprit...

Have you got it yet?

Try this...

# lsof | grep syslogd | grep messages
syslogd    1376        root   15w      REG        3,1    99851    4605625 /var/log/messages
# cd /var/log/
# vi messages (and save the file)
root@jj:/var/log# lsof | grep syslogd | grep messages
syslogd    1376        root   15w      REG        3,1    99851    4605625 /var/log/messages~ (deleted)

vi is very careful and renames your existing file, so that if anything goes wrong when writing the new version you can get something back. It's a shame the daemon doesn't know about this! The kernel is happy to deal with the rename, but when the backup file is unlinked you're out of luck. Confusingly to a casual inspection your log file looks like it's there ... just that nothing is going into it. (oh, and if you tried that, you might like to restart syslogd now :)

Moral of the story -- overcome that finger-memory and never use vi on a live file; you're asking for trouble!

January 08, 2010 05:15 AM

Mark Greenaway

Dear Lazyweb

I'm working on some Python code at the moment to clean some data. I've been out of the loop for the last few years, and so I don't know what the state of play is with Python testing frameworks. What's the best one to use these days? Do people still use unittest or has the world moved on?

Thanks in advance.

January 08, 2010 02:53 AM

January 07, 2010

Erik de Castro Lopo

In Search of the Linux Laptop.

I'm shopping for a laptop to run Linux on and I'm finding it a really frustrating process. I would like a high end, small form factor machine like the Dell Studio XPS 13. I've seen one of these machines in the real life and held it in my hands. It seems to be excellent quality and have the right features at a reasonable price. Unfortunately, on the Dell Australia web site, there is no option to purchase this machine with Linux pre-installed.

My current laptop is a Dell Latitude X1, and my wife has a Dell too. At work I have a Dell Precision workstation. All of these machine run Linux 100% of the time and for every single one of these machines I had to pay for a Microsoft Windows license that was never used. As most people know, Microsoft uses a small portion of its revenue to fund attacks on Linux and Free/Open Source Software like the SCO debacle and the ramming of OOXML through the ISO standards process.

Considering Microsoft's malignant presence in the computer industry and the fact that I don't use their products makes me reluctant to buy a machine with Windows pre-installed. I want to buy a laptop where I get my operating system of choice and just as importantly, I know Microsoft doesn't get any part of the money I pay.

Looking around for laptops with Linux pre-installed in Australia I found VG Computing who have a range of laptops which can be shipped with Linux. Unfortunately, their order page says that they get the machines with Windows which they remove to install Linux. I do realise that as a small vendor, there is not much that VG can do about this, but as far as I am concerned, thats a fail.

Another company thats been around for ages is Pioneer Computers but their machines always seemed a bit old, a bit under powered and a bit over priced. Looking at that site just recently I found their DreamBook Light M73 which was close to what I was looking for. Ordering machines from Pioneer with Windows XP costs $89 more than the same machine with Ubuntu. Purchased with Linux, this is genuinely a Microsoft free machine.

Taking a trip out to Pioneer in Alexandria I was able to see one up close and I must say I was disappointed. Compared to the Dell XPS 13, the DreamBook felt flimsy and poorly constructed. On top of that the DreamBook had a smaller keyboard (much like the Compaq M300 I had years ago) than than the Dell and SiS graphics whereas I was really hoping for Nvidia. Another machine crossed off the list.

In the US, there are a number vendors that sell laptops with Linux. In late November 2009 I contacted two of them, System 76 and ZaReason Inc. System 76 wasn't willing to ship to Australia for warranty reasons. ZaReason will ship to Australia, but to take advantage of any warranty work, I'd have to ship the machine to and from the US which would be rather inconvenient.

Despite the concerns over warranty, by early December 2009 I had come to the decision to purchase a ZaReason Alto 3550 with a bunch of extras like faster CPU, more RAM and a bigger disk. Unfortunately, while trying to purchase it online I ran afoul of their payment system and by the time we'd figured that out they had run out of stock.

I contacted them and asked about the ETA for new stock. They said, Dec 19th, which came and went with no new stock on the website. I contacted them again and was told another week. A week passed with no new stock so I contacted them again when I was informed that their distributor doesn't have any more of the Alto 3550 available. I would go for the Alto 2550 but that has an Intel graphics chip whereas I was hoping for an Nvidia like in the Alto 3550.

So now I have to decide, do I go with the ZaReason Alto 2550 with the Intel chip and then worry about warranty issues or do I buy the Dell locally, where I know that the support and service will be excellent and then try to get a refund for the Windows license I don't need or want.

January 07, 2010 12:01 PM

Simon Rumble

Getting rid of my landline


I'm getting rid of my landline. And no, not just to avoid the Telstra tax, but because the people who call land lines have no social graces. The only people who call landlines are old people and telemarketers.

Telemarketers are scum and I don't want to talk with them, especially since our number is on the Do Not Call list and they're willing to ignore that (yes I know you're a charity, but that doesn't give you an excuse for rudeness).

Old people have no understanding of the social graces modern technology allows. They think the primary advantage of a mobile phone is that the caller can contact the callee anywhere, anytime. The real advantage of mobiles is the ability to switch it off and divert to voicemail, to deal with later. My Mum answers the phone during dinner, during her favourite (untimeshifted) TV shows, any time it rings. Hell, she's polite to telemarketing scum.

Old people don't get this. Yesterday I had one trying to call me while I'm at work. I rejected the call and diverted to voicemail. He hangs up without calling leaving a message. He calls the home phone, where Holly and Louis get woken up, massively improving everyone's mood. It goes to the answering machine. The caller doesn't leave a message. And redials the home phone. Then calls my mobile again.

Now granted, in a genuine emergency this might be reasonable, but if I pick up the phone in these circumstances and there's no emergency, don't get all offended when I tell you to stop being so rude and hang up.

But the oldies don't get it. They're PAYING to talk to you, so you should answer. They come from a time before texts, voicemail, answering machines. Hell my Mum's first home phone was a "party line" shared with half the street so they didn't even have privacy.

So I'm gonna reduce the options. I've had no luck getting the message through that serial dialling isn't on, so I'm dropping the home phone. I'll use voip for cheaper outbound calls. And no, if you're over 50 you don't get to have my work landline number either.

Contact me

January 07, 2010 12:43 AM

Bruce Badger

Microsoft wants to "help" with SVG

So, Microsoft suddenly takes an interest in the SVG standard:

Slashdot Technology Story | Microsoft Wants To Participate In SVG Development

This feels horribly familiar.

Microsoft 'helped' the Oasis group with the ODF standard by submitting proposals (which mysteriously were never put forward by Microsoft to be actually voted upon) and delaying the completion of the ODF specification. Once it was obvious ODF would be an ISO standard Microsoft abandoned the Oasis ODF project and, surprise, out of the blue submitted their very own MOO-XML proposal on an express track to being a ISO standard which they pursued by corrupting the standards process itself. So we now have two ISO document format standards, the open ODF and the Microsoft MOO-XML and a discredited ISO. Brilliant.

Is this recent SVG move by Microsoft the first part of a similar campaign? Up until now Microsoft have ignored or tried to talk down SVG. Having failed to kill it with marketing muscle, are Microsoft moving into a more active SVG killing mode? I would not be at all surprised.

Of course, Microsoft could just start using and supporting valid SVG without trying to meddle with the specification. That would be a positive thing.

January 07, 2010 12:39 AM

January 04, 2010

Ben Leslie

Weird things about JavaScript

JavaScript keeps throwing up interesting new tidbits for me. One that kind of freaked me out the other day is when functions and variables are created in a given block of code.

My expectation was that in a block of code, a sequence of statements, the statements would be executed in order, one after another, just like in most imperative languages. So for example in Python I can do something like:

 def foo(): pass
 print foo

and expect output such as:

 <function foo at 0x100407b18>

However, I would not expect the same output if I wrote the code something like this:

 print foo
 def foo(): pass

and in fact, I don’t. I get something close to:

  NameError: name 'foo' is not defined

Now in JavaScript, by contrast, I can do something like:

 function foo() { }
 console.log(foo);

and the console will dutifully have foo () printed in the log. However, and here comes the fun part, I can also do this:

 console.log(foo);
 function foo() { }

which blows my mind. I guess this really comes in handy when... nope, can’t think of any good reason why this is a useful feature. (I’m sure there must be a good reason, but damned if I can work it out. But this is only where the fun begins. Because the same thing works for variables!

Now usually in Javascript, if you have a function, and write code like:

 function foo() { 
     x = 37;
 }
 foo();
 console.log("x:", x);

You find out you’ve stuffed up, and accidently written to the global object because for some brain-dead reason when you assign to a variable that doesn’t exist in JavaScript it will merrily walk up the scope chain to the global object and plonk it in there. If you do something like:

 function foo() { 
     var x;
     x = 37;
 }
 foo();
 console.log("x:", x);

x will be undefined, and the x = 37 line will update the function’s locally scoped variable, and not mess with the global object. But now comes the part that screws with your head. You can just as easily write this as:

 function foo() { 
     x = 37;
     var x;
 }
 foo();
 console.log("x:", x);

and it will have exactly the same effect. Now it is fairly clear what is happening here; as a function is parsed any variables and functions are created at that time. It turns out though that although variables are created, they are not initialised, so code such as:

 var x = 12;
 function foo() { 
     console.log("x:", x);
     var x = 37;
 }
 foo();

will output x as undefined, (not 37, or 12). Now this behaviour isn’t wrong, or necessarily bad, but it was certainly counter to my expectation and experience in other languages.

January 04, 2010 10:43 AM

January 03, 2010

Robert Collins

More evolution-reliability-speed


Evolution recently moved to a sqlite summary db rather than a custom summary db implementation. Its great to see such reuse of code.

However, it’s not really a complete transition yet as I’ve had cause to find out today. I’ve blogged before about performance with the sqlite summary sqlite database. Today I was greet with a crash-on-startup bug which happily has a patch upstream already. Before I looked in the bug tracker though, I did some house cleaning.

I started with a 900MB folders.db. Doing a vacuum on the db dropped that to 300MB. It doesn’t appear to be something that evolution does itself. Firefox too appears to lack an automatic vacuum. sqlite is an embedded database, and its wonderful at doing that, but its not as install-and-forget as (say) PostgreSQL which does autovacuum. So an additional tip is vacuum your folders, e.g. with http://www.gnome.org/~sragavan/evolution-rebuild-summarydb, a helper script that will run vacuum on all your account summary db’s. Note that it *does not rebuild*, it solely vacuums, and as such does not add or delete (modulo bugs in sqlite) data to the summary database.

After the housecleaning, I checked that the sqlite database was in good condition:

sqlite3 folders.db
pragma integrity_check;

This returned a number of indexing issues, so I reindexed:

reindex;

Evolution now starts up and crashes in a fraction of a second - a big improvement. Finally, I started looking at the evolution code as I now was fairly confident it was a bug - it was in a sqlite callback function - and the column the function extracts data from (flags) is missing a NOT NULL constraint, but the code doesn't check for NULL - boom. From there to finding the bug report and existing patch was trivial.

And this is where my comment on reliability turns up: Evolution doesn't anticipate NULL flag values in its code, so why does it insert them into the database at all ? I suspect its due to some aspect of the incremental conversion to using sqlite summaries. More concerning for me is the possibility that there are many other such crash bugs lurking in the new sqlite based code.

There are possibly some clues as to the excessive table scans done by evolution in the use of a flags bitset rather than separate columns, but I haven't looked close enough to really say.

January 03, 2010 10:13 PM