Archive for the Rant Category

Turing is dead, long live Turing!

Posted in Rant on June 17, 2017 by asteriondaedalus

God!  It had to happen.  Life becomes Science (as opposed to Art).

An Israeli mob is working with AI to provide a coding assistant that does more than complete function names – it is to scan Stack Overflow for code snippet suggestions!

I wonder if they are going to have it write sardonic blog entries as it discovers, over and over again, that the code examples at Stack Overflow do not work for the most part.  Or at least they are so narrow a “solution” they cannot be generalised.

What, by the way, does the AI do in my situation where perfectly good init.d script runs in console, does not run in service startup, and there is no solution provided (currently) on the Internet?

Sort of also reminds me of the AI goons who, at a party (and in a very Hitch Hikers Guide to the Galaxy kind of way), connected two AI conversation agents together.  The AI agents had been “trained” by hooking them into social websites (twitter, facebook et cetera) – to “train” them on human conversational style.  Within 5 minutes there was a tirade of abuse going both ways.  The AI scientists had “trained” Trolls.

Now, here comes the deep and philosophical.

The trend to “free” software has incurred a huge technical debt through the utter lack of software quality attributes.  I am, for example with the problems setting up my OPiZ for node-red and emqttd, suffering at the hands of lack of portability, usability and a smidgen of functionality.

What I am going through is old skool Through Life Blues.

The cost of Through Life aspects of software systems is about 80% of the full life cycle cost.  That is we spend 20% on development then a shit load more on keeping it going.

Much of that cost comes from un-codified knowledge.

So, the propensity to write code, comments are a “code smell”, produce no documentation, all of that increases the cost of Through Life Support.  Though the cost is in time an efficiency for me, it must be burning someone’s bottom line in the commercial sectors.

So, since there is no code comments, design documents or useful manuals the question begged is should there be?  The AI push for recovery of codified knowledge says yes since we are not denying its necessity.   However, we still feel the generation of the technical debt incurred by developers, but repaid by everyone downstream, is acceptable – somehow.

The problem is, of course, a quality attribute Adoptability (not in the ISO standard).  Adoptability is not to be confused with Attractiveness.  Adoptability might the decision point, based on the aggregation of all the facets of the software quality.

So, where is the benefit of AI trawling the coffers of sloppy code?

Where is the cost trade off against the waste going on versus the relatively small number of successes in the scheme of things?



Posted in Linux, Orange Pi, Rant, The Downside of software development on June 15, 2017 by asteriondaedalus


So, story up to this point was again I added the expansion board to my OPiZ.  That fragged the board somehow so that it had the weird side effect of not booting version of Debian server but happily still booted armbian.ord distro of Debian server.

Weird because orange.pi Debian server is derived (I think) from’s distro (at some point).

Weird because distro booted happily before fragging by inserting expansion board.  Weird because even if you took the expansion board out orange.pi distro would not boot from OPiZ any more.

Weider again was that once the expansion board fragged the baseboard, the distro could not be set with a static IP via nmtui on the OPiZ.  That was because, after fragging, nmtui would hang the distro whenever you tried going to the connections page.

Weird because you could happily set the hostname using nmtui??!!

So, go figure.  I thought to try nmcli.

From examples on internet it should have gone something like (for my setup at least):

root@house:~# nmcli con edit 'Wired connection 1'
nmcli> set ipv4.method manual
nmcli> set ipv4.addresses
nmcli> set ipv4.gateway
nmcli> set ipv4.dns
nmcli> save
nmcli> quit

However, quirk of Armbian is that there is no ipv4.gateway property.  Without it I had set up a static IP but could not get out to internet (no gateway).

I came across a probable back door route with the following;

root@house:~# nano /etc/network/if-up.d/gwconfig

if [ "$IFACE" = "eth0" ]; then
 route add default gw
root@house:~# chmod a+x /etc/network/if-up.d/gwconfig

You can then just reboot and then every time you boot “route add default” sets your gateway.

Except in Armbian, of course, that route command does not work with those parameters!


However, while the help file never said “gateway” there was some discussion in the help for nmcli on “addresses”, and in other places, that talked about “hops”.

So, AH HA moment (reaching back to that neuron containing networking 101).

So it turned out the fix was not obvious but is:

root@house:~# nmcli con edit 'Wired connection 1'
nmcli> set ipv4.method manual
nmcli> set ipv4.addresses
nmcli> set ipv4.dns
nmcli> save
nmcli> quit

Notice the gateway is set in address now after the static IP for the OPiZ.

To check this you can use with “route -n”, you should see something like:


The garbage preceding it is the node-red shutdown down – sweet.

So, now I have static IP setup on my OPiZ – not the happiest route … ha ha … get it?

Now all I have to do is sort the stupid node-red and emqttd problem where, despite quite straight forward steps, neither will start for me as services.  That is the next step as discussed I want the OPiZ to start up with things a blazing.  Although, there might be a backdoor route through startup scripts.

Close but no bananna

Posted in MQTT, Orange Pi, Rant, The downside of Opensource on June 14, 2017 by asteriondaedalus

So here is where I got to getting emqttd to start as a service on Armbian Debian server running on OPiZ:

Jun 14 08:29:42 house systemd[1]: Starting SYSV: emqttd is mqtt broker....
-- Subject: Unit emqttd.service has begun with start-up
-- Defined-By: systemd
-- Support:
-- Unit emqttd.service has begun starting up.
Jun 14 08:29:42 house emqttd[1282]: /etc/init.d/emqttd: 1: /etc/rc.d/init.d/func
Jun 14 08:29:42 house emqttd[1282]: starting emqttd...
Jun 14 08:29:43 house run_erl[1321]: Erlang closed the connection.
Jun 14 08:29:58 house systemd[1]: emqttd.service: control process exited, code=e
Jun 14 08:29:58 house systemd[1]: Failed to start SYSV: emqttd is mqtt broker..
-- Subject: Unit emqttd.service has failed
-- Defined-By: systemd
-- Support:
-- Unit emqttd.service has failed.
-- The result is failed.
Jun 14 08:29:58 house systemd[1]: Unit emqttd.service entered failed state.

So, to get here first you need the instruction for setting emqttd as a service at emqttd site.

The script line “. /etc/rc.d/init.d/functions” (within /etc/init.d/emqttd) will try to source a file you don’t have in your Armbian debian server distro for OPiZ.  It appears a standard file so I used mkdir to create the /etc/rc.d/init.d directory and downloaded a copy of functions.  This may or may not be the source of any knock on problems I am currently having.

In any event.

What the emqttd build does not do is move the binary to /opt directory for you, and there are no words to direct you to do this in the emqttd help, so the help file either expects you “know” (how we hate priori knowledge yes) that was their install solution OR the build clapped out and didn’t move the files or install properly – and did not report same.

So, you will need to copy the files (built into _rel directory) into /opt with (from your emq-rex directory):

mkdir /opt/emqttd
cp -r _rel/emqttd/* to /opt/emqttd

To get the error above just type in:

service emqttd start

Note, I also tried the service installation for node-red to no avail.  It appears to hook into services via a slightly different route (who would have thought).  But, alas, the following line ends quietly with no error report.

systemctl start nodered.service

But, browser does not connect to anything.  Rebooting has no effect.  The following provides the obituary:

systemctl status nodered.service


Why the time frame difference?

Posted in Rant on June 13, 2017 by asteriondaedalus

I am about to give up building emqttd on my OZiP installation (for the moment).  I am having to run make over and over again, during the DEP stage, as it keeps loosing contact with github.

We have seen that before haven’t we kiddies.

Github chokes when southern hemisphere is asleep as northern hemisphere wakes up.

Sort of says that there is no large scale global collaboration going on – or the load would be similar between hemispheres.


Posted in Orange Pi, Rant on May 30, 2017 by asteriondaedalus


Now I have node-red running on the Orange Pi Zero (OPiZ) I thought I would try something to sort the problem I was having on the ODROID-C1 in any event.

That is, I have a google api account for the calendar widgets for google calendar to drive the running of the sprinkler system (I relented and stayed on the PC version which grates with the wife because of the electricity the PC burns).

In any event, for whatever reason,  the google API call-back was against localhost so it should have worked on whatever host was logged into the account.  However, the picture is confused I guess since it is a client API.  So what is the client?  The Web browser browsing into the node-red server OR the node-red server?

The other side was I wasn’t sure the MAC address of the “client” wasn’t being picked up in the background as part of registered “client” identification.

So, I thought, since I was running a server but not desktop version of debian on the OPiZ then I would install a text based browser and log into google developers that way, create a new api licence from the OPIZ, and then voila!

However, I tried using apt-get to install Lynx but gave up after a dozen attempts.  Tried Links instead.  Slow but I guess it has to parse then discard a shit load of junk.

I pointed Links at the google developer’s login page.

It wouldn’t let me in.

I thought I had forgotten my password so I reset the google password but it wouldn’t let me in.

I opted to go in via other credentials.  It sent me an sms, I entered that in and then it prompted me for a password and then wouldn’t let me in.

This went on a while but I tried an option that allowed me to put in at least one of my old passwords.  I used my new password, it told me that was the correct password and gave me the option to continue.

I opted to continue.

It the prompted me for a passwo ….

Yep, it wouldn’ t let me in.

I am now no closer to finding out if setting up the API from the target server fixes the problem.

Against my better judgement I might relent and put the desktop version of Debian on the OPiZ – just so I can get at a browser.

The real problem, for whatever reason, is that apt-get crap.  I went to download erlang to find I couldn’t install some of the dependencies AND, for whatever reason, wget will not find the erlang download site.  I checked on my PC and it is definitely up.  I use ping on the OPiZ but it doesn’t seem to get out BUT then apt-get was fine to remove then download Links (as an experiment).

To top it off the OPiZ keeps dropping its connection to Telnet over the LAN, even though I setup a static IP.

I will have to built up a serial cable as I am convinced that there is something flacky about the ethernet setup (which might account for apt-get cracking up all the time in mid-stream).

Pity, the OPiZ seems really fast – flashed up the node-red sooooo quickly.

I need the erlang on for OPiZ to act as the MQTT server as well.

Make up your minds people!

Posted in Rant on May 30, 2017 by asteriondaedalus


Keep it private while telling every fracker where you are, but yes don’t trust your private data to the cloud driven by not one company that has independent security assurance certification.

LBE=2, DFR=-1

Posted in Rant on December 12, 2016 by asteriondaedalus

I just got notification from LBE that they have refunded the money for the Genuino 101 that neither of my computers can see it on any of their USB ports.

DFR are still insisting I delete IDE, re-install drivers, all the things I have already done ad nauseum.

Not to mention I had the FAIL with the Intel Curie Arduino 101 factory recovery flash kit which will not upload via USB on the DFR Curie Nano on either of my computers or on any of their USB ports.

No JTAG around so all too hard (not going to invest $80 on a JTAG gadget just to fix the problem with the Curie).

So watch yourselves with DFR as they are not really interested in returning things that should work but don’t.  Go figure I did not have the experience described on the Getting Started page, and no-one at Arduino or Intel can help.  So, given the hours put in and the systemic problem encountered I am now officially bored with Intel and their maker adventure.

I note also that DFR have pulled their CurieNano (so-called not in stock).  Coincidence?