Entwicklung

Alles zu diesem Thema

GitLab CI Runners with Auto-scaling on OpenStack

  With migrating our CI/CD pipelines from Jenkins to GitLab CI in the past months, we've also looked into possible performance enhancements for binary package builds. GitLab and its CI functionality is really really great in this regard, and many things hide under the hood. Did you know that "Auto DevOps" is just an example template for your CI/CD pipeline running in the cloud or your own Kubernetes cluster? But there's more, the GitLab CI runners can run jobs in different environments...

Temperatur und Feuchtigkeit in Telegram vom RaspberryPI

Ich möchte hier beschreiben, wie man mit einem RaspberryPI die Temperatur und Feuchtigkeitswerte sich aufs Handy per Telegram schickt. Verraussetzung ist ein RaspberryPI 3 b+ und ein Temperatur / Feuchtigkeitssensor, ich habe folgendes verwendet: DSD TECH DHT22 AM2302 Temperatur und Luftfeuchtigkeit Sensor Modul für Arduino Raspberry Pi RaspberryPI 3 B+ Anleitung wie man den Sensor an den RaspberryPI ansteckt, findet man reichlich im Netz z.B. Sensor-Einbau RaspberryPI/ Da in diesem Artikel...

How to: Merge multiple Git repositories into one

How to: Merge multiple Git repositories into one

Some time ago, I worked on a project that was split into multiple Git repositories. After a few weeks we decided, that it wasn't longer necessary to have multiple repositories for this project, so we decided to merge them. The question was, if it is possible to merge multiple code bases without losing their history. The answer is yes. We have two ways on how to tackle this. The first way uses one of the repositories as the new main repository. The second option is to create a new repository...

Modern C++ programming: Coroutines with Boost

We're rewriting our network stack in Icinga 2.11 in order to to eliminate bugs with timeouts, connection problems, improve the overall performance. Last but not least, we want to use modern library code instead of many thousands of lines of custom written code. More details can be found in this GitHub issue. From a developer's point of view, we've evaluated different libraries and frameworks before deciding on a possible solution. Alex created several PoCs and already did a deep-dive into...

NFC-Leser mit einem Raspberry Pi

In meinem letzten Blogpost habe ich schon etwas über NFC und RFID geschrieben. In diesem Blog erstellen wir einen Leser, mit dem man beispielsweise auch NFC-fähige Karten oder Chips auslesen kann. Was brauchen wir? Einen Raspberry Pi Female-Female Jumperkabel RFID-Reader MFRC522 Modul Hier benutze ich das zurzeit das aktuellste Modell des Raspberrys, den 3 B+. Natürlich sind auch ältere Pi Modelle für dieses Projekt ausreichend. Die Jumperkabel sowie das Modul können sehr leicht und...

Tracing PHP memory usage with Xdebug

In addition to Xdebug's great profiling and debugging features it also supports tracing memory usage. This helps to find functions which consume a lot of memory or to identify memory leaks. The following options enable tracing right away: xdebug.auto_trace=1 xdebug.trace_format=1 Traces are written to /tmp by default. You may change this via the xdebug.trace_output_dir setting. With xdebug.trace_format=1 you tell Xdebug to write traces in an easy-to-parse tab separated format. The logged...

PDF manipulieren mit pdftk

In diesem Beitrag möchte ich zeigen wie einfach man PDF's mit pdftk manipulieren kann, zB. Seiten aus einem mehrseitigen PDF herausschneiden und daraus ein neues PDF generiert. Was ich unter anderem auch schon gemacht habe, Seiten aus Büchern per Scanner als PDF erzeugt und dann mittel pdftk zu einem mehrseitigen PDF zusammengesetzt habe, Schwierigkeit hierbei ist, das die Seiten- Zahlen wieder wie im gedrucktem Buch übereinstimmen. Zuerst müssen wir je nach Linux-Distribution das Paket pdftk...

GitKraken – Der nahezu perfekte Git-Client

Heute möchte ich euch GitKraken vorstellen, ein Git-GUI-Client welcher sich nun seit fast 3 Jahren bei mir im täglichen Einsatz findet und mir die Arbeit mit Git an einigen Tagen sehr vereinfacht. Wieso ein GUI-Client, wenn man CLI haben kann? Ich habe schon einige Male von Kollegen gesagt bekommen, dass ich GitKraken doch nur nutze, weil ich mit der CLI nicht zurecht komme. Der wahre Grund ist für mich einfach die viel bessere Übersicht über Changes, History und anderen Branches, schnelleres...

Verschlüsselten File-Container mittels cryptsetup und LUKS erstellen

Datenschutz wird im Jahr 2018 so groß geschrieben wie nie zuvor. Verschiedene Anforderungen an die Absicherung der Daten zwingen Admins, sich elegante und sichere Setups einfallen zu lassen. Ich nehme das zum Anlass, eine neue Serie zur Dateiverschlüsselung zu eröffnen, bei der es um die verschiedensten Möglichkeiten geht, die gespeicherten Daten gegen den Zugriff Unbefugter abzusichern. Oftmals ist eine Verschlüsselung der Daten aufgrund bestehender Infrastrukturen oder mangels Rechten (z. B....

Continuous Integration with Golang and GitLab

Today you not only develop code and collaborate with other developers in your Git branches and forks. In addition continuous integration helps with "instant" compile and runtime tests. Which Git commit caused a failure, are there any performance changes with the recent code history? Today I want to dive into our latest insights into Golang and building our code inside GitLab on each push and merge request. Golang extensively supports unit tests and also their analysis with coverage tests. This...

Konfiguration mit Lsyncd synchronisieren

Hallo! Heute möchte ich euch ein Tool vorstellen mit dem man relativ einfach, sicher und in nahezu realzeit Konfiguration auf andere Systeme und umgekehrt synchronisieren kann. Das Tool hoert auf den Namen Live Syncing (Mirror) Daemon, oder kurz gefasst Lsyncd. Als erstes möchte ich etwas auf die Magie von Lsyncd eingehen, damit man einen Eindruck bekommt wie das Tool arbeitet und was für Möglichkeiten sich ergeben. Lsyncd verwendet unter Linux inotify und unter MacOS FSEvents um Änderungen am...