Montag Juli 16, 2012

Links 20120716 - Leschs Kosmos, Graphen mit JavaScript, Websiteperformance messen, HTML5 Editor, Mousetrap

Leschs Kosmos - Die Homepage des Nachfolgers der legendären Sendung alpha centauri mit Prof. Harald Lesch. Im ZDF läuft Leschs Kosmos ja schon eine ganze Weile und zwischenzeitlich kann man über die Homepage Fragen an Harald Lesch per Mail und Video stellen.
sigma.js - Eine leichtgewichtige JavaScript Lib die Graphen mit Hilfe des HTML Canvas-Elements zeichnet.
load.in - Nicht ganz so umfangreich, wie die Messungen in Gomez oder Keynote, aber hier kann man von über 50 Locations in der ganzen Welt (für Deutschland z.B. Frankfurt) feststellen, wie schnell die eigene Webseite in div. Browsern ist. Das ist ganz praktisch, wenn man Kunden im Ausland hat, dann hat man hier u.U. eine Möglichkeit, die Speed zu testen.
Maqetta - Ein WYSIWYG HTML5 Editor der selbst in HTML geschrieben ist und deshalb keine Plugins benötigt.
Mousetrap - Mousetrap ist eine einfache JavaScript Lib, um Tastatur Shortcuts wie z.B. ALT+F2 abzufangen.

Links 20120715 - Ganeti Cluster, NoSQL, Piwigo

Ganeti - Ganeti ist eine Cluster Virtual Server Management Software die auf KVM und XEN aufbaut. Das Tool übernimmt das Management der VMs, Festplattenverwaltung, OS Installation, starten, stoppen und failover der Instanzen zwischen physikalischen Maschinen. Das Ganze ist für bis zu 40 Nodes ausgelegt. In Gentoo ist Ganeti als Paket über Portage installierbar.
Ganeti Tutorial PDF guide - Lance Albertson hat für Ganeti ein PDF Tutorial erstellt, um die Installation zu vereinfachen.
NoSQL matters und Berlin Buzzwords: Big Data und NoSQL in der Praxis angekommen
Piwigo - Eine freie Foto-Galerien Software/Verwaltung die nicht nur für den Desktop gedacht ist, sondern auch ein Mobil-Theme mitbringt, mit dem Foto-Galerien auch auf iPhone und Android gut aussehen.

Samstag Juli 14, 2012

Links 20120714 - Laserscanner, Finder Alternativen, Python IDE spyderlib

DAVID-Laserscanner 3D - Wer auf der Suche nach einem relativ günstigen 3D Scanner ist, der sollte sich mal hier umsehen. Ein Video gibt es hier bei focus.de bei Mattings Warentest zu sehen.
spyderlib: Spyder is the Scientific PYthon Development EnviRonment - Um meine Python-Programm nicht immer mit vim schreiben zu müssen, war ich auf der Suche nach einer guten OpenSource Pyhton-IDE. spyderlib fand ich dabei recht interessant. Hat Autovervollständigung, man kann Debuggen und Breakpoints setzen, ToDo Listen erstellen, Klassen- und Funktionenbrowser, pyflakes- (Fehlererkennung on the fly) und Pylint-Integration (Source-Qualität checken).
Mac OS X Finder Alternativen:
ForkLift 2: Also das Teil macht einen echt guten Eindruck. Kann sich u.a. mit FTP, SFTP, WebDAV, S3, iDisk, SMB, AFP und NIS verbinden, Terminal-Integration und x andere Features.
muCommander: Dual-Panel Interface und versteht sich mit FTP, SFTP, SMB, NFS, HTTP, Amazon S3, Hadoop HDFS und Bonjour
TotalFinder: Dual-Panel Interface und Tabs
Path Finder: Dual-Panel Interface, Tabs, Bookmarks, Source Control (Git, Subversion), Hex Editor

Links 20120713 - Nutch 2.0, HTML5 Game Pocket Island, Gentoo ffmpeg und libav

Nutch 2.0 - Eine Suchmaschine basierend auf Apache Solr (früher Lucene), die kürzlich in Version 2.0 erschienen ist. Damit lässt sich relativ einfach und schnell eine eigene Suchmaschine für z.B. ein Intranet und/oder externe Seiten aufbauen. Nutch fügt Solr noch webspezifische Eigenschaften wie Crawler, Link-Graph Datenbank und Interpretierung von div. Datenformaten (.doc, .xls, .html, .pdf, usw.) hinzu. Für Letzteres ist Apache Tika zuständig. Mit Tika kann man auch relativ einfach eigene Parser für div. Formate implementieren (über 50 Parser für die wichtigsten Formate werden schon mitgeliefert).
Pocket-Island - Ein Spiel realisiert in HTML5, das die Möglichkeiten mit dem neuen HTML5 Standard aufzeigt. Der Quellcode kann auf github runtergeladen werden.
Gentoo ffmpeg/libav - Da ich vor einiger Zeit mal einen Gentoo Blocker hatte, als ich das System auf den neuesten Stand bringen wollte, weg ffmpeg und libav... libav ist soz. ein Fork von ffmpeg mit ein paar zusätzlichen Patches. Gentoo bietet die Möglichkeit, das man Programme entweder gegen die alte ffmpeg-Implementierung linkt oder gegen die neue libav. Ich hatte bei einem Programm das ffmpeg-Useflag gesetzt, aber die anderen Programme unwissenderweise gegen libav gelinkt. Nachdem ich das ffmpeg-Useflag entfernt habe, lief das Update. Der Blogeintrag beschreibt das Ganze noch etwas übersichtlicher.

Mittwoch Juli 11, 2012

Links 20120711 - Percona Playback

Percona Playback - Mit Playback kann man Load auf die MySQL-Datenbank geben und reale Last simulieren. Das Programm liegt momentan noch in einer frühen Version vor.

Links 20120710 - Python rsync, Fernsehsuche

pyrsync - Implementiert den rsync-Algorithmus in puren Python, also kein Wrapper.
fernsehsuche.de - fernsehsuche.de bietet einen Überblick über die aktuellen Sendungen in den Mediatheken der privaten und öffentlich-rechtlichen Fernsehsender.

Donnerstag Juli 05, 2012

Links 20120705 - Python beschleunigen, Programmiergeschichte, Linux KVM mit USB

Pymothoa: JITing Python Over LLVM - Im Gegensatz zu anderen Projekten dieser Art (Python kompilieren, JIT, usw.) ändert Pymothoa nicht den Python Interpreter, sondern setzt auf Dekoratoren, um Funktionen zu kennzeichnen, die kompiliert werden sollen. Könnte ein interessanter Ansatz sein, wenn man rechenintensive Operationen in Python beschleunigen will, ohne gleich C-Erweiterungen schreiben zu müssen.
Kostenlose Programmierer-Geschichte von heise Developer - Eine Geschichte zur Gegenwart und Zukunft der IT.
KVM: USB redirection over the network - Wie man lokal angeschlossene USB Devices in KVM (Kernel Virtual Machine) über's Netz einhängt, beschreibt dieser Artikel.

Dienstag Juli 03, 2012

Cloud-Backup in Amazon S3 mit Duplicity

Mit Hilfe von Duplicity kann man Backups gepackt und verschlüsselt direkt in Amazon AWS S3 speichern und eignet sich deshalb gut als Offsite-Backupprogramm. Und so richtet man das Ganze unter Ubuntu bzw. Gentoo ein:

Installation 

apt-get install duplicity bzw emerge -av duplicity
apt-get install python-boto bzw. emerge -av boto

s3cmd installieren und einrichten

Das ist nur notwendig, wenn man von einem Rechner aus checken will, ob alles im S3 gelandet ist. s3cmd ist ein sehr praktisches Tool, wenn man von der Kommandozeile aus mit S3 interagieren will.

apt-get install s3cmd bzw. emerge -av s3cmd

Weiterhin braucht man eine $HOME/.s3cfg (auch nur, wenn man s3cmd nutzen will, wird nicht für Duplicity benötigt, aber praktisch, wenn man sich die S3 Buckets anguggen will...). Hierzu die s3cmd Anleitung lesen. Dort drin sind der access_key und der secret_key, denn man für den Zugriff auf S3 benötigt. Ihn findet man auch, wenn man sich in die AWS Console einloggt und dann auf die Credientials geht.

GnuPG installieren und einrichten

apt-get install gpg bzw. emerge -av gnupg

GnuPG einrichten

gpg --gen-key (Und dann den Anweisungen folgen)

Key anzeigen mit: 

gpg --list-keys

...
pub   2048R/xxxxxxxx 2012-06-29
      Key fingerprint = E870 xxxx xxxx xxxxx
uid                  BACKUP_$HOST 

sub   2048R/xxxxxxxx 2012-06-29 

Die wichtige Info hier ist in der ersten Zeile der achtstellige Key: 2048R/xxxxxxxx. 

Ein Verzeichnis bzw. besser gesagt ein Bucket im S3 für das Backup einrichten (wo Duplicity die gepackten und verschlüsselten Files ablegt):

s3cmd mb $HOST s3://backup

Das eigentliche Backup

Damit Duplicity auf S3 zugreifen kann, muss es im Env. bzw. Shell-Umgebung folgende Variabeln finden:

export PASSPHRASE="..." # PW für Zugriff auf das GnuPG PW (bei --key-gen angegeben)
export AWS_ACCESS_KEY_ID="..." # Access Key für S3
export AWS_SECRET_ACCESS_KEY="..." # Secretkey für S3

Dann das Backup selbst:

duplicity -v5 --volsize 500 --asynchronous-upload --s3-use-multiprocessing --s3-use-new-style /VERZEICHNIS_ZU_SICHERN s3+http://backup/$HOST

--s3-use-multiprocessing kam erst mit Duplicity 0.6.17 rein, aber da ist ein Bug drin. Deshalb lieber 0.6.18 verwenden! Das Multiprocessing (oder besser gesagt bei S3 Multipartupload) braucht man, wenn man eine 100 oder 1 GBit-Leitung voll ausnutzen möchte und man ein paar hundert GigaByte oder TerraByte zu Amazon S3 hochladen möchte. Ansonsten bekommt man nicht mehr als 30-40 MBit/s über die Leitung. --asynchronous-upload sorgt dafür, das der Upload schon stattfindet, während in eine weitere Datei schon wieder geschrieben wird (ist nicht nicht freigegen, aber funktioniert recht gut). Das bedeutet aber auch, das man den doppelten Platz benötigt! Ich habe hier z.B. --volsize 500 angegeben, was in /tmp (default) ein 500 MB File erzeugt. Ist das voll, dann wird nochmal ein 500 MB File angelegt, während das Erste hochgeladen wird. Ist auch das zweite File voll und das Erste noch nicht fertig hochgeladen, wartet der Backupprozess. --s3-use-new-style wird benötigt (in neueren Versionen vielleicht nicht mehr), wenn man nach Amazon Eu (Irland) ins S3 hochladen möchte.

Das Ganze sieht dann so aus, wenn man Files/Verzeichnisse ausschließen möchte:

duplicity -v5 --volsize 500 --asynchronous-upload --s3-use-multiprocessing --s3-use-new-style --exclude "DIR1" --exclude "DIR2" / s3+http://backup/$HOST

Aktuelle Files im Backup anzeigen:

duplicity list-current-files --s3-use-new-style s3+http://backup/$HOST

Restore eines Files

duplicity --s3-use-new-style --file-to-restore DATEINAME s3+http://backup/$HOST /RESTORE_PFAD_INKL_DATEINAME

Restore eines Verzeichnisses

Zielverzeichnis darf noch nicht existieren!
duplicity --s3-use-new-style s3+http://backup/$HOST /VERZEICHNIS

UND JETZT KOMMT DAS WICHTIGSTE:

Das Verzeichnis $HOME/.gnupg ist irgendwo an einem sicheren Platz zu sichern! Wenn der Rechner, der mit Duplicity gesichert wurde, diese Dateien nicht mehr findet, weil er in Rauch aufgegangen ist, dann kommt man nicht mehr an seine Daten ran, weil das Backup mit diesem Schlüssel verschlüsselt wurde!

Links 20120703 - NoSQL Abenteuer, mod_pagespeed, Instagram

NoSQL: Not Only a Fairy Tale - Eine nette Story über den Aufbau eines Adservers über die Jahre hinweg mit CouchDB, nginx und Redis.
mod_pagespeed As a Proxy For Your Phone - Wie man einen virtuellen Server mit Apache und mod_pagespeed als Proxy konfiguriert, um Webseiten zu optimieren und den Browser für's Handy über diesen Proxy laufen lässt, erklärt dieser Artikel.
The 3 White Lies Behind Instagram's Lighting Speed - Wie Instagram trickst, um eine möglichst gute Performance auf dem Handy zu bekommen...

Dienstag Juni 26, 2012

Links 20120625 - Opa

Opa - Ein neuer Tag, eine neue Programmiersprache ;-) Opa is ein Application Framework für JavaScript. Alle Aspekte werden direkt in Opa geschrieben: Frontend Code, Backend Code, Datenbankanfragen und die Konfiguraiton. Aber was eigentlich interessant ist: Alles sind statische Datentypen :-) Das freut einen alten Java-Fuzzi doch...

Mittwoch Mai 23, 2012

Kernel dmesg Timestamp umwandeln

Wenn man so einen dmesg Output hier 

[120150.785488] nfs: server 10.232.218.3 not responding, timed out
[120450.903514] nfs: server 10.232.218.3 not responding, timed out
[120452.071783] nfs: server 10.232.218.3 not responding, timed out
[120462.577351] nfs: server 10.232.218.3 not responding, timed out

in ein lesbares Datumsformat umwandeln will

Wed May 23 07:52:55 2012 nfs: server 10.232.218.3 not responding, timed out
Wed May 23 07:57:55 2012 nfs: server 10.232.218.3 not responding, timed out
Wed May 23 07:57:57 2012 nfs: server 10.232.218.3 not responding, timed out
Wed May 23 07:58:07 2012 nfs: server 10.232.218.3 not responding, timed out

nimmt man das hier: 

alias tmesg='dmesg|perl -ne "BEGIN{\$a= time()- qx!cat /proc/uptime!};s/\[\s*(\d+)\.\d+\]/localtime(\$1 + \$a)/e; print \$_;"'

Mittwoch Mai 16, 2012

Links 20120515 - vert.x, OrientDB

Vert.x - Eine Node.js-Alternative auf JVM-Basis. 
OrientDB -  Eine in Java geschriebene NoSQL DB die die Vorteile von Document und Graph Datenbanken vereinigen soll. (NoSQL document database light, portable and fast. Supports ACID Tx, Indexes, asynch queries, SQL layer, clustering, etc.)

Dienstag Mai 15, 2012

Links 20120514 - Linux Sea, iPhone Astronomie, Canon Astrokamera, darktable

Linux Sea - Eine sehr gute und umfangreiche Einführung in Linux am Beispiel Gentoo Linux
iPhone am Mikroskop und Teleskop - Das Magnifi ist ein universeller Adapter für Apples iPhone 4 und 4s, mit dem die Kamera der Smartphones zum Beispiel auf Mikroskope, Teleskope, Ferngläser oder Spektive aufgesetzt werden kann.
Canons spezielle EOS 60Da für Sternengucker - Canon hat mit der EOS 60Da eine DSLR-Kamera vorgestellt, die für Astronomiemotive mit hohem Infrarot- und Ha-Lichtanteil gedacht ist.
darktable - Eine Open Source Photo Workflow Applikation und RAW developer.

Freitag Apr. 27, 2012

PostgreSQL Multimaster Lösung - Postgres-XC

Wie für MySQL mit dem Percona XtraDB Cluster, kommt eine Multimaster-Lösung für PostgreSQL auch langsam in Reichweite: Postgres-XC Beta1 ist released und basiert auf PostgreSQL 9.1. Emanuel Calvo hat eine kleine Einführung/Überblick über Postgres-XC verfasst.

Freitag Apr. 20, 2012

Links 20120420 - MySQL Performance, Redis

Understanding MySQL Performance through Benchmarking - Die PalominoDB Jungs geben hier auf einen 180 Seiten Slide einen sehr guten Überblick, wie man einen MySQL Benchmark mit div. Tools durchführt und zeigen dabei viele Tools, die man für Performancemessung, Monitoring, usw. sehr gut gebrauchen kann. Viele mysqlslap Beispiele sind im Slide zu finden. 
mysqlslap - Load Emulation Client - Seit MySQL 5.1.4 ist mysqlslap an Bord, um Client Load auf der Datenbank simulieren zu können. Weitere MySQL Benchmark-Tools: sysbench, DBT2, tpcc-mysql
MySQL Performance Analysis with Percona Toolkit and TCP/IP Network Traffic - Baron Schwartz beschreibt in diesem Whitepaper, wie man sich mit Open Source Tools zwischen Client und DB schalten kann und div. interessante Performance-Informationen raus zieht.
Percona Toolkit - Sollte man auf jedem MySQL-Rechner haben. Sehr gute Sammlung von nützlichen Tools. u.a.:
pt-query-digest - Analyze query execution logs and generate a query report, filter, replay, or transform queries for MySQL, PostgreSQL, memcached, and more