No ads? Contribute with BitCoins: 16hQid2ddoCwHDWN9NdSnARAfdXc2Shnoa
May 232017

I woke up this morning to the news of the Manchester bombing this morning; learning about what was going on from a forum that had attracted some of the more rancid members of the far right. Who were busy blaming this atrocity on all muslims, but also on Syrian refugees; all this of course before anyone knew any facts because facts are irrelevant to the bigoted far right.

And a particularly nasty piece of work has labelled the victims “sluts” and “whores” (I’ve linked to a site that discusses his comments in order not to give him any extra ad revenue).

Now I am not in the habit of being sympathetic to any religious group – they all believe in imaginary friends. But they’re people and in many cases my fellow countrymen, so when a gang of pathetic little chickenshit cowards labels all muslims as terrorists, it is time to call them out on their bigoted bullshit.

Yes the evil scum who set off the bomb was a muslim; one born in Britain and not a Syrian refugee.

But :-

  1. It is almost certain that some of the 60 ambulances that attended were crewed by a muslim or two.
  2. It is almost certain that some of the police who were there helping people out were muslims.
  3. It is almost certain that some of those who opened their homes to accommodate stranded
  4. Some of the taxi drivers who turned off their meters and offered free lifts to those stranded were muslims.

Of course Mancunians of all faiths and none rallied around and helped out, but as muslims were being painted with the terrorism brush, it seems reasonable to highlight that many of those helping out were muslims.

May 202017

I just love messing around with run-time languages that I know relatively little about (and if your sarcasm detector isn’t flashing red about now, take it out and give it a good talking to).

The problem detailed here is something that you are unlikely to encounter unless you get into weird stuff like running an odd-ball window manager, aren’t content with the version of said window manager distributed with your Linux distribution, and are used to re-compiling things from scratch.

It all started when I upgraded Ubuntu on my work machine (to Zesty Zapus). The window manager version was upgraded from 3.5 to 4.0, which broke on my configuration file (3.5); not a big problem I thought, as I had already upgraded my window manager at home to 4.1 and reconfigured the configuration file. I copied the updated configuration file from home into place.

And it failed. Apparently I use 4.1-isms within the file. As I was not happy about tinkering with the file to downgrade it (in a language I know relatively little about), I decided to re-compile Awesome 4.1 instead.

Which failed with a weird error :-

» awesome --version
awesome v4.1 (Technologic)
 • Compiled against Lua 5.3.3 (running with Lua 5.3)
 • D-Bus support: ✔
 • execinfo support: ✔
 • xcb-randr version: 1.4
 • LGI version: [string "return require('lgi.version')"]:1: module 'lgi.version' not found:
	no field package.preload['lgi.version']
	no file '/usr/local/share/lua/5.3/lgi/version.lua'
	no file '/usr/local/share/lua/5.2/lgi/version.lua'
	no file '/usr/local/share/lua/5.3/lgi/version/init.lua'
	no file '/usr/local/share/lua/5.2/lgi/version/init.lua'
	no file '/usr/local/lib/lua/5.3/lgi/version.lua'
	no file '/usr/local/lib/lua/5.3/lgi/version/init.lua'
	no file '/usr/share/lua/5.3/lgi/version.lua'
	no file '/usr/share/lua/5.3/lgi/version/init.lua'
	no file './lgi/version.lua'
	no file './lgi/version/init.lua'
	no file '/usr/local/lib/lua/5.3/lgi/'
	no file '/usr/lib/x86_64-linux-gnu/lua/5.3/lgi/'
	no file '/usr/lib/lua/5.3/lgi/'
	no file '/usr/local/lib/lua/5.3/'
	no file './lgi/'
	no file '/usr/local/lib/lua/5.3/'
	no file '/usr/lib/x86_64-linux-gnu/lua/5.3/'
	no file '/usr/lib/lua/5.3/'
	no file '/usr/local/lib/lua/5.3/'
	no file './'

Which had me stumped for a while, and it turns out that DuckDuckGo didn’t have an obvious fix (one of the reasons for writing this).

Eventually I figured out that awesome was not finding the LGI module (I can be slow at times) which was odd because it was definitely installed. However it turns out that it was installed in /usr/share/lua/5.2/lgi. So despite having lua 5.3 installed, extra lua modules can only be seen if you have lua 5.2 installed?

The “fix” for this was to create an environment variable telling LUA to search for files in rather more places before starting Awesome :-

export LUA_PATH="/usr/local/share/lua/5.3/?.lua;/usr/local/share/lua/5.2/?.lua;/usr/local/share/lua/5.3/?/init.lua;/usr/local/share/lua/5.2/?/init.lua;/usr/local/lib/lua/5.3/?.lua;/usr/local/lib/lua/5.3/?/init.lua;/usr/share/lua/5.3/?.lua;/usr/share/lua/5.2/?.lua;/usr/share/lua/5.3/?/init.lua;/usr/share/lua/5.2/?/init.lua;./?.lua;./?/init.lua"

This was created by running lua from the command line and running print(package.path) to display the default setting, and adding the 5.2 equivalent for many elements.

As to whether it works or not, well I cannot be sure (I’m not going into work on a weekend just to check if the window manager fires up), but Awesome itself seems happy with the result :-

» awesome --version
awesome v4.1 (Technologic)
 • Compiled against Lua 5.3.3 (running with Lua 5.3)
 • D-Bus support: ✔
 • execinfo support: ✔
 • xcb-randr version: 1.4
 • LGI version: 0.9.1

So it can find LGI, but whether it can do anything useful with it remains to be seen!

May 172017

It may not be very funny, but the funny thing about WannaCrypt is that it is somewhat of a failure! Unless the authors are spectacularly stupid (not entirely impossible incidentally), they have no way to recover their ill-gotten gains. The pile of looted bitcoins they have acquired is fully visible, so any attempt to use those coins will almost certainly result in them being tracked down – they have attracted too much attention.

Which is another aspect of the WannCrypt malware – it has highlighted the vulnerability (MS17-010) and caused a huge vulnerability hunt. Which is causing those who wrote other malware (such as Adylkuzz) to gnash their teeth, because otherwise their malware would have quietly worked away in the background. The malware authors behind Adylkuzz have probably made more money than the WannaCrypt malware authors … and may well get away with their loot too.

Which is why other malware authors “wannacry” – the attention that WannaCrypt has gotten has ruined MS17-010 for them.

May 172017

It seems rather strange when you discover it, but Windows Update sometimes lies about what updates have been installed. I am not sure how often this happens, but it does happen from time to time. Which with WannaCrypt rampaging around is somewhat unfortunate.

What seems to happen is that Windows Update gets confused about what patches it has installed – it’s internal database gets corrupt. One possible fix for this is to remove the database :-

net stop wuahuserv
cd %systemroot%
ren SoftwareDistribution SoftwareDistribution.old
net start wuauserv
rd /s/q SoftwareDistribution.old

When using Windows 10, you may well have to start (net start wuahuserv) Windows Update services before stopping them. Once you have removed the directory, the next time you run Windows Update in the gooey, it will spend some time rebuilding it’s database and hopefully will then pick up the missing updates. No promises but this worked on at least one server that had unacknowledged missing patches.

Of course without a proper vulnerability scanner it may be tricky to determine when Windows is lying about being fully patched. The best bet is to assume it is lying whenever something like WannaCrypt comes along.

The other possibility is to look into something like Autopatcher which is intended for offline updates – you can download the Microsoft updates and use the tool to patch Windows computers from the downloads.

May 082017

Many of us know about the story of King Canute (or probably Cnut) and his attempt to hold back the tides. Although we English typically only give one king the suffix “the Great” (Alfred), Cnut himself is also known as “the Great” (perhaps more for his non-English endeavours). So it seems a touch unlikely that such a king would imagine he could control the waves by verbal command; if anything he might want to make fun of his courtiers by trying the impossible to indicate he was human.

It is a popular tale with the Church too – it’s a great example of over-weaning pride which is one of the seven deadly sins. And Cnut as a Dane, probably was not the most popular king with the church, as Danes had only recently given up going viking and pillaging churches and monasteries (in the words of a fictional viking: “they gather all their gold and silver into one building. And then so conveniently mark those buildings with crosses.¨).

But there is a far more prosaic explanation for the tale in which the Church uses a human disaster to laugh at people’s efforts to improve themselves.

Before the raw sewage pollution in the 19th century put an end to it, the South coast was home to a massive oyster fishing industry that existed in the region for at least two thousand years. Indeed, oysters were one of the staple food sources for the poor until the 19th century.

One of the ways that shallow water oyster fisheries can be improved is by building dyke-like structures that allow the high tide in, but keep some of the tide from escaping at low tide. As it happens, a place in West Sussex called Bosham happens to be ideal for this, and there is supposedly much archaeological evidence to show that these “dykes” had been built there repeatedly over the centuries.

As anyone who lives by the sea knows, to build sea structures, you have to over-build and even then, exceptional storms will cause damage, and there is also archaeological evidence to show that the “dykes” at Bosham were washed away in exceptional storms every few hundred years.

As it happens, Bosham was a royal estate in the time of Cnut (one of his daughters is supposedly buried at the pictured church), and it is all too likely that an exceptional storm would have destroyed the oyster beds whilst Cnut was holding Bosham. Thus the Church had an opportunity to use an economic disaster to poke fun at king they were probably not too fond of.

May 072017

I have been reading a book on chivalry and knights recently, and every so often wanted to shout at the historian writing it, but as he isn’t listening to me I guess I’ll just have to shout at you instead.

The main irritating claim was that the equipment of knights put entry out of the reach of ordinary ‘soldiers’. It is true that the need to provide a highly trained and specially bred horse or two, did significantly increase the cost of entry into the ranks.  But this is an overly simplistic analysis.

For a start, if we look at the fighting men of the Anglo-Saxon forces facing the Normans in 1066, many (perhaps even most) would have been equipped with just a spear and shield. But a wealthy core would have been much better equipped with costly mail armour, swords, etc. Many within this core would have quite easily afforded the additional cost of a destrier or two.

In addition, many of those ‘core’ soldiers would have been members of the royal household guards, or similar groups for other magnates. And it is likely that some or all of their equipment would have been provided by their lord. For example, look at William Marshall who whilst he was born into a privileged family certainly did not have the resources to pay for his own equipment; whilst his climb to become regent was exceptional and he was undoubtedly both exceptionally talented and exceptionally lucky, he would have almost certainly had to rely on being gifted his first destrier.

Yes this is after the Anglo-Saxon era (although right at the beginning of the chivalric era), although there is no reason to suppose that similar arrangements could not also take place in the Anglo-Saxon period. It is simply common-sense – an earl would want to impress his king with the number of followers he could provide, and a well-equipped follower is better than a poorly equipped one.

Onto chivalry itself: It’s a bit of a myth. Knights were generally expected to behave in a certain way with other knights and others of similar or higher rank, but lower ranks? The ordinary people? They were not so lucky; the standard way of making war consisted of sieges of fortified towns (resistance would usually result in extensive looting, killing, and raping of the inhabitants), open battles, and ravaging the landscape – burning crops, buildings, and generally making a nuisance – this later was intended to have an effect on the wealth of the lords of the territory, but the effect on the common people is predictable – death, rape, and impoverishment.

And impoverishment generally led to famine. As an example, during the Thirty Years War, overall 25-40% of the population of German fell victim to famine.  Whilst other wars and battles may not have caused such widespread famines, there was undoubtedly a huge death toll in payment for the entertainment of kings and knights.

And knights did not always act “knightly” towards their high-born prisoners either. Once a king (or other leader in battle) raised the dragon banner, no prisoners were taken including prisoners who would otherwise be worth a considerable amount in ransom.

So the much vaunted “chivalry” was a conditional code of honour that could be discarded according to circumstances.

On the other hand, the myth of chivalry did have some use – it fed the inclination leading to the laws of war and conventions on warfare such as the Geneva Convention(s). If anything the myth was more real than the reality of chivalry.

May 012017

With an election coming up it is time to try and persuade those who do not vote to get out there and vote. One of the main reasons people give for not voting is because none of the candidates are inspiring enough. Well it is all very well waiting for a candidate that inspires you, but you could well be waiting for a very long time.

Probably the second biggest reason for not voting is that with the first past the post system, there are places where voting for anyone other than the leading candidate is seen as a wasted vote. Nothing could be further from the truth! In almost every “safe” seat, if everyone who didn’t vote for the leading candidate all voted for an agreed alternative, then the seat could easily go to that alternative candidate. For example, the Arundel and South Downs constituency was won with 32 thousand votes in a constituency of nearly 100,000 – easily enough to overturn the Tory majority.

As to tactical voting: It can be summed up by selecting the candidate you would most like to lose (such as the Tory candidate), and picking the candidate most likely to defeat them.

Anyone can find out the last few election results (and a whole lot more) at Just look at the last few elections and vote for the second placed candidate (providing that’s not a Tory or a UKIP candidate of course!). And don’t keep punishing the Liberals for breaking their promises; they don’t break their promises any more than the others.

Of course this may mean you are not voting for the candidate you want, but under the present voting system it makes more sense to vote against the candidate you dislike the most. Yes this is crazy, but so is using a voting system first used in the medieval era!

Apr 302017

Short answer: NO!

One of the infuriating things I come across is the notion that final salary pension schemes are generous; it seems that a generation of Tory propaganda has persuaded people that such schemes were wildly over-generous and completely affordable. Of course many of those doing the persuading are taking advantage of those “generous” pension schemes.

What it is easy to forget is that many of those final salary pension schemes collapsed because successive governments turned a blind eye to the private sector looting pension scheme surpluses and panicking when the surpluses turned into deficits. In other words when pensions were profitable they were affordable, but whenever a company suddenly had to contribute more than it expected they were suddenly too expensive.

Now don’t get me wrong – with increasing life expectancy there are problems with funding pension schemes, and we can decide that they are too expensive, or not. But if a pension scheme was perfectly reasonable in the 1970s, it doesn’t suddenly become overly generous in the 21st century.

As it is, we have “decided” that rather than share wealth out amongst the working-class, it should be kept in the hands of the already wealthy.

Of course we could always decide to revisit that decision and spend more time thinking about it.

Apr 302017

Despite how long I have been running Windows in virtual machines (as far back as Vmware Workstation 1.0), I have never gotten around to looking at the virtio network interface – except for naïvely turning it on once, finding it didn’t work, and turning it off – so I decided to have a look at it. I was prompted to do this by a suggestion that emulating the NIC hardware as opposed to simply using a virtual communications channel to the host would hurt network performance. Good job I chose a long weekend because I ran into a few issues :-

  • Getting appropriate test tools took a while because most of the tools I know of are very old; I ended up using iperf2 on both the Linux main host and the Windows 10 guest (within the “Windows
  • The “stable” virtio drivers (also called “NetKVM”) drivers didn’t work. Specifically they could send packets but not receive them (judging from the DORA conversation that was more of a DODO). I installed the “latest” drivers from Note to late readers: this was as of 2017-04-30; different versions may offer different results.
  • Upgrading my ancient Debian Jessie kernel to 4.9 on the off-chance it was a kernel bug turned into a bit of an exercise what with ZFS disappearing after the upgrade, and sorting out the package dependencies to get it re-installed was “interesting” (for small values of course). No data loss though.

I ran two tests :-

  1. sudo nping –tcp -p 445 –count 200 –data-len 1280 ${ip of windows guest) – to judge how reliable the network connection was.
  2. On the Linux host: sudo iperf -p 50001 
  3. On the Windows guest (from within the Ubuntu-based environment): sudo iperf -p 50001 -c ${ip of Linux host}
Device nping result iperf result
Windows guest (virtual Intel Pro 1000 MT Desktop 1 lost 416 Mbits/sec
Windows guest (virtio) 0 lost 164 Mbits/sec
CuBox running ARM Linux n/a 425 Mbits/sec

Which is not the result I was expecting. And yes I did repeat the tests a number of times (I’ve cheated and chosen the best numbers for the above table), and no I did not confuse which NIC was configured at the time of the tests nor did I get the tests mixed up. And to those who claim that the use of the Ubuntu environment screwed things up, that appears not to be the case – I repeated the test with a Windows compiled version of iperf with much the same results.

So it seems despite common sense indicating that a NIC “hardware” custom designed for a virtual environment should perform better than an emulation of a hardware NIC, the actual result in this case was the other way around. Except for the nping result which shows the loss of a single packet with the emulated hardware NIC.

Apr 222017

May continue to cut public sector salaries year on year.

May continue to pillage the public services we all use to pay for the bankers mistakes.

May continue to make tax cuts for the rich.

May continue to cut welfare payments to the poorest families in our society causing a huge increase in child poverty.

May continue to stumble and fumble around during the Brexit negotiations in all likelihood resulting in a poor deal for Britain.

May continue to antagonise the non-English countries of the union increasing the likelihood of a break-up.

May continue to add powers to the secret policemen until we’re living in a police state (hint: it’s not that far off).

Time to look past May to June and choosing anyone other than May.