ben.eficium is the blog of Ben Slack, citizen and principal consultant at Systems Xpert.
All posts are Copyright © Ben Slack on the date of publishing.

11 December 2019

A response to one Mike O'Connor

A family member recently sent me an opinion column (paywalled) from the Courier Mail's Mike O'Connor (twitter - @mikeandraine).

Here is my response to his article line-by-line.

> Dissent is dying in ‘modern’ Australia
> Mike O’Connor October 21, 2019 8:00pm
> There are times when I feel like a stranger in my own country, the urge to
> scream in frustration all but overwhelming.

Fair enough. You are lucky you can vent your frustration in such a public forum. It's good to talk about your feelings. 

> My problem is that I’m not a believer. I don’t believe in man-made climate
> change and shake my head in bemusement at the people who are presently
> running through the streets screaming “climate emergency.” 

Your choice. It's a free society. Every argument against global warming has been thoroughly repudiated. Proving that it is wrong would require a revolutionary, overturning, breakthrough in physics and chemistry. The biggest discovery since Newton. And no skeptic or denier has come up with such a thing. You don't like the man-made global warming theory, you go out and prove different. Then have it peer-reviewed and published. If you do so, I assure you, it will be taken seriously. Personally, I don't think you're up to it, but if you have a go maybe you'll get a go. 

> We now live in an age in which if something is said often enough by
> self-interested parties then it must be true. 

This has always been the case. It's not a new thing. Societies have often and always come to believe fallacies (e.g. Easter Island). However, 500 years ago we began what is termed the Scientific Revolution. This gives us the power to question fallacies in a way undreamt of by our ancestors. We have capabilities to investigate and establish fact like no other society before us. The scientific method is an incredible tool - use it.

With regards to self-interest, I agree we must always be skeptical of claims by vested interests, like the fossil fuel industry for example.

> Anyone who attempts to voice a contrary view is howled down and branded 
> a “denier.”

For around 25 years the arguments of deniers were dealt with in a sober and respectful manner by the scientific community. After that long, when there is still resistance in face of all evidence, there is bound to be anger. If it's reasoned argument with facts and figures, it's not “howling”. This is an exaggeration.

What you require is not a "contrary view", it is contrary science and fact. Well, go out and get it.

> No one dares to be different. Such is the desperate need to be accepted and
> on-trend that we will happily go along with any point of view which will be 

> favourably viewed by social media.

You dare “to be different”. And you are published in the 5th best-selling newspaper in the country which has a monopoly in the 3rd biggest city. You, of all people, can't complain about being silenced or ignored. It's a non-sequitur.

> The intellectual laziness of the masses is as sad as it is tragic. We have
> become a nation of unthinking morons which unquestioningly accepts the 

> views of self-anointed “experts” without wondering if their shouted
> declarations that the end is nigh might just be driven by the urgent need
> to justify their existence and get their hands on another research grant.

The "intellectual laziness of the masses" is not as new thing, we haven't become such, we've just found new ways of expressing it. Such as whingeing opinion columns devoid of fact or reasoned debate.

As for experts, my response to this could fill a book. I'd refer you to Philip Telock's wonderful work, Expert Political Judgement - there are some areas of expertise that are indulgent and self-inflating and some that are not. The long-standing accusation that climate science is a self-perpetuating fraud has never been proven. Quite the opposite. You believe it? Go out and prove it. Publish your proof in a peer reviewed journal of cultural criticism.

> To be a climate denier is to suffer eternal damnation but it is perfectly fine
> to be a democracy denier as witnessed by the fact that there are large
> numbers of very noisy people who still can’t accept that Donald Trump is
> President of the United States and Scott Morrison Prime Minister of
> Australia.

You are damned because you are wrong. You can't prove your beliefs, they are just faith. And faith isn't good enough with the future of the planet at stake.
I agree that there is a large section of the left who don't accept that Trump won under the rules. I agree this is "denial", foolish and anti-democratic.
I have not ever heard anyone question the legitimacy of the Coalition's 2019 victory. A Google search did not find any. Please provide examples.

> They weren’t supposed to win. How did this happen? Apparently the
> Russians rigged the US elections but how Morrison managed to end
> up in The Lodge remains a mystery. The man’s a Christian, for God’s
> sake, and doesn’t believe that the world is about to end. Go figure.

Russian interference in the 2016 US general election is undeniable. How much effect it had is questionable. I agree that it is overstated in many quarters.

Morrison is in the Lodge because he won an election. To restate - I can find no examples of anyone denying this. Please provide examples.

A Google search of people proclaiming the world will end because the PM is a Christian also yielded no results. Please provide examples. I have seen criticism of him allowing the media to video him worshiping inside his church. This is unprecedented and inappropriate - a violation of church/state separation that would have been unthinkable in past generations of leaders.

> Nor do I believe that people who attempt to lie and cheat their way into the
> country should be allowed to settle here and struggle to understand why
> people like Minister for Home Affairs Peter Dutton is pilloried for doing
> what he is paid to do — protect our borders.

I agree "people who attempt to lie and cheat their way into this country" should not be given asylum or refugee status. Again a Google search to find people who disagree failed to find any works or quotes. You seem to imply there are such people. Please provide examples. 

> My advice to those with bleeding heart tales who wish to live here?
> Get in the queue.

Your preference is the policy of the government and seemingly of the Australian people who keep voting in governments with this policy. I don't understand your point. 

Oh, and there really is no "queue". 

> Admitting that you admire Dutton for his forthrightness is, of course,
> akin to confessing to devil worship and not something you would
> dream of doing in the company of strangers lest you be set upon and
> tarred and feathered.

Your hysterical exaggeration for the purpose of (failed) humour aside, my problem with Dutton's approach to granting asylum and refugee status is with a) upholding international law, and b) the Orwellian fact the government lies about what the law is (e.g. calling people legally seeking asylum "illegals") and states it is upholding the law, yet it is not. He can be as forthright as he likes as long as he sticks to the law. 

> I also have no time for the United Nations, a multi-billion dollar club
> which boasts among its members some of the great hypocrites and
> pontificators of our time and which seethes with corruption.

The UN is a problematic body that needs reform to better identify and eliminate corruption. There are documented examples of corruption - also seen in other international organisations like FIFA or the Olympic body. Any body that comprises both rich and poor "seethes with corruption". That doesn't mean the UN is not useful. It does a lot of good work - The Declaration of Human Rights, WHO, UNITAS and many systems of international standardisation, for example. During the Cold War it was a useful forum for debate. It may have been partly responsible for stopping nuclear Armageddon.

You don't like the UN and the agreements and treaties they have developed that Australia has signed up to and ratified in law? Then campaign to have the ratified laws repealed and Australia to leave the UN. It's a democracy, you are free to do so. Go for it. You have a newspaper column for chrissakes. You are also free to join a political party and work your way into policy-making. Otherwise, I suggest whingeing will achieve nothing.

> Australia Day is three months distant so the non-indigenous among
> us must ready ourselves to be branded as white supremacists
> celebrating a bloody invasion.

Well, it's our ancestors that are being described as invaders with blood on their hands. They indisputably took other people's land and killed a lot of the former owners. So, from a credible point of view, they really were bloody invaders. If you disagree, prove the "terra nullius" hypothesis and prove there was no killing. 

I think claiming that some [you should really say whom] will brand white people white supremacists for celebrating Australia Day is overstated.

I think we need to make more room to acknowledge the dispossession of indigenous Australians. I think this will be psychologically useful for indigenous and non-indigenous Australians to keep building a better nation. Canada's example is instructive.

> I don’t buy it. Instead of wasting energy moaning about historical
> wrongs, tackle the alcohol, drug and sexual abuse and poor parenting
> that denies so many indigenous children a shot at a better life.

I agree that tackling the disadvantage and social problems in indigenous communities should be a priority over symbolic actions and gestures. Can we not do both at the same time though? At the moment we seem to be terrible at both.

> This is not a point of view that people publicly express because they
> know they will be denounced as being racists if they do so. So be it.

Yeah, probably. However, you have a newspaper column so you are better placed than anyone to prove that your views are not racist in (widely read) writing. Given your seeming inability to make an argument backed by facts, you might have difficulty even if you're right. Perhaps you should let someone else do it.

> Christmas is also coming but don’t mention Jesus or the birth of Christ
> lest in so doing, you offend someone and that would never do.

In the past few years the incidents that have comprised the tabloids' war on the "war on Christmas" have proved to be misstated, overstated, wrong or just plain made up. See Media Watch's January editions for the last 20 years.

> I’ll continue to live, then, in my own little offensive, racist, climate denier
> world but I’ve a feeling that I am not alone. Please feel free to join me.

It's still a free country. Go for your life, mate. See how many you get. Though with every poll saying a vast majority both believe in man-made global warming and believe we should take action on it, you are not going to get the “silent majority” you seek. That is delusional.

Perhaps you should pay more attention to things that are actually chipping away at freedoms in this country such as increasing, pervasive and unsafe surveillance (e.g. My Health Record, facial recognition systems outside airports), the creeping presence of "national security" concerns as excuses for not releasing information that has nothing to do with national security, secret trials and denying the accused evidence that may help their defence (Bernard Collaery and Witness K), selling our drivers licence photos to private companies for facial recognition purposes (in NSW), political interference in police investigations, police infringements of freedom of the press and intimidation of journalists, etc.

While your sub-editors seem to have a good grasp of spelling and grammar, the content fails the basic test of introduction, supporting evidence and conclusion. This is in the school curriculum from Year 3 and for many decades. You would have been taught such. It is not rocket science.

14 March 2016

FreeBSD cross-compiling with gcc and poudriere

I've been experimenting with Raspberry Pi using FreeBSD for a while now.

To build the ports I'm using qemu and poudriere on a dedicated build machine, as a) compiling on the rpi takes so long, and b) I have a few of them doing various tasks, so having a dedicated package server makes sense.

I've had to use the HEAD version of FreeBSD (currently 11.0-CURRENT) to get it working with the SD cards I bought to host the rpi OS.

My problem is getting a handful of ports to build with clang - the default C compiler for FreeBSD from version 10. The compile errors are happening with poudriere on the build machine and on the rpis themselves.

IMHO the move from gcc to clang was premature, but as a non-contributor to the FreeBSD project, I'm not complaining.

The offending ports that won't (or don't) build at time of writing are:


These are dependencies for a lot of other ports, so not being able to build them is a showstopper. No doubt there are plenty of other ports that won't build for the armv6 architecture with clang.

Via roundabout diagnosis, I discovered that all these ports do build with gcc but not with clang when compiling directly on one of my rpis. Hence the need to build using gcc.

So, the question then becomes - how do you build using poudriere and gcc? This is not trivial - as attested by the "Using gcc under poudriere" thread on FreeBSD Forums.

The solution suggested here by Mega56 is not ideal. Editing the poudriere port scripts with changes that shouldn't be in the master is never a good idea. For a start you'd have to make the edits after each upgrade, which would be a real pain.

The better solution I came up with was to install gcc in the poudriere model or root jail, a copy of which is made to a "reference" jail each time a poudriere "bulk" build is started. This is far easier than any of the other suggested solutions in the thread. Some of the suggestions, such as simply creating a new poudriere jail - won't work at all.

Then just add the USE_GCC?= yes variable into the Makefile for each port that requires gcc compiling. This has to be done every time you upgrade the ports, but if required you could easily write a script with sed to automate the task. For the two ports I am using this is not really worthwhile.

Getting the gcc compiler installed in the model jail is a complex process, but remember it only has to be completed once. It's set and forget.

The Details
This explanation assumes the following:
  • You've set up a qemu and poudriere cross-compile environment for the armv6 architecture. I used the instructions provided at Doug's Domain to get this set up. Big thanks to Doug Vetter - who is awesome.
  • You have read the man pages and basic doco for the qemu and poudriere ports.
  • My poudriere home is located at /home/poudriere, my jail is called "110armv6" (as I'm using FreeBSD 11.0-CURRENT) and I am using the "default" ports tree. Adjust the instructions for your own environment - am sure you can work out the detail.
Build the gcc packages
Rather than building the lang/gcc port inside the master jail we can use a standard poudriere build to make the packages. We can then install them in the master jail using FreeBSDs pkg manager. If there are other ports you'd find useful in the master jail, then add them also. I think Perl and Python are good candidates.

If you haven't already done so, you should probably get the latest ports tree for poudriere by issuing the following:

# poudriere ports -u

I use a port list file /usr/local/etc/poudriere.d/pkg.list for poudriere to compute bulk builds. I strongly recommend you do similar and ensure the line lang/gcc and any other ports you want in the master jail are listed in your equivalent file.

Issue the standard poudriere "bulk" command and gcc will build (under clang of course).

# cd /usr/local/etc/poudriere.d
# poudriere bulk -vv -j 110armv6 -f ./pkg.list

I always use the verbose debugging options -vv.

Hopefully your gcc port will build without issue. I have never experienced a problem with this step.

Set up the QEMU environment
The great thing about qemu is that once the environment is set up you can simply chroot to the poudriere master jail and all the emulation is handled under the hood.

However, you first have to mount a few directories and the device tree into the master file system in order to access a few dependencies. To do this I used the instructions "Using qemu-user to chroot and bootstrap other architectures on #FreeBSD" on The Ignorant Hack's blog. Big thanks to the Hack.

First, mount the device tree to the /dev folder in the jail's file system.

# mkdir /home/poudriere/jails/110armv6/dev
# mount -t devfs devfs /home/poudriere/jails/110armv6/dev/

Then we mount the packages folder so we can install from the poudriere built gcc packages we built earlier.

# mkdir /home/poudriere/jails/110armv6/packages
# mount -t nullfs /home/poudriere/data/packages/110armv6-default/All \

N.B. if you do a ports update and rebuild between these instructions, the symbolic link to the All packages directory will change, so you'll have to unmount and re-mount the packages directory in the master jail.

Install the package management tool in the master jail
We'll need to install the pkg package manager into the jail. Unfortunately, the jail does not have networking as is, so we'll have to get the package manually from the FreeBSD package site.

Get the latest package for the armv6 architecture. I've put it into the jail's /root directory, but it can go anywhere.

# cd /home/poudriere/jails/110armv6/root
# fetch

Now we can chroot to the master jail.

# chroot /home/poudriere/jails/110armv6

And install the FreeBSD package manager. We need to turn off signature checking also.

# cd ~

# setenv SIGNATURE_TYPE "none"
# pkg add -f pkg.txz

Install gcc into the master jail - note the actual package name will be whatever current version you've built earlier.

# cd /packages
# pkg add -f gcc-4.8.5_2.txz

And exit the chrooted environment.

# exit

Edit the port Makefiles
You need to add the USE_GCC?= yes variable into the Makefile for each port you wish to compile with gcc. Do this for the poudriere ports tree located at /home/poudriere/ports/default.

N.B. you need to do this on a port by port basis. Putting the generic instructions into /usr/local/etc/poudriere.d/make.conf does not work. You get the error Mega56 complains of in the post mentioned above, i.e.

====>> Computing deps for devel/binutils
====>> DEBUG: devel/binutils depends on devel/binutils
====>> Error: devel/binutils incorrectly depends on itself ...

Which is how I managed to Google that post (and come up with this solution) in the first place.

Build the ports with gcc
Poudriere should now build the offending ports with gcc. I issue the command to build each separately. This just avoids building everything else that may need updating listed in my pkg.list file.

For example:

# poudriere bulk -vv -j 110armv6 devel/libatomic_ops

Once you've successfully built the ports that require gcc compilation, you will be able to build ports that depend on them (with the standard clang compiler) using a standard poudriere bulk build.

Have some coffee
Or a cold beer. You've earned it and your Raspberry Pi should now be able to install your pre-built packages from your poudriere package server.

16 June 2015

My New Career

Following an excellent idea @rhythmnation posted on Facebook last night, I'm embarking on a new career of not doing crime. There is so much more to this business that not people-smuggling. You can extend it to almost any cash crime.

First up, I've invoiced the Attorney-General's department for not robbing the bank in my local shopping mall. Have made the terms COND (cash on non-delivery) as it seems this is their preferred operational method of settling invoices for services not provided.

I'm expecting a government officer with a big sack of cash to come round to my place anytime now. Should I invite him in for tea? Or is it best I keep the relationship purely business?

I have some questions for my accountant friends.

Do you think I can claim a tax deduction for any expenses I've incurred by not robbing banks?

Could I negative gear my investment in not robbing banks by claiming the amounts I don't steal as losses?