Tensorflow item recognition

Leveraging Google’s Tensorflow Machine Learning libraries for item recognition in images is fantastically easy to get going. The below Dockerfile will setup a container with everything required and allow the user to feed a URL to a file for classification:

Dockerfile:
Download raw from here: https://pastebin.com/raw/mdJ225vp

Save the above into a file called “Dockerfile”.
Enter the directory where the Dockerfile is saved and build the Docker image:

Verify the Docker image:

Run the image. We’ll expose SSH on port 22 on the container as 2222 on the host:

Verify the local Docker gateway IP using the container ID (81f13360885f in this case – use “docker ps” to find out):

SSH and execute the image classification script (password: “tensorflow”):

This is the image we’ve pulled down:

And this is the classification result:

Not too bad 🙂 Tensorflow accurately detects that the image contains a scooter, a crash helmet and even sees the disk brake on the scooter! Try with any image URL to see what Tensorflow will classify your image as. Have fun!

Ubuntu 18.04.1 – Change hostname

While I’d normally use “hostnamectl set-hostname ” to modify the hostname of a Linux box, that doesn’t work for Ubuntu 18.04. The hostname will remain unchanged. Instead, modify as follows.

In /etc/cloud/cloud.cfg, modify “preserve_hostname” from “false” to “true”:

vi /etc/cloud/cloud.cfg

Modify hostname to the value you want in /etc/hostname:

vi /etc/hostname

Reboot

New iDRAC Ansible module: Version 1.1 released

The recently released version 1.1 adds streaming Server Configuration File (SCP) support, enhanced RAID creation and many other goodies! See the release notes here for details: Dell EMC Ansible modules version 1.1

Below are some installation instructions (in particular for those who have been using the original Ansible modules).

System used:
CentOS 7.5

Get the new Ansible modules for iDRAC off Github:

Get the Dell EMC OpenManage Python SDK off Github:

Remove some packages or we will run into errors during the SDK install:
NOTE: This will uninstall Ansible. Backup your /etc/ansible/hosts file prior to Ansible removal!

Install the Dell EMC OpenManage Python SDK prerequisites:

Reinstall Ansible:

Install wheel:

Build .whl file:

Install the newly built module:

Install the new Dell EMC Ansible modules for iDRAC:

All done! The new Ansible modules are installed.

Modifying /etc/ansible/hosts:
The previous version of the Dell EMC Ansible modules for iDRAC required the following format:

The new modules require some different variables:

Trying it out:

Working perfectly 🙂

Arduino powered LED sign

Using an Arduino UNO and 8 strips of Neopixel ws2812 strips (60 LED/m) I was able to recreate the awesome LED sign created by Josh here: https://youtu.be/k-SYMPO8-f8

Needed some text to test it and picked the cf push haiku by Onsi Fakhouri:

cf push haiku here is my source code run it on the cloud for me i do not care how”

 

Expanded sources.list for Ubuntu server 18.04

By default, if the new installer is utilized when deploying Ubuntu server 18.04, the /etc/apt/sources.list will contain only two entries. This doesn’t cover much, so to expand it to be a bit more useful we replace it with:

deb http://jp.archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://jp.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
deb http://jp.archive.ubuntu.com/ubuntu/ bionic universe
deb http://jp.archive.ubuntu.com/ubuntu/ bionic-updates universe
deb http://jp.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://jp.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
deb http://jp.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse

Note that this is for Japan (“jp”). Change this to “us” or similar to match your region if not in Japan.

Set network settings with netplan

If your system is using netplan for network configuration, change settings in “/etc/netplan/50-cloud-init.yaml”:

DHCP:

jonas@kube-c1-n3:~$ cat /etc/netplan/50-cloud-init.yaml
network:
    ethernets:
        enp0s3:
            addresses: []
            dhcp4: true
    version: 2
jonas@kube-c1-n3:~$ sudo netplan apply

Static IP:
jonas@kube-c1-n3:~$ cat /etc/netplan/50-cloud-init.yaml
network:
    ethernets:
        enp0s3:
            addresses: [192.168.10.103/24]
            gateway4: 192.168.10.1
            dhcp4: no
    version: 2
jonas@kube-c1-n3:~$ sudo netplan apply

Note that “gateway4” should only be set for the default route interface.

Atom editor window appearing outside of screen boundaries

If one disconnects an external monitor / projector the Atom editor window has a tendency to show up outside of the screen boundaries – just as if the external monitor was still attached. It took a while to figure out how to get it back again:

  1. Select the Atom window (using Alt-Tab or mouse)
  2. Open the context menu with Alt-Space
  3. Select move using “m”
  4. Press any of the arrow keys
  5. The Atom window will now be possible to drag back to the main monitor using the mouse

This was mentioned in a GitHub thread here: https://github.com/atom/atom/issues/6939

 

sudo without password

Add the following line at the end of /etc/sudoers (just after “#includedir /etc/sudoers.d”):

username ALL=(ALL) NOPASSWD: ALL

In my case:

#includedir /etc/sudoers.d
jonas ALL=(ALL) NOPASSWD: ALL

Check swap on Ubuntu

jonas@yggdrasil:~$ sudo swapon --show
NAME      TYPE       SIZE USED PRIO
/dev/dm-2 partition 11.9G   0B   -1
jonas@yggdrasil:~$

jonas@yggdrasil:~$ sudo free -m
              total        used        free      shared  buff/cache   available
Mem:          11925        9240         911         305        1773        2110
Swap:         12195           0       12195
jonas@yggdrasil:~$ 

Wipe USB drive in Linux by overwriting with random data

Handy way to wipe a USB drive in Linux using dd and /dev/urandom:

jonas@yggdrasil:~$ sudo dd if=/dev/urandom of=/dev/sdc bs=4k
dd: error writing '/dev/sdc': No space left on device
15163393+0 records in
15163392+0 records out
62109253632 bytes (62 GB, 58 GiB) copied, 2227.1 s, 27.9 MB/s

Of course, make sure /dev/sdX is the USB device you want to wipe. DD isn’t being referred to as the “Disk Destroyer” for nothing 🙂