gitlab mit docker selber hosten

Es gibt Dinge, die möchte ich zwar 1. in einem git (-Server) speichern aber 2. nicht auf einem öffentlichen – auch nicht, wenn das entsprechende Repository nicht öffentlich zugreifbar ist. Beispiel: Konfigurations- oder andere Dateien, die Passwörter enthalten. Lösung: Ich installiere mit gitlab (gitlab-ce also die Community-Edition) selber. Mit docker und docker-compose geht das wieder Read More…

Cross-Platform-Entwicklung mit Flutter

Ich bin neulich über die Ankündigung Announcing Flutter beta 1: Build beautiful native apps gestolpert. Es geht um Flutter, ein Framework und Toolset zum Entwickeln von Cross-Plattform nativen Apps (iOS und Android). Mich hat das sofort angesprochen, so dass ich gleich mal das erste Tutorial durchgearbeitet habe. Ein paar Aspekte, die mir gefallen: Echte native Apps, sehr flüssig. Read More…

Java-9-Highlights

Diese Woche durfte ich eine Schulung zu Java-9 mitmachen. Dabei habe ich die für mich interessantesten Highlights notiert, die ich hier kurz wiedergeben möchte. Da meines Erachtens das Modulsystem „Jigsaw“ das hightlight darstellt, hat es einen eigenen Abschnitt – danach kommt nur noch „Kleinkram“. (Man möge mich belehren, wenn ich da etwas übersehe.) Modularisierung „Jigsaw“ Read More…

jq: ein sed für JSON

jq ist ein sehr nützliches Tool, um JSON-Dateien (bzw. z.B. JSON-Ausgaben) auf einfache Weise zu bearbeiten, filtern oder transformieren. Ich habe es schonmal erwähnt. Installiert wird es „normal“ via brew install jq (Mac) bzw apt-get install jq (Linux). Hier ein hübsches Beispiel aus der Praxis zur Demonstration: cat my.js | jq ‚ .itemContents[] | select(.item.status Read More…

Wann StringBuilder und wann StringBuffer verwenden?

Sowohl StringBuilder als auch StringBuffer machen das erstellen von langen, konkatenierten String effizienter, da Java ja nicht erlaubt, bestehende Strings zu verändern. Aber was ist der Unterschied zwischen beiden? Hier steht die simple Antwort. Kurzfassung: StringBuffer ist thread-safe und daher etwas weniger effizient. StringBuilder ist nicht thread-safe und dafür etwas effizienter.

SmartGit: Grafischer Git-Client

Wer git liebt, verflucht git sicher auch von Zeit zu Zeit – so wie ich auch… Ein Grund dafür ist die oft in der Kommondozeile fehlende Übersicht des Zustands des Repos. In solchen Fällen verwende ich gerne Atlassians SourceTree. Unter Linux habe ich das aber nicht. Da ist dann SmartGit eine aktzeptable Alternative. Leider nicht Read More…

iOS-Entwicklung: Revisionsnummer patchen

Ich habe zu meiner „Tür auf“-App ein Widget hinzugefügt. Beim Upload desselben hat mir Apple (Xcode) mitgeteilt, dass die Revisionsnummer (CFBundleVersion) vom Widget auf 1 stünde, während die App eine andere (korrekte) hatte. Klar, mein getrevision.sh war als Build-Step nur im App-Target eingebaut. Leider half es nichts, es 1:1 ins Widget-Target einzubauen – es musste Read More…

CocoaPods auf aktuellem Mac upgraden

CocoaPods kenne ich benutze ich schon eine Weile. Es gandelt sich um eine Bibliothek von nützlichen Open-Source-Komponenten zur Verwendung in iOS / Xcode. Dazu gehört ein Tool, mit dem man diese herunterladen, ins Projekt integrieren und aktualisieren kann etc. Sehr zu empfehlen! Dieses Tool heißt pod und wird laut Webseite mit sudo gem install cocoapods Read More…