Donnerstag Okt. 18, 2012

Python Interface für Apache Solr

Wer's etwas komfortabler haben möchte, wenn er von Python aus Solr ansprechen will, der kann das über diese API tun. Macht die Sache viel einfacher und komfortabler und man kann weiterhin die gewohnte Python-Syntax verwenden.

Apache Solr Reference Guide PDF

Fast 400 Seite stark ist dieses frei verfügbare PDF von LucidWorks zum Solr Suchserver. Da steht so ziemlich alles drin, was man über Solr wissen muß - vermutlich schon zuviel ;-) Alternativ hier das Ganze in HTML.

Weiter Informationen:
Von Formatübersetzern, Textverstehern und Textsuchern - Lucene, Solr, Tika oder UIMA
Die Neuerungen von Apache Solr 4.0

MySQL Index Design und Tipps / MySQL Upgrading

Auf der Percona Seite gibt es zwei sehr interesseante Slides / Webinars zum Thema MySQL (englisch):

Index-Design: Tools und Techniken
MySQL Indexing: Best Practices

Sehr interessant und einfach erklärt, wie man mit Indizes vernünftig in MySQL umgeht und verwaltet. Es werden z.B. div. Tools vorgestellt, mit denen man relativ einfach prüfen kann, ob ein Index überhaupt notwendig ist oder wie man raus findet, auf welche Spalten ein Index sinnvoll ist. Zu viele Indizes sind ja bekanntlich auch nix... ;-)

Dann noch ein weiteres Webinar mit Slides zum Thema MySQL Updates und welche Möglichkeiten es gibt, eine MySQL möglichst schnell und problemlos auf eine neue Minor- oder Major-Release zu heben.

Teil eines Videos verlustfrei kopieren bzw. herrausschneiden mit Linux und ffmpeg

ffmpeg -ss <start zeit in hh:mm:ss> -t <dauer in hh:mm:ss> -i originaldatei.mpeg -acodec copy -vcodec copy out.mpeg

Mittwoch Okt. 17, 2012

Apache Verzeichnis freigeben - außer einem...

Manche Dinge kosten einen wirklich die letzten Haare... ;-) Man hat ein DocRoot-Verzeichnis "/", welches man absperren will, aber einen Ordner "/public" will man für die ganze Welt erreichbar haben. Das kann man sehr schön wie folgt lösen:

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user
SetEnvIf Request_URI "(path/to/directory/)$" allow
SetEnvIf Request_URI "(path/to/file\.php)$" allow
Order allow,deny
Allow from env=allow
Satisfy any

Also ganz normal die üblichen Auth*-Direktiven rein und Require valid-user, dann setzt man mit SetEnvIf für jeden Pfad bzw. Datei eine allow-Variable und bei "Allow from env=allow" sagen wir dem Apache, das der Zugriff auf Resourcen gestattet ist, wenn sie mit der allow-Variable ausgestattet ist. Ansonsten kommt die Passwortabfrage. Praktische Sache :-)

Im Orginal kann man das hier nachlesen (mit noch etwas mehr Information): Stupid htaccess Trick: Enable File or Directory Access to Your Password-Protected Site

python-twitter

Twitter API über Python ansprechen mit python-twitter - Alternativ: Python Twitter Tools (Gentoo Paket: dev-python/twitter).

Samstag Okt. 13, 2012

Twitter RSS Feed Getter

Wenn schon immer gestört hat, das man bei Twitter nicht so einfach an den RSS-Feed eines Users ran kommt, dem hilft diese Seite von Charlie Harvey: Twitter RSS Feed Getter. Twitter Username oben rein pasten, Fetch RSS klicken und dann kann man sich auf der nächsten Seite einfach die URL kopieren und in den bevorzugten RSS-Reader übernehmen, fertig :-)

Freitag Okt. 12, 2012

MongoKit - Dokumentenmapping mit Python und MongoDB

Will man Dokumente in MongoDB mit Python speichern, nimmt man PyMongo - oder MongoKit ;-) Letzterer setzt auf PyMongo auf und wenn man will, kann man auch direkt auf die PyMongo API durch greifen, wenn's pressiert... Aber mit MongoKit ist das Dokumentenhandling sehr schön gemacht. Man erzeugt eine Python-Klasse, die von Document vererbt und definiert dort seine Dokumentenstruktur. Zusätzlich kann man noch sog. Validators hinzufügen, die dafür sorgen, das Constraints eingehalten werden. Das sieht dann z.B. so aus:

def max_length(length):
    def validate(value):
        if len(value) <= length:
            return True
        raise Exception('%s must be at most %s characters long' % length)
    return validate

class User(Document):
    structure = {
        'name': unicode,
        'email': unicode,
    }

    validators = {
        'name': max_length(50),
        'email': max_length(120)
    }

    use_dot_notation = True
    def __repr__(self):
        return '<User %r>' % (self.name)

Webseiten bauen mit Python und Flask

Maxime Bouroumeau-Fuseau hat eine sehr gute Einführung geschrieben, wie man Webseiten in Python und mit Hilfe des kleinen, aber feinen Frameworks Flask baut. Alle wichtigen Infos auf eine Seite mit weiterführenden Links rund um's Thema. Sehr gut gemacht!

Donnerstag Okt. 11, 2012

Bootstrap Theme anpassen

Um eine Webseite schnell raus zu pushen, verwenden viele inzwischen Twitters Bootstrap.  Antonin Januska beschreibt in ihrem Artikel How To Build & Customize Your Own Bootstrap Theme sehr schön und ausführlich, wie man dieses Theme an eigene Bedürfnisse anpassen und erweitern kann und erwähnt viele Tools, die die Arbeit erleichtern.

Mittwoch Okt. 10, 2012

HTML zu PDF/Jpeg konvertieren mit Webkit und wkhtmltopdf

wkhtmltopdf bzw. wkhtmltoimage ist ein ganz nettes Kommandozeilentool, das Webseiten in PDF bzw. JPEG konvertiert. Dabei kommt die Webkit-Engine zum Einsatz. Die rendert Webseiten sauber raus. Andere Tools verwenden meistens Renderengines, die nur einen Bruchteil an Features unterstützen. Dabei ist der Aufruf ganz einfach z.B.:

wkhtmltoimage-amd64 --use-xserver http://www.tauceti.net bild.jpg

Wenn das Ganze auf einem Server läuft, braucht man noch Xvfb (eine Art virtuellen XServer) z.B.:

nohup Xvfb -ac :1 &

Einige Features brauchen einen XServer (den man auf einem Server meist ja nicht hat) und das können wir mit Xvfb sehr einfach realisieren.

In diesem Zusammenhang sei noch auf PhantomJS hingewiesen. Damit lassen sich z.B. automatisierte Tests von Webseiten relativ einfach realisieren. Setzt ebenfalls auf Webkit auf.

Autoguiding in KStars

KStars ist ein kleines, aber feines Planitarium Programm in KDE. KRNO arbeitet an Ekos, mit dessen Hilfe KStars jetzt auch Autoguiding Funktionen bekommt. Astronomiesoftware gibt es unter Linux inzwischen eine ganze Reihe, aber Autoguiding war noch ein etwas wunder Punkt. Damit sollten dann auch astronomische Langzeitaufnahmen möglich werden. Wenn alles gut läuft, sollte Ekos für KDE 4.10 soweit sein, das im Januar erscheinen wird.

Freitag Okt. 05, 2012

Unit-Tests mit JavaScript

Eine kleine Einführung in das Unit-Test JavaScript-Framework Jasmine auf heise open.

Gentoo in der Cloud: Bootstrapping

Ein Skript mit dem man Gentoo in der Cloud bootstrappen kann. Hier noch ein Gentoo EC2 Tutorial dazu.

Donnerstag Okt. 04, 2012

Failover Redis Setup mit Sentinel

Für die NoSQL Redis gibt es eine ganz interessante Entwicklung (aktuell noch Beta), um die DB ausfallsicherer zu machen. Das Ganze nennt sich Sentinel. Eine kleine Einführung findet sicher hier