Nullbta aka HansRNullbeta aka HansR - online sinds 2001. Tegelijkertijd baasje en knecht van het slechtst gelezen techblog van het noordelijk halfrond. XHTML en cascading style sheet fetisjist. Parttime usability neuroot. Object oriëntatie losert. SQL wannabe. De ongekroonde koning van de ongedocumenteerde spaghetticode. Verliefd op en ziek van SEO.

Nullbeta sluit zich aan bij de woorden van Dante – All hope abandoned, he who entereth here ...

100% spam: de kater komt later

Webstandaards

Sinds ik struikelde over de ontwerpen in de Zengarden ben ik overtuigd van het nut van webstandaards en het gebruik van stijlbladen. Standaard-compliant coderen heeft zijn voordelen. Zo draagt het bij aan een toegankelijkerinternet. En vergroot het de kans dat een website ook in de toekomst bekt. In mijn code volg ik daarom meestal de richtlijnen van het W3C. Webstandards are ammo. Lock and load! Amen!

Hey! Bezoek

Nullbeta.net is mijn persoonlijke website. Een plek om eens flink op de vuist te gaan met xhtml en stijlbladen. Waar ik me niet zoveel aantrek van wat kan of mag. En inhoudelijk meestal gewoon opschrijf wat ik op mijn lever heb.

Null, code knagen, cms in de polder, stijlbladen, gelaagd bouwen, MySQL, javascript, wannabe, php, Emmeloord, probleem of uitdaging, webservers, toegankelijk, document object model, bliksem pluggen, gebruikerservaring, web 0.9, zzp, organisch, puntkomma kwijt, webstandaards, diezijnz, uhhh zoekmachine spam? Beta. Nullbeta.

Null ...

Nul? Nee null! Uhh, wat is null?

... Beta

Adj. 1. important, of import - of great significance or value; "important people"; "the important questions of the day"

Waardering bij social bookmarks

14 Aug '06
Digg. Social bookmark website nummer één. Zelf ben ik niet zo gecharmeerd van Digg. Ik ben in ieder geval geen fanatieke gebruiker.

Maar het achterliggende principe van een social bookmarking algoritme vind ik dan wel weer interessant. Net zoals Google liever niks vertelt over de werking van de zoekmachine, is Digg allesbehalve spraakzaam over de manier waarop het diggen van links in zijn werk gaat. Her en der op het internet kom je natuurlijk wel een ideetje tegen over de factoren die bepalen hoe een artikel op Digg gerangschikt wordt. Maar aan het einde van de dag blijft het toch gokwerk.

Als ik zelf een social bookmarking website moest maken ... hoe zou ik dan bepalen in welke mate een bepaald item opstoomt in de vaart der volkeren? Het is aardig om eens praktisch aan de slag te gaan met een (mogelijk) antwoord op deze vraag. Hieronder lees je over mijn berekening / weging van items op een sociale ezelsoorsite.

De allersimpelste benadering
Het simpelste is natuurlijk om elk item een startwaarde van nul te geven. En elke keer als iemand een item promoot door op de "ik promoot dit item" knop te klikken de waarde met 1 te verhogen. Vanzelfsprekend is er een check die kijkt of Piet niet meerdere keren op de promoot link klikt. Slechts 1x stemmen is geoorloofd.

Wat doe je met items die een gelijke waarde hebben? Welk item staat dan hoger in de pikorde? De tijd die verstreken is sinds het aanbrengen van het item is in dat geval bepalend. Nieuwere items scoren hoger. Zij hebben immers minder tijd nodig gehad om een bepaalde mate van waardering te bereiken. Simpel. Eigenlijk een beetje te.

Gebruikerskarma
Karma: een positieve term om tot uiting te brengen dat all animals are created equal. But some animals are more equal than others.

Het is mooi om gebruikers van het social bookmarking systeem te waarderen. Actieve gebruikers bijvoorbeeld. Je zou dat bijvoorbeeld kunnen doen door te kijken naar zaken als:

- het aantal aangebrachte links ( * 0,005)
- het aantal keren dat een gebruiker een link gepromoot heeft ( * 0,001)
- het aantal comments van een gebruiker ( * 0,0001)
- het aantal keer dat zijn/haar profiel bekeken is ( * 0,0001)

Elk van deze zaken zou je een bepaalde waardering kunnen meegeven. Bijvoorbeeld: 1 + (aantal aangebrachte links * 0,005 + aantal links gepromoot * 0,001 + aantal keren profiel bekeken * 0,0001 + aantal keer commentaar op links * 0,0001) / 10. Een gebruiker die voor de eerste keer een link promoot verhoogt de huidige waarde met 1. Maar een actievere gebruiker wordt beloond met net wat meer gewicht.

Het potentiële probleem in deze berekening is de afweging tussen waardering van een actieve instelling en het voorkomen van teveel macht op basis van activiteit.

Andere gebruikersfactoren die mogelijkerwijs mee zouden kunnen wegen:

- de tijd dat een persoon al geregistreerd is. Een persoon die een half jaar lid is, is meer senior dan iemand die zich nog maar een week geleden registreerde. Hmmm. Dit kan als wegingsfactor gebruikt worden, maar alleen als er ook gekeken wordt naar de mate waarin de persoon in kwestie actief is. Oké Eerst het gemiddelde lidmaatschap in dagen bekijken. Zit de persoon in kwestie boven het gemiddelde? Zo ja, dan berekenen we het gemiddelde aantal aangebrachte links. Zit hij/zij hier boven? Geef de gebruiker dan wat extra gewicht.

- de kwaliteit van de links die door een persoon zijn aangebracht. Klinkt logisch. Maar hoe meet / waardeer je de kwaliteit van een link?

Views
Aan het aantal views (keren dat een link is aangeklikt) kan een meerwaarde worden toegekend. Immers, als er meer wordt geklikt op een bepaald item kan dat mogelijk worden uitgelegd als een grotere aantrekkingskracht (en dus meer potentieel). De overwaarde van impressies van een item kan als volgt tot uiting worden gebracht:

gewicht views = 1 + (aantal views van het betreffende item / totaal aantal views (alle items))

Demo
Er moet nog een heleboel aan gebeuren, maar de eerste (vereenvoudigde) aanzet voor een social bookmarks demo heb ik inmiddels online gezet. Het valt ook nog niet mee om gefocust te blijven. Ik was afgelopen weekend, toen ik hiermee aan de slag ging, snel afgeleid door allerlei blingbling dingetjes. Lees: AJAX code, stijlbladen enzo.

commentaar reageer     URL toevoegen aan del.icio.us voeg toe aan del.icio.us     nullbeta.net permalink permalink

Google ranking test met sleutelwoorden. Fly high?

02 Aug '06
Google ranking test met sleutelwoorden. Fly high?Bij toeval stuitte ik op een bedrijf dat zoekmachinemarketing en -optimalistatie in haar pakket van diensten heeft. Op hun website doen ze uit de doeken hoe zij dat aanpakken. Onder begeleiding van een tweetal voorbeelden waarin getoond wordt hoe hoog het betreffende bedrijf rankt op de keyword combinaties intranet ontwikkeling en content management nederland. Altijd in voor een probeerseltje wil ik met een stukje tekst over de aanschaf van een intranet / content management systeem eens kijken of ik daarbij in de buurt kan komen. Overigens vraag ik me af of de tweede zoekwoord sequentie een realistische is. Laat het woord Nederland weg en de SERPs zijn opeens een stuk minder bemoedigend.

Het onderstaande verhaaltje is trouwens niet geheel en al uit de duim gezogen. Ook in werkelijkheid is er momenteel een orientatie gaande voor wat betreft vervanging van het huidige intranet. Het liefst met koppelingen of integratie met een digitale sociale kaart.


We staan aan de vooravond van een belangrijke keuze. Ons intranet moet worden opgewaardeerd. De vraag is, welk content management systeem gaan we gebruiken? Het intranet moet bovenal flexibel moet zijn in de geboden mogelijkheden en functionaliteit. Met functionaliteit en flexabiliteit als uitgangspunt hebben we een aantal bedrijven die zich bezig houden met intranet ontwikkeling gevraagd om een demo van hun intranet product te presenteren.

Na een aantal intranet producten beoordeeld te hebben kan geconcludeerd worden: de keuze voor een content management systeem is in Nederland geen sinecure. Op het gebied van intranet ontwikkeling is de spoeling dun. Niet voor wat betreft kwantiteit. Er zijn in Nederland voldoende aanbieders van content managment systemen. De kwaliteit van de ge-evalueerde producten is vaak ronduit teleurstellend. Wij zijn er momenteel absoluut nog niet uit welk CMS geschikt is voor onze organisatie. Zelfs wordt overwogen om de ontwikkeling van het intranet in eigen beheer te doen. De kosten zullen bij een eigen implementatie fors zijn. Daar tegenover staat dat een maatwerk product zal in elk geval aan de functionele eisen die aan het intranet gesteld worden kan voldoen.

URL toevoegen aan del.icio.us voeg toe aan del.icio.us     nullbeta.net permalink permalink

DOM scripting demo: tabel data muteren

17 Jun '06
Een tijdje geleden schreef ik al over mijn plannen om een url review systeempje op te zetten.

Nou. Ik ben hiermee nog niet klaar. Maar om te zeggen dat ik stilgegezeten heb? Ook niet. Achter de schermen heb ik al het één en ander gedaan.

Echter, tijdens het schrijven van de code voor de achterliggende beheerpagina's werd ik afgeleid door spielerei met manipulatie van het Document Object Model (DOM). Natuurlijk kan ik de boel op de voor mij traditionele manier beheren. Maar een wat hippere manier van informatie muteren op basis van een mix van DOM scripting en asynchrone calls naar de MySQL database is aardig. En een goede investering voor toekomstige inzet bovendien.

Ik betwijfel of dit het eindresultaat wordt van dit projectje, maar in elk geval is dit een illustratieve demo van een manier waarop het Document Object Model ingezet kan worden om de informatie in de afzonderlijke cellen in een tabel te manipuleren.

P.s. In deze situatie is het niet geïplementeerd, maar in een praktijksituatie zou ik, op het moment dat de tabeldata ververst wordt, een asynchrone call doen om de mutaties naar de achterliggende database weg te schrijven. Da's verder een koekje (aka appeltje-eitje), dus daar maak ik me er hier ff niet druk om ...

DOM scripting demo: tabel data muteren

URL toevoegen aan del.icio.us voeg toe aan del.icio.us     nullbeta.net permalink permalink

Asynchroon updaten

15 Mar '06
Dit demootje laat zien hoe ajax op een (naar mijn mening) nuttige manier kan worden ingezet.

Een plukje data wordt in een tabel ingeladen. Door te klikken op een cel wordt de inhoud ervan in een tekstvak ingeladen. Vervang deze vervolgens door een nieuwe waarde en klik op OK. De nieuwe waarde wordt als lekker hapje naar de achterliggende database-query gestuurd. De betreffende tabel cel wordt ook meteen ververst door de innerHTML eigenschap te herschrijven.

Mijns inziens vooral handig als onderdeel van je backend code. Of om een beetje de wannabe trendy kat mee uit te hangen natuurlijk.

Check dan die demopagina

Asynchroon updaten

URL toevoegen aan del.icio.us voeg toe aan del.icio.us     nullbeta.net permalink permalink

Dynamische linkbouwer

06 Feb '06
Dynamische linkbouwerEen demootje met het MATCH sleutelwoord in MySQL om dynamisch links in te bouwen in een willekeurige tekst. Hoe werkt het?

Neem een (willekeurig) stuk tekst als uitgangspunt;
Bepaal met behulp van een reguliere expressie of er in deze tekst woorden staan van een (in het achterliggende script te definiëren) lengte;
Gebruik dit woord voor een MATCH AGAINST query die bepaalt of het betreffende woord in één van de andere records voorkomt;
Bouw het betreffende woord met behulp van de str_replace functie om tot een site-interne link;

Vervolgens kan er worden doorgeklikt naar een andere tekst waar het woord ook in voorkomt. En anders? Dan loopt de demo dood ...

Werkt vrij aardig. Behalve als er al interne ankers in de tekst staan. Dan wordt de link verkeerd gebouwd, het pad wordt bruut verpunkt en je wordt op een 404 getrakteerd. Grrr. Klusje voor de volgende versie. Nu even niet.

Nog een note on the side:
MySQL heeft voor het uitvoeren van een MATCH ... AGAINST query een fulltext index nodig die, voor zover ik weet, niet wordt ondersteund voor INNODB tabellen. Je tabel moet dus van het MyISAM type zijn.

Dynalink demo

URL toevoegen aan del.icio.us voeg toe aan del.icio.us     nullbeta.net permalink permalink

Favicon slurper

04 Nov '05
Het idee kwam ik op een andere website tegen: een stukje php code dat de favicon afbeelding van een externe website in zijn kladden grijpt en in een lijst toont. En ja, ik weet al wat je zeggen wilt, strict genomen is dit hotlinking en rippen van bandbreedte. Maar omdat een favicon meestal niet meer dan anderhalve kilobyte ofzo groot is kan ik me niet voorstellen dat iemand erover valt. Bekijk het resultaat ...

URL toevoegen aan del.icio.us voeg toe aan del.icio.us     nullbeta.net permalink permalink

Meer lezen?

Kwam je via een zoekmachine op deze website en staat de tekst die je zocht niet meer op de voorpagina? Op zoek naar (nog) meer leesvoer? In het blog archief vind je alle posts die hier op nullbeta.net staan. Netjes op een rijtje en gesorteerd op datum.