Category Archive: Allgemein

zopfli für deutliche kleinere PNG Dateien einsetzen

Der (sehr gute) Artikel von Jeff Atwood (hier) hat mich dazu gebracht, mal mit zopfli etwas herumzuprobieren.
Vorab das Fazit: Gut! PNG Dateien werden deutlich kleiner, ergo weniger Traffic und Datenverbrauch.
Gerade für Webseiten, die auch häufig Mobil abgerufen werden lohnt es sich also, seine statischen Bilder mal „nachzukomprimieren“.

Hier was ich gemacht habe:

  1. Die aktuellen Sourcen von zopfli klonen und zopflipng kompilieren
    $ git clone https://github.com/google/zopfli
    $ cd zopfli
    $ make zopflipng

    Hier fällt dann ein binary „zopflipng“ heraus, mehr braucht es nicht.

  2. zopflipng auf alle PNG Dateien anwenden.
    Testweise kann man das auch erstmal mit ein, zwei Dateien ausprobieren, der Aufruf ist einfach:

    $ zopflipng -m testfile.png testfile-compress.png

    Um dann alle Dateien im Ordner (und den Unterordnern) zu komprimieren einfach diesen One-Liner starten:

    $ for f in `find -maxdepth 5 -iname "*.png"`; do  zopflipng -y -m $f $f; done

Das Komprimieren dauert einige Zeit, ist also nichts, um Ad-Hoc erzeugte Bilder zu verkleinern.
Statische Ressourcen, wie Hintergrundbilder, Avatare und ähnliches können aber z.B. in einem nächtlichen Cron
komprimiert werden.

Bei mir war die Kompressionsrate zwischen 10% und 50%, also durchaus lohnend für einen sehr überschaubaren Aufwand.

Windows Server 2008 (R2) Datenträgerbereinigung

Der Windows Server 2008 (R2) ist zwar schon ein paar Tage älter, hin und wieder trifft man trotzdem noch auf ihn. Über die Jahre füllt sich die Systempartition mit Daten die nicht mehr unbedingt notwendig sind. Bei Desktop Windows Versionen hilft hier die Datenträgerbereinigung (cleanmgr.exe) weiter, bei Windows Server 2008 R2 findet sich diese leider nicht mehr an der gewohnten Stelle in den Laufwerkseigenschaften.

Grundsätzlich ließe sich dies durch die Installation des Features „Desktop Erfahrung“ („Desktop Experience“) beheben, dies erfordert allerdings einen Serverreboot, der nicht immer erwünscht ist.

Einfacher geht es allerdings so:
Bei Windows Server 2008 (und R2) sind die notwendigen Dateien (im Grunde nur die .exe) schon mitgeliefert, und zwar im winsxs Ordner:

Betriebssystem Architektur Dateiort
Windows Server 2008 R2 64-bit C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.1.7600.16385_none_c9392808773cd7da\cleanmgr.exe
Windows Server 2008 R2 64-bit C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.1.7600.16385_en-us_b9cb6194b257cc63\cleanmgr.exe.mui
Windows Server 2008 64-bit C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.0.6001.18000_en-us_b9f50b71510436f2\cleanmgr.exe.mui
Windows Server 2008 64-bit C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.0.6001.18000_none_c962d1e515e94269\cleanmgr.exe.mui
Windows Server 2008 32-bit C:\Windows\winsxs\x86_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.0.6001.18000_en-us_5dd66fed98a6c5bc\cleanmgr.exe.mui
Windows Server 2008 32-bit C:\Windows\winsxs\x86_microsoft-windows-cleanmgr_31bf3856ad364e35_6.0.6001.18000_none_6d4436615d8bd133\cleanmgr.exe

Die Datei cleanmgr.exe gehört nach c:\windows\system32, die Datei cleanmgr.exe.mui nach c:\windows\system32\en-US. Auf anderssprachigen Installationen kommt die .mui Datei natürlich in den entsprechenden Ordner, bei Deutsch etwa c:\windows\system32\de-DE.

Danach lässt sich über einen Command Prompt „cleanmgr.exe“ problemlos aufrufen und verwenden.

(Original hier, ich habe das auf Deutsch übernommen, damit ich es wiederfinde 😉 )

„Perfect Forward Secrecy“ und Windows < 8.1

Dankenswerterweise hat Microsoft im April diesen Jahres einen Patch veröffentlicht, der für Windows 8.1 und Windows Server 2012 R2 die TLS Ciphers derart umsortiert, dass Verbindungen die per PFS (Perfect Forward Secrecy) gesichert sind bevorzugt werden, siehe hier: http://support.microsoft.com/kb/2929781

Allerdings ist Microsoft offensichtlich der Meinung, das ältere Betriebssysteme sowieso niemand mehr benutzen sollte und enthält diese Änderung allen anderen eigentlich noch aktiv supporteten Windows Versionen vor (Vista, Server 2008(R2), Server 2012, 7, 8).

Also müssen wir selbst aktiv werden und diese Änderung vornehmen.

Weiterlesen >>

Heartbleed und nginx

Der Heartbleed-Bug in OpenSSL wurde zur genüge durch alle Medien beackert.
Auch meine Webserver waren hiervon betroffen (natürlich), daher musste ein neues
Kompilat vom nginx her. Debain hatte zu dem Zeitpunkt seine Repositories für libssl-dev
noch nicht aktualisiert, daher habe ich nginx direkt gegen die aktuellen OpenSSL Sourcen
kompiliert.

Hier mein aktueller configure Aufruf, zum einen zur Dokumentation für mich, zum anderen falls
jemand ihn mal braucht…

./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx 
--conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log 
--http-log-path=/var/log/nginx/access.log --user=nginx --group=nginx 
--with-http_ssl_module --with-openssl=/usr/src/openssl 
--with-http_spdy_module --pid-path=/var/run/nginx.pid --with-http_geoip_module 
--with-ipv6 --add-module=/usr/src/nginx/ngx_http_auth_pam_module

Weiterlesen >>

Headless VirtualBox auf Linux Server

Auf einem Linux Server sollen ein paar zusätzliche (virtuelle) Maschinen laufen. Diese
sollen dann einzelne Dienste übernehmen, wie z.B. mySql oder auch einen Starboundserver.

Hierbei habe ich folgende Anforderungen:

  • Eine beliebe Anzahl an zusätzlichen Maschinen
  • Eingermaßen einfache Administration
  • Keine zusätzlichen IPs nötig; das Host-Linux muss den Traffic routen
  • Virtuelle Maschinen müssen von extern erreichbar sein

KVM, Xen und wie sie alle heißen waren mir zu komplex und übertrieben für diese eigentlich
einfachen Aufgaben. Daher kam ich auf die Idee, auf dem Server die zusätzlichen Gäste mit
VirtualBox zu virtualisieren. Der Traffic wird dann über iptables zu / von den virtuellen Machinen
geroutet. Hier meine Schritte.
Weiterlesen >>

Starbound Server unter Windows

Zwischendurch muss auch mal ein Spielchen sein. Und zur Zeit spiele ich gerne Starbound (http://playstarbound.com/).Das Ganze ist zwar noch Beta, macht aber so schon eine Menge Spaß. Am meisten Spaß macht es mit mehreren Spielern und dafür bietet sich ein Server an. Ich beschreibe hier also mal den (eigentlich recht einfachen) Prozess einen Server unter Windows ans Laufen zu bekommen.
Weiterlesen >>

Bind9 mit RRL Patch erstellen

Für mich zur Erinnerung…

  1. Aktuelle Bind9 Version (9.9.4rc1) herunterladen und entpacken
    wget http://www.isc.org/wp-content/plugins/email-before-download/download.php?dl=fb67b91f00f1870e2919670cab569133
    tar xfvz bind-9.9.4rc1.tar.gz
  2. Den Patch für RRL (Response Rate Limit) herunterladen
    wget http://ss.vix.su/~vjs/rpz2+rl-9.9.4rc1.patch
  3. Patch in die Bind9 Sourcen einpflegen
    cd bind-9.9.4rc1/
    patch -p0 -l < ../rpz2+rl-9.9.4rc1.patch
  4. Um die selben Optionen zum kompilieren zu verwenden wie die bereits installierte Version mit named -V schauen, welche verwendet wurden
  5. Daraus ergibt sich folgender configure Aufruf:
    ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc/bind --localstatedir=/var --enable-threads --enable-largefile --with-libtool --enable-shared --enable-static --with-openssl=/usr --with-gssapi=/usr --with-gnu-ld --with-geoip=/usr --enable-ipv6 CFLAGS="-fno-strict-aliasing -DDIG_SIGCHASE -O2" LDFLAGS="-Wl,-Bsymbolic-functions -Wl,-z,relro" CPPFLAGS="-D_FORTIFY_SOURCE=2" --enable-rrl
  6. Kompilieren und installieren make && make install
  7. Ergebnis:
# named -V
BIND 9.9.4-rpz2+rl.13214.22rc1 (Extended Support Version)  built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' '--enable-rrl'
using OpenSSL version: OpenSSL 1.0.1 14 Mar 2012

Jetzt ist es möglich, in der named.conf die Option zur Rate Limit einzutragen

options {
        rate-limit {
                responses-per-second 25;
                window 5;
        };

};

Weitere Informationen zu RRL hier

Nginx und IPv6

Von meinem Provider habe ich ein /64 IPv6 Netz zugewiesen bekommen, und natürlich möchte ich dieses auch für meinen Blog in Betrieb haben. Also gilt es, ngnix beizubringen bitte auch auf IPv6 zu reagieren.

Weiterlesen >>

Titanium Studio

Zur Entwicklung von mobilen Apps gibt es einige schöne Frameworks, um die Arbeit zu
erleichtern. Eines davon ist Appcelerator Titanium. Aus Berichten und dem was ich auf
der Seite gesehen habe, schaut das alles ganz gut aus, also: Testen wir mal.
Weiterlesen >>

Commit Logs From Last Night

Meine neue Lieblingsseite für die nächsten 10 Minuten:
http://www.commitlogsfromlastnight.com/

my titles are seriously fucked
Fucking fucketi fuck city discovery, better templates, added simple grid and other fucking shit
removed shitty class files fuck you vaishaal

Fein!