Kategorien
Allgemein Wochenbericht

Wochenbericht 2016.06

The Art of Saying NO – A framework to keep crap out of products” handelt mal wieder davon, warum ein “Nein” wichtig ist für ein gutes Produktmanagement. Dazu gehört (quasi als Ursprungsidee) der Artikel “Product Strategy Means Saying No” von Intercom

Scheinbar geht ein Hype für die ZSH um, insbesondere mit Tools wie “Oh My Zsh“. Ich werde das mal ausprobieren, und bei Gefallen oder Nichtgefallen berichten.

Nachdem ich meine Wohn- und Esszimmer mit einem Philips Hue Starterset aufgemotzt habe (jaja, Internet of Shit…), hat mich die Kommunikation und Funktionsweise der Lampensteuerung mal interessiert. Siehe da, statt in dubiosen Quellen gibts ne Doku direkt bei Philips: “Getting Started” und “Core Concepts” zeigen die Funktionen der REST-Api der Hue Bridge mal in schick auf. “Tools and SDK” hat dann auch gleich eine ziemlich beeindruckende Sammlung von Geräten. Inklusive z.B. einem AngularJS-Service für die Hue-Steuerung. Abgefahren und ziemlich cool. Ach ja: Der Bridge habe ich übrigens direkt den Internet-Zugriff gesperrt.

Dazu passend dann auch die Meldung, auf die ich nur gewartet habe: Geheimdienste überwachen auch das Internet der Dinge. Vielleicht wollen sie aktuell auch erst noch. Ohne dieses kaputte Zertifikatssystem mit den CAs wäre es auch eigentlich gar kein Problem das IoT mit Verschlüsselung per Default zu nutzen.

Kategorien
Allgemein Werkzeuge

MariaDB bei Uberspace.de

Update: Uberspace.de bietet inzwischen eine eigene Übergangslösung für MariaDB 10.0 an.

Die Server bei Uberspace.de basieren zur Zeit noch auf CentOS 6, das eine relativ alte MySQL Version (5.1) an Bord hat:

mysql -V
mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

Wenn man Software laufen lassen möchte, die neuere Versionen benötigt (z.B. TYPO3 7), kann man entweder warten bis die CentOS 7 Hosts fertig sind oder seinen eigenen Server laufen lassen.

Dies ist ein kleines HowTo, wie man bei Uberspace.de einen eigenen MariaDB Server betreiben kann.

Kategorien
Werkzeuge

Programmempfehlung: MobaXterm

Ich bin ja schon länger Nutzer von Putty unter Windows, dass es mit Cygwin und Konsorten auch da alternativen gibt, war mir so halb bewusst, aber Putty ist einfacher zu nutzen, wenn man nur SSH braucht. Das geht auch mit einem Portable File. Ohne Installation.

MobaXterm Screenshot

Nun bin ich neulich über MobaXterm gestolpert. Portable, muss nicht installiert werden. Enthält Cygwin (stellt also UNIX-artigen Zugriff auf Windows bereit) und einen X-Server in einem 18MB-Bundle. Untestützt so ziemlich jedes Remote-Protokoll. Wenn jemand sowas braucht: Hier ist die Lösung. Die Professional-Edition kann auch noch angepasst werden, kostet dafür dann aber 50€. Wie gesagt, die Personal Edition ist erträglich nutzbar, inklusive Tunnel-Manager.

Kategorien
Betriebssystem Code Webentwicklung

Generische URLs für lokale Entwicklungsumgebungen

Als Webentwickler kennt man das vielleicht: Für das x-te Kundenprojekt legt man eine neuen Ordner in seinem WWW-Root an und fängt an, entweder “localhost/kundenprojekt.de” zu nutzen oder lustige Spielereien mit VirtualHost-Konfigurationen und der Hosts-Datei zu veranstalten (“127.0.0.1 kundenprojekt.de”).

Das muss nicht mehr sein! Zumindest unter Linux, BSD und vermutlich Mac OSX.

Der Apache-Part funktioniert ohne Probleme auch unter Windows, das Problem ist hier das generische Domain-Auflösen. Wenn jemand dafür eine Lösung hat, her damit!

Was brauchen wir?

  • Linux, BSD, Mac OSX, Windows
  • Als Entwicklungswebserver benutzen wir den Apachen
  • Unter Linux/Unix/BSD/OSX wird Dnsmasq installiert
    Unter Ubuntu oder Debian mit “apt-get install dnsmasq” bzw. “aptitude install dnsmasq
  • Unter Windows gibt es das Tool “Acrylic DNS Proxy
  • Dnsmasq / Acrylic ist als primärer DNS-Server eingetragen.

Was macht dieses Dnsmasq eigentlich?

Dnsmasq is a lightweight, easy to configure DNS forwarder and DHCP server.

So weit, so gut. Dnsmasq kann einiges mehr und besonders interessieren wir uns für die Funktion, die in der Manpage mit “–address” beschrieben ist. Sehr unscheinbar, aber das ElDorado für uns. Die Option besagt, dass jede Domain, die in das Muster passt, mit der definierten IP aufgelöst wird.

Dafür legen wir unter Debian/Ubuntu die Datei /etc/dnsmasq.d/localdev.conf an. In diese kommt folgender Inhalt:
address=/localdev/127.0.0.1

Unter Windows bearbeitet man die Datei “AcrylicHosts” und fügt dort die Zeile “127.0.0.1 *.localdev” ein.

Man könnte auch eine beliebige andere TLD nehmen (“erfinden”), z.b. “.dev” oder “.locales-netz-von-chris”.

Damit werden alle Domains, die auf “localdev” enden, auf die lokale IP aufgelöst.

Okay, jetzt kann ich alles mit einer bestimmten Domain auf meinen Server umleiten. Und nun?

Dnsmasq löst nun Domains wie “kunde.localdev” und “kunde2.localdev”, alle auf den lokalen Webserver um.

Normalerweise hätte man dann ja immer noch das Problem, dass man mit den VirtualHost-Konfigs basteln müsste. Hierfür hat Uberspace eine super Lösung präsentiert:

Die Apache-Config wird in der VirtualHost-Direktive erweitert. XAMPP/LAMPP/MAMPP-User müssen diese erst erzeugen.

RewriteEngine On

# If there is a host-specific pseudo-DocumentRoot, use it instead of the default one
RewriteCond %{REQUEST_URI} !^/f?cgi-bin/
RewriteCond /var/www/%{HTTP_HOST} -d
RewriteRule (.*) /var/www/%{HTTP_HOST}/$1

Dieser nette Trick erlaubt folgendes: Wenn ein Verzeichnis existiert, welches den gleichen Namen hat, wie die URL, die aufgerufen wird, wird es als “DocumentRoot” verwendet. Bei der Verwendung von .htaccess-Rewrites innerhalb des Verzeichnisses muss allerdings ein “RewriteBase /” stehen.

Was bedeutet das für die Praxis?

Ich muss in Zukunft nur noch ein Verzeichnis “kunde123.localdev” anlegen und schon kann ich darin loslegen. Ich habe eine Top-Level-Domain und muss am Ende beim Umzug auf die Live-Seite nicht mehr soviel ändern. Im Falle von WordPress muss ich nur beispielsweise noch in der Datenbank das “.localdev” durch “.de” ersetzen und schon kann das Projekt live gehen.

Außerdem ist mein /var/www/ -Verzeichnis dann auch zwangsläufig gut organisiert.

Im Übrigen: eine spezifische Auflösung in der resolv.conf oder der Hosts-Datei hat Vorrang vor der Dnsmasq-Auflösung.

[green_box] Update

Ein Tool für Windows wurde nachgetragen

[/green_box]

[grey_box]
Dieser Eintrag entstand durch eine Verkettung von Inspirationen: Ich habe Alex zum testen von Uberspace inspiriert, deren VirtualHost-Konfiguration hat Alex zum testen von Dnsmasq (Wikipedia) auf seinem Notebook inspiriert und seine Demonstation davon hat mich zu diesem Eintrag inspiriert. Soviel zum Thema “geistiges Eigentum”.
[/grey_box]

Kategorien
Betriebssystem

Spaß auf der Konsole

Eben habe ich aus versehen bei Uberspace in der Konsole ein “sudo apt-get upgrade” eingehackt. Folgende Meldung ist mir dabei angezeigt worden:

[%USER%@lupus ~]$ sudo apt get upgrade

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for %USER%:

Hihi.