Elnu CDN ist jetzt öffentlich!

Mit Elnu CDN ist mein eigenes Content Delivery Network nun endlich live gegangen. Seit einiger Zeit nutze ich es bereits selbst, um eigene Dateien, wie .js, .css, .png/.ipg, hochzuladen und über das bekannte CloudFlare CDN zu verbreiten. Ab sofort ist es aber für jeden nutzbar und beinhaltet auch alle bekannten Bibliotheken wie jQuery, Bootstrap, AngularJS oder VueJs.

Dabei ist die Funktionsweise sehr einfach erklärt. Mit einem MX-Code, den ihr über meine Social-Media Plattformen erhaltet kann man sich ganz simple anmelden und dann Dateien bis maximal 1.000 kb hochladen. Ein Limit wie viele Dateien es insgesamt sind, oder wie viel Speicher verbraucht wird gibt es nicht. Auch ein Traffic Limit gibt es nicht. Damit ist es ein großer Vorteil gegenüber Amazon oder ähnlichen Anbietern.

Die Daten werden dann auf einem Server abgelegt und von CloudFlare abgerufen. Durch den Caching-Mechanismus wird die Datei zum einem beim Client in den Browser Cache geschrieben und zum anderen über CloudFlares CDN weltweit bereitgestellt.

Eine Änderung oder Löschung der Datei aus dem Cache ist eigentlich nicht gedacht. Könnte aber durch ein erneutes Hochladen zurückgesetzt werden. Durch diesen Mechanismus lassen sich in der Regel mehrere GB Datentransfer und auch Performance einsparen.

Warte nicht länger und hole dir auch einen MX-Code. Damit stehen dir übrigens alle Produkte zur Verfügung. Dazu gehören unter anderem mein Monitoring Service, mein URL-Shortener „UX9“ inklusive Datei-Upload und der Zhylon Deployment Service.

GitHub bietet nun unbegrenzte private Repositories

So fängt das Jahr doch gut an. GitHub hat am vergangenen Montag bekannt gegeben, dass der kostenlose Plan nun auch unbegrenzt viele private Repositories enthält. Bislang war dies nur beim PRO-Plan möglich. Bis zu einer Anzahl von drei Projektteilnehmern benötigt man nun nur noch einen kostenlosen Plan.

Gerade für Schüler, Studenten und Personen, die gerade mit dem Programmieren anfangen wollen sind das gute Neuigkeiten. Im Gegensatz zu der Alternativen Bitbucket von Atlassian, bietet GitHub immer noch ein paar mehr nützliche Features. Vor allem im Bereich der Service Integrationen ist GitHub immer noch weiter vorn.

Nach der Übernahme durch Microsoft im vergangen Oktober, war dieser Schritt schon fast abzusehen. Das ursprüngliche Modell von GitHub zur Monetarisierung des Dienstes unterscheidet sich von Microsoft. Microsoft muss nicht mit kleinen Teams Geld verdienen – das ist der Hauptteil der Einnahmen. Stattdessen ist das Unternehmen mehr daran interessiert, große Unternehmen dazu zu bringen, den Dienst zu nutzen.

GitHub sagt heute, dass die GitHub Developer Suite zu GitHub Pro wird. Das Unternehmen gibt an, dies zu tun, um „den Entwicklern zu helfen, die benötigten Werkzeuge besser zu identifizieren“.

GitHub Business Cloud und GitHub Enterprise (jetzt als Enterprise Cloud und Enterprise Server bezeichnet) werden jetzt unter dem Label GitHub Enterprise und unter dem Preis pro Benutzer angeboten.

Wem die Plattform egal ist und mehr als drei Benutzer im Team haben möchte, der sollte sich mal GitLab anschauen. Hier bekommt der Benutzer kostenlos oder für wenig Geld viel extra Leistung. Gerade für kleinere Unternehmen zahlt sich das aus.

PHP Stories: Letztes Array Element [Laravel]

Bevor ich eine wesentlich schnellere Variante mit Laravel zeige, zunächst nochmal ein Rückblick. In einem älteren Beitrag, aus dem Jahr 2016 (PHP Stories: Letztes Array Element), habe ich geschrieben, wie man das letzte Element eines Arrays ermittelt kann. Durch die in PHP vorhandene Funktion end() rückt man den internen Zeiger vom Array bis zum letzten Element vor, und gibt dann dessen Wert zurück.

Eine „Einzeiler“ Varianter die ein Benutzer kommentiert hatte sieht in etwa wie folgt aus:

<?php
$array = ['Toby', 'Lars', 'Yutta', 'Nils'];
echo "Der letzte ist " . $array[array_keys($array)[sizeof($array)-1]];

// Ausgabe: Der letzte ist Nils

An dieser Stelle lohnt es sich nochmal einen Blick auf das PHP-Framework Laravel zu werfen. Hier gibt es bereits Funktionen die solche Probleme komplett auflösen. In Laravel könnte ein Code Beispiel wie folgt aussehen:

<?php
$collection = collect(['Toby', 'Lars', 'Yutta', 'Nils']);

echo $collection->last() . " ist der letzte <br>";
echo $collection->first() . " ist der letzte <br>";

// Ausgabe: Nils ist der letzte <br>Toby ist der letzte <br>

Mit dieser Variante wird anstatt einem Array ein „Collection“ Objekt erstellt. Diese Klasse enthält diverse Interfaces die dafür sorgen, dass das Objekt wie ein Array verwendet werden kann. Neben Methoden wie first, last, count oder filter gibt es viele weitere Methoden um mit einer „Collection“ von Elementen umzugehen.

Für jeden der noch nichts mit Laravel gemacht hat, sollte sich das Framework unbedingt einmal näher anschauen.

Neues Composer Release v1.6.4 mit Sicherheitsupdate

Am Freitag (13.04.2018) hat das Composer-Team v1.6.4 veröffentlicht welches ein Sicherheitsupdate enthält. Alle Benutzer sind also angehalten die neue Version zu installieren. Laut einem Tweet von Jordi Boggiano enthält es auch Triage/Merging/Fixing für fast 200 Issues. Eine Liste was das Release alles enthält findest du auf GitHub.

Composer v1.6.4

Hier mal der Auszug aus GitHub (via https://translate.google.de/):

  • Sicherheitsupdates in einigen Randfallszenarien, empfohlenes Update für alle Benutzer
  • Die Regression beim Versionsraten von Pfad-Repositories wurde korrigiert
  • Das Entfernen von Alias-Paketen aus dem Repository wurde behoben, wodurch einige ungewöhnliche Fehler behoben werden konnten
  • Die Aktualisierung von Paket-URLs für GitLab wurde korrigiert
  • Behoben run-script – list failing, wenn Scripthandler definiert wurden
  • Init-Befehl behoben, der bei der Auswahl von Paketversionen nicht die aktuelle PHP-Version berücksichtigt
  • Die Behandlung von Großbuchstaben-Paketnamen in Warum / Warum-Nicht-Befehlen wurde korrigiert
  • Behebung des Problems, dass die Symlink-Behandlung von classmap ausgeschlossen wurde
  • Dateisystem-Berechtigungen von PEAR-Binärdateien behoben
  • Verbesserte Leistung von Subversion-Repos
  • Weitere kleinere Korrekturen

Composer lässt sich wirklich einfach aktualisieren. Dazu einfach in der Konsole folgenden Befehl ausführen:

composer self-update