Vechten met informatie

kickboxer takes a hitWerken is altijd een beetje verzuipen in informatie, zeker als je zoals ik nog maar net in een groot telco-bedrijf met tal van slimme collega’s, langlopende projecten en complexe processen begonnen bent. Het ontbreken van een bedrijfs-kennisdatabank (knowledgebase) en van een document management systeem (DMS) dragen niet echt bij tot het vlot opslaan of terugvinden van relevante info. Fileservers zijn wel goed ingeburgerd, maar er wordt van uit gegaan dat iedereen daar op 1 of andere manier zijn weg wel op zal vinden. Very 90’s indeed! Futtta dus op zoek naar een oplossing …

Read more

Safari3 for Windows still sucks, but getting better at it

catching safari bugsOmdat ik in het diepst van mijn gedachten een Steve Jobs-fanboy ben en omdat ik zo graag met browsers speel, heb ik na mijn rant van vorige week vlijtig verder geëxperimenteerd met Safari3 voor Windows en speurde ik het wilde wereld web verder af naar informatie over mijn kleine probleempjes. En ik mag misschien nog niet jubelen, maar ik kan wel al aankondigen dat er toch al enige vooruitgang is:

Read more

futtta vist nu ook in het engels

big babelfishGe hebt het misschien al gezien (behalve de feedreader-crowd dan, maar die lezen het nu dus); ik heb een link toegevoegd om deze pagina’s op eenvoudig muisklik-verzoek automatisch in het Engels te laten vertalen. Akkoord, die vertalingen geven meestal maar een vage -en niet zelden humoristische- benadering van de originele tekst, maar die paar internationale bezoekers op zoek naar een poging tot howto’s kunnen er hun voordeel maar bij doen, niet?
Aangezien Altavista Babelfish (Ave Digital) de moeder van alle online vertalingstools is en omdat Google Translate voorlopig niet in de buurt komt qua aangeboden talenparen, gebruiken we de Vis voor onze verovering van de wereld.
Hoe van deze wordpress.com-blog naadloos naar Babelfish switchen? Wel, normalerwijze zou een klein stukje javascript kunnen volstaan, iets als het volgende bijvoorbeeld:

<a href=”javascript:orig_url=document.location; target_url=’http://babelfish.altavista.com/babelfish/tr?’+orig_url+’&lp=nl_en&btnrUrl=Translate’; document.location=target_url;”>vertaal me</a>

Maar op wordpress.com kunt ge zelf geen javascript invoeren (wat niet slecht is, voor ge het weet zit uw favoriete blogplatform met cross-site-scripting issues), dus dan moet een mens zijn plan trekken met gewone html.
De uiteindelijke oplossing is bijzonder eenvoudig: de translate-link gaat naar een php-scriptje op mijn linux-serverke. Dat script pikt de referer uit de $_server variabele, test of die in de lijst met toegestane domeinen zit (*) en doet, als dat domein snor zit, een redirect naar Babelfish waar de vertaalvisjes onmiddelijk aan het werk gaan. Met dank aan Systran, het Franse bedrijf dat instaat voor de eigenlijk vertaalsoftware, overigens.
(*) Ik heb vooralsnog geen ambitie om vertalings-gateway worden voor Jan, Pier en Pol. Pas op, als die jongens ergens een php-scriptje kwijt kunnen, wil ik hun dat wel bezorgen. En als ze het echt heel vriendelijk vragen (ik drink graag Trappistenbier, Chimay Triple valt tegenwoordig heel goed in de smaak), zou ik hen zelfs kunnen toevoegen aan dat lijstje toegestane domeinen.

The Reference joins Emakina

ref-logoHet gaat goed daar in Gent; Emakina koopt alle aandelen van The Reference over (van onder andere Beluga en een aantal privé-aandeelhouders als ik me niet vergis). Alexander heeft het hem toch maar geflikt. Voor John is het een weerzien met het bedrijf dat hij in de gouden jaren (pré bubble 1.0) mee heeft helpen uitbouwen. Voor de reffers die al jaren keihard mee aan de kar getrokken hebben (ge weet wie ge zijt); wreed gefeliciteerd gasten! En Anja; bloggen eh meiske 😉

Safari ate my wiki! (updated)

unknown error en geen toegang tot proxy instellingenSafari Beta3 voor Windows is uit, dit kon U al uitgebreid lezen in de pers en natuurlijk ook in blogland. Als wannebe-mac-user met een boontje voor alles wat niet MSIE6 (yuck) is, ben ik verplicht Safari te downloaden, installeren en testen.
En ik zal maar direct met de deur in huis vallen: blijf er zo ver mogelijk van weg, Safari3 beta voor Windows is een slecht vermomde alpha release!

Read more

Onclick event handler in A HREF’s?

De collega’s van marketing willen bij sommige URL’s onclick event handlers laten toevoegen die elke klik loggen bij een web analytics aanbieder. De Onclick-javascript functie haalt wat gegevens op en voegt die toe aan een request voor een -onzichtbare- image.
Mijn eerste gedacht; niet doen, de onclick wordt eerst uitgevoerd en als de request voor die image te lang duurt (op basis van onze ervaring gingen we uit van ongeveer 0,6 seconden) moet de gebruiker ook extra lang wachten op de pagina die hij/zij opvroeg (want eerst onclick en dan pas request voor de feitelijke pagina in de href). Ik leek hier ook bevestiging voor te vinden op quirksmode dus niet doen?
Dit weekend begon ik me echter af te vragen of dit wel kon kloppen; alle wordpress-blogs bijvoorbeeld, houden klikgedrag op ongeveer die manier (wel niet de traditionele onclick, maar met echte events) bij. En die web analytics aanbieder, zouden die zoiets in productie zetten als dat een probleem zou zijn? Een testje dan maar, met volgende code:

<html>
<head>
<script>
function exec_me() {
//bust cache
rnd=Math.floor(Math.random()*1000000);
url=’http://florentsmet.be/distel.jpg?n=’ + rnd;
//wait a few seconds and then fetch image
setTimeout(“loadimg(url)”,192);
}
function loadimg(url) {
//declare image
var i=new Image(1,1);
//load image
i.src=url;
}
</script>
</head>
<body>
<a href=”http://www.google.com/” onClick=”exec_me();”>gogoogle</a>
</body>
</html>

Ik ga dan in de logs van florentsmet.be (site van mijn vrouwken over haar overleden grootvader die kunstschilder was) kijken en zie dat die image in FF perfect geladen wordt als die timeout op een laag cijfer staat (onder de 190 milliseconden) en nooit als die boven die 195 ms. In MSIE lijkt 215 zo een beetje het punt tot waar dat werkt.
Is dat nu een race-condition? En hangt die dan af met welke browser je werkt? Heeft iemand hier ervaring mee, of een paar goeie links waarin dit beschreven wordt? En vooral, op basis van deze tests zou ik besluiten dat die onclick-logging van geklikte links geen probleem is. Iedereen akkoord daarmee dan?

Firefox 3 vandaag weer stapje dichterbij

Firefox CommunityAls alles goed loopt, wordt later vandaag Firefox3 Alpha5 gereleaset. Er zitten heel wat nieuwe features in versie 3, die je ongetwijfeld al elders opgelijst staan. Wat ik alleszins nog niet wist is dat Firefox3 xmlhttprequest (de javascript-kern van AJAX) ook “crosssite” zal toelaten. En ja, dat is belangrijk! De release notes van Alpha5 staan al online, de downloadlinks werken nu (14h10) nog niet. Maar ik ga die voorlaatste Alpha straks wel eens installeren. Living on the edge eh 😉

i-merge wordt boondoggle en irriteert me nu al mateloos

Na enkele weken aanzwellend tromgeroffel op de eigen site en in blogland (dankzij de best leuke ‘kies uw pixel’ actie), werd vandaag het doek van the-agency-formerly-known-as-i-merge gehaald. Boondoggle heten ze nu (uitleg over die naam op de Some minor issues-blog) en ze hebben hun site ook al proper gerebrand.
En daar loopt het wat mij betreft al direct flink fout; niet enkel de Britse acteur in de intro (die je probeert te overtuigen je telefoonnummer achter te laten zodat hij je kan terugbellen om je op je Boondoggle te beoordelen), maar de HELE SITE is FLASH! Arggggggg! En waarom? Alleszins niet omwille van de nifty features op hun site; die bevat eigenlijk gewoon een paar pagina’s met wat tekst, een paar logo’s, een kleine applicatie en een link naar hun blog.
Misschien mis ik iets, misschien zit er zoveel aan te komen waarvoor een flash-only-site absoluut onontbeerlijk is, maar de nieuwe Boondoggle-site mist in al zijn flash-only launch-euforie alleszins volgende mogelijkheden (en ik zwijg nu even over oude stokpaardjes als accessibility en open standaarden):

  • printen: ik zie … een lege pagina. Ik wil ergens wel aannemen dat de associatie van de nieuwe brand met een onbeschreven blad potentieel heeft, maar ik veronderstel dat boondoggle -met de erfenis van het sterke i-merge- toch voor meer staat?
  • copy/pasten: Waarom ik dat zou willen? Om hun contactgegevens op te slagen op mijn computer bijvoorbeeld? Dat moeten ze toch kunnen appreciëren, niet?
  • seo: geen content in de html = geen google-hond die naar je content kraait. niks. nada. noppes. Of wacht, ik was te snel, er is blijkbaar toch tekstuele inhoud;

This content requires Flash Player 8. Get Flash and return when finished installing.

Maar ergens betwijfel ik of dit de SEO is die Boondoggle beoogt …
Ik ben ervan overtuigd dat dit kinderziektes zijn die Boondoggle de komende dagen/ weken wel zal oplossen, maar spijtig genoeg is flashonlysitus een resistent virus dat vooral onder marketeers ravage kan aanrichten. Misschien kan Boondoggle, na succesvolle bugfixing, zijn klanten genezen met een op eigen ervaring gebaseerde case?

Integratie van externe content of applicaties

Hoe integreer je externe content (of applicaties) het beste? Ik ga hier de komende tijd even induiken met wat eenvoudige demo’s en lijstjes met pro’s en con’s, maar ik zie alvast volgende mogelijkheden:

  1. server-side binnenhalen en alles in 1 html-pagina naar de browser duwen
  2. in een popup steken
  3. in een iframe zetten
  4. in een div en die vullen met behulp van een stukje ajax

De keuze voor een bepaalde oplossing hangt ongetwijfeld af van een aantal factoren:

  • is de externe content statisch of dynamisch
  • wordt die externe content snel of traag ‘opgediend’
  • is de content echt extern (i.e. van een ander domein) of gaat het over een ‘lokale’ applicatie die los van de rest van de content staat
  • wat is de impact op usability
  • wat is de impact op “searchability”

Soit, veel vragen maar nog geen mooie antwoorden (wel vage ideeën en enkele vooroordelen). Iedereen die hier een mening over heeft of links naar goeie info kent: schieten in de comments graag (staan sinds kort open voor iedereen). Ik ben er U -zoals steeds- eeuwig dankbaar voor en in ruil mogen jullie dan binnenkort een samenvatting van mijn bevindingen verwachten 🙂

Levend vanop Webtech2007

Zit vandaag op Webtech 2007, een congres dat door cms-channel.be wordt georganiseerd. Heb er al een paar presentaties opzitten en terwijl Philip Achten de toehoorders de BIAC-case door de strot duwt, even de highlights tot nu toe opsommen:
Luc Van de Velde Director Developer & Platform group Microsoft Belgium had het over “Merging design and development in a 2.0 world”. Slotsom: MS biedt framework om aan alle behoeften te voldoen. Interessantste vond ik eigenlijk MS Silverlight, vroeger WPF/E, een browser-plugin (voor Windows en Mac, MSIE, Firefox, Opera, Safari, …) en vooral flash-killer. Maar daar kon/ wilde de man nog niet veel over vertellen, volgende week was het een grote conferentie daarover in Las Vegas.
Volgende spreker was Edwin Mol, freelance webdeveloper, zijn firma heet Siteware. Hij had het over de keuze van een framework en focuste daarbij op open source oplossingen. Naast Ruby on Rails had hij het vooral over een paar Java-frameworks, waaronder Google Web Toolkit, OpenLazlo, Wicket en Rife. Hij was vooral enthousiast over Rife, nadien nog even met hem gebabbeld en dat is een open source project van een Vlaming (moet nog opzoeken wie). Rife is stateless en component-oriented (in tegenstelling tot struts dat dan response/request-based is). Door middel van metadata die je aan je classes toevoegt, kun je -als ik het goed begrepen heb, ge kent mij- database-schema genereren en ook client-side validatie automatisch uit laten voeren door het framework. Veel meer info over Rife features staat hier. Wicket zou ook interessant zijn, is een open source framework van een Nederlands bedrijf blijkbaar, de volgende spreker had het daar ook over.
Voor de koffie-pauze hadden we nog een Nederlandse Apache en Java-guru op het programma; Ate Douma van Hippo. Hippo is een Nederlands bedrijf dat een open source CMS heeft en sinds kort ook een Portal oplossing. Moet hem straks nog eens aanspreken over wanneer hij vindt dat Portal-technologie ingezet moet/ kan worden. Zijn voorbeeld was alleszins ook weer voor een typisch intranet. Hij had het ook over de nieuwe portlet-specificaties (maar eentje onthouden; portlets asynchroon laden via ajax).
De mannen van Javablackbelt hebben ons hier op 20 minuten een cursus Hibernate gegeven. En straks proberen ze dat opnieuw, maar dan met Spring. Waarom ze dat doen? Omdat ze eigenlijk een developer knowledge website hebben, gratis voor developers maar betalend voor normale mensen. Ik snapte er geen bal van en toen ze kwamen vragen of ik een testje wilde komen afnemen (waarmee een blauw t-shirt te winnen viel) heb ik vriendelijk bedankt. Thomas en ik gaan pachten wel verplichten om zijn (verstofte) java-kennis te bewijzen 😉
Microsoft probeert ons nu, bij monde van Gunter Staes, te overdonderen met het gemak waarmee met Xaml, WPF, Ajax, Blend (een editor voor rich internet applications, beetje tegenhanger van flash/flex. De demo’s zijn straf, die Silverlight lijkt een krachtige plugin. Maar waarom naast Flash nog iets anders gebruiken? Beats me..
Terwijl de wireless hier wegviel, verliet Gunter Staes het podium en nam Noel Jaffré van Fatwire over. Hij had het over sattelite caches. Eigenlijk beschreef hij hier een door Fatwire gepatenteerde oplossing waarbij op ‘sattelite servers’ pagina componenten gecached worden ipv hele pagina’s. Niet helemaal duidelijk, maar lijkt erop neer te komen dat die sattelite servers eigenlijk minimale Fatwire presentatie logica bevatten en dat die, als een component niet beschikbaar is, dat aan het achterliggende systeem gaan vragen. Niet slecht, maar geen rocket science ook?
En dat was het voor mij, ik laat de Spring-cursus (zijn zelfs 2 sessies over) aan mij voorbijgaan. En de slides over GWT krijg ik wel, hopelijk.