Skip to content

Das deutsche Git-Buch ...

Nachdem der Verlag Open Source Press leider zum 31. Dezember 2015 die Pforten geschlossen hat, haben alle Autoren die Rechte an Ihren Büchern komplett übertragen bekommen.



Valentin Haenel und Julius Plenz, die beiden Autoren von "Git - Verteilte Versionsverwaltung für Code und Dokumente" haben sich entschieden Ihr Buch unter einer Creative Commons Lizenz frei zu geben.



Webseite, das Buch, das Repository und Foliensätze für eine Schulung.



Ich zitiere einmal aus der README.md-Datei:

Falls Du ein DocBook-Experte und/oder Webprogrammierer bist, und denkst: Das Design könnte man ja wohl mal professionalisieren – dann gerne! Ich habe aus den Quelldateien nur schnell eine halbwegs ansehnliche Webseite zusammengestoppelt. Auch sind gegebenenfalls eine PDF- oder EPUB-Version interessant; falls Du dies übernehmen willst, gerne!

Larry Wall und Will "Coke" Coleda über Perl6 ...

Larry Wall hat sich den Fragen der Community zu Perl6 gestellt, Roman hat das alles zusammengebaut (Danke!).

Ich möchte an dieser Stelle auch noch einmal auf unsere Sponsoren hinweisen, ohne die der Swiss Perl Workshop 2015 und Perl 6 Hackathon nicht möglich gewesen werde (sie werden im Abspann erwähnt).

VirtualBox und Webcams ...

Weil ich gestern darüber gestolpert bin und sehr lange gebraucht habe, bis ich die entsprechenden Einstellungen gefunden habe.

Webcams, genauso wie USB 2.0, laufen unter VirtualBox nur, wenn man das Extension Pack (von der Download-Seite) passend zur benutzten Version installiert hat.

Das Extension Pack ist der Teil von VirtualBox, der nicht Open Source ist, gemäss dieser Seite fügt es folgende Features zu VirtualBox hinzu:
• The virtual USB 2.0 (EHCI) device
• VirtualBox Remote Desktop Protocol (VRDP) support
• Host webcam passthrough
• Intel PXE boot ROM
• Experimental support for PCI passthrough on Linux hosts

Installiert wird es mit:
$ VBoxManage extpack install DATEINAME.vbox-extpack
$ VBoxManage list extpacks

Achtung: Das muss vermutlich bei jedem Update von VirtualBox wiederholt werden.

Nach der Installation kann man USB 2.0 Support einschalten und in einer laufenden VM erscheint unter "Geräte" der Punkt Webcams, mit dem man die verbundene Webcam an die virtuelle Maschine durchreichen kann.

Umrechnung Timestamp mit Perl ...

Weil ich es neulich gebraucht habe.

Aufgabe ist es, Zeiten eines normalen Datums in einen Unixtimestamp und wieder zurück umzurechnen. Nebenbedingung, es dürfen nur Bordmittel verwendet werden und laufen sollte es bitte unter Linux und Solaris. (Unter Solaris ist im Standard kein GNU date aus den GNU coreutils installiert, sonst wäre es einfach).

Meine Lösung war, Perl zu benutzen.

Einzig das Datumsformat ist unschön, vom Monat muss eins abgezogen werden und vom Jahr 1900.

$ perl -mTime::Local -e 'print Time::Local::timelocal(0,0,12,23,04-1,2015-1900)'
1429783200


Und der Rückweg:

$ perl -e 'print scalar localtime(1429783200)'
Thu Apr 23 12:00:00 2015


Wenn Ihr bessere Ideen habt, dann nur her damit.

Einrückungen in vim ...

Wenn man viel mit vi(m) arbeitet, lohnt es sich auch über eine eigene ~/.vimrc nachzudenken. Wenn man auf sehr vielen Systemen arbeitet, hilft es, die eigenen Ergänzungen "klein" zu halten.

Ich mache es mir da leicht und kopiere die Muster-vimrc.
cp $(find /usr/share/vim -name vimrc_example.vi) ~/.vimrc

und ergänze die folgenden Zeilen.

" Dirk
set mouse=
syntax enable
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
"


Für die Bedeutung der einzelnen Punkte verweise ich einmal auf die sehr ausführliche Hilfe in vi(m) (Beispielsweise :help tabstop). Wichtig ist nur, dass durch den letzten Punkt aus Tabs Leerzeichen gemacht werden.

:retab! sorgt dafür, dass alle Tabs und Leerzeichen der kompletten geöffneten Datei entsprechend den Regeln umformatiert werden.

Die folgenden Kommandos arbeiten auf Textblöcken, also mal mit 1G in die erste Zeile springen und dann mit VG den kompletten Dateiinhalt markieren.

> rückt alles um eine Ebene ein.

< rückt alles um eine Ebene aus.

= formatiert den kompletten markierten Text nach Regeln des Dateityps um (einfach mal ausprobeieren).

Von Sublime Text zu Atom ...

Eines vorab, ich halte Sublime Text immer noch für einen der besten Editoren, die es derzeit gibt, auch wenn er in weiten Teilen Closed-Source-Software ist. Die Entscheidung ihn einzusetzen, habe ich nie bereut und die Lizenz ist super, daran sollten sich viele ein Beispiel nehmen (einmal kaufen und auf beliebig vielen Computern einsetzen).

Was mich ein wenig nervt, ist, dass die Weiterentwicklung stagniert und der Ton im "Feature Request Forum" bei Userecho nervt.

Als einzige grafische Alternative, die auf mehreren Plattformen läuft, sehe ich nur Atom, den Editor aus der GitHub-Schmiede. Die Features sind super, aber an der Performance müssen die Programmierer noch arbeiten.

Als Plugins möchte ich minimap und save-session empfehlen, damit kann man leicht zwei lieb gewonnene Features von Sublime Text nachrüsten.

Ein weiteres Plus ist, dass Atom Open-Source-Software ist.

Speedtest via Commandline ...

Sehr schön im Blog von Bastian habe ich den Artikel speedtest-cli ohne Flash gefunden. Dort verweist er auf das speedtest-cli Repository bei Github. Mit dem Python-Skript kann man den Netzgeschwindigkeitstest von speedtest.net auch ohne Flash machen. Damit läuft er zum Einen auf Servern und lässt die übermässige CPU-Nutzung durch Flash das Ergebnis nicht verfälschen.

So ergibt sich für meinen root-Server folgendes Bild:

05:36:44 1d [dirk@rico:~/workspace] $ git clone https://github.com/sivel/speedtest-cli.git speedtest-cli.git
Cloning into 'speedtest-cli.git'...
remote: Reusing existing pack: 249, done.
remote: Total 249 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (249/249), 55.75 KiB, done.
Resolving deltas: 100% (124/124), done.
05:36:49 1d [dirk@rico:~/workspace] 2s $ cd speedtest-cli.git/
05:36:53 1d [dirk@rico:~/workspace/speedtest-cli.git] master ± ./speedtest_cli.py
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from manitu GmbH (217.11.53.135)...
Selecting best server based on ping...
Hosted by Vodafone DE (Frankfurt) [100.73 km]: 12.0 ms
Testing download speed........................................
Download: 90.11 Mbit/s
Testing upload speed..................................................
Upload: 87.21 Mbit/s

RawTherapee 3.0 stable ...

Das ist eine gute Nachricht von Golem:
Die Bildbearbeitung Rawtherapee 3.0 ist in der stabilen Version für Windows, Mac OS X und Linux erschienen. Damit lassen sich Rohdatenbilder von Digitalkameras bearbeiten und in andere Formate wie JPEG und TIFF umwandeln.
Die Software lässt sich hier herunterladen, ein PPA für Ubuntu (oder Linux Mint) gibt es auch.

Update: Ich muss noch erwähnen, dass das PPA die Entwicklerversion (unstable!) bereitstellt.

VirtualBox-Lizenzen ...

In unserer Episode zum Thema Lizensierung ist die Frage nach der VirtualBox-Lizenz offen geblieben.

Ein Hörer von DeimHart hat mich darauf hingewiesen, dass auf den Seiten von VirtualBox endlich der Web Store verlinkt ist, 50 Dollar sind ein mehr als fairer Preis für VirtualBox. Diesen Link hatte ich gesucht, weil nie zu 100% klar war, ob die Benutzung im Büro durch "Personal Use" abgedeckt war, ist sie aber.

Aber auch das ist mittlerweile in der FAQ zu den Lizenzbestimmungen angekommen. Dort heisst es unter Punkt 6:
What exactly do you mean by personal use and academic use in the Personal Use and Evaluation License?

Personal use is when you install the product on one or more PCs yourself and you make use of it (or even your friend, sister and grandmother). It doesn't matter whether you just use it for fun or run your multi-million euro business with it. Also, if you install it on your work PC at some large company, this is still personal use. However, if you are an administrator and want to deploy it to the 500 desktops in your company, this would no longer qualify as personal use. Well, you could ask each of your 500 employees to install VirtualBox but don't you think we deserve some money in this case? We'd even assist you with any issue you might have.

Use at academic institutions such as schools, colleges and universities by both teachers and students is covered. So in addition to the personal use which is always permitted, academic institutions may also choose to roll out the software in an automated way to make it available to its students and personnel.
Ganz kurz zusammengefasst, bedeutet das etwa so viel, wie: "Benutzung auf einzelnen Computern ist Personal Use. Wenn VirtualBox in einer ganzen Organisation ausgerollt wird, kostet es Geld.".

Danke Erwin!

Hintergrundgrafiken ...

Mir erschliesst es sich noch immer nicht so ganz, warum manche Menschen unglaublich viel Energie darauf verwenden, Grafiken für den Bildschirmhintergrund zu finden, wo doch dieser die meiste Zeit durch Fenster verdeckt wird. Schlimmer noch, dass die meisten Menschen - unabhängig von der Auflösung - Anwendungen im Vollbild nutzen, wie meine kleine Umfrage zeigte.

Allerdings muss ich gestehen, dass mich die Grafiken von Digital Blasphemy schwach machen könnten. Schade, dass die grösseren Bildschirmauflösungen kostenpflichtig sind.

Gefunden via Pofacs.

Mediathek ...

Ich finde ja, dass die öffentlich-rechtlichen Sender in der DACH-Region (Deutschland, Österreich, Schweiz) etwas zu bieten haben und mir gefallen auch die Mediatheken, der einzelnen Sender. Da kommt mir das Java Programm Mediathek gerade richtig.
Das Programm durchsucht die Mediathek verschiedener Sender (ARD, ZDF, Arte, 3Sat, MDR, NDR, ORF, SF), lädt Beiträge mit einem Programm eigener Wahl und kann Themen als Abos anlegen und neue Beiträge automatisch downloaden. Es gibt auch eine Möglichkeit, Podcast zu verwalten und zu Downloaden.
Die Bedienung ist ein bisschen gewöhnungsbedürftig, aber das Programm funktioniert wunderbar.

JDBC ...

Ich selber bin kein grosser Fan von Java, muss aber eingestehen, dass mit JDBC eine der brillantesten Treiberimplementierungen überhaupt erfunden wurde. JDBC steht für Java Database Connectivity und bildet eine Schnittstelle, damit Java-Programme auf Datenbanken zugreifen können.

Es gibt vier verschiedene Typen von JDBC-Treibern. Der oben verlinkte Wikipedia-Artikel erklärt die einzelnen Typen genauer. Im Groben ist Typ 1 eine Schnittstelle zwischen JDBC und ODBC, Typ 2 ist eine Schnittstelle zwischen JDBC und lokal installiertem Treiber, Typ 3 ist eine Schnittstelle zwischen JDBC und einem Brücken-Server, der eine Verbindung zur eigentlichen Datenbank herstellt und Typ 4 ist eine Implementation des Treibers in reinem Java.

In der Praxis habe ich am häufigsten mit Typ 2- und Typ 4-Treibern zu tun, wobei Typ 4 das ist, was man haben möchte, da der ganze Treiber (in der Regel) aus nur einer einzigen Datei besteht und diese Datei funktioniert (wiederum in der Regel) überall dort, wo Java installiert ist.

Beispiele für die Anwendung:

Ich benutze sowohl unter Linux, wie auch im Büro unter Windows, SQuireL SQL zum generieren von Abfragen für MySQL, Sybase, SQLite, ...

Für Perl Datenbank-Anwendungen nutze ich DBD::JDBC als Proxy-Server, um auch immer mit der gleichen Syntax und ohne die Not, lokal binäre Treiber installieren zu müssen, auf Datenbanken zugreifen zu können.

Gerade gestern durfte ich eine hysterisch historisch gewachsene Datenbank untersuchen (reverse engineering), dabei ist SchemaSpy eine sehr grosse Hilfe (ich habe bei der Implementation des DB2 Teils ein wenig mitgeholfen), allerdings sollte davon die aktuelle beta verwendet werden, da das Release einen Fehler hat. Wer es lieber grafischer mag, kann auch SchemaSpyGUI als Oberfläche benutzen.

Perl rename ...

Hier noch einmal ein kleiner Beitrag für Romans Blogparade zum Thema Exotische Linux-Applikationen: Perl rename

Mit "rename" aus der Perl-Installation (bei Debian und Ubuntu automatisch im Pfad, bei SUSE gibt es ein anderes rename) kann man auf sehr komfortable Art und Weise mehrere Dateien umbennenen.

Die generelle Syntax ist:

rename RegulärePerlExpression Dateien

Lässt man Dateien weg, können die umzubenennenden Dateien via StdIn an das Programm übergeben werden.

Ein vorangestelltes "-v" oder "--verbose" gibt alle umbenannten Dateien aus, ein "-n" oder "--no-act" zeigt nur, was umbenannt würde, ändert aber nichts und ein "-f" oder "--force" überschreibt bereits vorhandene Dateien.

Beispiele:

Alle Dateien in Kleinbuchstaben wandeln:
rename 'y/A-Z/a-z/' *

In allen Dateien, die auf "bak" enden, Leerzeichen durch Unterstriche ersetzen:
rename 's/ /_/g' *bak

Allen ".jpg"-Dateien ein "bak." voranstellen:
rename 's/^/bak./' *.jpg

Sehr gekünsteltes Beispiel, aber Rückwärtsbezüge funktionieren auch:
rename 's/(.*)_und_(.*).txt/$2_und_$1.txt/' *.txt

macht aus kind_und_kegel.txt kegel_und_kind.txt oder aus hof_und_hund.txt wird hund_und_hof.txt