Archiv: Linux/OpenSource

ODROID-XU4 als Router / VLAN Router

6 October 2017

Nach der enttäuschenden Feststellung, dass selbst ein Raspberry Pi3 lediglich 100mbit als Netzwerkport und mit USB Gigabit Ethernetadaptern auch nur maximal 450mbit aufgrund der USB 2 Bandbreite zu erzielen ist, musste ein anderes Gerät her.

Ausgewählt habe ich einen Odroid-XU4, der auch Gigabit direkt onboard mitbringt und dank USB 3 auch in der Lage ist Gigabit zu bedienen. Aufgrund der Big-Little Architektur gibt es hier zwar acht CPU Kerne, diese sind jedoch unterschiedlich leistungsfähig. Um die optimale Netzwerkgeschwindigkeit zu erzielen, müssen einige Einstellungen am Odroid vorgenommen werden. Andernfalls ist auch bei rund 170-200 mbit Durchsatz Ende.

Zum einen muss der Interrupt für die Netzwerkkarte auf eine andere CPU als die Default-CPU 0 gelegt werdenm denn die ist mit Interrupts sowieso gut beschäftigt.

echo 5 > /proc/irq/143/smp_affinity_list
echo 6 > /proc/irq/144/smp_affinity_list
echo 7 > /proc/irq/90/smp_affinity_list

Zum anderen kann man noch dem Netzwerkstack mitteilen, mit welchen IRQs anstehende Daten behandelt werden sollen.

echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus

Um stets die bestmögliche Performance zu erzielen kann noch der CPU Governor angepasst werden.

echo "performance"> /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo "performance"> /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
Da es sich um eine NUMA Architektur handelt, muss diese Einstellung für beide CPU Gruppen vorgenommen werden.

Android sdk ohne Android Studio auf Ubuntu 17.04

3 June 2017

Google hat mit der Wahl der Jetbrains Platform für ihr Android Studio eine gute Wahl gemacht. (Auch wenn ich mir persönlich gewünscht hätte, dass es NetBeans wird, aber das war bei dem Verhalten von Oracle ja kaum zu erwarten.) Dennoch gibt es ab und zu Gründe, ohne Android Studio eine Installation der Android Entwicklungswerkzeuge vorzunehmen. (Zum Beispiel, wenn man NativeScript nutzt und dabei in WebStorm unterwegs ist...)

Nach der Umstellung des SDK ist es schwierig, aktuelle Anleitungen für Ubuntu zu finden, die nicht mit "Download Android Studio..." beginnen.

Darum hier jetzt meine Kurzanleitung:

  1. Auf 64bit Systemen wird noch immer eine 32bit Umgebung benötigt, diese installiert man mittels sudo apt-get install lib32ncurses5 lib32stdc++6 libstdc++6
  2. Ordner anlegen, wo das Android SDK und die Werkzeuge landen sollen, ich wähle mal mkdir ~/tools/android-sdk<c/ode>
  3. Download der Kommandozeilen Werkzeuge des SDK wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
  4. Das wird dann unter ~/tools/android-sdk ausgepackt, entstehen wird danach der Ordner "tools"
  5. Die entstehenden Android Verzeichnisse werden in den PATH aufgenommen, damit von der Kommandozeile die Programme gefunden werden. Ob das jetzt in die ~/.bashrc oder ~/.zshrc oder ~/.sonstwasrc muss, wird jeder selbst wissen.
    export ANDROID_HOME=~/tools/android-sdk
    export PATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools
  6. Nun folgt ein umfangreicherer Download....
    sdkmanager --update
    sdkmanager "extras;android;m2repository" "extras;google;m2repository" "system-images;android-25;google_apis;x86" "system-images;android-25;google_apis;x86_64" "platforms;android-25" "build-tools;25.0.3"
  7. Und "schon" kann ein Android Emulator Image instantiiert werden avdmanager create avd -d 9 --abi google_apis/x86 --name nexus5x  -k "system-images;android-25;google_apis;x86"
  8. Gestartet wird das ganze dann z.B. so: emulator @nexus5x -skin 768x1280

Schon ist das Android SDK Setup unter Ubuntu fertig.

Leider stehen einige Optionen, wie "--skin" bei dem avdmanager (noch) nicht zur Verfügung, so dass beim Emulator Start der Parameter mit angegeben werden muss. Sonst gibt es ein Guckloch im Format einer Briefmarke für den Emulator...

StartCOM mit API für StartSSL

29 April 2016

Let's encrypt hat es vorgemacht, jetzt zieht der Let's encrypt Partner StartCOM nach: Neuerdings gibt es eine API! Damit ist es deutlich einfacher, neue Zertifikate in einem automatisierten Prozess zu erhalten.

Laut Webseite ist die API auch für die kostenlosen Domain-Validated Zertifikate nutzbar, jedoch auf 5 Domains beschränkt. Für die meisten privaten Nutzer sollte das mehr als ausreichend sein. Im Gegensatz zu Let's encrypt Zertifikaten sind die StartCOM StartSSL Zertifikate ein Jahr gültig, so dass es seltener nötig ist, neue Zertifikate zu holen.

Infos im Blogpost von StartSSL: https://startssl.com/NewsDetails?date=20160428 direkt zur API geht es hier: https://startssl.com/startapi

Netbeans maven customization hint

11 March 2015

I you are using Netbeans to develop a maven based (multi-module) (web) application you may have encountered this problem: The resources are not copied when re-running the application. The easy option: Build the project always before running it.

This is slow and just feels wrong. Netbeans lets you customize the life-cycle of your project, so you can hook all maven executions you like, especially the 'resources' build step.

Open project properties, select 'Actions' and add 'resources:resources' to the front of the 'execute Goals' field:

resources-run

You can add your own custom action as well, in case you want to trigger a specific step independently of the overall project lifecycle, for example the 'resources:resources' goal:

resources

Netbeans - Choose your color!

7 March 2015

As I regularly test different versions of Netbeans as part of the community acceptance program (NetCAT) and for my own fun and benefit I sometimes struggle to start of the right version: Usually the release version is the right one to go. During NetCAT the beta version needs to be tested and when new features are so promising that you want to run the nightly, you go with that.

I came up with a simple solution to never  launch the wrong edition: Differently colored Netbeans icons. This is how my Gnome launcher looks:

netbeans-choose

Easy to tell that red is the nightly, without looking at the icon text! If you want that for yourself, you can get the icons here:

netbeans-dev netbeans-beta

The icons are created using Gimp and just rotating the colors, so it's a little hacky but does the trick.

In Gnome you can use the application 'alacarte' (or 'main menu' if you run the english locale) to customize your launchers. Just change the icon:

alacarte

Netbeans, Vagrant und remote PHP Debugging mit xdebug

14 February 2015

Vielleicht hilft dieser Tipp dem einen oder anderen weiter, der gerne die Netbeans IDE zur PHP Entwicklung verwendet und auch Vagrant nutzt: Wenn man mit Vagrant arbeitet, so werden die lokalen Dateien in der virtuellen Maschine gemounted. Für Netbeans konfiguriert man daher "lokalen Webserver" als Umgebung.
Die Konfiguration von xdebug sieht dann am einfachsten so aus: [xdebug]
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
;xdebug.remote_autostart = 1
xdebug.remote_handler=dbgp
Hier wird xdebug angewiesen, sich zum Aufrufer zurück zu verbinden - die IP wird aus dem Request genommen. Das passt in der Regel, wenn man innerhalb von Vagrant nicht noch wilde Sachen (Proxy) macht.
Was leider nicht passt: Die Pfade. Netbeans weißt xdebug für Breakpoints an, welche Datei - inkl. Pfad - an welcher Stelle einen Breakpoint erhalten soll. Die Ordnerstruktur ist innerhalb der virtuellen Maschine höchstwahrscheinlich anders, als auf dem Host-System.
Hierzu gibt man innerhalb von Netbeans noch ein Pfad-Mapping an: Projekt Konfiguration, "Run Configuration", "Advanced".
Nun waehlt man aus, wo man innerhalb der Vagrant bzw. VirtualBox Umbebung den Projekt Ordner eingebunden hat. In meinem Beispiel ist das /var/www/localhost

Anschließend kann man den Netbeans Debugger verwenden.
Möchte man spezielle Requests, wie z.B. PUT, mittels curl aufrufen kann man dies auch ganz einfach machen, in dem man den Xdebug Trigger als Parameter anhängt: curl -X PUT -d '{}' http://localhost:8080/rest/endpoint.php/duplicates\?XDEBUG_SESSION_START\=netbeans-xdebug

Ein Screenshot der Netbeans Konfiguration als Referenz: path-mapping

Middleman live reload mit Vagrant

31 January 2015

Middleman ist ein static site generator der sich einiges von Ruby-On-Rails leiht, aber eben nur statische Seiten generiert. In vielen Anwendungsfällen ist das auch genau das richtige.

Um die Web-Entwicklung zu erleichtern - vor allem auch mit mobilen Geräten - gibt es das vorzügliche Werkzeug "livereload". Damit wird im Browser ein reload ausgelöst, wenn sich die Quellen geändert haben. Das spart Zeit und man muss nicht dauernd aus dem Texteditor oder der IDE raus um im Browser einen Reload manuell auszulösen. Zur Integration gibt es zum einen native Browser Extensions, zum anderen kann dies auch über ein JavaScript integriert werden.
Hinter den Kulissen nutzt livereload einen Websocket (ggf. mit Polyfill über Flash) um  den Client dann zu informieren.

Was liegt nun näher, als middleman als static site generator mit livereload zu verbinden. Am besten das ganze noch mit vagrant, so dass man eine isolierte Entwicklungsumgebung hat. Da vagrant mit VirtualBox arbeitet, kommt etwas mehr Komplexität auf einen zu. Der middleman läuft nun nicht mehr auf dem physischen Rechner sondern virtualisiert - damit hat er auch eine andere IP. Einzelne Ports koennen in die virtuelle vagrant Maschine reingereicht werden, das ist für das livereload wegen des Websockets schon mal wichtig. Dazu muss in der vagrant Konfiguration (Vagrantfile) folgender Eintrag vorhanden sein: #middleman live reload port
config.vm.network :forwarded_port, host: 35729, guest: 35729

Jetzt muss middleman noch konfiguriert werden, dass es auch livereload verwendet:
Im Gemfile für middleman: gem 'middleman-livereload'

In der middleman Konfigurationsdatei muss nun das livereload konfiguriert werden. Hier ist nun die Besonderheit: Das Livereload Plugin differenziert nicht zwischen der Host-Angabe um das Interface zu bestimmen an den der Websocket Server gebunden wird, und der URL die für den Zugriff auf den livereload Server verwendet wird. Gibt man hier "127.0.0.1" an, bindet er nur an das lokale Interface in der virtuellen Maschine. Gleiches für "localhost". Gibt man die externe IP des Hosts an, dann findet das rack-livereload das Interface nicht.

Da hilft als letztes nur noch das "Universalbinding" - zum Glück ist das auch vom Browser nachher aufrufbar: activate :livereload, :host => '0.0.0.0', :no_swf => true Was in meinem Fall noch wichtig war: Das Assset hashing darf nicht ausserhalb der build Konfiguration aktiviert sein, andernfalls wird kein JavaScript beim Middleman-server injected.

Was nun noch wichtig ist: Das von VirtualBox verwendete Filesystem-Mounting unterstuetzt kein notify. Damit muss der middleman server zwingend den Polling-Modus verwenden: middleman server --force-polling Der einzige Wermutstropfen: Das funktioniert natürlich dann nur auf dem Entwicklungsrechner. Mit ipad oder Android Telefon im WLAN kommt man mit dem "0.0.0.0" nicht weit. Aber immerhin funktioniert so das live reload mit vagrant.

Gelöschte Datei retten solange sie offen ist

13 July 2014

Durch eine unglueckliche Konstellation kam es dazu, dass mir von laufenden, produktiven, KVM Maschinen die Images abhanden kamen. Kurzum: Gelöscht. Aber da die Maschinen noch liefen eine gute Gelegenheit sich an der Rettung zu versuchen, und nicht über ein Backup zu arbeiten.
Dadurch, dass die Datei Images noch in Benutzung waren, war ein File-Handle mit dem jeweiligen Prozess verknüpft. Dieser kann nach Belieben noch mit der Datei arbeiten, auch das Dateisystem betrachtet die zu der Datei gehörenden Datenblöcke nicht als frei und bewahrt sie somit vor Verlust. Solange der Prozess läuft aber nur.

Zur Illustration verwenden wir einmal folgende Kommandos: wget --limit-rate=1000 http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso Der Download ist extra langsam gedreht, so dass genug Zeit ist zum experimentieren.
Nun loeschen wir die Datei - das wget laeuft weiter. rm ubuntu-14.04-desktop-amd64.iso Suchen wir nun nach Prozessen, die auf gelöschte Dateien zugreifen und filtern nach Dateien mit dem Wort "ubuntu": lsof | grep deleted | grep ubuntu
wget 10694 tkruse 4w REG 252,1 195943 1573596 /home/tkruse/ubuntu-14.04-desktop-amd64.iso (deleted)

Der einfachste Weg den Inhalt zu retten wäre nun, einfach die Datei(inhalte) zu kopieren. Dazu suchen wir das Filehandle des Prozesses "10694" (dem wget aus dem lsof)


ls -l /proc/10694/fd             
total 0
lrwx------ 1 tkruse tkruse 64 Jul 12 13:02 0 -> /dev/pts/7
lrwx------ 1 tkruse tkruse 64 Jul 12 13:02 1 -> /dev/pts/7
lrwx------ 1 tkruse tkruse 64 Jul 12 13:02 2 -> /dev/pts/7
lrwx------ 1 tkruse tkruse 64 Jul 12 13:02 3 -> socket:[797560]
l-wx------ 1 tkruse tkruse 64 Jul 12 13:02 4 -> /home/tkruse/ubuntu-14.04-desktop-amd64.iso.1 (deleted)

Das Datei handle können wir als Quelle nehmen, und den Inhalt nun kopieren: cp /proc/10694/fd/4 /home/tkruse/rescue

Da die Maschinen noch laufen, wäre es eigentlich schön nicht einen Zustand zu kopieren, sondern die Datei auf 'nicht gelöscht' setzen zu können. Das ging mal mit ln -L, wurde jedoch aus Sicherheitsgründen aus dem Kernel entfernt.

Dazu kann man nur noch direkt ins Dateisystem eingreifen. Nichts für Angsthasen - und ein fsck sollte danach besser stattfinden.
Mittels debugfs kann man einen neuen Link auf die inode der Datei anlegen. Darüber kann danach wieder ein Zugriff erfolgen. Jedoch wird dabei der Link-Count nicht erhöht, so dass die Datei nicht wirklich wieder hergestellt ist.
Die inode ist die Zahl aus dem lsof vor dem Dateipfad, in diesem Fall "1573596". Legen wir also eine neue Datei an, die diese inode nutzt: sudo debugfs -w /dev/mapper/ubuntu--gnome--vg-root -R "link <1573596> rescue" Anschließend kann man den Prozess, der die Datei bisher noch offen und damit am Leben gehalten hat, beenden und die Datei (auf ein anderes Dateisystem) kopieren. cp rescue .... Ist man damit fertig, kann man den Link wieder aufheben. sudo debugfs -w /dev/mapper/ubuntu--gnome--vg-root -R "unlink rescue"

Durch durch das debugfs ist es im Prinzip auch möglich den Linkcount zu reparieren, das war mir jedoch etwas zu warm. Auch bin ich nicht sicher, wie es sich mit dem "gelöscht" Flag tatsächlich verhält, so dass ich die Daten dann auf ein anderes Dateisystem kopiert habe (um versehentliches überschreiben zu verhindern), das betroffene Dateisystem ausgehängt und per fsck geprüft habe.
Soweit ich das beurteilen kann: Die Datei wurde perfekt gerettet und alles läuft mit minimaler Downtime weiter.

Diagnose mit sysdig

17 May 2014

Wäre es nicht fantastisch, wenn es ein Tool gäbe, dass wie tcpdump auf System-Ebene arbeitet? Vielleicht noch gemischt mit lsof. Und strace. Und das ganze vielleicht auch so dass man im Nachhinein filtern kann!

Das gibt es. Es nennt sich "sysdig" und ist OpenSource: http://www.sysdig.org/ bzw. https://github.com/draios/sysdig/

Die Installation auf einem Ubuntu 14.04 sollte eigentlich so funktionieren: curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash Das hat leider nicht ganz geklappt:

curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash
[sudo] password for tkruse:
* Detecting operating system
* Installing Draios public key
OK
* Installing Draios repository
* Installing kernel headers
E: Package 'linux-headers-3.11.0-12-generic' has no installation candidate
Unable to find kernel development files for the current kernel version 3.11.0-12-generic
This usually means that your system is not up-to-date or you installed a custom kernel version.
The installation will continue but you'll need to install these yourself in order to use sysdig.
Please write to the mailing list at https://groups.google.com/forum/#!forum/sysdig
if you need further assistance.
* Installing Sysdig
Selecting previously unselected package sysdig.
(Reading database ... 207643 files and directories currently installed.)
Preparing to unpack .../sysdig_0.1.82_amd64.deb ...
Unpacking sysdig (0.1.82) ...
Processing triggers for man-db (2.6.7.1-1) ...
Setting up sysdig (0.1.82) ...
Loading new sysdig-0.1.82 DKMS files...
First Installation: checking all kernels...
Building only for 3.11.0-12-generic
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
Offenbar war mein Kernel nicht beim Update auf Ubuntu 14.04 mitgezogen worden:
uname -a
Linux charix 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Dafuer gab es keine Kernel-Header mehr, so dass die sysdig Module nicht kompiliert und installiert werden konnten.
Das ist schnell zu beheben, neuer Kernel und neue Header:
sudo apt-get install linux-image-3.13.0-24-generic
sudo dpkg-reconfigure sysdig
Removing old sysdig-0.1.82 DKMS files...

-------- Uninstall Beginning --------
Module: sysdig
Version: 0.1.82
Kernel: 3.13.0-24-generic (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

sysdig-probe.ko:
- Uninstallation
- Deleting from: /lib/modules/3.13.0-24-generic/updates/dkms/
- Original module
- No original module was found for this module on this kernel.
- Use the dkms install command to reinstall any previous module version.

depmod....

DKMS: uninstall completed.

------------------------------
Deleting module version: 0.1.82
completely from the DKMS tree.
------------------------------
Done.
Loading new sysdig-0.1.82 DKMS files...
Building for 3.11.0-12-generic and 3.13.0-24-generic
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
Building initial module for 3.13.0-24-generic
Done.

sysdig-probe:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.13.0-24-generic/updates/dkms/

depmod....

DKMS: install completed.

Danach kann dann sysdig auch schon benutzt werden.
Hier ein Beispiel: "Zeige alle Prozesse, die auf Dateien in /etc zugreifen"

sudo sysdig evt.type=open and fd.name contains /etc
Die Ausgabe sieht z.B. dann so aus:
208208 13:10:12.791863631 0 DNS (4278) < open fd=73(/etc/hosts) name=/etc/hosts flags=1(O_RDONLY) mode=0 
208307 13:10:12.792037164 3 DNS (4283) < open fd=74(/etc/hosts) name=/etc/hosts flags=1(O_RDONLY) mode=0 
444807 13:10:27.793785895 0 DNS (5019) < open fd=72(/etc/hosts) name=/etc/hosts flags=1(O_RDONLY) mode=0 
470806 13:10:32.317263671 1 gnome-settings- (3411) < open fd=19(/etc/fstab) name=/etc/fstab flags=1(O_RDONLY) mode=0 
546476 13:10:42.794281200 2 DNS (4278) < open fd=72(/etc/hosts) name=/etc/hosts flags=1(O_RDONLY) mode=0 
Auch kann man mal eben schnell schauen wer am meisten Netzwerkbandbreite braucht:
sudo sysdig -c topprocs_net

Beispielausgabe:

Bytes     Process   
------------------------------
23.82KB   Socket
546B      dnsmasq
239B      pidgin
215B      DNS
(Socket ist hier der Firefox, der eine Webseite lädt.)

Das ist extrem praktische für diverse Diagnosen. Ein interessantes Beispiel für den Einsatz liefert der Blog-Post der Entwickler, die dabei im Nachhinein analysieren, was bei einem Einbruch in einen Honeypot-Server passierte: http://draios.com/fishing-for-hackers/

Viele weitere Beispiele (IO, CPU, Security...) finden sich auf dieser Seite: https://github.com/draios/sysdig/wiki/Sysdig%20Examples

Vagrant + Nginx/Apache: Korrupte Daten bei statischen Dateien

7 December 2013

Das hat echt eine Weile gedauert dieses Yak zu shaven: Dank Vagrant und VirtualBox habe ich ein Web-Projekt mit einer leicht zu startenden Entwicklungsumgebung versehen.

Das hat vorher auch schon prima geklappt, und das Verfahren hat sich bewährt - besonders, wenn das Setup etwas komplexer ist, oder es Entwickler gibt die nicht mit Linux/Debian/Ubuntu arbeiten. Jedoch hat mich heute ein Bug gequält den ich wirklich einige Stunden suchen durfte. Alles fing damit an, dass es JavaScript Fehler hagelte. Uncaught SyntaxError: Unexpected token ILLEGAL Jedoch nur, wenn die Datei aus Vagrant per nginx ausgeliefert wurde. Mit Netbeans und dem eingebauten mini-Webserver für HTML5 Projekte lief alles super.

Eine Google Suche brachte unglaublich viele Ergebnisse - jedoch keine Lösung. Man solle nach bösen Zeichen schauen, am besten nach Whitespace das komisch ist. Eine super Chance auf den Holzweg abzubiegen und da eine Weile unterwegs zu sein.

Die Quellcode-Ansicht von Firefox brachte dann erstaunliches zu Tage:

Screenshot from 2013-12-07 21:30:49

Das sieht in der Tat kaputt aus. Mal schnell im Editor schauen - nein da ist alles gut. Auf der Vagrant Maschine nachschauen, auch da alles in Ordnung. (Sowas in der Art hatte ich schonmal wenn die Guest-Additions von VirtualBox nicht mehr so recht zur Umgebung passen. Aber das war hier nicht der Fall.)

Auch das Einfügen von dummy-Text änderte weder etwas an dem Muell am Ende der Datei, noch wurde der Text angezeigt. Nanu, was kann das sein? Schnell noch einen Holzweg her! "Ist bestimmt Caching."

Das Rätsels Lösung ist dann ein 5 Jahre alter Bug in VirtualBox, wohl auch bei Apache oder sogar Versionsverwaltungssoftware zuschlagen kann: VirtualBox hat Probleme mit direktem mmap zwischen zwei Filehandles, wenn es sich dabei um per vboxfs gemountete Verzeichnisse handelt.

Hier das Ticket dazu: https://www.virtualbox.org/ticket/819

Bei nginx kann man sendfile sehr einfach ausschalten: sendfile off; Danach klappt alles wie erwartet.

Multi-Core vs. Single-Core: Load Testing unter Linux

29 June 2013

Inzwischen sind multi-core oder sogar multi-CPU Maschinen weit verbreitet. Um etwas besser abschätzen zu können, wie gut eine Anwendung mit steigender Anzahl von CPU (Kernen) skaliert, möchte man manchmal eine Anwendung auf einzelne Kerne oder sogar einen einzigen beschränken.
Auch fuer den Fall, dass man den selben Rechner als Test-Agent und zur Ausführung des Tests (also client und server) verwenden möchte, kann es sich lohnen die zu testende Anwendung und den Test-Agenten mit beschränkten Ressourcen zu starten, damit diese nicht so stark miteinander konkurrieren.
Unter Linux (Ubuntu, Debian, Arch...) gibt es das Utility "taskset". Damit kann die CPU Affinität eines Prozesses beim start oder sogar nachträglich eingestellt werden.
Beispielsweise kann man damit dann eine Java Webanwendung folgendermaßen auf einen Core begrenzen: taskset 1 [start-kommando]

In meinem Fall nutze ich jmeter um gegen eine so gestartete Anwendung zu testen: env MAVEN_OPTS="$MAVEN_OPTS -noverify" taskset 1 mvn -Dspring.profiles.active=dev jetty:run

Schon beim Start bemerkt man recht deutlich, wie gut Java von Mehrprozessorarchitekturen profitiert. Selbst wenn die eigene Anwendung nicht stark parallelisert ist.

nginx: SSL mit Perfect-Forward-Secrecy und SPDY unter Ubuntu

27 June 2013

Es gibt SSL und es gibt SSL mit Perfect-Forward-Secrecy (PFS). Der Unterschied: Bei perfect forward secrecy kann durch den Verlust des privaten Schlüssels nicht im Nachhinein aufgezeichnete Kommunikation der Vergangenheit entschlüsselt werden. Der Grund liegt darin, dass der zufällige Sitzungsschlüssel nicht zwischen den Parteien mittels public-key-cryptography versendet wird, sondern mit einem speziellen Verfahren berechnet wird. Bei diesem Diffie-Hellmann-Schlüsselaustausch berechnen beide Parteien gemeinsam einen Sitzungsschlüssel. Der private Schlüssel hilft später nicht den Sitzungsschlüssel zu erlangen, jeder Sitzungsschlüssel muss einzeln mit speziellen Verfahren gebrochen werden, was aufwendig ist.

Damit Besucher einer Webseite keine Warnung des Browsers erhalten, weil dem Zertifikat der Webseite nicht vertraut wird, empfiehlt es sich, das Zertifikat von einer CA signieren zu lassen, die von den Browserherstellern unterstützt wird.
Ein Anbieter kostenloser Zertifikate ist "StartSSL": http://www.startssl.com/

Wenn man lediglich SSL und perfect-forward-security mit nginx konfigurieren moechte, funktioniert dich bereits mit Ubuntu 12.04 Precise (LTS). Fuer SPDY reicht das alleine nicht: Die OpenSSL Version ist nicht aktuell genug und nginx ist nicht mit dem Modul kompiliert worden. Aber dazu gibt es ein PPA :-)

Erster Schritt: SSL Zertifikat besorgen. Mit diesem Aufruf (www.server.com durch die korrekte Domain ersetzen) erzeugt man die nötigen Dateien (private key und certificate signing request). openssl req -nodes -newkey rsa:4096 -nodes -keyout myserver.key -out server.csr \
-subj "/C=DE/ST=State/L=City/O=Company/OU=IT/CN=www.server.com"

Zweiter Schritt: Bei StartSSL signieren lassen. Das Ergebnis speichert man in der Datei "www.example.com.pem".

Dritter Schritt: CA Zertifikat herunterladen wget http://www.startssl.com/certs/sub.class1.server.ca.pem
wget http://www.startssl.com/certs/ca.pem

Vierter Schritt: Wir erzeugen eine Datei mit den Diffie-Hellmann-Parametern openssl dhparam -rand - 1024 > dhparam.pem

Fünfter Schritt: Alles zu einer certificate-chain vereinigen. cat ww*.pem dhparam.pem sub.class1.server.ca.pem ca.pem > www.example.com.chain.pem

Sechster Schritt: Konfiguration von nginx mit SSL - die IP 1.2.3.4 ersetzt man durch die korrekte. server {
#your IP here
listen 1.2.3.4:443;
server_name www.example.com;
#ssl
ssl on;
ssl_certificate /etc/nginx/ssl/example.com.chain.pem;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
#PFS
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers On;
ssl_ciphers ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH;
...
}

Fertig bis auf SPDY Support. Das ganze kann man mit dem SSL Check Tool von https://www.ssllabs.com/ssltest/ zusätzlich auf korrekte Konfiguration prüfen.

Für SPDY Support geht es so weiter:
Installation einer nginx Version mit SPDY Support die statisch gegen OpenSSL gelinkt ist, so dass NPN Support (Next protocol negotiation) funktioniert, auch wenn Ubuntu 12.04 eigentlich mit einem älteren OpenSSL kommt. sudo add-apt-repository ppa:chris-lea/nginx-devel
sudo apt-get update
sudo apt-get install nginx-full

nginx Konfiguration anpassen: server {
...
listen 443 ssl spdy default_server;
...
}

Damit auch User, die nicht per SSL auf die Seite zugreifen SPDY erkennen und umschalten, kann man noch diesen Header setzen:

add_header Alternate-Protocol 443:npn-spdy/2;

Als Performance Verbesserung kann noch diese Option zur Aktivierung von OCSP Stapling verwendet werden: #google public dns
resolver 8.8.8.8;
ssl_stapling on;
ssl_trusted_certificate ssl/www.example.com.chain.pem;

Leider ist mit der Apache Version, die derzeit mit Ubuntu ausgeliefert wird, kein performantes perfect forward secrecy möglich. Der Apache http in der (uralt) Version hat keine Unterstützung für elliptic curve cryptography mit der die gemeinsame Berechnung eines Sitzungsschlüssels schnell und ressourcenschonend möglich ist.
Es gibt zwar andere Algorithmen die mittels Diffie-Hellmann PFS realisieren und auch mit dem Apache httpd funktionieren, jedoch sind diese für größere Webseiten nicht ohne zusätzliche Hardware praktikabel.

Openfire User Service Plugin: NoClassDefFoundError

24 May 2013

Fuer den OpenFire XMPP/Jabber Server gibt es ein ganz praktisches Plugin, dass es einem erlaubt per HTTP Schnittstelle User zu administrieren (anlegen/loeschen/editieren), ohne dass man sich in das Admin UI einloggen muss.

Vor allem zur Integration mit anderen Systemen eignet sich das, wenn man nicht ueber LDAP oder Datenbankintegration arbeiten kann, sondern die User Daten replizieren muss.

Das Plugin laesst sich ueber den OpenFire Plugin Manager sehr einfach installieren, jedoch resultiert dies dann bei Verwendung in unangenehmen Meldungen.

HTTP ERROR: 500

gnu/inet/encoding/Stringprep
RequestURI=/plugins/userService/userservice Caused by:
java.lang.NoClassDefFoundError: gnu/inet/encoding/Stringprep
     at org.jivesoftware.openfire.plugin.userService.UserServiceServlet.doGet(UserServiceServlet.java:130)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
Es gibt dazu in der ignite realtime Community gibt es dazu auch einen Thread: http://community.igniterealtime.org/thread/44326

Die dort vorgeschlagene Lösung ist das User Service Plugin neu zu bauen, nachdem man die Sourcen vom Openfire User Service Plugin lokal ausgecheckt hat.

Praktischer kann dabei die Lösung sein, die notwendige Dependency dem Openfire direkt mitzugeben:

Dazu lädt man libidn, z.B. von hier http://ftp.gnu.org/gnu/libidn/libidn-1.26.tar.gz, packt das Archiv aus und kopiert die Date libidn-1.26.jar in das lib Verzeichnis von Openfire. Danach einfach den Openfire Jabber Server neu starten.

Netbeans + git = merge commit bei pull?

16 March 2013

Netbeans unterstützt derzeit keine interaktive Auswahl der Optionen "merge commit" oder "rebase" wenn bei einem git pull kein fast-forward möglich ist. Dazu gibt es diesen Netbeans bug: http://netbeans.org/bugzilla/show_bug.cgi?id=213855

Als kleiner Work-Around ist es jedoch mit git Bordmitteln möglich, das Default-Verhalten von git selbst anzupassen. Dazu kann man auf einem Branch das Verhalten konfigurieren, z.B. dem master branch: git config branch.master.rebase true

Ich hoffe dieser kleine Netbeans Tipp hilft auch anderen Usern :)

Ubuntu boot partition voll

14 September 2012

Wenn Ubuntu sich beklagt, dass die boot Partion bald voll ist, dann muss man etwas unternehmen.

Das ist eigentlich sogar sehr einfach!

Die boot Partition beinhaltet den Kernel (das Betriebssystem) und eine RAM-Disk, auf der Treiber und minimale Start-Scripte liegen. Diese werden benötigt, um Treiber und spezielle Geräte wie eine verschlüsselte Startpartion einzurichten.

Nun kann der Speicher, der für diese Dinge benötigt wird, sehr stark wachsen. Vor allem wenn viele Kernel-Updates herausgegeben werden, oder man Virtualbox oder NVIDIA Treiber installiert hat, die viel Speicherplatz benötigen. Wenn man sicher ist, dass mit dem aktuellen Kernel alles funktionier, dann kann man getrost alte Linux Kernel Installationen entfernen um Speicherplatz auf der boot Partition zu sparen.

Ich mache das folgendermaßen:

Termial öffnen sudo apt-get purge linux-image<tab><tab> Nun erhält man verschiedene Versionen zur Auswahl.  Ich nehme dann immer alle bis auf die neuesten drei. So kann man bei Problemen nochmal eine Version zurück gehen.

Zum Beispiel entferne ich dann folgende Kernel um auf der boot Partition mehr freien Speicherplatz zu schaffen:

sudo apt-get purge linux-image-3.2.0-23-generic linux-image-3.2.0-24-generic linux-image-3.2.0-25-generic linux-image-3.2.0-26-generic linux-image-3.2.0-27-generic Analog für die "headers" und andere Image Pakete.

Schon ist Platz für neue Ubuntu Updates, Kernel Updates und Module wie Virtualbox oder proprietäre Grafiktreiber wie NVIDIA.

Netbeans TDD Produktivität

21 April 2012

Test driven development ist inzwischen schon fast ein alter Hut. Um so mehr ist es wichtig, dass die Produktivität stimmt. Hält man sich an bestimmte Namenskonventionen, so unterstützen alle modernen IDEs schnelles Umschalten zwischen Test-Code und Produktionscode.

Dazu nennt man seine Testklasse genauso wie die Class-under-test, beispielsweise "FibonacciTest" falls die eigentliche Klasse "Fibonacci" heißt. Mittels Control-Shift-T kann man in Netbeans dann zwischen den beiden Klassen umschalten. Heute habe ich noch was gelernt: Control-F6 startet den Unit test - und zwar auch dann, wenn man ihn nicht fokussiert hat, also in der eigentlichen Klasse im Editor ist. ("Fibonacci" in diesem Beispiel)

Das spart unnötige Kontext-Switche, macht einfach Spaß und bringt Produktivität. Mein Tipp: Ausprobieren!

Mit Alt-F6 startet man übrigens alle Tests zu einem Projekt. (Falls einem nicht komische Ubuntu Tastenkürzel dazwischenfunken.)

Grub bootet nicht - fail von recordfail?

10 March 2012

Ubuntu setzt den Grub / Grub2 Bootloader standardmäßig ein. Solange er funktioniert ist auch alles prima. Bei Desktop Rechnern gibt es sowieso kein Problem - hier kann man notfalls manuell eingreifen und im Boot Menü seine Lieblingsoption auswählen oder ganz von Hand booten.
Bei Servern sieht das schon etwas anders aus. Normalerweise sind diese nicht an eine Konsole angeschlossen, oder stehen sogar (sehr) weit weg.
Ein Feature von Grub ist, dass sich der Bootloader merken kann, ob ein Startvorgang erfolgreich war. Wenn der schief geht, wird beim nächsten Start nicht direkt gebootet, sondern das Grub Menü bleibt stehen, damit der Anwender eine andere Option auswählen kann. Das ist für einen Desktop Rechner sicherlich genau das gewünschte, und Ubuntu zielt primär auf Desktop User. Der Anwender kann jetzt eine Rettungs-Konfiguration auswählen, oder es einfach nochmal versuchen.
Wenn bei einem Server ein boot jedoch schief geht - z.B. weil genau da ein Reset/Stromausfall o.ä. stattfindet - dann steht der Server. Bis jemand etwas von Hand einstellt. Das kann dann eine längere Downtime bedeuten.
Ich kann damit besser leben wenn der Server im Falle eines Defekts endlos immer wieder Boot-Versuche unternimmt, als wenn er stehen bleibt weil einmal etwas blöd gelaufen ist. Das ist auch ganz einfach zu ändern:
Man öffne die Datei /etc/grub.d/20_header und ersetze folgenden Abschnitt

if [ "\${recordfail}" = 1 ]; then
  set timeout=-1
Durch diesen Abschnitt:
if [ "\${recordfail}" = 1 ]; then
  set timeout=30
Danach noch ein "update-grub" und in Zukunft wird im Falle eines Bootfehlers 30 Sekunden auf Eingaben gewartet und sonst ein neuer Boot-Versuch gestartet.

Ubuntu VLC: Echo, Kratzen und Rauschen

3 March 2012

Seit gewisser Zeit - ich weiss nicht wann genau - habe ich Probleme mit dem Sound von VLC: Es rauscht, knistert und es klingt als würde die Audio Spur doppelt wiedergegeben.

Totem und andere Programme machen dabei keine Probleme, lediglich VLC. Der Rechner ist ein 6 Kern AMD mit Ubuntu 11.10 und VLC 1.1.12 aus dem Ubuntu Repository. Auch verschiedene Einstellungen bei den VLC Audio Codecs und Wiedergabe Devices (Alsa, Pulse-Audio, OSS) haben dabei nichts geändert.

Abhilfe konnte ich jedoch zum Glück auch finden:  Ich habe "pavucontrol" installiert und dann das vorhandene HDMI Wiedergabe Gerät deaktiviert und den Stereo-Ausgang umkonfiguriert (kein demux mehr). Siehe da, alles ist prima! sudo apt-get install pavucontrol Danach starten und Konfiguration anpassen.

Netbeans 7.1, JSLint und jQuery: $ used before defined

27 December 2011

Seit Netbeans 7.1 ist JSLint als Plugin verfügbar. Mit JSLint wird JavaScript auf (mögliche) Fehler untersucht und diese als Warnungen im Editor angezeigt. (Aufruf mit Rechtsklick innerhalb einer JavaScript Datei und dann "JSLint" klicken)

Jedoch gibt es dabei auch falsche Warnmeldungen wenn JsLint nicht richtig konfiguriert ist. So warnt mich Netbeans 7.1 dann bei einer JavaScript Datei, als externe Ressource zusammen mit jQuery in eine Webseite eingebunden ist:

"$ was used before it was defined"

Dies lässt sich beheben, indem man die JSLint Konfiguration (Tools->Options->Misc->JSLint) aufruft und dort unter "predefined" das "$" deklariert. Leider wurde diese Einstellung bei mir  nicht korrekt gespeichert und hatte auch keine Auswirkungen auf das Verhalten von JSLint. Ich nehme an, dass der Fehler mit einem Update des Plugins behoben wird.

Virtualisierung: I/O Last senken mit KVM/libvirt

11 December 2011

Das Thema Virtualisierung geht einher mit neuen Anforderungen an die Ressourcen des Host Systems. Da zwar die CPU Leistung kontinuierlich zunimmt (Anzahl Kerne, Leistung/Stromverbrauch) und auch RAM Speicher immer günstiger wird, jedoch die Leistung der Festplatten nicht zunimmt, ergeben sich neue Probleme: Selbst mit schnell drehenden Platten und RAID Verbund wirkt sich die erhöhte Last durch mehrere virtualisierte Maschinen auf einem "Blech" deutlich aus, da die Leistung - gemessen an der Anzahl der I/O Operationen pro Zeiteinheit - nicht mit gewachsen ist. Durch mehrere virtualisierte Systeme verändert sich auch das Zugriffsprofil: Selbst lineares Lesen jedes einzelnen Systems für sich sieht für die Festplatten eher wie ein Zufallsmuster aus, da mehrere Systeme parallel arbeiten. Ein Weg zur Erhöhung der I/O Operationen pro Sekunde ist starkes Caching oder Einsatz von SSD Festplatten (die wieder eigene Probleme haben).

Für den Einsatz unter Linux hat sich KVM als Standard für Virtualisierung durchgesetzt, ergänzt um Abstraktionsschichten wie libvirt. Vor allem bei den derzeit angebotenen dedicated Servern lohnt sich die Nutzung als Virtualisierungshost, da dies die Management-Möglichkeiten deutlich verbessert werden und die Flexibilität erhöht wird. Bei dieser Konstellation wird in der Regel die lokale Platte/Platten als Storage verwendet, mit den oben angeführten Einschränkungen. Was noch dazu kommt: Virtualisiert man die Festplatten "direkt", stellt diese also als IDE oder SCSI Device zur Verfügung, kommt deutlicher Overhead dazu. Der lässt sich nicht vermeiden, wenn man Windows oder ein Betriebssystem virtualisiert, das keine Paravirtualisierung unterstützt.

Paravirtualisierung liegt dann vor, wenn das virtualisierte System etwas davon weiß, in welcher Umgebung es läuft, und entsprechend kooperativ ist. Mit Linux ist das kein Problem, unter anderem durch die Vorarbeiten die fuer die Xen Virtualisierung erfolgt ist. Daher sollte man nicht als "ide" sondern "virtio" als Schnittstelle für Gäste verwenden, die das unterstützen, um geringere Last und höhere Performance zu erzielen.

Ubuntu Lucid LTS Server auf Oneiric Updaten

10 December 2011

Manchmal möchte man gerne ein Update von einer LTS Version auf eine nicht-LTS Version machen, z.B. um  neuere Pakete nutzen zu können. Der "übliche" Weg dazu, den man in vielen Blogs und Foren findet, ist "sudo do-release-update -d", welches auf die aktuellste Developer ("d") Version aktualisiert.
Das ist solange kein Problem, wie keine "echte" Entwicklerversion bereitsteht, dann sind Entwicklerversion und letzte Release-Version nämlich identisch und man erhält das gewünschte Ergebnis. Möchte man aber derzeit beispielsweise von Ubuntu Lucid auf Oneiric umstellen, und wählt das development Update an, so wird in der Tat auf die Entwickler Version Precise Pangolin aktualisiert. Höchstwahrscheinlich auf einem Server nichts, was man nur für aktuellere Pakete tun möchte.

Die Alternative: In /etc/update-manager/release-upgrades aendert man die Zeile Prompt=lts auf Prompt=normal und startet anschließend ganz normal "sudo do-release-upgrade". Der Upgrade Prozess von Lucid auf Oneiric verlaeuft dann ueber die Zwischenschritte "Update auf Maverick" und "Update auf Natty".

Ubuntu HDMI (kein) Sound

14 October 2011

Seit meinem neuen Computer (und Ubuntu Oneric) ist mein zweiter Monitor per HDMI Kabel angeschlossen. Das Problem: Per HDMI ist neben Bild- auch ein Tonausgabegerät und wird als Default Device verwendet. Damit ist dann teilweise nichts zu hören - offenbar ist das jedoch Anwendungsabhängig.

Als Lösung habe ich mir pragmatisch ein virtuelles pulseaudio device eingerichtet, dass auf alle Geräte den Sound dann ausgibt. Dazu installiert man sich das Paket "paprefs"

sudo apt-get install paprefs

und starte diese ("paprefs"). Auf dem Reiter "simultaneous output" (im englischen) kann dann ein virtuelles Gerät aktiviert werden, dass die Ausgabe auf alle Geräte weiterleitet.

Ubuntu Oneiric: Netbeans Master-Passwort / Keyring Integration

14 October 2011

Schon in frühen Beta Versionen von Ubuntu 11.04 / Oneiric hat Netbeans mich ständig nach einem "Master Password" gefragt, mit dem gespeicherte Passwörter von Netbeans gegen unbefugten Zugriff verschlüsselt werden.

Das ist nervig, denn bisher ging es auch ohne - dabei nutzt Netbeans die von modernen Betriebssystemen bereitgestellte native Infrastruktur um Passwörter zu speichern. (z.B. Keychain auf dem Mac, Gnome-Keyring o.ä.) Normalerweise funktioniert das auch - aber seit Gnome 3 hat sich da offenbar etwas geändert.

Debuggen kann man die Netbeans Keyring Integration indem man folgende Option in der etc/netbeans.conf zu den netbeans_default_options ergaenzt: -J-Dorg.netbeans.modules.keyring.level=0

Anschließend sieht man in ~/.netbeans/7.0/var/log/messages FINE [org.netbeans.modules.keyring.kde.KWalletProvider]: application exit with code 2 for commandString: [qdbus, org.kde.kwalletd, /modules/kwalletd, org.kde.KWallet.isEnabled]; errVal: Service 'org.kde.kwalletd' does not exist.
FINE [org.netbeans.modules.keyring.gnome.GnomeProvider]
java.lang.UnsatisfiedLinkError: Unable to load library 'gnome-keyring': libgnome-keyring.so: cannot open shared object file: No such file or directory
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:163)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:236)
at com.sun.jna.Library$Handler.<init>(Library.java:140)
at com.sun.jna.Native.loadLibrary(Native.java:379)
at org.netbeans.modules.keyring.gnome.GnomeKeyringLibrary.<clinit>(GnomeKeyringLibrary.java:62)
[catch] at org.netbeans.modules.keyring.gnome.GnomeProvider.enabled(GnomeProvider.java:88)
at org.netbeans.api.keyring.Keyring.provider(Keyring.java:72)
at org.netbeans.api.keyring.Keyring.save(Keyring.java:109)
at org.netbeans.modules.j2ee.deployment.impl.ServerRegistry$5.run(ServerRegistry.java:731)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1424)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1968)
Nachdem ich sichergestellt habe, dass die Library installiert ist: sudo apt-get install libgnome-keyring0
Reading package lists... Done
Building dependency tree
Reading state information... Done
libgnome-keyring0 is already the newest version.
bleibt die Frage: Wieso findet Netbeans die gesuchte Library nicht? Die Lösung: Die Gnome Keyring Library ist nur noch mit einem anderen Dateinamen verfügbar, mit angehängter "0". Das gab es zwar früher schon immer, dass die Libraries ohne Versionsnummer (oder was das ist) lediglich ein Symlink auf die "echte" Library waren, aber immerhin gab es die. (Da gibt es bestimmt einen guten Grund und viel Logik für, dass das abgeschafft wurde - mir erschließt sich das jedoch nicht.)
Der simple Work-Around ist daher: sudo ln -s /usr/lib/libgnome-keyring.so.0 /usr/lib/libgnome-keyring.so und danach funktioniert Netbeans wieder tadellos. Also gab es offenbar keine inkompatiblen API Änderungen, sondern "lediglich" eine Änderung des Library-Namens. Ob das ein Ubuntu/Debian Paketierungsproblem ist, oder ab Gnome 3 einfach die neue Marschrichtung, kann ich nicht sagen.

Update: Ich hab dazu ein Bug im Netbeans Issuetracker aufgemacht. Wer voten möchte - gerne: http://netbeans.org/bugzilla/show_bug.cgi?id=203735

Oneiric update auf VM Gast bricht ab

14 October 2011

Wer einen KVM/VM Gastsystem dass mit "vmbuilder" erstellt wurde auf Ubuntu Oneiric updaten möchte wird möglicherweise diese unschöne Überraschung erleben:

A fatal error occurred

Please report this as a bug and include the files
/var/log/dist-upgrade/main.log and /var/log/dist-upgrade/apt.log in
your report. The upgrade has aborted.

Ein Blick in die genannten Logdateien hilft weiter: 2011-10-14 08:39:47,147 DEBUG creating statefile: '/var/log/dist-upgrade/apt-clone_system_state.tar.gz'
2011-10-14 08:39:56,877 DEBUG lspci failed: [Errno 2] No such file or directory
2011-10-14 08:39:56,920 DEBUG lsb-release: 'natty'
2011-10-14 08:40:00,162 ERROR not handled exception:
Traceback (most recent call last):
Da schlägt der Aufruf von "lspci" fehl. Das Paket ist in dem per vmbuilder unter lucid erstellten System nicht installiert, und wurde auch bei den nachfolgenden Updates nicht als Dependency deklariert und somit nicht installiert.
Installiert man das Paket kurzerhand selbst sudo apt-get install pciutils funktioniert danach das Update auf den ersten Blick auch fehlerfrei.

Firefox/Chrome, Office: Paste plain text (ohne Formatierung)

13 October 2011

Inzwischen sind wysiswg-Editoren wie TinyMCE oder der (seit Version 4 obligatorische) Rich Text Editor im Confluence Wiki on vogue.

Manchmal möchte man sich jedoch nur Inhalte ohne Formatierungen von einer anderen Webseite/Wikiseite oder einem Dokument übernehmen. Bisher war meine "Lösung" dazu, den Text in gedit oder einem anderen reinen Texteditor einzufügen und dann wieder dort heraus zu kopieren. Etwas umständlich - da gibt es aber eine Lösung für:

In Google Chrome,  Chromium, Firefox und OpenOffice/LibreOffice gibt es dafuer ein Shortcut: Mittels STRG-SHIFT-V (bzwl. ctrl-shift-v) wird ohne Formatierung eingefuegt.

Lediglich AdblockPlus User und Confluence User haben ein Problem: Genau das Kürzel wird bereits verwendet. In Adblock Plus kann dies nicht über die GUI deaktiviert werden, sondern muss über "about:config" fuer den Schlüssel "extensions.adblockplus.sidebar_key" umgestellt werden. Nach einem Neustart von Firefox funktioniert es dann wie gewünscht.

Ubuntu Oneiric: Latex Papierformat

7 October 2011

In Ubuntu Oneiric hat sich ein Patch eingefunden, der dafuer sorgen soll, dass das Papierformat nicht zu A4 im Default wird. Das sorgte bei mir dafuer, dass auch Dinge, die eigentlich A4 werden sollten im US-Letter Format als PDF generiert wurden.

Die Loesung dafuer sieht so aus, dass man entweder mit den Kommandos \pdfpageheight und \pdfpagewidth das Ausgabeformat korrekt setzt, oder ein Package verwendet, dass sich bereits darum kuemmert. Das ist Beispielsweise das "geometry" Paket: \usepackage{geometry}

Wenn man eigene Vorlagen verwendet, kann man das Geometrie Paket so einbinden: \RequirePackage{geometry}

Archiv mit gpg verschlüsseln und mit lzma komprimieren

21 August 2011

Ich verwende zur Datensicherung ein selbst gebautes Script und brenne die Daten danach auf Bluray Medien zur externen Hinterlegung.
Bisher habe ich dazu in etwa folgenden Aufruf verwendet: tar -v --label="tkruse-home" -l -c -p --totals --ignore-failed-read ... | gpg --compress-algo bzip2 --cipher-algo AES256 -z 9 -c Nun komprimiert bzip2 ja nicht besonders gut im Verhältnis zum dafür erforderlichen Aufwand (und die Dekomprimierung ist langsam). Leider unterstützt GPG von Haus aus lediglich bzip2 und zlib, nicht den von mir favorisierten lzma Algorithmus. (Der kommt bei 7zip auch zum Einsatz und sorgt für die gute Kompressionsrate.)
Jedoch ist bei modernen Linux Distributionen wie Debian und dem darauf basierenden Ubuntu auch das Kommandozeilentool "lzma" verfügbar. Dies kann in guter alter Unix Manier als Filter eingesetzt werden, lediglich gpg muss dann noch beigebracht werden, keine eigene Komprimierung einzusetzen. Dies geschieht wenn man als "Algorithmus" einen der Werte "none" oder "uncompressed" verwendet.
Der Aufruf sieht dann so aus: tar -v --label="tkruse-home" -l -c -p --totals --ignore-failed-read ... | lzma -c -z -9 | gpg --compress-algo none --cipher-algo AES256 -c

Leider unterstützt das lzma Tool derzeit (2011) noch kein multithreading (im Gegensatz zu 7zip), so dass keine Parallelität auf multi-core Maschinen ausgenutzt werden kann.

Im Gegensatz zu anderen Backup Lösungen hat meine Lösung den Nachteil kein inkrementelles Backup zu unterstützen, die Backup Datei hat keine Redundanz gegen defekte Blöcke und als Ausgabe kommt lediglich eine große Datei heraus, die anschließend gesichert werden muss. Für mich reicht das - für einen normalen Anwender ist es vermutlich nicht das Mittel der Wahl.

Subversion diff grafisch anzeigen: meld

26 July 2011

Änderungen an LaTeX Dokumenten lassen sich sehr komfortabel ansehen, wenn die Dokumente in einem Versionskontrollsystem wie Subversion verwaltet werden.

Subversion hat dazu das "diff" Kommando, jedoch gibt dies lediglich Änderungen auf der Kommandozeile aus. Schöner wäre ja eine grafische Übersicht. Dazu kann man Subversion per "--diff-cmd" auch ein Programm angeben, dass die Ausgabe aufbereiten bzw. anzeigen soll. Leider funktioniert das mit meinem lieblings-Diff-Viewer, "meld" nicht wie erwartet.

Meld selber kann jedoch direkt aufgerufen werden und kuemmert sich dann darum, ein Diff zu erstellen und dies auch anzuzeigen. Dazu gibt man lediglich im Working-Directory

meld .

ein. Der Punkt ist wichtig, damit wird ab dem aktuellen Verzeichnis nach Änderungen gesucht. Nun sieht man die Dateien, die geändert sind, und kann diese in meld anklicken. Ubuntu und Debian User können meld bei Bedarf per sudo apt-get install meld installieren, sollte dies noch nicht geschehen sein.

Jenkins, Java: java.net.SocketTimeoutException: Accept timed out

25 July 2011

Lange gesucht, doch gefunden: ERROR: Aborted Maven execution for InterruptedIOException
java.net.SocketTimeoutException: Accept timed out

Jenkins (bzw. Hudson) bricht dann mit dieser Fehlermeldung den Build Prozess ab:

java.net.SocketTimeoutException: Accept timed out
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
	at java.net.ServerSocket.implAccept(ServerSocket.java:462)
	at java.net.ServerSocket.accept(ServerSocket.java:430)
	at hudson.maven.AbstractMavenProcessFactory$SocketHandler$AcceptorImpl.accept(AbstractMavenProcessFactory.java:167)
	at hudson.maven.AbstractMavenProcessFactory.newProcess(AbstractMavenProcessFactory.java:221)
	at hudson.maven.ProcessCache.get(ProcessCache.java:231)
	at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:668)
	at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:429)
	at hudson.model.Run.run(Run.java:1374)
	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:467)
	at hudson.model.ResourceController.execute(ResourceController.java:88)
	at hudson.model.Executor.run(Executor.java:145)
Finished: ABORTED
Beheben über advanced und dort in die MAVEN_OPTS hinzufügen: -Djava.net.preferIPv4Stack=true Anschließend sollte der Build wieder korrekt funktionieren. Alternativ kann man dies auch als globale Environment Variable setzen, das Problem wird mehrere Java Anwendungen betreffen und nicht nur den CI Server.

SSL Problem mit Java 7

25 July 2011

Nachdem ich (wie im vorherigen Artikel beschrieben) nun OpenJDK / Java 7 selber kompiliert habe, habe ich mich auf die Suche nach dem SSL Problem gemacht, dass ich mit Jameica/Hibiskus habe. (No offense, ich find es leichter OpenJDK zu übersetzen oder anzupassen als Jameica und Hibiskus zu bauen... praktischerweise bringt OpenJDK auch Netbeans Projektdateien mit, so dass es ein Klacks ist, das Projekt mit Netbeans zu verwenden.)

Nachdem ich folgenden Patch geschrieben habe habe:

diff -r 9b8c96f96a0f src/share/classes/sun/security/ssl/SSLContextImpl.java
--- a/src/share/classes/sun/security/ssl/SSLContextImpl.java	Mon Jun 27 13:21:34 2011 -0700
+++ b/src/share/classes/sun/security/ssl/SSLContextImpl.java	Mon Jul 25 19:30:11 2011 +0200
@@ -871,7 +871,7 @@
                 }
             } catch (CertPathValidatorException cpve) {
                 throw new CertificateException(
-                    "Certificates does not conform to algorithm constraints");
+                    "Certificates does not conform to algorithm constraints", cpve);
             }
         }
     }
ist jetzt auch zu sehen, was die Ursache fuer den SSL Fehler ist:
Caused by: java.security.cert.CertPathValidatorException: Algorithm constraints check failed: MD2withRSA
	at sun.security.provider.certpath.AlgorithmChecker.check(AlgorithmChecker.java:200)
	at sun.security.ssl.AbstractTrustManagerWrapper.checkAdditionalTrust(SSLContextImpl.java:870)
	... 21 more org.kapott.hbci.manager.HBCIUtils.log(HBCIUtils.java:1052)
OpenJDK kommt übrigens ohne Root Zertifikate daher, so dass man sich nicht über einen solchen Dialog wundern sollte:

Nachdem man die Exception genauer ansieht, ist man auch etwas schlauer geworden: Irgendein Zertifikat ist mit einem nicht mehr als sicher geltenden Algorithmus signiert. Das der Apobank selbst ist es offensichtlich jedoch nicht, also muss die gesamte Zertifikatskette untersucht werden.
Hier habe ich etwas Shell-Magie und das OpenSSL Kommandozeilentool verwendet: openssl s_client -showcerts -connect hbcibanking.apobank.de:443 < /dev/null | awk -v c=-1 '/-----BEGIN CERTIFICATE-----/{inc=1;c++} inc {print > ("cert-" c ".pem")}/---END CERTIFICATE-----/{inc=0}'; for i in cert-?.pem; do openssl x509 -noout -serial -subject -issuer -in "$i"; done Danach finden sich alle Zertifikate in cert-1.pem, cert-2.pem usw., die Ausgabe der Seriennummern, Subject und Issuer sah bei mir so aus: serial=4FCD4C50631D3BB4C747A319E816AD5D
subject= /C=DE/ST=NRW/L=Duesseldorf/O=Deutsche Apotheker- und Aerztebank/OU=Terms of use at www.verisign.com/rpa (c)05/CN=hbcibanking.apobank.de
issuer= /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign
serial=254B8A853842CCE358F8C5DDAE226EA4
subject= /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign
issuer= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
serial=70BAE41D10D92934B638CA7B03CCBABF
subject= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
issuer= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
Nun müssen alle Zertifikate untersucht werden: openssl x509 -text -in cert-0.pem Und entsprechend für die anderen Zertifikate in der Kette. Ich wurde dann bei dem dritten Zertifikat fündig: tkruse@charix:~$ openssl x509 -text -in cert-2.pem
Certificate:
Data:
Version: 1 (0x0)
Serial Number:
70:ba:e4:1d:10:d9:29:34:b6:38:ca:7b:03:cc:ba:bf
Signature Algorithm: md2WithRSAEncryption
Issuer: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
Validity
Not Before: Jan 29 00:00:00 1996 GMT
Not After : Aug 1 23:59:59 2028 GMT
Subject: C=US, O=VeriSign, Inc., OU=Class 3 Public Primary Certification Authority
Ein "betagtes" altes VeriSign Zertifikat das mit MD2 und RSA signiert wurde. Auch wenn der MD2 Signaturalgorithmus noch nicht gebrochen ist, gibt es einige Angriffe, die dazu geführt haben, dass MD2 seit 2009 nicht mehr in OpenSSL verwendet wird.
Was heißt das nun für das konkrete SSL Problem? Die ApoBank wird sich eh um Januar 2012 herum spätestens ein neues SSL Zertifikat besorgen. Dann sollte der Spuk zu ende sein. Besser wäre es allerdings wenn die betroffenen Anbieter ihre SSL Zertifikate jetzt erneuern - es geht schließlich um Online Banking!
Und wieso fällt das erst seit Java 7 auf? Seit Java 7 ist offenbar die Möglichkeit neu hinzugekommen die Algorithmen zu prüfen oder wurde geändert. Eigentlich sollte seit Java 6u17 bereits MD2 nicht mehr unterstützt werden, zumindest gibt es einen entsprechenden Eintrag in den Release notes: http://www.oracle.com/technetwork/java/javase/6u17-141447.html.

OpenJDK - Java 7 - mit Ubuntu kompilieren

24 July 2011

Ich habe ein merkwuerdiges SSL Problem mit Java 7 (Build 147, dem Release Candidate) im Zusammenhang mit Online-Banking und Jameica/Hibiskus:

Caused by: java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
 at sun.security.ssl.AbstractTrustManagerWrapper.checkAdditionalTrust(SSLContextImpl.java:873)
 at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:804)
 at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1319)
 ... 19 more
Schaut man sich dazu den Source Code an, sieht man schnell, dass leider die verursachende Exception verschluckt wird. (Das kommt davon, wenn Committer und Reviewer identisch sind...)
Meine Idee war also, OpenJDK selber zu bauen und da ggf. besseres Logging einzubauen. Die im Internet veröffentlichten Anleitungen sind alle ein paar Jahre alt und nicht mehr ganz korrekt, daher hier meine Ergebnisse zum Nachmachen.
Ich habe Ubuntu als System verwendet, dort ist eine Übersetzung von OpenJDK / Java 7 sehr einfach.
OpenJDK wird mittels Mercurial verwaltet, zur Hierarchiebildung wird die Mercurial Forest extension benötigt (und Mercurial). Ist das "mercurial" Paket bereits installiert so kann man die Forest extension einfach herunterladen:
hg clone http://bitbucket.org/pmezard/hgforest-crew hgforest
Diese muss nun in die .hgrc eingetragen werden: (das "...." durch den Pfad zum Download ersetzen)
[extensions]
forest=......hgforest/forest.py
fetch=
Danach installiert man die Build Abhängigkeiten:
sudo apt-get install build-essential gawk libasound2-dev libfreetype6-dev libcups2-dev libxt-dev libx11-dev libxtst-dev libxrender-dev
Und checkt per mercurial-forest die Sourcen fuer OpenJDK aus:
hg fclone http://hg.openjdk.java.net/jdk7/jdk7 jdk7
Da beim späteren Build noch Java Abhängigkeiten heruntergeladen werden müssen, hab ich noch folgendens in die Ant Konfiguration eingesetzt: ~/.antrc
ANT_OPTS=”$ANT_OPTS -Dallow.downloads=true”
Für den build benötigt man ein existierendes Java, und setzt folgenden Umgebungsvariablen:
export ALT_BOOTDIR=/usr/lib/jvm/java-6-sun
unset JAVA_HOME
export LANG="C"
make sanity
Da sollten keine Fehler zu sehen sein und gibt dann den "make" Befehl (dauert bei mir rund 40 Minuten):
make
Und kann es dann aus dem aktuellen Verzeichnis testen ob "java" vorhanden ist:
build/linux-amd64/bin/java -version
Bei mir sieht das dann folgendermassen aus:
openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.7.0-internal-tkruse-b00)
OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode)
Fertig.
(Ja man benötigt wirklich keine "binary plugs" o.a". mehr!)

Update: Für Ubuntu 12.04 benötigt man folgende Pakete:

libcups2-dev, libfreetype6-dev, liboss4-salsa-dev

Und muss (Stand Mai 2012) auch wegen der neueren Kernelversion als die bei OpenJDK bekannten eine Environment Variable setzen:
export DISABLE_HOTSPOT_OS_VERSION_CHECK=ok

Ubuntu: PDF Annotationen

30 May 2011

Kollaboration im "papierlosen Büro" ist eine kleine Herausforderung für sich - zumindest wenn man ein gemeinsam zu bearbeitendes Dokument nicht ausdrucken, mit Notizen versehen und dann wieder zum Versand einscannen möchte. (Das wäre ja auch nicht papierlos)

Das häufigste anzutreffende Dokumentformat ist "PDF" - ich habe mich also damit beschäftigt, welche Optionen es gibt, um ein PDF Dokument mit Anmerkungen und Notizen zu versehen. Seit Ubuntu  Nutty 11.04 ist die poppler Version, die evince zum PDF Zugriff verwendet, aktuell genug, um auch Anmerkungen zu unterstützen. Eine Alternative ist "xournal" ein Tool für Notizen und Skizzen, das auch PDFs lesen und exportieren kann.

Die beiden Programme unterscheiden sich im Ansatz wesentlich: Während Evince auf Standard-Annotationen setzt, nutzt Xournal ein PDF als "Malunterlage". Das hat den Vorteil, dass wesentlich flexiblere Moeglichkeiten existieren, um Anmerkungen zu machen: Kleine Skizzen wie Pfeile, Linien und geometrische Formen sagen manchmal mehr als tausend Worte.

Xournal versucht dabei den Anwender zu unterstützen: Aus einem ei-förmigen Gebilde erkennt Xournal einen schönen Kreis. Auch Dreiecke sind so möglich und sehen ästhetisch aus. Verschiedene Farben, Freitext und der obligatorische Textmarker ergänzen das Paket. Xournal eignet sich damit nicht nur zur Anreicherung von PDF Dokumenten, sondern tatsächlich auch als einfache Notiz und Skizzen Applikation.

Der Ansatz von Evince hingegen auf den PDF Standard zu setzen hat den Vorteil, dass die Anmerkungen strukturiert erfasst werden: In einer Übersicht kann man sich durch alle Anmerkungen durchklicken, sieht wer diese wann erstellt hat, und kann eigene hinzufügen. Das ist besonders dann sinnvoll, wenn mehrere Personen an einem Dokument mitwirken.

Leider unterstützt Evince derzeit lediglich Textanmerkungen - ein Textmarker fehlt. Ein weiterer Vorteil: Anmerkungen können nachträglich geändert werden - prinzipiell auch mit anderen Programmen wie dem Adobe Acrobat.

Für welche Anwendung man sich entscheidet hängt somit stark von den Anforderungen ab, und wie man die Software einsetzen möchte: In einem kommerziellen Umfeld haben sich PDF Annotationen etabliert, und man wird sich über die Möglichkeit diese endlich unter Linux ohne Acrobat einsetzen zu können freuen. Reichhaltigere Anmerkungen lassen sich mit Xournal erstellen, diese sind jedoch - einmal als PDF exportiert - im Dokument eingebettet.

DKB Kreditkarte: Kontoabfrage mit Hibiscus/Jameica

27 May 2011

Hibiscus ist ein Plugin für Jameica - zusammen ergibt sich daraus ein Homebanking Programm das auf verschiedenen Betriebssystemen läuft (überall wo Java verfügbar ist), die Software kann hier heruntergeladen werden.

Die normale Abfrage von Konten erfolgt über HBCI - dies Protokoll wird jedoch leider nicht von jeder Bank bzw. jedem Finanzdienstleister für alle Produkte unterstützt. So ist Paypal z.B. nicht per HBCI abfragbar, und auch die recht populären DKB Kreditkarten Konten nicht.

In neuen Versionen unterstützt Jameica auch Scripting und sogenannte Offline-Konten. Das sind Konten, die nicht per HBCI abgefragt werden, sondern von Hand gepflegt werden. (Z.B. kann man so ein "Bar Kasse" Konto führen.) Mittels Scripting - und dem richtigen Script - lassen sich so nun auch Paypal und die DKB Kreditkartenkonten abfragen. Dazu laedt man sich lediglich die neueste Jameica Version herunter und installiert das Hibiscus Plugin.

Anschließend muss man noch das jameica.scripting Plugin, HTMLUnit (wird zum Screen-Scraping der DKB und Paypal Webseiten verwendet) und die Scripte für Paypal und/oder DKB installieren - dafür gibt es zum Glück ein einzelnes Archiv, welches man hier herunterladen kann.

Das Archiv entpackt man - genauso wie das Hibiscus Plugin für Jameica - in den Plugins Ordner.

Nach dem Start von Jameica hat man unter "Datei->Einstellungen" den Punkt "Scripting", wo man Paypal und/oder das DKB Script aktivieren kann.

Für die DKB Kreditkarte erstellt man nun ein Offline Konto - als Bankleitzahl nimmt man die der DKB (12030000), als Kontonummer verwendet man die eigene Kontonummer und als Kundennummer verwendet man die Nummer der Kreditkarte. Hier kann man die mittleren Stellen der Nummer durch "*" ersetzen - lediglich die ersten und letzten vier Ziffern der Kreditkartennummer müssen richtig angegeben sein.

Um Doppelbuchungen zu vermeiden, sollte unter "erweitert" noch das automatische Gegenbuchen ausgeschaltet werden.

Das Konto kann anschließend über den Knopf "per Scripting synchronisieren" abgefragt werden. (Leider nicht zentral mit den anderen HBCI Konten - aber immerhin.)

Ubuntu Natty: Busybox v1.17.1

5 May 2011

Eine frische Ubuntu 11.04 Natty Installation schlug bei mir stets fehl: es kam statt des gewohnten Ubuntu Systems lediglich ein "Busybox v1.17.1" Prompt.

Ich hatte das Ubuntu System dabei über den "Alternate Installer" installiert, LVM crypt fuer full disc encryption und btrfs als Dateisystem. Nichts besonderes, und es hatte bisher mit Karmic und Jaunty immer prima geklappt. So ganz genau weiss ich auch nicht, woran es liegt, jedenfalls wird die Grub Konfiguration nicht korrekt erzeugt, und dadurch kann das System nicht korrekt hochfahren.

Man kann die Grub Flags manuell editieren und in meinem Fall fehlt dabei:

rootflags=subvol=@

Hat man dies editiert, kann man mit Strg-X booten. Ein "update-grub" alleine hat entgegen anderer Aussagen in den zugehoerigen Bugs im Canonical Bugtracker nicht geholfen.

Ich habe dann das Paket grub2 aktualisiert und nochmals "update-grub" gemacht. Das hat jedoch auch nicht geholfen.

Schliesslich habe ich die /etc/default/grub Konfigurationsdatei editiert und da bei GRUB_CMDLINE_LINUX_DEFAULT noch "rootflags=subvol=@" eingetragen und "update-grub" aufgerufen.

Danach funktionierte alles wie es sollte. puh.

Ubuntu Natty: Scrollbars in Gnome Classic

30 April 2011

Nach langem Zögern habe ich mich entschlossen Ubuntu Natty 11.04 zu testen. Am neuen Ubuntu hat mich vor allem gestört, dass jemand meint, mir vorschreiben zu müssen, was für mich das beste ist: Eine Umstellung bei der Benutzeroberfläche.

Wenn ich einen Mac möchte, kaufe ich mir einen - und keine schlechte Kopie. Innovation hin oder her, wenn es in Ubuntu 11.10 kein benutzbares Gnome mehr gibt, fliegt Ubuntu von den Desktops für die ich direkt oder indirekt verantwortlich bin. Mint, Fedora oder zurück zum guten alten Debian sind durchaus Optionen.

Keine Option ist in meinen Augen "Ubuntu classic" dass eben nicht "klassisch" ist. Ich betreue einige Anwender, die sich mühsam an einen Computer gewöhnt haben, und keine Zwangsbeglückung möchten (oder sich einfach nicht mehr umstellen können): Selbst in Ubuntu classic sind die Scrollbars geändert und für Computer-Anfänger massiv unintuitiv. Und dazu noch inkonsistent: In Chromium und Firefox werden nicht die "Overlay Scrollbars" verwendet, weil es da zu Problemen kommt. Das bedeutet, dass das Benutzerinterface mal so und mal so aussieht. Das soll man dann erstmal plausibel erklären können.

Um die alten Laufleisten wieder herzustellen, verwendet man die folgenden Kommandos in einer Shell (einzeln ausführen): sudo apt-get remove overlay-scrollbar
sudo bash
echo "export LIBOVERLAY_SCROLLBAR=0" > /etc/X11/Xsession.d/80-disableoverlayscrollbars

Firefox 4 als Ubuntu Paket installieren

23 March 2011

Firefox 4 ist seit gestern offiziell veröffentlicht worden - auch fuer Linux bzw. Ubuntu. Firefox 4 ist wesentlich schneller als der alte Firefox und verfügt über HTML5 Kompatibilität sowie ein aufgeräumteres Userinterface.

Wer ein Debian basiertes Linux System, wie z.B. Ubuntu, hat, sollte nach Möglichkeit Software über Pakete installieren. Zum Glück gibts es für Ubuntu ein eigenes PPA in dem stabile Versionen von Mozilla nach Veröffentlichung  bereitgestellt werden. Das spart einiges an Arbeit und bietet gegenüber dem Mozilla-Daily PPA den Vorteil, wirklich eine stabile Version zu nutzen.

Wer also unter Ubuntu Firefox 4 schon jetzt nutzen möchte, bevor dieser in den normalen Paketquellen bereitgestellt wird (falls das überhaupt geschieht und nicht erst im nächsten Ubuntu Release), der kann folgendes in eine Kommandozeile eintippen: sudo add-apt-repository ppa:mozillateam/firefox-stable
sudo apt-get update
sudo apt-get upgrade
Viel Spaß mit Firefox 4 unter Ubuntu!

Weitere Neuerungen in Firefox 4:

  • Firefox Sync bietet die Synchronisierung von Bookmarks und Einstellungen über mehrere Rechner
  • Von der neuen - stark beschleunigten - JavaScript Engine profitiert das gesamte Userinterface, nicht nur Webseiten
  • Firefox 4 ist mit vielen Erweiterungen nicht kompatibel (ok, das ist nichts neues nach einem Firefox Update)
  • "do not track" Einstellung für verbesserte Privatssphäre
  • Mein derzeitiger Favorit: App Tabs, mittels Rechtsklick auf ein Tab kann dieser als "permanent" gespeichert werden - praktsch für Twitter, Facebook und co

Wer ein wenig schauen möchte, wo Firefox eingesetzt wird: http://glow.mozilla.org/

Pidgin, Ubuntu und Bonjour: Probleme mit ipv6

9 March 2011

Pidgin ist mein bevorzugter IM Client - auch unter Ubuntu Linux. Seit geraumer Zeit jedoch ärgerte mich Pidgin, es gab Probleme mit der Bonjour Kommunikation. Pidgin meldete Unable to send the message, the conversation couldn't be started. obwohl mein Gesprächspartner aufgeführt war. Die Umstände waren etwas schwer zu reproduzieren - mit einigen Rechnern funktionierte es, mit anderen nicht. Und genau das half mir auch eine "Lösung" zu finden: Wurde die Kommunikation von einem Rechner aus initiiert, bei dem ipv6 deaktiviert war, funktionierte das ganze. Sonst nicht.

Unter der Haube kommt "avahi" zum Einsatz - übrigens auch wenn es um remote Desktop Verbindungen geht. Hier hatte ich nämlich vergleichbare Probleme. Um das Bonjour und Remote-Desktop Problem zu loesen habe ich in der /etc/avahi/avahi-daemon.conf die Einstellung use-ipv6=yes auf use-ipv6=no geändert. Danach noch schnell den Avahi Dienst neu starten, und die  Probleme sind behoben. Pidgin selber wird in der nächsten Version auch einen Bugfix für dies Problem beinhalten, solange wollte ich aber nicht warten.

WLAN deauthenticating / denied association (code=17)

5 March 2011

Lange Suche, kleine Ursache: Wenn man sich mit einem Linux Rechner nicht mit einem Linksys / Cisco WLAN Router verbinden kann, und dabei Meldungen wie z.B.

NetworkManager[1036]: (wlan0): supplicant connection state: associating -> disconnected
NetworkManager[1036]: (wlan0): supplicant connection state: disconnected -> scanning
wpa_supplicant[1234]: Trying to associate with 00:14:bf:29:c4:23 (SSID='sforce-wpa' freq=2447 MHz)
NetworkManager[1036]: (wlan0): supplicant connection state: scanning -> associating
kernel: [ 417.694909] wlan0: authenticate with 00:14:bf:29:c4:23 (try 1)
kernel: [ 417.696781] wlan0: authenticated
kernel: [ 417.697518] wlan0: associate with 00:14:bf:29:c4:23 (try 1)
kernel: [ 417.700259] wlan0: RX AssocResp from 00:14:bf:29:c4:23 (capab=0x431 status=17 aid=0)
kernel: [ 417.700267] wlan0: 00:14:bf:29:c4:23 denied association (code=17)
kernel: [ 417.700297] wlan0: deauthenticating from 00:14:bf:29:c4:23 by local choice (reason=3)

auftauchen, dann handelt es sich um folgende Phänomen: Der Router ist der Meinung, dass er voll ist, und bittet den Client, sich mit einem anderen WLAN Access Point zu verbinden.

Windows Rechner ignorieren das, und verbinden sich dennoch mit dem Access Point, während Linux - in diesem Fall ein mit Ubuntu Maverick ausgestatteter Thinkpad - der Bitte Folge leistet. Er bricht den Verbindungsaufbau mit dem Router bzw. WLAN Access Point ab.

Leider ist davon in der GUI von Ubuntu (Network Manager) nichts zu sehen, sondern es dauert einfach sehr lange, bis erneut der Dialog zur Eingabe des WLAN Passwort auftaucht. Ein Blick in "dmesg" oder die Protokolldateien offenbart dann das Problem.

In meinem Fall ist der Router ein Linksys WRT mit Tomato Firmware - hier habe ich dann einfach die Anzahl der erlaubten Clients erhöht.

Glassfish 3.1 und httpOnly Session Cookie

4 March 2011

Wie bereits in meinem anderen Eintrag zu Glassfish 3.1 beschrieben, ist seit der Implementierung der Servlet 3.0 Spezifikation in Glassfish 3.1 der Session Cookie standardmäßig auf "httpOnly" gesetzt - dies kann Probleme mit einigen JavaScript Frameworks verursachen.

In dem web.xml Deploymentdescriptor kann dies umkonfiguriert werden, im glassfish-web.xml Descriptor ist dafür leider keine Möglichkeit vorgesehen. Weblogic, auch von Oracle mit BEA zugekauft, verhält sich dabei genauso, auch hier ist der Session Cookie auf httpOnly gesetzt - kann jedoch über den Weblogic spezifischen Deployment Descriptor unabhängig von der web.xml umkonfiguriert werden.

Und Glassfish 3.1 unterstützt nun auch ein Subset des Weblogic Deployment Descriptors um Weblogic kompatibel zu sein. (Vermutlich ist dies auch ein Grund, aus dem die Cookies httpOnly sind, um mit Weblogic konform zu sein.) Auch wenn es komisch ist, dass Glassfish selber keine Möglichkeit vorsieht das Verhalten im eigenen Deployment Deskriptor zu konfigurieren - über den Umweg des Weblogic spezifischen Descriptors geht es dann: <?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
<session-descriptor>
<cookie-http-only>false</cookie-http-only>
</session-descriptor>
</weblogic-web-app>

Datenrettung mit Ubuntu

10 February 2011

So einfach kann Datenrettung sein: Meine Mutter hat auf einer Digitalkamera Bilder gehabt, die ihr sehr am Herzen liegen. Leider wurden die Fotos von der Digicam irgendwie gelöscht - und der Frust sehr groß.

Ich hab mir die Speicherkarte der Kamera geschnappt, diese mit einem USB Kartenleser an einen Ubuntu Rechner gehängt, und mittels "dd" ein Abbild der Karte gemacht: dd if=/dev/sdc of=~/Desktop/rettung.img bs=8192 Das ganze dauerte eine Weile, da es sich um eine 32 Gigabyte Speicherkarte handelte. Nun konnte ich gefahrlos auf dem Abbild arbeiten - soweit mir bekannt löschen Kameras die Fotos nicht sofort, sondern geben, wie bei Dateisystem im Computer, den Speicher lediglich zur Wiederverwendung frei. Somit sah ich gute Chancen auf einer erfolgreiche Datenrettung mit Bordmitteln.

Nachdem das Abbild erstellt war, habe ich mit dem Programm "photorec" das Abbild durchsuchen lassen (ggf. das Paket testdisk installieren, wenn photorec noch nicht verhanden ist): photorec rettung.img Nach einer geraumen Weile fanden sich dann die geretteten Bilder in dem von mir angegebenen Ordner. Ich liebe es, wenn ein Plan funktioniert.

Ubuntu: Fenster Größe anpassen

29 January 2011

Bei Ubuntu wurde der Bereich zum "Anfassen" der Fensterrahmen auf sagenhafte einen Pixel verkleinert - möchte man ein Fenster nun breiter ziehen muss man schon gut zielen.

Komfortabler geht das derzeit lediglich, wenn man über eine Maus mit drei Tasten verfügt (oder die mittlere Taste simuliert): Hält man die "Alt" Taste fest, kann man mit der mittleren Maustaste quasi beliebig ins Fenster klicken, und die Größe anpassen. Das ist am Anfang etwas ungewohnt, geht jedoch sogar noch schneller als erst den Fensterrahmen anzusteuern - selbst wenn dieser etwas breiter ist (oder wieder wird).

Tipps zum Tastatur Layout

15 January 2011

Schon seit einem guten Jahr nutze ich das US Tastaturlayout unter Ubuntu als Standardlayout. Gerade zum Entwickeln konnte ich wegen der besseren Position von Semikolon und geschweiften Klammern schnell einen Produktivitätsgewinn feststellen.

Doch dann kamen auch die Rückschläge: Euro Zeichen, Paragraphenzeichen (§) und Umlaute sind nicht mehr verfügbar. Für Umlaute behelfen sich einige mit Unicode Eingabe, oder Copy-Paste-Vorlagen. Ich habe mir bisher damit geholfen, dass ich die Rechtschreibkorrektur einfach "ue" in "ü" habe umwandeln lassen. Hilft jedoch nicht z.B. beim "§"-Zeichen.

Und da habe ich jetzt das Feature "Compose Key" gefunden. Damit kann man - fast wie bei LaTeX - Buchstaben zusammensetzen. Dazu aktiviert man erstmal die Einstellung ein "Compose Key" auf der Tastatur zu haben, ich habe dazu die rechte Alt-Taste verwendet. (System->Preferences->Keyboard, Layout auswählen, "Options")

Anschließend kann man mittels <compose>-<u>, und <"> ein "ü" zusammensetzen. Das Paragraphenzeichen geht z.B. über <compose>-<s>, <o>

Java Servlet (Spring Controller) auf Root Path mappen

12 January 2011

Nicht immer genuegt es, wenn man ein Servlets auf andere Pfade oder Patterns mappt, manchmal möchte man bereits auf den Context Root ein Servlet mappen. Der übliche Work-Around sieht so aus, dass man bspw. in einer "index.jsp" einen redirect auf eine tatsächlich einem Servlet zugeordnete URL (über den Pfad oder Datei Extension) macht, das könnte so aussehen: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:redirect url="/myServlet"/>
Das ist aber nicht immer praktikabel - nun soll es darum gehen ein Servlet direkt auf den "/" Pfad zu mappen - dafür gibt es mehrere Möglichkeiten:

  1. Das Default Servlet ersetzen, dazu wird auf den Root Pfad "/" in der web.xml ein Mapping angelegt: <servlet-mapping> <servlet-name>myServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
  2. Ab Servlet Spezifikation kann auch ein Servlet in der welcome-file-list in der web.xml gemappt werden: <welcome-file-list> <welcome-file>myServlet</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list>

Im folgenden beschreibe ich die Vor- und Nachteile der verschiedenen Ansätze, und welche Erfahrungen ich mit verschiedenen Web Containern dabei gemacht habe.

Ubuntu Lucid mit FritzCard PCI (CAPI)

25 December 2010

Nachdem für Ubuntu Intrepid der Support ausgelaufen ist, blieb nichts anderes übrig: Ein Upgrade auf Lucid ist nötig, um weiterhin Sicherheitsupdates für Ubuntu zu bekommen. (Und wann hat man dazu schon so gut Zeit, wie zu Weihnachten...)

Nach einigen Zwischenstationen über u.a. Jaunty und Karmic samt Kernel Oops wegen ACPI und APIC Problemen auf dem alten Nvidia Board war dann endlich Lucid auf der Platte. Allerdings ohne AVM Fritz Treiber - AVM hat den Support eingestellt und es gibt (natürlich) keine OpenSource Treiber. Glücklicherweise gibts im Ubuntuusers-Wiki eine wunderbar funktionierende Anleitung. Für Ubuntu Lucid habe ich folgende Schritte durchgeführt (die Build Abhängigkeiten waren noch von Intrepid vorhanden) wget https://belug.de/~lutz/pub/fcpci/fritz-fcpci-src-2.6.31_untested.tar.bz2
tar -jxf fritz-fcpci-src-2.6.31_untested.tar.bz2
cd fritz-fcpci-src-2.6.31_untested
make clean
make all
mkdir /lib/modules/`uname -r`/extra
cp fcpci.ko /lib/modules/`uname -r`/extra/
Die letzten beiden Schritte werden wohl nach jedem Kernel Update faellig. In der /etc/modules steht das fcpci Modul noch drin, so dass es beim Systemstart automatisch geladen wird.
Danke an Lutz Willek dem wir das gepatchte Paket zu verdanken haben.

Für Asterisk und Capi sollte das Ubuntu Paket asterisk-chan-capi den entsprechenden Channel fuer Asterisk bereitstellen. Leider ist in Lucid 10.04.1 das Paket defekt, es wurde mit anderen Compileroptionen übersetzt als Asterisk und kann daher nicht geladen werden.
Ein einfacher workaround sieht so aus: apt-get install asterisk-dev
apt-get source asterisk-chan-capi
cd asterisk-chan-capi-1.1.4
dpkg-buildpackge -b
cd ..
dpkg -i asterisk-chan-capi_1.1.4-1_i386.deb

Das Asterisk Capi Channel Modul sollte in /etc/asterisk/modules.conf unterhalb von res_features eingetragen werden, z.B. so: load => res_features.so
load => chan_capi.so
Danach muss Asterisk noch neu gestartet werden.

Glassfish remote Monitoring mit VisualVM auf Ubuntu

20 December 2010

Ubuntu eignet sich hervorragend als Entwicklungsumgebung für Java Anwendungen. Sei es auf dem Desktop oder auf dem Server, bei Ubuntu bekommt man ein aktuelles Sun JDK oder OpenJDK, einen planbaren Releasezyklus. Auch ist ein Unix-artiges Betriebssystem in meinen Augen zum Arbeiten angenehmer als z.B. Windows.

Hat man auf einem entfernten Server, der aber per Netzwerk (oder VPN) erreichbar ist, einen Java Applikationsserver, wie z.B. Glassfish, laufen, so bietet sich JMX zum Monitoring und Management an. Besonders die "VisualVM" Anwendung macht die Arbeit dabei sehr leicht und übersichtlich. Der Start erfolgt einfach per "jvisualvm", anschließend können lokale Anwendungen sofort analysiert werden, für entfernte Rechner ist eine JMX Verbindung erforderlich.

Für VisualVM gibt es auch ein Plugin für Glassfish, dies kann über "Tools -> Plugins" installiert werden. Danach fügt man den entfernten Host hinzu, hier kann man den Hostnamen oder eine IP Adresse eintragen:

Yak scheren: Hudson remote Deploy auf Glassfish (v3)

17 December 2010

Ich wollte eigentlich nur etwas ganz simples: Continuous Deployment. Das ist der neueste Trend nach Continous Integration habe ich mir sagen lassen. Und gerade wenn man in einem Team arbeitet ist es schon vorteilhaft, wenn man einen stabilen Build staendig deployt hat.

Hudson ist mein bevorzugter Buildserver (auch wenn Bamboo wirklich ansprechender ist, aber eben auch eine Ecke teurer und nicht OpenSource) - und es gibt auch ein Plugin fuer Hudson, mit dem man ein Deployment anstarten kann: http://wiki.hudson-ci.org/display/HUDSON/Deploy+Plugin Leider funktioniert das bei dem Glassfish nicht, wenn Hudson nicht auf dem selben Server läuft, wie der Glassfish. (Das sollte/dürfte der Regelfall sein.)

Youtube Download

16 December 2010

Immer wieder werde ich gefragt: Wie geht ein Youtube Download? Der Hintergrund: Nicht immer kann man Videos in Echtzeit abrufen, manchmal ist aufgrund einer längeren Reise oder anderen Gründen keine Internet Versorgung vorhanden. Youtube Videos zu speichern, wenn man sowas absehen kann, lohnt also. (Was rechtliche Aspekte angeht, bin ich jedoch überfragt, ich gehe davon aus, dass es in Deutschland legal ist - wir zahlen ja dafür Urheberrechtsabgaben auf alle Speichermedien  und PCs -  aber sicherlich in mindestens einem Land der Welt verboten ist.)

Firefox langsam und braucht viel Speicher?

6 December 2010

Firefox ist an sich ein recht ordentlicher Browser. Die Zeiten in denen er in Punkto Geschwindigkeit und "Schlankheit" ganz vorne war, sind allerdings vorbei. Aber damit koennen viele gut Leben - Firefox ist recht stabil, die Geschwindigkeit ist auch nicht schlecht und vor allem die Flexibilitaet dank der beinahe unendlichen Fuelle an Erweiterungen (Extensions / Add-Ons) machen den Firefox Browser attraktiv.

Dabei spielt es keine Rolle, ob es um Entwickler geht, die Firebug mit den dafür ebenfalls verfügbaren diversen Erweiterungen nutzen, oder den Gelegenheitssurfer der dank Adblock-Plus schneller und weniger genervt das Internet konsumieren kann. Für andere Nischen und spezielle Bedürfnisse gibt es ebenso viele Plugins von "Spass" bis "Produktivität" ist alles vertreten.

Jedoch wuchs der Neid bei mir wenn ich auf Chrome / Chromium blickte - ich wollte Firefox auch etwas schneller haben. Bekannt für Nachteile bei der Performance sind eben gerade jene Erweiterungen, die einem das Leben so schön erleichtern. Also habe ich einige deaktiviert, es wurde in der tat etwas schneller. Damit war das erledigt. Erfolg!

Bis mir auffiel, dass irgendetwas nicht stimmte. Bei Downloads verschlang Firefox immense Mengen an Speicher - ein Vielfaches dessen, was die Datei selber haben würde. Und auch die CPU Belastung, vor allem bei Downloads, wuchs dramatisch.

Erst hatte ich das Flashplugin in Verdacht - in der Regel trifft man damit den Richtigen, genauso wie pauschal auf Windows schimpfen. Aber daran lag es nicht, ich hatte extra keine Flash Seiten aufgemacht.

Erst als ich alle von Firebug abhaengigen Erweiterungen (und nicht nur Firebug selber) deaktiviert hatte, sowie TamperData und LiveHttpHeaders war endlich alles wie es sein sollte. Firefox brauchte weder Unmengen an Memory noch ging die CPU Last bei Downloads in die Höhe. Welches Plugin tatsächlich verantwortlich war, habe ich nicht mehr untersucht. Vermutlich ist es nicht gut, wenn man Plugins, die Firebug benötigen, aktiviert lässt, aber Firebug selber deaktiviert.

Um mir Arbeit zu sparen (wer moechte schon immer alle Erweiterungen ein- und ausschalten) habe ich mir mittels eine zweiten Firefox Profils das Leben leichter gemacht: Es gibt jetzt ein "dev" Profil für Entwicklung, da ist dann alles aktiviert, dass sich der Web-Entwickler wünscht. Daneben sind auch deutlich weniger, bzw. andere Bookmarks gesetzt: "Führe mich nicht in Versuchung".

Um den Entwicklungs-Firefox zu starten, habe ich mir eine zusaetzliche Verknuepfung (mit Werkzeug-Symbol) in der Ubuntu Linux Taskbar angelegt, diese ruft folgendes Kommando auf: firefox -no-remote -P dev Mittels "-P" kann man das Profil auswählen, welches verwendet werden soll, das "-no-remote" verhindert, dass bei einer bereits gestarteten Firefox Instanz (z.B. des default Profils) lediglich ein neues Fenster aufgemacht wird.

Probiert es mal aus - Kommentare und Feedback erwünscht!

Ubuntu: Desktop tuning mit elevator=deadline

20 November 2010

Ubuntu ist für mich das Arbeitstier schlechthin - mit keinem anderen Betriebssystem würde ich derzeit längere Zeit arbeiten wollen. Auch wenn ein kleiner Blick gen OpenIndiana schweift - an OpenSolaris habe ich immer bewundert, wie gut sich das System unter Last noch anfühlt. Genau das vermisse ich bei Ubuntu: Wenn ein Maven-Build läuft, Netbeans meint es müsse mal wieder tüchtig scannen oder ich dabei noch ein paar Kleinigkeiten machen will, wird es schnell mal duster. Im wahrsten Sinne des Wortes: Applikationen, die durch IO blockiert sind, bekommen dunklere Fenster auf dem Desktop.

Und das ist nicht gerade selten der Fall, bestes Beispiel ist Firefox wenn ich auf eine Seite gehe, auf der 20 verschiedene Flash Applets eingebunden sind (z.B. Google Adsense Review Center, also keine Game Seiten). 10 Sekunden Bedenkpause mindestens. Von virtualisierten Maschinen die parallel laufen mal ganz zu schweigen - diese haben eine eigene Festplatte spendiert bekommen.

Nun hat es mich also interessiert, wie kann es sein, dass bei gleicher Hardware ein Solaris so viel flotter von der Hand geht? Sicherlich hat der Scheduler was damit zu tun, und vielleicht sind die Treiber auch optimiert - aber das kann nicht alles sein. Richtig: Denn es gibt nicht nur Scheduler für die CPU Zeit, sondern auch für die IO Zugriffe. Alle Lese- und Schreiboperationen werden von dem Betriebssystem nach einem bestimmten Prinzip abgearbeitet. Der einfachste Scheduler tut einfach nichts ("noop") und reicht die Anfragen direkt an die Hardware weiter. Das macht z.B. bei SSD Speichern und virtuellen Maschinen Sinn: Bei SSD Festplatten zahlt man keinen direkten Strafzoll in Form von langsamen Kopfbewegungen bei der Festplatte für weit entfernt liegende Datenblöcke, und virtuelle Maschinen greifen sowieso nicht direkt auf die Hardware zu.

Ubuntu Maverick: shotwell Import von f-spot / Speicherverbrauch

1 October 2010

Shotwell wird in Ubuntu Maverick (10.10) f-spot als Photoverwaltung ablösen. Im Grunde finde ich das gut: Shotwell ist deutlich schlanker als f-spot und auch der Umgang mit RAW Bildern soll gut werden.

Auch an einen Import von f-spot Daten (vor allem Tags und Bild Kommentaren) wurde gedacht. Doch genau hier gibt es ein Problem: Shotwell hat ein massives Speicherleck. Das führt dazu, dass große Bildbestände nicht erfolgreich zu shotwell importiert werden können. (Dabei spielt es keine Rolle, ob diese von f-spot oder aus dem Dateisystem importiert werden.) Während im Issue Tracker von yorba noch diskutiert wird, wie man das Problem nach dem (erfolgreichen) Import in den Griff bekommt, ohne shotwell neu starten zu müssen, kann ich nicht mal den Import vollständig durchführen, da mir vorher der Speicher ausgeht.
Ich könnte ja auch mit 500MB oder 1GB Speicherverbrauch für eine große Bildsammlung leben, aber bei 6GB geht mein etwas betagter Arbeitsplatz nun mal in die Knie.

Damit ist in meinen Augen shotwell nicht geeignet das Standardprogramm zu werden, wenn das Programm nicht in der Lage ist, ohne linearen Anstieg von benötigten Ressourcen aus zukommen.

PDF Änderungen vergleichen

13 September 2010

Oft erhält man PDF Dateien - ein Fortschritt gegenüber proprietären Formaten wie Microsoft Word Dateien. Allerdings kann es sehr aufwendig werden, wenn man die Änderungen von mehreren Versionen nachvollziehen möchte. Gerade dann, wenn es auf einzelne Worte ankommen kann, habe ich bisher oft mit zwei Ausdrucken und Textmarkern über den Dokumenten gesessen.

Eine Lösung bietet jedoch ein kleines Python Script (pdfdiff.py) und das freie Tool meld, mit dem man die Inhalte recht schnell abgleichen kann. Bilder, Grafiken und verschlüsselte PDF Dateien sind dabei allerdings ausgenommen. Das Ergebnis (in diesem Fall habe ich Use-Case Dokumente verglichen) unter Ubuntu Linux von dem Aufruf pdfdiff.py -d meld uc-0.9/uc_GT-01* uc-1.0/uc_GT-01* sieht dann so aus: (hier wird meld als diff-viewer verwendet)

Eine Alternative ist das GPLv2 Tool "diff pdf" (Homepage) mit dem sich auch Layout Änderungen an PDF Dateien nachvollziehen lassen.

Sun considered patent-peace encouraging

20 August 2010

I was shocked by the law suit Oracle is performing. As far as I understand Oracle sues Google because of patents Oracle acquired with buying Sun Microsystems. This is in a Java related context, but it is not about the Java language itself.

A few days later I told a friend about "elliptic curve cryptography", which uses smaller key length and is considered to solve the problem of the fast growing key sized required with RSA to provide reasonable security.

I was very surprised to find that Sun contributed to the OpenSSL project elliptic curve cryptography code. Along with that came the explicit granting of usage of related patents in the context of OpenSSL. (Well I knew that Sun was a really big OpenSource contributer with Gnome, OpenOffice and other projects, but I am pleasently surprised whenever I stumble upon something new.)

I will cite one sentence of the OpenSSL-FAQ which clearly underlines the statement of James Gosling that patent suits are "not in the DNA of Sun". Even more, it shows that Sun considered patent-peace as an important part of innovation:

This "patent peace provision" is a positive trend for the overall open source community.

A cross industry "patent peace arrangement" will encourage more technology contribution to the open source community and will help accelerate the standardization of key technologies such as Elliptic Curve Cryptography.

The open source community users can only benefit from this movement.

It makes me sad - over and over again - to remember that Sun in this incarnation seems to be gone.
I wonder which company will follow the Oracle suit. I guess in the end there will be no winners after all.

Mysql und phpmyadmin: Daten encoded und falsch angezeigt?

10 August 2010

Bei der Migration einer MySQL Datenbank gab es ein merkwürdiges Phänomen: Nach dem Import der Daten von einem Server auf einen Ubuntu Lucid Server wurden die Daten falsch angezeigt. Es sah aus, als wenn sie base64 codiert wären, oder ein esoterisches Encoding Problem zugeschlagen hätte.

Die Vermutung lag nahe, dass entweder der Dump (mittels mysqldump erzeugt) defekt war, oder falsch importiert wurde. (Der Import wurde über den mysql Kommandozeilen Client gemacht, MySQL lag auf beiden Systemen in der Ubuntu Lucid Version 5.1.41 vor.). Das Thema MySQL, Encoding, Collation und Charset kann sich dabei als sehr verwirrend herausstellen.

Firefox plugin-container.exe und langsames Internet

29 July 2010

Einige Anwender von Firefox berichten, dass seit den Updates die Out-of-Process-Plugins (OOPP) mitbringen ihr "Internet" langsam geworden sei. Besonders davon betroffen seien Seiten, die Plugins wie Adobe Flash oder Microsoft Silverlight nutzen.

Der Hintergrund: Seit neuestem lässt Firefox Plugins nicht als separaten Prozess laufen und kommuniziert mit diesem über IPC (Inter-Process-Communication). Das bringt einige Vorteile:

  • Die Firewall Einstellungen können separat zum Browser gemacht werden
  • Ein Plugin Absturz bringt nicht mehr den ganzen Browser zum Absturz
  • Bei Mehrprozessor Computern können die vorhandenen Ressourcen besser genutzt und verteilt werden

Jedoch gibt es einige Anwender, die sich wundern, dass Videos ruckeln, oder die "plugin-container.exe" sehr viele Ressourcen verbraucht. Die plugin-container.exe (unter Windows) ist dabei der Prozess in dem die Plugins wie Flash durch den Firefox ausgeführt werden. Tatsächlich wird dadurch der enorme Ressourcenverbrauch von Flash deutlicher sichtbar. Auch kann eine fehlerhafte Firewall Konfiguration dazu führen, dass die Plugins nicht mehr die nötige Verbindung zum Internet haben.

Wer möchte kann zum alten Verhalten von Firefox zurückkehren - auf keinen Fall sollte dazu eine alte Firefox Version verwendet werden! Die Konfiguration wird so geändert: "about:config" in die Adresszeile des Browsers eingeben. Dort nach "ipc" Einstellungen suchen. Mittels  "dom.ipc.plugins.enabled" kann global die plugin-container.exe bzw. OOPP deaktiviert werden, alternativ können die einzelnen Plugin Typen einzeln konfiguriert werden. Moechte man das Verhalten komplett deaktivieren, so sind hier alle Werte auf "false" zu setzen.

In der Mozilla Firefox Datenbank ist eine ausführliche Anleitung auf englisch zu finden.

Oracle veröffentlicht Netbeans 6.9

16 June 2010

Netbeans ist nun in der Version 6.9 von Oracle freigegeben worden. Die Entwicklungsumgebung für Java, PHP, JavaScript, Groovy, Scala, ... wird von Oracle zusammen mit der OpenSource Community entwickelt. Das nun veröffentlichte Netbeans 6.9 enthält viele Neuerungen. Für PHP Entwickler besonders interessant ist die Unterstützung des Zend Framework in der aktuellen Version.

Oracle VirtualBox 3.2.4!

14 June 2010

Oracle VirtualBox 3.2.4 ist verfügbar. Dabei handelt es sich um ein sogenanntes Maintenance Relase, es wurden Geschwindikeits- und Qualitätsverbesserungen vorgenommen.
Das offizielle Changelog ist hier verfügbar, der Download von www.virtualbox.org.

VirtualBox eignet sich weiterhin als eine schnelle und kostenfreie Virtualisierungs-Lösung, um Software gefahrlos auszuprobieren, oder andere Betriebssysteme als auf dem Host zu verwenden. So kann man z.B. einen Blick auf OpenSolaris oder Nexenta werfen, und darauf seine Anwendungen testen oder Erfahrung sammeln.

Für OpenSolaris gab es vor ca. einer Woche wieder Aktualisierungen im dev Repository, so dass ich davon ausgehe, dass auch hier Oracle die Weiterentwicklung voran treibt.

Ubuntu Lucid: Fehlerhafter Datei Upload mit Apache mod_fcgid

22 May 2010

Ubuntu Lucid beinhaltet eine neuere Version des Apache  Modules mod_fcgid als FastCGI Anbindung. Wer nun per FastCGI z.B. PHP laufen hat, und sich ueber defekte Dateiuploads wundert, dem sei dieser kurze Blogartikel ans Herz gelegt! (Wer kein FastCGI bzw. nicht mod_fcgid und Apache unter Lucid verwendet, bzw. kein Problem hat, dass z.B. Bilder nach dem Upload defekt sind, kann den Artikel getrost ignorieren.)

PHP: gd-png: fatal libpng error: Read Error: truncated data

17 May 2010

Gerade zum Bloggen von Webseiten-Screenshots bietet sich diese Firefox Extension an: Screengrab. Bisher hat das auch alles prima geklabbt: Ubuntu, Firefox, Wordpress Blog und Ubuntu Server.

Neuerdings gibts da jedoch ein Problemchen: Beim Hochladen der Bilder ins Wordpress gibt es nur das "broken Image" Symbol, und auf dem Server wird ganz viel dieser Art geloggt: gd-png:  fatal libpng error: Read Error: truncated data
gd-png error: setjmp returns error condition 2gd-png:  fatal libpng error: Read Error: truncated data
gd-png error: setjmp returns error condition 2gd-png:  fatal libpng error: Read Error: truncated data
gd-png error: setjmp returns error condition 2
Die defekten Zeilenvorschübe kommen dabei original so aus dem Logfile. Ich habe zwar nach der Fehlermeldung ein wenig gesucht, konnte jedoch lediglich einen Hinweis finden, dass es auf aktuelleren PHP Versionen (z.B. Ubuntu Lucid) evtl. zu Problemen mit der Kompressionsstufe 10 kommen kann.

USB funktioniert nicht mit Ubuntu Lucid: Lösung

16 May 2010

Wenn seit dem Update auf Ubuntu Lucid 10.04 USB Geräte nicht mehr funktionieren, bzw. externe USB Festplatten und Laufwerke nicht mehr automatisch gefunden werden unter Ubuntu Lucid, dann kann folgendes eine Lösung sein:

Unter Ubuntu Linux 10.04 gibt es ein Problem mit dem automatischen Einbinden von USB Sticks und anderen externen USB Speichern. Das USB Problem wird dabei durch eine BIOS Einstellung ausgelöst, so dass USB Geräte nicht mehr automatisch unter dem aktuellen Ubuntu Lucid eingebunden werden. Stellt man im BIOS den "Legacy Floppy Support" auf "disabled", so funktionieren nach einem Neustart des Linux Systems auch alle USB Geräte wieder wie gewohnt und werden gefunden.

Ubuntu Lucid Virtualbox: VERR_SUPDRV_COMPONENT_NOT_FOUND

3 May 2010

Wenn nach dem Update auf Ubuntu Lucid SunVirtualBox (bzw. Oracle VirtualBox) nicht mehr korrekt startet, so fehlt vermutlich das richtige Kernel Modul. (Das sollte per dkms eigentlich erstellt und automatisch gepflegt werden, aber sowas kann schonmal schief gehen.)

Die Fehlermeldung bei mir war VERR_SUPDRV_COMPONENT_NOT_FOUND - und ein modprobe auf vboxnetflt hat in der Tat gemeldete, dass kein entsprechendes Modul vorhanden sei.

Und Abhilfe damit VirtualBox auch mit Ubuntu Lucid wieder startet gibt es auch: sudo /etc/init.d/vboxdrv setup (Bitte machen, ohne dass VirtualBox bzw. die GUI gestartet ist.) Danach kann man einfach VirtualBox wie gewohnt starten. (Hinweis: Ich nutze dabei nicht die OpenSource VirtualBox Version von Ubuntu/Canonical, sondern die Repos von virtualbox.org - evtl. gibt es hier kleinere Unterschiede.)

Sun Java6 in Ubuntu Lucid

28 April 2010

In Ubuntu Lucid 10.04 wird OpenJDK das standardmäßig installierte Java. Für den einen oder anderen Anwender oder Java Entwickler stellt sich OpenJDK (derzeit) nicht als sinnvolle Option dar. Neben der Möglichkeit Java - wie jede andere Drittsoftware - von Hand zu installieren und zu pflegen (was häufig vergessen wird), stellt Canonical die Sun Java Version (sun-java6-jdk etc.) über das "Partner" Repository zur Verfügung.

Wer das Repository nicht in den Paketquellen hat, kann dies einfach hinzufügen:

  1. Synaptic Paketmanager aufrufen (oder ueber Systemverwaltung Softwarequellen)
  2. deb http://archive.canonical.com/ubuntu  lucid partner eintragen
  3. Pakete neu laden
  4. sun-java6-jdk und restliche passende Pakete installieren

Es ist davon auszugehen, dass die Sun Java Pakete auch zukünftig vernünftig gepflegt und auf relativ aktuellem Stand bleiben.

Eclipse: Solaris Version

11 April 2010

Eclipse 3.6 wird zukünftig auch Solaris bzw. OpenSolaris unterstützen. Seit einigen Tagen ist in den nightly und integration Builds von Eclipse eine Solaris GTK Version für Sparc und x86 verfügbar.

Ein neues OpenSolaris Release ist mittlerweile in Vorbereitung, wenn ich die Anzeichen richtig deute. Da wird sich Oracle als neuer Inhaber von Solaris und OpenSolaris sowie langjähriger Eclipse Förderer freuen.

Skipfish und Ubuntu

21 March 2010

Google hat mit dem Skipfish Projekt ein Sicherheitstool veröffentlicht, mit dem Webanwendungen auf ihre Sicherheit - oder auch Sicherheitslücken untersucht werden können.

Das in C++ Programm unterstützt Windows, Apple Mac OS X und Ubuntu als Betriebssysteme und - wie für Google üblich - wird die besonderes hohe Performanz als Feature genannt. Im folgenden gehe ich kurz die Schritte durch, Skipfish unter Ubuntu Linux zu betreiben.

ACK FIN URGP=0

19 March 2010

Diese kryptischen IP Flags "ACK FIN URGP=0" haben mich dann doch irgendwann gestört - die Logdateien (ulog) wurden durch iptables Logging Meldungen mit haufenweise geblockten Verbindungen vollgepumpt.

Und das erstaunliche - im Prinzip sollte die Verbindung weder geblockt werden, noch schien das der Fall zu sein. Denn alle gemeldeten Verbindungen waren Port 80 - und wenn der Webserver nicht funktionieren würde, hätte ich das sehr schnell gemerkt.

Was war aber nun der Grund für angeblich geblockte Pakete mit den "ACK FIN URGP=0" Flags?

Es handelte sich um Pakete, die durch die stateful Firewall nicht (mehr) zugeordnet werden konnten, und daher von der Default Regel gedroppt wurden. Aha!
Gründe dafür könnten z.B. sein, dass die FIN ACK (Verbindung beenden) Pakete sehr spät eingetroffen sind, und dann nicht mehr erkannt werden, oder aber auch eine hohe Anzahl Verbindungen, so dass die Zuordnungstabelle schnell voll ist. (Oder eben wirklich ein fieser gemeiner Hacker...)

Abhilfe: Entweder mit dem Wissen wieso und warum die "ACK FIN URGP=0" Pakete auftauchen ignorieren, oder aber für die Ports, auf denen sehr viele Verbindungen behandelt werden (Port 80 / HTTP z.B.) die Firewall stateless laufen lassen.

Was ich interessant finde: Trotz Google und Lesen diverser Mailinglisten habe ich zu diesem Problem keine Antwort gefunden, wohl aber ein paar Foren in denen scheinbar jemand vor einem ähnlichen Phänomen stand (z.B. hier, auch mit Port 80) - vielleicht hilft dies Posting ja auch dem einen oder anderen.

(Ich bin kein Firwall oder iptables Experte, wenn jemand dazu noch einen guten Rat hat... immer her damit!)

OpenSolaris 2010.03 kommt...

3 March 2010

Es wird wieder  ein OpenSolaris Release geben - im Dev Channel von OpenSolaris bekommt man bereits die Hinweise auf "Thank you for using OpenSolaris 2010.03", womit der Release Termin auch klar sein dürfte.

Seit einiger Zeit betreibe ich einen Thinkpad T60 mit OpenSolaris, um etwas besser die Unterschiede und Bedienung im Vergleich zu Ubuntu Linux kennenzulernen. Bisher kann ich ein sehr positives Resümee ziehen. Vor allem unter Last verhaelt sich OpenSolaris deutlich dankbarer, als Linux.

Lediglich was die Grafikkartentreiber angeht, habe ich bisher lediglich den Framebuffertreiber mit der ATI X1300 verwenden können. Hier ist sicherlich noch eine Menge Potential, doch auch die Linux Gemeinde stöhnt zu recht über die endlose Geschichte mit den Grafiktreiberproblemen.

Flash Video Stream speichern

6 February 2010

Videos sind im Internet verbreitet - und mit ihnen Adobe Flash. Flash Videos zu speichern gelingt mit Firefox und passenden Addons/Extensions sehr leicht.
Etwas kniffliger wird die Sache, wenn man es mit einem gestreamten Video zu tun hat. Solche Flash Videos werden nicht mit HTTP ausgeliefert, sondern durch das RTMP Protokoll (Real Time Messaging Protokoll).

Nun ist aber das Speichern von Flash Video Streams auch interessant, vor allem wenn man ein Video mal unterwegs oder offline schauen möchte. (Wie die rechtlichen Implikationen beim Speicher von Flash Stream Videos sind, weiss ich nicht. Ich halte da vieles für denkbar in Deutschland und der EU.)

Wer keine Angst vor der Kommandozeile hat, findet mit dem Tool rtmpdump eine praktische und auch funktionierende Lösung. Leider findet sich rtmpdump noch nicht in den Ubuntu Repositories, und auch Debian hat meines Wissens kein Paket dafür. Dafür ist lässt sich das rtmpdump Programm jedoch sehr schnell und einfach selber übersetzen. Man bekommt die aktuellen Source auf http://rtmpdump.mplayerhq.hu/

Java Networking Probleme mit Debian (testing)

2 February 2010

Wer unter besonders schwer zu diagnostizierenden Fehlern unter Debian testing leidet, die im Zusammenhang mit Java  oder Java Applikationen auftauchen, könnte von dem Bug 560056 erwischt worden sein, den das netbase Paket eingeführt hat.

Dabei wird das sysctl Setting net.ipv6.bindv6only=1 in /etc/sysctl.d/bindv6only.conf gesetzt, welches dann z.B. Socket Exceptions (invalid argument) nach sich zieht.

Eine schnelle Lösung des Problems:
Die Datei /etc/sysctl.d/bindv6only.conf editieren und das Setting auf "0" umstellen. Danach: sudo invoke-rc.d procps restart

Der Fehler könnte auch Ubuntu Systeme betreffen, die eine enstprechende Kerneleinstellung haben.

Java auf Ubuntu beschleunigen...

7 January 2010

Java benoetigt eine ganze Menge an verschiedenen Klassen, selbst um einfache Programme auszuführen. Ich habe mich mit den verschiedenne JVM Optionen der Sun Java virtual machine beschäftigt. Seit Java 5, bzw. dem JDK 5, gibt es Classdata sharing. Nicht nur, dass die Daten geshared werden können, sie koennen sogar fuer die Plattform aufbereitet werden, und können dann per memory map einer einzelnen Datei eingeblendet werden.
Das reduziert die Startzeit natürlich enorm - bei groesseren Programmen wie z.B. Eclipse fällt das jedoch geringer ins Gewicht, da es sich um Fixkosten handelt.
Diese Cache Datei lässt sich mittels sudo java -client -Xshare:dump (bzw. -server )
generieren. Der Effekt zeigt sich bei einem kleinen Programm am deutlichsten:
Um sicher zu stellen, dass der Systemcache nicht die Ergebnisse zu sehr beeinfluss, habe ich vor jedem Testlauf echo 3 > /proc/sys/vm/drop_caches durchgeführt. Hier die niedrigsten Werte von fünf Läufen ohne und mit Classdata sharing dump. time java -client Demo
Demo for Fibonacci numbers:
Fibonacci 3: 5

real 0m3.050s
user 0m0.112s
sys 0m0.092s

Mit classdata sharing time java -client Demo
Demo for Fibonacci numbers:
Fibonacci 3: 5

real 0m1.614s
user 0m0.056s
sys 0m0.052s

Man sieht deutlich, dass sich die Ersparniss bei einem kleinen Programm deutlich bemerkbar macht, jedoch lediglich bei kalten Cache. Sobald das Betriebssystem die nötigen Daten im eigenen Cache hat, fällt die Ausführungszeit auf deutlich unter 100ms. Bei der Server JVM ist von dem Cache aufgrund des initialen Compilevorgangs und der Optimierung auf hohe Ausführungsgeschwindigkeit im Gegensatz zur Startgeschwindigkeit bei der Client VM sowieso kaum noch etwas zu spüren. In so fern dürfte das auf der Devoxx 2009 angekündigte Update des JAR Formats erheblich mehr bringen.

Microsoft Access (mdb) konvertieren: ODB und MySQL unter Ubuntu

8 December 2009

Wer darauf angewiesen ist, Microsoft Access Datenbanken (MDB) unter anderen Betriebssystemen als Microsoft Windows zu verwenden, hat meist das Nachsehen. Microsoft Access gibt es eben nur für Windows. Eine Lösung für das Problem könnte sein, die Daten von Access bzw. dem MDB Format in ein anderes Format zu konvertieren. Und das funktioniert auch unter Ubuntu Linux!

Ubuntu DVD Wiedergabe (libdvdcss mit Karmic)

4 December 2009

Bei Ubuntu Karmic funktionierte selbst nach einem Update von Ubuntu Jaunty mit funktionierender DVD Wiedergabe (dank libdvdcss) leider die Wiedergabe von DVDs nicht richtig. Ursache war hier, dass das DVD Kopierschutzsystem CSS nach dem Update nicht mehr mit VLC oder Totem nutzbar war.

VirtualBox 3.1: Live Migration und Snapshot Komfort

30 November 2009

Sun hat VirtualBox 3.1 als Produktivversion freigegeben. Neu und interessant sind vor allem Live Migration - "Teleportation" - von virtuellen Maschinen. D.h. eine Instanz einer virtuellen Maschine kann im Betrieb umgezogen werden. Auch verbessert wurde die Geschwindigkeit im 2d Bereich und für AMD 64 Gastsysteme. Für viele interessant sein dürfte auch ein flexiblerer Umgang mit Snapshots, so kann ein beliebiger Snapshot Stand verwendet werden - ein Feature, das viele Vmware User bei VirtualBox vermisst haben.

EFI als Bios Ersatz wurde ebenfalls in einer ersten experimentellen Version implementiert. Alle Neuerungen und mehr Details finden sich im umfangreichen Changelog von VirtualBox.

Wie üblich finden sich Downloads von VirtualBox für verschiedene Plattformen auf der Homepage von VirtualBox: http://www.virtualbox.org/

Für Ubuntu User gibt es wie üblich die Möglichkeit komfortabel über den Paketmanager zu installieren.
Ein Upgrade auf die neue Version erfolgt genauso wie die Erstinstallation per "sudo apt-get install virtualbox-3.1" nachdem man das Virtualbox Repository angelegt hat.

GWT 2: Google Web Toolkit Entwicklung auf Ubuntu 64bit Linux

29 November 2009

Mit dem neuen Google Web Toolkit 2 - oder kurz GWT 2 - wird einiges besser. Am interessantesten in der langen Liste der Verbesserungen und Veränderungen von GWT 2 gegenüber der älteren Version dürfte für 64bit Linux Anwender sein, dass ohne Verrenkungen oder 32bit Libraries GWT Entwicklung möglich wird.

Das ist dabei nur ein Nebeneffekt davon, dass Google auch mit aktuellen Browsern GWT Anwendungen im hosted development mode laufen lassen wollte. Neu dabei ist, dass kein besonders modifizierter Browser, sondern ein Plugin zur Anwendung kommt, dass die Kommunikation zwischen der GWT Entwicklungsumgebung und dem Browser abwickelt. Somit bringt GWT selber keine nativen Abhängigkeiten bzw. einen speziellen Browser mit - und auch mit aktuellen Browsern können die GWT Anwendungen getestet werden.

Fluxy: Fast-Flux Botnetze erkennen

16 November 2009

Fast-Flux Botnets sind derzeit angesagt: Um Viagra, "Günstige Software" und andere Artikel über Spam zu bewerben muss auch ein "Onlineshop" irgendwo gehostet werden.
Damit den Spam Versendern nicht der Webserver abgeschaltet wird, oder unter der Last zusammenbricht, bedienen sich immer mehr Spam-Betreiber bei Botnetzen. So werden sogar auf privaten Rechnern hinter DSL Accounts die Inhalte gehostet: Ein "passive Botnet".

VirtualBox 3.1: EFI! Direct3d! Mehr...

13 November 2009

Sun hat eine erste Betaversion von VirtualBox 3.1 freigegeben. Das Changelog von VirtualBox 3.1 ließt sich schonmal gut:

VM states can now be restored from arbitrary snapshots instead of only the last one, and new snapshots can be taken from other snapshots as well (aka branched
snapshots)

  • Netzwerkmodus kann im Betrieb geändert werden
  • OpenSolaris Host USB Support, der von den Verbesserungen im USB Stack ab Nevada build 124 Nutzen zieht (experimentell)
  • Deutliche Geschwindigkeitsverbesserungen von VirtualBox bei PAE und AMD64 Gastsystemen (Hardwarevirtualisierung ohne nested paging)
  • Experimenteller Support für EFI Firmware, statt BIOS
  • Support für Hardware 2d und 3d Beschleunigung (OpenGL und Direct3d)

Eclipse Galileo Probleme mit Ubuntu Karmic Koala

30 October 2009

Kaum ist Ubuntu Karmic Koala 9.10 veröffentlicht, schon finden sich die ersten Herausforderungen: Eclipse z.B. reagiert nicht auf Button Klicks und in den Dialogboxen fehlen schonmal die hälfte der Widgets.

Das die Probleme erst anfingen, nachdem ich Ubuntu Jaunty zu Karmic aktualisiert hatte, tippte ich auf ein GTK oder GDK Problem, oder ein SWT Problem. Und tatsächlich der Verantwortliche Bug ist dieser. Abhilfe schafft hier ein Eclipse 3.6 ab Milestone 2 zu nehmen, oder einen (extra eingebauten) Workaround zu aktivieren. Dieser wird über GDK_NATIVE_WINDOWS=1 aktiviert.

(Ich habe meinen Eclipse Launcher einfach geändert in "env GDK_NATIVE_WINDOWS=1 /path/to/eclipse".) Wer sich für die genauen Details der Eclipse Probleme mit Ubuntu Karmic bzw. GTK interessiert, sei auf den Bugreport verwiesen.

In den von Ubuntu bereitgestellten Eclipse Paketen tritt das Problem übrigens nicht auf - betroffen sind lediglich User, die (wie ich) Eclipse selber installiert haben.

Ubuntu Jaunty zu Karmic Koala Update

26 October 2009

Nun war es auch auf meinem Thinkpad Laptop soweit: Ubuntu Jaunty Jackalope sollte einem Ubuntu Karmic Koala weichen. Da ich auf dem Laptop bereits Jaunty mit ext4 Dateisystem und full-disc-encryption eingerichtet hatte, versprach ich mir hier einen sehr sanften Übergang.

Nachdem der Release candidate (RC) auch verfügbar ist, wollte ich gerne - wie üblich - das Update vor dem großen Ansturm erledigt haben. Nicht zuletzt um erste Erfahrungen zu sammeln, und somit beim Support helfen zu können.

Java Vorträge: Testing und Swing Entwicklung

26 October 2009

Am 3.11. gibt es wieder Vorträge der Java Usergroup Münster. Diesmal gibt es zwei verschiedene Talks: Ich freue mich schon sehr darauf als Referent über JUnit, Hudson und IDE Integration etwas vorzutragen. Gedacht ist die Präsentation vor allem um Unit Tests und Continuous Integration zu motivieren und eine kleine Einführung für Entwickler zu bieten, die sich mit dem Thema bisher nicht auseinander gesetzt haben. Aufgrund der allgemeinen Ausrichtung ist dieser Vortrag sicherlich nicht ausschließlich für Java Entwickler interessant, denn das Thema "Software Tests" findet auch bei .net/C#, C++ und sogar PHP Anwendung.
Das zweite Thema ist die Entwicklung von ansprechenden und individuellen Swing Applikationen. Dabei wird gezeigt, dass man sowohl cross-platform, als auch performant und ansprechend GUI Anwendungen mit Java Swing erstellen kann.
Mehr Infos zu den Talks, Agenda und unverbindliche Anmeldung auf der Webseite der Java Usergroup Münster.

USB Stick Geschwindigkeit

22 October 2009

Ein 16 GB Kingston USB Stick hatte es mir angetan: Für 25 Euro eine Sache, die man sich mal leisten kann.
Aus alter Erfahrung wollte ich natürlich sichergehen, dass der USB Stick auch die 16GB wirklich leistet - und zwar sicher. (Es gab Fälle in denen das USB Laufwerk eine größere Kapazität vorgegaukelt hat, als nachher drauf war. Und mein letztes 8 GB Thumbdrive ist nach zweimaligem völligen Beschreiben komplett kaputt gegangen.)
Ich habe also mit Linux Bordmitteln das Laufwerk füllen wollen, um dann zu testen, ob die Daten auch so wieder ausgelesen werden können.

IntelliJ IDEA: OpenSource und kostenlos!

15 October 2009

IntelliJ IDEA wird zukünftig in zwei Versionen existieren  - eine davon ist OpenSource! Die sogenannte Community Edition von einer der führenden Java Entwicklungsumgebungen wird sowohl kostenlos als einsatzbereiter Download von IntelliJ angeboten, als auch mit den zugehören Sourcen.

Apobank und HBCI4Java: Es tut jetzt!

14 October 2009

Ein Erfolg - auch dank OpenSource! Gab es bisher Probleme mit der Apobank und HBCI4Java (s. auch meinen alten Eintrag), so ist das Problem nun offenbar eingekreist und auch behoben worden.

Scheinbar war das einzige Problem ein nicht (wie gewünscht) gesetzter HTTP Request Header. Der sollte stets "application/octet-stream" sein - sonst spuckt es auf Seiten der Apobank. Da kann man lange suchen.

Hetzner bietet OpenSolaris an

25 September 2009

Das finde ich cool! Hetzner, einer der bekanntesten Anbieter für Rootserver, Webspace und Domains in Deutschland bietet nun OpenSolaris in ihrem Rescue System an (wiki eintrag). Das bedeutet, man kann nun auch direkt OpenSolaris auf einerm Rootserver installieren!

Bisher konnte man - selbstverständlich - auch OpenSolaris bei Hetzner bekommen, wie auch sonst eigentlich jedes noch so exotische Betriebssystem installierbar ist: Man beauftragt den Support eine Lara Remoteconsole an den zu installierenden Rechner zu hängen und ein Installationsmedium zu brennen. (Oder schickt die CD/DVD per Post ein).

Hatte bei mir prima geklappt und kostete ca. 25 Euro (aus dem Kopf erinnert).

Münster Ubuntu Stammtisch

7 September 2009

Ich habe ja nun etwas Erfahrung mit Stammtischen - eine super Sache! Nun haben einige Leute mein Blog bereits auf der Suche nach einem Ubuntu Stammtisch in Münster gefunden.
Ich kenne zwar (noch) keinen Ubuntu Stammtisch in Münster, aber wäre nicht abgeneigt an einem solchen teilzunehmen. Sehr empfehlen kann ich natürlich für alle an Java und Softwareentwicklung interessieren den Stammtisch bzw. die Treffen der Java Usergroup in Münster: http://www.jug-muenster.de/ (Tipp: Da sind auch viele Ubuntu und Debian Linux User aus Münster dabei.) Hinterlasst gerne einen Kommentar, so finden sich sicherlich einige interessierte aus Münster und Umgebung!

Thinkpad T40p - Wlan (Atheros 5211) und Ubuntu

13 August 2009

Einen Thinkpad T40p dazu zu bewegen sich mit einem WPA gesicherten Funknetzwerk zu verbinden kann sehr nervenaufreibend sein. Vor allem wenn es einfach keine Fehlermeldungen gibt. Stets brach der Verbindungsversuch beim "group handshake" ab.
Bei Ubuntu Jaunty werden die neueren Atheros5k (ath5k) Treiber eingesetzt, statt der älteren madwifi Treiber. Und genau hier liegt auch der Hase im Pfeffer.

Bei dem Thinkpad T40p habe ich dazu das ath5k Modul "geblacklisted" und danach werden automatisch die madwifi Treiber geladen. Damit funktioniert dann die Atheros Karte mit WPA gesicherten Wlans.

Und so gehts: die Datei /etc/modprobe.d/blacklist-ath_pci.conf editieren, dort die Zeile "blacklist ath_pci" auskommentieren und die Zeile "blacklist ath5k" ans Ende der Datei einfügen.

Netbeans: Copy support failed. Continue?

7 August 2009

Netbeans ist eine herausragende IDE - herausragend durch einfache Bedienbarkeit, gleichzeitig gibt es eine Fülle von Features für den gestressten Entwickler. Und der Preis: Kostenlos! Ob für Java oder PHP Entwicklung, ich möchte Netbeans nicht mehr missen. Besonders für PHP - haben mir die kleinen Tipps und Hinweise doch schon einiges an Nerven gespart. Nicht zu vergessen die erstaunlich gut funktionierende Code-Completion. (Hätte ich bei PHP nie für möglich gehalten.)

Doch es gibt eine Sache, die mich unter Ubuntu in den absoluten Wahnsinn getrieben hat: Ich habe zwei Ubuntu Rechner, einen Server und meinen Arbeitsplatz. Auf dem Server läuft Apache und Mysql - auf meiner Arbeitsstation möchte ich keinen Apache laufen lassen, so dass ich alle Dateien auf den Server lade.

Ubuntu OpenPGP: Hier werden sie geholfen

4 August 2009

Wer ein deutsches Ubuntu (vermutlich auch Debian) Linux einsetzt und dort Thunderbird mit enigmail (OpenPGP Plugin) verwendet, wird freundlich an die Hand genommen:
Es gibt einen Einrichtungsassistenten für Enigmail/OpenPGP, der in mehr oder minder deutscher Sprache bei der Einrichtung hilft.

Bei Ubuntu, da wird man geholfen! openpgp-assistent

Chromium Browser: Schneller Entwickeln!

1 August 2009

Welche IDE man bevorzugt, darüber kann man sicherlich vortrefflich streiten. Genauso übrigens auch über Webbrowser. Doch eins ist klar: Bei der Entwicklung zählt jede gesparte Sekunde. Gerade in Webanwendungen wird man nicht um manuelles Testen und Ausprobieren herumkommen. Ich habe gemerkt, dass man mit dem Firefox (Firebug, Webdeveloper Toolbar, etc. pp) wunderbar Debugging betreiben kann. Das Tooling ist in meinen Augen ungeschlagen.

Firefox "(TL-FF)" UserAgent

19 July 2009

Es gibt Dinge, die können mich in den Wahnsinn treiben - vor allem wenn ich das Gefühl habe "mit etwas Nachdenken wäre das vermeidbar gewesen". (Wird der eine oder andere vielleicht auch von mir kennen, aber da merk ich das ja meist nicht)

Was ist passiert: Ich habe eine ganze Menge UserAgent Angaben die keinen Sinn machen, das betrifft in der Regel Firefox User. Da finden sich dann Firefox Versionen 2.0.0.15 oder auch Firefox 3.0.5 von July 2009. Kann ja wohl nicht:

Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.1) Gecko/20090715 Firefox/3.0.5 (de) (TL-FF)

Aber das besondere: (TL-FF) kommt stets im UserAgent des Firefox vor.

PDF Passwort knacken/herausfinden

13 July 2009

PDF Passwörter sind eine Sache für sich. Über die Sicherheit eines PDF Passwortes kann man streiten - wenn man jedoch seine eigenen PDF Dateien nicht mehr öffnen kann, weil man das PDF Passwort vergessen hat, stellt sich unzweifelhaft Frust ein.

Doch wie kommt man nun (unter Ubuntu) wieder an die Inhalte von PDF Dateien mit Passwort? (In Deutschland dürfte es inzwischen verboten sein, die folgende Anleitung auf Dateien anzuwenden, die man nicht selber erstellt hat. Ob man die Programme verwenden darf, um die eigenen Dateien zu bearbeiten entzieht sich meiner Kenntnis. Hier sollte man im Zweifel einen Anwalt befragen, besten Dank an unsere Politiker.)

VirtualBox 3.0.2 - mit Linux "blackscreen" Fix

11 July 2009

VirtualBox 3.0.2 ist freigegeben worden und enthält eine Menge Bugfixes. Insbesondere der für mich unter Ubuntu Jaunty (mit ATI Grafikkarte) auftretende Fehler mit den durchsichtigen oder komplett schwarzen Fenstern ist behoben worden.

Bisher half lediglich ein Starten von VirtualBox unter Ubuntu Jaunty mit "env XLIB_SKIP_ARGB_VISUALS=1" was aber etwas umständlich ist. Die neue VirtualBox 3.0.2 Version gibts auf http://www.virtualbox.org/ oder über den Ubuntu / Debian Paketmanager wie gewohnt per apt-get install virtualbox-3.0

Thinkpad Fingerprint und Ubuntu Jaunty

9 July 2009

Thinkpad Laptops waren meines Wissens die ersten Laptops, in denen ein Fingerprint Sensor integriert war. Damit kann mit den ThinkVantage Tools unter Windows die Anmeldung erheblich vereinfacht und beschleunigt werden - lediglich der Fingerabdruck wird erfasst. Das erhöht zudem dann die Sicherheit, wenn einem mal über die Schulter geschaut wird, während man sich anmeldet. (Ansonsten ist ein gut gewähltes Passwort sicherlich besser, als ein Fingerabdruck, denn diese lassen sich relativ einfach "kopieren".)

Nun geht es darum den Fingerabdruck Scanner auch unter Ubuntu lauffähig zu machen. In Ubuntu Jaunty ist im universe Repository dazu auch das nötige Werkzeug: "libpam-thinkfinger thinkfinger-tools" sind die dazu nötigen Pakete. PAM ist die "pluggable authentication modules" Schnittstelle zur Authentifizierung bei Linux. Hier kann alles erdenkliche ergänzt und konfiguriert werden, von LDAP bis hin eben zu Fingerabdruck Scannern.

Ubuntu bluetooth UMTS Anleitung

7 July 2009

Ubuntu hat im Network Manager bereits Unterstützung für UMTS/GSM Karten, jedoch ist es etwas fummelig eine bluetooth Verbindung, z.B. zum Handy, zum surfen zu verwenden. Wer die Kommandozeile scheut und gerne bluetooth komfortabel grafisch einrichten und nutzen möchte, dem sei der bluetooth Manager "blueman" ans Herz gelegt. Damit ist die Einrichtung einer bluetooth UMTS/GSM Verbindung ein echtes Kinderspiel.

Firefox 3.5 + Google Gears 64bit Linux

5 July 2009

Ein neues Google Gears ist erschienen, dass auch mit dem Firefox 3.5 kompatibel ist - auch unter Linux.

Hier der Firefox 3.5 Google Gears 64bit Linux download: gears-linux-x86_64-05250

Ubuntu Firefox 3.5 repository

3 July 2009

Wer gerne den aktuellen Mozilla Firefox 3.5 auf Ubuntu Jaunty installieren möchte, jedoch mit dem Firefox 3.5 beta4 aus dem universe repository unzufrieden ist, und auch nicht das Mozilla daily PPA Repository nehmen möchte, hat nun noch die Möglichkeite den finalen Firefox 3.5 zu installieren.

Folgendes Script in einer Console ausführen - danach ist Firefox 3.5 in Ubuntu Intrepid oder Jaunty verfügbar, jedoch als "Shiretoko" zu starten. sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com EF4186FE247510BE
echo "deb http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu `lsb_release -cs` main" > /tmp/mozilla-35.list
sudo mv /tmp/mozilla-35.list /etc/apt/sources.list.d/
sudo apt-get update
sudo apt-get install firefox-3.5
Man sollte den Useragent dann noch auf Firefox 3.5 stellen, denn einige Webseiten testen darauf. Das geht dann so: "about:config" aufrufen und den Key "general.useragent.extra.firefox" auf "Firefox/3.5" umstellen.

VirtualBox 3.0

30 June 2009

Sun beeilt sich derzeit mit den Veröffentlichungen - nach Netbeans 6.7 ist nun VirtualBox 3.0 für den produktiven Betrieb freigegeben worden. Eine List der Neuerungen findet sich im VirtualBox changelog. Der Download ist auf der VirtualBox Download Seite für verschiedene Betriebssysteme verfügbar.

Neben vielen Bugfixes und überarbeitetem 3d Support (Direct 3d 8/9) dürfte die Virtualisierung von Mehrkernprozessoren bzw. Multi-CPU Maschinen interessant sein. Auch der USB Support wurde erweitert und unterstützt jetzt highspeed isochronous endpoints.

Netbeans 6.7 release

29 June 2009

Netbeans 6.7 ist als finale Version verfügbar. Auch wenn auf der Netbeans Homepage noch der RC beworben wird, führt der Download schon auf die endgültige Version. (So ganz fertig ist das zwar noch nicht, der Rest soll dann aber über das Update Center nachgereicht werden.)

Die Neuerungen sind vor allem "Cloud" (Kenai) Integration, bessere CI Integration (Hudson z.B.) und Integration mit Issuetrackern. (Bei einem Commit können dann direkt Issues geschlossen werden.) Aber auch die Unterstützung für verschiedene Sprachen und Frameworks (PHP, Rails, Groovy, Grails, ...) wurde stark verbessert. Details finden sich auf der Übersichtsseite zum Netbeans 6.7 Release und in den Release Notes zu Netbeans 6.7, wer Netbeans noch garnicht kennt kann einen Blick auf die Features werfen.

Und meine Liebslingsneuerung: Dateien können nun inklsusive Dateiendung umbenannt werden....

Subversion 1.6 für Ubuntu Jaunty (svn target path does not exist)

20 June 2009

Subversion 1.5 hat (endlich) automatisches mergen eingeführt. Doch leider ist dabei einiges im argen, was zu der allseits geliebten Fehlermeldung von Subversion führen kann:

svn: Target path does not exist

Dabei handelt es sich um einen Bug, der bis Subversion 1.5.4 noch enthalten ist. In Subversion 1.6 ist der Fehler behoben und soll auch nach 1.5 zurück portiert werden. Wer solange nicht warten kann/will, kann dank eines Ubuntu PPA auch Subversion 1.6 installieren:

deb http://ppa.launchpad.net/anders-kaseorg/subversion-1.6/ubuntu jaunty main

Firefox 3.5 in Ubuntu (Jaunty)

20 June 2009

Wer gerne in Ubuntu (Jaunty) einen aktuellen Firefox möchte, hat zwei Möglichkeiten:

  1. In Universe befindet sich ein (leicht veralteter) Firefox 3.5 beta 4 der einfach per sudo apt-get install firefox-3.5 installiert werden kann
  2. Man verwendet das Mozilla-Daily PPA Repository. Damit lebt man zwar direkt an der steilen Klippe, jedoch zu einem Zeitpunkt an dem Mozilla schon den RC2 von Firefox 3.5 herausgegeben hat, kann man das Risiko wohl eingehen.

Und so richtet man sich für Ubuntu das Mozilla Daily PPA am komfortabelsten ein:

  • GPG Key importieren: sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com EF4186FE247510BE
  • PPA Repository hinzufügen: echo "deb http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu `lsb_release -cs` main" > /tmp/mozilla-daily.list sudo mv /tmp/mozilla-daily.list /etc/apt/sources.list.d/
  • Firefox 3.5 installieren: sudo apt-get update
    sudo apt-get install firefox-3.5

    Der Browser ist zum einen wirklich beachtlich schneller als der alte 3.0 - zum anderen werden die Fonts auch viel angenehmer gerendert. Das Lesen macht einfach mehr Freude und ist angenehmer für die Augen.

    Wer seine alten Plugins gerne weiter verwenden möchte, der kann den Versionscheck einfach deaktivieren. Die Extensions Versionsprüfung abzuschalten wird zwar von Mozilla nicht empfohlen - aber ohne Extensions und Addons ist Firefox auch nur ein halber Browser.

    Und so gehts: "about:config" aufrufen, den Boolean Key extensions.checkCompatibility anlegen und auf "false" setzen. Hoffentlich sind bald alle Extensionen in einer korrekten Version für Firefox 3.5 verfügbar.

Gnome Notify mit Java...

18 June 2009

Unter Gnome gibt es die Möglichkeit Benachrichtigungen für den Nutzer über eine einheitliche Benachrichtigungsinfrastruktur anzuzeigen. Speziell in Ubuntu Jaunty wurden einige Programme, z.B. Pidgin modifiziert um von den Möglichkeiten des "notify" Frameworks Gebrauch zu machen.
Die "notify" Implementierung unter Gnome und Ubuntu bietet dabei Benachrichtigungsdienste über das D-Bus Protokoll von freedesktop.org an und stellt diese daher einmal per D-Bus und einmal über die "libnotify" an.
Möchte man sich diese Dienste zu nutze machen, stehen daher prinzipiell die Wege über D-Bus, libnotify zur Verfügung. Aufgrund der Einfachheitheit kann prinzipiell auch ein Kommandozeilenprogramm aufgerufen werden, dass über libnotify Benachrichtigungen nativ absetzt. Da dies der einfachste Weg ist - und grundsätzlich unabhängig von Java funktioniert - stelle ich dies zunächst vor.
Zuerst gilt es libnotify-bin zu installieren, das Programm ermöglicht nun per notify-send Benachrichtigungen abzusenden: sudo apt-get install libnotify-bin Eine kurze Hilfe zu notify-send gibt es per --help: notify-send --help Und so kann dann ein Beispielaufruf aussehen: notify-send "JavaOne 2009" "JavaOne - all screens of your life. (except iPhone currently)" gnome-notify-image

Um mittels Java Benachrichtigungen zu versenden stehen nun die bereits erwähnten Möglichkeiten über Java D-Bus (funktioniert dann bei KDE und Gnome) oder über die Java-Gnome Bindings zur Verfügung. Diese laufen dann jedoch auch nur unter Gnome.
Da ich die Java D-Bus Bindings nicht kompilieren konnte, und seit dem 2.6. dank Serkan Kaba auch in Java-Gnome die libnotify Notification Bindings enthalten sind, habe ich diese näher betrachtet.

Erst in dem kommenden Release von Gnome-Java werden die neuen libnotify Java Bindings enthalten sein, wer nicht warten möchte, wird per Bazaar einen Checkout von http://research.operationaldynamics.com/bzr/java-gnome/mainline/ vornehmen müssen.

Folgende Abhängigkeiten sollten ggf. erfüllt werden - z.B. per apt-get:
junit libgtk2.0-dev libglade2-dev libgtksourceview2.0-dev libglib-dev
Danach kann man dann auschecken und bauen: bzr checkout bzr://research.operationaldynamics.com/bzr/java-gnome/mainline
cd mainline/
./configure
make
Und hier war dann bei mir erstmal Schluss. Trotz aller Abhängigkeiten war leider keine Übersetzung möglich. Theoretisch hätte es so weitergehen sollen:

in /tmp finden sich dann die Ergebnisse: tmp/gtk-4.0.jar
tmp/libgtkjni-4.0.11.so

Ohne lokale Installation lassen sich diese Artefakte bereits nutzen - dafür muss lediglich der Classpath angepasst werden.
Eine mitgelieferte einfache Demo könnte folgendermaßen ausgeführt werden, wenn man sich noch im von Bazaar ausgecheckten Verzeichnis befindet:
make demo

bzw: javac -classpath tmp/gtk-4.0.jar -d tmp/tests doc/examples/button/ExamplePressMe.java
java -classpath tmp/gtk-4.0.jar:tmp/tests button.ExamplePressMe
Last - but not least - kann auch über JNA https://jna.dev.java.net/ libnotify verwendet werden. JNA bietet ohne den "Umweg" über JNI die Möglichkeit auf native Bibliotheken zuzugreifen.
Hier gab ich vorerst auf, da ich mir nur eine feste Zeit für das Projekt "notify und Java" nehmen wollte. JNA ist derzeit für mich der vielversprechendste Ansatz, doch dafür müssen die Java Interfaces zum nativen Code noch erstellt werden. Ein Hilfsmittel dazu ist das noch recht junge "jnaerator" , doch ließ sich dies aufgrund einiger Bugs zum Testzeitpunkt leider nicht einsetzen.

Und so - finally - die Lösung, die funktioniert: Einfach notify-send aufrufen.

ubuntu: I can't find file `ptmr7t' bei LaTeX

17 June 2009

Ein kleiner Ubuntu (Linux) LaTeX Quicktip: Gerade nach einer Ubuntu Neuinstallation "vergißt" man schonmal ein Paketchen.

Kommen dann LaTeX Fehler (bzw. von MetaFont) die sich darüber beschweren irgendwelche Fonts nicht zu finden - I can't find file `ptmr7t' - kann dem schnell abgeholfen werden: sudo apt-get install texlive-fonts-recommended Danach ist das ptmr7t auch verfügbar und der Fehler weg.

JavaOne 2009

17 June 2009

Zurück von der JavaOne 2009 - und jetzt möchten alle wissen "wie war es". "Anders als erwartet". Die großen Ankündigungen fehlten mir dann doch etwas - vom Hocker gehauen haben mich diesmal mehr die Partys und socialising als die General Sessions.

Auch dem Pavillion habe ich dieses Jahr deutlich mehr Zeit als im letzten eingeräumt, und so eine Menge interessanter Gespräche geführt. Starkes Augenmerk habe ich auf Tipps und Erfahrungsberichte zum Thema User-Group-Building gerichtet, doch auch OpenSolaris und VirtualBox bekamen verdiente Aufmerksamkeit. Java selbst war in so fern weniger in meinem Fokus als das "drumherum". Auch die Neuerungen die Sun für den "Sun certified Java Programmer plus" einführen möchte, konnte ich eingehend anschauen. Hierzu kann ich nur sagen: Klasse Idee, ich bin gespannt wie die Umsetzung wird.

Dass sich auch ein Talk der CommunityOne mit "Ubuntu in the clouds" beschäftigte, in dem Ubuntu One und die weitere Strategie von Canonical für Ubuntu und Cloudcomputing erörtert wurde fand ich sehr angenehm. Das zeigt, dass Sun sich hier wirklich offen gibt. (Hier könnte sich der OpenSolaris Produktmanager auch noch abgucken OpenSolaris security updates zur freien Verfügung zu stellen, und schon könnte OpenSolaris eine interessante Alternative zu Ubuntu auch für den tatsächlichen Einsatz werden.)

Schade, dass es Netbeans nicht zur JavaOne mit einem 6.7 Release geschafft hat - aber lieber einen RC als einen Flickenteppich.

Für alle an den Sessions interessierten: Die JavaOne 2009 Slides sind bei Sun online einsehbar, die aufgezeichneten Sessions folgen vermutlich in Kürze.

Wer Lust hat, beim die Münsteraner Java User Group beim Java Stammtisch zu besuchen sei hiermit herzlich dazu eingeladen.

Debian/Ubuntu: GPG BADSIG bei Paketupdate

9 June 2009

Sehr ärgerlich: Ein transparenter Proxy hat mir bei einem Lauf des Ubuntu Update Managers für einige Webseiten etwas Unfug untergeschoben. Das führte in diesem Fall dazu, dass ich keine VirtualBox Updates mehr machen konnte, da die Signaturen fehlerhaft waren, und damit die Ubuntu/Debian VirtualBox Update Site zurückgewiesen wurde.

Die Fehlermeldung: GPG error: http://download.virtualbox.org Jaunty Release: The following signatures were invalid: BADSIG DCF9F87B6DFBCBAE Sun Microsystems, Inc. (xVM VirtualBox archive signing key) <info@virtualbox.org>

Die Lösung war zum Glück relativ einfach, dabei waren lediglich die gecachten Paketdaten zu löschen. Der Ubuntu Update Manager holt anschließend wieder neue Daten - funkt dann kein Proxy dazwischen ist alles gut.

Die zu löschenden Dateien liegen in /var/lib/apt/lists, gelöscht habe ich die betroffenen Files so: cd /var/lib/apt/lists
rm *virtualbox*
cd partial
rm *

Ubuntu: Netzwerk Traffic visualisieren

13 May 2009

Im Ubuntu Repository findet sich das Programm "etherape" mit dem man auf die schnelle einen visuellen Eindruck davon gewinnen kann, mit wem der Computer gerade wie viel Daten austauscht.

Dabei ist auch der Protokolltyp durch Farben hervorgehoben - nicht nur zu Diagnosezwecken kann das interessant sein. Hier ein Screenshot von etherape während ich gerade meine RSS Feeds aktualisiere:

etherape Die Installation von etherape ist denkbar einfach: sudo apt-get install etherape und anschließend mit den nötigen Rechten starten, um Netzwerktraffic zu "belauschen": sudo etherape

Ubuntu Jaunty: Fix für Nervige GPG Passwortabfrage

11 May 2009

Seit dem Ubuntu Upgrade auf Jaunty Jackalope (9.04) hat mir Enigmail (Thunderbird GPG/PGP Erweiterung) den letzten Nerv geraubt: Ständig erscheint die Passwort Abfrage für den privaten GPG Schlüssel, egal an welchen (der vielen) Stellen man den Passwort-Cache aktiviert hat. Bei Ubuntu Intrepid war Enigmail bzw. GPG noch sehr artig. Also irgendetwas muss ja nun anders sein.

Ubuntu/Debian Filesysstemcheck (fsck) erzwingen

5 May 2009

Ubuntu Jaunty verwendet den neuen Upstart statt den herkömmlichen init Dienst zum Systemstart. Damit fällt auch die shutdown Option "-F" weg, mit der man beim nächsten Boot einen Filesystemcheck (fsck) erzwingen konnte. Möchte man dennoch einen Check der Dateisysteme beim nächsten reboot durchführen, so legt man am besten die Datei "forcefsck" im root Verzeichnis an. Z.B. per "sudo touch /forcefsck".

Ubuntu Upgrade: Warning: SuexecUserGroup directive requires SUEXEC wrapper.

4 May 2009

Ein Ubuntu Hardy Heron Update auf Ubuntu Intrepid Ibex kann einen schwer ins Schwitzen bringen - zumindest wenn danach der Apache nicht mehr funktioniert.

Einzig die Warnung von Apache beim Starten "Warning: SuexecUserGroup directive requires SUEXEC wrapper." war ein Hinweis auf das Problem.

PHP FastCGI Path Bug (Ubuntu Hardy)

4 May 2009

Ubuntu Hardy Heron ist derzeit das aktuelle LTS Release von Ubuntu, also ein gutes Argument Hardy für Server einzusetzen. Doch es gibt auch Gründe zu wechseln, wie mir sehr schmerzhaft vor Augen geführt wurde.

Zur Konstellation: PHP wird auf dem betreffenden Server mittels FastCGI Protokoll (fcgid) betrieben. Damit auch suexec zum Zuge kommt, wird der PHP Interpreter über ein kleines Wrapper-Script gestartet. Dies führt dazu, dass in der Umgebungsvariable SCRIPT_NAME nur der Wrapper steht - normalerweise. Dankenswerterweise wird das von PHP erkannt und irgendwie umgeschrieben, so dass hier der tatsächliche (erwartete) Wert steht. Ebenfalls sollte PATH_INFO nur noch den nach dem Script folgenden Anhang aufweisen, so dass man hier bei Bedarf Parameterübergabe (z.B. für "REST") abwickeln kann.

Leider tut das mit PHP 5.2.4 (genauer: PHP 5.2.4-2ubuntu5.6 ) nicht wie erwartet. PATH_INFO ist leer, SCRIPT_NAME enthält bei bestimmten Bedingungen unsinnge Daten.

Ubuntu: Persönliches Backup für jeden!

26 April 2009

Datensicherung ist ein wichtiges Thema - gerade für Privatleute, die nicht sehr  Computer-affin sind. Hier wird oft vergessen, dass eine Festplatte kaputt gehen kann, ein Blitzschlag Daten unwiederbringlich zerstören kann.

Ubuntu ist ein Betriebssystem, das besonders leicht und sicher zu bedienen ist. Doch auch unter Ubuntu können versehentlich Daten durch den Benutzer gelöscht werden, oder durch Unfälle vernichtet werden. Dann bleibt oft nur de Gang zu einem Datenrettungsunternehmen, die teilweise sogar in der Lage sind, von Festplatten aus ausgebrannten Wohnungen Daten zu retten.

Ubuntu Jaunty und TwinView: Lösungen.

25 April 2009

Bei Ubuntu Jaunty klappen ein paar Dinge - vor allem die Neuerungen rund um die Benachrichtigungsfunktion - nicht so gut mit dem Nvidia TwinView.

Um überhaupt mit 2 Monitoren arbeiten zu können, würde man normalerweise die Nvidia XServer Konfiguration verwenden, doch die stürzt leider ab: "Failed to parse existing X config file '/etc/X11/xorg.conf'. Da hilft dann nur noch selber Hand anzulegen.

Ubuntu Jaunty TrueCrypt + GUI

25 April 2009

TrueCrypt ist ein Verschlüsselungsprogramm mit besonderen Merkmalen wie hidden volumes, und steht für die großen Plattformen Windows, MacOS X und Linux als vorbereitete Binärversion sowie im Quellcode zur Verfügung.

Der große Vorteil ist die Kompatibilität, so kann ein USB Stick sowohl mit Linux als auch mit Windows verwendet werden, und ermöglicht so z.B. einen sicheren Datentransfer zwischen verschiedenen Rechnern.

tpfancontrol (tpfand) in Ubuntu Jaunty

24 April 2009

Auch für Ubuntu 9.04 Jaunty gibt es das tpfancontrol Paket aus dem Ubuntu PPA um auf Thinkpad Laptops den Lüfter zu steuern. Eine echte Investition in die nervenschonende Arbeit, zumindest bei der Thinkpad T42, T43 Serie quasi unabdingbar.

Leider hat das Paket einen kleinen Fehler, so dass in Ubuntu 9.04 Jaunty das tpfan-admin Programm nicht über Gnome startbar ist. (Es gibt dann eine DBUS Error Fehlermeldung von sich.) Abhilfe schafft hier tpfancontrol über sudo bzw. gksudo zu starten, ein Fix für den Fehler ist jedoch bereits angekündigt.

Hier noch der Link zum Ubuntu ThinkpadFanControl PPA:

https://launchpad.net/~tp-fan/+archive/ppa

VirtualBox 2.2 USB Probleme mit Ubuntu

17 April 2009

Nach dem Update auf VirtualBox 2.2 stürzte mir VirtualBox stets ab, wenn ich USB Geräte mit dem Gast verwenden wollte. Entweder blieb der Bildschirm vom VirtualBox Gast schwarz, oder VirtualBox ist ganz abgestürzt.

Die Ursache dafür war der folgende Eintrag für das usbfs, der bei älteren VirtualBox Versionen notwendig war:
none /proc/bus/usb usbfs devgid=46,devmode=664 0 0
Nachdem dies aus der /etc/fstab auskommentiert war, stürzt VirtualBox 2.2 bzw. der Gast auch nicht mehr ab.

Java logging: Netbeans, Eclipse und java.util.logging im Einsatz

14 April 2009

Seit Java 1.4 gibt es das Paket java.util.logging, mit dessen Hilfe das Logging standardisiert wurde. Ich möchte an dieser Stelle jeder Wertung außen vor lassend einmal vorstellen, wie mithilfe der Java Logging API die Entwicklung in Netbeans und Eclipse (und anderen Entwicklungsumgebungen) erleichtert werden kann.

Insbesondere die Kombination von jUnit Tests und verschiedenen Logleveln bzw. Loghandlern kann das Leben eines Entwicklers drastisch vereinfachen und oft auch einen Debugger überflüssig machen.

VirtualBox: Interface für Bridged Networking (Windows)

12 April 2009

Das Update auf VirtualBox 2.2 läuft unter Windows zwar wunderbar durch - doch danach tut sich erstmal nicht viel, wenn man "bridged networking" verwendet. Offenbar wird bei dem Update von VirtualBox 2.2 unter Windows Vista und Windows XP manchmal der bridged network treiber nicht korrekt installiert.

VirtualBox: Host-Only Network eingeschränkte oder keine Konnektivität

12 April 2009

Die Meldung von Windows in Verbindung mit VirtualBox 2.2 und dem host-only Network macht etwas Sorgen: "VirtualBox Host-Only Network eingeschränkte oder keine Konnektivität". (Bzw. im englischen "Vitualbox Host-Only Network has limited or no connectivity.")

Auch wenn es evtl. nervig ist - kein Grund zur Sorge. VirtualBox startet nur dann auf dem host-only Interface einen DHCP Server, wenn eine virtuelle Maschine von dem Interface Gebrauch macht. Das heißt, dass Windows versucht eine IP Adresse für das virtualbox host-only interface zu konfigurieren, dies jedoch nicht kann. (Da kein DHCP Server läuft) Dies führt dann zu eben der Meldung "eingeschränkte oder keine Konnektivität". Wenn man kein host-only Interface verwendet, kann man dies einfach in den Globalen Einstellungen von VirtualBox 2.2 deaktivieren. Andernfalls die Meldung und das böse gelbe Ausrufezeichen ignorieren.

Virtualbox 2.2 auf Ubuntu installieren

9 April 2009

Die Installation der neuen VirtualBox 2.2 Version unter Ubuntu (Intrepid) ist sehr einfach.

Man fügt dazu zuerst folgende Zeile als Paketquelle hinzu: deb http://download.virtualbox.org/virtualbox/debian intrepid non-free

und installiert dann, z.B. per apt-get die neue Version. Für ein Upgrade reicht es natürlich nur die neue Version zu installieren, an den Paketquellen ändert sich da nichts.

sudo apt-get install virtualbox-2.2

VirtualBox 2.2

8 April 2009

VirtualBox 2.2 steht kurz vor der Veröffentlichung. Zeit kurz zusammenzufassen, was es an Neuigkeiten in VirtualBox 2.2 (Sun xVM) geben wird.

Blu Ray und Linux: Blank, Format und Brennen

6 April 2009

Das Brennen von BluRay Medien (BD-R, BD-RE) unter Linux hat mich inzwischen einige Haare gekostet. Zum einen kommt das Problem mit dem "besonderen Standpunkt" zum Thema mkisofs, cdrecord etc. bei Debian und Ubuntu zum Tragen. Zum anderen ist schlecht dokumentiert, wie man eine wiederbeschreibbare BluRay Disc (BD-RE) korrekt handhabt. Gerade für Backup Zwecke möchte ich jedoch gerne bluray discs einsetztn. Dahier nun hier einige meiner Erfahrungen.

Ubuntu Intrepid: Nvidia Grafikprobleme gefixt

6 April 2009

Unverhofft kommt oft - vor allem vor dem Hintergrund, dass Ubuntu 9.04 "Jaunty" in den Startlöchern steht, habe ich nicht damit gerechnet, dass noch neue Nvidia Treiber im Ubuntu Intrepid Einzug halten.

Und doch überraschte mich gestern der "proprietary drivers manager" mit dem Update auf Nvidia 180. Zwar nicht damit rechnend, doch voller Hoffnung auf Bugfixes habe ich dann das Update vollzogen. Und - oh Wunder! - die nervigen Artefakte mit Compiz, Eclipse bzw. Firefox sind verschwunden. Wow!

Ubuntu cdrtools / mkisofs

4 April 2009

Wie man hier nachlesen kann, gibt es wohl einen lange schwelenden Kleinkrieg um cdrtools und mkisofs. In diesem Posting kommen ganz gut die Gefühle rüber, die einen überkommen, wenn man versucht das völlig verhunzte genisoimage durch mkisofs zu ersetzen.

asterisk: terminate called after throwing an instance of 'std::length_error'

4 April 2009

Asterisk weigerte sich nach einem Stromausfall standhaft zu starten - dabei hatte ich an der Konfiguration von Asterisk nichts geändert. Lediglich ein paar Ubuntu Updates, aber am Asterisk habe ich keine configs geändert, dennoch brach Asterisk immer ab: func_uri.so => (URI encode/decode dialplan functions)
terminate called after throwing an instance of 'std::length_error'
what():  vector::_M_fill_insert
Aborted
Es hat schließlich geholfen, die Asterisk Module h323 und den Voicetronix Treiber zu deaktivieren. Warum auf einmal der Asterisk abgestürzt ist, und sich Asterisk nicht mehr starten ließ, ist mir jedoch schleierhaft.

Ubuntu: VirtualBox Module und Kernel Updates

4 March 2009

Ubuntu liefert freundlicherweise regelmäßig Sicherheitsupdates aus. Das betrifft natürlich dann auch den Linux Kernel. Leider klappt danach der Start von VirtualBox (eine kostenlose Virtualisierungslösung von Sun Microsystems) nicht mehr. (Und das trotz installiertem dkms Paket.)

Die Lösung - wenn auch "zu Fuß" - sieht dann so aus, dass man dafür sorgt dass die neuen VirtualBox Module kompiliert und installiert werden. sudo /etc/init.d/vboxdrv setup * Stopping VirtualBox kernel module                                             *  done.
* Removing old VirtualBox kernel module                                         *  done.
* Recompiling VirtualBox kernel module                                          *  done.
* Starting VirtualBox kernel module                                             *  done.

Apobank und HBCI (fail)

4 March 2009

Die liebe Apobank - ich find es schade, dass wohl mehr Geld in das Redesign und Branding geflossen ist, als dafür zu sorgen, dass die HBCI Schnittstelle vernünftig funktioniert.

Und neu sind die Probleme mit der Apobank und HBCI bei weitem nicht. Die ominösen Anzeigen im browser basierten Online-Banking thematisiere ich besser garnicht erst. Wie standardkonform und offen für Entwickler man sich hier gibt, zeigt schon die Art, wie Fehler gemeldet werden:

-> Server returned HTTP response code: 400 for URL:
https://hbcibanking.apobank.de:443/error_path/400.html
  -> Server returned HTTP response code: 400 for URL:
https://hbcibanking.apobank.de:443/error_path/400.html

OpenSolaris und die VirtualBox (xVM) Guest Additions

3 March 2009

OpenSolaris harmoniert - wen wundert es - mit VirtualBox sehr gut. Das mag daran liegen, dass es sich bei beiden um Produkte aus dem Hause Sun Microsystems handelt. Die Installation von OpenSolaris in einer VirtualBox ist schnell erledigt, einfach die LiveCD wie auf einem normalen Rechner auch installieren. Bei den Gast Ergänzungen (Guest Additions), die sich um Clipboard, Maus und Bildschirm Behandlung kümmern, gilt es ein paar Kommandos einzugeben.

Netbeans Collaboration mit Openfire

26 February 2009

Netbeans hat ein Collaboration Modul mit dem es möglich ist, innerhalb der Netbeans IDE mit anderen Usern zu chatten und zusammenzuarbeiten. Bisher wurde unter share.java.net auch ein Collaboration Server angeboten, doch der Dienst wird demnächst eingestellt. Die Alternative besteht darin, z.B. einen eigenen Openfire XMPP (Jabber) Server einzurichten, und diesen zu nutzen. Dazu gibt es auch hier eine Anleitung für einen Collaboration Server für Netbeans mit Openfire.

Openfire ist ja schnell eingerichtet, jedoch hatte ich das Problem, stets die Meldung zu bekommen: "object does not represent a valid jid"

Thinkpad (T43) Lüfter

21 February 2009

Die Thinkpad Serie von IBM (bzw. nun Lenovo) ist in meinen Augen mit eine der besten Notebook Serien überhaupt. Doch seit der Lenovo Übernahme wird gerade in den Bereichen gepatzt - einem Bereich der ja gerade die Qualität der Thinkpads ausgemacht hat. Bei dem T43 ist es kein Verarbeitungsproblem oder Windows - es ist der Lüfter. Der Lüfter läuft unentwegt und "pulst" dabei auf besonders nervige Weise. Dabei handelt es sich lediglich um ein Softwareproblem mit dem embedded Controller.

Java 6u12 bringt 64bit Plugin für Ubuntu / Linux

5 February 2009

Java 6u12 wurde von Sun für den produktiven Einsatz freigegeben. Vermutlich nicht zuletzt dank JavaFX wurde nun nach sechs Jahren(!) damit der Bug 4802695 geschlossen: Es gibt nun ein 64 bit Java Plugin für Linux und auch für Windows. Endlich! Wer Ubuntu 8.10 Intrepid hat, und nicht bis Jaunty warten möchte, kann folgendermaßen die Installation vornehmen:

Thunderbird: Frühjahrsputz für Glanz und Speed

1 February 2009

Mozilla Thunderbird ist mein präferiertes E-Mail Programm (MUA). Die Gründe dafür sind schnell erzählt: Es ist auf allen für mich relevanten Plattformen verfügbar, durch Plugins erweiterbar und bietet hinreichenden Komfort. Wie viele andere E-Mail Programm löscht Thunderbird jedoch E-Mails nicht, sondern markiert diese lediglich als "gelöscht", wenn man E-Mails löscht.

Cisco 7960 und Asterisk: Mehrfachanmeldung

7 January 2009

Mysteriöse Probleme sind das nervigste überhaupt - man stochert förmlich im Nebel auf der Suche nach einem Hinweis oder einer guten Idee.
Das Problem:
Mein Cisco 7960 IP Telefon wollte sich partout nur noch mit einem SIP Account am Asterisk anmelden. Insgesamt vier SIP Accounts habe ich für das Cisco Telefon konfiguriert, der Asterisk selber hat rund 10 SIP Accounts, unter anderem für mein Nokia N95, weitere Cisco 7960 usw..

Besonders mysteriös: Welcher der SIP Accounts des Cisco 7960 sich am Asterisk erfolgreich angemeldet hat, varrierte nach jedem Neustart des Cisco Telefons.

Ubuntu Intrepid 8.10: DVD Wiedergabe mit deCSS

29 December 2008

ubuntulogoUbuntu Linux ist ein extrem anwenderfreundliches Linux, ein Grund, weshalb Ubuntu rasend schnell an Verbreitung zunimmt.
Leider ist die DVD Wiedergabe aufgrund des CSS "Schutzes" (Content Scrambling System) nicht so einfach - bzw. je nach Land könnte es sich sogar um eine rechtliche Grauzone handeln. Ich gehe einfach davon aus, dass jemand, der DVD Filme legal gekauft hat, diese auch mit Ubuntu Linux wiedergeben darf, und nicht vor hat DVD Filme zu rippen und zu cracken, Punkt. So richtet man nun die DVD Wiedergabe bei Ubuntu Intrepid 8.10 ein:

Netbeans: Datei Extension umbenennen? Nein.

29 December 2008

nb-logo2Frage: Wie kann ich in netbeans eine Datei mit Extension umbennen? (z.B. foo.inc nach foo.jsp)

Antwort: Wir verstehen dass dir das wichtig ist... derzeit bieten wir an, dass du Dateien ohne Änderung der Extension umbenennen kannst, oder die Datei außerhalb von Netbeans, z.B. über den Nautilus Explorer umbenennst.

Der zugehörige Netbeans Bug von 2002 ist Issue 27444. Besonders ärgerlich ist das, wenn es z.B. gilt viele Dateien umzubenennen, was bei *.php5 -> *.php ja mal vorkommt.
Und ich bin sicher nicht der einzige, der Netbeans so benutzen soll: http://forums.netbeans.org/topic6082.html

Ubuntu Intrepid: Linux 2.6.27 und AVM Fritz fcpci Anleitung

27 December 2008

AVM mag zwar beliebte Hardware herstellen - doch beliebt heißt nicht immer, dass das Produkt gut ist. Die AVM Fritz PCI Karte, ist ein Klassiker - doch AVM hat nie die Treiber Quellcodes offenlegen wollen, und kümmert sich gleichzeitig auch nicht darum, die Treiber aktuell zu halten.

So guckt man bei einem Ubuntu Intrepid 8.10 erstmal ziemlich in die Röhre - Ubuntu liefert im linux-restricted-modules Paket nicht mehr wie gewohnt AVM Fritz PCI Treiber mit, und selber kompilieren schlägt erstmal fehl.

Im folgenden habe ich eine klick-through Anleitung (ohne Gewähr), die bei mir funktioniert hat. Schön ist natürlich anders - AVM Produkte werde ich zukünftig meiden.

Ubuntu: Datei Berechtigungen wieder herstellen

26 December 2008

Bei einem Update von Hard nach Intrepid haben sich auf einem System die Device Namen verdreht - ohne, dass ich es bermerkte. Das führte dazu, dass die Festplatte mit dem Root Filesystem doppelt gemountet wurde (was nicht alles geht), und ich ein fröhliches chown -R vdr:vdr auf dem Root Filesystem durchgeführt habe. Autsch. Jetzt ist guter Rat teuer, wie können die Berechtigungen wieder hergestellt wreden, ohne das System neu zu installieren. Ein Backup gibts natürlich nicht.

Ubuntu: VDR Plugin installieren

26 December 2008

vdr-logo-smallUbuntu Linux hat eine umfangreiche Paketausstattung, so kommt auch der Linux Videorekorder "vdr" nebst einigen Plugins daher.

Leider ist das Streamdev Plugin für den VDR nicht dabei - dies muss manuell nachinstalliert werden. Dazu bedarf es eigentlich nur ein paar Schritten, die grundsätzlich für alle vdr plugins unter Ubuntu und Debian gleich sind, jedoch auch ein paar Besonderheiten beim VDR Streamdev Plugin.

VirtualBox 2.1 auf Ubuntu: Host USB Proxy Service (VERR_FILE_NOT_FOUND) Fehler

22 December 2008

VirtualBox 2.1 wird freundlicherweise auch über ein Ubuntu kompatibles Repository vertrieben. Das Upgrade von VirtualBox 2.0.6 auf VirtualBox 2.1 verlief auch absolut problemlos.

VirtualBox meldete jedoch bei jedem Start den Fehler "Failed to access the USB subsystem: Could not lod the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might be not installed on the host computer." Aha.

VirtualBox: VERR_CFGM_VALUE_NOT_FOUND

22 December 2008

Nach der Umstellung von VirtualBox 2.0.6 auf VirtualBox 2.1 galt es natürlich das neue Hostinterface für das Netzwerk zu testen.

Dabei verwendete ich eine bestehende virtuelle Maschine unter VirtualBox, stellt bei Netzwerk von NAT auf "Host Interface" um - und wollte die Maschine booten. Dabei erhielt ich dann jedoch lediglich die Fehlermeldung von VirtualBox "VERR_CFGM_VALUE_NOT_FOUND" - kein booten. Die Lösung: Es waren noch "extra data" Einträge für die Maschine gespeichert, in diesem Fall NAT Portforwarding Einstellungen.

VirtualBox: Kostenloser Virtualisierer mit neuen Features

22 December 2008

Sun Microsystems hat eine neue Version der kostenlosen Virtualisierungslösung VirtualBox (Sun xVM) herausgebracht. Das neue VirtualBox 2.1 wartet mit einigen Neuerungen auf (changes)

Am interessantesten dürfte dabei sein, dass 64bit Gäste in einer 32Bit Hostumgebung unterstützt werden, erste Schritte in Richtung hardware 3d Beschleunigung gemacht wurden, und verbesserter Support für die Netzwerkanbindung. (Das sollte dem etwas anstrengenden Gefummel mit Netzwerk-Bridges ein Ende bereiten - doch auch NAT soll wesentlich beschleunigt worden sein.)

VirtualBox kann nun auch mit Images von Vmware (VMDK, VHD) direkt arbeiten und unterstützt dabei auch die Snapshot Funktionalität. Weiterhin ist eine Enterprise Version und eine OpenSource Version kostenlos verfügbar.

OpenVPN mit OpenSolaris

22 December 2008

OpenSolaris 2008.11 ist gerade veröffentlicht worden, Zeit für eine echte Testfahrt. OpenVPN ist eine attraktive Alternative zu IPsec oder proprietären VPN Lösungen wie PPTP. Was bei Windows und Linux kinderleicht zu installieren ist, ist bei so "jungen" Betriebssystemen wie OpenSolaris etwas aufwendiger.

Im Grund benötigt man für OpenSolaris den TUN/TAP Treiber, weiterhin läuft der GCC nicht mit der Rolle root, sondern nur wenn der User root existiert. Im folgenden wird der Ablauf für OpenSolaris auf einem 64 bit System skizziert.

Firefox 3.1 in Ubuntu

18 December 2008

Firefox 3.1 - wenn auch noch als Beta Version - ist bereits über ein Ubuntu Repository verfügbar.

Wer gerne Firefox 3.1 in Ubuntu Intrepid installieren möchte, kann folgendes Repository in den Softwarequellen hinzufügen, und danach das Paket "firefox-3.1" installieren. Der "alte" Firefox 3 bleibt weiterhin installiert, man muss den neuen Firefox separat starten.

Das Firefox PPA Repository lautet:

deb http://ppa.launchpad.net/fta/ubuntu intrepid main

OpenSolaris Release 2008.11 - Jericho

2 December 2008

OpenSolaris wurde von Sun in der Version 2008.11 (Codename "Jericho") released. Damit ist OpenSolaris nun zum zweiten Mal als Distribution veröffentlicht worden, und wartet direkt auch mit interessanten neuen Features auf:

  • ZFS als Dateisystem und Timeslider, mit dem sich ältere Versionen von Inhalten wiederherstellen lassen (ähnlich wie Apples Time-Machine, allerdings in einer schöneren Umsetzung)
  • Raid und Volumemanagement Funktionen sind ebenfalls über ZFS gelöst - womit sich ZFS auch als Fundament für Suns neue Storage Stragtegie qualifiziert
  • Suspend to Ram

Mit dabei sind auch Überraschungen wie Songbird 0.5, aber auch Aktualisierungen bei altbekanntem: Gnome, Firefox, Netbeans und OpenOffice. Eine Liste aller Neuerungen gibts hier. Gerade zur Entwicklung und Betrieb von kritischen Anwendungen wird sich der Sun Stack - nicht zuletzt wegen dtrace - als sehr produktiv erweisen.

Das nächste OpenSolaris Release wird 2009.04 für das schon interessante Projekte wie crossbow zur Netzwerkvirtualisierung angekündigt wurde.

Netbeans 6.5 kommt: RC1

24 October 2008

Netbeans 6.5 kommt - der RC1 wurde gestern veröffentlicht. Schon seit geraumer Zeit arbeite ich gerne mit den nightly builds, die einen stabilen Eindruck machen. Was bringt Netbeans neues, und was hat Netbeans 6.5 auch für nicht-Java Entwickler zu bieten?

Kostenlose Virenscanner: Vergleich der Download Versionen

20 October 2008

Für meine private Windows Instanz habe ich bisher den Avira Antivir PE verwendet - ein deutsches Produkt, hervoragende Erkennungsrate und der geringe Preis ("kostenloser Virenscanner" eben) waren da ausschlaggebend.

Doch zunehmend nervte mich die Werbung von Avira und die "Drohkulisse" dass ich eben nicht gut abgesichert sei und besser mal schnell die Premium Version kaufen solle. Dann schließlich - das Windows war eine Zeit nicht in Betrieb - weigerte sich Antivir PE neue Virensiganturen herunterladen zu wollen. Der Grund: Die Lizenz von Antivir sei abgelaufen. Mit Avira war ich nunmehr fertig - eine Alternative zum Antivir sollte her. Anforderungen: Kostenloser Virenscanner für den privaten Gebrauch. Hintergrundüberwachung und automatische Updates, sowie lauffähig unter Windows Vista 32bit.

Das ist es: Java 6u10

20 October 2008

Sun hat das neueste Update für Java 6 herausgebracht: Java 6 Update 10, oder kurz 6u10 ist als "first customer ship" Version veröffentlicht worden.

Wie man an den voluminösen Release Notes zum Java 6u10 erkennen kann, hat sich einiges getan. Der einzige Grund das ganze nicht direkt Java 7 zu nennen, dürfte sein, dass 6u10 keine Inkompatiblen Sprachfeatures oder API Änderungen einführt. (Wobei man bei dem neuen Applet darüber diskutieren könnte...)

Ubuntu VirtualBox 2 - VMware konvertieren, die Anleitung!

6 October 2008

Ubuntu 8.10 wird auf Herz und Niere getestet - dazu gehört das neue VirtualBox 2, ein Sun Microsystems Produkt (nachdem es die deutsche Innotek gekauft wurd...). Am liebsten sollen bestehende Vmware Server Images weiter verwendet werden, und "einfach funktionieren" - mit VirtualBox (oder wie es bei Sun heißt Sun xVM VirtualBox )

Ubuntu Intrepid Update: Ordner öffnen sich nicht mehr

6 October 2008

Ubuntu Intrepid bringt neben neuen Features eben auch neue Bugs - gehört quasi mit zum Spiel. Nach dem Update von Ubuntu Hardy Heron funktionieren die Links unter "Places" bzw. "Orte" nicht mehr richtig - statt den Ordner mit Nautilus anzuzeigen werden irgendwelche anderen Programme gestartet, z.B. F-Spot, VLC oder Audacious.

Das ganz ist auch als Ubuntu Bug bekannt, und an Gnome/Upstream gemeldet. Als Workaround tut es folgendes: Mittels alt+F2 "nautilus" starten, und einen Ordner mit der rechten Maustaste anklicken. Dann "Open with other application" bzw. "mit anderer Anwendung öffnen" klicken und "Filebrowser" (Dateibetrachter ?) anklicken. Fertig. Voerst.

Ubuntu Intrepid: 8.10 Beta

6 October 2008

Ubuntu 8.10, Codename "Intrepid Ibex" ist als Beta Version verfügbar. Wer ein Hardy Heron - oder ein älteres - Ubuntu verwendet, kann die Ubuntu Beta Version mittels

update-manager -d

installieren. Es sei gewarnt - Beta ist hier nicht das Web 2.0 "beta", sondern es dauert wirklich noch bis Ende Oktober zum offiziellen Release.

Ubuntu: F-spot 0.4.3 Export Fehler (object error)

29 September 2008

Ubuntu Hardy Heron ist mein favorisiertes Betriebssystem, vor allem aufgrund der Stabilität und guten Integration. Einige Anwendungen glänzen jedoch mit dem Gefühl "unausgereift", buggy oder auch schlichtweg "Zumutung".

F-Sport ist der default Bildbetrachter und Tool zur Bildverwaltung bei Ubuntu. Ähnlich wie Google Picasa kann man damit Bilder taggen, importieren und angeblich auch exportieren. Die Version von Ubuntu Hardy ist jedoch völlig defekt:

"Error uploading picture foobar to Gallery: Object reference not set to an instance of an object"

Ok, das klingt nach einem echten wtf - aber immerhin gibts einen Fix: In F-Spot "Manage extensions" dann das Folder-Export-Plugin deaktivieren und über "Add Extension" das neuere Plugin installieren. Fertig, tut, danke!

Wer ein neueres F-Sport (z.B. 0.5) ausprobieren möchte (das wird nämlich nicht unbedingt in Intrepid auftauchen :-/ ), kann die folgenden Paketquellen hinzufügen:

deb http://ppa.launchpad.net/michelinux/ubuntu intrepid main
deb-src http://ppa.launchpad.net/michelinux/ubuntu intrepid main

Heuschrecken @ SpringSource: Spring Framework lock-in

24 September 2008

Spring Framework - damals revolutionäre Konzepte, weg von "bloated enterprise committee driven", "lightweight" war angesagt. Spring setzte sich rasend schnell durch, die Macher verdienten mit Consulting, Training und Büchern.

Die "Community" verhalf Spring zum Erfolg - Menschen, die in neuen Projekten den Mut aufbrachten auf Spring zu setzten. Entwickler, wie ich, die Bücher kauften, Bugs meldeten, testeten und Marketing betrieben.

SpringSource wurde geboren - Venture Capital floß. Nach der Enterprise Application Platform und JavaOne T-Shirts die furchtbar die Wäsche verfärben kommt jetzt der absolute Knüller: Wer nicht zahlt erlebt ein Debian revival: Veraltete Version benutzen oder "unstable" fahren. Wobei Debian wenigstens Security Fixes noch in den antiken Versionen bereitstellt.

Wer zahlt, der bekommt eine stabile Version - jedoch unter einer Lizenz, die es nicht erlaubt diese Version weiterzugeben. Ich weiß nur, dass ich nach dem Theater mit der ext-js Lizenz ganz schnell bei jquery war, und sicher da bleiben werde. Bleibt abzuwarten, wie es mit Spring weiter geht.

Einen Blick auf Google Guice und pico container habe ich bereits geworfen - doch Spring ist mehr. Vendor lockin auf allen Ebenen, das tut weh.

Rod Johnson hat sicherlich Recht, dass SpringSource "über 100 OpenSource Releases pro Jahr" machte, aber wie wird die Zukunft aussehen? Sicher, Bandbreite für Dokumentation, Maven Repo, Amazon S3, das kostet alles Geld - jedoch zumindest für diejenigen, die selber Spring kompilieren, könnte ein SVN Tag bereitstehen. Ich bin gespannt, wann jemand svn revision Nummern zu enterprise releases als Mapping zur Verfügung stellt.

Das könnte auch SpringSource helfen - zumindest wenn gewünscht ist, dass die Community weiterhin BugReports einreicht, und das nicht nur noch enterprise Kunden per Support Ticket sollen/dürfen: Doppelte Bugreports und Reports zu längst gefixten Problemen dürften die Regel statt die Ausnahme werden. Oder eben man schaltet bei "Community" komplett auf taub.

Update: Wie Rod Johnson im SpringSource Team Blog erläutert, hat SpringSource dank des umfangreichen Community-Feedback Änderungen an den Änderungen vor. Grob gesagt: Spezielle Preise für kleine Unternehmen und ständige Verfügbarkeit von Releases aus dem aktuellen Zweig.

Damit kann man gut leben - Unternehmen, die gerne ältere Versionen gepflegt haben möchten, haben auch die Ressourcen das zu finanzieren.

Posterdruck: Verteilung auf A4 Blätter (Ubuntu, Linux, Windows)

19 September 2008

Posterdruck ist entweder teuer - oder man verteilt ein großes Bild bzw. Dokument auf viele kleine Schnipsel und fügt diese dann zu einem großen ganzen zusammen.

Ein Programm, dass hierbei hilft ist Posterazor. Das Programm gibt es für Windows, MacOSX, Linux (Ubuntu, Gentoo, etc.). Ab Ubuntu Intrepid ist es in universe enthalten, bis dahin kann man die statisch gelinkte Version auf der Homepage herunterladen. (Funktioniert auch mit AMD 64)

Zend Framework 1.6 erschienen

7 September 2008

Das Zend Framework ist in Version 1.6 veröffentlicht worden. Die wohl größte Neuerung ist die enge Integration von Dojo.

Ansonsten gibt es ein paar neue Funktionen, die gesamte Anleitung als PDF und vor allem Fehlerbereinigungen gegenüber dem Zend Framework 1.5:

  • Zend_Tool
  • Lucene 2.3 Index File Format Support
  • Zend_Session save handler for Database Tables
  • Paginator Component
  • Figlet Support
  • ReCaptcha Service
  • Captcha Form Element
  • Zend_Config_Xml Attribute Support
  • Zend_File_Transfer Component
  • File Upload Form Element
  • Zend_Wildfire Component with FireBug Log Writer

Sehr gelungen ist auch die Integration von FirePHP in das Zend Framework, über das Christoph Dorn auch bloggt. Für die Controller gibt es nun Unit Test Unterstützung durch das Zend Framework, und Zend_Tool soll die Projektverwaltung vereinfachen.

Die ersten Bugs ließen nicht lange auf sich warten, für den produktiven Einsatz der neuen Features ist etwas abwarten auf die Version 1.6.1 des Zend Framework wohl zu empfehlen.

PHP Entwicklung mit Eclipse und xdebug

7 September 2008

PHP Entwicklung ist eine zweischneidige Sache. Zum einen kommt PHP quasi "überall" zum Einsatz, vor allem wenn es um schnelle Entwicklung und günstiges Hosting geht. Doch der Sprache selber sieht man die Entwicklung von einem Pre-Hypertext-Prozessor über eine kleine Scriptsprache bis zur fast schon zu mächtigen Allround-Programmiersprache an. Neben den Sprachkonzepten setzt sich PHP vor allem in der zur Verfügung stehenden Entwicklungsinfrastruktur von anderen Sprachen ab: Außer dem Zend Studio gibt es quasi kein "tooling" zur Entwicklung von PHP Anwendungen. Auch die PHP Frameworks entstehen zunehmend erst in der letzten Zeit.

Ubuntu: Papierkorb leeren - Dateien von Hand löschen

7 September 2008

Ungeschickt angestellt ist es zwar, aber es ist möglich, Dateien in den Papierkorb zu befördern, die sich anschließend nicht löschen lassen.

Das Problem bei Ubuntu (bzw. dem Gnome Desktop) ist, dass eine Funktionalität wie bei anderen Betriebssystemen auch hergestellt werden soll: Versehentliches Löschen von Dateien und Ordnern soll die Chance bieten, dies rückgängig zu machen. Dazu werden Dateien unter Ubuntu nicht direkt gelöscht, sondern in den "Papierkorb" (engl. Trash) verschoben. Sind dabei schreibgeschützte Ordner kann dies dazu führen, dass man den Papierkorb unter Ubuntu nicht leeren kann.

Blu-Ray Rewriteable mit Ubuntu Linux (BR-RE)

23 August 2008

Der gute Händler des Vertrauens hat ein Blu-Ray Laufwerk im Angebot, welches für unter 200 Euro als boxed Version daher kommt. Gerade für Backups ist so ein Laufwerk für mich sehr interessant, passen auf einen Rohling doch rund 25GB.

Gesagt, gesagt - ein LG Bluray Super Multi Blue GGW-H20L kommt als interne SATA Version zum Einsatz. Alle Kabel und sogar ein BD-RE (Blue Ray rewriteable) Rohling lagen der Packung bei. Auch wenn ich bei Ubuntu großes Vertrauen habe, dass schon alles "out of the box" funktionieren wird, ein Restrisiko bleibt gerade bei uninformierten Spontankäufen immer.

Apache, fcgid und HTTP Authentifizierung mit PHP

16 August 2008

Gott, ich hasse schlecht dokumentierte Software! Ein echter Krampf sind die FastCGI und fcgid Module. fcgid sollte als (binärkompatibler) Nachfolger in die Fußstapfen des kaum gepflegten FastCGI Moduls treten. Das hat es sicherlich in mehrfacher Hinsicht geschafft: Die fcgid Webseite ist zum fürchten und sieht alles andere als professionell aus. Die Dokumentation ist eher dürftig und sinnvolle Beispiele für aktuelle Anwendungsfälle fehlen. (Rails, PHP, ...)

Tip: OpenOffice Rechtschreibkorrektur Wörterbuch auswählen

23 July 2008

OpenOffice verfügt über flexible Möglichkeiten zur Texterstellung und auch Korrektur. Was auf den ersten Blick etwas verwirrend anmuten kann: Es gibt Situationen im Leben, in denen verschiedene Sprachen in einem Dokument zur Anwendung kommen. Auch für diesen Fall bietet OpenOffice (bzw. StarOffice) Unterstützung: Es gibt eine Standardsprache für das Dokument - jedoch kann auch pro Absatz oder Text-Stil eine Sprache ausgewählt werden.

Das ermöglicht dann beispielsweise ein grundsätzliches deutschsprachiges Dokument mit einem englischen Zitat zu versehen, und jeweils die korrekten Wörterbücher zur Rechtschreibkorrektur zur Anwendung kommen zu lassen.

Pidgin: ICQ Client Version too old...

1 July 2008

Irgendwas ist bei Pidgin und dem ICQ Protokoll schwer im argen.

Schon vor einigen Wochen gab es ja Probleme mit Pidgin (und anderen Instant Messangern) bei der Verbindung zum ICQ Netzwerk. Aktuell meldet Pidgin in der aktuellsten Version 2.3.2 unter Windows bei dem Verbindungsversuch zum ICQ Netzwerk: "The client version you are using is too old. Please upgrade at http://pidgin.im/ ".

All in one Gestures für Firefox 3

18 June 2008

Mußte man bisher noch einen "registry hack" anwenden, um das All in One Gestures Addon für Firefox 3 zur Arbeit zu bewegen, so gibt es nun endlich ein neues Release von All in One Gestures das Firefox 3 kompatibel ist!

Das neue All in one Gestures 0.19 bringt neben der Kompatibilität für Firefox 3 auch ein paar Bugfixes mit. Noch ist es nicht über die Mozilla / Firefox Addons Webseite verfügbar, sondern nur über die Homepage des Autors: http://pagesperso-orange.fr/marc.boullet/ext/extensions-en.html#vers019

Ubuntu Hardy Update: Asterisk und chan_capi

12 June 2008

Ein Ubuntu Hardy update kann wirklich "hart" werden - vor allem wenn man nervös wird, weil der Rechner für die Telefon-Infrastruktur zuständig ist.
Folgende Probleme treten - vor allem mit CAPI / chan_capi - auf:

  1. Asterisk startet nicht mehr, wenn man die modules.conf nicht anpaßt
  2. CAPI Calls sind "defekt" - kein Ton und Zusammenbruch der Verbindung, da asterisk sagt er wisse nicht, wie er von "unknown" nach "unknown" (oder ulaw) konvertieren soll

[ad#leader]
Die Lösung sieht dann z.B. so aus:

asterisk-chan-capi Paket aus Intrepid nehmen http://packages.ubuntu.com/intrepid/i386/asterisk-chan-capi/download und mit "dpkg -i --force-depends" installieren. (Ist zugegebenermaßen etwas dreckig)

Das nicht-starten von Asterisk nach dem Ubuntu Hardy Heron Update kann man beheben, indem man die modules.conf anpaßt und die folgenden Zeilen ergänzt:

noload => app_directory_odbc.so noload => app_voicemail_odbc.so noload => app_voicemail_imap.so

Das sollte es gewesen sein - seit dem läuft mein Asterisk mit Ubuntu Hardy Heron wieder wie eine eins. Sogar besser als vorher.

address family not supported (atftp und andere ubuntu dienste)

28 May 2008

Ubuntu hat ein ipv6 fähiges "inetutils-inetd" Paket. Und dieser verflucht ausgefuchste inetd Server hat eine starke Präferenz für das ipv6 Protokoll. Sogar so sehr, dass ipv6 selbst dann bevorzugt wird, wenn auf dem Interface gar kein ipv6 konfiguriert ist.

Das führt dann unter Umständen zu allerlei Ärger, wie z.B. nicht funktionierendem TFTP mit atftpd - der Dienst kann nämlich nur ipv4.

Die Logdatei sollte einen auch aufmerksam machen:

in.tftpd[19786]: connect from ::ffff:10.15.0.248 (::ffff:10.15.0.248) atftpd[19786]: connect: Address family not supported by protocol

Abhilfe schafft hier, dies explizit für ipv4 zu konfigurieren. Der Typ ist dann statt "udp" ganz einfach "udp4". Ganz einfach - wenn man es weiß.

tftp dgram udp4 wait nobody /usr/sbin/tcpd /usr/sbin/in.tftp --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5  /srv/tftp

JavaOne 2008: Startup Camp und Community One

4 May 2008

Heute geht es los: Registrierung für CommunityOne und JavaOne ab 14 Uhr im Moscone Convention Center. Vorher jedoch startet schon die Registrierung für das StartUp Camp um 9:30 Uhr.

Nachdem letztes Jahr die CommunityOne vor allem für die Java Community und OpenSource Projekte initiiert wurde, gibt es jetzt noch zusätzlich das StartUp Camp. Dabei handelt es sich um eine "Unkonferenz" - der größte Teil wird durch Teilnehmer selber gestaltet. Ich habe erst vor kurzem durch Malte der über Liveblogging berichtete und die BarCamp Ruhr Aktionen von diesem Konzept gehört.

Jetzt wirds wohl bei mir Zeit für Twitter - oder ich wage mich an noch kürzere Beiträge heran.

eAccelerator vs. xcache: Caches für PHP

23 April 2008

Nachdem Dominik ein paar Benchmarks zu verschiedenen opcode Caches für PHP veröffentlich hat, möchte ich auch ein paar Erfahrungen von mir beisteuern.

Ich habe auf verschiedenen (Linux) Servern schon seit langer Zeit (code) Caches für PHP eingesetzt, doch keiner hat bisher so funktioniert, dass ich gut zufrieden war. Die Geschwindigkeit ist dabei weniger das Problem, als die Stabilität.

AMD 64 Java 6 crashes - Workaround und Lösungen

23 April 2008

Bereits seit Wochen Monaten gibt es nun das Problem, dass Java 6 ab Update 4 nicht mehr stabil auf AMD64 Plattformen läuft.

Die JVM crasht - und zieht natürlich die laufende Anwendung, wie z.B. Eclipse unter Java, mit in den Tod. Ein funktionierender Workaround ist tatsächlich den Hotspot Java Optimizer/Compiler zu deaktivieren, dazu ist das Programm/Java mit "-Xint" zu starten. (Bei Eclipse geht das dann so: eclipse -vmargs -Xint)

Wirklich behoben zu sein scheint das Problem mit Java 6 Update 10 - derzeit ist diese Version im beta Stadium. Java 6 U10 wird auch die erste Version mit dem neuen modularen Java Kernel Konzept sein.

Wer das ganze testen möchte, findet auf der Homepage des Java Early Access program den entsprechenden Download von Java 6 Update 10 beta.

Für Ubuntu ist der Austausch folgendermaßen zu bewerkstelligen:

  1. Download der Datei.
  2. Kommandozeile öffnen
  3. bash jdk-6u10-beta-linux-x64.bin
  4. Lizenz (lesen und) bestätigen
  5. in /usr/lib/jvm das ausgepackte Archiv unterbringen
  6. den Link von java-6-sun auf das neue Archiv umbiegen (rm java-6-sun; ln -s jdk1.6.0_10 java-6-sun)

Fertig. Viel Erfolg beim beta testen.

Update:
Sun ist wohl hinter die Ursache gekommen, auch wenn sich der entsprechende Bugreport so ließt als müsse man erstmal Compilerbau gehört haben. Wie so oft gibt es auch nicht nur den einen Bugreport, sondern z.B. auch diesen - aber immerhin es sieht so aus, als sei eine Lösung in Sicht. Und der Bug schon lange - schlummernd - in der Java Codebasis. Update 2:
Eine weitere Lösung stellt die Verwendung der IBM Java VM dar. Die gibt es inzwischen - endlich - auch als Java 6 Version und für 64 Bit Windows/Linux Rechner. Bei IBM ist für den Java Download eine Registrierung erforderlich. Die Nutzungsbedingungen sind u.U. andere als bei Sun. IBM Java Download.

Java: jvm Crash - Ubuntu Hardy Heron

22 April 2008

Die Java Virtual Machine (JVM) crasht mit dem aktuellen Java 6 noch immer unter Ubuntu Hardy Heron.
Der (geringen) Menge an Bugreports und Blogeinträgen nach scheint es sich um ein eher esoterisches Problem mit der JVM zu handeln. Die betroffenen Applikationen wie Eclipse, Azureus sind SWT Applikationen. Vielleicht ist es also doch ein Problem das nicht der Java JVM angelastet werden sollte.
Jedenfalls berichten einige User, dass die JVM Option "-Xint" geholfen hat - wenn auch alles "etwas" langsamer wird.
Kein Wunder, -Xint schaltet nämlich die HotSpot Optimierungen der JVM aus. Aber immerhin wäre es ein passbler workaround gegen die permanenten jvm crashes.

Phpbb3 und mod_gzip - mysteriöse Probleme

20 April 2008

PhpBB3 ist nun schon eine Weile veröffentlicht - und so stellt man das eine oder andere Forum um. Probeläufe werden gemacht, ob eine phpBB2 nach phpBB3 Migration klappt, alle Userdaten und Avatare mitkommen.

Nachdem dann auch das Avatar-Salt richtig gesetzt ist, sieht erstmal alles gut aus. Bis die ersten User des phpBB3 Forum klagen, dass "die Seite langsam" ist. Auch mir selber kamen längere Ladezeiten unter.

Manchmal dauerte es 15 Sekunden bis ein Avatar Bild geladen war - der Rest des phpBB Forums war schnell wie erwartet.

Des Rätsels Lösung fand sich dann dank Stefan:

Nur bei HTTP 1.1 Requests und aktiviertem Keepalive bzw. HTTP Pipelining und nur bei Bildern trat das Problem auf. Schnell war identifiziert, dass die 15 Sekunden genau der maximalen Keepalive Zeit des Apache entsprachen.

Was war nun passiert: Im Apache ist mod_gzip (bzw. DEFLATE) aktiviert. Die Avatare werden von einem PHP Script ausgeliefert und nicht mehr direkt verlinkt. Dabei wird von dem Script auch der Content-Length Header gesetzt - auf die Größe der Bilddatei.

Dann braust das mod_gzip einmal über das Bild und macht es kleiner - und sei es nur ein kleines Byte. Der Content-Length Header wird nicht angepaßt, und der Browser glaubt er müsse noch auf fehlende Bytes warten. Das tut er dann, bis der Timeout erreicht ist.

Lösung dafür war dann diese Zeile in der Apache Config, zumindest als vorläufiger Workaround:

SetEnvIfNoCase Request_URI download/file\\.php$ no-gzip dont-vary

Java (JVM) und Eclipse Abstürze mit Ubuntu Hardy Heron

10 April 2008

Das aktuelle Java JRE (und JDK) scheinen gehörig überarbeitet worden zu sein - leider nicht unbedingt zum Positiven. Wie auch hier oder in den Bug Reports zu lesen ist, gibt es allerlei Abstürze.

Besonders ärgerlich, wenn man mit Eclipse (Europa) arbeiten möchte, und dies beim Projekt bauen oder Mylin initialisieren einfach die Java Virtual Machine tötet. Auch der Wechsel zum OpenJDK, das für Ubuntu verfügbar ist, hat leider keine Abhilfe schaffen können. Auch RSSowl funktioniert nicht richtig - stürzt aber wenigstens nicht ab - es werden einfach keine Feedeinträge angezeigt.

Als workaround empfehlen einige ein Downgrade auf eine ältere Java Version (vorsicht, hier können sich Sicherheitslücken einschleichen!) - oder eine 32bit Version zu verwenden. (Der Bug scheint sich lediglich bei AMD64 bzw. 64bit Intel Architektur auszuwirken.)

Ich versuche es mit dem Angriff nach vorne - Eclipse ganymed, dessen Startlogo fast suggeriert, dass bei "Ganymed" ein Buchstabe vergessen wurde.

Eclipse Ganymed M5

Update:

Also alle guten Vorsätzen und Versuchen haben nicht gefruchtet - allein ein Downgrade der Java Installation auf Ubuntu Gutsy 1.6.0_03 half ein stabiles Java zu erhalten. Da der Bug schon eine Weile bekannt ist, mache ich mir keine großen Hoffnungen, dass bis zum Erscheinen von Hardy Heron das Problem behoben ist.

VMware Server mit Ubuntu Hardy Heron 8.04 LTS

9 April 2008

Ubuntu Hardy Heron steht vor der Tür - nach dem Update funktioniert der VMware Server nicht mehr. Auch der neueste Vmware Server 1.0.5 benötigt ein paar Anpassungen, damit er mit Ubuntu Hardy 8.04 LTS funktioniert.

Hier ist meine Anleitung um den Vmware Server auf Ubuntu Hardy einzurichten:

  1. Neue Version vom Vmware Server herunterladen - ich habe 1.0.5 verwendet - und installieren
  2. Den Any-Any Patch Version 116 herunterladen, auspacken und runme.pl aufrufen
  3. Im Verzeichnis /usr/lib/vmware/lib/libgcc_s.so.1 die Datei löschen und durch einen Link auf die normale Version ersetzen ( ln -s /lib/libgcc_s.so.1 . )

Bei mir funktioniert damit der Vmware Server unter Ubuntu Hardy Heron wieder.

Firefox 3 und alte Plugins

9 April 2008

Firefox 3 ist zwar noch beta - doch das neue Ubuntu Hardy Heron wird Firefox 3 als Browser mitbringen.

Leider sind noch nicht alle Plugins für den Firefox 3 aktualisiert worden - viele benötigen keine Anpassungen und würden funktionieren, wenn lediglich die als kompatibel anerkannte Firefox Version angepaßt würde.

Zum Beispiel Adblock Plus, oder die all in one gestures für Firefox funktionieren bei mir ohne Probleme mit Firefox 3.

Der Trick um die Addons zur Arbeit mit Firefox 3 zu bewegen ist relativ simpel: "about:config" in die URL Leiste eintragen. Dort einen neuen (boolean) Key anlegen "extensions.checkCompatibility" auf "false" setzen.

Nach einem Neustart funktionieren dann viele der alten Plugins und Addons auch mit dem aktuellen Firefox 3!

Mozilla Sunbird und Lightning in neuer Version

7 April 2008

Wie Golem berichtet gibt es - nach fünf Monaten Wartezeit - endlich eine neue Version der Kalendaranwendung Sunbird und des zugehörigen Addons für Mozilla Thunderbird: Lightning.

Die gerade erschienene Version 0.8 bringt neue Features, ein aufgeräumteres userinterface und Stabilitätsverbesserungen. Eine Version für 64bit Linux ist leider nicht verfügbar, dürfte sich aber demnächst hier einfinden: Mozilla Contrib.

phpMyId und PHP mittels FastCGI

24 March 2008

Das kleine Script phpMyID ist ein OpenID Identity provider für einen einzelnen Benutzer. Vorteil: keine Datenbank, kein Schreibzugriff auf das Dateisystem nötig und es ist schnell einzurichten.
Allerdings hatte ich Probleme, das Script auf einem Server mit PHP über FastCGI zu verwenden, obwohl das FastCGI Modul extra so konfiguriert ist, dass der Authorization Header (Apache 2.2) weitergereicht wird:

FastCgiConfig -pass-header Authorization

Trotzdem funktionierte das Script nicht wie gewünscht:
Missing expected authorization header.

Sailfin: Java EE on SIP

22 March 2008

Auf Dzone findet sich dieses interessantes Interview zum Thema Sailfin: SailFin: When Java EE Met SIP
Sailfin ist ein Sun Projekt um Java und Telefonie auf Basis des SIP Protokolls zusammen zu bringen. Der Hintergund von Sailfin ist dabei die Glassfish Infrastruktur zu nutzen, um Clustering und Hochverfügbarkeit zu realisieren. Gerade im Telefonieumfeld sind Menschen Ausfällen und Störungen gegenüber eher empfindlich eingestellt.

Zend Framework 1.5 für PHP 5 veröffentlicht

17 March 2008

Zend hat das Zend Framework in der Version 1.5 veröffentlicht.
Nachdem der Launch einige Male verschoben wurde, ist jetzt zeitgleich auch eine neue Version der Zend Framework Webseite online. Die Webseite soll dem häufig geäußerten Kritikpunkt Rechnung tragen, dass das Zend Framework für neue Anwender zu wenig auf das optische Erscheinungsbild und Einstiegshilfen Wert gelegt hat.
Dies schlägt sich nun in neuen Quick Start Tutorials und Webcasts nieder, sowie einer "Web 2.0" Optik der Webseite.

Java auf den iPhone von Apple

8 March 2008

Wie infoworld berichtet, gibt es seitens Sun Microsystems Pläne mittels des Apple iPhone SDK auch Java auf das iPhone zu portieren.
Frühestens mit Erscheinen des iPhone SDK von Apple will Sun dann zur iPhone Firmware 2.0 auch ein Java bereitstellen.
Zumindest das Java Mobile Edition (J2ME) soll bald bereitstehen, um auch das iPhone als Plattform für Handy-Games und Programme zu unterstützen.
JavaSE (Standard Edition) und JavaFX sind ebenfalls für das iPhone geplant.
Sollte Java FX wirklich kommen, könnte sich durch das JavaFX über das iPhone wirklich als attraktive Flash Alternative platzieren.

Google: Sicherheitslücken in Android SDK

5 March 2008

Google hat mit dem Android SDK nicht nur eine Entwicklungsplattform für das Android zur Verfügung gestellt - sondern gleich einen Haufen an Sicherheitslücken.
Wie die eWeek berichtet, enthält das Android SDK nämlich mehrere veraltete OpenSource Bibliotheken zur Bildverarbeitung - hier waren in der letzten Zeit öfter oeberläufe und mögliche Sicherheitslücken entdeckt worden.

Eclipse RCP/SWT Fehler java.lang.UnsatisfiedLinkError: no swt-mozilla-gtk

2 March 2008

Gerade wenn man mit neueren Firefox oder xulrunner Versionen experimentiert passiert es schnell mal, dass einem das xulrunner Paket abhanden kommt.
Programme wie rssowl die SWT basierend sind und die Mozilla (Geckoy) Rendering Engine verwenden verabschieden sich dann mit einem Stacktrace wie:

PHP Basic Authentication und FastCGI mit Apache2

25 February 2008

PHP, Apache2 und FastCGI bringt neben ein paar Annehmlichkeiten einen Haufen Probleme mit. So funktioniert z.B. die gewohnte WWW-Authenticate "Basic Authentication" nicht mehr wie gewohnt.
Das wird durch verschiedene Faktoren bestimmt:
Das mod_fastcgi muss so konfiguriert werden, dass die entsprechenden Header weitergereicht werden. Bei Apache 1 ist es HTTP_AUTHORIZATION - Apache2 verwendet den standardkonformen "Authorization" HTTP Header.
Dafür sieht dann die FastCGI Konfiguration etwa so aus:

FastCgiConfig -pass-header Authorization -pass-header HTTP_AUTHORIZATION

PHP - zumindest in der aktuellen Version - wertet diesen Header offenbar nicht aus.
Dazu bedarf es dann eines kleines PHP Snippets als Workaround. Oder Zend behebt das Problem mal.

if (isset($_SERVER['Authorization']) && !empty($_SERVER['Authorization']))
{
    list ($type, $cred) = split (" ", $_SERVER['Authorization']);

    if ($type == 'Basic')
   {
        list ($user, $pass) = explode (":", base64_decode($cred));
        $_SERVER['PHP_AUTH_USER'] = $user;
        $_SERVER['PHP_AUTH_PW'] = $pass;
    }

}
Der Rest funktioniert dann wie gewohnt.

Der beste Packer zur Komprimierung - Klimaschutz auf kernel.org

18 February 2008

Der beste Packer - vermutlich eine Diskussion wie emacs vs. vi, doch kann man im Gegensatz zu Editoren ein paar Tests anstellen und das ganze objektiv unter die Lupe nehmen.
Gesagt getan, es geht darum den Packer mit der besten Kompression zu finden. Oder doch nicht? Nach intensiver Beschäftigung mit der Problematik (und ersten Ergebnissen wie hier Compression: gzip vs bzip2 vs 7-zip) kommt man zu dem Ergebnis, dass es verschiedene Faktoren gibt, die den Einsatz des Verfahrens bestimmen.

Swap Größe / Größe Auslagerungsdatei richtig bestimmen

17 February 2008

Bei der Windows Auslagerungsdatei bzw. Linux Swap Space handelt es sich um virtuellen Speicher. Virtueller Speicher dient dazu, den physisch "echt" vorhandenen Speicher in Form von RAM zu ergänzen. Es wäre schön, wenn man statt den relativ teuren RAM Modulen einfach 100GB Auslagerungsspeicher einstellen könnte und sich nie wieder Sorgen um die Größe des Speichers machen müßte.

phpMyAdmin: blowfish_secret Fehler nach Update

11 February 2008

Es gibt Tage, da fällt man vom Glauben ab: Ubuntu (und Debian) sind in meinen Augen stets bei Updates sehr zuvorkommend gewesen.
Das phpMyAdmin Update hat mich jedoch belehrt, etwas weniger in Ubuntu zu vertrauen, und öfter mal selber aufzupassen.
Nach dem Update konnte ich mich bei phpmyadmin nicht mehr anmelden, einzig die Fehlermeldung "blowfish_secret needed" kam ständig - und auch eine Anpassung der config.inc.php von phpMyAdmin um diese Zeile $cfg['blowfish_secret'] = ''; half leider nicht weiter.
Was dann weiter half - nach einer halben Stunde des Grübelns war diese "nderung: $cfg['blowfish_secret'] = 'foo=true';

Ist auch besser, den Menschen das Denken zu ersparen.

phpbb3 mit php als cgi: malformed header from script

11 February 2008

Wer sein phpbb3 zusammen mit einem PHP das über CGI angesprochen wird betreibt, kann eine oeberraschung erleben: Bilder funktionieren nicht richtig, und in der Logdatei tauchen Einträge der Form

malformed header from script. Bad header=Not Modified: file.php, referer:

auf. Die Lösung: die Zeile

header('Not Modified', true, 304); ist zu ersetzen durch header("HTTP/1.1 304 Not Modified", true, 304); und anschließend klappt es korrekt. Der Hintergrund ist wohl, dass die andere Schreibweise im header Aufruf lediglich mit PHP als Apache Modul funktioniert, weil der Apache die kurz-Notation "Not Modified" unterstützt, und daraus den RFC2616 konformen Header mit Status 304 macht.

Update:
Die korrekte Lösung sollte so aussehen - und das gilt wohl für alle, die vorhaben mit PHP conditional GETs zu unterstützen:

if (php_sapi_name()=='CGI') { header("Status: 304 Not Modified"); } else { header("HTTP/1.0 304 Not Modified"); }

PHP Forum Supportforen Ziel von Angriffen

5 February 2008

PHPbb.de war das erste Forum, welches meldetet, dass Benutzerdaten ausgespäht wurden. Der Meldung nach klingt es, als sei Zugriff auf die zugrundeliegende Datenbank genommen worden, und ein Datenbank-Dump gezogen worden.
Angeblich handelt es sich nicht um einen Fehler im phpBB, sondern um eine andere Lücke, die ausgenutzt wurde.
Dann folgten in rascher Abfolge Meldungen von ausgespähten Daten im Woltlab Burning Bord (WBB) Supportforum, nachdem das WBB Forum Opfer gezielte Angriffe wurde.
Nun meldet auch das Supportforum des Simple Machines Forum (SMF), dass hier Zugriff auf die Datenbank genommen wurde.
Drei gehackte Supportforen von PHP Forum Software innerhalb einer Woche? Das klingt sehr nach einem gezielten Angriff in meinen Augen - oder aber, dass nach der Veröffentlichung des Einbuchs im phpBB Supportforum die anderen ihre Logdateien genauer geprüft haben.
Bei allen Foren gilt, dass die Passwörter nicht im Klartext gespeichert wurden - jedoch gerade einfache Passwörter relativ einfach erraten werden könnten. Daher sollten Benutzer der jeweilligen Foren ihre Zugangsdaten sicherheitshalber überall ändern - ganz besonders, wenn das verwendetet Passwort bei einigen Diensten gleich ist.

Software für Code Reviews

24 January 2008

Code reviews sind so eine Sache - die wenigstens Entwickler entwickeln für eine Code Review großen Enthusiasmus. Zu allem oeberfluß kommt noch hinzu, dass neben der zu erwartenden Mäkelei am Source-Code auch die Unterstützung durch Review Software nicht gerade üppig ist.
Gerade wenn es um den Bereich "OpenSource", Startup-Unternehmen oder andere Bereiche, in denen nicht viel Geld in der Kriegskasse ist, geht, wird die Luft schnell dünn.
Die Entwickler der Virtualisierungslösungen Vmware hatte zwar weniger mit dem finanziellen dafür um so mehr mit dem technischen Aspekt zu kämpfen, dass keine Code Review Software für ihre Zwecke geeignet war. Als Ergebniss schufen sie Review Board, eine bei Google-Code gehostete Open Source Review Software, die vollständig über den Browser (natürlich mit Ajax) zu bedienen ist.

Head First Software Development

22 January 2008

Head First Software Development ist das neueste Buch aus der Headfirst Reihe bei O'Reilly. Der deutsche Titel dürfte dann "Softwareentwicklung von Kopf bis Fuß" werden, sobald das Buch auf dem deutschen Markt erscheint. Ich habe das Buch auf englisch und möchte es jedem ans Herz legen.

Thinkpad: Bluetooth unter Ubuntu Linux aktivieren

18 January 2008

Wenn man nur Ubuntu / Linux auf einem Thinkpad, z.B. dem Thinpad T40p installiert hat, kann es knifflig werden, das Bluetooth zu aktiveren.
Fn+F5 hat nämlich nicht unbedingt die gewünschte Funktion - ist Bluetooth erstmal aus, bekommt man es somit nicht wieder aktiviert. Leider läßt auch das Thinkpad Bios eine Bluetooth Option vermissen.
Abhilfe schafft dieser Befehl in der Kommandozeile: sudo echo enable > /proc/acpi/ibm/bluetooth Um komfortabel Bluetooth zu nutzen sollten die Pakete
gnome-vfs-obex bluez-gnome
installiert sein.
Das Deaktivieren von Bluetooth geht dann übrigens mittels "disable". Je nach Laptop Hersteller kann es noch weiter Möglichkeiten geben, Bluetooth zu aktivieren oder zu deaktivieren, z.B. einen Schalter am Laptop. Auch hier gilt: Einfach ausprobieren!

Sun kauft MySQL: Eine Milliarde Dollar

16 January 2008

Sun Microsystems (Börsenzeichen "JAVA") hat den schwedischen Hersteller von MySQL gekauft - für eine Milliarde Dollar. (Davon lediglich 800 Millionen in bar, der Rest in Aktienoptionen.)
Interessant ist der kauf von MySQL insbesondere, da MySQL ursprünglich dieses Jahr an die Börse wollte - und Sun sich bisher mit dem Support von Postgresql hervortat.
Wie die genaue Geschäftsstrategie von Sun mit MySQL zkünftig aussieht, kann derzeit wohl nur spekuliert werden. Auf jeden Fall soll das Open Source Datenbank-Management-System weiterhin kostenlos für verschiedene Plattformen verfügbar sein.
Ich persönlich hätte mir eher mehr Schub für Postgresql gewünscht - jedoch kann man die Augen nicht davor verschließen, dass für bestimmte Bereiche MySQL derzeit einfach das DBMS ist. Auch nicht wenn man Sun Microsystems heißt.

MapReduce library für Ruby: Skynet

6 January 2008

Wer by Skynet "Terminator" denkt liegt nicht ganz falsch.
Die Skynet Bibliothek stellt ein "selbsterweiterndes, fehlertollerantse und vollständig verteiltes" System bereit, um rechenintensive Aufgaben zu verteilen.
Es handelt sich hierbei nicht um einen Hadoop Wrapper oder ähnliches, sondern um eine 100% Ruby Implementierung der von Google vor einiger Zeit vorgestellten Map/Reduce Herangehensweise.
Das Skynet Konzept basiert dabei auf einer Messagequeue, in die "Tasks" eingestellt werden können. Als Messaging Systeme werden derzeit TupleSpace und Mysql (sic!) unterstützt.
Skynet geht dabei konzeptionell so vor, dass es keine dedizierten Master oder Slave Knoten gibt, sondern lediglich worker. Diese können aufeinander "aufpassen" und einspringen, wenn einzelne Worker versagen. Geht man von einer redundanten Auslegung der Messagequeue aus, so hat Skynet keinen "single point of failure" und soll sich sehr einfach in eigene (Rails) Anwendungen integrieren lassen.

Subversion (svn): Änderungen/Löschung rückgängig machen

25 December 2007

Subversion ist das wohl am meisten eingesetzte Versionsverwaltungssystem neben CVS - ich verwalte quasi alles von Webseiten bis hin zu Software, die ich entwickle mit der Subversion Software.
Durch ein Mißgeschick ist jedoch schnell mal etwas gelöscht, eine falsche "nderung per comit ins Subversion übermittelt.
Ist erstmal etwas im Subversion gelöscht oder umbenannt ist, ist die gute Frage: Wie stelle ich den andere n Zustand wieder her, ohne dabei die Historie zu verlieren? (Denn sonst könnte man einfach eine alte Version auschecken und die Dateien in die aktuelle Version wieder aufnehmen.)
Die Lösung findet - natürlich - im Subversion Buch im Kapitel "typische Anwendungsfälle".
Es gibt in der Tat sogar zwei Wege zum Ziel zu kommen:

  • Reverse Diff um einen ganzen Commit im Subversion rückgängig zu machen
  • svn copy um nur Teile eines commits überzukopieren (wenn man nicht alles rückgängig machen möchte)

Für den reverse diff sieht das Vorgehen in etwa so aus:
svn merge -c -1234 http://example.com/repo/trunk

Für eine Kopie (teilweises rückgängig machen) sieht das in etwa so aus
svn copy -r1233 -m "svn wiederherstellung" http://example.com/repo/trunk/ordner/kaputt@1233 http://example.com/repo/trunk/ordner/

Dabei ist 1234 die Version in der etwas kaputt gemacht wurde, 1233 die wo noch alles in Ordnung ist.
In Eclipse geht das ganze auch mit GUI Unterstützung, z.B. in Subversive indem man "merge" verwendet. Als "start revision" wählt man die Version in der etwas kaputt gemacht wurde (in unserem Beispiel die 1234) und als "end revision" die Version in der noch alles ok war. (Hier: 1233)
Und mit einem heilen Subversion Repository ist der Tag gerettet.

Mysteriöses Eclipse

24 December 2007

Mysteriöse Eclipse Probleme? Mylyn hat das Icon für das erweitern einer Aufgabe ("+") und das Aktivieren der Aufgabe ("o") auf dem selben Fleck?
"Open Ressource" bleibt stets leer und andere Probleme, die man am liebsten auf den Mondstand schieben würde?
Von Windows gelernt: einmal mal neu machen. Dazu bedarf es nichtmal Eclipse neu herunterzuladen und alle Plugins neu zu installieren.
Im Workspace Ordner ist ein verstecktes Verzeichnis ".metadata" - einfach wegverschieben und ggf. die Plugins zurück kopieren.
Danach war Eclipse jungfräulich und entzickt. Nächstes mal wenn ich Zeit habe, gehe ich den Problemen auch auf den Grund.
Oder nehme Idea.

DVD Wiedergabe mit Ubuntu Gutsy 7.10

23 December 2007

Wer gerne unter Gutsy DVDs anschauen möchte und CSS (decss) Probleme hat, kann ganz einfach folgendes in der Kommandozeile eingeben:

sudo /usr/share/doc/libdvdread3/install-css.sh


Hat zumindest bei einem Ubuntu Gutsy Thinkpad die Probleme behoben.

Zend Framework und PHP: Beschleunigung durch Caching

21 December 2007

Das Zend Framework etabliert sich langsam zum Framework der Wahl für PHP Applikationen. Doch gerade wenn noch nicht so viele Erfahrungen vorlieren, kann es passieren, dass der Eindruck entsteht das Zend Framework sei noch nicht reif für den Produktiveinsatz, Bugs oder Performance Probleme bei dem "großen" Zend Framework werden hier schonmal als Gründe für die home-grown-Lösung genannt.

PhpBB die dritte

14 December 2007

PhpBB, eines der am meisten eingesetzten Forensysteme überhaupt ist in Version 3 erschienen. PhpBB3 Codename "Olympus" wurde kurz nach dem ersten Release von Phpbb2 gestartet und kann damit auf eine Entwicklungszeiit von rund fünf Jahren zurückblicken.
Neu sind unter anderem Dateianhänge für Postings und Privatnachrichten, Verwarnungen, ein erweitertes Rechtesystem und ein neues Templatesystem.
Umstellungen von phpbb2 sollten relativ reibungslos ablaufen - wenn man nicht verschiedene MODs und Hacks einsetzt. Dann könnte eine Umstellung aufwendiger werden, vor allem wenn für diese Erweiterungen keine offizielle Migrationsmöglichkeit besteht.
Man darf also davon ausgehen, dass viele etablierte phpbb2 Foren noch eine Weile ihren Dienst tun werden, und vor allem für neue Foren ein phpbb3 eingesetzt werden wird.

Pidgin 2.3.0 - mit XMPP bytestream Proxy Unterstützung

30 November 2007

Pidgin Version 2.3.0 ist veröffentlicht worden - dafür wie lange es um "Gaim" ruhig war, legen die Jungs jetzt eine ganz schöne Schlagzahl vor. Prima!
Die Neuerungen gibts im Pidgin Changelog nachzulesen - das interessanteste neue Feature dürfte die automatische Erkennung von bytestream Proxy Funktionalität seitens eines XMPP Servers sein.
Später soll auch die manuelle Konfiguration von Proxies für Dateitransfer möglich sein. Gerade wenn zwei User hinter NAT oder Firewalls sitzen sollte hiermit nun der Dateitransfer besser funktionieren.

Zend Framework 1.0.3 für PHP veröffentlicht

30 November 2007

Zend hat das Zend Framework in Version 1.0.3 veröffentlicht. Auch wenn auf der Webseite noch keine Release Notes zu finden sind, kann man sich aus dem Jira Issuetracker des Zend Framework Projektes die "nderungen von 1.0.3 anschauen. Neben einigen Bugfixes gibt es auch neue Features, z.B. gibt es jetzt Unterstützung für YouTube Webservices und die Media Features der Google data API.
Download des Zend Framework unter http://framework.zend.com/download

Ich gebe noch die Release Notes aus dem Issuetracker wieder, Zend wird diese sicherlich noch auf der Webseite in einer News zusammenfassen.

Dojo 1.0.1 ist verfügbar

25 November 2007

Vom Dojo Toolkit ist jetzt die Version 1.0.1 veröffentlicht werden. Enthalten sind Bugfixes, vor allem im Shrink-Safe Javascript Kompaktifizierer.
Die API ist (Gott-sei-dank) weiterhin kompatibel zur 1.0, wie es die lediglich erhöhte Nummer im Patchlevel des Dojo Toolkits auch andeutet.

erotikfilmz.com Betrug? Erpressung? Nötigung?

18 November 2007

Ich helfe gerne, wenn ich kann. Das wissen viele in meinem Bekanntenkreis und fragen mich, wenn es um Dinge rund um den PC und das Internet geht.
In den letzten Tagen erhalte ich jedoch ungewöhnliche Anfragen: Erotikfilmz.com versendet Rechnungen per E-Mail. Und zwar keine geringen Rechnungen, erotikfilmz.com möchte 144 Euro haben, für die Nutzung von erotikfilmz.com. (Dort werden angeblich Pornodarsteller vermittelt. Auch nicht gerade die neueste Geschäftsidee.)

Babylon: Eclipse Projekt mit verschiedenen Projekt-Typen

18 November 2007

Eclipse ist ein Framework und eine IDE, verschiedenste Programmiersprachen werden unterstützt - und genau davon möchte man auch Gebrauch machen.
Z.B. einen Teil eines Projektes in Python (pydev) einen anderen Teil in Groovy und einen Teil in Java programmieren. Das ganze soll am liebsten in einem Ordner liegen, der per Subversion (subversive) verwaltet wird.

Sobald ein Projekt aber z.B. ein Python Projekt ist, kann man dies nicht mehr mit Java verwenden. Die Lösung dafür ist, das eigentliche Projekt z.B. als generisches Projekt aus dem svn auszuchecken und anschließend Projekte für die einzelnen Sprachen anzulegen.
Mein Projekt heißt z.B. "product", dann lege ich mir ein Java Projekt an "product-java" und wähle dort aus, dass ich keine getrennten source und binary Ordner möchte, gebe aber zusätzliche Source Ordner an, die berücksichtigt werden soll. (Quasi wie symbolische Links)
Ordnet man jetzt noch die einzelnen Projekte den richtigen Perspektiven zu ist die Mehrsprachigkeit elegant gelöst.

Hadoop Blog

15 November 2007

Jeremy Zawodny von Yahoo hat in diesem Posting das Hadoop Blog angekündigt. Eines der ersten Themen ist ein Video Interview bei mit Eric Baldeschwieler in dem es um Hadoop und die Beteilligung von Yahoo an der in Java entwickelten Plattform für verteiles Rechnen geht.
Ich freue mich, dass Hadoop weiter an Dynamik gewinnt!

Nokia N95: uPNP Video Streaming

5 November 2007

Das Nokia N95 hat - wie man in jedem Datenblatt nachlesen kann - uPNP Support. Das bedeutet grob gesagt, dass man das N95 nur im Wlan einklinken muss, und schon findet das Handy per uPNP verfügbare Dienste und kann sich mit diesen verbinden.
Das wollte ich gerne testen - vor allem zusammen mit dem Linux VDR wär es cool auf dem Handy per Wlan live TV zu schauen, oder zumindest die aufgenommenen Sendungen, dachte ich mir.
Windows Nero bringt einen uPNP-AV Server mit - doch mein Nokia N95 mit recht aktueller Firmware fand diesen leider nicht. (Die Windows Firewall hatte ich mal versuchsweise ausgeschaltet - aber das hat wohl nicht geholfen.)
Für Linux gibt es mittlerweile einige kostenlose (und meist spartanische) upnp Server. Meine Wahl viel auf mediatomb, dass sich unter Ubuntu sehr einfach installieren ließ. (Einfach das Paket von der Webseite laden und im Download Dialog als Ubuntu Paket installieren).
Anschließend starten, pre Webbrowser ein paar Ordner freigeben - ja und das war es eigentlich auch schon.
Das N95 findet den upnp Server, ich kann auch die freigegebenen Dateien auswählen. Um sie dann herunterzuladen. Ja, richtig gelesen - das Handy kann kein Streaming, man kann nur Dateien auf die Speicherkarte laden.

Naja immerhin. "War stets bemüht die Erwartungen zu erfüllen".

Ubuntu Gutsy: Leere Fenster bei Java Swing Anwendungen und Compiz

5 November 2007

Ubuntu Gutsy bringt vor allem neue Optik: Compiz (Fusion) sorgt für schicke 3d Effekte - aber zusammen mit Java Swing Anwendungen auch Probleme.
Zumindest drängt sich mir der Verdacht auf, denn bisher hatte ich mit Java 6 unter Ubuntu keine Probleme mit fehlerhafter grafischer Darstellung.
Das Problem äußert sich bei Java vor allem darin, dass Fenster ohne Inhalt dargestellt werden - allerdings nur bei Swing. Eclipse (bzw. SWT) basierende Anwendungen zeigen das Phänomen nicht.
Abstellen läßt sich das übrigens dadurch, dass man auf Java 7 umstellt. Bisher gibt es leider kein Ubuntu oder Debian Java 7 Package, denn Java 7 ist bisher noch "early access". (Immerhin wird Java 7 auch endlich ein 64bit Browser Plugin für Java Applets haben)
Wer die händische Installation nicht scheut, kann sich bei dem early access program von Sun bedienen.

oebrigens haben auch andere Programme wohl Probleme mit leeren oder schwarzen Fenstern, wie dieser Launpad Bug berichtet.

Da bisher nur wenige von Problemen mit leeren Fenstern oder schwarzen Fenstern unter Ubuntu Gutsy berichten, kann ich mir gut vorstellen, dass es auch auf das Zusammenspiel von AMD 64, Dual-Core bzw. Dual-Prozessor und den proprietären Nvidia Treibern bei TwinView Konfiguration ankommt.
Sicherlich eine Konfiguration die in der Konstellation nicht so oft vorkommt.

Hadoop auf Ubuntu

29 October 2007

Das Java Framework Hadoop findet immer mehr Anhänger. Und dank Amazon kann sich heute jederman auch einen Cluster zum spielen leisten, dazu gibt es das Amazon EC 2 Tutorial im Lucene-Hadoop Wiki.
Doch es geht auch gratis mit Ubuntu und dem Tutorial von Michael Noll: Hadoop on Ubuntu Linux als Einzelknoten. (Er hat auch ein Tutorial für mehrere Rechner, keine Angst)
Gerade wo sich rapide entwickelnde Bereiche (Ubuntu, Java, Hadoop) ergängen ist sicherlich noch mit spannenden Entwicklungen zu rechnen.
Jetzt ist nur noch ein gutes Ende für den ZFS Streit zu erhoffen - auch wenn Hadoop ein eigenes Dateisystem mitbringt und grundsätzlich anders ausgelegt ist, als ZFS; ZFS bietet für den Storage Bereiche so fantastische Möglichkeiten, dass hier ein großes Dankeschön an Sun fällig ist.
(Wie auch eines an Yahoo für die Hadoop Beteilligung)

Vmware Server unter Ubuntu Gtusy 7.10

22 October 2007

Nach dem Umstieg auf Ubuntu Gutsy laufen evtl. ältere Versionen von Vmware Server nicht mehr, bzw. lassen die vmnet Kernel Module nicht übersetzen.
Leider gibt es Vmware ja noch nicht als Ubuntu Pakete, daher ist selber installieren angesagt.
Die Installation von Vmware Server unter Ubuntu ist zum Glück nicht sonderlich schwer. Version 1.0.4 läuft auch problemlos mit dem Linux Kernel 2.6.22 der bei Gutsy jetzt dabei ist.
Ich habe mich für die tar.gz Version von Vmware Server entschieden, und diese einfach in der Shell installiert. Dauert rund 5 Minuten und alles läuft wieder wie unter Ubuntu Feisty.

Vmware Server ist ein kostenloses Produkt von Vmware, Download auf http://www.vmware.com/

Samba Probleme nach Ubuntu Gutsy Upgrade von Ubuntu Feisty

21 October 2007

Samba dient dazu, im Netzwerk Freigaben für Windows Rechner verfügbar zu machen. Z.B. Drucker, Home Verzeichnis und so weiter.
Dunkel kann ich mich daran erinnern - jetzt, nachdem ich die Lösung habe - dass ich Samba unter Ubuntu Feisty zwar lauffähig bekam, jedoch mit meinem Windows Rechner nicht auf die Homverzeichnisse zugreifen konnte.
Damals hatte ich lange nach einer Lösung gesucht, wie ich Samba dazu kriegen konnte die Verzeichnisse wieder zu exportieren. Der Fehler läßt sich so beschreiben: Auf "public" Verzeichnisse kann man problemlos zugreifen - jedoch nicht auf shares, die ein Passwort benötigen.
Selbst ein neues Samba Passwort zu setzen hat nicht geholfen. (smbpasswd)
Nächste Idee war Samba zu entfernen (apt-get purge samba) und neu zu installieren (apt-get install samba).
Dennoch hatte ich weiter Samba Probleme nach dem Ubuntu Update. Google konnte mir leider auch nicht weiter helfen - zwar konnte ich ein paar Bugreports in Verbindung mit Samba und Ubuntu finden, bin dann die Samba Konfigurationsdatei noch einmal durchgegangen - aber auch hier ohne Erfolg.
Ganz verzweifelt habe ich dann den Laptop neu gebootet.
Mir viel sonst einfach nichts ein.

Hat geholfen.

Ubuntu 64bit Flashplugin im Firefox

21 October 2007

Fast seit dem Ubuntu Feisty Release habe ich mich mit dem Gedanken getragen doch endlich für den Firefox Flash per Flashplugin zu installieren.
Die Herausforderung dabei lag darin, dass ich ein AMD-64 und ergo auch Linux als 64bit System laufen habe, und - wie es leider bei closed-source Software sehr oft vorkommt - kein Flash Plugin als 64bit Version zur Verfügung steht.
Die Lösung dafür ist wohl ein Wrapper der das "irgendwie" dann doch ans tickern kriegt. Naja auf Youtube und Google Analytics kann ich von meinem Windows Laptop aus zugreifen, und sonst habe ich Flash eigentlich nie vermißt.

Jetzt ist Ubuntu Gutsy 7.10 herausgekommen, und ich habe auf einer Flash Seite mal wieder den gelben Balken "Additional plugins are required to display this page..." im Firefox geklickt.
Dort hat Ubuntu ein eigenes Installations-Plugin zwischengeschaltet und das kümmert sich darum den Flash Support zu ermöglichen. Entweder über Gnash (das für Youtube reicht ;-) ) oder über ein offizielles 32bit Flash Plugin das per Wrapper eingebunden wird. Automatisch. (Da frage ich mich nur wie es mit Sicherheitsupdates aussieht - ich denke auch hier wird Ubuntu sich drumm kümmern, da das Plugin "richtig" per Package installiert wird.)

Und Flash funktioniert jetzt auf meinem 64bit Ubuntu prima - ohne große Umstände. Richtig DAU tauglich und problemfrei.
Fast.
Denn ich glaube Flash hab ich doch nicht vermißt.

Ubuntu Asterisk iLBC Codec aktivieren

20 October 2007

Ubuntu Gutsy bringt Asterisk aus dem Universe Zweig mit. Doch - wie bei Debian und vielen anderen Linux Distributionen - die DFSG (debian free software) Version von Asterisk 1.4, bei der der iLBC Support aus Lizenzrechtlichen Gründen entfernt wurde.
Jetzt habe ich kein großes Problem damit gegen die GPL zu verstoßen um den iLBC Codec im Asterisk wieder ans Laufen zu kriegen.

Asterisk: Ubuntu Gutsy Wartemusik Probleme (Music on hold stopped)

20 October 2007

Nach dem Ubuntu Gutsy 7.10 Upgrade hörte Asterisk auf Wartemusik (Music on Hold) abzuspielen. Die Meldungen waren dabei nicht gerade hilfreich:

   -- Started music on hold, class 'default', on SIP/1501-081683a8
   -- Stopped music on hold on SIP/1501-081683a8
Und natürlich absolute Stille - kein MusicOnHold().
Die Lösung: Offenbar hat der Asterisk aus Ubuntu Gutsy Universe keinen MP3 Support eingebaut. Dadurch können MP3 Music on Hold Dateien nicht abgespielt werden.
Der Workaround für mich war jetzt die Dateien einfach zu konvertieren - ich habe bei der Gelegenheit gleich mehrere Formate angelegt, so kann Asterisk je nach Channel ohne Transkodierungsoverhead auf das richtige Format zugreifen. mpg123 -s --rate 44100 --mono tones.mp3 > tones.raw
sox -r 44100 -w -s -c 1 tones.raw -r 8000 -c 1 tones.wav
sox tones.wav -t gsm -r 8000 -b -c 1 tones.gsm
Anschließend ging Music on hold auch wieder. Fehlt jetzt nur noch der ilbc codec den ich so gerne verwende.

Ubuntu Gutsy: Asterisk 1.4 Anpassung

19 October 2007

Das Upgrade des Ubuntu Feisty Servers lief ja problemlos - dachte ich. Jedoch hat sich bei dem Upgrade auf Asterisk 1.4 einiges geändert.
Zum einen gibt es "SetVar" nicht mehr - hier müssen die extensions entsprechend angepaßt werden. Zum anderen gibt es diesen kleinen aber unauffälligen Patch den Faidon Liambotis dem Debian/Ubuntu Asterisk Paket eingespielt hat:

Add ast_key_dir patch to move keys from /var/lib/asterisk/keys to /usr/share/asterisk/keys where they should be.

Blöde, wenn man nicht von jedem Paket die Changes durchließt - und beim Update dieser Fall offenbar unzureichend von der Automatik behandelt wird.
Nunja, wer sich nun fragt "Wo kommen bei Ubuntu Gutsy unter Asterisk 1.4 die Private Keys hin?" oder gar über diese nervige Fehlermeldung des Asterisk stolpert: WARNING[8711]: chan_iax2.c:7378 socket_process: I don't know how to authenticate dam sei gesagt: Einfach die Asterisk Private Keys nach /usr/share/asterisk/keys verschieben, Asterisk reloaden oder restarten und fertig.

Ubuntu Feisty Server update

19 October 2007

Jetzt ist mein Ubuntu Feisty Server drann - auch er soll jetz nach meiner Workstation von Ubuntu Feisty zu Ubuntu Gutsy (7.10) upgegraded werden. Natürlich remote hands.

Das Vorgehen ist denkbar einfach:


root@gix:~# do-release-upgrade
Checking for a new ubuntu release
Done Upgrade tool signature
Done Upgrade tool
Done downloading
extracting '/tmp/tmpiceKdr/gutsy.tar.gz'
authenticate '/tmp/tmpiceKdr/gutsy.tar.gz' against '/tmp/tmpiceKdr/gutsy.tar.gz.gpg'
Reading cache

Checking package manager

Continue running under SSH?
This session appears to be running under ssh. It is not recommended to
perform a upgrade over ssh currently because in case of failure it is
harder to recover.

If you continue, a additional ssh daemon will be started at port '9004'.
Do you want to continue?
Continue [yN] y

Starting additional sshd
To make recovery in case of failure easier a additional sshd will be
started on port '9004'. If anything goes wrong with the running ssh
you can still connect to the additional one.
Eine Weile später - und einen Reboot - läuft dann Ubuntu Gutsy statt Feisty auf dem Entwicklungs-Server. Yeah.

Ubuntu Linux: ext3 Partition vergrößern

18 October 2007

Heute kam ein Freund zu mir, der gerne komplett von Windows auf Ubuntu Linux umsteigen möchte. Ubuntu Feisty befand sich bereits auf einer Partition seines Laptops, die andere, größere Partition ist durch Windows belegt.
Jetzt möchte er gerne - am liebsten ohne Neuinstallation - mehr Platz für Ubuntu Gutsy.

Dabei bin ich so vorgegangen:
Ich habe eine Ubuntu Feisty Live CD gebootet - diese hat die nötigen Tools bereits an Bord: gnu parted
Erstmal habe ich aus seinem ext3 Journaling Filesystem wieder eine "normale" ext2 Partition gemacht:
tune2fs -O ^has_journal /dev/sda1
tune2fs -O ^dir_index /dev/sda1

Anschließend habe ich neu gebootet und die Partition mittels gparted vergrößert - natürlich als root bzw. per sudo
parted 1 0 59GB


Neustart. Und fertig ist die Linux Partition vergrößert.

Update auf Ubuntu Gutsy 7.10

17 October 2007

Morgen ist es offiziell soweit - Ubuntu 7.10, Gutsy, soll veröffentlicht werden. ( http://www.ubuntu.com/ ) Ich habe Ubuntu Gutsy bereits seit einer Weile im Einsatz - Grund genug über Erfahrungen mit Ubuntu Gutsy zu berichten.
Insgesamt ist das System subjektiv etwas flotter geworden - das mag am neuen Gnome 2.20 liegen. Das integrierte Compiz-Fusion sorgt für witzige, aber auch irgendwie angenehme Desktop Effekte.
Anders als bei Vista bekommt man bei den Ubuntu Desktop Effekten eher den Eindruck, dass diese am Mac orientiert sind. Hier greift Produktivität mit formschönen Design Hand in Hand. (Und wenn das jetzt nach Marketing klingt, so liegt das nicht zuletzt daran, dass Ubuntu als Desktop Arbeitsumgebung zumindest mich wirklich überzeugt hat.)
Bluetooth funktioniert einwandfrei - auch der Datenaustausch mit meinem Nokia N95 tut unter Ubuntu. Sehr angenehm!

Das Ubuntu Update selber läuft von Ubuntu Feisty sehr unspektakulär. Der Update Manager informiert darüber, dass eine neue Ubuntu Version verfügbar ist, und ob man ein Upgrade machen wolle.
Danach wird einiges heruntergeladen, auf der Festplatte gearbeitet und ein Neustart ist wegen des Kernel Updates erforderlich.
Ab da kann weitergearbeitet werden.

Lediglich die integrierte Desktopsuche, Tracker (bzw. der Tracker-Daemon trackerd) frißt ganz schön viel Performance. Hier lohnt es sich, den Start etwas zu verzögern und die Priorität herunterzusetzen.
Wie ich es von meinem System gewohnt bin, ist auch hier wieder nicht CPU oder RAM das Problem, sondern das System wird sehr träge, sobald etwas an I/O Last entsteht.
Hier werde ich ggf. nochmal Hand anlegen müssen - oder auf das nächste Ubuntu Update warten.
Das Wird übrigens "Hardy Heron" heißen. Echt mal ein übler Name.

Linux Blog Programm: Gnome Blog

17 October 2007

Zum komfortablen "zwischendurch-bloggen" habe ich für (Ubuntu) Linux ein schönes Programm gefunden: Gnome Blog.

Es dockt sich als Taskbar Applet und ermöglicht ohne viel Einstellungen oder den Start von zusätzlichen Blog Programmen schlicht und einfach genau was man zum Bloggen benötigt.

Wer viel bloggt, oder lieber ein Desktop Programm zum Bloggen haben möchte, statt sich mit der Wordpress, Blogger oder sonstigen Weboberfläche zum Bloggen abzugeben, sollte einen Versuch wagen.

Ubuntu und IBM Thinkpad Fingerprint Leser

12 October 2007

Ich bin eben über das ThinkFinger Projekt gestolpert, dort wird an einem freien Treiber für die Fingerprint Reader (also Fingerabdruck Leser) gearbeitet, die sich heute in vielen Laptops finden.
So auch in meinen IBM Thinkpad und Lenovo Thinkpads. Ich denke damit hat Ubuntu wieder etwas Abstand zu Windows wett gemacht. Seitdem der Bereitschaftsmodus (Hibernation) mit Ubuntu Gutsy und den Thinkpad Laptops funktioniert, und auch 3D Grafik endlich dank Ubuntu einfach installiert ist... fehlen nur noch die handvoll Anwendungen, die "Windows only" sind.

Ubuntu Gutsy: Nvidia und Compiz GLXFBConfig Problem

12 October 2007

Ich habe heute die Beta Version von Ubuntu Gutsy Gibbon installiert und wollte da natürlich auch die neuen visuellen Effekte von Compiz-Fusion nutzen.
Leider hatte ich das Problem, dass sich die Effekte nicht aktivieren ließen. Erstmal habe ich von Xinerama auf TwinView bei meiner Nvidia Karte umgestellt.
Doch noch immer tat Compiz mit Ubuntu Gutsy nicht - es gab die Fehlermeldung, dass für die Farbtiefe keine GLXFBConfig vorhanden sei.
Die folgenden zusätzlichen Einträge in der X11/xorg.conf haben dann geholfen:
    Option         "AddARGBGLXVisuals" "True"
    Option         "DisableGLXRootClipping" "True"
Anschließend tat Compiz Fusion fehlerfrei mit der Nvidia Karte unter Ubuntu! Und es sieht schick aus.

Wem die normalen Effekte alleine nicht reichen, dem sei dringend ans Herz gelegt compizconfig-settings-manager zu installieren.
Anschließend sind wirklich alle compiz Effekte unter ubuntu einfach konfigurierbar. Aber nicht erschrecken: Es existieren wirklich viele Konfigurationsmöglichkeiten für Compiz - Ubuntu weiß schon warum diese nicht standardmäßig in der Konfiguration zu sehen sind.

Die Konfiguration der Compiz Effekte erfolgt dann übrigens genauso einfach wie man es von Ubuntu gewohnt ist: Rechtsklick auf den Desktop und die Anzeigeoptionen aufrufen.
Hier ist nun der zusätzliche Eintrag "custom" bzw. die entsprechende oebersetzung der Compiz Konfigurationsoption.

Lively Kernel: Sun Research projekt für Web Applikationen

8 October 2007

Lively ist ein Sun Research Projekt, welches die Entwicklung von Web Applikationen vereinfachen soll. Das ist nichts besonders neues, schließlich gibt es zig Frameworks, die Web Anwendungen leichter erstellbar machen sollen.
Lively möchte sich dabei abheben, und es ermöglichen per Web Anwendungen zu verteilen, die sich wie "richtige" Desktop Anwendungen verwenden lassen.
Wie Golem berichtet, wird in Lively das Morphic Framework, ebenfalls ein Sun Produkt, verwendet um grafische Effekte zu realisieren. (Morphic bzw. Lively setzt deswegen auch SVG Support vorraus, so dass der IE 6 nicht mit Lifely verwendet werden kann.)

Lively setzt stark auf JavaScript und Ajax auf, benötigt aber keine speziellen weiteren Komponenten oder Plugins, allerdings wird ein wirklich aktueller Browser vorrausgesetzt. Richtig gut und performant läuft Lifely wohl lediglich auf Safari 3.0. Sollte sich daran nichts ändern ist damit bereits die Todgeburt von Lifely besiegelt: Keiner wird eine Anwendung für den großflächigen Einsatz auf Basis eines Frameworks entwickeln, dass "bleeding edge" Browser vorraussetzt.

Es handelt sich zugegebenermaßen auch noch um ein Forschungs und Entwicklungsprojekt von Sun, so dass man gespannt sein darf, wie finale Produkte aussehen werden.
Sicherlich wird die GUI so anpassbar sein, dass diese nativ aussieht - auch hier sollte man aus der Java Swing Erfahrung lernen und keine User verärgern.

Vergleichbare Frameworks wären GWT, das Google Web Toolkit, welches sich ebenfalls auf die Fahnen geschrieben hat, Webanwendungen leichter und Desktop-artiger zu ermöglichen.
Bei GWT sieht man auch sofort, dass es sich nicht um ein "Spielprojekt" handelt, sondern GWT im Vergleich zu Lifely entwickelt wurde, um auch direkt eingesetzt zu werden. GWT ist schnell, funktioniert und hat eine gute IDE Integration.
Dennoch setzt Lifely sicherlich interessante Aspekte, und die ersten Ajax Anwendungen waren auch nicht der große Wurf.

Links:
Lively Homepage
Lively direkt ausprobieren

MonoDevelop: Beta 1 der Mono / .net Entwicklungsumgebung

7 October 2007

Etwas an mir vorbeigezogen ist die Beta 1 Release Versoin von MonoDevelop. Nach dem Feature Freeze der kostenlosen Entwicklungsumgebung für Mono, einer freien Implementierung von .NET, möchten sich die Entwickler vor allem auf Bugfixing konzentrieren.
MonoDevelop konzentiert sich vor allem auf C# Entwicklung, und wird als inzwischen recht einsatztauglich beschrieben. Natürlich kommt es an das VisualStudio von Microsoft nicht heran - doch z.B. für den Linux Desktop gibt es derzeit keine Alternativen.
Die kostenlose Entwicklungsumgebung kann als Binärpaket oder im Quellcode von monodevelop.com heruntergeladen werden.

Maven2: javax transaction jta missing - not really.

27 September 2007

Nicht wirklich trifft es ausnahmsweise sehr gut. Wer sich bei einem Maven Projekt wundert, dass scheinbar in allen bekannten Maven2 Repositories Artefakte fehlen könnte auf die Idee kommen, einen Bugreport zu fehlenden Jar Files aufzumachen.

Leider ist die Fehlermeldung auch nicht gerade Anwenderfreundlich, hier am Beispiel von javax.transaction:jta:jar dargestellt:

[INFO] Failed to resolve artifact.Missing:
1) javax.transaction:jta:jar:1.0.1B
Try downloading the file manually from:
http://java.sun.com/products/jta


Gerade das manuelle Herunterladen von Artefakten soll einem Maven2 ja abnehmen - ein Blick in das Repository offenbart auch, dass dort alles für jta vorbereitet - lediglich das jar fehlt.
Das ist jedoch Absicht - denn die Sun Java Binary Lizenzen verbieten die Redistribution der Jar Files. Deswegen werden lediglich Meta-informationen im Maven Repository gehalten, die immerhin mitteilen wo man manuell die benötigten Dateien herunterladen kann. Leider mit der bereits erwähnten nicht gerade hilfreichen Fehlermeldung und einem fehlgeschlagenen Maven Build. Weitere Informationen dazu gibt diese Maven Webseite.

Abhilfe kann hier übrigens ein eigenes, privates Maven Repository schaffen, in das man z.B. JavaMail und Java Activation Jars einpflegt. Vor allem wenn man mehr als eine Workstation mit Maven betankt, automatische Builds auf Servern erledigen möchte oder Arbeitsgruppen versorgen möcht, lohnt der Aufwand ein eigenes Maven Repository aufzusetzen.

Firefox Rechtschreibprüfung: Auch alte deutsche Rechtschreibung!

25 September 2007

Firefox hat neurdings (naja seit Firefox 2) eine Rechtschreibprüfung für Text-Felder. Das ist fürs Bloggen sehr praktisch, aber auch für Foren und andere Dinge.
Wer den englischen Firefox installiert hat, hat nicht automatisch auch die deutsche Rechtschreibung in der Rechtschreibprüfung installiert. Daher gibts es weitere Wörterbücher für Mozilla Firefox zum download hier.
Was mich sehr angenehm überrascht hat ist, dass (daß) es auch die alte deutsche Rechtschreibung dort gibt.
Oder sollte ich sagen: Die richtige deutsche Rechtschreibung?

PHP ide: Eclipse für PHP Entwicklung

20 September 2007

Das Eclipse Plugin PDT, ehemals PHP-ide als defacto Nachfolger für phpeclipse von Zend entwickelt, ist nun in Version 1.0 erschienen!
Das Eclipse Plugin PDT erweitert Eclipse um PHP Entwicklerfunktionen. Syntax Highlighting, PHP auto-completion , Zugriff auf die PHP Hilfe und Funktionsreferenz.

Damit wird Eclipse ein Stückchen mehr das Google für Entwickler.

Opera für Ubuntu Linux 64bit

15 September 2007

Opera gibts bisher nur in der i386 Version auf der Opera Homepage zum Download. Sehr schade - sind doch sogar Opera Debian/Ubuntu Packages dabei.
Doch die derzeit in Entwicklung befindliche Version von Opera, nämlich Opera 9.5 (Kestrel) gibt es auch als x86_64 Linux Version. (Die dann mit meinem amd64 Rechner unter Ubuntu zusammenarbeit)

Die Installation von Opera auf Ubuntu Feisty 64bit ist denkbar einfach: Auf der Opera-Labs Webseite einfach die .deb Datei auswählen und mit dem graphischen Installationstool für Debian Pakete unter Ubuntu installieren. Läuft.
Und ist schnell!

Ubuntu Feisty Hylafax: Leere PDF Datein in FAX Mail

4 September 2007

Nachdem ein kleiner lokaler Fax Server auf Ubuntu Linux Basis mit Hylafax und AVM Fritz Capi als Fax-Gerät von Ubuntu Dapper auf Ubuntu Feisty upgegraded wurde tat alles - bis auf Faxempfang.
Nachdem Hylafax via capi-faxreceive ein Fax angenommen hatte, wurde korrekt eine E-Mail versandt, jedoch war die im Anhang befindliche PDF Datei einfach leer.
Ein kurzer Blick in das Hylafax Receive Verzeichnis von Ubuntu Feisty ergab sofort: Das Fax wurde per Capi korrekt empfangen, es musste irgendwie an der PDF Konvertierung liegen...
Irrtum! Der Grund für die leeren PDF Dateien der Faxmail liegt in diesem Ubuntu Feisty Bug - ändert man wie im Ubuntu Bugreport beschrieben die BASE64ENCODE Zeile der Datei setup.cache funktioniert es wie am Schnürchen: Faxempfang mit AVM Fritz Card, Capi und Hylafax - und auch die Faxemail mit PDF Anhang.
Nächstes mal lese ich die Ubuntu Bugs bevor ich in die Innereien von Hylafax und PDF Konvertierungen einsteige...


Hier nochmal die zu ändernde Datei von Hylafax: /etc/setup.cache
Eintrag von BASE64ENCODE muss lauten: BASE64ENCODE='/usr/bin/uuencode'

Anschließend unbedingt das Ubuntu Feisty Hylafax neu starten ( /etc/init.d/hylafax restart ) - erst dann werden geänderte Konfigdateien in das Hylafax chroot Verzeichnis kopiert.

Warum Thomas unten durch ist - der goldene Hammer

16 August 2007

Ich lese hin und wieder sehr gerne verschiedene Blogs - darunter sind natürlich "ganz große" wie das lawblog, aber auch verschiedene kleinere, spezialisierte Blogs regen immer wieder zum Lesen an.
So z.B. auch das Blog von Thomas, der sich in meinen Augen jedoch mit diesem Posting völlig disqualifiziert hat. Ich habe schon überlegt, ob sein Account vielleicht gehackt wurde, er einfach völlig betrunken war, oder von Aliens geclont wurde.
Stein des Anstoßes: Grundlagenentbehrendes marketing-blabla gewürzt mit einer Prise Bashing. Der Artikel beginnt mit der offen gestellten Fragen, warum Thomas seiner Begeisterung für das .net Framework von Microsoft Ausdruck verleihen muß. Beantwortet wird die irgendwie mit "weil die Philosohpie aufgeht".
Ich möchte auf keinen Fall Thomas hier auseinander nehmen, eher möchte ich meiner Enttäuschung über diesen Beitrag in einem sonst so gern gelesenen Blog ausdruck verleihen. Von seinen Kommentaren mal ganz zu schweigen...

Dennoch nehme ich den Beitrag einmal als Anlaß für eine Nachbetrachtung der Argumentation. Ich beschränke mich dabei nicht auf Microsoft Technologien und werde auch meine Meinung zu einigen Kommentaren darstellen.

Also .net ist deswegen so gut, weil man damit in der Windowswelt schier unbegrenzte Möglichkeiten hat und weil die Philosophie von Microsoft, dem Entwickler ein umfassendes Toolkit an die Hand zu geben, mehr und mehr aufgeht.

Anders formuliert: .net ist deswegen so gut, weil man außerhalb der Windowswelt quasi keine Möglichkeiten hat, und es außer Microsoft keinen Hersteller für .net Tools gibt. Ganz so schlimm ist es natürlich nicht, und die Umkehrung ist keine logische Schlußfolgerung, aber sie verdeutlicht doch die wesentlichen Aussagen, die die Begründung für ".net ist so toll" liefern sollen.
Außerhalb der Windows welt entwickelt sich langsam Mono - auch mit Unterstützung von Microsoft. Das ist auch gut so, denn ich möchte meine Investitionen in eine Umgebung nicht auf eine Plattform festlegen müssen, die von einem Hersteller kontrolliert wird.
Dabei geht es mir nicht nur um die erstellen Programme, sondern vielmehr um das Knowhow (Tools, API, Framework, Prozesse), dass ich mir mit der Zeit aneigne - da steckt Lebenszeit drinn, und die ist teuer!


Gehen wir die unbegrenzten Möglichkeiten der Technologie weiter durch:

  • Entwicklung von (Enterprise-) Webanwendungen mit ASP.NET 2.0.
    Fein. Alternativen dazu gibts natürlich, Java, PHP - aber setzt man auf PHP zieht das Argument, dass man mit verschiedenen Technologien hantieren muss.
  • Entwicklung von Desktop-Applikationen mit WinForms und/oder WPF.
    Für Windows. Mit Java kann ich auf Basis von Eclipse RCP oder Swing (und verschiedenen Toolkits) arbeiten und alle Plattformen mit Java bedienen
  • Entwicklung von Rich-Media- und Rich-Gui-Anwendungen mit Silverlight (bald).
    Hier gibts wohl als vernünftige Alternative erstmal nur Flash, evtl. später JavaFX - für alle Plattformen auf denen es Flash oder Java gibt
  • Entwicklung von Windowsdiensten.
    Mit Java kann ich Dienste für alle Plattformen entwickeln.
  • Entwicklung von kommandozeilenbasierten Tools.
    Für Windows. Ich wiederhole mich nur ungern, aber Java...
  • Entwicklung von komplexen Datenbanklösungen.
    Auf einem Windows Rechner? Jeder, wie er mag. Mit Java kann ich mich später umentscheiden, wenn ich ein größeres Eisen benötige.
  • Entwicklung von mobilen Anwendungen für Telefone und PDAs.
    Nur für Geräte, die das supporten. Gerade im Konsumerbereich ist Java quasi der Standard. Und wenn ich mir anschaue, womit Jamba - und Zulieferer - stinkenreich geworden sind, so ist das nicht WindowsCE

Also was hier so nach "das geht nur mit Microsoft Technologien" klingt, ist eher Marketinggetrommel. Sicherlich ist es schön mit einer Technologie zu arbeiten - eben das reizt mich ja an .net und Java - jedoch finde ich es etwas kurzsichtig etwas pauschal über den grünen Klee zu loben.
Meiner Meinung nach bedarf soetwas einer differenzierten Betrachtung, denn es gibt einfach keinen goldenen Hammer. Für richmedia ist einfach Flash derzeit Mittel der Wahl. Für Handyspiele ist es Java ME.
Und bei Java ist gerade die Offenheit, die Community mit dem Haufen an Frameworks und Lösungen ein wesentlicher Pluspunkt. Ja, ich möchte mich mit verschiedenen Tools auseinandersetzen, und für mich einen Mix zusammenstellen, der meine Bedürfnisse am besten absteckt.

Immer wieder gibt es Diskussionen zwischen mir und Stefan, ob IntelliJ Idea oder Eclipse "besser" ist. Verschiedene Blickwinkel, verschiedene Ansätze sind wichtig und machen einen flexibel. (Abgesehen davon halte ich Visual Studio ohne Resharper für quasi unbenutzbar)

Unflexibel stellt sich mir Thomas an dem Punkt dar, an dem es darum geht, dass man Plugins für Visual Studio haben möchte, namentlich für Subversion (SVN). Thomas argumentiert, dass er das lieber über den Explorer (Dateibrowser von Windows) macht, als über die IDE.

Dafür gibt es viele Gründe, Stichwort Tellerrand. So kann man z.B. bequem Files einchecken bzw. verwalten, die in der eigentlichen Solution nichts zu suchen haben (Ressourcen, Dokumente, Grafiken, whatever), und man muss nicht die IDE starten um das Repository zu aktualisieren bzw. etwas hinzuzufügen.


Tellerrand? Gute Güte!
Ich habe im Eclipse SVN Support über Subversive, benutze unter Windows zusätzlich Tortoise und unter allen Plattformen Kommandozeilentools. Denn je nach Anwendungsfall möchte ich gerne optimal arbeiten können. Es gibt nämlich - noch immer - keinen goldenen Hammer.

Ubuntu Server: Edgy zu feisty upgraden

7 August 2007

Wie updated man einen Ubuntu Server "richtig"?
Da ist einmal das debian-like edit /etc/apt/sources.list und dann ist da noch der "ubuntu way". Ich habe mich für den Ubuntu-way entschieden, und dokumentiere das hier einmal:

sudo apt-get install update-manager-core

Installiert den update Manager von Ubuntu. Anschließend führt man das upgrade aus:

sudo do-release-upgrade

Ab hier wird es etwas knifflig, wenn man keinen lokalen Zugriff auf den Ubuntu Server hat. (Und das dürfte meistens so sein, denn Server stehen für gewöhnlich nicht unterm Schreibtisch.)
Damit für den Fall, dass etwas schief geht, remote Managemant noch möglich ist, startet der Ubuntu Upgrade Manager noch einen zusätzlichen ssh Dämon.

Checking for a new ubuntu releaseDone Upgrade tool signatureDone Upgrade toolDone downloading            extracting '/tmp/tmpCXfuuv/feisty.tar.gz'authenticate '/tmp/tmpCXfuuv/feisty.tar.gz' against '/tmp/tmpCXfuuv/feisty.tar.gz.gpg' Reading cacheChecking package managerContinue running under SSH?This session appears to be running under ssh. It is not recommended to perform a upgrade over ssh currently because in case of failure it is harder to recover.If you continue, a additional ssh daemon will be started at port '9004'.Do you want to continue?Continue [yN]

Dann kommen nochmal die "üblichen" Warnungen

You have to download a total of 250M. This download will take about 31 minutes with a 1Mbit DSL connection and about 9 hours 42 minutes with a 56k modem.Fetching and installing the upgrade can take several hours and cannot be canceled at any time later.

Und dann gehts auch los.
Und dann wars auch fertig. Bin auf den ersten Reboot gespannt :-)

Nokia N95: Eigene SSL CA importieren

4 August 2007

Das Nokia N95 störte sich - und ich mit ihm - daran, dass es meine SSL Zertifikate nicht auf validität prüfen konnte. Hintergrund war, dass ich eine eigen CA erstellt habe, die meine SSL Zertifikate unterschreibt.
Jetzt hatte ich die schlaue Idee, einfach das CA Zertifikat in mein Handy zu importieren und als vertrauenswürdig zu deklarieren. (Ich weiss ja, was ich unterschreibe)

Die Umsetzung sollte dabei so aussehen: Ich gehe einfach mit dem Handy Browser auf eine Seite, wo ich das Zertifikat abgelegt habe, importiere es, und fertig.
Leider hat das Handy stets gesagt die Datei sei beschädigt ("Certificate file corrupt").

Die Lösung: Das Nokia N95 akzeptiert das Zertifikat nur im DER Format. Mittels OpenSSL ist das schnell konvertiert:

openssl x509 -outform der -in ca-cert.pem -out ca-cert.crt

Danach einfach mit dem Nokia N95 laden und importieren.

Ubuntu ist Geld wert

4 August 2007

Ubuntu hat für Feisty Fawn, dem von mir derzeit eingesetzten Desktop-Linux wieder ein paar Sicherheitsupdates herausgegeben. Wenn ich mir so anschaue, wie wenig Wartungsaufwand das System für mich als Anwender bedeutet, bin ich immer wieder begeistert.

Natürlich muss auch bei einem Linux regelmäßig gewartet werden. Stichwort: Datensicherung :)
Sparen kann ich mir jedoch Virenscanner, Adware-Scanner und die damit verbundenen Updates, Problemchen - und nicht zuletzt auch Kosten!
Ubuntu Linux bedeutet für mich, ich kann einfach arbeiten, mich auf das System verlassen. Selbst wenn ich auf meine Thinkpads hinüberschiele, bei denen sich IBM/Lenovo grosse Mühe geben, dass Datensicherung und Aktualisierung von Hardwaretreibern gut gemanaged werden, so hab ich doch wesentlich weniger "rger mit meinen Linux Maschinen.

Dafür gebührt Canonical für Ubuntu, und der Linux Communiy ein grosses Dankeschön!
Der Gegenwert lässt sich kaum beziffern, aber ich gehe von einigen tausend Euro aus, die ich an Zeit und Mühe gespart habe. Ganz davon abgesehen, was mich die zusätzlichen Lizenzkosten für Betriebssystem, Office, Datenbank und Programmierumgebung ohne freie Software kosten würden.

OpenOffice PDF Import im Anmarsch

1 August 2007

Wie der Sun Mitarbeiter Kai Ahrens in seinem Blog schreibt soll OpenOffice zukünftig auch den PDF Import anbieten - Ahrens betitel dies mit der "Komplettierung des PDF Supports in OpenOffice.org". Er verspricht sich davon, dass Dinge möglich werden, die sonst entweder garnicht möglich waren, oder für die sehr teure Tools verwendet werden müssen.
Ein erster Prototyp des PDF Import für OpenOffice soll angeblich bereits in wenigen Monaten verfügbar sein.
Coole Sache!

Telepathy: Ein Framework sie alle zu integrieren

1 August 2007

Während meiner Rechere bzgl. SIP Support auf meinem Nokia 770 bin ich über das Telepathy Framework gestolpert.
Da es - wie bei Frameworks fast üblich - "alles" kann, ist mir noch nicht so klar, wofür es gut ist. Auf dem Produktkarton steht, dass es jede Form der Kommunikation integrieren können soll.
SIP, Instant-Messaging, Video calls.
Natürlich programmiersprachen-unabhängig.

Leider ist selbst das Telepathy Kochbuch noch sehr mau. Pionierzeit!

Nokia N-770 mit der 2007 "hacker" edition: SIP support?

31 July 2007

Ha, da hat man ein Nokia N-770 und freut sich, dass endlich SIP Support kommt, und was passiert? Nokia bringt dazu "passend" das N-800 heraus, und deklariert das Nokia 770 als "end of life". Klar, sind ja 2 Jahre rum.
Glücklicherweise gibt es die OS 2007-auf-dem-770"hacker" edition. Mit kleineren Einschränkungen. aber ich denke, einen Test werde ich wagen.
Und instabiler als mein N95 wirds wohl kaum werden.
Eins jedenfalls ist prima: Dank OpenSource ist zumindest theoretisch weiterer Support für das Nokia 770 denkbar.

Update: Nach dem Update des Geräts kommt erstmal der "wow" Effekt. OS 2007 sieht einfach geil aus. Und es ist erstaunlich flott, selbst auf dem "alten" Nokia 770 fühlt es sich deutlich flotter an.
Nur leider seh ich keine Chance den SIP support zu installieren, da andere Pakete wohl fehlen.
(Und evtl. in der gehackten Version aus Lizenzgründen entfernt wurden. Ist doch nicht alles so "open".)

Vielleicht ist der wahre Grund für das gehackte Image der folgende: Käufer des 770 soll das neue 800 schmackhaft gemacht werden. Da gibts dann auch eine Kamera für Internet-Video-Telefonie dazu.

Gerade noch rechtzeitig

31 July 2007

... habe ich einem Kunden den Wartungsvertrag gekündigt, und Ihn an einen neuen Dienstleister für die Wartung seiner Server vermttelt.
Denn sonst hätte ich heute Abend Streß - wie auch einige andere: Root-Server bei 1&1 durch Lücke in Management-Software Confixx geknackt.
Confixx mochte ich ja noch nie, aber diese Lücke ist wirklich gravierend. War lange nicht so einfach einen Server zu ownen. Ich kümmer mich mal derweil um wichtige Dinge.

Yahoo und Hadoop

27 July 2007

Im Yahoo Developer Blog berichtet Jeremy Zawodny im Yahoo's Hadoop Support über den Fortgang der Hadoop Entwicklung seit Doug Cutting von Yahoo angestellt wurde, um Hadoop auszubauen.
Hadoop dient als Grundlage für im großen Stil auf lokale Cluster verteilte Applikationen, wie Nutch, Google-Search und Yahoo-Search, die auf tausenden Rechnern Petabytes von Daten analysieren.
Ein schönes Beispiel wie sowohl Firmen als auch OpenSource Software voneinander profitieren können.

Canonical Landscape: Der Ubuntu Business Case

23 July 2007

Canonical arbeitet derzeit schwer an Landscape, einem Dienst um Ubuntu im Unternehmenseinsatz besser wartbar zu machen.
Die Idee des Produktes Landscape ist dabei, Administratoren Arbeit zu ersparen. So werden Updates, Softwareinstallationen, aber auch Logging und Auditing realisiert.

Das Abo für Landscape gibts ab 250 Dollar im Jahr.

Guter Ansatz, hoffentlich lohnt es sich für Canonical, so dass auch zukünftig die Ubuntu Weiterentwicklung gesichert ist. Auch für den freien Teil :)

Caching: JCS, ehcache und... memcached?

11 July 2007

Je teurer es ist, Daten auszulesen (Speicher, Datenbank, Festplatte, remote-host), desto wichtiger ist Caching, zumindest wenn auf die Daten mehrfach zugegriffen werden soll. (Und das ist regelmäßig der Fall)
Stellt sich die Frage: Was nimmt man zum Cachen. Ganz bestimmt keine Eigenbaulösung, denn es gibt einiges an OpenSource Tools oder Produkten in deren Einsatz sich eine Investition lohnt.
Im Java Bereich dominieren JCS und ehcache, beide implementieren die JCache API (JSR107).
Ich habe noch keine genauere Evaluation durchgeführt, aber ein paar Dinge gefunden, die bei der Bewertung helfen könnten.
JCS vs. Ehcache (hätte auch Fedehandschuh heißen können)
Comparative Cache Performance Numbers (2006, cache4j-performance-tester)

Aber ganz besonders interessant finde ich den Vergleich von ehcache mit memcached. Memcached ist besonders im PHP und Perl Umfeld sehr beliebt, um die Datenbanklaste bei Webseiten zu verringern, die einen hohen Lese- vs. Schreibanteil haben. (Wikipedia z.B.)

Als echter Newcomer wäre dann noch Terracotta zu sehen, hier ist der Ansatz aber auch gänzlich anders. Werden bei den anderen Cache Lösungen allgemeine Objekt oder Datencaches implementiert, bietet Terracotta eine TreeMap Implementierung, die als backing einen verteilten Cache verwendet.

Ein Blick auf Hadoop

11 July 2007

Eine der Kernideen von Google war, auf billiger (commodity) Hardware zu laufen - und auch zu skalieren. Aus der Not heraus geboren (die Studenten Page und Brin hatten einfach wenig und zum Teil nur schrottige Hardware zur Hand um die Google Plattform aufzubauen) wurde das MapReduce Framework geschaffen - auch heute noch der Schlüssel für Google, um zu skalieren.
MapReduce ist auch ein Teil von Nutch, auch hier soll Skalierbarkeit erreicht werden - in Java!
Die freie Java implementierung ist inzwischen ein Apache Projekt, hört auf den Namen Hadoop, und besteht im wesentlichen aus einer MapReduce Implementierung zzgl. einem eigenen Dateisystem zur Verteilung der Daten.
Das powered-by-hadoop sieht schonmal ganz eindrucksvoll aus - last.fm und Yahoo sind Namen, die man kennt.

Für rechenintensive oder aus anderen Gründen in einem lokalen Cluster zu verteilende Anwendungen ist man nunmehr nicht mehr auf C angewiesen, sondern kann sich auch der Hochsprache Java bedienen.

OpenMPI - MPI-2 kompatible Library unter Ubuntu

10 July 2007

Für ein Projekt an der Universität beschäftige ich mich derzeit mit MPI zur Entwicklung paralleler bzw. verteilter Anwendungen.
Um nicht alles auf dem Uni-Cluster testen zu müssen - und weil ich gerne selber experimentiere - ist mein Blick natürlich direkt auf die Ubuntu Bordmittel gefallen.
Dabei ist mir dann das OpenMPI Paket ins Auge gefallen. MPI-2 und OpenSource! Wer damit experimentieren möchte, installiere sich einfach das Paket.

Ein einfaches MPI Programm könnte beispielsweise so aussehen:

#include
#include

int main (int argc, char **argv)
{
 int rank, size;
 MPI_Init (&argc, &argv);
 MPI_Comm_size(MPI_COMM_WORLD, &size);
 MPI_Comm_rank(MPI_COMM_WORLD, &rank);
 printf ("Hello world from process %d, of %d\n", rank, size);
 MPI_Finalize();
 return 0;
}

Kompiliert wird das ganze dann mittel mpicc hello.c (einem Wrapper um GCC und Konsorten) und anschließend kann man das ganze mittels mpirun -np X hello aufrufen.
(Das X ist dabei die Anzahl der gestarteten Instanzen)
Jetzt fehlt nur noch der AMD mit 4 Kernen zum spielen...

Eclipse Europa: Navigation mit strg+3

7 July 2007

In der Eclipse-Zone habe ich diesen Blog-Beitrag gefunden: Your next favourite keystroke: Ctrl+3
Klar, mußte ich auch sofort testen! Mit strg+3 öffnet sich eine Auswahl von "allem" dass man öffnen wollte - durch weitere Tastatureingaben wird die Auswahl eingeschränkt.
Praktisch, noch weniger "Umschalten" auf die Maus in Eclipse nötig. Ich werde mal sehn, ob ich mich daran gewöhnen kann.

Gründe gegen Spring Framework

7 July 2007

Es gibt hier einen interessanten Blog-Post, 5 Reasons why I think I will not use Spring.
Gründe gegen Spring?
Die Hauptargumente sind die langsame Start-Up Zeit des Containers, die nicht gerade schlanke Konfiguration, XML als Konfigurations-Format und nicht zuletzt die mangelhafte Typprüfung bei der dependency-injection.
Auch die entsprechende Diskussion auf TSS sollte man sich zu Gemüte führen, wenn man an dem Thema interessiert ist.

Ich denke Spring bietet eine ganze Menge mehr, als nur Dependency-Injection, und auch wenn einer der Kritikpunkte gerade der ist, dass die ganze Applikation anfägt vom Spring Framework abhängig zu sein, sobald man Features außerhalb von spring-core verwendet, so halte ich das für akzeptabel.
Von irgendwas ist man schließelich immer abhängig, und wenn ich eine Anwendung erstelle, die Jakarta-Commons verwendet, bin ich davon ja auch abhängig.

Abseits der "Eleganz" oder "Loose-Kopplungs" Diskussionen sollte man vor allem sehen, dass das Spring Framework einen echten Nutzen bringt, der derzeit durch kein anderes Framework so umfassend abgedeckt wird.

Auch wenn es keinen Standard gibt, hat das Spring Framework doch einen de-facto Standard geschaffen, und Anwendungen die entsprechend der Spring Philosohpie entwickelt wurden, können leicht durch andere Entwickler betreut werden. Umgekehrt fällt es mir als Spring-affinen Entwickler leicht, mich in andere Projekte einzuarbeiten.

So macht Java dann Spaß - Learn once, work everywhere.

Security Scanner für PHP Code

5 July 2007

Speziell für den Einsatz auf Source Code Ebene wurde das Java Tool Pixy entwickelt. Es durchsucht PHP Code nach möglichen XSS und SQL-Injection Schwachpunkten.
Da das Tool kostenlos verfügbar ist, spricht nichts dagegen, den eigenen PHP Quellcode damit zu checken, auch wenn man sich relativ sicher ist, dass man sauber programmiert hat.

Es ist natürlich zu erwarten, dass nicht nur der eigene Quellcode mit dem PHP Sicherheitstool gescannt wird - entsprechende Exploits für PHP Anwendungen werden nicht lange auf sich warten lassen.

Wer das PHP Audit Tool nur mal testen möchte, kann auch die Online Version von der Homepage nehmen.

PHP5: Zend Framework 1.0 erschienen

2 July 2007

Zend, die Firma hinter der Web-Programmiersprache PHP, hat heute das Zend Framework in Version 1.0 veröffentlicht.
Das für die Programmiersprache PHP5 konzipierte Framework standardisiert viele häufig verwendete Funktionen und Libraries.
Damit wird die Zukunft ambitionierter Softwareentwicklung mit PHP5 wesentlich vereinfacht: Wer seine Software mit dem Framework entwickelt, kann sich auf eine gut getestete und professionelle Umgebung verlassen.
Umgekehrt wird die Einarbeitung in PHP Software Dritter erleichtert, da viele Eigenentwicklungen überflüssig werden.
Die Features des Zend Framework kurz im oeberblick:

  1. Ajax Support
  2. Lucene Integration für Dataretrieval (Suche)
  3. Content Syndication (RSS/Atom/RDF Feedverarbeitung)
  4. Web Services

Für Firmen und Entwickler sind die Kosten und Lizenzbedingungen aber auch wichitg: Das Zend Framework ist unter der frei(er)en BSD Lizenz verfügbar.

OpenVPN: Redundante Anbindung

29 June 2007

OpenVPN hatte sich bisher als wunderbare Lösung für viele Herausforderungen in unserem Netzwerk herausgestellt.
Dank OpenVPN war es möglich schnell und einfach - ganz im Gegensatz zu IPsec - unsere Server zu vernetzen, die an verschiedenen Standorten beheimatet sind. Einige davon haben gar keine statische IP - dank OpenVPN jedoch gar kein Problem!
Doch dann viel einer der Server aus, der für einen Teil der anderen der OpenVPN Server war. Aha. Keine Redundanz!
Kleiner Ausfall, große Auswirkungen. Plötzlich ging kein Mail, kein Jabber, ja nichtmal Telefonie mehr.
Das kann ja nicht richtig sein, OpenVPN mit Redundanz muß her. Doch wie?
Ich bin über dieses Posting gestolpert, welches wohl die grundlegenden Möglichkeiten aufzeigt:

  1. Bei wenigen Serven läßt sich etwas über geschickte OpenVPN Routen basteln
  2. Bei größeren Installationen wird es nötig, dynamisches Routing mit OpenVPN zusammen einzusetzen.

Für Option 2 scheint alles auf Quagga, den Zebra Nachfolger hinauszulaufen. Was es dann schlußendlich wird - ich weiß es noch nicht.

Eclipse: Europa ist da

29 June 2007

Eclipse Europa ist - endlich - da.
Also gleich mal runterladen und durchtesten: http://www.eclipse.org/

Office 2007 (OpenXML) Dateien nach OpenDocument (OpenOffice) konvertieren

24 June 2007

Gerade dann, wenn man kein Microsoft Office 2007 zur Hand hat, bekommt man eine pptx Datei die mit Microsoft Office 2007 erstellt wurde, und kann damit dann nichts mehr anfangen.
Gut, wenn man ein älteres Microsoft Office zur Hand hat, denn dafür gibt es bei Microsoft Addons, die die Kompatibilität zum OpenXML Format der neueren Office Versionen sicherstellen:
http://office.microsoft.com/en-us/products/HA101686761033.aspx
Doch was, wenn man gar kein Microsoft Office zur Hand hat - eine Lösung dafür gibt es hier:
http://odf-converter.sourceforge.net/
Neben Plugins für Microsoft Office zum Export in das OpenDocument Dateiformat, das z.B. von OpenOffice verwendet wird, gibt es dort auch ein Kommandozeilen Tool.
Das funktioniert leider nicht unter Linux/Mono, aber immerhin in einem Windows XP mit .net 2.0 aufwärts. Bei dem Layout macht man besser direkt Abstriche - aber immerhin der Inhalt kommt rüber. Dank des Konverters von Office 2007/Open XML nach OpenDocument war der Sonntag gerettet.

Youtube Videos nach MPEG/mpg konvertieren

23 June 2007

Manchmal möchte man Videos von Youtube doch gerne lokal sichern. Am besten im Mpeg Format, damit sie auch da laufen, wo man kein Flash hat. (Soll es ja geben)
Da hilft das folgende kleine Shellscript weiter, wenn man ffmpeg und curl installiert hat. (Bei Ubuntu Linux einfach apt-get install ffmpeg curl eingeben.)

#!/bin/bash wget -c -S -O $2.flv http://youtube.com/get_video.php\?`curl -s $1 | grep player 2.swf | cut -f2 -d? | cut -f1 -d\"` && ffmpeg -i $2.flv -ab 56 -ar 22050 -b 500 -s 320x240 $2.mpg && exit 0

Gestartet wird mit youtub.sh <youtube-url> <ausgabedatei>
Anschließend hat man ein mpeg dort liegen.
Gibt es eine Fehlermeldung, meistens wegen einer nicht unterstützten Framerate des Youtube Flash Videos das man nach mpeg konviertieren möchte, kann man das folgendermaßen nach AVI konvertieren:

ffmpeg -i EINGABE.flv -aspect 4:3 -ab 56 -ar 22050 -b 500 -s 320x240 -y AUSGABE.avi

Anschließend kann man das immer noch nach mpg konvertieren.

Ubuntu updatedb / slocate bringt den computer zum halt

19 June 2007

Nachdem jetzt zum dritten Mal mein Ubuntu Linux ohne Ende losgerödelt hat und nach über 1 Stunde nicht fertig war, war es wieder mal soweit, dass nur ein Reset den Rechner wieder zum Reagieren brachte.
Aus irgendeinem Grund hat "updatedb" so viel I/O Last gemacht, dass nichtmal das X11 noch reagiert hat. Besonders ärgerlich, da ich offene Dateien nicht speichern konnte.
Ich habe inzwischen - glaube ich - den Verursacher gefunden. Das Paket "slocate" führt ein updatedb ohne Nice-Leve aus. (Im Gegensatz zum findutils Paket)
Ich habe slocate kurzerhand deinstalliert, da ich nicht nochmal Lust habe auf einen ratternden Rechnern zu warten, der an und für sich sehr gut ausgestattet ist.
Da ich locate sowieso quasi nie benutze, sollte das erstmal Abhilfe schaffen.

Subject: =?ANSI_X3.4-1968?Q? - Defekte Umlaute in Mails

19 June 2007

Ein lustiges Phänomen: Ein Kunde hatte Probleme mit dem Versand von E-Mails aus einer Java Applikation heraus. Das äußerte sich dann so, dass per JavaMail versandte E-Mails keine richtigen Umlauten enthielten.
Zuerst war der Mailserver in Verdacht, der auch brav ein "Content-Transfer-Encoding: 7bit" angab. Aber der Postfix Mailserver wurde bereits mit E-Mails gefüttert, die entsprechend "defekt" waren, und als Subject tauchte "Subject: =?ANSI_X3.4-1968?Q" auf.
Die Ursache: Auf dem verwendeten Linux Server war keine Locale gesetzt, so dass "C" / ANSI als Standardlocale verwendet wurde. E-Mails die so versandt werden, haben keine richtigen Umlaute und JavaMail setzt das Subject auf "
Subject: =?ANSI_X3.4-1968?Q". Die Ursache dafür konnte ich bisher nicht finden - aber Abhilfe:
Einfach die Locale richtig setzen bevor Java bzw. der Applikationsserver gestartet wird (Tomcat, Jboss, Resin, ...) oder in der Applikation folgendes Property setzen:

System.setProperty("mail.mime.charset","Cp1252");

Anschließend kommen auch Umlaute richtig rüber.

Wordpress -> Habari

19 June 2007

Der Autor des wordpress Database Backup Tools hat offiziell die Arbeit an diesem und seinen anderen Wordpress Plugins eingestellt.
Als Grund gibt er an, dass er zukünftig nur noch an Habari arbeiten möchte, ein Projekt das bei Google gehostet ist.
Die Vision von Habari ist doch recht ambitioniert, man darf auf jeden Fall gespannt sein, was dabei heraus kommt. Wer noch nach einer Alternative zu Wordpress auf der Suche ist, sollte vielleicht mal einen Blick auf Pebble werfen, das im Gegensatz zu Wordpress und Habari ohne Datenbank auskommt. (Und in Java programmiert ist.
Ich werde erstmal auf Wordpress 2.2 updaten, um in den Genuß von Atom Support zu kommen. Weitersehen kann man ja später. :-)

Linux kernel testen - mit Grub einmal booten

18 June 2007

Manchmal, besonders dann, wenn man keinen physischen Zugriff auf den betreffenden Rechner hat, möchte man gerne einen neuen Linux-Kernel ausprobieren und jederzeit zurück können.
Mit LILO habe ich das immer so gemacht, dass ich den neuen zu testenden Kernel als "einmal-boot" Option ausgewählt habe.
Geht dann etwas beim Booten des Linux Kernel schief, starte ich den Rechner einfach neu (im Notfall per remote-reset) und schwupps ist der alte, sichere Kernel wieder da.
Mit GRUB geht das auch, und zwar so:
Man installiere den Kernel und (bei Ubuntu) führe ein update-grub durch. Anschließend schaut man sich an, der wievielte Kernel der zu testende ist, startet grub und gibt ein

grub> savedefault --default=3 --once

Beim nächsten Start wird dann der Kernel mit der Nummer "3" einmalig als default genommen, anschließend wieder der sonst eingestellt. (Ggf. im Grub die Nummer des zu bootenden Linux Kernel anpassen)
oebrigens kann man so natürlich auch andere Betriebssysteme und Bootkonfigurationen testen.
Noch ein Tipp: Damit man um einen Reset herum kommt, kann man noch die Linux Kernel Option "panic" verwenden, damit der Rechner im Falle von Startproblemen selbstständig neu bootet - und dann die default GRUB Bootkonfiguration wieder verwendet.
Dazu einfach zu den Bootparametern ergänzen:

panic=5

Fertig.

Ubuntu: mysql und InnoDB nach Neuinstallation

17 June 2007

Wer lesen kann, ist natürlich klar im Vorteil.
Dennoch hat es mich eine Stunde Haareraufen gekostet, dass auf einem frisch installierten Ubuntu Feisty Server sich das Mysql-Server Gespann einfach nicht auf InnoDB als Storageengine einlassen wollte.
Ich bekom bei einem "show innodb status" stets die Meldung

ERROR 1235 (42000): Cannot call SHOW INNODB STATUS because skip-innodb is defined

aber natürlich war skip-innodb beim Ubuntu mysql5 nicht gesetzt. Des Rätsels Lösung:
Einmal den mysql server neu starten! Denn beim ersten Start wird die InnoDB Storage engine vom Ubuntu mysql server erst initialisiert. Beim nächsten Start steht die erst zur Verfügung.

Also:

/etc/init.d/mysql restart

und gut.

Mein erster Bugreport

7 June 2007

Besser als Sex ;-)
Ich habe den Resin J2EE Server getestet und stolperte dabei über einen (eigentlich kleinen) Bug, der mich fast verzweifeln ließ.
Dank der Hilfe von Stefan konnte das jedoch schnell als Kombination von "Bug" und "falsche URL aufgerufen" identifiziert werden. Als braver OpenSourceler hab ich dazu einen Bug bei Caucho eingestellt und eine halbe Stunde später war die Sache bereits erledigt.
Wow.

Auto Zip: Thunderbird Plugin für Attachment Zip

26 May 2007

Wer kennt das nicht, gerade PDF Dateien werden schnell richtig groß, E-Mails blähen binär-attachments sowieso um ca. ein drittel auf.
Da macht sich das Packen von Anhängen richtig bezahlt. Doch generiert man sein PDF z.B. mit OpenOffice dann ist das packen jedoch ein extra Arbeitsschritt. Extra Arbeitsschritte tendieren dazu wegrationalisiert zu werden.
Also werden dann doch unnötig große Dateien durch die Gegend geschickt. Damit macht die Thunderbird Erweiterung Autozip jetzt schluß.
Einfach definieren was gezippt werden soll und ohne Zutun wird automatisch Speicherplatz und natürlich Zeit gespart.

Glassfish vs. Tomcat: 0:2

21 May 2007

Glassfish ist der Java EE5 kompatible Referenz-Server von Sun und in weiten Teilen identisch mit dem Sun Java Application Server.
Im Vergleich zum Tomcat hat er auch eine hübsche Verwaltungsoberfläche und glänzt mit einem professionellen Erscheinungsbild.
Auf den ersten Blick.
Denn geht es darum vernünftige Dokumentation zu liefern, geht der Punkt an Tomcat. Auch wenn der Ton teilweise etwas salopper ist, so sind die Informationen und Ausführungen wesentlich verständlicher und machen nicht den Eindruck maschinell generiert worden zu sein. Naja Sun möchte sicherlich auch durch Training und Zertifizierung Geld verdienen - lassen wir die Jungs mal.

Dann jedoch erwischte es mich eiskalt mit einem Punkt, den ich für simpel wie essentiell halte: Konfiguration von Web Applikatoinen per Umgebungsoptionen.

Die Idee dabei ist die folgende: Ich habe eine Anwendung, die auf (konfigurierbare) Ressourcen zugreift, wie z.B. eine Datenbank. (Wir lassen die Möglichkeit Datasources über den Container verfügbar zu machen einmal außen vor, damit ich das Beispiel weiter ausführen kann.)

Ich kann in der Applikation sinnvolle Standardwerte annehmen und einbauen, wie z.B. dass die Datenbank auf dem lokalen Rechner läuft und für "root" ohne Passwort zugänglich ist.
Aber nun wird die Anwendung auf einem externen Server installiert, die Einstellungen müssen angepaßt werden. Ich möchte dazu natürlich nicht meine Applikation (das .war File) umpacken müssen um die Konfiguration zu ändern.
Praktischerweise gibt es da was von Spring. Im Prinzip wird dabei im JNDI geschaut ob ein Eintrag mit neuen Werten vorhanden ist, oder die default Werte übernommen werden sollen.
Schwupps schon ist alles fertig, ich kann auch ein Update der Software ohne Probleme vornehmen, da die deployment-spezifischen Teile beim Container konfiguriert sind.

Beim Tomcat ist das kein Problem, es ist sogar eins der ersten Beispiele aus dem Tutorial. Glassfish hingegen ist dazu schlicht und ergreifend nicht in der Lage.
Und ich habe gesucht! Anfangs dachte ich ja, es läge an mir - aber offenbar geht es auch anderen so:
Wie man hier, hier und hier sehen kann.

Vielleicht gibt es ja eine geschicktere Möglichkeit, diese Konfigurationen vorzunehmen - ich freue mich da über jedes Feedback. Aber Glassfish hat damit bei mir richtig Boden verloren. Davon mal ganz abgesehen wie viel Zeit ich investiert habe, nur um keine Lösung für dies Problem zu finden. (Und das Problem des bootstrappings von Anwendungen existiert ja nicht gerade erst seit gestern)

Dieses Programm ist nicht installiert

20 May 2007

Ubuntu erstaunt mich eins ums andere Mal. Ich wollte gerade von meinem Arbeitsplatz aus eine Anfrage an einen mysql-Server stellen.
Also flux die Konsole geöffnet, "mysql -h server" eingegeben und ...

The program 'mysql' is currently not installed.  You can install it by typing:
apt-get install mysql-client-5.0

Ein Paradebeispiel dafür, wie eine Fehlermeldung aussehen kann.

  1. Was genau ist der Fehler (Programm konnte nicht gestartet werden)
  2. Wodurch wurde der Fehler ausgelöst (Programm ist nicht installiert)
  3. Wie behebe ich den Fehler (apt-get install mysql-client-5.0 eingeben)

Einfacher als Windows ;-)

SunLab's SIP Conference Manager

18 May 2007

Offenbar hätte ich beinahe einen Trend verpaßt: Die Glassfish Community ist recht aktiv. Wer sich schonmal gefragt hat, wie man eine Telefonkonferenz per Web managen könnte, der wird in diesem Blogeintrag fündigt: Sunlab's SIP Servlet Conference Manager. Dort kann man sich in einem Screencast oder per Video ein Bild davon machen, womit Geeks spielen.
Jetzt müßt ich nur noch die Zeit haben einmal zu schauen, ob man das am Asterisk verwenden könnte :)

Thunderbird2 + 64 Bit = kein enigmail

9 May 2007

Wer in die Verlegenheit kommt, ein 64bit Linux, wie z.B. Ubuntu, zu fahren und dort Thunderbird2 zu verwenden, der wird feststellen müssen, daß es kein Enigmail für den Thunderbird2 gibt.
Und zwar nicht nur nicht von Ubuntu, sondern einfach so nicht. Der Grund dafür ist, daß Enigmail sich schlicht und ergreifend nicht kompilieren läßt.
Wäre Enigmail nicht ein recht wichtiges Plugin, denn schließlich hat man möglicherweise auch verschlüsselte Mails auf die man nun nicht mehr zugreifen kann, dann könnte man ja erstmal beide Augen zudrücken. (Wie z.B. bei dem fehlenden Java-Plugin auf das Linux 64bit User seit zig Jahren warten)
Aber in diesem Fall wäre eine schnelle Abhilfe wirklich essentiell - oder der Umstieg auf alternative Mail-User-Agents wie Evolution ist doch eine oeberlegung mehr wert.

Mozilla: Ficksau

27 April 2007

Ein Bekannter wollte mal Recoll in Aktion sehen und ich meinte "dann sag halt nen Suchwort" - und er: "Ficksau".
Na gut, ich bin ja recht schmerzbefreit. Aber mit einem Ergebnis hätte ich nun nicht gerechnet.
Natürlich gab es aber doch eins: ~/.mozilla/firefox/.../de-DE.dic
Unglaublich was da alles drinn steht!

.... Fickparty/Sw Fickpuder/NS Ficksau/STpr Ficus/u ...

Ich möchte garnicht wissen, wie die Entwickler sich ihr Wochenende vorstellen.

Recoll: Xapian vs Lucene

24 April 2007

Beagle ist sicherlich die bekannteste Desktop-Suche für Linux, doch mehrfache Tests haben die Mono/.net Anwendung Beagle als unbrauchbar für meine Zwecke klassifiziert. Zu langsam, zu hoher Speicherverbrauch.
Jetzt bin ich über eine andere "Suchmaschine" für den Desktop gestolpert - Recoll. Anders als Beagle - und viele, viele andere Anwendungen - wird bei Recoll nicht Lucene (oder eine Portierung) eingesetzt, sondern die mir bis jetzt unbekannte Xapian Library.
Xapian ist eine unter der GPL stehende Library, die ähnliche Ziele verfolgt, wie Lucene, wurde jedoch ursprünglich für C++ und nicht (wie Lucene) für Java entwickelt. Inzwischen gibts es auch hier Portierungen für Java (via JNI *hust*), C#, PHP, Python und weitere Sprachen.
Leider konnte ich bisher keine vernünftige Evaluation von Xapian vs. Lucene finden - sicherlich ist für den einen oder anderen bei der Auswahl eines zu integrierenden Software-subsystems interessant, welche spezifischen Vor- und Nachteile es gibt. (Ohne Flamewars lostreten zu wollen)
Es gibt zwar dies - offensichtlich veraltete - Paper, doch sind die darin zu findenden Aussagen etwa auf dem Stand von Ende 2003, schon auf den ersten Blick fällt auf, daß dies nicht mehr den aktuellen Stand wiederspiegelt.
Evtl. werde ich dazu selber etwas ergänzen, sobald ich Xapian vs. Lucene eine faire Testumgebung gebaut und ggf. eigene Tests gemacht habe.
Interessant ist Recoll aber für jeden, der sich für Desktop-Suche unter Linux interessiert. Auf meinem Ubuntu Feisty 64bit System ließ sich das Debian amd64 Paket einwandfrei und direkt installieren. (Für Ubuntu gab es nur ein edgy Paket für die i386 Plattform)
Im Einsatz besticht Recoll durch hohe Geschwindigkeit, gute Ergebnisse, bietet jedoch eine eher sehr funktionale GUI.

Debian etch: Mono 1.2 und Asterisk .net

23 April 2007

Schöne neue Welt: Dank Mono läuft ein unter Windows mit VisualStudio 2005 entwickeltes .net assembly das einen Asterisk AGI Server incl. Demo-Script implementiert einwandfrei unter Linux. Ohne Neukompilation - quasi wie man es schon lange von der Java Welt kennt.
Für diejenigen, die auch mit dem Gedanken spielen, und Informationen zur Installation suchen:
Mein Setup besteht aus einem Debian etch Server, auf dem ich die Pakete mono-runtime, libmono-system2.0-cli installiert habe. (Zzgl. der Abhängigkeiten)
Anschließend die exe und die ggf. nötigen .dll Dateien (in meinem Fall Asterisk.NET.dll) in ein Verzeichnis kopieren und per "mono AsteriskDemoAgi.exe" (oder dem jeweilligen Namen) starten.

Jetzt ist die Manager API drann.

Asterisk .net - Strategy Pattern mal anders

23 April 2007

Da intensivere Arbeit mit der Asterisk.net Library, ein Port von der Asterisk Java Library, geplant ist, habe ich heute angefangen ein wenig damit herumzuspielen.
Ich wollte zu Testzwecken dann einen sehr einfachen AGI-Server implementieren, der ohne RessourceBundles auskommt, um das Script-Mapping zu bestimmen. In Asterisk-Java kann man das recht einfach lösen, indem man eine eigene Mapping-Strategie implementiert, das ist ja gerade die Idee des Strategie-Entwurfsmusters, daß verschiedene Implementierungen austauschbar werden.
Leider wurde das bei der Portierung offenbar nicht beachtet - MappingStrategy ist hier fix als Klasse ausgeführt, die Ressource Bundles verwendet um das Mapping zu realisieren.

Thunderbird 2.0 - WoW

18 April 2007

Endlich ist die endgültige Version von Thunderbird 2.0 veröffentlich worden. Klar gibts auch irgendwie neue Features (Labels, Google-Mail als Kontotyp, bessere Sortierung, Anpassung für Windows Vista)
Aber vor allem ist er - subjektiv - deutlich fixer geworden (als wäre der je lahm gewesen) und auch der neue Look ist hübsch aber unaufdringlich.
Auch Enigmail verrichtet einwandfrei nach einem (automatischen) Update seinen Dienst - was möchte man mehr?
Achja, daß Thunderbird 2 im neuen Ubuntu 7.04 noch Einzug findet.

Ubuntu Feisty: Schreibzugriff auf Windows NTFS leicht gemacht

9 April 2007

Das neue Ubuntu Feisty (sollte in wenigen Wochen aus der beta Phase herauskommen) bietet endlich einfachen Support für schreibenden Zugriff auf Windows NTFS Partitionen.
Das wird viele Anwender erfreuen, die bisher Fummeleien oder alpha-Treiber verwenden mußten, um auf Windows Partitionen zuzugreifen.
Hier die Kurzanleitung zum Zugriff auf Windows Dateisysteme mit Ubuntu Linux:
- Universe als Paketquelle aktivieren, falls noch nicht geschehen
- In Synaptic ntfs-config suchen und installieren
- oeber Applications->System Tools->Ntfs Configuration Tool die Partitionen konfigurieren

Schon ist auch schreibender Zugriff auf NTFS Dateisysteme mit Linux möglich.

ubuntu ntfs config

Cisco 7960 "Semantic check failed for NTP packet"

31 March 2007

Das hat mich wieder mal ein paar Haare gekostet: "Semantic check failed for NTP packet" - mein neues Cisco 7960 wollte partout keine Uhrzeit vom NTP Server annehmen.
Leider habe ich auch bei Google keine Informationen zu der Fehlermeldung "Semantic check failed for NTP packet" bekommen. (Die erhält man, wenn man über die Console oder per Telnet "debug sntp" im Cisco 7960 aktiviert)

Die Ursache war ein fehlerhaft konfigurierter NTP Server, der keine Anfragen von der IP des Telefons beantwortet hat. Wer also auch Probleme damit hat, am besten mit einem anderen Client wie ntptrace prüfen, ob der Server antwortet, und ggf. die Konfiguration/Firewall prüfen.

Ubuntu Feisty und DVD Wiedergabe (libdvdcss / libdvdcss2)

24 March 2007

Bitte Update zu DVD Wiedergabe mit Ubuntu am Ende des Artikels beachten!

Mit Feisty hat sich die Ubuntu Politik geändert - proprietäre Codes werden von Totem automatisch installiert, um möglich reibungslos die Wiedergabe verschiedenster Inhalte zu gewährleisten.
Leider gilt das nicht für DVD die mit CSS (Content scrambling system) gegen eine Wiedergabe geschützt sind. Hier muß der User selber Abhilfe schaffen. Das geht am einfachsten so:
Im Synaptic Paketmanager eine zusätzliche Paketquelle angeben, nämlich

deb http://medibuntu.sos-sts.com/repo/ edgy free

Anschließend kann man das Paket libdvdcss2 installieren. Totem sollte dies automatisch erkennen und die DVD Wiedergabe von Medien die mit dem CSS Fehler behaftet sind ermöglichen.

Update zum Artikel DVD Wiedergabe mit Ubuntu:
Dieser Artikel ist für ältere Ubuntu Distributionen gedacht, wie die DVD Wiedergabe mit Ubuntu aktuellerer Versionen funktioniert, kann man hier nachlesen.

Jira comment spam

15 March 2007

Nachdem in einigen OpenSource Projekten, die Jira als Bugtracker einsetzen vermehrt Comment Spam aufgetaucht ist, hat sich Atlassian dem Problem angenommen: In einem Update für Jira gibt es jetzt die Möglichkeit CAPTCHAs beim Registrieren einzusetzen, und mit IP Blocklisten zu arbeiten.
Besonders intelligent scheint der Spambot nicht zu sein, aufmerksam geworden bei asterisk-java konnte ich mit einer Google-Suche schnell weitere betroffene Jira Instanzen ausfindig machen.
Besonders asozial bei diesem Spambot: Es trifft vor allem OpenSource Projekte, da diese Jira öffentlich einsetzen. Hoffentlich wird dem schnell der Boden entzogen.

Ubuntu/Linux AMD-64: Java Plugin

13 February 2007

Wahnsinn! Begeisterung!
Sun hat vor, 64 bit Linux Systeme auch mit einem Java Plugin zu versorgen, so daß wieder Applets im Browser unter Linux funktionieren werden.

In Java 1.7 - Dolphin.

Update: So übel kommt es dann doch nicht: Ubuntu  hat bereits jetzt ein AMD 64 Java Plugin, welches mittels eine OpenJDK Forks bereitgestellt wird. Wohl nicht zuletzt dank JavaFX hat Sun sich beeilt ein 64 Bit Java Plugin für Java 1.6 bereitzustellen, dies wird in der u12 Version enthalten sein, und dann hoffentlich auch unter Ubuntu 64bit zur Verfügung steheh.

Thunderbird: Accounts sortieren / Ordner gruppieren

31 January 2007

Beim neuen Einrichten meines Thunderbird Mailprogrammes hatte ich an eine Sache nicht gedacht: Ich habe die Accounts "irgendwie" nacheinander eingerichtet, ohne eine spezielle Reihenfolge zu beachten.
Danach hatte ich das Problem: Die Ordner bzw. Accounts waren in einer völlig ungewohnten und auch unpraktischen Reihenfolge.
Umsortieren ist natürlich nicht vorgesehen.
Gerade für mich als umstellungserschwerten fast-Alzheimer Anwender ist der Zustand unhaltbar - und nur um die Accounts zu sortieren alles neu einzurichten oder die config Datei gar von Hand zu editieren. Zum Glück bin ich dann über das Folderpane Tools Add-On gestolpert - das hilft einem bei genau diesem Problem.
Die Bedienung ist etwas komisch: Nach der Installation geht man in die Einstellungen dieser Erweiterung - dort kann man dann Umsortieren und den default Account festlegen. Nach einem Neustart ist dann alles wie gewünscht.
Yippieh!

Bundestrojaner: Konstruktion des Unmöglichen

29 January 2007

An vielen Stellen wird derzeit über den Bundestrojaner diskutiert, geredet, (des-)informiert. Nachdem ich diesen Beitrag im lawblog gelesen habe, überlegte ich mir, "wie sicher bin ich eigentlich".
Oder andersherum, wie würde ich eine solche Software konstruieren. Wie müßte sie beschaffen sein, um in die Systeme von zumindest einigen mittelmäßig versierten Anwendern einzudringen und dort auch unentdeckt zu bleiben, um ihrer Tätigkeit nachgehen zu können?
Ich habe mir dann überlegt, wen ich als Prototypen von Computeranwendern heranziehen kann, um diese dann mit dem Bundestrojaner infizieren zu können - angefangen bei einem reinen "Anwender" (meine Mutter muß hier herhalten), einen Enthusiasten der sich auch gerne mit Sicherheit beschäftigt (mein Vater) über einen der sich theoretisch eingehender mit der Materie befaßt und unterschiedliche Betriebssysteme im Einsatz hat (ich) bis hin zu jemandem, der "nur zum Ausprobieren" mit SmartCards, Verschlüsselung und mehrfachen Firewallebenen arbeitet (einem guten Freund).

Werbeblocker für Webbrowser Firefox: Adblock Plus

29 January 2007

Werbung ist zwar ein oft notwendiges aber deswegen nicht weniger nerviges oebel. Besonders jedoch der übermäßige Einsatz, wie ihn spiegel.de oder faz.net vormachen (neben der Werbung bekommt man manchmal den Eindruck, daß es auch redaktionellen Content gibt) führen dazu, daß man sich nicht mehr auf die eigentlichen Inhalte einer Webseite konzentrieren kann.
Das blinkt es, flackert es oder es werden ganze Werbeseiten über die eigentliche Seite gelegt, da Popups so gut wie immer bei modernen Browsern geblockt werden. Die neueste Werbe-Unart sind ganze Videos die durch ihre Bewegungen unglaublich den Lesefluß stören.
Dabei macht es Google eigentlich sehr gut vor, wie Werbung unaufdringlich und vor allem passend zum Inhalt realisiert werden könnte.

Asus M2N32-SLI Deluxe und Linux

21 January 2007

Ein neuer Rechner mußte leider her. Leider weil das neben Geld auch immensen Zeitaufwand bedeutet.

Ein Dual-Core AMD-64 sollte es dann doch sein, unter Ubuntu Linux 64bit natürlich. Danach habe ich die Komponenten auch ausgewählt, ich wollte keine oeberraschungen und wenig Zeitinvestition.

Beim Booten von Ubuntu Linux Feisty begrüßte mich direkt der Fehler "APIC does not work". Als Bootoption "noapic", "nolapic" half - bedingt. Nach vielem rumprobieren Linux auf dem M2N32 zu installieren, und natürlich ohne auf die (derzeit im alpha Stadium befindliche) Feisty zu verzichten, fand ich folgenden Lösungsweg:

Zuerstmal flasht man ein neues Bios rein, damit ist schonmal die halbe Miete erreicht: Der Apic funktioniert, weiterhin wird in den Release Notes "verbesserte Speicher-Stabilität" genannt. Das ist ja mal was! (Bios Version 0903) Zum flashen habe ich übrigens einen USB-Stick verwendet, da ich auf Diskettenlaufwerke wirklich verzichten wollte, und auch kein Windows installieren wollte nur um das Bios des M2N32-SLI zu aktualisieren.

Was Feisty angeht, so gibt es wirklich einiges an alpha-Anzeichen: Lediglich die Ubuntu alternate installer CD funktionierte einigermaßen zufriedenstellend. Der grafische Installer funktionierte garnicht (Kernel Oops beim konfigurieren der Netzwerkkarten), aber mit dem text-installer funktionierte alles.

font-config ist noch irgendwie gaga, und auch sonst ist das Biest träge wie sonstnurwas und fühlt sich merkwürdig an. Ich werde wohl Edgy nehmen, und damit einen neuen Versuch wagen.

Aber vorher ist noch Arbeit zu erledigen - gut daß es einen funktionierenden Thinkpad im Hause gibt.

Selenium Server unter Windows Vista

18 January 2007

Ich bin bisher noch nicht dazu gekommen, über Selenium zu bloggen, vielleicht hole ich noch einen ausführlicheren Bericht nach. Wer Webapplikationen entwickelt, ganz egal in welcher Sprache, hat das Problem, daß diese auch vernünftig getestet werden wollen.

Aber jedesmal von Hand die ganzen Seiten abklickern nervt und lädt zu Qualitätsmängeln beim Testen geradezu ein: "Ich hab ja nur hier was geändert, dann teste ich den Rest mal nicht, kostet ja nur Zeit." Und schon hat man mögliche Auswirkungen übersehen.

Selenium soll genau hier Abhilfe schaffen: Tests können aufgezeichnet oder programmatisch erstellt werden und dann jederzeit wieder abgerufen werden, z.B. integriert in Unit-Tests. (Wobei es sich genau genommen dann schon um Integrationstests handelt)

Unter Windows Vista macht der Selenium Server (erwartungsgemäß?) "rger: Internet Explorer 7 funktioniert garnicht, Firefox hängt auch nur dumm rum.

Abhilfe schafft hier die derzeit in Entwicklung befindliche Version 0.9.1 des Selenium-RemoteControl, oder kurz SRC Moduls von Selenium. Unter

http://release.openqa.org/selenium-remote-control/nightly/selenium-remote-control-0.9.1-SNAPSHOT.zip

gibt es die aktuelle Version als Snapshot, diese funktioniert zumindest mit Firefox unter Windows Vista.

oebrigens läuft zwar der Selenium-Server unter Java, jedoch können die Tests in die verschiedensten Programmiersprachen eingebunden werden - sogar via PHP. Keine Ausreden mehr für ungetestete Anwendungen...

Ubuntu 6.10 (edgy eft): Java 5

13 January 2007

In einem anderen Beitrag hatte ich beschrieben, wie man an ein Java 6 unter Ubuntu kommt, indem man auf die Ubuntu Entwicklungsversion Feisty Fawn umstellt.

Nicht jeder möchte jedoch für ein offizielles Sun Java auf Feisty umstellen. Wem ein Sun Java 5 reicht, der kann von den sogenannten Ubuntu Backports profitieren und damit sein Java installieren. (Incl. Browser Plugin ;-) )

Dazu geht man folgendermaßen vor, ein deutsches Ubuntu vorrausgesetzt:

"System"->"Administration"->"Software-Quellen", dort geht man auf den Reiter "Drittanbieter", dort klickt man "Hinzufügen" an und trägt folgende Zeile ein:

deb http://de.archive.ubuntu.com/ubuntu edgy-backports main restricted universe multiverse

Achtung: Wer nur freie Software unter Ubuntu einsetzen möchte, sollte sich das genau anschauen, welche Quellen er verwendet.

Anschließen kann man die Paketquellen neu laden, und im Synaptic "sun-java5-bin" oder das sdk installieren.

Miranda IM unter Windows Vista

7 January 2007

Miranda IM, oder kurz Miranda, ist ein multiprotokoll Instant Messanger für Microsoft Windows. Was ihn besonders attraktiv macht ist vor allem der geringe Ressourcenverbrauch, was für einen Instant Messanger der ständig im Hintergrund läuft sehr wichtig ist.

Gerade auf Rechnern, die vielleicht mit weniger RAM oder CPU Power ausgestattet sind, macht sich die schlanke Oberfläche von Miranda schnell bezahlt. (Auch wenn eingefleischte ICQ Fans die Oberfläche zu nüchtern finden, aber ich möchte mit einem Instant Messanger arbeiten und nicht die Oberfläche bewundern...) Die anderen Vorteile von Miranda sind natürlich die vielen Plugins, Skins und das hohe Maß der Konfigurationsmöglichkeiten und der unterstützten Protokolle, die Miranda attraktiv machen. (Und - nicht zuletzt - ist Miranda eine OpenSource Anwendung, die Vorteile dürften für jeden sofort auf der Hand liegen.)

Besonders angenehm, wenn man an einem fremden Rechner arbeitet: Miranda muß ab Windows XP nicht mehr installiert werden - es reicht das Miranda Archiv auszupacken und es kann sofort losgehen, und nach getaner "Arbeit" schnell sauber gemacht werden.

So dachte ich es mir auch, als ich an einem Windows Vista Business Edition Laptop Miranda einrichten wollte, zum Einsatz kam Miranda 0.6. Miranda startete unter Windows Vista problemlos, jedoch konnte keine Jabber Verbindung hergestellt werden!

Weder zu einem bestehenden Jabber Account auf meinem eigenen Jabber Server, noch zu anderen Jabber Servern konnte Miranda unter Windows Vista eine Verbindung herstellen. Fehlermeldungen gab es auch keine, auch das Abschalten der Windows Vista Firewall brachte keine Besserung.

Nach zahlreichen Versuchen mit älteren Miranda Versionen unter Windows Vista fand ich endlich eine funktionierende Konstellation: Ich nahm nicht die "entpack-Version" von Miranda, sondern verwendete den Miranda Installer. Damit konnte ich unter Windows Vista endlich wieder wie gewohnt arbeiten.

Eine Eklärung für das Verhalten habe ich nicht finden können - aber bei Windows Vista bin ich auch noch kein Experte.

Eclipse Subversion plugin: Subversive

3 January 2007

Während bisher "subclipse" das Standardplugin für die Versionsverwaltungssoftware Subversion (SVN) war, gibt es ein alternatives Plugin: Subversive. Der Hersteller, Polarion, sorgt durch eine enge Zusammenarbeit mit der Eclipse Foundation dafür, daß Subversive wohl zukünftig auch direkt mit Eclipse ausgeliefert wird. Auch jetzt schon ist Subversive vollständiger als Subclipse, und ein Wechsel lohnt daher.
Wichtig: Das neuere Subversive 1.1 hat auch eine neue Update-Site bekommen, möchte man also auf dem aktuellen Stand von Subversive bleiben, sollte man tunlichst in Eclipse (ab 3.2) folgende Update Site für Subversive verwenden:

http://www.polarion.org/projects/subversive/download/1.1/update-site/

Leider wird ein Upgrade von Subversive 1.0.x auf 1.1.x nicht automatisch durchgeführt.

Ubuntu Java 6 (Feisty)

3 January 2007

Ubuntu hat mit Feisty endlich auch Support für Java 6 (Mustang). Damit ist Ubuntu definitiv weiterhin *die* Linux Distribution für Desktop, Entwicklung und Serverbetrieb. Ein einfaches apt-get install sun-java6-sdk und schon lädt sich alles hinein was ich bei Debian früher mühsam von Hand installiert habe.

Besser als selbstgemacht!

Hier noch die sources.list für Ubuntu Dapper Drake Umsteiger. (Eintragen, apt-get dist-upgrade und fertig)

deb http://de.archive.ubuntu.com/ubuntu/ feisty universe multiverse deb http://de.archive.ubuntu.com/ubuntu/ feisty main restricted deb http://de.archive.ubuntu.com/ubuntu/ feisty-updates main restricted deb http://de.archive.ubuntu.com/ubuntu/ feisty-backports main restricted universe multiverse

Ggf. (z.B. für Maven) setzt man JAVA_HOME noch auf "/usr/lib/jvm/java-6-sun/"

Ubuntu: Nachträglich RAID anlegen

27 December 2006

Nach der Installation des Rechners fiel es mir dann ein: Ich brauchte ja noch ein Software RAID 0 (linear) um ausreichend Platz für große Videodaten zu schaffen.

Jetzt war allerdings der hübsche Installer schon durchgelaufen, also wie erzeuge ich komfortabel ein Software-Raid unter Ubuntu?

Ganz einfach:

sudo mdadm -v --create /dev/md0 -n2 -l0 -f  /dev/sda1 /dev/sdb1

mdadm ist das Tool zum Verwalten (erzeugen, ändern, löschen) von Software RAID unter Ubuntu. Ich wollte die SATA Platten sda1 und sdb1 zusammenfassen (-l0 == Raid 0), es gibt insgesamt zwei Platten (-n2) und sie sollen unter dem Gerät md0 angesprochen werden.
Anschließen noch schnell ein Dateisystem draufgemacht ( mkfs.ext3 /dev/md0 ) und in die /etc/fstab eingetragen. Fertig. Ich glaube auch mit klicki-bunti wäre es nicht  wesentlich schneller oder einfacher gewesen.

Ubuntu: Reihenfolge der Netzwerkkarten

26 December 2006

Ubuntu kann einem das Leben schon so angenehm gestalten, daß man erst dann, wenn etwas nicht wie erwartet funktioniert, merkt wie sehr man sich auf den bequemen [return] [ja] [return]... Weg eingestellt hat. Jetzt war es daran einem Rechner unter Ubuntu beizubringen, in welcher Reihenfolge die eingebauten Netzwerkkarten (eth0, eth1, ...) zugewiesen werden sollen.

Nicht, daß es dafür irgendwelche zwingenden Gründe gegeben hätte, aber ich wollte mich von dem vorherigen Debian System nicht extra umgewöhnen, und weiterhin auf eth0 den gewohnten Netzwerkstrang vorfinden. Einfach umstecken ging aufgrund der unterschiedlichen physik-Schichten nicht.

Auch bei der Reihenfolge der Netzwerkkarten im Ubuntu System macht die Distribution einen durchdachten Eindruck: In der Datei /etc/iftab werden die MAC Addressen zu den eth Geräten zugeordnet, nach dem nächsten Reboot ist garantiert, daß jede Karte stets den gleichen Anschluß erhält. Besonders praktisch auch bei hotplug, usb oder PCMCIA Karten.

So sieht es dann aus:

eth0 mac 1:2:3:4:6:7:8 arp 1
eth1 mac 3:3:3:4:6:7:8 arp 1

Eclipse und Windows Vista

22 December 2006

Eclipse ist meine Lieblingsentwicklungsumgebung, was sicherlich keinen großartig verwundern dürfte. Besonders wichtig ist mir dabei, daß ich Eclipse sowohl unter meinem liebgewonnenen Debian und Ubuntu Linux Rechnern, als auch unter Windows nutzen kann, ohne mich umgewöhnen zu müssen.

Neuerdings gab es jedoch Nachwuchs im Rechnerpark: Ein Thinkpad T60p fährt Windows Vista, und seit einigen Tagen jetzt auch die finale Version "Windows Vista Business". Doch leider glänzt das System nicht gerade durch Stabilität - manch einer würde das Einfrieren unter Counter Strike Source von Vista als schlimmer bewerten als einen Eclipse Absturz.

Ich nicht! Mitten in der Arbeit, natürlich noch einige ungesicherte Dateien im Eclipse geöffnet, macht es einfach "plopp" und übrig bleibt eine kleine Alertbox. Die Traces deuten auf SWT Probleme hin, jedoch fehlt mir die Erfahrung um das genauer debuggen zu können.

Aber wenn ich eins gelernt habe, dann Feuer mit Feuer zu bekämpfen. Die Entwicklungsversion von Eclipse funktioniert stabil mit Windows Vista. (Eclipse 3.3 M4)

Sun Microsystems könnte von Microsoft Marketing lernen

11 December 2006

Sun könnte den Anschluß verpassen, was Marketing und Lobbyarbeit im akademisch/universitären wie auch den restlichen Ausbildungsbereich angeht. Microsoft hat mit dem Academia Programm, insbesondere dem Studentprogram ein attraktives und auch gut genutztes Produkt geschaffen, welches sowohl für die studentischen Teilnehmer, wie auch für Microsoft einen gegenseitigen Nutzen schafft.

Microsoft profitiert insbesondere von der Lobbyarbeit, Promotion und dem Support von Microsoft Produkten, angefangen bei Infrastruktur wie Betriebssystem über Office, über Entwicklungsumgebung bis hin zu Technologie-Plattformen, insbesondere .NET.
Im Gegenzug schenkt Microsoft den Teilnehmern das Gefühl, etwas besonderes zu sein, wichtig zu sein, quasi ein Teil von Microsoft zu sein, kleinere Sachgeschenke, Erfahrung im Umgang mit den Microsoft Technologien, Support und die Teilnahme an Events.

Der teilnehmende Student wird durch ein engmaschiges Controlling-System mit regelmäßigen Reporten und einer hierarchischen Struktur unterstützt, gefordert und kontrolliert. Nebenbei lernt man natürlich interessante, nette, andersdenkende oder auch wissensvermittelnde neue Menschen kennen, schließt neue Freundschaften und tauscht sich über die Erfahrungen an dem jeweilligen Studienort aus.

Für seine Leistungen kann ein Student, wenn er gut war, nicht nur kleinere Sachpreise, sondern - gerade unter Studenten beliebte - Dinge wie eine X-Box einlösen. Natürlich gibt es auch kostenlose Trainings, Zertifizierungen, Bücher usw. - wer brav dem Kurs folgt wird belohnt und kann sich weiter qualifizieren, ohne die sonst üblichen und für einen Studenten kaum bezahlbaren Kosten des üblichen Qualifizierungs-/Zertifizierungsweges.

Sun hat ebenfalls eine Initiative für Forschung und Lehre: Allerdings gibt es hier eine andere Ausrichtung. Die Kooperation bei Sun läuft zwischen Instituten und Sun ab. Erfahrungsgemäß haben aber gerade die Institute bereits alle Hände voll zu tun mir Organisation, Studienordnungen etc. - zusätzlicher Aufwand wird nicht unbedingt mit großer Freude aufgenommen. So verwundert es auch nicht, daß man von diesem Programm an den Universitäten nicht viel Notiz nimmt.

Auch das Angebot ist nicht auf einzelne engagierte Studenten ausgerichtet - es gibt zwar kostenlose Webtrainings, kostenlose Sun Software, doch der größte Teil der Software ist sowieso schon unter Open-Source Lizenzen wie der Sun Community Licence verfügbar.

Vielleicht macht sich Sun Microsystems dabei auch nicht so große Gedanken um das Potential der Studenten: Java ist sowieso an vielen Universitäten die Sprache, der Nutzen einer Zusammenarbeit nicht so klar erkennbar.
Dabei könnte es so einfach sein: Es geht ja nicht um teure Events, 4-Sterne Hotels, sondern um relativ banale Sachen: Normales Promo-Material wie T-Shirts, Kugelschreiber, Blöcke, ... Unterstützung der Bildung von Gruppen engagierter Studenten, die z.B. Lerngruppen für Zertifizierungen bilden können und somit später eine interessante Ressource für den Arbeitsmarkt darstellen.

Microsoft wirbt damit, daß die Teilnahme am Studentprogram sich gut im Lebenslauf macht, man Kontakte zur Wirtschaft knüpfen kann, und lernt, was man später im Job tatsächlich braucht.

Bei Sun findet man Informationen, wie gut eine Zertifizierung ist, und daß sich die Investition lohnt. Nichtmal ein Rabatt für Studenten ist drinn - man bekommt den Eindruck, Sun möchte ein professionelles Image, und entsprechend mit Professionals zusammenarbeiten.

Vielleicht spielt es eine Rolle, daß bis heute nicht klar ist, wie Sun außer durch Trainings und Zertifizierungen mit Java oder OpenOffice Geld verdienen möchte. Auch das hat Microsoft wesentlich besser raus.

Windows Gimp: Sprache umstellen

4 December 2006

Mich hat es ja schon eine ganze Weile angenervt, daß ich unter Windows andere Menü-Namen und vor allem auch Tastatur-Shortcuts hatte, als unter meinem ("natürlich" englischen Ubuntu Linux).

Das Problem ließ sich erstaunlich einfach lösen: Environment Variable "LANG" auf "en" setzen, und schon präsentiert sich der Gimp auch in Englisch.

(Unter Windows geht das Systemweit für den angemeldeten User über "Rechtsklick auf Arbeitsplatz" dann "Eigenschaften" "Erweitert" und "Umgebungsvariablen")

Neue Kernels

23 March 2006

Kernel updates auf 2.6.16 vorbereite / in Durchführung. Außerdem: Endlich wieder gutes Wetter :)

Nokia 770

18 October 2005

So, mein Nokia 770 ist unterwegs. Hoffe ich zumindest, meine Kreditkarte wurde jedenfalls schonmal direkt verdaut.
Ich freue mich schon sehr auf das neue Gadget, mal sehn ob es sein Geld wert ist - und erst nach der Matheklausur eintrudelt. Sonst gibt es wieder concurrency-issues *g*
Die uni hat auch ganz gut wieder angefangen, mit dem üblichen Chaos, aber das gehört scheinbar einfach dazu. Studenten sind ja eben auch total flexibel.
Aber eins sei noch angemerkt - die Nokia E-Mails ist vom Deutsch her jeder Phishing-Mail noch unterlegen.

VDR Start

2 October 2005

Endlich habe ich bei meinen Eltern den Linux-VDR am Start. Insgesamt wirkt der VDR so, als sei er nur für den direkten Betrieb am Fernseher gedacht. Das Web-basierte VDRAdmin suckt massiv, ob gepatcht oder nicht, wenn man es mit dem aktuellen VDR 1.3.x betreiben möchte, da es Channels nicht findet und EPG Daten falsch oder nicht verarbeitet.
Als Lösung habe ich jetzt den xxv erkoren, der scheint zumindest so grob das zu tun, was man sich so vorstellt. Einzig das Live-Streamen und nachher Betrachten von Aufnahmen ist unter Windows noch arg mit dem Hauch von Labor behaftet - Abstürze und eine grauenhafte Benutzbarkeit erfreuen meine Eltern wie mich.

Aber langsam bekomme ich oebung mit dem Latte! Der Schaum hät inzwischen und kann sogar nen Keks tragen - Huhu Harald, SO sieht das aus ;-)

Vor lauter Begeisterung über den Kaffee hab ich die teilweise Sonnenfinsternis wohl verpennt. Grummel.

Asterisk & HFC

30 March 2005

Noch eine HFC Karte später, und ich kann wenigstens wieder vernünftig telefonieren. Sogar mit 2 Leitungen - wahnsinn... Das war jetzt aber auch so teuer, wie eine Telefonanlage.
Faxen geht allerdings noch immer nicht richtig, weil der kernel-capi scheinbar so lange rummacht, daß die HFC Karten nicht schnell genug bedient werden.
Dann war heute noch großer Kundensupport angesagt - so ist das eben nach dem Urlaub.


/
Copyright © 2007, 2008 everflux. Alle Rechte vorbehalten. All rights reserved.