Archive for March, 2006

Unicode en character sets

Monday, March 27th, 2006

To generate PDF’s on the fly, for standard letters and stuff, I started to use fop. This application can generate PDF’s, SVG’s or even HP PCL from an xsl/fo file. You can find more information at the apache fop site. Anyway, the PDF’s to be generated may contain accented letters like an Γ― or an ΓΉ. This needs to be converted to a iso-8859-1 or -15 character number, as those letters would otherwise be displayed as mangled characters.

Customer information is stored in a mysql database. Luckily, mysql is using the latin1 (aka iso-8859-1) by default to store data in tables. This way, it’ll be easy to convert characters with an ascii value larger than 127 to a &#number; value. Everything below 127 can just stay as it is, because it’s just plain ascii.

The php ord() function returns the ascii character number for a given character. So, to convert a string to something usable in xml/html, one would use a function like this:

function latin2entities($string)
{

$tmp = “”;
for ($i = 0; $i < strlen($string); $i++)

if (ord($string[$i]) > 127)

$tmp .= sprintf(“&#%s;”, ord($string[$i]));

else

$tmp .= $string[$i];

return $tmp;

}

Couldn’t be easier πŸ™‚

Besides that, the euro sign appears to have a unicode character number. To use it in xml with iso-8859-1(5), you’d have to use €: € See πŸ™‚

Lots of useful information on character set is yet to be read, when I have time..

Motor gehaald :)

Monday, March 27th, 2006

Om 7:25 ‘s morgens stapte ik de deur uit, op weg naar de hel die openbaar vervoer heet. Eerst met de zuidtangent naar schiphol. Dat was al een hel, omdat de bus vol zit en de helft niet fatsoenlijk kon zitten. Na een half uur tot 3 kwartier kwam ik op schiphol aan. Daar ff gezocht naar het station en na die gevonden te hebben, naar beneden om op de trein te wachten. Net voordat de trein kwam, zat ik nog ff naar m’n treinkaartje te gluren. Toen kwam ik erachter dat ik zo stom geweest was om op “Korting” te duwen, terwijl ik daar geen recht op had. Snel naar boven gerend om een nieuwe te halen en toen ik weer beneden kwam fluitte de conducteur al. Gelukkig kon ik er nog net in πŸ™‚ Normaliter zou ik om 9:13 in Den Bosch aankomen, maar door een stroomstoring bij Utrecht, hadden alle treinen vertraging. In plaats daarvan werd het 9:50. Toen werd duidelijk dat de bus naar Druten (lijn 165) maar 2x per dag komt, en dat ik in plaats daarvan de 166 naar Hedel moest hebben. Die gaat maar 1x per uur om :33, dus moest ik weer een tijd wachten. Rond 10:40 vertrok ik met de 166. Omdat ik niet wist waar in Hedel ik uit moest stappen, heb ik de buschauffeur gevraagd om me te vertellen waar ik uit moest stappen om over te stappen op de 165 (die in Hedel wel 1x per uur gaat). Blijkbaar kun je op buschauffeurs niet vertrouwen, want die moron was het vergeten. Het gevolg was dat ik de 165 net miste, en alsnog een uur kon wachten om naar Kerkdriel (de eindbestemming) te gaan. Om 12:05 (6 minuten te laat) kwam ie dan eindelijk. In Kerkdriel aangekomen, ben ik uitgestapt bij de verkeerde halte. Daardoor moest ik anderhalve kilometer lopen 😐

Maar gelukkig was ik dan eindelijk te plek. De Honda stond binnen (droog! :)) op me te wachten voor de proefrit. Nog ff geboomd met de eigenaar van de toko (Andre van Andel) over een en ander, en daarna de bovag papieren voor de proefrit ingevuld. De proefrit kon nu eindelijk beginnen πŸ™‚

De CB500 rijdt zoals verwacht. Het enige nadeel was, dat de ketting nogal stuk is. Erg langgerekt en eigenlijk niet lekker mee te rijden. Een nieuwe zou een hoop goed doen. Buiten dat stuurde het (ondanks de natte wegen door de regen) verbazingwekkend goed. Ik zat nog bij mezelf te denken dat de BMW daar misschien nog wel es een puntje aan kan zuigen. Die rijdt natuurlijk ook erg goed, maar het hoge gewicht van zo’n ding speelt em wel een beetje parten. De banden die onder de CB500 liggen, zijn bridgestone BT45’s. Ik kende deze banden al van m’n pekelfiets, maar ook onder deze fiets rijdt dat erg goed. Als er zulke banden zouden zijn voor de BMW, zou ik zeker overwegen om die eronder te knopen (de achterband is er wel, maar de voorband is alleen in een kleinere maat leverbaar).

De dude van de motortoko had liever niet dat ik te ver weg ging, en dat deed ik dan ook niet. Na een kilometer of 10 had ik al genoeg gereden en meteen besloten om het vehikel te kopen. 400 euries voor zo’n ros is gewoon absoluut niet duur πŸ™‚ Na de financiele afwikkeling (en verzekering en zo, wat ik al half in de trein had geregeld) kon ik dan richting noorden vertrekken. Ik had nl. om 14:30 een afspraak bij onze bank in Drachten. Het was een behoorlijk eind, maar ik was stipt om 14:30 bij de receptie aanwezig πŸ™‚

Zaterdagmiddag hebben we ff wat poetsspul (Nevrdul++) gehaald om zoveel mogelijk roest te verwijderen. Dat is aardig gelukt. Helaas nog geen plaatjes daarvan online, maar ik zal binnenkort wel ff wat in de gallery erbij poten.

Zondagmiddag hebben we een heel eind getoerd door de weerribben. Ik op de CB500, Johann op z’n oude suzuki monster, John op de BMW, Reynald op z’n CBR600F en schoonpa+carla op de guzzi. Het was een fijne rit met veel bochten, en wederom vond ik dat de CB500 een prachtig ding is om op te sturen. Hier kan Carla nog veel plezier aan beleven πŸ™‚

Om ff te illustreren over welk ros het gaat, hierbij een plaatje:

CB500

Is het niet geweldig πŸ™‚

Genoeg geblaat weer. Toedels! πŸ™‚


Morgen motor halen :)

Sunday, March 26th, 2006

Terwijl ik vorige week wat op marktplaats zat te gluren naar stalen rossen, kwam ik een honda CB500 tegen voor weinig. Normaal zitten die dingen boven de 1500 euries, maar deze koste maar 450 πŸ™‚ Uiteraard kun je voor een dergelijk bedrag niet veel verwachten en dat was inderdaad het geval. Vorige week zaterdag (18 maart) ben ik meteen naar de toko toe geknord waar ie stond om polshoogte te nemen. Het ding zag eruit als een motor van 450 euries.. Veel roest, ketting versleten en een tamelijk hoge kilometerstand. Dat mag de pret verder niet drukken, want als ze er 30k km. mee kan rijden, vind ik het allang best πŸ™‚

Ook al is de kilometerstand nogal hoog, ik verwacht wel dat zo’n ding nog wel 30k mee kan zonder problemen. Dat houdt in dat ze ongeveer anderhalf jaar kan rijden, zonder een andere aan te hoeven schaffen. En ze is natuurlijk nog een beginner, dus als ze ermee crasht is het niet heel ernstig (in vergelijking met een duurdere nieuwere wel te verstaan).

Enniewee, toen ik vorige week dus een proefrit wou maken, kwam ik erachter dat ik m’n rijbewijs niet bij me had 😐 Uiteraard wou de meneer (van Andel) de motor niet meegeven, omdat niet vast stond dat ik wel een rijbewijs had. Begrijpelijk natuurlijk, maar wel sneu, anders had ik meteen tot handelen kunnen komen.

Ik ga er een beetje vanuit dat ie naar behoren rijdt en dat er verder niks anders dan het genoemde aan mankeert. Daarom ga ik morgen met het OV (bah) naar Kerkdriel om de proefrit te maken, en tot handel over te gaan als alles inderdaad naar verwachting klopt.

Magoe, morgen weer vroeg dag dus het is tijd om te knorren πŸ™‚

Binnenkort meer nieuws over het vehikel.

o/~

Linux nfs locking issues

Thursday, March 23rd, 2006

Today I ran into a kernel whining about locking failures on the nfs box. It started immediately when I took the box into production. The kernel was uttering something like:

lockd: cannot monitor $ipaddress
lockd: failed to monitor $ipaddress

It appears I forgot to install the nfs-common debian package, which installed rpc.statd. When statd isn’t running, this behaviour will appear πŸ˜‰ The idea behind statd is that it gives some sort of lock recovery when an NFS box goes down.

Another thing to remember when this shows up πŸ™‚

o/~

Odd behaviour infortrend/LSI/2.4.31

Wednesday, March 22nd, 2006

At some point, a few disks went offline in one of our newsspoolers. The newsspooler is running linux kernel 2.4.31 (never change a winning team), with 2 infortrend 12-drive raid boxen connected to LSI (mpt) SCSI controller. Anyway, when I got the message from nagios, saying that something was going on on that box, I logged onto it, took a look at dmesg and saw that some disks were gone. They indeed were. As I hadn’t seen this before on any of our boxes with this same configuration, I took a look at the array on which the offline disks were connected to. The array mentioned nothing else than bad sectors on one of the disks.

As I didn’t want to screw up the filesystems on the offline disks, I then decided to reboot the raid array. The reboot went nicely as always. After that, I unloaded the mptscsih and mptbase kernel module, and reloaded it. The disks showed up normally again.

One or two days later, the same thing happened on the same box, with disks on the same array. I didn’t repeat the same procedure however, but just reloaded the mpt modules. It worked, without even rebooting the array 😐

The bad thing is that I can’t decide where the problem lies. As the raid array was complaining about bad sectors on some disk (stupidly I forgot to see which one it was), that might be causing trouble. However, that shouldn’t be a reason to get offline disks. On the other hand there’s the raid controller. Although I’ve seen more issues with the fiber channel LSI controllers, I haven’t seen any scsi error messages from the kernel. Normally when there’s scsi woes, the module will complain about it, and in all 4 (!) times it happened, there was nothing..

Anyway, we’re going to install a new box tomorrow morning and migrate the data on the box to the new one.