Montag Nov. 05, 2012

Real-Time Delivery Architecture @ Twitter

In dieser Präsentation/Video erklärt Raffi Krikorian Twitter’s Timeline Architektur, den “write path” und “read path” und wie man damit 300k Tweets/Sek. ausliefert.

ics/iCalender für Python

Mit der Internet Calendaring and Scheduling (iCalendar) for Python Lib kann man u.a. ics-Files (iCalender) erstellen und verwalten.

Kommandozeilentool für Cloud Storage - gsutil

Mit gsutil kann man Cloudstorage bei Google Storage und Amazon's Simple Storage Service (S3) verwalten. Für S3 gibt es daneben auch noch das sehr gute s3cmd.

Samstag Nov. 03, 2012

Scarlet - HTTP Frontend für Redis

Scarlet ist in Go geschrieben und bietet ein HTTP-Frontend für Redis. Könnte ganz praktisch sein, wenn man mal keine Redis-Lib zur Verfügung hat.

String mit der Bash zerlegen

IFS=';' read -ra X <<< "$IN"
for i in "${X[@]}"; do
    # process "$i"
done

ColorScheme Designer

Auf dieser Seite kann man sich recht einfach ein Farbenschema für seine Website zusammenstellen. In einer Vorschau kann man sich dann gleich anzeigen lassen, wie das dann mal aussehen wird und man kann sich die Palette in div. Formaten gleich exportieren. Sehr praktische Sache...

HTML5 Experimente

hakim.se.jpg Ein paar sehr schöne HTML5 (GUI)Experimente / visuelle Effekte findet man auf der Seite von Hakim El Hattab.

Mittwoch Okt. 31, 2012

python-progressbar

Wenn ein Task mal länger läuft, dann hätte man ja gerne oft eine Fortschrittsanzeige. Mit der python-progressbar geht das sehr einfach. 17 Beispiele bzw. verschiedene Arten von Fortschrittsanzeigen sind schon dabei, weitere kann man selber hinzufügen.

Dokumentenscanner unter Linux - Fujitsu ScanSnap S1500

Im neuen Linux Magazin 12/12 beschreibt Perlmeister Schilli, wie er seine Bücher mit Hilfe von Perl und dem Dokumentenscanner Fujitsu ScanSnap S1500 einliest. Der scheint unter Linux gut zu funktonieren und wird von SANE unterstützt. Robin Clarke hat hier für ein Script geschrieben, das die die Scan's automatisch einliest und als PDF speichert, sobald man auf den GO Knopf des Scanners drückt.

Einfaches Solr Start/Stop-Skript

Hier ein kleines Start/Stop-Skript für Solr, wenn man den integrierten Jetty verwendet. Unter Ubuntu braucht man das "daemon" Paket, damit das Ganze funkt. Das Verzeichnis "/opt/solr" sollte dann dem User/Gruppe gehören, den man unter "--user" angibt. Ebenso sollte natürlich das Log-Verzeichnis existieren und dem User gehören, unter dem Solr dann läuft.


#!/bin/sh

start () {
    echo -n "Starting solr..."

    # start daemon
    daemon --chdir='/opt/solr/example' --pidfiles='/opt/solr' --user=user:group --command "java -jar start.jar" --respawn --output=/var/log/solr/solr.log --name=solr --verbose

    RETVAL=$?
    if [ $RETVAL = 0 ]
    then
        echo "done."
    else
        echo "failed. See error code for more information."
    fi
    return $RETVAL
}

stop () {
    # stop daemon
    echo -n "Stopping solr..."

    daemon --stop --pidfiles='/opt/solr' --name=solr --verbose
    RETVAL=$?

    if [ $RETVAL = 0 ]
    then
        echo "done."
    else
        echo "failed. See error code for more information."
    fi
    return $RETVAL
}


restart () {
    daemon --restart --pidfiles='/data/solr' --name=solr --verbose
}


status () {
    # report on the status of the daemon
    daemon --running --pidfiles='/opt/solr' --verbose --name=solr
    return $?
}


case "$1" in
    start)
        start
    ;;
    status)
        status
    ;;
    stop)
        stop
    ;;
    restart)
        restart
    ;;
    *)
        echo $"Usage: solr {start|status|stop|restart}"
        exit 3
    ;;
esac

exit $RETVAL


KWin Effekt implementieren mit JavaScript und Plasmate

Martin Graesslin hat auf seiner Seite einen Screencast, wie man mit JavaScript und Plasmate einen KWin Effekt erstellt.

Dienstag Okt. 30, 2012

Die Giana Sisters sind zurück!

Eines der Jump'n'Run Kultspiele auf dem Amiga ist zurück: GIANA SISTERS: TWISTED DREAMS Läuft aktuell auf Windows XP, Vista und Windows 7 und ist seit ein paar Tagen für 14,99 Dollar erhältlich. 


Montag Okt. 29, 2012

Realtime Analysen mit Redis und Python: bitmapist

Wer schnell Antworten auf 

Wie oft war User 123 heute, diese Wochen, diesen Monat online?
Hat User 123 Aktion X ausgeführt? 
Wie viele User waren aktiv dieses Monat? Diese Stunde?
usw.

braucht, der sollte sich bitmapist (github) anschauen und implementieren.

Sonntag Okt. 28, 2012

Manchmal entdeckt man noch interessante User-Agents...

Mozilla/4.0 (compatible; MSIE 4.01; Digital AlphaServer 1000A 4/233; Windows NT; Powered By 64-Bit Alpha Processor)

Zu cool: Windows NT mit IE 4 auf einem DEC Alpha :-) Der hat aber sicherlich schon ein paar Jährchen auf dem Buckel... Manche Dinger gehen einfach nicht kaputt wie die Sun 420/450 mit UltraSPARC II - einfach unkaputtbar...

Montag Okt. 22, 2012

RedisConf 2012

Am 21./22.10.2012 fand die RedisConf statt. pinterest.com betreibt wohl über zweihundert Redis-Server und dazu noch memcached und auch MySQL, wie zu erfahren war (siehe Notes Part II) -> Stand Mai 2012. Ein erstes Slide gibt es von Crashlytics: Scaling Crashlytics: Building Analytics on Redis 2.6 . Dann gibt es noch RedisConf Notes Part I, Part II, Part III und Part IV.

Mit Reddish gibt es auch eine GUI für Redis.

Weiterhin wurde Redis 2.6 freigegeben (Release Notes). Redis 2.6 unterstützt Lua Scripts. Hierfür gibt es jetzt das Repo of Lua Scripts for Redis

Dann wurde noch BigCache vorgestellt. Ein auf Redis basierender, verteilter und fehlertoleranter Cache (cache as a service) der zum memcached Protokoll binärkompatibel ist. 

Zum Schluss noch ein Tipp: redis-cli --bigkeys zeigt die Keys an, die viel Speicher im Dataset belegen.