Monday 3 November 2008

GoogleTalk en Kwekker in Miranda

Miranda is mijn favoriete instant berichten programma. Naast ICQ; voor de ouwe garde, AOL; voor de amerikanen, MSN; voor de nederlanders is er ook Jabber. Jabber maakt gebruikt van XMPP en kan ingezet worden voor allerlei bedrijfsmatige instant berichten.

Webapplicaties zoals Hyves en Gmail hebben ook een Jabber server, zodat je direct vanuit je IM-client zoals Miranda connectie kan maken en zonder de websites op te starten kan babbelen met je vrinden.

Een standaard installatie van Miranda kent een enkele jabber.dll in de pluginsmap, voor een nieuw account op een andere Jabber server moet je die simpelweg kopieren en hernoemen (Miranda wel even uitzetten hiervoor); ofwel gmail.dll en kwekker.dll. In principe heb je dus nu drie jabber.dll's.

Als je Miranada nu opstart zie je direct de twee nieuwe Jabber's in je lijst staan. De instellingen voor GIM (Google Instant Messaging) zijn als volgt:

Login server: gmail.com
Use SSL: on
Manually specify connection host: talk.google.com:5223
Keep connection alive: on

Voor Kwekker heb je de volgende gegevens nodig:

Login server: hyves.nl
Use TLS: on
Manually specify connection host: chatslave13.hyves.org:5222
Keep connection alive: on

Voor beiden geldt dat je gewoon je accountgegevens moet gebruiken met inloggen zonder apenstaarten of domeinnamen in je gebruikersnaam.

Bij Hyves kan je kiezen voor chatslave 11 t/m 24.

Friday 29 August 2008

Subversion post-commit RSS hook

Subversion wordt voor verschillende doeleinden gebruikt bijvoorbeeld voor documentatie en broncode. Kenmerkend is dat er over het algemeen meerdere mensen op een enkele repository werken. De wijzigingen aan de repository zijn doorgaans lastig te volgen. Er is een mogelijkheid tot het e-mailen van commits via de post-commit-hook. Voor een homogeen team is dat een prima oplossing, maar als je een team samensteld met verschillende disciplines en verschillende belangen, waarbij een deel projectdocumentatie verzorgt en een ander deel de technische realisatie doet, dan kunnen alle mailtjes erg vermoeiend worden. Een projectleider die een e-mail ontvangt van een commit die een bug fixt, zit hier niet echt op te wachten. Helemaal omdat er toch een heel aantal commits per dag zullen plaatsvinden. Prompt stroomt de mailbox over en leest en volgt niemand meer de, zo nu en dan wel belangrijke, wijzigingen. 

Ik heb daarom besloten om een RSS-feed te genereren van de commits. Op die manier kunnen personen in projectgroepen veel sneller en makkelijker de voor hun niet relevante informatie filteren en dus in zo weinig mogelijke tijd op de hoogte blijven. Mijn installatie gaat uit van een Red Hat Enterprise 5 omgeving met Subversion 1.4.6 en Python 2.4.3.

Eerst moet je ervoor zorgen dat je svn2feed.py bekomt. Die is te vinden in de repository van Subversion zelf op 
http://subversion.tigris.org. Dit zogenaamde hook script plaats je in de hooks map van de repos waarvoor je de RSS wilt genereren. Download en maak het uitvoerbaar met "chmod +x svn2feed.py".

Installeer PyRSS2gen (http://www.dalkescientific.com/Python/PyRSS2Gen.html). PyRSSGen is normaliter niet meegeleverd met Python. Na downloaden zorgt "python setup.py install" ervoor dat het wordt gebuild, gecompileerd en gekopieerd. Als je geen vreemde smaak distributie hebt dan komt het allemaal goed, anders moet je ook het installatiepad opgeven.

Nu moet de svn2feed worden gekoppeld aan het post-commit script. Indien post-commit niet bestaat en post-commit.tmpl wel, kopieer deze naar post-commit. Ik heb ervoor gekozen om meerdere repositories met hetzelfde svn2feed script aan te roepen. Daarom heb ik het op een plaats naast mijn repositories gezet en kan ik vanuit elke repository met onderstaande code in post-commit de feed genereren, let erop dat je de code invoert nadat de REPOS variabele is gezet.

# fetch reposname
PWD=$REPOS
IFS=/
SPLITS=$PWD

for i in $SPLITS; do
  NAME="$i"
done

IFS=" "

/var/svn/hooks/svn2feed.py -F rss --feed-file=/var/www/html/subversion/$NAME/feed.rss -u http://mijn.domein.nl/svn/$NAME/ -U http://mijn.domein.nl/svn/$NAME $REPOS

Tuesday 19 February 2008

DBMS

Volgens DB-guru Mike Stonebraker is het tijd om eens wat anders te gaan doen met databases. De RDBMS is al weer 20 jaar oud en achterhaald door het grote boze interweb. Waar vroeger een DBMS een enkel doel had, wordt een DBMS tegenwoordig voor veel meer zaken ingezet, waaronder het internet. Een gespecialiseerde DB zal in alle opzichten beter presteren dan een RDBMS. Zo zijn er onder andere tekstdatabases (o.a. Google maakt daar gebruik van) waarmee uiterst snel gezocht kan worden in een hoop informatie. En bijvoorbeeld gespecialiseerde datawarehouse databases.

CouchDB levert, welliswaar in alpha versie, een leuk idee. Het is een op tekst gebaseerd database systeem met een REST / JSON interface. Alle info wordt in bestanden opgeslagen en geindexeerd met Lucene.

Vertica is een datawarehouse database, een kolom gebasseerd selectiesysteem moet zorgen voor een uiterst snelle selectie van gegevens.

Linkjes:
Leesvoer
Time to rewrite DBMS, says Ingres founder
CouchDB
Vertica

Thursday 14 February 2008

Rare jongens bij Google

Google heeft zich met hun nieuwe toolbar wat mij betreft op glad ijs begeven. Ik ben van mening dat een websitebezoeker altijd een keus moet hebben en recht heeft op eerlijke informatie, ook voor wat betreft eventuele fouten.

Google heeft echter in hun nieuwe toolbar een 404-vervanger opgenomen. Elke pagina die kleiner is dan 512kb en een header 404 verstuurd wordt vervangen door een Google-pagina met zoekwoordsuggesties.

Als webmeester zijn we nu dus verplicht om onze 404's aan te passen zodat ze minimaal 512kb groot zijn, zodat we bezoekers de door ons bedoelde melding kunnen tonen.

Lees meer:
Seoker.com

Tuesday 12 February 2008

Grote jongens doen mee met OpenID

Op 7 februari is bekend geworden dat een aantal grote jongens mee gaan doen met OpenID. Google, VeriSign, IBM, Microsoft en Yahoo! zjin lid geworden van de OpenID gemeenschap.

Het is natuurlijk goed nieuws dat OpenID wordt erkend door de belangrijke organisaties in internetland, maar er schuilt ook een gevaar in. OpenID is relatief jong en veel in beweging. Met grote spelers zou mogelijk het idiele doel van OpenID voorbij gestreeft kunnen worden.

Voor diegene die nog niet weet wat precies OpenID is en waarom het zo cool is het volgende. Met OpenID heb je een digitale identiteit bestaande uit een gebruikersnaam en wachtwoord. Die digitale identiteit beheer je zelf, dus niet de overheid (Digid) of Passport (Microsoft). Die OpenID vraag je aan bij een OpenID provider en je gegevens beheer je daar helemaal zelf. Bij een OpenID-enabled website hoef je alleen in te loggen via je OpenID-provider. Je logt dus in op websites zonder opnieuw een gebruikersnaam en wachtwoord te hoeven verzinnen.

Voor meer info:
OpenID.net
OpenID directory
OpenID aanvragen via Studio-27
OpenID aanvragen via MyOpenID

Wednesday 23 January 2008

HTML 5

HTML 5 komt eraan, eindelijk wordt de webstandaard sinds 1997 herzien. Een bult aan nieuwe functionaliteit komt er bij waardoor de webbeleving ook echt het nieuwe millenium in kan.

Zo kunnen linken van te voren worden gecontroleerd op werking (zogenaamde dode linken). En komen er meer formulier elementen bij, zoals een URL-element en datum en tijd elementen. Tevens wordt het makkelijker om content in verschillende secties te tonen en gerelateerde content te koppelen.

Zodra de nieuwe versie is gereleased moeten er natuurlijk wel bladeraars zijn die HTML 5 gaan ondersteunen, hopelijk hebben ze in Redmond al rekening gehouden met de komst van HTML 5, zodat de nieuwe IE8 die in het eerste kwartaal uitgegeven gaat worden ook in de loop van het jaar zonder al teveel strubbelingen de uitbreidingen ondersteund. Natuurlijk zullen ook de jongens en meisjes van Firefox en Opera hun mouwen op moeten stropen, maar in beiden zit al rudimentaire ondersteuning.

Ik ben benieuwd.

Linken:
W3C Diff

Saturday 19 January 2008

Yahoo en OpenID

Yahoo! gaat gebruik maken van OpenID, zowel in client als in server optie. Zometeen wordt jou Yahoo! account dus een OpenID-account en kan je met een enkele gebruikersnaam en wachtwoord op verschillende sites die OpenID ondersteunen inloggen.

The Register: Yahoo! backs! OpenID!

Wednesday 16 January 2008

XML communicatie

Gegevens kunnen op veel manieren worden uitgewisseld tussen verschillende machines. Eén van die manieren is middels XML. Om ervoor te zorgen dat gegevens altijd op dezelfde manier worden aangeleverd, ingelezen en uitgevoerd moeten er afspraken worden gemaakt, er moet een interface worden bepaald.

In vroegere jaren werd dat gedaan door middel van een DTD (nog steeds een handige methode om je XML mee te defineren) maar ik geef toch de voorkeur aan XSD. In combinatie met het xs-schema van w3c is dit een erg simpele en mooie methode:


<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">


Bij het inlezen van de XML kan je de XML (sinds PHP 5) valideren tegen het schema door gebruik te maken van DOM. Ik maak daarvoor gebruik van het volgende.


function XMLValidate() {
libxml_use_internal_errors(TRUE);
$dom = new DOMDocument;
$dom->preserveWhiteSpace = true;
$dom->resolveExternals = true; // for character entities
$dom->load($xml); // xml file

$result = $dom->schemaValidate($xsd); // xsd file

// catch errors
$errors = libxml_get_errors();
libxml_clear_errors();

if (0 < count($errors)) {
return $errors;
}

return $result;
}


Met een paar regels en een XSD heb ik nu een check kunnen doen of het aangeleverde bestand voldoet aan de afspraak die ik met de andere machines heb gemaakt.

IRL heeft me dit al een paar maal gered van een hoop gepriegel om aangeleverde gegevens op juistheid te controleren.

Linken:
W3C's XSD tutorial
PHP's $dom->schemaValidate()

Thursday 10 January 2008

Betaalde e-mail

Betaalde e-mail is misschien een leuk idee om spam te bestrijden, maar dat kan nooit gaan werken. E-mail is nooit een vervanger geweest van een brief, van een echte brief, met liefde over vier kantjes uitgespreid, nee, e-mail is altijd een snel medium geweest, een paar regels, en een druk op de verzendknop. De luiheid die we hebben leren kennen bij het schrijven van e-mail zit nu zo ingebakken dat mensen geen geld over hebben om ervoor te betalen.

Het probleem van spam zit namelijk ook niet bij de verzender. Natuurlijk verzend de verzender de ongewenste bulk e-mail, maar dat hij (hij kan natuurlijk ook een zij zijn, maar voor het gemak hebben we er een man van gemaakt) doen door een gat in het ontwerp. E-mail is een idealistisch protocol dat goed werkt in een wereld met alleen maar 'de goeien' en zonder 'de slechten'. Alleen door het toepassen van filters is het mogelijk om ongewenste e-mail buiten de deur te houden. Helaas met als gevolg dat er zo nu en dan ook een gewenst mailtje in de prullenbak verdwijnt.

Kortom, een aardig idee, maar kansloos. De fout zit in het mail-protocol zelf. Alleen het neerzetten van een nieuw protocol gaat helpen het spam-probleem om te lossen.