logo_header

icon_bubbles Forum

icon_bubbles Wiki

icon_bubbles Planet

RootForum Community » Planet

Tinderboxing again

Finally Excelsior is doing what it has been bought to do: tinderboxing. Well, not really to full capacity but I’ve got enough pieces of the puzzle in place that it should soon start building regularly.

What the tinderbox set up is doing now is actually a limited run: it’s building the reverse dependencies of virtual/ffmpeg to find out which packages actually require libpostproc, so that we can fix their dependencies with libav — to follow up on Tomáš’s post I’m also strongly attached to libav, being, together with Luca, part of the development team of the project.

Speaking about libav, one of the things that since a couple of days ago Excelsior is doing, is running FATE so to both cover AMD Bulldozer’s architecture and Gentoo Hardened. For those who do not know, FATE is an automated testing environment that configures, builds, and run the tests for libav and then send the result to a central server for analysis. The whole build takes three minutes on Excelsior. Thanks to libav’s highly-parallelized makefiles.

There is only one problem with the Tinderbox, and is once again the logs analysis. To be honest this time I have some idea on how to proceed: the first step is to replace the grep command I have used before with a script that produces an HTML output of the log file. Yes many people said before that HTML is not a good idea for this kind of thing: since nobody else has helped me writing a better log analysis tool, that’s going to be enough.

So what has to happen is reading line by line the input log, then create an HTML file with (numbered) lines, marked with a specific (CSS) file that makes the row red. As I said before it would be nice to have some kind of javascript to jump from one error line to the other. Until this is all set, though, just creating the HTML file would be enough.

The next step would probably be getting the HTML output on S3 (for easy access), and write it down on a database that actually give you an index of the error logs — for those who wonder, using s3fs as PORT_LOGDIR is not a good idea at all. I guess tomorrow I might try to find some time to work on this. I could find some time on the weekend, given that my original idea (biking around with Luca) is disabled due to me falling and (lightly) injuring myself last night.


phpMyFAQ 2.7.6 Released!

The phpMyFAQ Team is pleased to announce phpMyFAQ 2.7.6, the “Adam Yauch” release. This release updates the Dutch, Polish and Russian translations. We also fixed some issues.

Bad branching, or a Quagga call for help

You might remember that for a while I worked on getting quagga in shape in Gentoo. The reason why I was doing that is that I needed quagga for the ADSL PCI modem I was using at home to work. Since right now I’m on the other side of the world, and my router decided to die, I’m probably going to stop maintaining Quagga altogether.

There are other reasons to be, which is probably why for a while we had a Quagga ebuild with invalid copyright headers (it was a contribution of somebody working somewhere, but over time it has been rewritten to the point it didn’t really made sense not to use our standard copyright header). From one side it’s the bad state of the documentation, which makes it very difficult to understand how to set up even the most obvious of the situations, but the main issue is the problem with the way the Quagga project is branching around.

So let’s take a step back and see one thing about Quagga: when I picked it up, there were two or three external patches configured by USE flags; these are usually very old and they are not included in the main Quagga sources. It’s not minimal patches either but they introduce major new functionality, and they are very intrusive (which is why they are not simply always included). This is probably due to the fact that Quagga is designed to be the routing daemon for Linux, with a number of possible protocol frontends connecting to the same backend (zebra). Over time instead of self-contained, easily out-of-date patches to implement new protocols, we started having whole new repositories (or at least branches) with said functionalities, thanks to the move to GIT, which makes it too easy to fork even if that’s not always a bad thing.

So now you get all these repositories with extra implementations, not all of which are compatible with one another, and most of which are not supported by upstream. Is that enough trouble? Not really. As I said before, Paul Jakma who’s the main developer of the project is of the idea that he doesn’t need a “stable” release, so he only makes release when he cares, and maintained that it’s the vendors’ task to maintain backports. On that spirit, some people started the Release Engineering for Quagga, but ….

When you think about a “Release Engineering” branch, you think of something akin to Greg’s stable kernel releases, so you get the latest version, and then you patch over it to make sure that it works fine, backporting the new features and fixes that hit master. Instead what happens here is that Quagga-RE forked off version 0.99.17 (we’re now to 0.99.21 on main, although Gentoo is still on .20 since I really can’t be bothered), and they are applying patches over that.

Okay so that’s still something, you get the backports from master on a known good revision is a good idea, isn’t it? Yes it would be a good idea if it wasn’t that … it’s actually new features applied over the old version! If you check you see that they have implemented a number of features in the RE branch which are not in master… to the result that you have a master that is neither a super-set nor a sub-set of the RE branch!

Add to this that some of the contributors of new code seems to have not clear what a license is and they cause discussion on the mailing list on the interpretation of the code’s license, and you can probably see why I don’t care about keeping this running, given I’m not using it in production anywhere.

Beforehand I was still caring about this knowing that Alin was using it, and he was co-maintaining it … but now that Alin has been retired, I’d be the sole maintainer of a piece of software that rarely works correctly, and is schizophrenic in its development, so I really don’t have extra time to spend on this.

So to finish this post with a very clear message: if you use Gentoo and rely on Quagga working for production usage, please step up now or it might just break without notice, as nobody’s caring for it! And if a Quagga maintainer reads this, please, please start making sense on your releases, I beg you.



For A Parallel World: Again on directories

Parallel build, and parallel install, is not hard, in the sense that it usually doesn’t give you new, undocumented challenges; it actually seems to be repeating the same problems over and over again. Sometimes the exact same problem — as it seems Ruby upstream applied the stupid Funtoo patch instead of mine, and that made it fail again on a parallel install. Luckily I was able to fix it again for good, and now is sent to the ruby-core mailing list.

Another issue came up today, when I noticed a bug for OpenSC which turned out to be a parallel install failure. While Michelangelo’s quick fix is actually a smart way to deal with it quickly, I’ve preferred applying the correct fix, which I also sent to the opensc-devel mailing list.

So this is just a quick post to remember you all: if you see failures such as “file already exists”, remember you’re in front of a parallel install failure, and you can see my previous blog to understand how to fix it properly.



Ruby pains, May 2012 edition

While I’m still trying to figure out how to get the logs analysed for the tinderbox, I’ve been spending some time to work on Gentoo’s Ruby packaging again, which is something that happens from time to time as you know.

In this case the spark is the fact that I want to make sure that my systems work with Ruby 1.9. Mostly, this is because the blog engine I’m using (Typo) is no longer supported on Ruby 1.8, and while I did spend some time to get it to work, I’m not interested in keeping it that way forever.

I started by converting my box database so that it would run on Ruby 1.9. This was also particularly important because Mongoid 3 is also not going to support Ruby 1.8. This was helped by the fact that finally bson-1.6 and mongo-1.6 are working correctly with Ruby 1.9 (the previous minor, 1.5, was failing tests). Next step of course will be to get them working on JRuby.

Unfortunately, while now my application is working fine with Ruby 1.9, Typo is still a no-go… reason? It still relies on Rails 3.0, which is not supported on 1.9 in Gentoo, mostly due to its dependencies. For instance it still wants i18n-0.5, which doesn’t work on 1.9, and it tries to get ruby-debug in (which is handled in different gems altogether for Ruby 1.9, don’t ask). The end result is that I’ve still not migrated my blog to the server running 1.9, and I’m not sure when and if that will happen, at this point.. but things seem to fall into place, at least a bit.

Hopefully, before end of the summer, Ruby 1.9 will be the default Ruby interpreter for Gentoo, and next year we’ll probably move off Ruby 1.8 altogether. At some later point, I’d also like to try using JRuby for Rails, since that seems to have its own advantages — my only main problem is that I have to use JDBC to reach PostgreSQL, as the pg gem does not work (and that’s upsetting as that is what my symbol collision analysis script is using).

So, these are my Ruby 1.9 pains for now, I hope to have better news in a while.


Artificial Regions Redux

It’s now over two months ago that I landed in the US with the idea of doing my job, do it well, and then consider moving here if the job was right. And two months ago I wrote about some stupid limitations of services based on where you were when you registered.

Now, even though I’m not here stable yet, I’m getting there: I have a bank account and a check card, and I have some billing address that I can use. So finally for instance I got access to Amazon’s App Store, which is not enabled even if you’re paying for Amazon Prime, as long as you don’t set your primary form of payment to a credit card (and address) in the US.

This should be easy, shouldn’t it? Not really; as it turns out, once I switched that around, Amazon stopped letting me buy Italian Kindle books…. which sounds silly given that they let me buy them before, and I haven’t removed my Italian credit cards, just not set them as default! Furthermore I’m not stopped from accessing them if I had them before.

The absurdities don’t stop here though; since I now have a check card in the US, I moved my iTunes Store account over… this actually enabled a few more functionalities, such as the “iTunes in the Cloud” and the fact that I can now re-download my purchased music as well as Books and Apps (which is the only two items that can be re-downloaded in Italy), but on the other hand, it threw off the previous purchases, showing all my purchased Apps as not available. While I was neither expecting nor hoping that my previous music purchases were available, I was pissed by the fact that it asked me to purchase again the software, especially things like TeamViewer, which is quite expensive. Luckily Apple’s tech support solved the issue relatively quickly.

So there you move to Android Market Google Play, that actually enabled me access to the US software simply by popping in the AT&T SIM card… well, while they did enable access to the US software, they still thought better to keep me off the Google Play Music store, as I was still registered in Italy. And while at it, when I actually purchased an App there… it ended up being charged in euros instead of dollars — this might sound strange, but it means that you pay more for it simply because the bank is going to ask you extra money for the currency exchange. Technically, the MII should tell them which currency the card is using by default, but instead of relying on that, they rely on your billing address… which they also don’t validate against the bank (as Newegg does instead).

Oh well… at least things seem to be more or less sane by now: most of the Italian books I had in my Amazon wishlist are available through the publishers’ group webshop which also provide most of them without DRM. Looks like Amazon is making it much nicer for everybody to buy eBooks now. Not all of them of course, but it’s still a step in the right direction.. and at the same time I’m very happy with buying them on the Kindle if I’m on the go, as I’m sure they are not going to kick me in my balls like Kobo did with The Salmon of Doubt (which I’m currently reading, after buying it again).


1und1 VDSL50 in Nürnberg – Weiter gehts

Ein weiterer Artikel in meiner kleinen Speedtest-Serie ;-) . Ich habe heute einen Anruf der 1und1-Hotline erhalten und nun die gewünschten Schritte ausgeführt. Die Leitung an sich war davor und danach gleich “schlecht”, auch wenn ich heute statt 2-3 mBit ca. 10-15 mBit Durchsatz habe. Der Hotline-Mitarbeiter hatte nämlich festgestellt, dass meine Fritz!Box keine “Provisionierung” durchführt. Ich weiß das, ich habe nämlich TR-069 in vollem Bewusstsein deaktiviert. Die Aussage war, dass wohl nur nach einer ordnungsgemäßen Provisionierung (1und1 Startcode) der optimale Durchsatz erreicht werden könne.

Außerdem hätte ein Außendienstmitarbeiter bestätigt, dass die Leitung mit voller Bandbreite synchronisiert. Das hatte ich auch gar nicht angezweifelt – die Fritz!Box zeigt ja die gleichen Werte (50 down, 10 up).

Also habe ich die Einstellungen gesichert und davor und danach einen Speedtest über speedtest.qsc.de durchgeführt. Auch ein “Speedtest.net”-Speedtest brachte die gleichen Ergebnisse: Keine Veränderung.

speedtest6 qsc_speedtest qsc_speedtest_after_reset

Ich bin nach wie vor überzeugt, dass irgendwas hinter dem DSLAM der Flaschenhals ist.

Mittlerweile sind meine Fritz!Box-Einstellungen wieder aus dem Backup eingespielt und ich bin gespannt wie es weitergeht.

flattr this!



1und1 VDSL50 in Nürnberg – Datendurchsatz wieder schlecht

Die Story mit dem langsamen Internet ist noch nicht ausgestanden. Ich hatte heute morgen Kontakt mit dem Kundenservice, der mich bat bei erneuter schlechter Verbindung gleich eine Meldung zu machen.Ich lasse Bilder sprechen:

 

 

 

 

Update 09.05.2011, 08:26 Uhr:
Hier die Ergebnisse von heute morgen. Nach wie vor keine Besserung.

flattr this!




Radkarte: Update 07.05.2012

Seit dem letzten Update gab es folgende Änderungen:

  • Es werden nun Fahrradstraßen gesondert behandelt.
  • Es wurde etwas an den Routing-Gewichten geändert, für hoffentlich sinnvollere Routenvorschläge.

Die Downloads sind auch bereits angepasst.


Windows 7 oder Server 2008 als Xen domU (HVM)

Mit der besseren Integration von Xen in die aktuelle LTS Version von Ubuntu bietet es sich an, als Virtualisierungslösung auf den freien Xen zu setzen, wenn es darum geht, einen Windows TS (Terminal Services) oder RDS (Remote Desktop Services) Server im kleinen SOHO Netzwerk zu virtualisieren. Dieser Workshop setzt einen funktionierenden Xen-Host voraus, d.h. eine paravirtualisierte domU konnte bereits erfolgreich gestartet werden.

Voraussetzungen prüfen

Um Windows auf Xen laufen lassen zu können, muss die “Hardware Virtual Machine” ran. Die sollten moderne Prozessoren beherrschen, tun sie aber nicht immer. Ein guter Ansatz ist es. den Inhalt von /proc/cpuinfo nach vm zu durchsuchen. Taucht hier vme oder svm auf, schaut es gut aus. Wenn nicht: Zuerst ins BIOS schauen und dort Hardwarevirtualisierung aktivieren – ggf. einen Blick ins Xen-Wiki werfen: wiki.xensource.com/xenwiki/HVM_Compatible_Processors.

grep vm /proc/cpuinfo

Installations-ISO besorgen

Für die Installation benötigen wir ein Verzeichnis für die VM und das Installations-ISO. Legen wir das Verzeichnis und eine leere Festplatte als Sparse File an:

WIN2008DIR=/usr/local/xendomains/win2008
mkdir -p $WIN2008DIR
dd if=/dev/zero bs=1M count=1 of=$WIN2008DIR/xvda.img seek=39999

Das ISO des Windows besorge ich mir von technet.microsoft.com/en-us/evalcenter/dd459137.aspx und kopiere es nach $WIN2008DIR/win2008.iso.

Konfigurationsdatei für die Installation

Meine Konfigurationsdatei /usr/local/xendomains/win2008/xen.cfg für die Installation sieht folgendermaßen aus:

kernel = '/usr/lib/xen-default/boot/hvmloader'
builder='hvm'
memory = 1024
xen_platform_pci=1
# Should be at least 2KB per MB of domain memory, plus a few MB per vcpu.
shadow_memory = 16
name = "win2008"
vif = [ 'type=ioemu, bridge=xenbr0, mac=00:16:17:12:23:01, model=e1000' ]
acpi = 1
apic = 1
disk = [ 'file:/usr/local/xendomains/win2008/xvda.img,xvda,w',
         'file:/usr/local/xendomains/win2008/win2008.iso,xvdc:cdrom,r' ]
device_model = '/usr/lib/xen-default/bin/qemu-dm'
# boot on floppy (a), hard disk (c) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
boot="dc"
sdl=0
vnc=1
vncconsole=1
vncpasswd=''
serial='pty'
usbdevice='tablet'

Der erste Start

Nun geht es an den ersten Start:

xm create /usr/local/xendomains/win2008/xen.cfg

Lautet die Ausgabe Error: Domain 'win2008' does not exist. ist ein Blick in die Logdatei /var/log/xen/qemu-dm-win2008.log angeraten. Steht dort etwas wie Could not read keymap file: '/usr/share/qemu/keymaps/en-us' hilft meist ein Softlink:

ln -sf /usr/share/qemu-linaro /usr/share/qemu

Lautet die Ausgabe: Started domain win2008 (id=4) können Sie lokal mit dem VNC Viewer mit der Domain verbinden:

vncviewer localhost

In meinem Fall handelte es sich um einem kopflosen Server. Da musste ich mir den SSH-Port zunächst per Port-Weiterleitung auf den lokalen Rechner holen. 10.76.23.55 ist der Server, auf dem Xen läuft und die DomU eingerichtet werden soll:

ssh -L 5900:localhost:5900 root@10.76.23.55

In einem anderen Terminal kann ich dann auf dem PC, der die SSH-Verbindung initiiert hat die VNC Konsole öffnen: vncviewer localhost. Und bitte keine Panik, wenn während der Installation die VNC-Verbindung mal abreisst. Bei Reboots oder Änderungen der Grafikauflösung ist das normal.

Installation der PV-Treiber

Eine deutlich bessere Performance von Netzwerk und virtuellen Festplatten erhalten Sie nach Installation der GPL PV-Treiber. Sie finden diese unter www.meadowcourt.org/downloads/ Laden Sie das aktuellste gplpv*-Paket für Ihr Windows und installieren Sie dieses. Ist die Installation abgeschlossen, fahren Sie das Windows herunter und ändern Sie die Konfigurationsdatei:

vif = [ 'type=ioemu, bridge=xenbr0, mac=00:16:17:12:23:02, type=paravirtualized' ]
# default: hard disk, cd-rom, floppy
boot="c"

Feintuning zum Schluss

Ist der Windows-Server fertig eingerichtet und das Login mittels rdesktop funktioniert, kann die lokale Serverkonsole per VNC deaktiviert werden:

vnc=0
vncconsole=0

Im Falle eines Falles (Server vergisst Netzwerkeinstellungen o.ä.) muss die betreffende Domain dann natürlich abgewürgt werden und die beiden Parameter müssen wieder auf 1 gesetzt werden. Aus Sicherheitsgründen ist es aber nicht ratsam, die VNC-Konsole dauerhaft zugreifbar zu haben.


Ubuntu 12.04 LTS als Xen Dom0 einrichten

Bislang habe ich Ubuntu immer mit den Vanilla-Sourcen von Xen eingerichtet, einfach weil der Support für Dom0 (priviligierte Domain) teils fehlte, teils veraltet und instabil war. 12.04 ist die erste LTS-Version, die sich zufriedenstellend “out of the box” als Domain 0 einrichten lässt. Mit verantwortlich ist, dass sich Kernel ab Version 3.0 auf dem Hypervisor Xen starten lassen, gepatchte spezielle Kernel sind heute überflüssig. Die Einrichtung ist recht geradlinig, lediglich einige Kleinigkeiten sind zu beachten.

Weniger geradlinig ist noch immer der Betrieb: Der Einsatz von HVM-Gästen benötigt VME- bzw. SVM-Erweiterungen des Prozessors (in billigen PCs hart per BIOS deaktiviert) und einige Grafikkarten mit KMS bereiten Ärger, genauso wie die proprietären Grafiktreiber von AMD und nVidia. Um schnell ein Demo-Virtualisierungssystem einzurichten, taugt Xen nicht (dafür sind VMware Player oder VirtualBox viel besser geeignet). Wer dagegen extrem flexible Servervirtualisierung mit geringem Overhead und hoher Flexibilität sucht, wird mit Xen jedoch fündig.

Software-Installation

Installiert wird Xen über das Paket xen-hypervisor-4.1-amd64, alle Abhängigkeiten werden dann nachgezogen. kpartx wird für die Einrichtung der domUs benötigt:

sudo apt-get install xen-hypervisor-4.1-amd64 kpartx

Während der Installation fügt Ubuntu einen Bootmenüeintrag “Xen 4.1-amd64″ hinzu, über den Sie in einem Untermenü landen. Das ist ein guter Ansatz, solange mit den Bootoptionen herumzuspielen (vga=normal nomodeset usw.) bis der Server sauber hochfährt und sich stabil benutzen lässt.

GRUB-Konfiguration anpassen

Ich habe mich für eine etwas unorthodoxe GRUB-Konfiguration entschieden. Ein Script /etc/grub.d/98xen sucht den letzten Linux-Kernel und sein Initramfs und fügt für diesen einen Eintrag in der obersten Ebene des GRUB-Menüs ein. Anzupassen sind UUID und Parameter der Module-Zeile. Bitte nach Änderungen das Script einmal im Terminal ausführen, um zu sehen, ob die Ausgabe plausibel ist. Wer bessere Ideen hat, maile mir diese:

#!/bin/sh

LINUXKERNEL=` ls /boot/vmlinuz-3.2* | tail -n1 `
INITRAMFS=` echo $LINUXKERNEL | sed 's/vmlinuz/initrd.img/g' `
XENKERNEL=` ls /boot/xen-4.1* | tail -n1 `
UUID=eb7a7f54-291f-420f-9f26-7d753c857a3d

exec tail -n +15 $0 | sed 's%XENKERNEL%'${XENKERNEL}'%g' | \
        sed 's%LINUXKERNEL%'${LINUXKERNEL}'%g' | \
        sed 's%INITRAMFS%'${INITRAMFS}'%g' | \
        sed 's%ROOTUUID%'${UUID}'%g' | \
        sed 's%^#%%g'

# Now the template - starting in line 15 - # will be removed
#menuentry "Xen+PVOPS" {
#        insmod ext2
#        set root=(hd0,1)
#        search --no-floppy --fs-uuid --set=root ROOTUUID
#        multiboot XENKERNEL dummy=dummy
#        module LINUXKERNEL root=UUID=ROOTUUID ro nomodeset vga=normal
#        module INITRAMFS dummy=dummy
#}

Damit das ganze funktioniert muss das Script ausführbar sein:

chmod 0755 /etc/grub.d/98xen

nun noch in der Datei /etc/default/grub den Standard ändern:

# GRUB_DEFAULT=0
GRUB_DEFAULT='Xen+PVOPS'

Nach einem

sudo update-grub

und dem folgenden obligatorischen Reboot sollte das Kommando xm dmesg zeigen, dass unterhalb von Linux Xen 4.1 läuft. Das war die halbe Miete.

Netzwerk für Xen einrichten

Xen benötigt eine Netzwerkbrücke. Die MAC-Adressen der unpriviligierten Domains werden dabei an ein bestimmtes Netzwerkinterface gebunden – in Heimnetzwerken und Büronetzen, in denen Sie die Kontrolle haben, ist das die Standardeinstellung. Alternativ gibt es die Möglichkeit, zu den unpriviligierten Domains zu routen (das behandle ich an dieser Stelle nicht). Passen wir also unsere /etc/network/interfaces an:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

auto xenbr0
iface xenbr0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 0

Alternativ gerne mit fester IP, Adresse, Gateway und Maske werden vom primären Interface kopiert:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static

auto xenbr0
iface xenbr0 inet static
    address 10.76.23.55
    netmask 255.255.255.0
    gateway 10.76.23.252
    dns-nameservers 8.8.8.8 10.76.23.252
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0

Danach bitte nochmal Reboot oder wenigstens Neustart des Dienstes Networking.

Meine erste DomU

Meine DomUs (unpriviligierte Domains) liegen unter /usr/local/xendomains. Die zum Testen aufgesetzte unter /usr/localxendomains/12.04ltstest. Sie verwendet den Netinstaller von Ubuntu:

DOMUDIR=/usr/local/xendomains/12.04ltstest
mkdir -p $DOMUDIR
wget -O $DOMUDIR/kernel-install.img http://archive.ubuntu.com/ubuntu/dists/precise/main/installer-amd64/current/images/netboot/xen/vmlinuz
wget -O $DOMUDIR/initrd-install.img http://archive.ubuntu.com/ubuntu/dists/precise/main/installer-amd64/current/images/netboot/xen/initrd.gz
dd if=/dev/zero bs=1M count=1 seek=16383 of=$DOMUDIR/xvda.img

Das Image xvda.img ist ein Sparse File. Es erscheint zwar 16GB groß, nimmt diesen Platz aber zunächst nicht ein. Jetzt noch ne Configdatei $DOMUDIR/xen.cfg:

kernel = "/usr/local/xendomains/12.04ltstest/kernel-install.img"
ramdisk = "/usr/local/xendomains/12.04ltstest/initrd-install.img"
memory = 512
vcpus = 1
name = "ltstest"
vif = [ 'mac=00:16:00:00:42:23' ]
disk = [ 'file:/usr/local/xendomains/12.04ltstest/xvda.img,xvda,w'  ]
root = ""
extra = "console=hvc0 ro xencons=tty"

Nun wird die DomU gestartet. Wichtig ist das -c, denn damit wird die Xen-Konsole aufs laufende Terminal geschaltet:

xm create -c $DOMUDIR/xen.cfg

Während der Installation sollte man noch darauf achten, das Paket openssh-server zu installieren, denn die Xen-Konsole ist äußerst unpraktisch (kennt nur 80×25 etc.). Nach der Installation rebootet das System. Dummerweise mit dem Installationskernel. Würgen wir es ab:

xm destroy ltstest

Eine dauerhafte DomU

Es gibt Möglichkeiten, den Kernel und seine Ramdisk vom Festplattenimage zu laden. Diese gefallen mir jedoch nicht, weil sie gute Einfallspunkte für Rootkits sind. Ich kopiere daher Kernel und Initrd. Zunächst erstelle ich ein Loop-Device für das Festplattenimage (die DomU darf nicht mehr laufen!), wofür wir ein freies Loopdevice brauchen (hier wurde /dev/loop0 gefunden):

losetup -f
losetup /dev/loop0 $DOMUDIR/xvda.img

Linux kommt mit Partitionen auf Loopdevices auf Anhieb nicht so toll klar. Hier kommt der Device-Mapper ins Spiel, der Partitionen auf Loop-Devices erkennt:

kpartx -a /dev/loop0
mkdir -p /tmp/xen-domU
mount /dev/mapper/loop0p1 /tmp/xen-domU

Nun kopieren wir den Kernel und das Initramfs:

cp -v /tmp/xen-domU/boot/vmlinuz-3.2.0-24-generic $DOMUDIR/kernel.img
cp -v /tmp/xen-domU/boot/initrd.img-3.2.0-24-generic $DOMUDIR/initrd.img

Zum Abschluss gilt es noch, die Konfiguration der domU anzupassen:

kernel = "/usr/local/xendomains/12.04ltstest/kernel.img"
ramdisk = "/usr/local/xendomains/12.04ltstest/initrd.img"
# ...
# Je nach Partitionierung ist die root-Zeile ggf. anzupassen!
root="/dev/xvda1"

Dann kann das Loopdevice ausgehängt und aufgelöst werden – ich lasse erst alle Devices anzeigen und löse dann von hinten nach vorn:

umount /tmp/xen-domU
ls -lah /dev/mapper/loop0*
dmsetup --remove /dev/mapper/loop0p5
dmsetup --remove /dev/mapper/loop0p2
dmsetup --remove /dev/mapper/loop0p1
losetup -d /dev/loop0

Nun steht dem Start der DomU mit “produktivem” Kernel nichts mehr im Wege. Dieses Mal ohne -c:

xm create $DOMUDIR/xen.cfg

In den nächsten Tagen werde ich mal auf eine Windows Server 2008 DomU eingehen (keine Angst, kostet nix, kann man 240 Tage am Stück gratis nutzen), was ein guter Einsatz für einen Xen-Host ist, der mit Samba Dateidienste für Windows und Linux anbietet und dank Windows Server 2008 auch Terminalserverdienste anbieten kann. Viel Spaß wünscht Mattias Schlenker!

PS: Autoren gesucht! Wer sich zutraut, einigermaßen geordnet zu schreiben, darf sich gerne bei mir melden. Ich betreue derzeit die LINUX INTERN von Data Becker als “Projektleiter” und bin für diese Zeitschrift auf die Suche nach Autoren. Eure Schreibe muss nicht “schön” im schriftstellerischen Sinne sein, aber man muss erkennen, dass Ihr strukturiert denkt. Honorar gibt es natürlich auch.


1und1 VDSL50 in Nürnberg – was davon übrig bleibt

Ich wundere mich schon seit ein paar Wochen über langsames Internet. Bis jetzt ist es mir nur in den Abendstunden aufgefallen. Nachdem ich vorhin noch über meine Playstation geflucht habe…

… bin ich dem Problem jetzt mal nachgegangen.Ich habe auf speedtest.net einige Speedtests mit unterschiedlichsten Servern in Deutschland gemacht und das Bild zeigt, was von den 50mBit momentan bei mir ankommt. Ich weiß, dass man keine 100% Durchsatz erwarten kann, vor allem nicht in den Abendstunden. Aber 2-5 mBit sind dann doch etwas wenig. Dass der Upload mit 7-9 mBit ausgefüllt werden kann, zeigt mir, dass hier irgendwie der Downstream verstopft sein muss.

Die Fritzbox zeigt brav, dass sie sich mit 50 mBit synchronisiert hat. Die langsame Geschwindigkeit ist von allen Geräten im LAN reproduzierbar: PC, iPhone, iPad, PS3.

 

Leider ist bei der 1und1 24h-Hotline gerade niemand ans Telefon gegangen. Eine parallele Anfrage auf Twitter läuft.

Update: auch morgens noch ähnlich schlechte Werte

 

 

 

Ich werde berichten :-)

flattr this!



For A Parallel World: Parallel building is not passé

It’s been a while since I last wrote about parallel building. This has only to do with the fact that the tinderbox hasn’t been running for a long time (I’m almost set up with the new one!), and not with the many people who complained to me that spending time in getting parallel build systems to work is a waste of time.

This argument has been helped by the presence of a --jobs option to Portage, with them insisting that the future will have Portage building packages in parallel, so that the whole process will take less time, rather than shortening the single build time. I said before that I didn’t feel like it was going to help much, and now I definitely have some first hand experience to tell you that it doesn’t help at all.

The new tinderbox is a 32-way system; it has two 16-core CPUs, and enough RAM for each of them; you can easily build with 64 process at once, but I’m actually trying to push it further by using the unbound -j option (this is not proper, I know, but still). While this works nicely, we still have too many packages that force serial-building due to broken build systems; and a few that break in these conditions that would very rarely break on systems with just four or eight cores, such as lynx .

I then tried, during the first two rebuilds of world (one to set my choices in USE flags and packages, the other to build it hardened), running with five jobs in parallel… between the issue of the huge system set (yes that’s 4.24 years old article), and the fact that it’s much more likely to have many packages depending on one, rather than one depending on many, this still does not saturate the CPUs, if you’re still building serially.

Honestly seeing such a monstrous system take as much as my laptop, which is 1/4 in cores and 1/4 in RAM, to build the basic system was a bit… appalling.

The huge trouble seem to be for packages that don’t use make, but that could, under certain circumstances, be able to perform parallel building. The main problem with that is that we still don’t have a variable that tells us exactly how many build jobs we have to start, instead relying on the MAKEOPTS variable. Some ebuilds actually try to parse it to extract the number of jobs, but that would fail with configurations such as mine. I guess I should propose that addition for the next EAPI version… then we might actually be able to make use of it in the Ruby eclasses to run tests in parallel, which would make testing so much faster.

Speaking about parallel testing, the next automake major release (1.13 — 1.12 was released but it’s not in tree yet, as far as I can tell) will execute tests in parallel by default; this was optional starting 1.11 and now it’s going to be the default (you can still opt-out of course). That’s going to be very nice, but we’ll also have to change our src_test defaults, which still uses emake -j1 which forces serialisation.

Speaking about which, even if your package does not support parallel testing, you should use parallel make, at least with automake, to call make check; the reason is that the check target should also build the tests’ utilities and units, and the build can be sped up a lot by building them in parallel, especially for test frameworks that rely on a number of small units instead of one big executable.

Thankfully, for the day there are two more packages fixed to build in parallel: Lynx (which goes down from 110 to 46 seconds to build!) and Avahi (which I fixed so that it will install in parallel fine).


Securing Tinderbox network access

For those who wonder why Excelsior is now built for a week and it’s still not running in full capacity, the reason is relatively simple: I’m still trying to figure out how to handle network security so that I can give other developers access to it, and not risk that we have a security breach in other places.

The first problem is that the current setup I need to use and the final one will be very different: right now the system is connected to the internal network of my employer, while in production it will be DMZ’d, with a public IP available straight to it. The latter setup will let me set up an IPv6 tunnel, which means all the internal containers will be available by themselves, while the current one prevents me to set it up at all.

Previously this was much easier to deal with simply because I had control over an external firewall myself, which took care of most of the filtering, which combined with LXC networking options made it decently easy to deal with. Unfortunately this time I have to do without this.

One of the things that might not be obvious from the post above, nor from the documentation, is that the three setups I have drawn are the ones that require the least amount of configuration on the host-side: if you use the standard bridge, you just need to start net.br0 (or equivalent), and LXC will connect the host-side virtual Ethernet pair to the bridge by itself. If you’re using the MACVLAN modes instead, the containers will piggy-back the interface of the host, and then rely on the external router/firewall/switch to deal with the configuration — by the way I’m glad that man lxc.conf now actually says that you’re supposed to have a reflective switch to use those modes. You can probably guess it’s not that great an idea if you expect lots of internal communication.

What I’m going to do for now is setting up a system that is defended as much as possible by depth, with iptables carrying out enough filtering that I should be realistically safe. Unfortunately just iptables is not enough and what you need is iptables and ebtables (for Ethernet Bridging filtering), to make sure that the containers’ don’t dupe your IPs or something.

The idea is that one IPv6 is enabled, you can jump straight into the tinderboxes, which is required to control it, but until then, the host system acts as a jump host through a custom scponly setup, which only allows forwarding, as ProxyCommand, port 22 of others boxes within that same system.

I’d like to show more documentation of what I’m trying to do, and what I achieved already, but to do so, I’m afraid I’ll be needing some more … visual examples, as it’s very hard to explain it in words, while it should be much more clearer with a series of drawings. I guess I’ll start working on them soonish, maybe if Luca can package Synfig for me…

For now, this is enough, I guess.


Ciao Google+

Spontane Entscheidung aus dem Bauch heute morgen nach dem Frühstück: ich lösche mein Google+-Profil. Warum? Ich brauche es nicht. Ich nutze es nicht… Es ist mir nach wie vor zu viel Rauschen, die mobile App taugt nix und es bietet mir auch sonst keinen Mehrwert.
Ich habe Twitter und Facebook und mein Blog. Für Google+ gibts da keinen Platz mehr.

Und hier steht wie es geht.

flattr this!



Hard Containers — LXC and GrSecurity

Okay so Excelsior is here, and it’s installed, and here starts the new list of troubles, which seems to start, as usual, with my favourite system ever: LXC which is the basis the Tinderbox work upon.

The first problem is not strictly tied to LXC, but one of the dependencies required: the lynx browser fails to build in parallel if there are enough cores available (which there certainly are here!). This bug should be relatively easy to fix but I haven’t had time to look into it just yet.

A second issue came up due to the way I was proceeding to do the install, outside of office hours, and is that the ebuild is using the kernel sources, I think to identify which capabilities are available on the system. This should be fixed as well, so that it checks the capabilities on the installed linux-headers instead of the sources, which might not be the same.

The third issue is funny: Excelsior is going to use an hardened kernel. The reason is relatively simple to understand: it’s going to run a lot of code of unknown origins, it’ll allow other people in, one wants to be as as possible… unfortunately it seems like this is not, by default, a good configuration to use with LXC.

In particular, grsecurity is designed by default to limit what you can do within a chroot, by applying a long list of restrictions. This is fine, if not for the fact that LXC also chroots to start its own set up process. I’m now fixing the ebuild to warn about those options that you have to (or might) want to disable in your GrSec setup to use LXC.

Interestingly, it’s not a good idea to disable all of them, since a few are actually very good if you want to use LXC, such as the mknod restriction, which is very good in particular if you want to make sure that only a subset of the devices are accessible (even when counting in the allowed/non-allowed access of the devices cgroup).

In particular, these have to be disabled:

  • Deny mounts (CONFIG_GRKERNSEC_CHROOT_MOUNT)
  • Deny pivot_root in chroot (CONFIG_GRKERNSEC_CHROOT_PIVOT)
  • Capability restrictions (CONFIG_GRKERNSEC_CHROOT_CAPS)

while the double-chroot would be counter-synergistic as it would disallow services within the container to further chroot to allow a defense-in-depth approach.

Then there is another issue. Before starting to set up the actual tinderbox, I wanted to prepare another container, which is the one I’ll be using for my own purposes, including bumping of Ruby packages and stuff like that. Since the system is supposed to stay very locked down, this time I want to mount the block device straight into the container, which is a supported configuration…. but it turns out that the configuration parser, trying to workaround old issues (yes that’s a one and a half years’ old post) will ignore any mount request that doesn’t have the destination rootfs prefixed.

Unfortunately when you mount a block device, it means that you’ll end up with something along the lines of /dev/sdb1/usr/portage. This also collides with the documentation in man lxc.conf:


If the rootfs is an image file or a device block and the fstab is used to mount a point somewhere in this rootfs, the path of the rootfs mount point should be prefixed with the /usr/lib/lxc/rootfs default path or the value of lxc.rootfs.mount if specified.

Anyway this should be fixed in 0.8.0_rc2-r2 which is now in tree, I’ve not been able to test it thoroughly yet, so holler at me if something doesn’t work.


Alle vier Stunden - zum Nutzen von Antivirus und zum Nutzen von Testverfahren

In Nur bedingt abwehrbereit schreibt Peter Welchering über die Wirksamkeit oder Unwirksamkeit von Antivirenprogrammen. Dabei geht es auch um den "Schutzlevel" von Antivirenprogrammen, wie immer der genau definiert ist. Ich lese unter Schmerzen:

Einen 99-prozentigen Schutz verspricht Marco Preuß vom Antivirenhersteller Kaspersky. Auf 35 bis 96 Prozent taxieren die Softwaretester der „Stiftung Warentest“ das Schutzniveau von Antivirenprogrammen.

In einem früheren Leben vor vielen Jahren war ich einmal Securityfuzzi in einem größeren Internetladen, und hatte in dieser Eigenschaft gelegentlich mit Viren und ihrer Verbreitung zu tun, etwa die SOBIG-Welle und einige andere, vergleichbare Teile.

Viele moderne Viren nutzen keine Sicherheitslücke im Rechnersystem aus um eine Maschine zu infizieren, sondern eine andere, viel größere und schwieriger zu sichernde Lücke: Die Person vor dem Rechner. Der Virus verbreitet sich in Mails mit provozierendem oder verängstigendem Inhalt und enthält Anhänge, die sich als Dokumente ausgeben, aber Programme sind. Der Anwender soll beim Lesen der Mail dazu gebracht werden, den Anhang zu öffnen und so die dort enthaltenen Programme auszuführen. Auf diese Weise installiert sich ein Grundprogramm, das dann anfängt, weitere Programmbestandteile aus dem Netz nachzuladen.


Dabei muß der Virus-Autor mehrere Probleme lösen.

Eines ist die Delivery, also das Ausliefern der Mail mit dem Virus an möglichst viele Leute. Zu diesem Zweck verwendet der Autor bereits durch den Virus infizierte Rechner, die dann weitere Rechner infizieren sollen. Diese bereits infizierten Rechner sind jedoch meistens an heimischen DSL-Anschlüssen installiert, und ist ein Nachteil: Netze, in denen Heim-DSL-Anschlüsse enthalten sind, sind bei vielen Mailern geblockt und Mail von dort wird von vorneherein als Spam verdächtigt und nicht angenommen.

Wie sich der Virus selbst versendet, ohne in DSL IP-Blocks zu laufen.
Im Falle von SOBIG und vielen anderen Viren geht man daher über einen sehr leistungsfähigen Mittelsmann vor: Der Virus verbindet sich mit dem Mailer eines großen Mailproviders - web.de, 1und1, Telekom und andere sind beliebte Ziele. Im Virus selber sind Adreßdatenbanken mit den Loginnamen und Paßworten von geklauten Accounts enthalten, typischerweise einige Hundert pro Mailprovider. Der Virus greift sich nun die Adreßlisten des befallenen Rechners, loggt sich beim Provider ein und versendet sich an Leute auf der Adreßliste.

Natürlich gehen die Virenautoren davon aus, daß die Provider geklauten Logindaten sperren werden. Daher ist der Inhalt des Virus selbst verschlüsselt, damit man die Logindaten nicht so leicht finden kann, und die verwendeten Logindaten wechseln in schnellen Intervallen (alle 30 Minuten oder so) auf neue, unverbrauchte Logins.

Die Virenautoren gehen auch davon aus, daß die Hersteller von Antivirensoftware ihre Suchmuster und Erkennungssysteme aktualisieren. Daher stellen sie alle 4 Stunden eine neue Variante des Virus bereit, die inhaltlich gleich ist, aber bei der die Programmelemente intern anders angeordnet sind und die natürlich neue geklaute Logindaten enthält. Obendrein wird eine neue Welle in der Regel dann gestartet, wenn es in der zu infizierenden Zielregion Nacht ist und die Operating Center der Provider minimal besetzt sind. Eine Startzeit zwischen 2 und 4 Uhr nachts ist normal, sodaß bei Dienstantritt in der Regel schon die 2. oder 3. Welle aktiv ist.

Auf diese Weise ist der Virus den Abwehrspielern in den Antivirenfirmen und bei den Mailprovidern immer ein wenig voraus und nur sehr aufwendig dauerhaft zu blockieren.

Was bedeutet das für Virenscanner und andere Schutzprogramme? Welche Bedeutung hat eine Erkennungsrate in so einem System?

Es ist klar, daß die Erkennungsrate für neue, aktive Bedrohungen in so einer Umgebung nahe Null ist: Die gerade jetzt aktiv im Spam versendeten Viren sind den Scannern naturgemäß vollkommen unbekannt. Die Autoren der Virensoftware haben selber Testsysteme, auf denen sie sher gut aktualisierte Virenscanner aller wichtigen Hersteller installiert haben und natürlich stellen sie sicher, daß ihr Virus von keinem der gängigen Produkte bereits vorab erkannt werden kann. Damit das so bleibt, variieren sie ihren Angriff alle paar Stunden, um schneller als der Update-Zyklus dieser Programme zu sein.

Die Erkennungsrate für gerade aktive Bedrohungen ist bei allen diesen Programmen also Null. Und die Angreifer prüfen das, damit das auch so bleibt. Der Scanner nutzt also nur etwas gegen veraltete (also Viren, die älter als 4-24 Stunden sind) Versionen der Bedrohung, und diese versenden sich in der Regel nicht mehr aktiv.

Was bedeutet das für das Testverfahren der Stiftung Warentest?

Da sich das Aussehen der Viren (ihre "Signatur") im Stundentakt ändern kann, taugen signaturbasierende Erkennungen in der Regel nur zur Erkennung von veralteten Bedrohungen. Die geraden aktiven Bedrohungen könnte man nur durch Verhaltensanalyse erkennen - hier aber werden die Virenautoren ihre Angriff zuvor recht gut auf die Schutzmaßnahmen der verschiedenen Antivirenprogramme abgestimmt haben und diese zu umgehen versuchen, um das System unerkannt zu kompromittieren. Anders als Signaturdatenbanken ist die Verhaltensanalyse jedoch auch sehr viel aufwendiger zu warten und auf einen Angriff anzupassen, da hier nun Code statt Daten geändert werden müssen. Wenn man also erst einmal einen Weg an einem Virenscanner 'vorbei' gefunden hat, wird dieser auch weitaus länger offen bleiben.

Die Stiftung Warentest hat ihre Testmethode nicht offengelegt - wenn jedoch gegen Rechner mit Altbedrohungen getestet worden ist und der Test vornehmlich oder ausschließlich auf der Basis einer Signaturdatei erfolgt ist, dann hat er genau keine Aussagekraft.

Ein triviales und leider immer wieder genommenes Testverfahren besteht darin, eine Platte mit so vielen Viren als möglich gleichzeitig zu verseuchen, und eine Kopie von dieser Platte an den Testrechner anzuschließen. Diese Platte wird dann gescannt. Weil Rechner und Virenplatte leicht voneinander zu trennen sind, kann man den Testrechner schnell nacheinander mit einem Virenscanner nach dem anderen austatten und weiter testen, ggf mit einer jeweils frischen Kopie der verseuchten Platte.

Das ist auf viele verschiedene Weisen nicht aussagekräftig:

Erst einmal ist es nicht das Szenario, gegen das ein Anwender im Angriffsfall vermutlich verteidigen muß - siehe oben. Statt gegen unbekannte frische Programme zu testen, testet man gegen einen Zoo von nicht mehr verwendeter Altware.

Dann ist es so, daß der Testrechner nicht wirklich infiziert worden ist - die Viren liegen inaktiv auf der verseuchten Platte, statt aktiv das Systemverhalten des Testsystems zu beeinflussen. Das ist auch gut so, weil so viele verschiedene Virenprogramme, wenn sie alle zugleich aktiv wären, vermutlich das Verhalten des Testsystems und sich gegenseitig beeinflussen würden. Bis hin zu dem Punkt wo die Testkiste so instabil wird, daß ein sinnvoller Test gar nicht mehr möglich ist.

Weil die Viren aber nicht installiert und aktiv sind, sondern nur als passive Programme auf der Platte rumgammeln, können die Scanner nur mit ihren Signaturdateien operieren. Die Verhaltensanalyse findet nix, da das Verhalten der zu testenden Kiste wie intendiert nicht beeinflußt wird, um den Test selbst nicht unmöglich zu machen.

Und schließlich ist es so, daß die meisten Virenscanner einen Benchmarkmodus haben: Wenn sie auf einem System in einem Testlauf mehr als n Viren finden und eventuell eine von diesen Dateien sogar EICAR ist, dann schalten sie in einen speziellen Benchmark-Modus, der mit dem normalen operativen Betrieb nichts zu tun hat und der speziell dafür designed ist, das Programm in einem Vergleichstest gut aussehen zu lassen.

Auf diese Weise kommt man zu Ergebnissen, die mit dem realen Schutzwert des Programmes genau gar nichts zu tun haben. Und dieser bemißt sich in der realen Welt gegen eine echte Bedrohung vermutlich nicht nach der getesteten, aber in der wirklichen Welt eher nutzlosen Signaturdatei, sondern nach der Qualität der Verhaltensanalyse von Programmen.

Nachtrag: Wie sind die Angreifer an Loginnamen und Mailadressen von Mailaccounts gekommen?

Phishing von eBay-Accounts ("Für die eBay-Disputresolution gehen sie bitte auf die folgende wilde Webseite und geben sie unmotiviert ihren eBay-Namen und ihr Kennwort ein, oder wir sperren ihren Account!11!!eins!Elf") liefert den Angreifern eBay-Namen und Paßworte. Loggt man sich nun mit diesen Daten automatisiert bei eBay ein, kann man dort eine Reihe von spannenden Daten absaugen, darunter auch die Mailadresse, an die eBay Benachrichtigungen senden soll.

Mit dieser Adresse und dem eBay-Paßwort kann man nun versuchen sich automatisiert bei dem Provider einzuloggen. Hat der Benutzer bei allen seinen Accounts dasselbe Paßwort verwendet, gelingt das und man ist zusätzlich zu seinem eBay-Account auch noch sein web.de/GMX/T-Online los.

Nachtrag: Wieso machen die das?

Wenn ein Rechner erst einmal befallen ist, kann man mit ihm alles machen: Man kann seine lokale Festplatte durchsuchen und die Bankdaten für Onlinebanking aus der Bankingsoftware oder dem Browsercache auslesen. Man kann seine Mailkontakte abernten und sie verwenden, um den Freunden dieser Person realistischere Spam-Mails zu senden. Man kann weitere Software aus dem Internet nachladen und den Rechner und seine Internet Anbindung verwenden, um mehr Spam zu versenden, DDoS-Angriffe auf andere zu fahren und mit dieser Drohung Schutzgeld zu erpressen und man kann viele weitere unschöne Dinge damit tun.


Hardware identification, version bumps, Excelsior

Let’s start with the good news: most of Excelsior has arrived and it’s already set up. The only thing that is missing is … the CPUs, which are coming in from Philadelphia, and should arrive here tomorrow, standing to Amazon’s tracking. As I said, the server will be co-located by my current employer, so that’s one issue not to worry about.

Without Yamato, it turns out that my ability to bump the version of my own packages is vastly reduced, mostly because I don’t want to install packages such as MongoDB on this laptop just to test out Ruby Gems, and at the same time I don’t want to have too many extraneous packages installed. Luckily this means that starting tomorrow we should be all ready to start the install phase.

One of the things I’ve been keeping busy with was the split hardware IDs package — sys-apps/hwids, which I’m bumping weekly. This from one side makes it much less important to use the (now gone) network cron scripts to update the IDs files, and on the other allows people who don’t want their systems to access the network directly to be kept up-to-date with the files themselves. This is the first week I’m skipping over the bump, simply because … there is no new content!

I’ve added a new device today to the USB IDs database though so that should mean that next week we might have an update. And tomorrow I’ll probably update it with the possibly missing subsystem IDs for the devices on Excelsior, which will go to the PCI IDs database where I already sent my laptop’s and one of the local server’s subsystems.

Speaking about device identification I can understand why Kay thinks that it might be better to have a general database of everything, instead of multiple small databases… for instance it would be nice if I could just update one database with the IDs of my new external HDD (WD My Passport), and let smartctl know that it has to connect to it with the SAT method, instead of having to write it on a page and then remember about it myself. Speaking about which, WD still is my favourite HDD vendor.

Anyway, thanks once more to all the people who helped the new Excelsior to be built; tomorrow I’ll post a few more details about it, including some photos hopefully, as I’ve got my camera with me as well. There has actually been some trouble with the SSDs and the mounting bays, which I think would be a valuable lesson not only for me.


Pufferküsser

Gestern war der kleine Schnuppel auf den Tag genau ein Jahr und elf Monate alt. Und da es sich jetzt fast schon um einen laufenden Meter handelt ist er eigentlich auch gar nicht mehr so klein.

Manchmal kümmert sich Oma JaJa um den Schnuppel. Oma JaJa kam zu ihrem Namen, weil sie der Auffassung war, daß wir zu oft "Nein! Nein!" zu dem Schnuppel sagen und man zu ihm öfter mal "Ja! Ja!" sagen muß. Daraufhin hieß sie beim Schnuppel in Nullkommanix JaJa. Und weil JaJa mit uns telefoniert, hieß das Gerät mit dem wir das getan haben, auch sehr bald JaJa.

JaJa wohnt in Karlshorst, und dort führt eine Brücke über die Gleisanlagen der S-Bahn, der Regionalbahn und der ICE-Trasse, genau zwischen dem S-Bahnhof Karlshorst und dem Eisenbahnausbesserungswerk und Lokschuppen. Wenn man da oben steht, rauschen die Züge unter einem durch, jede Minute ein neuer. Hinten sieht man die Schornsteine des Kraftwerks rauchen ("Dampf! Dampf!") und wenn man ein wenig weiter geht, kann man in der Ehrlichstraße die Straßenbahnen an einem vorbei rauschen sehen.

Der Schnuppel will jedenfalls, wenn er bei JaJa zu Besuch ist, auf diese Brücke. "Lokotive! Lokotive gucken!" - da weiß man als Elter gleich Bescheid, wo die Prioritäten liegen. Dann geht es raus, Straßenschuhe, Jacke, Mütze und Schal - noch niemals hat sich ein kleiner Schnuppel beim selber anziehen so viel Mühe gegeben und er rennt schon mal vorraus. "An der Straße halt!" - das Kind steht und hält die Hand hoch. Dann ruft er, zu der Seite guckend, die es für links hält schon mal präventiv "Kein Auto!" dem heranbrausenden Fahrzeug entgegen - das üben wir also noch.


Endlich steht er auf der Brücke und winkt dem Führer der Regionalbahn entgegen, die gerade vom Bahnhof Karlshorst kommt. Der greift nicht faul zur Pfeife und das Kind quietscht vor Vergnügen und hopst an den Gitterstäben der Brücke auf und nieder.

Dann passiert es: Ein Lieferwagen kommt, hält vor der Schranke an den Schienen an und die Schranke geht auf. Die Schranke ist immer zu, und wir haben es ihm schon einige Male erklärt: Da kommt ein Laster, dann geht die Schranke auf, und die andere Schranke geht auch auf, und dann kann der Laster über die Schienen fahren und die Schranken gehen beide wieder zu. "Schranke heute nicht auf." kommentierte der Schnuppel das jedes Mal ganz enttäuscht. "Nein, Joram, heute ist die Schranke nicht auf." "Heute nicht!"

Diesmal geht die Schranke also auf, und wieder freut sich das Kind oben auf der Brücke. Später stehen wir unten an der Schranke, und der Schnuppel faßt sie an. "Schranke auf war da. Aufegangen." verkündet er wichtig. Später wird er bei JaJa in der Küche mit seiner Wasserflasche Schranke und einem Löffel Laster spielen.

Abends war der Schnuppel sehr müde, und sehr aufgeregt. Das ist er öfter mal, und dann kann er nicht einschlafen obwohl er todmüde ist. Papa muß sich dann neben den plötzlich wieder sehr kleinen Schnuppel legen. Er dreht mir den Rücken zu, umarmt mit beiden Armen meinen Oberarm und legt den Kopf umständlich in meine Armbeuge - man muß genau die richtige Stelle treffen, sonst ist es nicht richtig.

Und dann erzählen wir einander noch mal den Tag. Der Tag heute bestand nach dem Bericht des Kindes aus Verkehrsmitteln, benutzte und gesehene. "Auto fahren. Und S-Bahn." Kurze Pause, und überlegen. "U-Bahn!" "Und Bus." Dem Schnuppel fallen die Augen zu und er wird unkonzentriert. Hinter dem Schnuller kommt noch ein "Lastwagen", er kuschelt sich noch einmal richtig hin.

Irgendwann eise ich mich vorsichtig und ohne das Kind zu wecken von ihm los, hebe ihn rüber in sein Bettchen und decke ihn zu. Hände greifen suchend um sich, ich schiebe das kleine Plüscheselchen hinein.

"Straßebahn."

Dann ist der Tag zu Ende.


Tools to learn Japanese signs

I’ve mentioned it in previous blogs sometimes – my wife and I started to learn Japanese a few weeks ago in the adult education center in Moers (our hometown). We were thrilled to see it’s available and so we booked the course within a blink of an eye. Learning Japanese starts in some parallel ways. Of course, you need to know the words, but it is also very important to learn the signs.

Last week, we had to write a complete text in “Kana”. Kana – that means in Japanese signs which includes Hiragana & Katakana, which are the basic signs. There are also Kanji, which are basically Chinese signs who are used pretty often, but to start off, it’s a good idea to learn the Hiragana & Katakana ones first.

A few weeks ago, I’ve already mentioned a very geek way, which is not for everyone – and I really understand this. You need a Linux system (or a Linux VM) to run Kanatest on your client and this is for sure barrier for some people, who are not that deep in computer stuff.

moekana cards

However, it’s a way to learn Japanese signs and so far, I think it’s one of the best ways. But let’s start with something, that is pretty easy and does not require you to use any computer. Danny Choo, founder of Culture Japan and Good Smile Company have created some very nice looking cards to start with. The are called moekana もえかな and do cover the Hiragana signs. Unfortunately, I haven’t found ANY dealer here in Europe who has them on stock, so we ordered them last week in Japan from AmiAmi. They arrived yesterday :)

The cards contain the basic Hiragana signs, not the Yōon ones or the Dakuon (3 “letter” signs) & Handakuon (” & °), but I guess that is very ok. They will teach you the basics and once you’ve all them in mind, it’s not that hard to upgrade you knowledge to the Yōon, Dakuon and Handakuon ones. The cards came in a small orange box (I LOVE the color of orange!). There is one card which contains some text about what this cards are about as well as an overview about the basic Hiragana signs with Romaji letters (Latin letters).

Most cards contain a nice little Manga Mirai (or friends) manga drawing. On the top left you will find the Hiragana sign, on the top right you will see the fitting word.

You can find a lot additional information about the moekana cards at moekana.com

Kanatest

Another way to lean ALL signs (except Kanji) is Kanatest. I’ve posted a lot about this great and free tool previously, so check this post for additional information. Of course, instead of a Linux server, you can also use a Virtual Machine on your system. A free virtualizer is VirtualBox , which is available for nearly all systems.

iKana

On Friday morning, I was looking for a training tool for the iPad. I stumbled upon iKana nōto and also about iKana. This great software from Thinkmac is THE tool if you want to learn the Japanese signs on a Mac or iOS platform. The installation is pretty easy and it’s pretty affordable. I started the iKana for the Mac, because I was sitting in front of my MacBook Air. The software runs for 10 minutes in trial mode. I played with it and fall in love! Seriously, the combination of Hiragana, Katakana and Romaji signs in the speed test is something you will like a lot. The speed test puts some pressure to it, but you can increase the time you have to press the correct number.

But iKana is more than a tool to learn the signs – it will teach you whole words. If you have all important Kanas in your head, you can start and for example make a test for the family members. It’s a bit more complicated to sort them our in Japanese, because this language is VERY polite – you call your wife tsuma つま if you talk about her in front of others, but you would NEVER call her that way if you talk to her. This work okūsan (oksan spoken) おくさん is the way you call her. However, you will have to find the correct word – in Kana! :) That is fun and really proofs if you know the Kanas.

With iKana, you can always learn how to draw the signs. It’s pretty important to draw the signs in the correct stroke order and this tool shows how to.

Thinkmac has sponsored a free licence allow me, to test the tool and present it here. Thanks! :)

iKana nōto

As mentioned above, I was initially looking for an iPad tool that allows me to train without a computer, on the couch, in the bed – or so. iKana nōto is exactly what I wanted. You can really paint the signs onto the iPad – with your finger or with a Stylus Pen from Amazon. I’ve ordered this pen for 9€, because this will hopefully make my Kana look a bit better ;)

Too bad – there is no training software included, but – for the iPhone – there is a tool who has this feature :)

iKana touch

iKana touch is also from Thinkmac and is for your iPhone. It allows you to draw the signs onto your iPad which is pretty nice and also to train in the same manner as with the Mac version. You simply “touch” the right (or wrong) answer.

Match Kana

The last pretty cool tool I would like to show here is Match Kana for the iPad. This is a memory game with Kana signs. It’s as simple as it sounds, but it’s a very good training!


Search dannychoo.com & figure.fm from Alfred

Just a few days ago, I bought the stunning Powerpack for the Mac software Alfred. It’s not just a timesaver but a great deal for all us keyboard ninjas ;)

When I bought it, I just changed the theme to one I like:

And not much more. Then I found http://alfredtips.com (PS. The custom search installation seem to work best with Safari) which is a great source for, well – different ways of searching. Instead of launching a new browser window or tab (does anyone seriously use windows instead of tabs “normally”?) and going to amazon and then type the product you want to buy/inform into their search field, I just press CMD+Space and type “ama apple cinema led display”. This fires up my standard browser (Chrome) and opens a new tab with the search results in it.

I also wanted this for dannychoo.com & figure.fm, these are two sites where I use the search frequently. If you have the Powerpack for Alfred, it’s pretty easy to implement:

The Search URL for dannychoo.com is:

https://www.google.com/search?q=site%3Awww.dannychoo.com+{query}

The title is the name for your custom search while the keyword is the shortcode that you’ll have to enter in front of your search. You can use the default Validation value “alfredapp”. Oh! Be sure to hit both, UTF-8 and “use + as spaces” on top.

For figure.fm it’s mostly the same, as both sites use Google for search.

https://www.google.com/search?q=site%3Awww.figure.fm+{query}

It works pretty well :)

For my german readers – this is the code to search on Amazon.de:

http://www.amazon.de/s/ref=nb_sb_noss?__mk_de_DE=%C5M%C5Z%D5%D1&url=search-alias%3Daps&field-keywords={query}


UPDATE

The figure.fm custom search is now available at alfredtips.com and installable with a single click! I recommend to use Safari to install the custom search – does not work in Chrome here on my Mac.


Battle Report: Rugby Calendar shooting (in a group)

Some may remember my (long lost) “battle reports” about my shootings. I used to do them ages ago, and since the shooting I did last week was an uncommon one, I decided to add one for it. Don’t expect them to happen often. As I did previously, I’ll only mention what I find noteworthy and not a step by step report of things. I will also come back to this post during the next months and weave more impressions or comments into it, should the need arise. Don’t expect anything fancy.

Okay, I talked myself into this one: A local rugby club wants to make a calendar as a fund raiser and I was asked to take the pictures. Things like this sometimes don’t work out, so I was pretty much easy on things for the start. After some weeks the thing got more realistic, and that’s when I started some planing and work with them. Some short meet ups to get a general idea what they are heading for and some research, roadblocks were out of the way and stuff for the actual event had to be planed.

With these shootings, you’re basically flying blind, this was what I was facing:

- An unknown amount of girls I basically know nothing about.
- Shooting in an open area, all open out.
- A very unconvincing weather report and temperatures that are on the brink.
- A calendar that should not only sell, but also fit them and be natural. (After all, if you want a pinup, hire some models).

Looking at that, I decided on taking the monster in free flight:

- Pack equipment lightly, and take “the cheap and light stuff” (E.g. rescue blankets instead of reflectors, and anything else that can be thrown away).
- Scrap the primes. Conditions are unpredictable, so better a bit blurrier pictures than missing the good ones.
- Pack lots and lots of batteries. And then some extras.
- Pack every single Memory card I have. And buy an extra one for insurance.
- Reserve a *lot* of free time for this, be prepared to do a rerun.
- Bring light, try not to rely on it.

While the equipment wasn’t that much of a problem to tackle (pun intended), the psychology of the thing created a bit of a headache. There’s only so many tricks you have up your sleeve and if one of the group doesn’t ease into things: You’re basically screwed. Having no idea how this group handles pressure, stress and the sometimes longer waiting stretches didn’t really help, too. Since my plan (at least I think) worked out, I’ll just skip this and forward to the actual happening. The backup plan was quite clear: If things go wrong fall back and stick to my premade plan, which would produce pictures for the calendar but be “stock”, and ease the girls to try again another day.

Time to lock ‘n load.

When I arrived things were basically pretty slow to start (a good thing). I took my time and slowed things down a bit more so everyone could get to know me (Not me as a person, but me with the big black glass eye constantly looking at them). They were all there: The skeptic, the shy one, the bolt&retreater, the ones having fun and the runner ups that got pulled in. Oh boy, this is going to be work. Slow down things a bit more, and let’s start with breaking them in. The skeptics, they are easy, so after having them settle into the situation, it’s contract time. I chose to just throw them out and see what happens, and as expected some comments came from the direction I was hoping for. At the same time I had to check for personal distances, 3 of them needed a lot of distance in general, the others were ok, so I set up the camera to roundabout 2.5m front focus. The shy ones (Not really shy per se, but reserved as to what is happening) needed some attention, so I just threw out some equipment and told some stories around things, with the obvious “it’s amazing how photography equipment can be rip offs”, handing around a flash and doing some tech talk. Around that time the group settled in and the “bolters” got a little bit eager to start up, so I threw out some final rules and standard phrases… and time to check the weather.

Weather was holding, with an overcast sky… camera settings were pretty much set to stone, tons of ambient light. The decision to pack lightly paid off, and I had the chance to skip a lot of the technical stuff and didn’t need a lot except for some casual backup flashing. I had to switch to flash later through the day, but from this perspective I was fine. This really played out well because I could keep tech at a minimum, and scrap a lot of the equipment that might irritate people. Light meter showed up fine in all directions.

From my perspective, that’s a good point to actually start. Being a free shot, it’s time to “herd the flock” just enough to get them into things and get them integrated as good as possible until their brains make “click”. So I slowly took some first pictures and the magic started to happen. IF you’ve ever been to a group shooting, you know what I mean. First some small, shy comments came in, and I fired off a series of shots, adapted some stuff, and the circle started.

We shot through some scenes and personal distances decreased very quickly up to the sweet spot I had thought out. Btw. it’s damn hard to keep distance when everyone is just wanting to take a look at the pics on camera (A move I pulled off to settle them down a bit. It’s risky because the pictures will not look very good, but I thought I was able to compensate for them by tech talking a bit). Most often I hoped to get the camera off into one hand for them to flock together and step into the background, but with this group that was near impossible. That’s also where I dropped some comments about the girls taking pictures by themselves.

After some more scene shots and putting some pressure on a couple of girls (hold position, hold position) they basically snapped into photography mode. Ideas came in, some personal requests came in (e.g. take one for my boyfriend, etc.) and I only had to keep them busy and try to streamline things happening. Basically I just had to follow along and get the shots done, some of the girls had very good eyes for details and naturally took up those roles in composing some shots. (Strike!)

By this time walking the line gets a bit tricky, but for most stuff things worked out. I lost track of one or the other girl for a bit, but they pretty much self organized around that. Things circled around for a while and I mostly had to look at the tension, and before you know it, the shots are done and they snap back.

I took the time to pack up and have one or the other talk for reassurance and just to chit chat a bit, and then take off. In retrospect I think I pulled it off quite okay-ish. We had quite a couple of shots for shits & giggles between scenes and from my view the picture mood doesn’t show a lot of difference, so it can be assumed they had fun and eased into things.

To summarize: Although risky at times, taking a free fight approach to an outdoor shooting works in general, and can be considered. But: HAVE A BACKUP PLAN! If the group works out together and you can fix the notches sticking out you can have a very natural looking and especially sound result. I’d wouldn’t recommend to solo projects like this without experience and planning. If you feel uneasy, spread something like this over multiple day.

Some more notes in general:

-It’s always amazingly stupid people walking by can be. This event had two: One guy “taking pictures to show what is happening to his wife” and another guy actually setting up camp in the middle (!) of two football fields and “reading a book”.

- Try to use names in group shootings sparingly. This helps to keep distance, and also changes roles for some people: “I know your name, you don’t know mine”. It also keeps the “group” together in a sense that people are not considered individuals. This can prevent people from feeling out of focus if you for some reason need to focus on individuals instead. Heavily dependent on the group.

- If you find that there are people in your group that have a hand for something: Use them.

- Personal Distance: Make sure you enforce personal space for both sides. Personally, I don’t have a problem with personal space, and can work fine even in close distances, but it can become an issue. So make sure your group also knows about your personal space, and to keep this professionally.

- Feed in some fun, do some jokes, and screw up a few pictures. Show your group you are a human being, but draw a line of professionalism and stick to it.

- Try to keep a hidden eye on everyone if you’re flying solo. Alternatively find a “herder” personality in the group or bring your own if you have the chance.

- Less equipment used -> easier on newbies. Keep it as simple as possible.


News of the Tinderbox or, Excelsior Inbound

I know I’ve been tremendously silent in the past week or so, but I’ve been working my ass off — after all of I want to move here I have to work enough to show that I’m worth the investment, and that I l like the job enough. Of course, this means I also have to accept working with Adobe Flash and ActionScript 3, which I easily started to hate (sorry Mike).

At any rate, even though the Pledgie instance is not yet complete (just misses a little over $200!) I’ve ordered all the components for the new Tinderbox host, for which I also found a name: Excelsior following my usual Trekkie naming scheme. While the original plan called for ordering all the components from NewEgg, I’ve had to switch the plan.

The reason is multi-folded. From one side, while NewEgg do support paying through PayPal, they only ship to a verified address, and while I can add bank accounts and credit cards from over here to my account, they do not allow me to add a second, verifiable address outside of Italy to the same account. This is not just a matter of not being able to add an American address, any other country beside Italy is forbidden to Italian account, and I assume that the same applies to all the other countries.

Another issue is that NewEgg does not let me pay through a credit card without verifying the billing address to the number (which is excruciating when you consider that their website by default replace the 5-digits ZIP code with the new, extended 9-digits one), and it does not allow me to add an Italian billing address. Finally, while I do have an US check card… the bank’s daily limit is set at two thousands dollars.

What it ended up to be, well, I ordered the barebone from NewEgg, and the rest of the components I ordered in multiple batches from Amazon (making sure that all the components I’m buying straight from Amazon, to make eventual returns easy). Turns out that this also allowed me to make a couple of changes to the original plan: the memory went from 32GB to 64GB, and the single SSD became two, although I’m now not sure if I should use them to build on when the tmpfs is too small or not.

By Wednesday, all the final components should be in; by end of next week I should have a basic working system, even though it won’t be publicly accessible at that point yet. My employer is going to sponsor the work offering space at the co-lo, assuming they have enough amps available, at which point this will be available to the public. If that’s not going to work due to power drain, I have alternatives in place so the system will be put somewhere pretty soon once it’s complete.

I want to thank all the people who’ve contributed already: without you this wouldn’t have been possible in so short a notice. I’ll make sure to get every single least power drop out of it used for Gentoo.


Mini Loot moekana + Super Sonico Nendoroid Petit

Today, after waiting a whole week (I guess it’s fast, if you have in mind that the package came from Tokyo) – we received our little package from amiami.

A nice message from amiami :)

もえかな cards! YEY! And – the Super Sonico Nendoroid Petit figures I was waiting for since January. I tracked it over on Archonia, but until today, they were not available – so, because the moekana cards were not available in Europe, too – be bought both in Japan.

These cards will help us to train Hiragana. One of a lot tools we use meanwhile ;) I’ve already posted about Kanatest, which requires a Linux system to run the current version and I will post soon about iKana from Thinkmac. I’m looking forward for a Katakana version from GoodSmile and Culture Japan :) Unfortunately, I guess there will be no Kanji version – this would require a much bigger box!


Keine SSD mehr ohne FDE (Full Disc Encryption)

Auf meinen Notebooks verschlüssle ich meine Daten schon seit vielen Jahren. Früher unter Windows 2000 und Windows XP per Truecrypt, später auf dem Mac mit FileVault, FileVault2, verschlüsselten Images und teilweise auch Truecrypt.
Seit einiger Zeit bin ich auch ein Freund der Geschwindigkeit von SSDs geworden und würde heute keinen Rechner mehr ohne SSD als System-Laufwerk verwenden. Meine stationären Geräte habe ich bisher aber ohne Verschlüsselung betrieben. Das ist jetzt vorbei!

Vor kurzem ist mir eine 256GB SSD in einem Rechner ausgefallen. Da ich auf diesem aber auch sensitive Daten habe (nicht nur meine Mails, sondern auch Kunden-Konfigurationen mit Passwörtern, VPN-PSKs etc.) kann ich die SSD jetzt natürlich nicht zum Austausch einschicken da ich nicht wüsste, was mit den Daten auf dem Gerät passiert. Wenn die Daten richtig verschlüsselt gewesen wären, dann wäre das natürlich kein Problem gewesen.

Was bleibt ist ein Lehrgeld von ca. EUR 400,-, eine noch zu zerstörende SSD (will it blend?) und eine gelernte Lektion!

Related Posts

No related posts.





Having an use for UEFI: Windows 7 as a second OS

This is not your average Linux-focused post, I’ m sorry if you were expecting one.

As I said lately, I’m now in Los Angeles, and while my dayjob involves working with a Gentoo-based firmware (and a Flash-written interface), I also have to complete a few tasks for customers at home, one of which requires me to use Windows 7 and Visual Studio 2008, both of which I own a license of … but in Italy.

While my original plan was to use TeamViewer (of which I also have a license — no kidding I know the value of Free Software, given how much I must spend on proprietary software to perform the task that FLOSS is unable to), but unfortunately the same router crash that caused Yamato’s unavailability has caused me to lose access to the laptop I used for this task.

This became even more troublesome considering that while my Dell laptop came with a Windows 7 Professional license, I decided to not install it back last time I decided to repartition it, and even more importantly, when I came here to the US I replaced the 250GB SATA hard drive with a 64GB SSD which is entirely dedicated to my Gentoo installation.

How to solve this situation? Well, seems like I did set me up with the single component to handle this properly: an eSATAp-to-SATA cable, a passive adapter, which can be used in combined eSATA/USB ports, which my laptop has (incidentally, that works just fine if you boot the system with it connected; it also works fine if you resume with it connected… but Linux seems not to have a way to rescan the bus properly, making it unsuitable for hotplug), The other part to this task is of course having the product keys (the Windows 7 one is under my battery, the Visual Studio one is on my NAS, which means a friend of mine can access it), and the discs… luckily, Microsoft’s official ISO files are available, even though you have to hunt for the Windows 7 ones, as they are not public. Visual Studio 2008 and the SP1 are available as downloads, the first as a 90 days convertible trial, which is fine.

My idea was to hope for the best, install Windows on the secondary disk, and then re-install grub2, through SysRescue, to be able to boot from the external drive. Well, it turns out it was much more easy than that. For whatever reason, my laptop can keep booting UEFI and non-UEFI modes without having to reconfigure the firmware every time, just by using F12 to choose the different boot device. So I started the Windows installation in UEFI mode, and watched it progress (I already knew that the firmware can easily boot from the external harddrive, as the eSATA interface only shows it on a different AHCI host, but it’s initialized the same way as the internal one).

After the first installation step was completed, I was honestly surprised to find out that… Windows didn’t even touch grub2! Instead, what it did was create its own EFI boot partition on the secondary harddrive, leaving the main harddrive totally clean… I just have to select “Windows Boot Manager” from the F12 menu, and Windows 7 boots and doesn’t give anything about being on a physically external drive. Even their performance score system is not showing any difference from having it internal (although I’m sure it would show the difference if it was Windows on the SSD).

Of course this is not to say that Microsoft’s software is not the usual stinking stuff… but at least they can leverage UEFI, with all its faults, to make for something… and luckily, they no longer want to be the sole owners of my laptop to just let me use their stuff for one job.


phpMyFAQ 2.7.5 Released!

The phpMyFAQ Team would like to announce the availability of phpMyFAQ 2.7.5, the “Trayvon Martin” release. This releases fixes a serious remote PHP code execution vulnerability, all users of affected phpMyFAQ versions are encouraged to upgrade as soon as possible to this latest versions! A detailed security advisory is available. We also added full support [...]


ISPConfig 3 Version 3.04.4

IspConfig  3 hatte vor 3.0.4.4 einen sehr schweren Fehler im Webdav Protokoll. Nun setzt  auf unserem Server zwar niemand Webdav ein, aber ein Sicherheitsupdate sollte man natürlich so schnell wie möglich einspielen. Am 10.04.2012 habe ich es installiert. Und bis auf ein paar Kleinigkeiten hat es wieder einmal gut funktioniert.

Am nächsten Tag fanden sich in meinem email Postfach einige Spam mails. Eigentlich war es in der letzten Zeit doch ziemlich ruhig. Ein Blick auf Munin verriet mir, das postgrey offenbar seinen Dienst quittiert hatte. Eine kurze Recherche führte mich zu einem fehlenden Eintrag in postfix/main.cf. Was das fehlte, habe ich schon mal beschrieben. Nach rücksichern von main.cf vom Backupserver lief postgrey sofort wieder. Auf den Screenshots von munin kann man das schön erkennen.


ISPConfig 3


Leitlinien IPv6 und Datenschutz

Mitte letzten Jahres fiel den Deutschen Datenschutzbehörden auf: IP V6 kommt! ZOMG! Wir werden alle störben!, denn wir bekommen weltweit eindeutige Nummern. Und es sah dann zunächst so aus, als würde man von Seiten der Datenschützer die Nachteile von IP V4 mit den Nachteilen von IP V6 kombinieren wollen.

Es ist wahrscheinlich im Wesentlichen einem Artikel von Lutz Donnerhacke zu verdanken, daß es nicht so weit gekommen ist. Lutz hat sich die Zeit genommen, den Datenschützern einmal zu erklären, daß V6 mehr ist als IP mit mehr Adreßbytes und daß mehr geht.

Dementsprechend hat die Deutsche Telekom hat angekündigt, ihr V6 mit einem per Default festen /56 pro Kunde ausrollen zu wollen. Die Telekom wird aber Kunden die Möglichkeit bieten, das /56 auf Wunsch zyklisch zu ändern. Man wird sehen, wie das genau implementiert werden wird.

Inzwischen sind zwei weitere spannende Dinge passiert:

Erstens haben sich der 'Deutsche IP V6 Rat' (Der Hohe Rath der 13 Provider vom Feed? Den gibt es wirklich, wer hätte das gedacht!) und Peter Schaar zusammengesetzt und die Leitlinien IP V6 und Datenschutz (sechs an der Zahl, natürlich) vom Stapel gelassen, und die sind angenehmerweise nicht vollständiger Irrsinn, sondern sogar sinnvoll - unbedingt lesen und verstehen!

Und zweitens ist heute RFC 6540 (BCP 177) herausgekommen. Das ist ein Best Current Practice Dokument, also ein Standard für Internet und Internetanbieter. BCP 177 legt fest, daß V6 Unterstützung jetzt Mandat ist und Produkte ohne V6 Unterstützung als fehlerhaft anzusehen sind.

Mit beiden Dokumenten solltet Ihr jetzt also zu Eurem Anbieter gehen und sie mal fragen, wann sie denn compliant zu werden gedenken.


GEMA vs. Europäischer Gerichtshof

Die Telepolis verweist in Volle Dröhnung vergütungspflichtig, nicht aber Hintergrundmusik! auf ein Urteil des Europäischen Gerichtshofes zur Vergütungspflicht von Hintergrundmusik in Zahnarztpraxen. Kerngrundsatz ist die Erkenntnis, daß ein Patient nicht zum Zahnarzt geht, um dort Musik zu genießen, und eine Wiedergabe von Musik nicht zur Zahnbehandlung gehört, und daher dort gehörte Musik auch keine vergütungspflichtige Aufführung im Sinne der GEMA Gebührenordnung sein kann.

Auslöser des Urteils war eine Auseinandersetzung zwischen der italienischen GEMA-Schwester SCF und einem Zahnarzt aus Turin, weil dieser in der Praxis Hintergrundmusik gespielt hatte, sich jedoch weigerte, dafür SCF Vergütung zu entrichten.

Die Entscheidung kann weitreichende Folgen für Friseursalons, Supermärkte, Fitness-Studios oder Telefonwarteschleifen haben. Der TP-Artikel dekliniert das in weiter reichendem Detail durch.


MySQL für Profis (in Berlin)

Oliver Sennhauser ist der Referent für den Kurs MySQL für Profis, der vom 18. - 22. Juni des Jahres in der Heinlein Akademie in Berlin stattfinden wird. Der Kurs ist für Personen gedacht, die bereits Erfahrungen mit MySQL gesammelt haben und diese jetzt vertiefen wollen.

Nach diesem Kurs kennen Sie sich mit den wichtigsten MySQL Befehlen aus und wissen wann Sie welche anwenden müssen. Sie kennen die wichtigsten Aufgaben, welche für den Betrieb und das Überwachen einer MySQL Datenbank erforderlich sind. Die Grundlagen des MySQL Performance Tunings sind Ihnen anschliessend geläufig und sie können selbständig erste Schritte bei sich am Arbeitsplatz wagen. Sie kennen die gängigen Backup-Lösungen, deren Vor- und Nachteile sowie die Restore-Möglichkeiten mit Ihren Einschränkungen. Um für die Zukunft gewappnet zu sein sind ihnen die architektonische Möglichkeiten mit MySQL sowie deren Vor- und Nachteile bekannt.

Und die sind bei Oli gut aufgehoben.




Seat Media System 2.2 (RNS 315) rebooten

Als ich vorhin in mein Auto eingestiegen bin legte mein Media System komische Verhaltensweisen an den Tag. Das iPhone koppelte sich nicht mehr per Bluetooth und bei Aktivierung der “Phone”-Funktion an der Mittelkonsole erschien lediglich die Meldung, dass man den Zündschlüssel umdrehen solle um die Funktion zu aktivieren. Ich fuhr bereits!Außerdem war in der Multifunktionsanzeige im Armaturenbrett nur noch die Uhrzeit sichtbar, nicht wie sonst die Uhrzeit inkl. gefahrener Himmelsrichtung.

Ein Reset auf Werkseinstellungen brachte auch keinen Erfolg, viel schlimmer noch – die Navigation konnte gar nicht mehr gestartet werden.

Also habe ich kurzerhand die Sicherung 8 (im Motorraum) bei ausgeschaltetem Motor entfernt und eine Weile gewartet. Danach die Sicherung wieder gesteckt und das Media System funktioniert wieder.

Auch nur ein Computer!

flattr this!




Touching my Desktop

»Drücke einfach 2-3 mal CMD-+, dann paßt das schon.«

-- anonymer Google Mitarbeiter über das neue Layout

Das Problem, leicht verständlich illustriert.

Microsoft hat mit Windows 8 einen Nicht-Desktop hingelegt, bei dem man sich fragt, was das soll, oder wie normale Menschen damit arbeiten sollen.

Apple hat seinem Betriebssystem in Lion einen Fullscreen-Haken an jedem Fenster spendiert. Dazu kommt ein Fullscreen-Modus gebaut, bei dem man sich nur an den Kopf fassen kann, falls man ihn an einem Rechner mit zwei Bildschirmen verwendet. Effektiv läßt dieser den 2. Bildschirm mit einem freundlichen Leinenmuster ungenutzt - und wer hat keinen 2. Bildschirm an seinem Laptop, wenn dieser stationär verwendet wird?

Google hat jetzt ein neues Design in sein Google Plus gebaut, das auf viele verschiedene Weisen schmerzhaft ist.


Neues kaputtes Layout.

In diesem neuen Layout passen auf die Höhe eines Laptop-Bildschirms ein bis eineinhalb Artikel, wo vorher 2-3 Artikel auf einmal sichtbar waren. Das liegt daran, daß jeder Artikel jetzt eingerahmt ist und Bedienelemente, die vorher recht kleine Textelemente waren oder nach Bedarf eingeblendet wurden, jetzt ständig sichtbare Knöpfe sind. Die Elemente sind also größer, höher, und nicht mehr textuell, sondern Buttons.

Auf einem 9:16 Bildschirm, also einem hochkant gestellten Monitor, funktioniert das neue Layout ganz prächtig.

Entwicklerarbeitsplatz mit 9:16 Display.

Dasselbe Layout hat man auch auf einem Tablet (etwa dem ASUS Transformer) im Hochkant-Modus. Und hier - bei Touchbedienung - wird klar, wieso das neue Layout so raumfressend ist: Das neue G+ Layout ist genau wie das Back-To-Mac-Layout von Lion und das Kachel-Layout von Windows 8 für die Bedienung mit den Fingern optimiert worden. Statt Text-Bedienelementen, die schwer zu treffen sind, finden sich jetzt deutlich größere und vor allen Dingen deutlich höhere Knöpfe, und auch das sonstige Layout ist so gearbeitet worden, daß es sich fix in ein 10" Tablet-Vollscreen-Fenster einpaßt. So sind die Leiste am linken Rand, die Betonung von Hangouts (Video/Audiochat statt Schreiben) und andere Elemente klar Dinge, die von Tablet-Benutzern bevorzugt werden könnten, am Desktop aber definitiv falsch sind.

Genau wie Windows 8 oder Apple hat Google das Problem, Anwendungen für eine neue Geräteklasse und Verwendung in neuen Lebenssituationen anpassen zu müssen. Und genau wie Microsoft und Apple ruiniert Google dabei gerade die User Experience für die geschützte, gut ausgestattete Situation "ich sitze an meinem Desktop und versuche, mit Eurem Zeug konzentriert produktiv zu sein". Oder anders ausgedrückt: Wenn man ein und dieselbe Anwendung für Casual Computing, Consumption und Couch (also Tablet Computing) optimiert, dann macht man sich Benutzer an einem Desktop, zwei Bildschirmen, mit Touchpad/Maus und Tastatur schnell zum Feind, weil die für Tablets notwendige Verdummung der Anwendung Desktop-Benutzer zwangsläufig frustriert.

Ich nehme an, mit der Wunderbrille von Google wird das alles noch schlimmer werden.

Die Frage ist, was eine Lösung ist, die nicht stinkt. Sind angepaßte Apps eine Lösung - Casual Consumer, Power-Reader/Kurator, und Creator als unterschiedliche Target Audiences mit unterschiedlichen Werkzeugen? Oder kann es eine unifizierte Lösung geben, die dennoch keine Partei mehr als notwendig frustriert?


Readying a new tinderbox? I could use your help!

I don’t think it’s much more of a secret anymore that I’m planning on moving to the United States before end of the year if I can. This means not only that I have to bring down and move around the business happening in Italy, but also that I have to find a way to rebuild my own infrastructure here in the US.

This has become more important since yesterday my home router in Italy decided to have hiccups that it didn’t have in a long time, and I’m now unable to reach any of the computers back at home. Including the monitoring services, the containers I use to build the packages for the remote servers, and so on so forth. Given I was already planning retiring Yamato after almost four years of almost uninterrupted service, simply because the mainboards started acting up, and adding to that, the fact that shipping it between EU and US is going to be a pain, and more expensive than the system is worth, I decided it’s time to get a completely new box, here in the US.

At first I was looking for dedicated servers offerings, but the monthly prices are definitely too steep for my taste ­— yes of course I could get one in the EU but that’s not the same thing. Besides, I’d really much prefer having something that, in the worst case, still allow me direct access to the box as needed. After discussing it with KingTaco, I decided to check out what was available from NewEgg, and the result is that I found what would be the perfect box to host the next round of testings: a dual 16-core, 32GB RAM, 4TB HDD system, for just under four thousands dollars.

Of course that’s still quite a bit of money especially considering I’m trying to account for all factors of moving here, closing the business in Italy, and still giving enough to my mother to keep on going for a while…

And here’s where the pledgie is coming into view. While I’m going to use the new box for a few personal projects as well, it’s obvious that its main use will be again tinderboxing, and since this time I don’t intend for it to be hosted within my home, I want to be able to give access to other developers to the different tinderboxes as well. Add to that the enormous amount of time required to go through the logs and report bugs (most of which I’ll be unable to spend during my work hours), and you can probably see why I’m asking again for some help to go back at tinderboxing.

While I set up the pledgie to the actual, full price of the box, this does not mean I’m not going to pay my share: both PayPal and Pledgie take out their own fees, which is actually quite steep in by itself (PayPal’s more than Pledgie’s!), and there is the issue of finding a co-location, which I’ll also take care of paying for. For more details of what I had in mind, see the following, quoted text of the Pledgie page:

Those of you who have been following me for long enough know this already, but for those who haven’t, my Tinderbox is an effort to keep compiling and installing the packages available in Gentoo to make it possible to know whether they are working correctly or not.

While this is not considered an “official” effort, the fact that I’ve not been running this for almost an year starts to show with packages being bumped without their reverse dependencies being checked, and new automagic dependencies cropping up that weren’t noticed before.

Also considering that I’m now in the process of moving from Europe to the United States, and the fact that the motherboard of the system I’ve been using to run tinderboxing has been showing problems (which is the reason why I stopped working on it), I think it’s time to get a new system (from scratch at this point), and restart the effort.

This time the system will be clearly cut so that the tinderboxing is handled in a separate environment, so that other developers will also have access to it, but I’ll also keep running some of my personal projects in there, and some work-related software. From my side, I’m going to take care of assembly and maintenance of the system, and will pay for its connectivity (likely in a co-lo near where I’m going to stay in the US).

But since it’s still a non-trivial amount of money that is required for a system powerful enough not to be replaced in the next few years, I’m going to ask for the help of you all out there. The target is set to the exact price of the system I’m aiming for on newegg but unfortunately that also means that it includes sales taxes. Please note that while the following specs could look like overkill, this time I aim on running multiple, isolated tinderboxes, in particular I have three configurations I care about: amd64, amd64-hardened and x86.

  • Dual Opteron 6272 16-core 2.1GHz CPU
  • 32GB DDR3 ECC RAM
  • 4×1TB Western Digital Caviar Black HDDs
  • 32GB OCZ Onyx SSD (for operating system)

Please keep in mind that the hardware is only one fraction of the value behind the tinderbox, as the most important part is reporting the bugs, which is still not automated, so while I’m asking you to pledge money, I’m pledging a lot of my free time for this project again.

Please help, if you can. Thank you immensely.
Diego Elio Pettenò aka Flameeyes

Click here to lend your support to: Flameeyes's New Tinderbox and make a donation at www.pledgie.com !

For those who wonder how it’s possible to have a donation before the Pledgie started, I had some extra funds from previous donations which I’m pledging myself against this. Furthermore I’m going to pledge all the Flattr funds that I can get into my PayPal account in the future months. For those who don’t want to use PayPal, I’ll be tallying up donations coming in form of gift certificates for Amazon or iTunes (both US) manually, just make sure to tell if you want to have your name shown or not.



Securing logins, DuoSecurity experience

In January, I’ve ranted about not being able to get a Yubikey so that I could test some kind of OTP token for logging in to the FTP of one of my servers, so that my friend who is maintaining the Wordpress install could work even from his office (where SSH does not work).

In the comments of that post Dug Song pointed me to his company, DuoSecurity which actually seemed like a good idea for what I had in mind. It provides support for both software and hardware token generators, has a clear API, and has a few integrations already available. Unfortunately now we’re in April, and you’ve seen nothing from me discussing it before. Why?

Well, mostly it feels like there’s a problem with timing. When I ranted about Yubikey, it was the week before leaving for FOSDEM, so I was finishing up job stuff and I couldn’t look at it until I came back from my combined trip (after FOSDEM I came here to Los Angeles). So when I started looking into it, I was at first only able to provide them with some build system changes.

When I then decided to spend some more time on it since the need to set up FTP increased, I started fighting with vsftpd to get it to accept using their PAM integration to use log in. The end result has been … a lot of time spent. Unfortunately the original design of their PAM implementation only works with a normal challenge-response authentication method (so it wouldn’t work with “safe” sshd PAM configurations), and more to the point, it would require asking two passwords, which an FTP client can’t.

While I first hacked it around, I was able to implement while here in LA last month a more complete patchset that implements a proper way to use it as a “single factor” authentication, or as a secondary push authentication. Unfortunately, I haven’t yet received a response about this patchset, which is why you won’t find duo_unix in Gentoo as it is.

The situation is getting more complex now: from one side I’m going to cut down most of my contract work in Italy as that’s not making me any money (seriously I think that even with all my ranting Flattr and Google AdSense are making me more money than website hosting), so I don’t foresee the need to provide users with some kind of strong authentication on the long term. From the other, while the firmware I’m working on doesn’t really care about this kind of strong authentication, the organization for which I’m working could use something like this. Of course, if the upstream for the package is not responding, that’s bad enough not to consider this.

I’m honestly not sure what to say since Dug and Jon seemed like friendly and helpful guys, maybe they are just too swamped with other requests and they can’t process mine as well, but whatever the reason, the issue I’m afraid is going to be a lapsed sale for them. Guys if you’re reading this, please let me know something, okay?



Who said that IDs wouldn't have license issues?

When I posted about the hwids data I was not expecting to find what I just found today, and honestly, I’m wondering if I’m always looking for stuff under rocks.

My reason to split out the ID databases off their respective utilities (pciutils and usbutils) was simple enough: I didn’t need to deal with the two utilities, both of which are GPL-2, when the database themselves are available under the BSD 3-clauses license; it was just a matter of removing code, and avoiding auditing of projects that we don’t need to rely upon.

The fact that it was still a pet peeve of mine to not have an extra package taking care of it, rather than bundling them, was just an added bonus.

So after creating a silly placeholder which is fine for our needs here, with the blessing of Greg I created a new package, sys-apps/hwids (I wanted to call it hwdata, but we have both gentoo-hwdata and redhat-hwdata that install very different stuff), which has its own repository and with a live ebuild that simply fetches the files out of the respective website. I’m going to update the package weekly, if there are changes, so that we always have a more up-to-date version of it, and we won’t be needing the network cron scripts at all either.

I’ve also updated lshw to support the split package, so that it doesn’t install its own ids files anymore… of course that is only half the work done there, since the lshw package has two more datafiles: oui.txt and manuf.txt. The latter comes out of Wireshark, while the former is downloaded straight from IEEE’s Public OUI registry and that’s where the trouble starts.

The problem is that while you’re free to download the oui.txt file, you won’t find any kind of license on the file itself. I’ve sent a request to IEEE for some clarification on the matter and their answer is a clear “you cannot redistribute that file” (even though Ulrich, while not a lawyer, pointed out that it’s factual information which might not be copyrightable at all — see Threshold of originality for further details.

So why would I care about that single file given that lshw is a minor package by itself, and shouldn’t matter that much? Well, the answer is actually easy to give: bluez also contains a copy of it. And we’re redistributing that for sure, at least in source form. Sabayon is actually distributing binaries of it.

Interestingly enough, neither Debian’s lshw package nor their Bluez one do install the oui.txt file and I wouldn’t be surprised if their source archives have been neutered made Free by removing the distributed copy of the file.

What should we do about this? Unfortunately, that’s one question I don’t have an answer for myself yet, but I guess it should be clear enough that you can’t always assume that what upstream declares to be the case… actually is the case, especially for what concerns licensing. And this is the reason why, even though we don’t have any problem with releasing the source of all the GPL’d packages we have, we’d like to reduce as much as possible the amount of licenses I have to go through.


Play & Contribute! | Carrier Command Gaea Mission

Ich bin doch schwach geworden!

Meine Ankündigung, ich würde mich vom kommerziellen Carrier Command nicht verführen lassen, muß ich lügen strafen. Ich habe schon mal in Vorfreude auf die Beta das Premium Paket gesichert.

Da werde ich wohl meinen Lan Party Rechner auspacken müssen, denn die Beta soll am 6.4. kommen.
Play & Contribute! | Carrier Command Gaea Mission

Update 09.04.2012:

So, das Spiel war also am 6. April herunterladbar. Meine Eindrücke bisher sind durchaus positiv.

Die Beta besteht aus dem Teil, der praktisch des Originals ausmacht. Das Feeling des Klassikers ist ganz gut herüber gerettet worden. Natürlich ist die Grafik ohne Zweifel um 'zig Jahre besser, aber das war im Klassiker ja nicht der Suchtfaktor, sondern die Tiefe der in einander verzahnten Abläufe. Hier hat Gea Mission noch ein wenig Nachholbedarf. Das Feedback der anderen Beta Tester ist meinem Gefühl ähnlich. Hier könnte etwas großes entstehen, das auch wieder Generationen von Strategiespielen überleben und beeinflussen wird. Der derzeite Stand ist durchaus schon gut spielbar, wenn man es schafft sich vom gegnerischen Carrier fern zu halten, denn da kommt es zu regelmäßigen Abstürzen. Wenn man sich aber auf die Inseln konzentriert, deren es nur 9 in der Beta und in der fertiggestellten Version 30 gibt, dann hat man schon viel Spaß.  Die Unterschiede zum Klassiker sind was das Gameplay betrifft, nicht groß, allerdings gibt es etliche Erweiterungen, die das Erobern, bzw. das Einverleiben neutraler Inseln betrifft. Im Klassiker war es eine einfache Sache, eine neutrale Insel zu erobern, einfach ein Walrus mit einem Command Center seiner Wahl beschicken, auf Insel fahren und mit rechtsclick irgendwo absetzen.

Bei CCGM (Carrier Command Gaea Mission) sind auf den neutralen Inseln noch Ruinen vorhanden, die teilweise sogar noch funktionsfähig sind, was den Vorteil hat, das man Treibstoff und Ammo mal eben nachtanken kann. Sein Command Center kann man nun aber nicht mehr irgendwo in die Botanik hauen, sondern man muß zuerst das alte Command Center finden und dort mit dem Walrus fast direkt davor fahren und mit der "F" Use Taste sein Command Center pflanzen. Der Vorgang vom Aufsetzen seines neuen Command Centers bis zum integrieren in sein Netzwerk dauert ziemlich lange, in der Zeit ist man schon zweimal zu anderen Inseln unterwegs. Um den Platz des zerstörten Command Centers zu entdecken, eignen sich Erkundungsflüge mit 1-2 Mantas. Auf der Map, die übrigens keinen Unterschied zwischen der Resource- und taktischen Sicht macht, kann man die entdeckten Gebäude leicht identifizieren. Seinen Walrus mit dem CC kann man nun mit einem Doppelclick dorthin senden. Apropos Map, dort gibt es meiner Ansicht noch einiges an Optimierungsbedarf, es scheint aber, das von der Entwicklungscrew die Hinweise und Verbesserungsvorschläge aufgenommen, bewertet und auch umgesetzt werden. Für die Player der Beta wurde übrigens ein kleines Manual mitgeliefert, aus dem ich die Screenshots der Gebäude entnommen habe. Wer ein noch nicht fertiges Spiel ausprobieren möchte, kann momentan noch knapp 20.- € investieren und an der Beta teilnehmen, die Anzahl der Teilnehmer liegt momentan bei knapp 7600, ich habe keine Ahnung, wie lange es noch möglich ist. Die Firma spricht von limited Time.

Für einen Fan des Klassikers ist es auf jeden Fall auch in diesem begrenzten Umfang schon ein Spaß und gariantiert viele Stunden Entdeckungs- und Aha Erlebnisse.

Ein, zwei Tester haben Probleme mit dem Game, aber generell scheint es ganz gut lauffähig zu sein, eine anstängige Grafikarte vorausgesetzt. Mein 550.-€ Game Rechner reicht jedenfalls.

In diesem Screenshot sieht man eine Fel Station, ein Walrus direkt davor geparkt, wird sehr schnell wieder mit Energie versorgt.

Überhaupt scheint es vorteilhaft, sich im Game auf der schonen der Vehicle zu konzentrieren und wenn immer möglich, Munition und Treibstoff auf den Inseln zu besorgen. Denn die Herstellung, -zumindest im limitierten 9 Insel Netzwerk -, ist sehr langwierig.

Hier noch ein link zu einem Gameplay Video.