/images/avatar_square.jpg

Portainer

Setup

From my previous post, I am using a docker folder structure like `/home/<username>/Docker/<container>` to store my data and docker-compose files. So first make the Portainer folder

1
2
3
cd ~/Docker
mkdir portainer && cd portainer
vi docker-compose.yml

Next we take the basic template from before and setup our Portainer container.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
version: "3"
services:
  portainer:
    container_name: portainer
    image: portainer/portainer
    command: -H unix:///var/run/docker.sock
    ports:
      - 9000:9000
    volumes:
      - ${PWD}/data:/data
    labels:
      - "traefik.enable=true"
      - "traefik.frontend.rule=Host:portainer.domain.com"
      - "traefik.port=9000"

So a few things I learned while setting up Portainer is that, in my last post, all my containers (traefik and whoami) were in the same docker-compose file. Therefore they used the same network interface. This isn’t true anymore as Portainer has its own file and we need to create a seperate network for all the containers to use together.

Setup Docker and Traefik using docker-compose

Introduction

Since I started using docker around a year ago, I’ve been using the same setup with Nginx and docker-compose. Lately this is not working as intended and I want to redo my docker setup. This is a great opportunity to try and use Traefik and an for me to document what I am doing.

Docker

I have a simple 2 CPU and 4GB RAM Ubuntu server running docker. Docker comes preinstalled from my VPS, so all I have to do it create a new user account, since I don’t want to use `root` for everything.

Using NeoPixels with Fadecandy

Introduction

Recently I have been tasked to create a small guide for using the NeoPixels together with the Fadecandy controller. We are going to use a single 8×8 NeoPixel board and a single Fadecandy controller.

Setup

Components

We are going to use very few components:

  • 1x Adafruit NeoPixel 8×8
  • 1x Fadecandy
  • 4x Jumper cables (male to male)
  • Header pins
  • Breadboard
  • Mini USB cable
  • Power Supply

Soldering

This is a one time thing and I just did it to make the NeoPixels easier to use later on.

Levenshtein Distance in C++

Introduction

When working with strings in programming, I’ve often had to compare them to other strings in order to find the same string. This is pretty simple using things like = or strcmp, but if the two strings are not 100% the same, but maybe have one letter different, a problem arise.

When working on my Bachelor thesis, I had a camera that scanned text strings and using OCR found the letters that matched the best. The OCR matched decently, but often one or two letters were not recognized correctly.

Build wirelessly to Android using Unity

I’ve been working on some Android application in Unity lately and with just two USB ports on my MacBook, it is annoying to remove the mouse and keyboard to plug in my Android device when building.

But this can also be done wirelessly using

1
adb

On Mac it is really easy to to get up and running. Using Homebrew just write:

1
brew install android-platform-tools

Plug in your Android device and write:

Programming the TelosB

Implementation

> Previous installation guide can be found here: Getting TinyOS to work on Linux using TelosB

USB connection

It is pretty hard to debug on the TelosB since it doesn’t have a native interface to read debug messages. It is possible to use the LED’s but they don’t show much. The TelosB has three LED’s and can only turn on or off, so the possibilities are limited.

Let’s try and set up a serial USB connection between the device and the computer, so we can read the debug messages on the screen.