Archive for March, 2006

Mooie Regular Expression

Wednesday, March 29th, 2006

Email validatie is altijd lastig. Zou dit de ultieme regexp zijn voor email?

Verhuisd

Saturday, March 25th, 2006

Zo. De website is verhuisd. Ik heb een vps genomen bij unixshell#. Dus geen shared hosting meer! Maar wel veel meer schijfruimte (4,5 Gb) en het idee van een eigen server. Het ding is wel wat beperkt qua geheugen maar dat zal wel geen onoverkomelijke problemen opleveren.

Onthouden

Friday, March 24th, 2006

Om alles voor en inclusief de laatste ‘/’ te wissen:
update wikied_pages set path = substring_index(path, '/', -1);

mysql_insert_id() en InnoDB

Wednesday, March 22nd, 2006

Bij gebruik van transacties geeft de php-functie mysql_insert_id() verschillende waarden, afhankelijk van wanneer je het aanroept. Wanneer je mysql_insert_id() aanroept voor de commit, dan is de waarde correct. Echter na de commit is de waarde 0. Mysql “SELECT LAST_INSERT_ID” geeft wel de correcte waarde, maar dan weer niet na een ROLLBACK.

in PHP:
(more…)

Transacties in mysql 4.0 en php

Monday, March 20th, 2006

Transactiesupport zit in Mysql sinds versie 4.0 (werkt alleen bij tabellen van het type ‘InnoDB’). Bij een applicatie die hiërarchische data verwerkt eigenlijk noodzakelijk. Eén update statement fout en de hele structuur is weg.

De php functie accepteert een reeks sql statements en voert ze 1 voor 1 uit. Als er iets mis gaat wordt een rollback uitgevoerd.


function query($qrs)
{
if (!is_array($qrs) or sizeof($qrs) == 0)
{
return false;
}
array_unshift($qrs, "START TRANSACTION");
$ok = false;
$i = 0;
do {
$ok = mysql_query($qrs[$i]);
++$i;
} while ($ok === true && $i < sizeof($qrs)); if ($ok === true) { mysql_query("COMMIT"); return true; } else { mysql_query("ROLLBACK"); return false; } }

Sony Ericsson W800i

Saturday, March 18th, 2006

Synchronisatie van gegevens met de w800i is simpel. Met bluetooth en multisync werkt het als een speer. Zorg dat bluetooth op de telefoon en op de pc aanstaat. Voeg een nieuw paar toe, met 1 plugin IrMC Mobile Device en de ander ‘Backup’ of Evolution. Bij de opties van het IrMC Mobile Device kiezen voor bluetooth. Het scannen van de bluetooth devices levert een ‘w800i’ op. Als Test Connection goed werkt kan het synchroniseren beginnen. Het mooie van multisync is dat je ook andere diensten kan toevoegen, bv een iCal server.

apt signing keys

Thursday, March 16th, 2006

Bij GPG foutmeldingen (bv. ‘The following signatures couldn’t be verified because the public key is not available’) moet de key van debian geinstalleerd worden. Download van http://ftp-master.debian.org/ de key en voeg ‘m toe. Officiële mirrors gebruiken ook deze key.


wget http://ftp-master.debian.org/ziyi_key_2006.asc
apt-key add ziyi_key_2006.asc
apt-get update

Arnhem Groen

Thursday, March 16th, 2006

Arnhem

Amazon Storage

Tuesday, March 14th, 2006

Dit lijkt wel cool: voor erg weinig geld online storage. Je betaalt voor traffic en voor storage afzonderlijk, voor lage prijzen: $0,15 per gigabyte per maand (waarbij er per dag wordt berekend) en $0,20 per gigabyte dataverkeer. Het lijkt gericht op developers en je moet (vooralsnog) zelf je interface schrijven, er zit geen webinterface of wat dan ook bij. Maar het zal wel niet lang duren voordat iemand daarmee komt.

Recursief zoek en vervang

Tuesday, March 14th, 2006

Klote als er hard coded file paths in code staat, op een heleboel plekken. Onderstaand commando zoekt en vervangt in meerdere files. Aangepaste bestanden krijgen een .bak extensie bij het origineel.
find -type f -name \*.php -exec sed -i.bak 's|/opt/guide/webroot/HTML|/var/www/|g' {} \;

Alternatieven: prep.pl (Perl search and replace) en rpl. Voor Debian is een python script met de naam ‘rpl’ beschikbaar.