Mike Meredith

Jun 292019
 

(And apologies for the misspelling; that words is spelt “civilisation” around these parts)

So I’m a Linux user and whilst I don’t often play games, an occasional break spending time slaughtering pedestrians (in GTA V) or conquering the world (in ‘Civilization’) can be fun.

Except that I have not been able to play Civilization V since I bought it through Steam – usually instant crashes although sometimes it worked well enough for a few turns.

Today I sat down and tried out various suggestions on fixing it until I found one that worked for me :-

  1. Right-click the game name in Steam.
  2. Select “Properties”
  3. Select “Startup options”
  4. Specify one of the following :-
    1. (Failed for me) LD_PRELOAD=’./libcxxrt.so:/usr/$LIB/libstdc++.so.6′ %command%
    2. (Failed for me) LD_PRELOAD=/usr/lib32/libopenal.so.1 %command%
    3. taskset –cpu-list 0-3 %command%

As implied, the “taskset” startup option appears to have worked for me. According to the site I nicked it from, Civilization has trouble running on systems with more than 8 core threads.

Tower Stonework
Jun 282019
 

Some of the reaction to Apple’s recent product announcements has been amusing to say the least.

First of all, let’s get the monitor out of the way first. If you think that monitor is ridiculously expensive, you’ve not looked at the specifications closely enough. Mid-range content creation monitors do cost that much – a quick look on B&H shows two monitors in the same price ballpark as the new Apple monitor, and the Apple monitor has higher specifications.

Not including the stand may seem a bit cheap, but frankly if you’ve already paid for a VESA stand that suits your working environment why pay for a stand that you will just throw away?

But yes, $1,000 for a metal stand is a little pricey. Given the negative reaction of the Apple fans at the show, I wouldn’t be surprised to see Apple drop that price (I also wouldn’t be surprised if they don’t).

Now onto the Mac Pro.

First of all, I should say that I’m not buying one – I don’t have the money, and whilst I run a somewhat underpowered workstation at work and a somewhat overpowered workstation at home, the strong points of the Mac Pro aren’t what I’m interested in and its weak points are where I’m interested in strength.

Is this expensive? Of course it is, but so is any high-end workstation – this isn’t your standard desktop PC! You can get a very roughly equivalently specced out Dell Precision 5820 for very roughly 2/3 the cost. But that comes with slower ECC memory and is much less expandable. You can also configure a Dell 7920 to a point that a Mac Pro looks cheap (it goes well above $100,000).

And you don’t buy such a system without expanding it beyond the base configuration.

This kind of machine is bought by professionals where the cost is less important than the return on investment. If it makes a professional just a little bit more productive, it can pay for itself within a year. Of the photographic (and video) professionals I watch on the tube, at least one is planning on buying three as soon as he can.

  1. Could you get a better specification ‘DIY’ machine with a budget of say $15,000? Probably although it may not be as expandable.
  2. Could you run macOS on it? Probably but it wouldn’t be supported by Apple (and that sort of thing is important in a corporate environment).
  3. Could you get next day fix or replace support for your ‘DIY’ machine? Almost certainly not; and again, when any downtime costs you money, that sort of thing is important.

There are however two criticisms I would make of Apple :-

  1. Storage. The new Mac Pro is severely limited in terms of storage expansion. In some ways that it is understandable; the sort of customer this is aimed for is likely to have a big fast NAS box somewhere. But I think they missed a trick by not offering a disk expansion chassis; perhaps an accessory tower that clips to the main tower doubling the width.
  2. No “Mac Pro Mini”. There is still an empty spot in Apple’s product line-up covering the mid-range tower territory – in fact exactly what those who criticise the Mac Pro are effectively asking for.
Cube On The Lines
Jun 272019
 

@AOC seems to have poured a dramatic amount of petrol onto the fiery discussion regarding Trump’s border concentration camps by simply calling them concentration camps.

No matter how many people assume that ‘concentration camp’ means a Nazi extermination camp, that is not what ‘concentration camp’ means. As one dictionary states :-

camp where persons are confined, usually without hearings and typically under harsh conditions, often as a result of their membership in a group the government has identified as suspect.

Although that is not from the full Oxford English Dictionary, I have checked with that definitive work and it’s definition agrees with the above. 

The relevant Twitter threads are filled with agreements and disagreements, and it is the later I’ll take a closer look at.

At least in some instances; more than a few consist of approximately “Well they’re illegal immigrants so they deserve it” which is so repulsively disgusting that the only appropriate response is a good slap.

The next objection is along the lines of: “You can’t call them concentration camps; that would be disrespectful to the 6 million Jews that the Nazis murdered”.

Funnily enough, it’s rarely mentioned that the Nazis also killed 11 million other people as well as the 6 million Jews. Almost as if there is a politically acceptable “holocaust denial” (strictly speaking the Holocaust is only the Jews; there isn’t an acceptable ‘cool’ name for the entirety of the Nazi crimes against humanity).

Let’s correct a few misconceptions about Nazi concentration camps (and there have been plenty of other concentration camps around the world) :-

  1. The concentration camps were first created in 1933 to hold political prisoners and union organisers. Those targeted for starvation rations, brutal treatment, and slave labour rapidly grew to include homosexuals, Romani, communists, socialists, the disabled, Poles, Slavs, Soviet POWs, and just about anyone who could be labelled “undesirable”.
  2. Jews were also targeted as soon as the Nazis came to power but weren’t sent en-mass to concentration camps until 1939 when they were forced to live in Jewish “ghettos” (effectively concentration camps).
  3. The extermination camps were set up in 1942 to speed up the “final solution”; approximately 90% of those killed at these extermination camps were Jewish.

There is also “But Obama did it first” (these camps were first instantiated in 2014 under the previous administration). This is distinctly reminiscent of the wailing child that gets caught with his or her hand in the cookie jar “But someone else did it first”. As I understand it, the scale of the previous administration’s camps was far less than now, but give me a time machine and I’ll still go back and tell off Obama.

Now back to our original topic. Is it fair to call the border camps ‘concentration camps’? They certainly meet the dictionary definition, and there are genuine reasons why the comparison with the Nazi concentration camps is entirely appropriate.

That is not to say that the border concentration camps are comparable to the Nazi concentration camps in 1944, but there are many disturbing parallels to the Nazi concentration camps in 1934. The time to stop these camps potentially evolving into something similar to the Nazi concentration camps of 1944 is now.

Spume on the Beach
Jun 082019
 

Quite a while ago, I “borrowed” some inscrutable zsh magic to automatically add the contents of ~/.ssh/known_hosts to a known_hostsi variable and used that variable to perform host name completion for certain commands. Once ssh started hashing the known_hosts file, this broke and I was busy at the time and stopped using it.

Ages later, I’ve fixed it and enhanced it a bit (and arguably made it a bit simpler). Not only does it pick up host names from the known_hosts file but also adds a list from lxc-ls and adds a few static host names (with one exception, not shown). This is done by adding the following to .zshrc :-

knownhosts=( $(sudo -b lxc-ls) )
#       Pick up a list of hosts from lxc-ls
knownhosts+="localhost"
#       Add static hostnames
for x in $(grep -v "|" ~/.ssh/known_hosts | awk '{print $1}' | awk -F, '{printf "%s ", $1}')
do
  knownhosts+=$x
done
#       Pull a list of hosts out of ~/.ssh/known_hosts excluding the Hashed hosts.
zstyle ':completion:*:(ssh|scp|sftp|ping|nmap):*' hosts $knownhosts
#       Commands to use a list of known hosts with

That probably is not the most efficient code, but does have the advantage that it is relatively easy to follow.

One addition is to add the option HashKnownHosts no to ~/.ssh/config.

There is of course a risk associated with disabling the hashing of host names within the known_hosts file. If your host becomes compromised, malicious code can use that file to obtain a list of hosts with which there is a trust relationship making it easier for an attacker to pivot through your network.

Jun 052019
 

On previous occasions (yes that does mean more than once) I have messed around with the network configuration of containers to get :-

  1. A consistent behaviour.
  2. A fixed IPv4 address with no DHCP configuration (this one is easy).
  3. A fixed IPv6 address with no autoconfigured global addresses (this one has been tricky)

This turns out to be relatively easy providing that you configure the addresses within the container rather than within the container configuration. At least it looks good to go so far (I’ve been mistaken in the past).

The container configuration is quite simple :-

lxc.net.0.type = veth
lxc.net.0.flags = down
lxc.net.0.link = br0

Note that the bridge interface (br0) may be different. Also note that there is no lxc.net.0.ipv4.address, lxc.net.0.ipv4.gateway, lxc.net.0.ipv6.address, or lxc.net.0.ipv6.gateway.

The configuration within the container is dependent on what userland you are running, but for Debian (and Ubuntu if you’re not using Netplan) :-

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 10.0.0.34/16
    gateway 10.0.0.1

iface eth0 inet6 static
    address 2001:0db8:cafe:dead:0000:0000:0000:3eb/64
    scope global
    gateway 2001:0db8:cafe:dead:0000:0000:0000:0001
    privext 0
    accept_ra 0
    autoconf 0

Not sure quite which options are required but having all of “privext 0”, “accept_ra 0” and “autoconf 0” does mean no additional autoconfigured IPv6 addresses.

(And no the part number of this post isn’t anything more than a joke)