WordPress 3.0 upgrade and the white blank screen

June 18th, 2010

When just upgrading this very blog from WordPress 2.9.2 to 3.0 using the automatic upgrade feature the upgrade succeeded at first. Even showing the admin page for that in the new design.

But then, every page either through the frontend or the admin backend simply showed a white blank screen. So it seems when initializing wordpress something goes horrible wrong. As now usful logs where found in the error log of apache it must be something internal.

Reading a nice post in the wordpress forum which refers to the very same problem lead to the conclusion that probably a plugin gone wild. So to resolve this I started to manually move single plugins to a disabled directory in wp-content/plugins. Which revealed wptuner as the plugin causing this issue. To get your blog back online, simply remove the wptuner plugin for now and you will be back in business.

As your blog might use some other plugins that are not compatible yet, your milage my vary here and you may need to disable/remove other plugins too.
Good luck on your journey to a very nice looking WordPress 3.0.

ÖTSM 2010 in Ampfing – Rennreport

May 25th, 2010

Diesmal war die Kartbahn in Ampfing (D) unser Ziel. Auf einer Bahnlänge von 1063m und einer Breite von 10-12 m konnten wir uns von Freitag bis Sonntag
so richtig austoben. Die Strecke bot ziemlich viele Kurven, eine schweißtreibende, angsteinflössende Schikane aber auch wunderschöne Geraden zum Angasen.

Entgegen aller Voraussagen war das Wetter bei weitem nicht ganz so schlecht wie angenommen. Die meisten Schauer hatten wir am Freitag abbekommen, wo halt für den Ernstfall im Regen geprobt wurde. Der einzige Nachteil, es war BITTERKALT.

Am Samstag war die erste Tat nach dem läuten des Weckers zu lauschen ob man verdächtiges darniederprasseln der Regentropfen hört; die zweite: Vorhänge auf, Blick nach draussen – ahhhh kein Regen, alles trocken; fängt ja schon mal sehr gut an! Nach einem ausgiebigen Frühstück machten wir uns sofort auf die Rennstrecke zur Motorenverlosung und zum freien Training.

Der Start des 6 Stunden Rennens erfolgte pünktlich um 14 Uhr. Leider fielen für das Team Nr. 60 eastreal power racing zwei Teilnehmer aus privaten Gründen aus , nämlich Nico und Hubert König, wir wurden aber durch Erich Klima verstärkt. Es hat sich herausgestellt, dass Erich nicht nur ein Topmechaniker sondern auch ein Weltklassefahrer ist. Es muss an dieser Stelle erwähnt werden, daß es immer noch trocken war! Da sich der Wetterfrosch aber nicht so sehr täuschen kann, setzte um 16 Uhr der Regen ein, welcher uns für den Rest des Tages immer wieder, mal mehr mal weniger, begleitete.

Ob es am Regen lag, an der deutschen Luft oder an einer mit zu wenig Schlaf gesegneten Nacht lässt sich leider nicht genau sagen, jedenfalls hatte das Team Nr. 28, genauer gesagt einer der Topfahrer vom eastreal power one Team grosses Pech. Er wollte unbedingt schon immer einen der berghohen Kurbs erklimmen, doch am Gipfel angekommen, wurde er auf sehr ungute Art fast böswillig abgeworfen und zwar genau gegen den gegenüberliegenden, berghohen Kurb… das hält natürlch auch das beste Kart nicht aus… es folgte eine lange Pause in der Box … fazit.. wieder im Rennen auf Platz 9 und letztendlich schaute für die Top-Favoriten nur Platz 7 heraus, eastreal power racing erreichte leider auf Grund eines verpatzten Reifenwechsels nur den 12ten Platz, wobei man lange Zeit des Rennens um den 9. Rang gefahren ist.

Gleiches morgendliches Ritual auch am Sonntag, gleiches Aufatmen wie am Samstag – kein Regen! Gut so!!!

Die Sprints (mein persönlicher Favorit) waren wieder durch Spannung gekennzeichnet. Lobend sei erwähnt, daß Hubert und Nico extra für das Rennen am Sonntag gekommen sind um uns zu unterstützen was sich auch gelohnt hat: Die Startaufstellung des zweiten Sprints konnte sich sehen lassen – ´nach dem Qualifying war Team Nr. 28 eastreal power one mit Fahrer Dominik Klima in der Poleposition und Team Nr. 60 eastreal power racing startete mit Nico König von dem 3 Platz aus. Zwischen den beiden “eastreals” ein “Kronehitler” Maunuel Tenschert , der sich in diesem Turn einen unglaublichen Zweikampf mit Dominik lieferte.. es war so spannend, daß den Zuschauern fast das Herz stehen blieb… einfach unglaublich… und in der letzten Runde.. in der Schikane durch ein für mich schon fast zu riskantes Überholmanöver zugunsten von Manuel Tenschert entschieden wurde.

Nicht anders zu erwarten gewann Team Nr. 28 eastreal power one vor Team Nr. 75 Kronehit (herzliche Gratulation Mädels und Burschen) und Team Nr. 77 Brenntag (ebenso herzliche Glückwünsche). Team Nr. 60 eastreal power racing wurde 11ter.

Besondere Leistungen müssen erwähnt werden- deshalb zeigen wir hier unser “Duracell Männchen” Roland Lammel auf, der durch rasend schnelle Zeiten beeindruckte, Petra Klima die ununterbrochen auf der Strecke war um die besten Momente mit der Kamera festzuhalten, Florian Folkmann und Thomas Urbanek ohne die so eine perfekte Organisation nicht möglich wäre und meine Wenigkeit die es geschafft hat nicht zu erfrieren ;o)

Ein herzliches Danke an das gesamte Team die immer das letzte geben und somit die Rennwochenenden unvergesslich machen.
Bis zum nächsten Mal – 12./13. Juni in Bruck an der Leitha.

Danke an Sonja (Sofska) für den Report!

Package your own Perl for CentOS (or RHEL) as RPM

March 28th, 2010

Of course perl is easy to build and you can build your own Perl is nice, but it needs to be managed on the target host where it is deployed. As internet access to CPAN is not available everywhere (we are talking about enterprise and carrier deployments here) updates need to be managable. At least on a basic level.

Excactly this can be done by just packaging up your contents of /opt/perl5 using a quite simple RPM spec file. It’s important to use the AutoReqProv: no flag to avoid rpmbuild thinking too much and trying to find out which modules are packaged here. On the other hand this requires, that you add certain libs that this perl depends on manually. There is a chance that you could just override %__findrequires macro here, but that does not work for me, as setting it on the package level yielded strange errors for me.

Here is an shortened example of how this specfile perl5-custom.spec should look. Your perl is expected to be found in /opt/perl5:

Summary: Perl 5 custom install to /opt/perl5
Name: perl5-custom
Version: 5.10.1
Release: 1
Vendor: quikit.at
License: Artistic 2.0
Provides: perl5-custom
Group: Languages
BuildRoot: /tmp/%name-root
Requires: MySQL-client-community >= 5.0.18
Requires: shared-mime-info >= 0.19
Requires: libxslt >= 1.1.17
AutoReqProv: no

%changelog
* Sun Mar 28 2010  5.10.1-1
- Initial packaging of Perl 5.10.1 in /opt/perl5
- Included Modules:
  Task::Moose, Task::KiokuDB, Task::Plack
  EV, AnyEvent, AnyEvent::*
  DateTime, Log4perl, DBI, DBIx::Class, DBD::mysql
  Starman, Starlet, Tatsumaki

%description
Custom Perl 5 with server-specific modules pre-installed

%prep
%build

%install
SRCDIR=/opt/perl5

rm -rf $RPM_BUILD_ROOT
echo "Copy complete perl5 base directry to buildroot"
mkdir -p $RPM_BUILD_ROOT/$SRCDIR
cp -Rp $SRCDIR/* $RPM_BUILD_ROOT/$SRCDIR/

%clean
rm -rf $RPM_BUILD_ROOT

%pre
%post
%preun
%postun

%files
%defattr(644,root,root)
%attr(755,root,root) /opt/perl5/bin/*
/opt/perl5/lib/*
/opt/perl5/man/*
%dir %attr(755, root, root) /opt/perl5/bin
%dir %attr(755, root, root) /opt/perl5/lib
%dir %attr(755, root, root) /opt/perl5/man

Then just run rpmbuild -ba perl5-custom.spec and you get an installable package, which can be updated over time by updating modules on your build host and repackaging it.

Build your own (faster) perl

March 27th, 2010

Using the perl that comes with your distribution is usually fine, but it has some limitations. When building a perl for a distribution it needs to be versatile and fit various needs. Therefor ithreads, the perl specific threading implemenation, is enabled there, to allow building modules that require threads to be available.

The downside is, that this threading code adds some quite low-level overhead, which usually means that a perl compiled with threads takes a performance hit of up to about 10%. So it sometimes makes sense to build your own perl, especially if you know it’s going to be used more on the server side, for long-running processes. Saving 10% in CPU cycles means potential for 10% in power saving or giving other processes a chance to run.

Building perl is really straightforward and usually just takes these steps:

  • Download the latest stable Perl from perl.org
  • Unpack it to a temporary directory
  • sh Configure -de -Dprefix=/opt/perl5
  • make && make test && make install
  • Perl is now installed in /opt/perl5

Now you can add any additional modules that you like, some recommended ones are:

  • App::cpanminus
  • Task::Kensho
  • Task::Plack
  • Task::KiokuDB
  • Mojolicious
  • Starman
  • Starlet
  • EV
  • AnyEvent
  • AnyEvent::MP
  • DBIx::Class
  • MongoDB
  • Data::FormValidator

Using the newly built perl just requires to update your path before starting your perl programs:

  • export PATH=/opt/perl5/bin:$PATH
  • /usr/local/bin/myperlprog

After setting the PATH just verify with perl -v that your perl include path points to /opt/perl5 (or any other path you chose).

Resolving LVM: Unrecognised LVM device type 259

March 20th, 2010

Trying to create a md raid1 device for 2 phyiscal 1TB disks failed unexpectedly with a strange (and very undescriptive error, that is only revealed when running with the verbose option (-vvv):

Wiping internal VG cache
/dev/md0p2: Skipping: Unrecognised LVM device type 259
Device /dev/md0p2 not found (or ignored by filtering).

The problem seems to be that the type 259 is simply not recognized, although it is defined in /proc/devices and known as blkext there.
So adding this to /etc/lvm/lvm.conf in the devices section:

types = [ "blkext", 64 ]

After adding this the mdadm command to create the md device succeeds:

mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sda /dev/sdb

Debian an Dell Latitude D830

January 12th, 2010

The Dell Lattitude D830 is a quite capable business notebook. While the notebook itself is not considered high-end it still allows for good configurations. A definite downside is the battery which lasted only for 1 year and had to be replaced with a new battery pack (not part of warrenty of course).

All the following descriptions refer to the current Debian Squeeze (testing) using Linux Kernel 2.6.32 (trunk-5) from unstable repository.

As Dell allows different setups of the same hardware model here are the specs:

Hardware Status
CPU: Intel Core 2 Duo T7500 (2.2GHz)
2MB/4MB L2 Cache, 800MHz FSB
Works
All cores recognized. Hardware Virtualisation (VT extensions) working (must be enabled in the BIOS).
Memory: 2GB (2x1GB) 667MHz DDR2 SDRAM Works
Storage: Intel SATA IDE Controller Works
Using ata_piix module. AHCI untested.
Graphics: Nvidia Quadro NVS 135M Works
Using binary nvidia driver (nvidia-kernel-source from testing)
LAN: Integrated Broadcom Gigabit Ethernet Works
Uses in kernel tg3 driver.
WLAN: Broadcom BCM4328 802.11a/b/g/n Wireless Works
Uses broadcom-sta module, also working with ndiswrapper
Audio: Intel HD Audio Controller Works
Works using ALSA
Keyboard: Hotkeys Partially Working
Most Fn keys work, except those not producing key codes (Volume, Display Highlight, Sleep is working)

For a different hardware configuration see this post.

Hardware List (as shown by lspci):

00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c)
00:01.0 PCI bridge: Intel Corporation Mobile PM965/GM965/GL960 PCI Express Root Port (rev 0c)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 02)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 02)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 02)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 (rev 02)
00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f2)
00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation Quadro NVS 135M (rev a1)
03:01.0 CardBus bridge: O2 Micro, Inc. Cardbus bridge (rev 21)
03:01.4 FireWire (IEEE 1394): O2 Micro, Inc. Firewire (IEEE 1394) (rev 02)
09:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5755M Gigabit Ethernet PCI Express (rev 02)
0c:00.0 Network controller: Broadcom Corporation BCM4328 802.11a/b/g/n (rev 03)

As most stuff works out of the box I will refer here only to the setup of the graphics controller and the wireless device.

Setup Nvidia Quadro NVS135M

First install the required packages (as root):

sh# aptitude install nvidia-kernel-common nvidia-kernel-source nvidia-glx

Then create the required kernel module (this assumes you have booted into the kernel already):

sh# m-a a-i nvidia
sh# modprobe nvidia

Be sure to configure your X server accordingly (here is a shortened xorg.conf):

Section "ServerLayout"
    Identifier     "Default Layout"
    Screen      0  "Screen0" 0 0
EndSection

Section "ServerFlags"
    Option         "Xinerama" "0"
EndSection

Section "Monitor"
    Identifier     "Generic Monitor"
    HorizSync       28.0 - 84.0
    VertRefresh     43.0 - 60.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Seiko"
    HorizSync       30.0 - 75.0
    VertRefresh     60.0
EndSection

Section "Device"
    Identifier     "Videocard0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro NVS 135M"
    Option         "AllowGLXWithComposite" "true"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "1680x1050 +0+0; 1280x800 +0+0; 1024x768 +0+0; 800x600 +0+0; 640x480 +0+0"
    Option         "AddARGBGLXVisuals" "True"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Setup Broadcom BCM4328 driver

First install the required packages (as root):

sh# aptitude install broadcom-sta-common broadcom-sta-source

Then create the required kernel module (this assumes you have booted into the kernel already):

sh# m-a a-i broadcom-sta
sh# modprobe wl

This will install and enable the broadcom-sta driver, which is known as the “wl.ko” kernel module. Be sure the unload all drivers using the device (e.g. ndiswrapper) beofre loading the wl.ko module.
Using the network-manager package a good mobile network configuration utility is available for CLI and desktop (system tray).

Enjoy!

Next »