Docker a nice tool for developers

Docker is the world leading software containerization platform. I tried using GitLab as versioncontrol system and Jenkings as continuos integration system but the system turned out as not completly useful.

In that way a colleague told me about a system he wants to create based on Docker.

What we want:

  • a git system under ouer control
  • a continuos integration that is flexible and customizable
  • every system available per SSL connection

Git Service -> GoGs – Go Git Service

It’s a simple self-hosted Git servise.

  • easy to install, cross-platform, lightweight and OpenSourse

It contains everything importent to develop something in collaboration.

https://gogs.io/

Continuos Integration -> drone

It’s a continuous integration platform build on container technology. Every build run will be triggerd by a push to a repository if it’s linked to drone.

  • flexible and customizable: by setting up a config file you tell drone what is to do

https://github.com/drone/drone

SSL -> NGINX as reverse proxy

It’s a fine powerfull tool and a nice reverse proxy. With it we are able to provide the GoGs and the drone to the internet more secure and with SSL encryted.

We will colleced the SSL/TLS certificates from a Let’s Encryt service.

https://www.nginx.com/ https://letsencrypt.org/

Weiterlesen

How To Import VCF (VCard) in Ubuntu Touch

This sounds unbelievable, but is indeed true: You cannot import a .vcf file into Ubuntu Touch in 2016 – three and a half years after the first version of the OS was published!

This AskUbuntu thread is one of the only results – but it doesn’t work with .vcf files containing multiple contacts.

I botched together this little script, that splits up your VCard file and imports each contact into Ubuntu Touch.

You can run this using the Terminal App from the Ubuntu store / OpenStore or via adb shell from your computer. Connect your phone via USB and enable Developer Mode.

#!/bin/bash -e

# Ubuntu Touch import script for VCard Files, public domain.
# First parameter is file to be imported (e.g. `./import.sh my_contacts.vcf`)
CONTACTDB="Personal" # change this to Persönlich if device language is German

awk ' /BEGIN:VCARD/ { ++a; fn=sprintf("card_%02d.vcf", a); print "Writing: ", fn } { print $0 >> fn; } ' $1

for $VCARD in card_*
do
	echo "Importing: ${VCARD}"
	syncevolution --import ${VCARD} backend=evolution-contacts database=${CONTACTDB}
	rm ${VCARD}
done

You might have to change the variable $CONTACTDB to suit you language. The correct term can be found when clicking the gear icon in the Contacts app.

The awk command comes from this StackExchange thread – no copyright claimed.

Base65536: The (not very serious) Successor of Base64

Base64 is an encoding scheme, which allows the safe transmission of files between ascii- and EBCDIC-based computer systems, which were popular in the fifties and sixties. Although no computer today uses the EBCDIC character set, base64 is still used for encoding binaries on the internet. Email attachments are encoded this way, and sometimes you can find small images, which are directly embedded in the source code of the web page.

So what is base65536?

Weiterlesen

No Facebook messages/chats with mobile browser ? A detour … :-)

This week Facebook started to block the usage of Facebook messages/chats on mobile devices just with the browser – Facebook forces their „products“ (=customers) to use their messenger-App (with all the device-rights this app wants…).

A little detour allows to further use FB messages/chat with your mobile browser 🙂

Screenshot_20160619-093144
Facebook forces users to use the messenger App

Weiterlesen

Vessel.com – can this alternative to YouTube survive?

vessel-img
Screenshot of Linus Tech Vessel channel, © Linus Tech, Vessel
A little over a year ago, Vessel launched as an alternative video platform, trying to demonopolize YouTube as the quasi only option to upload videos professionally (i.e. earn money with your videos).
To get a foot into the market, they made deals with a lot of Youtube personalities to upload to vessel a week in advance and instead of showing users advertisements, either in the form of prerolls or sponsor spots in the middle of the video, they collect a small monthly subscription fee. Vessel boldly announced their launch in the form of sponsored YouTube videos giving away a full year of premium subscriptions to everyone signing up in the first month or so.
In March 2016 the free premium accounts expired, and I wanted to know, how many people are still watching on vessel now, compared to when they had a free premium account.
Sadly, Vessel doesn’t disclose a view count, or how many people have purchased a premium account after the first month. They do however have a ‚like-button‘ below every video and a comment counter. I decided to at least get a rough idea about their view count compared to last year.
Weiterlesen

Creating a single PDF from web based epaper readers

Updated to work again (2016-11-08)

epaper-combined

I have a epaper subscription for the newspaper der Standard. The iPad app is good, the Android one good enough, but the web client, for the desktop, is an abomination.
You get to click throuh JPEG images, too small to read the text, and if you are interested in an article, you have to click a button, which opens a single page PDF. After reading, you go back to the awful web client, click the next page button, and the pdf one again.

There must be a better way, I thought, and so i made one.
Weiterlesen

MongoDB and geodata part 2 – getting spatial

After importing geodata from the GIS to MongoDB and creating a spatial index (part 1), the exciting (spatial) adventure starts. With „normal“ (relational) databases and their spatial extensions (Oracle spatial, PostgreSQL/PostGIS, SQLite/Spatialite,…) a lot of spatial queries and geoprocessing are possible. So let’s try to find out which adresses have to be evacuated 250m around some „event“…

QGIS_Adressen_Umkreis
How to perform a spatial query like this with MongoDB ?

Weiterlesen

MongoDB and geodata part 1 – from Shapefile to MongoDB 3.2

MongoDB (3.2) is a kind of database-hipster at the moment – with improving support for spatial data. So it was time for me to discover some of it’s features concerning spatial data. As a GIS-user my first intention was to get some bigger simple (point) geodata into MongoDB. Part 1 covers this topic, part 2 will cover some spatial operations within MongoDB. I also want to do some performance checks between PostgreSQL/PostGIS and MongoDB related to geodata.

QGIS_mongoDB_adressen
Geodata in QGIS and MongoDB

Weiterlesen

Build Yourself a Raspberry Pi Zero Availability Checker powered by a Raspberry Pi

The Raspberry Pi Zero is still very hard to get – it seems to be constantly out of stock.
So I made Raspberry Pi powered* Raspberry Pi Zero Checker: It scans Adafruit, Pimoroni and The Pi Hut for strings indicating stock and warns you with an annoying ‚alarm‘ sound. I also have a PHP version for my web server that also works very well.

*Note: any computer will do – but a Pi can be left on all the time without annoying fan noise or high power bill.

This is a very simple project both soft- and hardwarewise: Get your Pi online, automatically start the script on boot (rc.local or systemd) and plug in some speakers.
If you do not want to get woken up in the middle of the night, you might want to add some code to not trigger the alarm after 22.00h for example.
Weiterlesen