Go go Gopher!

Keine Sorge, wir führen nicht das olle Gopher-Protokoll wieder ein*.

In jüngster Zeit häufen sich dafür Fragen zu Go bei uns im Support. Viele Entwickler scheinen Gefallen an der modernen, performanten Programmiersprache von Google gefunden zu haben und wir freuen uns natürlich über jeden, der bei Uberspace seine Apps entwickelt oder sich neue Programmiersprachen aneignet. 👍

Wir haben unsere Dokumentation für Go daher grundlegend überarbeitet: Go ist nun kein Nebensatz mehr in unserer FAQ, sondern hat seinen eigenen Artikel im Wiki und spielt bei uns damit nun in einer Liga mit Python, Ruby, nodejs, PHP, Erlang und Perl mit.


Roundcube 1.1.3

Wir haben auf allen Hosts Roundcube (also das Webmail-Interface auf https://webmail.$servername.uberspace.de) auf die neueste Version gehoben. Dabei haben wir einen Versionssprung von 1.0.5 auf 1.1.3 hingelegt und unser Deployment-Setup so angepasst, dass wir in Zukunft mit einem Fingerschnippen Updates einspielen können.

Außerdem haben wir etwas an der Konfiguration geschraubt. Neu hinzu gekommen sind:

// prefer displaying HTML messages
$config['prefer_html'] = false;

// display remote inline images
// 0 - Never, always ask
// 1 - Ask if sender is not in address book
// 2 - Always show inline images
$config['show_images'] = 1;

// save compose message every 60 seconds (1min)
$config['draft_autosave'] = 60;

// Add this user-agent to message headers when sending
$config['useragent'] = '';

Diese Einstellungen sind per User im Webinterface änderbar und führen zu mehr Privatsphäre und Sicherheit.


BACKRONYM strikes back

In der Regel verlaufen unsere PHP-Minor-Updates praktisch unbemerkt; so auch unser gestriges Update von PHP 5.6.10 auf 5.6.12 - unbemerkt, bis auf einen Fall: Die PHP-Applikation eines Users weigerte sich spontan, noch eine Datenbankverbindung mit mysql_connect() aufzubauen, obwohl die Zugangsdaten mehrfach kontrolliert wirklich gestimmt haben. Die erstaunliche Meldung:

MySQL server has gone away

… und zwar bereits direkt zum Verbindungsaufbau, noch bevor der Client irgendwas an den MySQL-Server gesendet hat. Und jetzt der spannende Teil: Ein Downgrade auf PHP 5.6.10 behebt das Problem; die Verbindung kommt einwandfrei zustande.


Neue PHP-Versionen ... und ja, auch die 7.0.0RC1

Wir haben mal wieder einen Schwung PHP-Updates verteilt, und zwar folgende Versionen:

  • 5.6.12
  • 5.5.28
  • 5.4.44

Und außerdem erstmalig mit dabei, Trommelwirbel:

  • 7.0.0RC1

Letzteres ist “bleeding edge” und seitens der PHP-Entwickler ausdrücklich noch nicht für den produktiven Einsatz vorgesehen. Unser Default bleibt insofern auch weiterhin noch die neueste stabile Version 5.6.

Wir haben bei den Versionen gegenüber unserer bisherigen Setups ein bisschen getweakt und haben bz2-Support nun direkt einkompiliert, so dass man den nicht mehr via PECL nachinstallieren muss, und aufgrund einiger (weniger) Anfragen auch den gmp-Support aktiviert.


Reboots

Ein Bug im libvirt-Paket von CentOS 6 hat zur Folge, dass wir in den nächsten Nächten leider 24 unserer Server rebooten müssen. Betroffen sind diese Server: alphard, avior, diphda, markab, mirfac, regulus, eltanin, enif, arcturus, alioth, alkaid, dubhe, peacock, sabic, suhail, bellatrix, acrux, betelgeuse, alnilam, alpheca, shaula, elnath, gienah und schedar. (Mist, schon wieder Appetit auf Käse.)

Hier sollen kurz die Gründe erläutert werden und bei der Gelegenheit mal ein genereller Überblick über das gegeben werden, was wir im Punkto Reboots in nächster Zeit vorhaben, denn wir planen Reboots in Zukunft deutlich häufiger durchzuführen als bisher und das ganze besser zu Kommunizieren.


Warum Default-Passwörter ein Übel sind

Ein spannender Fall aus dem Support, der hervorragend vorführt wieso Default-Passwörter ein Übel sind, so früh wie möglich geändert werden sollten und warum es besser ist Software von vornherein so zu schreiben, dasss sie ohne auskommt:

Ein User hatte sich nach der in unserem Wiki verlinkten Anleitung eines anderen Users OpenProject eingerichtet. Als ich mir die Sache später anschaute, sah es zunächst so aus als habe er einen wichtigen Punkt aus der Anleitung übersprungen:


Upgrade unseres HTTPS-Frontends

tl;dr

Wir haben unser HTTPS-Frontend Pound von Version 2.6 auf 2.7 aktualisiert um zeitgemäße Diffie-Hellman-Parameter von 4096 Bit Größe zu unterstützen.

Wenn du Probleme feststellst, die womöglich durch dieses Upgrade entstanden sind, wende dich einfach mit möglichst vielen Details an hallo@uberspace.de! :)

Hinweis: Das Upgrade geschieht in inkrementellen Schritten. Wenn dein Uberspace-Host mit CentOS 6 also nicht sofort als 4096 Bit DH-Parameter unterstützend beim SSL-Test der SSL Labs erkannt wird, dann folgt das Upgrade auf Pound 2.7 auf diesem Host im Laufe der nächsten 24 Stunden. (siehe Update #2)


Das Problem beim Kompilat mit gcc

Seit jeher animieren wir unsere User mit ihren Uberspaces mehr anzustellen, als out-of-the-box möglich ist und sich selbst und uns damit zu überraschen. Dazu gehört unter anderem: Installiert euch doch an Software was ihr wollt. In den allermeisten Fällen ist es gar nicht notwendig, einen root-Account zu haben, mit ein bisschen Geduld und Spucke - und wenn der Quellcode vorliegt - kann man eigentlich alles auch im Userspace installieren. Und hier gilt: Viele Wege führen nach Rom: Man kann entweder alles per Hand frickeln oder aber - wenn’s denn etwas bequemer sein soll - per toast oder brew. Wir sind der Meinung: Macht’s euch lieber bequem 🍸.


Gute Passwörter

Was ist ein gutes Passwort?

Wie komme ich zu einem guten Passwort?

Wie speichere ich Passwörter?

Muss ich Passwörter erneuern?

Brauche ich unbedingt ein gutes Passwort?

https://twitter.com/de/status/1110908966266175488

Me: Hey, what’s the Wifi password?

Barista: You need to buy a drink first.

Me: I’ll have a Latte, please.

Barista: £3, please.

Me: There you go, now what’s the Wifi password?

Barista: You need to buy a drink first. No spaces and all lowercase.


node.js 0.12.7 und 0.10.40

Same procedure as every year month: Ein Zwei frische node.js Versionen sind auf allen Servern verteilt, weitere Informationen dazu wie gewohnt im Wiki. Die Updates beinhalten unter anderem einen Fix für OpenSSL CVE-2015-1793

Unter den Symlinks unter /package/host/localhost haben wir angepasst:

nodejs-0.12 -> nodejs-0.12.7
nodejs-0.10 -> nodejs-0.10.40

Wie gehabt bleibt vorerst (wobei wir darüber nachdenken, das bald bald mal zu ändern und auf Version 0.12 zu gehen):

nodejs-0 -> nodejs-0.10

Wenn ihr also nodejs-0.12 oder nodejs-0.10 in eueren Scripten benutzt reicht es, den Dienst einfach neu zu starten.