Poetry: Yggdrasil, Tree of Life

The word for “Equal Writes” in Belgrave for May was “Tree of Life”, so I settled on a Norse theme for it.

Yggdrasil – the Norse “tree of life”

Yggdrasil, noblest of trees, stands tall.
Branches spreading above the heavens,
three roots below to take the weight,
of an ash tree covering nine worlds.

The eagle above and the wyrm below,
a mutual hatred old and worn,
kept alive by squirrel Ratatoskr,
relayer of insults and slander.

Asgard, Jotunheim, Niflheim,
Gods, Giants and the land of Hel,
three lands connected by three roots,
of a tree rooted in imagination.

By Asgards root three Norns stand,
“Past”, “Present” and “Future” in our tongue
weaving the threads of life,
forever deciding all fate.

Odin, spear pierced all father,
hanging nine long nights upon the tree,
sacrificed to himself,
for wisdom, for literacy, for runes.

And then the end comes and Ragnarok rages,
Yggdrasil shudders and groans,
Gods die, the world burns and sinks.
Two survivors only emerge,
from this literal tree of life.

First experiences with Dell XPS 12 9Q33

My new work laptop is a Dell XPS 12 9Q33 which has an Intel Haswell CPU in it – I can haz hardware transactional memory! It’s also got 8GB RAM, 256GB Samsung SSD and a multitouch touchscreen which will swivel around to form a tablet type device. 🙂

Dell XPS 12 screen rotation to form tablet - linked from Extreme Tech

Of course the first thing to do with this new machine was to install Kubuntu 13.10 as Dell will not ship these without the Windoze tax. So far I’ve got to say it’s been pretty painless, everything works out of the box and the only niggles I’ve found so far are:

UEFI hangs if I have a Kogan 64GB USB3 stick in one of the USB3 ports

Well the solution is don’t do it then. I’ll see if I can figure out how to report this as an issue to Dell.

The Linux i2c-hid driver currently doesn’t properly handle the touch screen and trackpad – both work but the trackpad is detected as a PS2 mouse

This is fine for me, I’m happy to just use the trackpad as an old-school mouse and be able to use the touchscreen should I need to. If you really want to use the trackpad and don’t care about the touchscreen then you just need to blacklist the i2c-hid kernel module and reboot. There is an existing Ubuntu bug on Launchpad about this, but it’s an upstream kernel issue.

The WLAN kill switch (FN+F2) is not recognised

This is probably the most annoying one, and I’ve not (yet) got around to reporting it as a bug. You can work around it from the command line by with: rfkill block all

Things I like:

  • A great screen, 1920×1080 and really sharp
  • A nice fast SSD, bonnie++ measured over 400MB/s block write and over 600MB/s block read using btrfs
  • Small – my previous Dell laptop was a Latitude Z600 which was nice but very wide
  • Haswell CPU – latest Intel goodness
  • low power – powertop reports it getting down to 5 to 6 Watts when it’s idling (with the screen on at 60% brightness)

Seems quite promising so far!

pv: a handy replacement for cat when piping large amounts of data into commands

If you’re ever in the situation of needing to pipe a large amount of data into a program and would usually use cat or just redirect from a file, but would like some idea of how long it may take, then may I recommend to you the “pv” command (packaged in Debian/Ubuntu/RHEL/etc)?

For instance, here is restoring a 9GB MySQL dump into a MariaDB database:

root@db3:/var/tmp# pv db4.sql | mysql
 570MB 0:02:06 [5.01MB/s] [>                                   ]  5% ETA 0:34:28

Suddenly you’ve got the data rate, the percentage complete and an ETA so you can go off and get a coffee whilst it works..

How to delete lots of programs in MythTV, easily

I realised I had over 60 episodes of Get Smart recorded which I was never going to get around to watching, so I wanted to delete them quickly. I had a quick poke at MythWeb but that didn’t seem to have the functionality but a quick google revealed this forum post which says:

When in select recording to watch, mark the recording with a backslash “/”.
Mark all that you want to delete.
Press M to bring up the Recordings list menu.
Select playlist options
Select Delete

Works like a charm!

There’s also Craig’s set of command line tools that can assist with this: http://taz.net.au/mythtv-tools/.

Poetry: Limerence

The word for the February “Equal Writes” meet up was Limerence, so I did a Limerence limerick. 😉

A young man afflicted with limerence
didn’t think it made much of a difference
that the object of his desires
wouldn’t return the fires
thus failing to match limerences inferences

Limerence was coined in 1977 by Dorothy Tennov as a de-novo word. In fact in an interview with The Observer newspaper that same year she wrote:

It has no roots whatsoever. It looks nice. It works well in French. Take it from me it has no etymology whatsoever.

PGI ARM OpenCL compiler gone, first victim of nVidia purchase?

Last August PGI announced an update to its “PGI OpenCL Compiler for ARM” (PGCL 12.7), but if you go looking for that on the PGI news page you won’t find it. In fact if you go to their products page and go to the link for the “PGI OpenCL Compiler for ARM” you’ll find it’s gone too..

For the record that part of the products page currently looks like:

PGI Compilers and Tools for Mobile and Embedded Platforms

PGI OpenCL Compiler for ARM
PGCLâ„¢ is an OpenCLâ„¢ framework for compiling and running OpenCL 1.1 embedded profile
applications on the ST-Ericsson NovaThorâ„¢ U8500 and follow-on platforms using a single
ARM core as the OpenCL host and multiple ARM cores as an OpenCL computing device

The interesting thing is that this has happened recently, Google’s cache of the news page (dated July 25th 2013) still has the announcement listed:

 The Portland Group Updates its OpenCL Compiler for Multi-core ARM

Portland, Oregon
August 21, 2012
Latest PGCL includes automatic generation of NEON/SIMD instructions

The Portland Group® (PGI), a wholly-owned subsidiary of STMicroelectronics and the leading
independent supplier of compilers and tools for high-performance computing, today announced
the release of PGCL 12.7. PGCLâ„¢ is the PGI OpenCL framework for multi-core ARM-based
Systems-on-Chips (SoCs), currently available on ST-Ericsson NovaThorâ„¢ platforms. PGCL includes
a PGI OpenCL compiler for multi-core ARM CPUs as a compute device and complements OpenCL
for GPUs. 

So something changed in the last week, oddly around the same time that nVidia announced it was buying PGI..

Poetry: The Earth Moved

The topic for the December 2012 Equal Writes group at Belgrave was “The Earth Moved”, for which I wrote this poem:

The Earth Moved

Short, brief shakes of quakes
Bring people onto the streets
Waves to the shore
Fear, panic, sadness

Slow, imperceptable movement
Plates grind against each other
One pushing the other down
To be recycled

Magma from melted rock reborn
pushes up through the crust
Volcanoes erupt
Building new land

Elsewhere two plates collide head on
Neither able to give way
The pressure becomes to much
Land buckles into mountains

Rain falls on far hills
Each drop excavating tiny holes
On rock that seems immutable
Wearing down over ages

In a few billion years
The Sun will grow large and red
The Earth will boil away
and move out into the Universe

Our small pale blue dot gone
and all it ever contained
Star stuff returning to space
eventually, maybe, to be reborn

Disable SpamCop reporting in SpamAssassin

If you’ve been using SpamAssassin and have been reporting to SpamCop then you’ll have found overnight that you got a heap of bounces back saying things like:

<devnull@prod-sc-app7.sv4.ironport.com> (expanded from
    <spamassassin-submit@spam.spamcop.net>): unknown user: "devnull"

It turns out that the spamassassin-submit@spam.spamcop.net appears to be something that the SpamAssassin developers set without consulting with SpamCop, and SpamCop have just been blackholing those reports for an unknown amount of time. Last night it went away and so now IronPort are rejecting them which was how I learnt of this. I’m not impressed by what the SA developers did her, it should have required you to put in a registered SpamCop address and not reported if that wasn’t set.

I’ve disabled my SpamCop reporting by commenting out this line in /etc/mail/spamassassin/v310.pre on my Debian mailserver:

loadplugin Mail::SpamAssassin::Plugin::SpamCop

If you use SpamAssassin and don’t have a registered SpamCop account you’ll want to do the same.

Speeding up Digikam’s face recognition (with risks)

It’d been a while since I’d last told Digikam to scan my collection for faces, and having just upgraded to 3.2.0 I thought it was about time to have another shot at it. However, I’d noticed it was taking an awful long time and seemed to only be using one of the eight cores on this system (Ivy Bridge i7-3770K running Kubuntu 13.04) so I thought I’d see if simply taking advantage of OpenMP could improve things with multithreading.

To do that I just started a new konsole and (as a first step) told OpenMP to use all the cores with:

export OMP_NUM_THREADS=8

Running digikam from that session and starting a face scan showed that yes, it was using all 8 cores, but not really to a great amount. Running iotop showed it doing about 5MB/s in reads and latencytop showed that it was spending most of its time in fsync(). Now that’s good, because it’s making sure that the data has really hit the rust to ensure everything is consistent.

However, in this case I can rebuild the entire face database should I need to, and I have about 66GB of photos to scan, plus I wanted to see just how fast this could go. 😉 So now it’s time to get a little dangerous and try Stewart Smith’s wonderfully named “libeatmydata” library which gives you a library (surprise surprise) and helper program that lets you preload an fsync() function that really only does return(0); (which, you may be interested to know, is still POSIX compliant).

So to test that out I just needed to do:

eatmydata digikam

and suddenly I had 8 cores running flat out. iotop showed that Digikam was now doing about 25-30MB/s reads and latencytop showed most of its time waiting for things was now for user space lock contention, i.e. locks protecting shared data structures to stop threads from stomping on each other and going off into the weeds. Interestingly the disks are a lot quieter than before too. Oh, and it’s screaming through the photos now. 🙂

WARNING: Do not use eatmydata for anything you care about, it will do just what it says in the name should your power die, system hang, universe end, etc..