Font für Social Icons

Mittlerweile gibt es unzählige sogenannte Social Icons für Dienste wie Facebook, GitHub oder Twitter. In vielen Fällen benötigt man ein solches Social Icon auf einer Webseite oder in einem Dokument. Natürlich kann man sich nun die entsprechenden Bilder bei den jeweiligen Anbietern, über die Presse- bzw. Markenportale beziehen. Bei mehreren Anbietern kann dies allerdings eine zeitintensive Tätigkeit sein.

Der Font Socicon in Aktion

Mit dem Font Socicon, welcher unter socicon.com bezogen werden kann, hat man alle diese Social Icons in einem Font zusammengefasst. Dieser kann direkt auf Webseiten eingebunden oder lokal installiert werden. Lizenziert ist der Font unter der SIL Open Font License 1.1.

Gogs hinter einem Reverse Proxy betreiben

Gogs ist ein Git-Service welcher eine ähnliche Funktionalität wie der bekannte Dienst GitHub zur Verfügung stellt. Standardmäßig läuft der Dienst auf dem Port 3000. Möchte man ihn über die normalen Ports für HTTP (80) bzw. HTTPS (443) erreichbar machen, kann man hierfür einen Reverse Proxy nutzen. Dafür eignen würde sich zum Beispiel Nginx, der im ersten Schritt auf dem Server installiert werden muss:

apt-get install nginx

Anschließend wird die Konfiguration angelegt:

nano /etc/nginx/sites-available/example

In diesem Fall befasst sich die Konfiguration mit der verschlüsselten Kommunikation per HTTPS und der Weiterleitung von unverschlüsselten Verbindung in Richtung der verschlüsselten Verbindung.

server {
        listen 80;
        listen [::]:80;

        server_name example.com;

        return 301 https://$host$request_uri$is_args$args;
}

server {
    listen 443;
    listen [::]:443 default_server;

    ssl on;
    ssl_certificate        /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/example.com/privkey.pem;

    server_name example.com;

    client_max_body_size 500m;

    location / {
        proxy_pass https://localhost:3000;
    }
}

Nachdem die Konfiguration für Nginx hinterlegt ist, wird die Standardkonfiguration entfernt und ein symbolischer Link für die neue Konfiguration erstellt. Anschließend wird Nginx neugestartet, damit die geänderte Konfiguration wirksam wird:

rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example
service nginx restart

Nach der Anpassung der Nginx-Konfiguration, muss die app.ini (sie befindet sich im gogs/custom/conf/ Ordner) von Gogs angepasst werden und dort die neue ROOT_URL ohne zusätzlichen Port angegeben werden. Anschließend kann auf Wunsch, per Firewall, der Port 3000 für Zugriffe von außen gesperrt werden.

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://seeseekey.net/archive/118039

Zwischenablage aus einer Webanwendung heraus nutzen

Wer aus einer Webanwendung heraus etwas in die Zwischenablage kopieren möchte, der benötigte bis vor einiger Zeit dazu ein Schnipsel Flash. Mittlerweile lässt sich dies, ohne zusätzliche Plugins, in den meisten Browsern über eine entsprechende Web Api nutzen.

clipboardjs.com

Einfacher wird die Nutzung dieser Web Api mit der JavaScript-Bibliothek clipboard.js. Die Bibliothek welche sich seit September 2015 in der Entwicklung befindet, abstrahiert die Nutzung der entsprechenden Web Api. Damit wird es möglich, mit wenigen Zeilen, die Zwischenablage in einer Webanwendung zu nutzen. Der Quelltext der Bibliothek ist auf GitHub zu finden. Sie ist unter der MIT Lizenz lizenziert und damit freie Software.

Raspberry Pi Firmware aktualisieren

Vor einiger Zeit schrieb ich einen Artikel in welchem ich beschrieb wie die Firmware des Raspberry Pi aktualisiert werden kann. Mittlerweile lässt sich das ganze noch einen Schritt einfacher bewerkstelligen. Im ersten Schritt muss rpi-update installiert werden:

sudo apt-get install rpi-update

Anschließend kann der Updater mittels:

sudo rpi-update

aufgerufen werden. Neben diesem Aufruf existieren eine Reihe weiterer Optionen mit denen sich der Aktualisierungsprozess noch besser steuern lässt. Im Normalfall werden diese allerdings nicht benötigt. Nach dem Backup der alten Firmware und vor dem eigentlichen Update erscheint in der aktuellen Version eine Sicherheitsabfrage:

#############################################################
WARNING: This update bumps to rpi-4.9.y linux tree
Be aware there could be compatibility issues with some drivers
Discussion here:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=167934
##############################################################
Would you like to proceed? (y/N)

Wenn man keine spezielle Hardware (der Beitrag im Forum behandelt eventuelle Probleme) betreibt, kann man das ganze mit einem Druck auf die y-Taste bestätigen. Anschließend wird das Firmware-Update durchgeführt. Dabei werden die Firmware, Kernel Module, das SDK, einige Bibliotheken wie z.B. die VideoCore und HardFP-Bibliotheken und weitere Komponenten aktualisiert. Wenn die Aktualisierung fehlerfrei durchlief, sollte der Raspberry Pi mittels:

sudo reboot

neugestartet werden. Das Projekt des Updaters kann auf GitHub gefunden werden. Der Updater ist unter der MIT Lizenz lizenziert und freie Software. Technisch handelt es sich bei dem rpi-update-Tool um ein Bash-Skript. Es befindet sich seit April 2012 in aktiver Entwicklung, so das man auch in Zukunft auf dieses Tool bauen kann.

sprintf Implementation für JavaScript

Für ein kleines Projekt an dem ich zur Zeit arbeite war ich mal wieder auf der Suche nach einer sprintf Implementation für JavaScript. Und wieder wurde ich bei der gleichen Implementation – wenn auch erheblich weiterentwickelt – fündig. Seit 2007 arbeitet Alexandru Marasteanu an seiner Implementation der sprintf Funktion für JavaScript. Mit der Hilfe dieses Funktion wird so sprintf-like aus einem:

sprintf("%2$s %3$s a %1$s", "cracker", "Polly", "wants")

ein:

Polly wants a cracker

Der Quelltext ist auf GitHub zu finden. Die Implementation ist freie Software und unter der 3-Klausel-BSD-Lizenz lizenziert.