Archive for the ‘ administration ’ Category

goAccess ein Apache, NginX real-time log analyzer

so eben gefunden und für cool befunden :)

wer sich bisher mit grep und awk duch seine logs hangelt sollte sich mal goAccess anschauen.

http://goaccess.prosoftcorp.com/

einfacher geht es nicht

goaccess -f /var/log/apache2/access.log

oder wer wie ich ungerne zusätzliche software auf seinem Server Installiert.

ssh user@server 'cat /var/log/apache2/access.log' | goaccess

und so sieht das ganze aus.

goaccess

CodeBox – Git Hosting

Lange zeit war ich auf der suche nach einem Web-basierenden GIT-Interface. Dabei ist es ja nicht so das man in der Cloud nicht fündig würde. Neben GitHub gibt es noch etliche Anbieter. Doch die kommen einen bei vielen privaten Projekte auch sehr teuer.

Wendet man sich Freien Alternativen zu, bleiben eigentlich nur Trac, Gitorious, Redmine und Indefero.

Trac
Für meine Ansprüche ist das in Python geschriebene Trac zu mächtig. Ich suche was einfaches an dem ich auch Spaß habe. Und das nicht erst Tage für die Konfiguration verschlingt.

Gitorious,
ist nett allerdings hat mich eine Test Installation so viele Nerven gekostet das ich von einem ständig zu wartenden Produktiv System Abstand genommen habe.

Das ist leider eine Erfahrung die ich bisher bei allen Ruby Anwendungen gemacht habe. Wahrscheinlich liegt es auch daran das ich durch das Ruby/Gem Universum nur bedingt durchsteige.

Hinzu kommt das Gitorious keinen BugTracker hat.

Redmine.
Ebenfalls in Ruby geschrieben bietet Redmine eine insgesamt sehr angenehme Oberfläche. Allerdings ist die Repository Verwaltung nicht integriert.

Indefero,
ist in php geschrieben lässt sich leicht Installieren und macht auch sonst einen guten Eindruck. Mir gefällt lediglich die Adaptierte Google Code Oberfläche nicht wirklich. Für jemanden der sich daran nicht stört ist es aber das einfachste und Übersichtlichste System der hier vorgestellten.

Während die Tage mit Recherche, Installieren und ausprobieren ins Land zogen, ertappte ich mich immer öfter dabei, wie ich darüber nachdachte ein eigenes System zu entwickeln. Meine Grundüberlegung dabei, dass SSH in Kombination mit Authorized_Keys, ja schon den größten teil frei Haus liefert.

Ein Prototyp war dem entsprechend auch in ein paar Stunden geschrieben. Gammelte dann aber doch wieder viel zu lange in der Projekt Schublade.

Da die frage nach einer geeigneten Code Verwaltung aber immer wieder aufkam und sich in Gesprächen herausstellte das sich auch andere mit der bestehenden Auswahl schwer tun, habe ich die letzten Wochen nochmal etwas zeit investiert und möchte euch das Ergebnis nicht vorenthalten.

Neben der reinen Code-Verwaltung sollte das System die Möglichkeit geben alle relevanten Daten und Dokumente zu einem Projekt Vor-zuhalten.

Daraus ergibt sich die folgende Liste bisher implementierter Features.

Features

  • Öffentliche und Private Projekte
  • Activity Stream
  • Commit View/Diff
  • Project Members
  • Mehrsprachig (Vorbereitet)

Features pro Projekt

  • Milestones
  • Issue Tracker
  • Repository Browser
  • Downloads
  • Wiki

An der ein oder anderen Stelle kann es noch etwas Liebe vertragen. Das Logging würde ich gerne nochmal um-schreiben und das User-Management etwas erweitern.

Sollte ich nun euer Interesse geweckt haben würde ich mich freuen den ein oder Tester gewinnen zu können. Schreibt mir dazu einfach eine Mail mit dem Betreff “CodeBox” an dn(at)alphalog.de

Build and Install Cinepaint on Ubuntu 10.10

Cinepaint lässt sich zurzeit leider nicht so einfach unter Debian oder Ubuntu Installieren. Aber mit ein paar Anpassungen lässt es sich aus dem CVS bauen.

Hier eine kurze schritt für schritt Anleitung.

1. ubuntu-cvs.sh speichern.

2. In ubuntu-cvs.sh Zeile 24 in “export LD_LIBRARY_PATH=/usr/lib/local” ändern.

3. CVS per “apt-get install cvs” installieren.

4. Skript mit “sh ubuntu-cvs.sh” ausführen (bricht bei ersten Durchlauf ab)

5. ca. Zeile 304 “cvs/cinepaint-project/cinepaint/plug-ins/collect/collect.cpp”

- gimp_layer_set_name (layers[0], strrchr(fc->value(1),'/')+1);
+ gimp_layer_set_name (layers[0], (char *)(strrchr(fc->value(1),'/')+1));

6. ca. Zeile 341 “cvs/cinepaint-project/cinepaint/plug-ins/collect/collect.cpp”

- gimp_layer_set_name(layers[0], strrchr(fc->value(i),'/')+1);
+ gimp_layer_set_name(layers[0], (char *)(strrchr(fc->value(i),'/')+1));

7. Skript mit “sh ubuntu-cvs.sh” erneut ausführen.

Webseiten auf Speed – Content Delivery Network 1/2

Trotz immer besserer Internetanbindungen wird die Optimierung der Ladezeit aus verschiedenen Gründen immer wichtiger. Der Einsatz eines CDN (Content Delivery Network) kann dabei ein wichtiger Optimierungsfaktor sein, der sich positiv auf folgende Punkte auswirken kann:

  • Die Absprungrate
  • Suchmaschinen-Plazierung
  • Server-Last/-Traffic
  • Kostenreduzierung

Doch zuerst: Was ist ein CDN oder Content Delivery Network? Ein CDN ist meist ein weltweit oder kontinentales Netzwerk aus Servern, die Inhalte an den Besucher ausliefern können. In diese werden statische Inhalte wie Bilder, Javascript, CSS und Videos vorgehalten, die dann von einem möglichst nah am Besucher liegendem Server an diesen ausgeliefert werden. Da die Inhalte zum einen nicht durch das ganze Netz transportiert werden müssen, und zum anderen der Client von zwei Ressourcen parallel Daten anfordern kann, steigt die Ladegeschwindigkeit und die Latenz sinkt.

Netzwerk ohne Content Delivery Network

Netzwerk ohne Content Delivery Network

Netzwerk mit Content Delivery Network

Netzwerk mit Content Delivery Network

Kommen wir nun zu den Punkten, auf die sich die Verwendung eines solchen Netzwerkes positiv auswirken kann.

Die Absprungrate

Der erste Punkt ist eigentlich jedem klar: Wer auf eine Seite warten muss, springt ab und obwohl die Anbindungen in der Regel schneller werden, sind die Besucher wesentlich ungeduldiger als noch vor ca. 5 Jahren, als das Warten auf eine Seite noch zum Alltag gehörte. Welche Korrelation zwischen Ladezeit und Absprungrate besteht, ist zu individuell, um darüber eine pauschale Aussage zu treffen. Allerdings gilt für alle Seiten: Je schneller, desto besser :)

Google hat dazu in einem Test das Ausliefern ihrer Suchergebnisse künstlich verzögert. Und zwar im Maximum um gerade mal 400 ms. Die Folge ist ein Einbruch des Suchvolumens um 0,59%. Dieses Ergebnis ist meiner Meinung auch noch extrem geschönt, da Google einen hohen Trust hat und die Benutzer wissen, was Sie erwartet. Ein Erstbesucher auf Ihrer Seite weiß das nicht, daher ist dort die Absprungrate meist um ein Vielfaches höher.

Suchmaschinen Platzierung

Zu Punkt zwei. Diese Auswirkung wird oft vergessen, aber Fakt ist, dass alle großen Suchmaschinen offen zugeben, die Ladezeit mit in das Ranking aufzunehmen. Zu welchem Teil, darüber lässt sich natürlich nur spekulieren. Aber gering kann er nicht sein, wenn Yahoo und Google sogar eigene Page-Speed-Analyse-Werkzeuge als Browser-Plugin anbieten. Aber selbst, wenn sie die Ladezeit nicht als Ranking-Faktor einbeziehen würden – die Absprungrate und Verweildauer auf Ihrer Seite ist es auf jeden Fall. Und die hat ebenfalls einen Einfluss auf das Ranking. Hier beißt sich also die Katze in den Schwanz….

Darüber hinaus wird die Verwendung eines CDN so oder so positiv bewertet. Bei Google heißt es zwar nur, dass man statische Inhalte wie Bilder, Javascript und CSS auf eine sogenannte “cookieless domain” auslagern soll. Yahoo dagegen vergibt nur die volle Punktzahl, wenn ein echtes CDN eingesetzt wird.

Server-Last/-Traffic

Der letzte Punkt ist die Entlastung des eigenen Servers. CDN sind eine wirklich gute Möglichkeit, Last vom Server zu nehmen. Dieser kann sich ganz auf die Bereitstellung der dynamischen Inhalte konzentrieren, ohne die vielen weiteren Requests für die restlichen Seitenelemente bearbeiten zu müssen. Aber auch wer mit Engpässen aufgrund eines hohen Traffic-Aufkommens Probleme hat, kann sich mit der Auslagerung von Downloads oder Audio-/Video-Inhalten in ein CDN helfen.

Kostenreduzierung

Dieser Punkt mag den ein oder anderen verwundern, da Content Delivery Networks in der Regel sehr teuer sind. Aber es gibt auch Fälle, wo sich durch Ihren Einsatz sparen lässt. Wer seine Seite in der Cloud hosted, bezahlt in der Regel recht viel für den anfallenden Datenverkehr. Im Beispiel von JiffyBox sind das pro GB 0.09 Cent. Dagegen kostet MaxCDN pro GB umgerechnet nur 0.07 Cent und wird bei der Abnahme von größeren Volumen sogar noch günstiger.

Fazit

Kleine, performante Seiten stehen im krassen Gegensatz zum Trend, immer mehr Bilder/Videos und JavaScript-Frameworks einzusetzen. Trotzdem sollte vor dem Einsatz eines CDN zuerst einmal die Datenmenge reduziert werden z.B. durch Kompression der verwendeten Scripte und CSS-Dateien. Auch die Bilder sollten nochmal durch ein Optimierungs-Tool wie optipng laufen. Photoshop hat das leider nicht so ganz raus…

Zur Messung der eigenen Seiten-Performance empfiehlt sich der Einsatz eines Browser-Plugins wie PageSpeed oder eine Onlinemessung wie sie z.B. Pingdom bietet. Diese geben auch gute Tipps zu weiteren Optimierungs-Faktoren.

Nächste Woche geht es dann im Teil zwei weiter. Dieser wird verschiedene Typen von CDN beleuchten und auch ein paar Tips und Empfehlungen geben, wie Ihr günstig selber ein CDN für Euch nutzen könnt.

moreutils – a growing collection of unix tools

moreutils a growing collection of the unix tools that nobody thought to write long ago when unix was young

I never heard about moreutils befor, but the toolset looks very usefull.

  • combine: combine the lines in two files using boolean operations
  • ifdata: get network interface info without parsing ifconfig output
  • ifne: run a program if the standard input is not empty
  • isutf8: check if a file or standard input is utf-8
  • lckdo: execute a program with a lock held
  • mispipe: pipe two commands, returning the exit status of the first
  • parallel: run multiple jobs at once
  • pee: tee standard input to pipes
  • sponge: soak up standard input and write to a file
  • ts: timestamp standard input
  • vidir: edit a directory in your text editor
  • vipe: insert a text editor into a pipe
  • zrun: automatically uncompress arguments to command

Simple and fast Appliance Setup

With Ubuntu’s vmbuilder the creation of a virtual appliance is fast and easy. Try something like this and your get an ready to use image.

sudo vmbuilder kvm ubuntu \
--arch 'amd64' \
--rootsize '4096' \
--components 'main,universe' \
--addpkg mysql \
--user 'ubuntu' --pass 'ubuntu' \
-v --debug

Speedup Feng Office

Feng Office is cool, but slow. I found out that you can speed up your system by adding the following lines to your config/config.php.

define('USE_JS_CACHE', true);
define('COMPRESSED_CSS', true);
define('COMPRESSED_JS', true);

in my case, Feng Office rendering speed is now 30-40 % faster.