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

Facebook Development – Internet Explorer, Cookies und iFrame’s

Na klasse! Da hat man seine App fertig und macht nochmal die obligatorischen Browser-Tests und dann das: Der IE weigert sich standhaft den Auth-Cookie zu setzen. Ich habe wirklich lange nach einer Lösung suchen müssen.

Das Problem ist folgendes:

Die Sicherheits-Einstellungen des Internet Explores verbieten das Setzen eines Cookies Innerhalb eines IFrames (nichts anderes ist ja das Facebook Canvas). Ich habe mir daraufhin andere Facebook-Apps angeschaut und tatsächlich: Selbst so bekannte Anwendungen wie “Mafia Wars” bleiben in der Authentifizierungs-Schleife hängen.

Abhilfe schafft das Setzen des Cookies explizit zu erlauben. Dies geschieht über das “Devil Eye” in der Statusleiste des IE. Für die meisten Benutzer ist das aber keine wirklich praktikable Lösung.

Es geht aber auch anders.

Mittels des sogenannten P3P-Headers kann man eine “Privacy-Policy” setzen, die es der eingebetteten Seite erlaubt, einen Cookie zu speichern. Dies erfolgt durch das Senden eines Header Feldes “P3P” mit folgendem Inhalt:

CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT

Dann klappt es auch mit dem Internet Explorer.

Dies kann entweder per PHP, Python oder durch den Apache Webserver geschehen. Dazu muss die .htaccess nur um folgende Zeilen erweitert werden:

<IfModule mod_headers.c>
    <Location />
        Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""
    </Location>
</IfModule>

Doch was bedeuten diese Zeilen? Unter p3pwriter.com gibt es ein Schlüssel-Verzeichnis. Zum Beispiel steht “DEVi” für:

“Information may be used to enhance, evaluate, or otherwise review the site, service, product, or market. Opt-in means prior consent must be provided by users.”

Ich habe keine Ahnung, wie verpflichtend diese Policy ist und ob es rechtliche Konsequenzen hat, diese zu brechen. Jedenfalls bin ich docherstaunt, das Facebook diese Problematik anscheinend egal ist und nirgendwo eine Hilfestellung zu diesem Problem anbietet.

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.

Fundsache – Links und Termine

PHOTO:REUTERS/Stringer

PHOTO:REUTERS/Stringer


Wie bau ich eine iPhone App mit Flash? Woher bekomme ich freie Schriften für das Web? Wie filmt man einen Atombomben-Test und was geht eigendlich in Mexico’s Drogenkampf? Hier die Antworten :)

Post aus China – Shanghai GP3

Endlich sind Sie da: 25 Rollfilme aus China. Ich bin mal gespannt auf die ersten Bilder, denn wenn das was wird, ist der Shanghai GP3 aufgrund seines günstigen Preisses (1,30 das Stück) eine echte Alternative. Die Flickr Gruppe bietet jedenfalls äusserst ansprechende Beispiele, auch wen sich das auf dem Display nur schlecht beurteilen lässt. Ich werde mal einen durch die Rollei orgeln und dann berichten.

Der Film selbst ist ein Panchromatischer Schwarzweisfilm der Firma SMPIC diese macht neben Filmen auch Office Kopierer und optische Geräte. Meist im Auftrag für diverse andere Firmen wie Brother, Xerox usw.

Techniche Details Shanghai GP3:
~ Film Speed- ISO 100/21°
~ Format-120 Negative D-76
~ Color Temperature-Daylight type (5500K)

Entwicklung Shanghai GP3:
~Kodak D-76 Developer, 8mins, 20°C / 68°F
~Kodak D-76 1:1, 14mins, 20°C / 68°F
~Kodak D72 1:4, 4mins, 20°C / 68°F
~Kodak D23, 12mins, 20°C / 68°F
~Agfa Rodinal 1:50, 15mins, 20°C / 68°F
~Ilford ID11, 8mins, 20°C / 68°F
~1 + 15 (A), 5mins, 20°C / 68°F
~1 + 31 (B), 7.5mins, 20°C / 68°F

Wobei – grade bei den Entwicklungszeiten habe ich schon von stark abweichenden Werten gehört und bin von daher auf das Ergebnis gespannt.

Besonders nett fand ich auch die Dankes-Karte des ebay-Verkäufers in der gewohnt chinesichen Übersetzugsqualität ;)

Fundsache – Links und Termine

Ob Dich der Konsum von Whisky aus Diabetiker-Urin oder eher das Arbeitsumfeld von Hemingway inspiriert, musst Du selbst entscheiden. Wünsche jedenfalls viel Spaß und Inspiration mit der frisch umbenannten Linksliste…

Links

Termine

Metropia – Düstere Animationsfilm

Letzte Woche habe ich im Rahmen des “Fantasie Filmfestes” Metropia gesehen und möchten Euch diesen atmosphärischen Animationsfilm nicht vorenthalten. Regisseur “Tarik” beschreibt darin eine düstere und surreale Zukunft, in der die gesamte Welt von einem Unternehmen beherrscht wird. Dieses schöpft seine Macht aus der Kontrolle des globales U-Bahn Netzes und… eines Shampoos :)


Die Story kann zwar nicht mit 1984 mithalten, doch gelingt es eine visuell außergewöhnlich und überzeugend morbide Zukunft darzustellen.

Zwei Interessante Details gibt es noch: Zum einen die aufwendige Produktion. Der Film ist zum Großteil aus Fotos entstanden und das Mitwirken von “Stig Larsson”, der durch seine postum veröffentlichte „Millennium-Trilogie“ international bekannt wurde.

Folder Art – Kunst auf dem Desktop

Wenn euch mal langweilig ist, hier ein paar Inspirationen wie ihr die Zeit rumkriegt. Selbst wenn euch der Chef alle Minispiele gesperrt hat ;)