Donnerstag Jan. 24, 2013

Python Unit Testing Tutorial

Doug Hellman hatte in seinem Python Module Of The Week das unittest Modul (Python 2.6) ganz gut beschrieben. Corey Goldberg hat das Ganze für Python 3.3 neu aufgelegt.

Git Commits verschwinden zufällig

Auf Stackoverflow findet man einen ganz guten Artikel, warum Commits eines Developers aus Git plötzlich scheinbar verschwinden ohne groß Spuren (sprich History) zu hinterlassen. Ein Problem könnte die ours merge strategy sein...

GUI für die Git History

Das Programm Giggle zeigt unter Linux die Git History recht schön an. Das erleichtert es einem ungemein, den Schuldigen zu finden, wenn mal wieder jemand einen Commit überbruzelt hat, ohne den Konflikt sauber aufzulösen...

Schöne Ausgabe der Git History auf der Kommandozeile

Wenn man sich folgende Aliase in die .git/config einträgt, kann man sich die Git-History auf der Kommandozeile recht schön anzeigen lassen:

[alias]
lg1 = log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)— %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative
lg2 = log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(bold white)— %an%C(reset)' --abbrev-commit
lg = !"git lg1"

git lg
git lg2

Video: Warum die Mondlandung kein Fake war...

Nettes Video auf universetoday.com warum die Mondlandung kein Fake war...

Anzahl und Zustand TCP-Verbindungen

Wenn man schnell mal wissen möchte, wieviele TCP-Verbindungen sich in welchem Zustand befinden, hilft dieser kleine Einzeiler:

netstat -an | grep tcp | awk '{print $6}' | sort | uniq -c

189 ESTABLISHED
11 FIN_WAIT2
25 LISTEN
8 SYN_RECV
1891 TIME_WAIT


 

Dienstag Jan. 22, 2013

Statische Bildergallerie erzeugen mit iGal

Wenn man mal schnell aus ein paar Bildern eine kleine statische Webseite mit einer Bildergalerie erzeugen will, ist iGal2 ganz praktisch. Einfach installieren (ist bei div. Linux-Distributionen dabei), in das Verzeichnis mit den Bildern wechseln und igal2 eingeben. Dann die index.html aufrufen in dem Verzeichnis mit dem Browser und glücklich sein ;-)

Donnerstag Jan. 17, 2013

PyQuery - JQuery in Python

Und weil wir vorher gerade bei HTTP-Requests waren: Wer HTML-Seiten manipulieren oder durchstöbern möchte, der tut das mit JavaScript oft mit JQuery. Gleiches geht auch mit Python mit PyQuery. Es wird leider nicht der komplette Funktionsumfang von JQuery unterstützt, aber es ist sehr viel dabei. Da kann man die meisten anderen HTML-Tools oftmals gleich in die Tonne treten ;-)

Python Requests HTTP Lib

Also wer mit Python HTTP-Requests machen möchte, der sollte sich mal unbedingt Requests anschauen und urllib2 gleich vergessen. Die Implementierung ist einfach super und sowas von elegant und effektiv, das sieht man nicht sehr oft. Beispiel gefällig?

>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'

>>> r.encoding
'utf-8'

>>> r.text
u'{"type":"User"...'

>>> r.json() 
{u'private_gists': 419, u'total_private_repos': 77, ...} 

>>> r = requests.get('https://github.com/timeline.json')
>>> r.text
'[{"repository":{"open_issues":0,"url":"https://github.com/...

Also wenn das nicht einfach und effektiv ist... :-)

Passed dazu gibt es dann noch requests-cache. Das ist ein transparenter Cache für die Requests-Lib. Ihn interessieren keine HTTP-Header, sondern er cached einen Seitenabruf solange man die Cachezeit angegeben hat. Sehr praktisch wenn man externe Resourcen während des Debuggens miteinbeziehen muss. Macht die Sache erheblich schneller.

Samstag Jan. 12, 2013

MediaGoblin

MediaGoblin ist eine OpenSource Media Publishing Platform, die man sich als dezentralisierte Alternative zu Flickr, YouTube, SoundCloud, usw. vorstellen kann. Das Ganze ist in Python geschrieben und steht noch etwas am Anfang, aber man kann damit schon ganz gut arbeiten.

Sonntag Dez. 30, 2012

Mozilla Popcorn Maker

Die Mozilla Foundation hat einen einfachen, freien Web-Videoeditor names Popcorn Maker veröffentlicht. Neben den üblichen Videoschnittfunktionen kann man auch Maps, Links, Text, usw. einbinden, also praktisch Video und Audio mit dem Web verbinden.

Ansible Provisioning Framework

Eine Reihe von Modulen, Plugins und Dokumentation für die Provisionierung von System zum dem Management-Tool Ansible. Ansible fällt in die Kategorie Konfigurationsmanagement wie Puppet, Chef, usw. allerdings mit einem ganz anderen Ansatz.

Varnish HTTP Authentication

Varnish kann ja von Haus aus keine Authentifizierung. Dieser Artikel beschreibt, wie man das trotzdem einigermaßen hinbekommt UND die Seiten weiterhin gecached werden können.

Donnerstag Dez. 20, 2012

Flask und Redis

Wie man die NoSQL Redis zusammen mit dem Flask Framwork nutzt, zeigt dieses Snippet. Das Beispiel beschreibt wie man Online User zählt.

MySQL und DevOps

Slides und Webinar zum Thema "Manage MySQL like a Devops Sysadmin".