BOFH

The Joy of High Level Languages

  • Posted on February 16, 2010 at 6:06 pm

When programming you should use a high level programming language. This is important since you do not ever again have to deal with the intricacies of the platform you are working on. Coding becomes paradise. And the Earth is flat, and pigs can fly. I’ve spent over ten days tracking down a problem of Awstats stopping to update the web statistics. The configuration was copied from the old server, as were all the logs, the previous configurations, everything. Yet Awstats did not generate new statistics.

Finally I found an unsuspecting line in the logs. It went: „Warning: Error while retrieving hashfile: Byte order is not compatible at ../../lib/Storable.pm” It’s just a warning, so it’s nothing to be worried about, right? And since we use a high level language surely the change from 32 bit to 64 bit Debian cannot make a difference, right? We code in high level, we do not deal with byte orders and other wordly stuff anymore. We are enlightened. And obviously we are fucked. Thanks to a hint on a blog somewhere the web statistics are working again.

I will continue my text indexer project today. It’s written in C++.

Remote Administration is Fun!

  • Posted on January 26, 2010 at 3:50 pm

In theory we all live next to the cloud and system administration could not be happier. You use the Net all of the time. You never need to go anywhere any more. All system are connected and you just need to log on and get started. Right. No.

  • First of all the remote management ILO interface disappears when being connected to by TCP ECN. The TCP/IP stack of the management module is simply broken. Deactivating TCP ECN.
  • After trying different ways to connect to the console, we settle for Internet Explorer 8 (we had to install Java, of course). Two other machines with Debian, Firefox and Java failed (despite ILO’s generous offer). The ActiveX plugin version of the KVM console failed, too.
  • The oybbql shpxvat UC server features Broadcom NetXtreme II BCM5709 Gigabit Ethernet cards with a proprietary firmware (bnx2-09-4.0.5.fw). This means that the Debian net-install CD is next to useless unless networking gets working.
  • The Debian installer likes to have its USB media with the firmware on the first prompt. If you fail to supply the media (mounted via ILO) at the first prompt, /dev/sda1 won’t be mounted (it only tries to mount /dev/sda instead).
  • Finally, the installer is working and has network. Unfortunately the ISP forgot to tell us the IP address, netmask and which one of the two NICs is patched (actually both are patch, but only one gets routed).
  • Meanwhile the ILO module kicked our session (the browser window closed). The session is still active, but the window is closed and can’t be reopened. You have to reset the ILO module in order to clear the session (rebooting the server does not help).
  • Rebooting.
  • Hoping for the best.

It’s fun, you should try it, too.

Well…

  • Since we mounted an USB device for the firmware GRUB got confused and a reboot showed “error 15” (file not found).
  • The Debian installer nicely ejected the CD, so it’s impossible to reinstall without asking for remote hands putting the bloody CD back into the drive.
  • Reinstalling…

Done. It worked. The system is able to reboot all by itself. Now let’s sync a few GBs of data from one server to another.

Things that just work

  • Posted on January 12, 2010 at 10:34 pm

A lot of people dream of gadgets, software and hardware that just works. Just like that. Complexity is the enemy of this simple concept. Our office features an Redundant Array of Coffee Machines (RAIC level 1, parallel brewing). In theory we have four coffee machines. One is broken and features the highest complexity, the third one is slightly less complex and works, the last two are quite simple and never broke down.

Passenger Ruby on Rails Server Error

Rails deployment that just works.

Software can be complex, too. Note the year 2010 bug in various applications. Even one of my projects featured a year 2010 bug (technically it was a January bug which would have happened always in January). The screenshot shows a nice example of an optimistic Apache module used for deploying Ruby on Rails code. If you count internal server errors as productive tasks, then the module is absolutely correct – a fine example of deployment that Just Works™.

Whenever I hear the word passenger I have to think of Dexter. I don’t know why.

SugarCRM-, Apache- und Browserschmerzen

  • Posted on December 30, 2009 at 10:58 pm

Ich habe gerade stundenlang Upgrades auf einem Webserver gemacht. Im Prinzip ist es ganz einfach, da es ein LAMP System ist. Wegen besonderen Richtlinien wird dort Apache, PHP und MySQL durch den Compiler gejagt. Macht ja nichts, ist recht straightforward. Nach etlichen Segmentation Faults mußte ich dann herausfinden, daß beim Build PHP die alte MySQL-Library bevorzugt. Im phpMyAdmin sieht man dann eine schöne Warnung. Führt tatsächlich zu Crashes. Nachdem dann alles funktionierte, habe ich mit SugarCRM angenommen.

Die SugarCRM Webseite ist grottenschlecht. Das ganze Machwerk muß ein Unfall gewesen sein. Man findet das passende ZIP Archiv mit den Upgrade-Versionen nur mit Google und viel sinnlosem Herumklicken. Wenn die Download-Seite eine URL nicht auflösen kann, dann wird man zu einem Download-Portal geleitet wo es natürlich keine Links zu den Upgrades gibt. Es gibt nur einen Upgrade-Wizard, der Golfbälle durch Gartenschläuche saugen kann (sprich nach wenigen Klicks ist man so ratlos wie zuvor; er reicht einem aber ein Handbuch). Nach Studium des Manuals kann man dann tatsächlich von 5.0.0 auf 5.2.0 und letztlich auf 5.5.0 gehen. Man muß dazu nur bestimmte Einstellungen in der php.ini verändern (20 MB Upload „Limit”, sehr hohe Execution Time, etc.).

Die Sahnehaube auf der Aktion war die Involvierung mehrere Browser, denn

  • mein Iceweasel (Firefox) auf meiner Workstation im Büro hat ein defektes Profil und zickt mit JavaScript und so herum,
  • der Konqueror anfangs die SugarCRM Seite (vor dem Upgrade) nicht laden wollte,
  • nur der Opera alles konnte (aber nur bis kurz vor Ende des Upgrades),
  • der Konqueror dann doch die SugarCRM Seite lud,
  • irgendwie aber trotzdem der Upgrade Wizard nicht ganz fertig war,
  • und ich schließlich auf den Iceweasel auf meinem Laptop ausweichen mußte.

Ist doch toll, oder? Wenn das Web die Zukunft ist, dann können wir bald den Laden dichtmachen. Browser sind scheiße – und zwar alle. Gilt ebenso für Betriebssysteme, also macht euch keine Illusionen von frischem Obst.

“X-Mas: Bah humbug”

  • Posted on December 15, 2009 at 9:06 pm

Everyone is suddenly keen on getting a thousand things done before Christmas. What a joy! Miracle Max from The Princess Bride comes to my mind.

You rush a miracle man, you get rotten miracles.

Mark my words. And the title of this posting is wildly out of context. The zombie mobs are running on the streets. Do not leave your house or go to a shopping mall! It’s not worth the risk.

  • Comments are off for “X-Mas: Bah humbug”
  • Tags:

Ruby On Snails Rant

  • Posted on December 4, 2009 at 10:56 pm

Ganz toll. Ich habe gerade stundenlang schlechte Dokumentationen gelesen, um eine simple Webapplikation zu installieren. Der Code läuft auf Schienen, weil es Ruby on Rails ist. Soweit ist das ja noch ganz gut. Man kann nun die Applikation mit einem Standalone Web Server laufen lassen. Das wollte ich nicht, weil ich einen Apache brauche. Macht ja nichts, gibt ja den Passenger. Als Fan von Dexter mag ich zwar keinen Apache mit einem Passenger haben, Ruby läßt mir aber nur schlechtere Wahlen. Die Installation vom Passengermodul möchte gerne das Installationsskript mit root Rechten ausgeführt haben. Krank. Im Web setzt bei vielen sofort das Hirn aus.

Jedenfalls gab es dann den Passenger, einen Apache, SSL/TLS Support und eine Konfiguration, um die Applikation einzuhängen. Stundenlange 404 später gab mir ein Blog den entscheidenende Tip. Man lösche einfach das mitgelieferte .htaccess und schon geht alles. Tatsächlich, es stimmt. Ganz toll, dafür braucht man Stunden, weil es 1001 Anleitung gibt wo die Leute alles anders machen. Natürlich ist PHP auch die Hölle, aber da werfe ich zumindest alles in ein Verzeichnis und es geht halbwegs (will heißen es wirft keinen 404).

Ich freue mich schon auf die nächsten Upgrades on Rails.

Top