Donnerstag, 16. Dezember 2010

Die SVP hat 2015 ein Problem …

… und ist dann zurück auf dem Boden der Realität, wie es schon all die anderen Regierungsparteien heute sind:

Dennoch, das Kernteam der Blocher-Spitze ist überaltert, die B-Liga der SVP ahmt den alten Leuen nach, ohne dessen Klasse zu haben.

Quelle: arlesheimreloaded – Gastkommentar: Kann die SVP gebremst werden?

Tags: ,
Labels: Politik, Schweiz

Keine Kommentare | neuen Kommentar verfassen

Samstag, 11. Dezember 2010

realpath() des aktuellen Verzeichnisses in der Linux Shell

readlink -f .

Quelle: Bash equivalent for PHP realpath() | Andy Skelton

Tags: ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 9. Dezember 2010

Fliegen, navigieren und kommunizieren

Ein äusserst spannender Tatsachenbericht, der die Vorfälle im Cockpit des Qantas Airbus A380 beschreibt, welcher ein Triebwerk vollständig und zwei Triebwerke teilweise verlor …

in our case, we had, as an example, messages that would say ‘aircraft CoG out of limits’ and was asking us to move fuel from horizontal stabiliser forward to bring it within limits and the next message would say the ‘THS transfer not available’. So one message contradicting another – that sort of thing, I’m sure would go back and be looked at. But at the end of the day common sense and airmanship takes over. We didn’t blindly follow the ECAMs. We looked at each one individually, analysed it, and either rejected it or actioned it as we thought we should. From a training point of view it doesn’t matter what aeroplane you are flying airmanship has to take over. In fact, Airbus has some golden rules which we all adhered to on the day – aviate, navigate and communicate – in that order.

Quelle: EXCLUSIVE – Qantas QF32 flight from the cockpit | Aerospace Insight | The Royal Aeronautical Society

… und ein gutes Beispiel dafür, dass man am Besten mit Qualitätsairlines fliegen sollte, die die Sicherheit ihrer Passagiere und Maschinen (noch) über die Kosten stellen.

Tags: , , , ,
Labels: Allgemein

1 Kommentar | neuen Kommentar verfassen

Mittwoch, 8. Dezember 2010

Wer soll für den Ausbau der Mobilfunknetze bezahlen?

Bloomberg reports that European carriers are looking to band together in an effort to demand that companies such as Apple and Google offering data-intensive smartphones make specific contributions to network infrastructure according to their usage.

Quelle: European Carriers Claim Apple Should Pay for Network Infrastructure – Mac Rumors

Man stelle sich vor, die Schweizerische Eidgenossenschaft tritt an Mercedes, BMW, Volkswagen (und wie all die anderen Autohersteller heissen) heran und verlangt künftig, dass sie sich an den Kosten für die Sanierung und den Bau neuer Autobahnen beteiligen. Denn schliesslich produzieren die Hersteller die Autos, die Strassen kaputt machen und für das Verkehrsaufkommen sorgen.

Hirnrissig? Die unfähigen CEOs der Mobilfunkunternehmen scheinen genau dieser Logik zu folgen. Mal eine Zwischenfrage: An welcher Uni wird eigentlich solcher Bullshit gelehrt?

Meine Meinung: Der Netzausbau soll gefälligst von denjenigen Kunden berappt werden, die es auch am meisten benützen. Aber anscheinend ist eine solche verursachergerechte Berappung anno domini 2010 nicht mehr mehrheitsfähig …

Tags: , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Montag, 6. Dezember 2010

Debian Etch auf Lenny aktualisieren

Heute hatte ich es mit einer längst vergessen geglaubten Virtuellen Maschine zu tun, auf welcher noch ein Debian GNU/Linux mit einem 2.4er-Kernel installiert war. Im Grunde ging es nur darum, die aktuellsten VMware-Tools auf dieser Kiste zu installieren — doch wie immer zog dies umgehend einen riesigen Rattenschwanz an Debugging und sonstigen Upgrade-Arbeiten mit sich.

Nach etlichem Pröbeln und apt-get-Endlosschleifen hier die Kurzzusammenfassung, wie man Etch auf Lenny bringt:

sources.list

Zuerst einmal muss man Etch auf den letzten verfügbaren Stand aktualisieren. Da die Etch-Pakete von den Mirrors verschwunden sind, muss man alle vorhandenen Zeilen in der Datei /etc/apt/sources.list auskommentieren und folgende Zeilen einfügen:

deb http://archive.debian.org/debian-archive/debian/ etch main
deb-src http://archive.debian.org/debian-archive/debian/ etch main

Quelle: Debian (etch): sources.list

GPG

Natürlich funktioniert das apt-get update auf meiner Installation nicht sauber, weil mir einige PGP-Schlüssel fehlen. Da deren Fingerprint angegeben wird, kann ich diese ganz simpel mit folgendem Befehl mit meinem System bekannt machen:

# gpg --keyserver pgpkeys.mit.edu --recv-key  010908312D230C5F 
# gpg -a --export 010908312D230C5F | apt-key add -

Quelle: [Debian] Apt-get : NO_PUBKEY / GPG error

apt-get upgrade && dist-upgrade

Jetzt folgt das obligate

# apt-get update
# apt-get install apt aptitude
# apt-get upgrade
# apt-get dist-upgrade

um die neuesten Pakete zu installieren. Das System ist nun bereit, um auf einen neuen Kernel gehoben zu werden:

# apt-get install linux-image-2.6.18-6-686

Ist der Kernel installiert und GRUB angepasst (geschieht automatisch), sollte man den Server einmal neu starten (reboot).

sources.list

Frisch zurück im System mit Kernel 2.6, werden die oben hinzugefügten Zeilen nun wieder auskommentiert. Stattdessen fügt man nun folgende Repositories in /etc/apt/sources.list ein:

deb http://mirror.switch.ch/ftp/mirror/debian lenny main
deb-src http://mirror.switch.ch/ftp/mirror/debian lenny main

deb http://security.debian.org/ lenny/updates main

Quelle: Upgrading Debian Etch to Lenny stuck on kernel/libc issue

aptitude

ACHTUNG: Anstelle dieses kritische Kernel-Upgrade nun mit apt-get zu machen, hält man sich lieber an die Anweisungen der Debian-Maintainer und verwendet aptitude. Dieses kann viel besser mit Abhängigkeiten umgehen (Stichwort: libc6, dpkg (mit Breaks) etc.)

# aptitude update
# aptitude upgrade
# aptitude dist-upgrade

Quelle: Howto Upgrade Debian 4 Etch to Debian 5.0 Lenny

Dies bringt alle Pakete auf den neuesten Stand, die für das nun definitive dist-upgrade zwingend sind.

Kernel-Sourcen

Da die Kernel-Sourcen für Kernel 2.6.18 irgendwie nicht verfügbar sind, aktualisiert man kurzerhand auf Kernel 2.6.26:

# apt-get install linux-image-2.6.26-686
# reboot

Damit die VMware-Tools korrekt installiert werden können, lädt man sich nun auch noch die korrespondieren Quellen herunter:

# apt-get install linux-headers-`uname -r`

VMware-Tools

Anschliessend spielt man die VMware-Tools in gewohnter Manier ein. Fertig!

Tags:
Labels: IT, Linux

1 Kommentar | neuen Kommentar verfassen

Montag, 6. Dezember 2010

Zensur: Die besten Schüler der Chinesen

We are shocked to find countries such as France and the United States suddenly bringing their policies on freedom of expression into line with those of China. We point out that in France and the United States, it is up to the courts, not politicians, to decide whether or not a website should be closed.

Quelle: Wikileaks hounded?

Tags: , , ,
Labels: Politik, USA

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 5. Dezember 2010

Welche Unternehmenskultur passt zu mir?

Ich muss nicht lange überlegen, in welcher Unternehmenskultur ich arbeiten möchte:

We’re in a creative-inventive market, not a safety-critical market like medicine or nuclear power.
— Netflix

Quelle: Netflix’s Reference Guide on our Freedom & Responsibility Culture

Tags: , ,
Labels: Arbeit, USA, Wirtschaft

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 5. Dezember 2010

Nur mal schnell mein Lizentiat mit SVN branchen …

Da ich mich langsam aber sicher daran machen sollte, meine im Herbst 2009 abgeschlossene Lizentiatsarbeit zu publizieren, nahm ich mir vor einigen Tagen vor, die über SVN versionierten LaTeX-Dateien zu branchen. Dies ist nötig, weil ich für die Publikation deutlich andere Anforderungen an das Format der Arbeit habe als beim Lizentiat.

Aus dem im theoretisch einminütigen Vorgang mit svn copy wurde dann aber leider ein mehrstündiger Installations- und Debuggingmarathon. Etwas, dass in der IT leider viel zu oft vorkommt.

subversion: Versuch 1

Was war geschehen? Zuerst einmal sprach mein unter Mac OS X installierter SVN-Client in der Version 1.4 nicht mehr mit dem mittlerweile auf 1.6 aktualisierten SVN-Server, der unter Debian GNU/Linux installiert ist.

Ein

sudo port install subversion

ging aber fürchterlich schief:

--->  Computing dependencies for subversion
--->  Fetching apr
--->  Attempting to fetch apr-1.3.8.tar.bz2 from http://apache.mirroring.de/apr
--->  Attempting to fetch apr-1.3.8.tar.bz2 from http://www.mirrorservice.org/sites/ftp.apache.org/apr
--->  Attempting to fetch apr-1.3.8.tar.bz2 from http://apache.multidist.com/apr
--->  Attempting to fetch apr-1.3.8.tar.bz2 from http://arn.se.distfiles.macports.org/apr
--->  Attempting to fetch apr-1.3.8.tar.bz2 from http://apache.mirror.rafal.ca/apr
--->  Attempting to fetch apr-1.3.8.tar.bz2 from http://www.ibiblio.org/pub/mirrors/apache/apr
--->  Attempting to fetch apr-1.3.8.tar.bz2 from http://archive.apache.org/dist/apr
--->  Verifying checksum(s) for apr
--->  Extracting apr
--->  Configuring apr
Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_apr/work/apr-1.3.8" && ./configure --prefix=/opt/local --with-installbuilddir=/opt/local/share/apr-1/build " returned error 77
Command output: checking build system type... powerpc-apple-darwin9.8.0
checking host system type... powerpc-apple-darwin9.8.0
checking target system type... powerpc-apple-darwin9.8.0
Configuring APR library
Platform: powerpc-apple-darwin9.8.0
checking for working mkdir -p... yes
APR Version: 1.3.8
checking for chosen layout... apr
checking for gcc... /usr/bin/gcc-4.0
checking for C compiler default output file name... 
configure: error: in `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_apr/work/apr-1.3.8':
configure: error: C compiler cannot create executables
See `config.log' for more details.

Error: The following dependencies failed to build: apr apr-util db46 sqlite3 readline cyrus-sasl2 openssl neon serf
Error: Status 1 encountered during processing.

XCode

Das Problem war rasch gefunden: Da ich meinen PowerMac G5 vor einigen Wochen von Max OS X 10.4 (Tiger) auf 10.5 (Leopard) aktualisiert hatte, gab es ein Problem mit dem C-Compiler. In Foren wurde empfohlen, XCode auf die neueste Version zu bringen. Ich hatte 2.5 installiert, doch aktuell ist Version 3.

Da ich eine Download-Orgie von Apples ADC-Server verhindern wollte, suchte ich in meinem Software-Ordner nach Installationsmedien für Mac OS X 10.5 — und fand diese tatsächlich. Im Ordner „Optional Installs“ lag dann auch prompt XCode 3 bereit.

subversion: Versuch 2

Nach einer einstündigen Installation von XCode war der Compiler ready. MacPorts stoppte aber beim erneuten

sudo port install subversion

mit einer anderen Fehlermeldung:

--->  Verifying checksum(s) for db46
Error: Checksum (md5) mismatch for patch.4.6.21.1
Error: Checksum (md5) mismatch for patch.4.6.21.2
Error: Checksum (md5) mismatch for patch.4.6.21.3
Error: Checksum (md5) mismatch for patch.4.6.21.4
Error: Target org.macports.checksum returned: Unable to verify file checksums
Log for db46 is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_db46/main.log
Error: The following dependencies failed to build: ...
Error: Status 1 encountered during processing.

Der Fehler ist im Netz bekannt. Zu seiner Behebung wurde empfohlen:

If you’re in a terrible rush, then you can do the following:

  1. run port install db46 (which is going to fail)
  2. change dir to where the port command downloaded the stuff (mine is /opt/local/var/macports/distfiles/db4/4.6.21_6)
  3. remove the patches
  4. do:
    for i in 1 2 3 4; do echo $i && wget http://distfiles.macports.org/db4/4.6.21_6/patch.4.6.21.$i; done
  5. run „port install db46“ again

Quelle: db46 – Checksum (md5) mismatch for patch.4.6.21.X

Der angegebene Pfad stimmte bei mir nicht. Und leider konnte ich die Anweisung mit der for-Schleife auch nicht in einer Shell ausführen und musste deshalb die Patches eigenhändig runterladen. Danach konnte subversion und seine Abhängigkeiten aber problemlos kompiliert werden.

svn copy

Nun endlich war ich ready:

svn copy http://repo.tld/lizentiat/ http://repo.tld/publikation/

Dies (und viele andere Aktionen auch, wie bspw. ein simples svn del resultierten in einem Segmentation Fault.

svn serf oder neon?

Wie ich nach einigem googlen herausfand, musste ich die svn-Konfiguration unter /etc/subversion/servers auf dem Debian-Server anpassen:

...
http-library = neon
...

Bis anhin war die verwendete Library serf gewesen.

Anschliessend konnte ich — mit ca. 2-3-stündiger Verspätung — endlich den Branch erzeugen und die ersten Anpassungen am Layout vornehmen.

Tags: , , ,
Labels: Allgemein

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 5. Dezember 2010

Wir haben doch alle keine Ahnung (mehr)

We have designed our civilization based on science and technology and at the same time arranged things so that almost no one understands anything at all about science and technology. This is a clear prescription for disaster.
— Carl Sagan

Tags:
Labels: Allgemein

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 30. November 2010

Debian-Installation hängt mit 1% bei „Select and Install Software“

Heute konnte ich auf der Arbeit wieder einmal einen ausgemusterten PC mit Debian GNU/Linux versehen und zu einem Server (cups mit Samba inkl. Windows-Druckertreiber) umwandeln. Obwohl heuer, 2010, die Installation eines Linux-Betriebssystems kaum mehr grosse Mühe bereitet, fanden sich auch dieses Mal wieder Stolpersteine.

Konkret: Die Installation hing beim Aktualisieren der Pakete über den Internet-Mirror von SWITCH. Der Fortschrittsbalken im Dialog „Select and Install Software“ blieb bei 1% stecken und bewegte sich auch nach mehreren Minuten warten nicht weiter.

Nach etwas Googeln fand ich als erstes heraus, dass man mit Druck auf die Tasten Ctrl-Alt-F4 in die textbasierte Log-Ansicht der Installationsroutine schalten konnte. Dort stand etwas in der Form:

...
Nov 30 15:04:00 in-target:  To continue, enter "Yes"; to abort, enter "No"

Die Installation hing also, weil die Entwickler der Routine nicht vorhergesehen hatten, solche Eingabeaufforderungen automatisch mit „yes“ zu beantworten.

Als nächstes startete ich deshalb den Rechner neu, spielte die Installation durch, vermied es aber tunlichst, die Netzwerkkarte zu konfigurieren. So wurde die Internet-Aktualisierung zwar übersprungen und der Rechner bootete nach der Installation brav in die Shell — doch ich war danach aber schlichtweg nicht in der Lage, das Netzwerk zu laden (wahrscheinlich hätte ich das entsprechende Treibermodul laden müssen). Es trennt mich somit noch ein weiter Weg bis zum bombensicheren Linux-Admin.

Also hiess es ein weiteres Mal zurück zum Start. Dieses Mal initialisierte ich die Netzwerkkarte wieder von Beginn weg mit den benötigten Informationen. Als der Balken aber erneut hing, wechselte ich mittels Ctrl-Alt-F2 in ein interaktives Shell. Dort versuchte ich mich der brachialen Methode:

# ps ax | grep aptitude
 5760 ?        Ss     0:00 aptitude ...
# kill 5760

Der blockierte Prozess wurde so nullkommaplötzlich abgetötet. Mittels Ctrl-Alt-F1 ging es zurück in den Installationsbildschirm, wo mir eine rotgefärbte Fehlermeldung entgegenleuchtete und mir mitteilte, dass der wichtige Prozess verschwunden war.

Ich folgte den Anweisungen auf dem Bildschirm, drückte „Continue“, um die Installation trotz des Fehlers fortzusetzen und wählte aus der nun angebotenen Liste aus, dass nun der Bootloader grub in den MBR der Festplatte geschrieben werden sollte.

Die Installation lief durch, der Rechner startete neu — und sobald ich mich eingeloggt hatte, führte ich folgenden Befehl aus:

# apt-get update
...
# apt-get dist-upgrade

So hievte ich mein Debian GNU/Linux 5.0.6 auf 5.0.7 — und der Tag war gerettet.

Tags: ,
Labels: Linux

1 Kommentar | neuen Kommentar verfassen