Good smells for software packages #inductiveautomation #ignition

There is a concept of ‘code smells’

any characteristic in the source code of a program that possibly indicates a deeper problem.

I think there are some good smells for packaged software. Like fresh chocolate chip cookies.

The first and greatest is a great big button that says download to try it out, bonus points if I don’t have to register.


Letting you run the full suite for two hours at a time is also nice.

The nice fresh smell is to know how much the software costs without requesting a quote.

ignition pricing.PNG

Bonus points, an active forum




failed to initialize container mounts: failed to create overlay fs for container: mounting overlay solution GreenGrass

Greengrass currently doesn’t support Raspbian Buster or the latest kernel update for Raspbian Stretch, kernel 4.19.57. The Greengrass team is investigating what it will take to support kernel 4.19.57.

Before running apt-get upgrade be sure to block the latest kernel:

sudo apt-mark hold raspberrypi-bootloader
sudo apt-mark hold raspberrypi-kernel



Oracle Query Hint

Normally Oracle query hints will be written using /*+ ... */syntax. One day I spent many hours trying to figure out why one of my queries took forever to finish if I ran it from QlikView and took only a minute if I ran it from Oracle SQL Developer. Turned out that QlikView by default would strip out comments from SQL statement and treat /*+ ... */ as a comment.

This “feature” is discussed here.

Solution is easy – just use –+ syntax instead if you need to pass a query hint. Of course it is a very easy thing to forget!


NtCreateFile(\Device\VBoxDrvStub) failed: 0xc000000034 fix

Went to the C:\Program Files\Oracle\VirtualBox\drivers\vboxdrv directory, right clicked on VBoxDrv.inf and selected Install. I then went back to my console and typed ‘sc start vboxdrv’


Balluff + PRTG +IoT



So the BNI EIP-508-105-Z015 (IO-LINK) has a nifty way of exposing the sensor data through some json provided on an internal web page. The article I read had this as webaddress/dprop.jsn

but in my version it ended up being http://webaddress/ports.jsn (go figure?)

I had previously read some PRTG articles where they discuss some simple IoT

Great, so how can we get the data? PRTG has a nice builtin python plugin system.


So, we get to go searching for the python ‘custom sensors’ directory. It happens to be

C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\python on my box.

So, I ran into a weird wrinkle. I wanted to read the json coming off the website, modify it and then return it through the plugin. Anytime I read some json data I think the plugin would think I was done and trying to return. So, my quick hack around this was to just use simplejson for parsing the json from the /ports.jsn and then json for the ‘result’

To install simplejson into the prtg python environment do this

Download into PRTGs python directory
cd C:\Program Files (x86)\PRTG Network Monitor\Python34\
cd Scripts
pip install simplejson

So now my hacked together plugin looks like this


Basically, read in the json from the Balluff using simplejson, iterate through the ports, split out the hex values, convert them to a temperature (in this case).

Then finally, add the device and sensor to PRTG


Handy tool, Excel-SQLizer/

combine NT security with user name and password #qlikview section access

The trick is in the *

You can add reducing fields after the NTNAME


Section Access;



      ADMIN, ADMIN, welcome, *



Section Application;