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 Auschecken und Resetten von Braches und auch manchmal, die Undo- und Redofunktionen.

Einfacheres Aufteilen in Commits
Jeder der oft viel schreibt und erst nach Stunden anfängt seine Arbeit in einzelne Commits aufzuteilen, weiß wie aufwendig es ist mit git add-p zu arbeiten. Diese Arbeit wird einem von GitKraken sehr vereinfacht und geht dadurch um einiges schneller. Hier können direkt einzelne Zeilen oder Hunks zum Stagen ausgewählt werden.

Was kostet der Spaß?
GitKraken kostet je nach Projekt zwischen 0€ und 99€/Jahr. Dies hängt von der Art des Projekts ab, an dem man mit GitKraken arbeitet. Möchte man mit dem Projekt Geld verdienen und es ist nicht Open-Source, dann muss man dafür mindestens 49€ im Jahr blechen. Wer jedoch ausschließlich an privaten und/oder Open-Source-Projekten arbeitet, kann GitKraken komplett kostenlos nutzen.

Nur nahezu perfekt
Auch wenn GitKraken einwandfrei funktioniert und sehr viele gut implementierte Funktionen bieten, hat es auch so einige kleine Macken. Um GitKraken nutzen zu können benötig man einen Account, GitKraken ist Closed-Source und kostet sogar Geld, wenn man es kommerziell nutzen möchte. Diese Aspekte treffen in der Open-Source-Community oft auf wenig Unterstützung.

Download
GitKraken ist für Windows, MacOS und Ubuntu/Debian erhältlich und kann hier heruntergeladen werden.

Noah Hilverling

Autor: Noah Hilverling

Nachdem Noah bei einer vierjährigen Exkursion nach Belgien seine Liebe zum Programmieren entdeckte, holte der gebürtige Euskirchener innerhalb kürzester Zeit gleich zwei Schulabschlüsse nach. Danach verließ Noah sogar den schönen Chiemsee, um sich ab September 2016 im Rahmen der Ausbildung zum Fachinformatiker für Anwendungsentwicklung bei NETWAYS voll und ganz dem Programmieren hinzugeben und viele unterschiedliche Erfahrungen zu sammeln. Wenn er mal nicht am Programmieren und Zocken ist, brettert er mit seinem Snowboard die Pisten runter, oder schwingt sich auf sein Mountainbike.

Postman – API development and testing made simple

As a Icinga 2 developer I often use the Icinga 2 REST API to test new features or debug Icinga itself. Of course most people use curl for that kind of task, and so did I.

That resulted in sometimes rewriting the same request a lot over the course of a few weeks. To counter that I just saved my most used requests into my notes which wasn’t that simple to maintain.

A few weeks ago that finally changed as I stumbled across Postman. Postman is a tool for developing, maintaining and testing REST APIs. I’d like to give you a quick rundown of its features, to show you why it has made my development life so much easier. (more…)

Noah Hilverling

Autor: Noah Hilverling

Nachdem Noah bei einer vierjährigen Exkursion nach Belgien seine Liebe zum Programmieren entdeckte, holte der gebürtige Euskirchener innerhalb kürzester Zeit gleich zwei Schulabschlüsse nach. Danach verließ Noah sogar den schönen Chiemsee, um sich ab September 2016 im Rahmen der Ausbildung zum Fachinformatiker für Anwendungsentwicklung bei NETWAYS voll und ganz dem Programmieren hinzugeben und viele unterschiedliche Erfahrungen zu sammeln. Wenn er mal nicht am Programmieren und Zocken ist, brettert er mit seinem Snowboard die Pisten runter, oder schwingt sich auf sein Mountainbike.

How to: Icinga 2 – CA Proxy

Die in Kürze erscheinende Icinga-Version 2.8 erweckt den CA-Proxy zum Leben. Mit diesem Blogpost möchte ich nun zeigen, wie man dieses Feature verwendet und wozu es nützlich ist.

Was bringt der CA-Proxy?
Am besten ist dies anhand eines Beispiels zu erklären. Man nehme an, das Setup besteht aus einem Master, einem Satellite und mehreren Clients. Während der Einrichtung dieses Setups muss man bisher für jeden Client ein Ticket auf dem Master erstellen und eine direkte Verbindung zum Master haben, was nicht in allen Setups immer möglich oder einfach ist.

Der CA-Proxy ermöglicht es nun, Certificate-Signing-Requests nicht direkt an den Master, sondern an einen Satellite zu senden. Der Satellite leitet den Request dann an den Master weiter.

Mit Version 2.8 kommt zudem die Möglichkeit hinzu, ein Certificate-Signing-Request an den Master zu senden, ohne vorher ein Ticket zu erstellen. Diese Requests können danach am Master manuell beantwortet bzw. das Zertifikat signiert werden.

Durch die Kombination dieser beiden Features, muss weder der Master, noch ein Ticket im Node-Wizard angegeben werden. Firewalls, die den Master abschirmen, stellen hier auch kein Problem mehr da, solange der Client den Satellite erreichen kann.

Einrichtung eines Clients
Auf dem Client muss nun der Node-Wizard ausgeführt werden. Hier kann, wie vorher erwähnt, das Ticket einfach leer gelassen werden:

root@icinga-agent-1:~# icinga2 node wizard
Welcome to the Icinga 2 Setup Wizard!

We will guide you through all required configuration details.

Please specify if this is a satellite/client setup ('n' installs a master setup) [Y/n]: y

Starting the Client/Satellite setup routine...

Please specify the common name (CN) [icinga-agent-1]: [ENTER]

Please specify the parent endpoint(s) (master or satellite) where this node should connect to:
Master/Satellite Common Name (CN from your master/satellite node): icinga-satellite-1

Do you want to establish a connection to the parent node from this node? [Y/n]: y
Please specify the master/satellite connection information:
Master/Satellite endpoint host (IP address or FQDN): 10.211.55.23
Master/Satellite endpoint port [5665]: [ENTER]

Add more master/satellite endpoints? [y/N]: n
Parent certificate information:

Subject: CN = icinga-satellite-1
 Issuer: CN = icinga-satellite-1
 Valid From: Nov 8 11:37:56 2017 GMT
 Valid Until: Nov 4 11:37:56 2032 GMT
 Fingerprint: BA 1F 61 BE 26 8E CB 4E 8B 4D 20 3F 10 5B D5 0C C4 BF 91 00

Is this information correct? [y/N]: y

Please specify the request ticket generated on your Icinga 2 master (optional).
 (Hint: # icinga2 pki ticket --cn 'icinga-agent-1'): [ENTER]

No ticket was specified. Please approve the certificate signing request manually
on the master (see 'icinga2 ca list' and 'icinga2 ca sign --help' for details).

Please specify the API bind host/port (optional):
Bind Host []: [ENTER]
Bind Port []: [ENTER]

Accept config from parent node? [y/N]: y
Accept commands from parent node? [y/N]: y

Reconfiguring Icinga...

Done.

Now restart your Icinga 2 daemon to finish the installation!
root@icinga-agent-1:~# systemctl restart icinga2

 

Danach können wir auf dem Master über “icinga2 ca list” alle Requests anzeigen lassen:

root@icinga-master-1:~# icinga2 ca list
Fingerprint        | Timestamp                | Signed | Subject
-------------------|--------------------------|--------|--------
92a2e5bbb9b374f... | Nov  8 11:43:06 2017 GMT |        | CN = icinga-agent-1

 

Und mit “icinga2 ca sign <fingerprint>” signieren:

root@icinga-master-1:~# icinga2 ca sign 92a2e5bbb9b374f...
information/cli: Signed certificate for 'CN = icinga-agent-1'.

Nach einigen Minuten sollten die signierten Zertifikate auf den Clients landen. Hierfür ist kein Neustart nötig.

Noah Hilverling

Autor: Noah Hilverling

Nachdem Noah bei einer vierjährigen Exkursion nach Belgien seine Liebe zum Programmieren entdeckte, holte der gebürtige Euskirchener innerhalb kürzester Zeit gleich zwei Schulabschlüsse nach. Danach verließ Noah sogar den schönen Chiemsee, um sich ab September 2016 im Rahmen der Ausbildung zum Fachinformatiker für Anwendungsentwicklung bei NETWAYS voll und ganz dem Programmieren hinzugeben und viele unterschiedliche Erfahrungen zu sammeln. Wenn er mal nicht am Programmieren und Zocken ist, brettert er mit seinem Snowboard die Pisten runter, oder schwingt sich auf sein Mountainbike.

Bestimmte Google-Suchergebnisse in Google Chrome blockieren

Da ich in den letzten Tagen einiges mit CSS gemacht habe und in diesem Thema noch recht neu bin, habe ich mir, wer hätte das gedacht, durch Google weitergeholfen. Dabei fällt einem ziemlich schnell auf, dass die obersten Ergebnisse so gut wie immer von W3Schools kommen, was ich nicht unbedingt begrüße.

Um dieses Problem endgültig aus der Welt zu schaffen, hab ich erneut Google um Rat gebeten und bin auf ein von Google selbst entwickeltes Add-On namens “Personal Blocklist” gestoßen

 

Durch das Add-On wird nun unter jedem Ergebnis die Möglichkeit gegeben, die Angezeigte Webseite zu blockieren.

 

Und schon ist W3Schools von der Bildfläche verschwunden, jedenfalls für mich.

 

Durch einen Klick auf das Add-On Icon oben rechts im Browser, lässt sich die Blockliste öffnen und bearbeiten. Hier können Webseiten auch blockiert werden während man sie besucht.

 

Noah Hilverling

Autor: Noah Hilverling

Nachdem Noah bei einer vierjährigen Exkursion nach Belgien seine Liebe zum Programmieren entdeckte, holte der gebürtige Euskirchener innerhalb kürzester Zeit gleich zwei Schulabschlüsse nach. Danach verließ Noah sogar den schönen Chiemsee, um sich ab September 2016 im Rahmen der Ausbildung zum Fachinformatiker für Anwendungsentwicklung bei NETWAYS voll und ganz dem Programmieren hinzugeben und viele unterschiedliche Erfahrungen zu sammeln. Wenn er mal nicht am Programmieren und Zocken ist, brettert er mit seinem Snowboard die Pisten runter, oder schwingt sich auf sein Mountainbike.

Atom – der hackbare Editor von Github

Wer kennt es nicht, man sitzt am gewohnten Editor und trotz langer Gewohnheit, fallen einem immer wieder Kleinigkeiten oder gar sehr große Macken auf, welche leider nicht veränderbar sind. Mit Atom hört das auf! Atom ist ein lightweight, Open-Source Editor mit unglaublich vielen Möglichkeiten dank Paketen. Dank den zahlreichen Themes, bietet Atom auch visuell einiges an Auswahl.

Was hebt Atom von anderen Editoren ab?

Direkt nach der Installation ist Atom weit davon weg eine IDE zu sein. Dank den zahlreichen von Community-Mitgliedern entwickelten Paketen, ist es jedoch möglich Atom so gut wie jede Sprache beizubringen, und sogar das Debuggen und Kompilieren von beispielsweise C++ ist durch bestimmte Pakete möglich. So manch einer wird jetzt vermutlich sagen, dass sein Visual Studio genau das bereits kann, ohne dafür ein Paket zu installieren. Wer aber mit mehreren Sprachen gleichzeitig arbeitet, kann mit Atom tatsächlich nahezu jede Programmiersprache mit einem Editor abdecken.

Welche Pakete und Themes nutze ich?

Beim Theme hab ich mich sowohl beim UI als auch beim Syntax für One Light entschieden und bin bis jetzt auch ziemlich zufrieden mit meiner Entscheidung. Ich muss jedoch dazu sagen, dass ich mir noch nicht sonderlich viele Themes angeschaut habe, und es bestimmt viele andere da draußen gibt, die mir genau so gut oder gar besser gefallen würden. Bei den Paketen ist es dafür weitaus komplizierter, weshalb ich mich dazu entschieden habe, die für mich wichtigsten Pakete ein wenig näher zu bringen.

Minimap

Durch Minimap wird, je nach Belieben, rechts bzw. links vom Text eine kleine Übersichtskarte über die gesamte Datei angezeigt. Dies ist bei der Orientierung und Navigation sehr hilfreich, da man einfach per Klick an eine bestimmte stelle scrollen kann. Minimap bietet durch zusätzliche Pakete wie minimap-git-diff oder minimap-find-and-replace, die Möglichkeit, sich Git-Diffs bzw. Ergebnisse der Suchen/Ersetzten-Funktion direkt auf der Minimap anzeichen zu lassen.

Remote-FTP

Wie der Name vielleicht bereits erahnen lässt, erlaubt Remote-FTP das direkte Synchronisieren und Bearbeiten von Dateien über FTP, FTPS und SFTP und unterstützt dabei auch die Verwendung von SSH-Keys.

PlatformIO IDE Terminal

Dieses Paket fügt ein Terminal in den unteren Bereich des Editors ein, welches mit einigen netten Features wie automatisches Mapping, Themes und Tabs. Ich selbst nutze dieses Terminal sehr gerne für Git, da man nicht immer erst ein Terminal öffnen bzw. das Fenster wechseln muss.

 

Atom-Beautify, Atom-Autocomplete-PHP und Linter-PHP

Diese Pakete habe ich zusammengefasst, da sie meiner Meinung nach ziemlich essenziell für PHP-Entwickler sind und irgendwie zusammen gehören.

Atom-Beautify: Kümmert sich um die Formatierung von Code in den meisten gängigen Sprachen

Atom-Autocomplete-PHP: Führt, wie der Name schon sagt, eine Autovervollständigung für PHP ein

Linter-PHP: Statische Code-Analyse für PHP

Split-Diff

Split-Diff ermögicht das Anzeigen von Git-Diffs als übersichtlichen Split. Hierdurch kann man schnell erkennen was genau sich verändert hat und kann es mit ein paar Klicks rückgängig machen. Zusätzlich wird es durch zwei Pfeile ermöglicht zum nächsten bzw. letzten Diff-Block zu springen.

Wer also auf der Suche nach etwas Neuem ist, oder einfach mal etwas ausprobieren möchte, sollte definitiv einen Blick auf Atom werfen und sich eine Programmierumgebung nach den eigenen Vorstellungen zusammenbauen.

Noah Hilverling

Autor: Noah Hilverling

Nachdem Noah bei einer vierjährigen Exkursion nach Belgien seine Liebe zum Programmieren entdeckte, holte der gebürtige Euskirchener innerhalb kürzester Zeit gleich zwei Schulabschlüsse nach. Danach verließ Noah sogar den schönen Chiemsee, um sich ab September 2016 im Rahmen der Ausbildung zum Fachinformatiker für Anwendungsentwicklung bei NETWAYS voll und ganz dem Programmieren hinzugeben und viele unterschiedliche Erfahrungen zu sammeln. Wenn er mal nicht am Programmieren und Zocken ist, brettert er mit seinem Snowboard die Pisten runter, oder schwingt sich auf sein Mountainbike.