Programmeren

DWH

Data Warehouse, de generieke term voor een applicatie die dient als database voor andere applicaties, zodat mensen in managementfuncties in één oogopslag kunnen zien hoe het bedrijf er als geheel voor staat. Meest van deze DWH oplossingen zijn vanwege de complexiteit haast onmogelijk te implementeren, en als dat toch wordt gedaan loopt het vaak uit op een mislukking.
Met een avondje brainstormen kwam ik op het idee het eens om te draaien. Wat als er een DWH applicatie is welke alleen een frontend is, waarna voor elke applicatie die data moet leveren een kleine plugin geschreven kan worden door middel van standaard protocollen? Dit kan gedaan worden door de ontwikkelaars van de externe applicatie, zonder dat er ook maar enige kennis van het DWH nodig is. Het beheren kan via een simpele en eenduidige webinterface. Mijn DWK kan daarna via verschillende connectoren verbinding maken met de externe databases en deze data real time weergeven. Afhankelijk van iemand zijn positie in een organisatie, kan meer of minder informatie vrijgegeven worden. Inzoomen op de data kan ook door simpelweg te klikken op wat voor jou relevant is.

Kleverrr

Voor de verandering eens een spelletje. Kleverrr is een website waarop je jezelf kunt testen op verschillende onderwerpen.
Geef aan welke onderwerpen je interesseren en je krijgt de ene na de andere vraag op je afgevuurd. Antwoord goed? Je kan dan gelijk door met de volgende. Bij het verkeerde antwoord krijg je te zien wat het antwoord wel moet zijn. Bij elk onderwerp zit een eigen kleurenthema met bijpassende achtergrond, het is dus afwisselend en spannend genoeg om te doen. Speel het elke dag en je merkt dat je kennis met stappen vooruit schiet.

JS-VDS

Grenzen tussen webapplicaties en normale computerapplicaties vervagen. Hierdoor is het ook nodig om de belevingswijze van applicaties aan te passen. Echter, soms is het toch handig om webapplicaties te kunnen gebruiken alsof het programma’s zijn die op de computer zelf staan. Normale websites bestaan vaak uit PHP en enkele regels Javascript om de interactie tussen de browser en de server mogelijk te maken.
Veel programmeertalen zouden ontoereikend zijn om op het internet gebruikt te kunnen worden. Hiervoor zijn ze te ingewikkeld of missen ze juist essentiële dingen. Visual Dialogscript daarintegen is een programmeertaal waarbij met enkele regels code al complete, complexe programma’s gemaakt kunnen worden. Hierom heb ik besloten om in Javascript een interpreter te maken die Visual Dialogscript code uit kan voeren. Met deze combinatie is het nu een kwestie van enkele minuten om een complete webapplicatie te bouwen die niet onder doet aan de look-and-feel van normale programma’s op de computer. Een ander groot voordeel is dat de applicaties cross-platform zijn; ze werken dus op elk type computer precies hetzelfde. Dit stelt programmeurs dus in staat om de klant precies zo te bedienen als dat ze gewend zijn.

Application Access Control

Eén van de nieuwe vooruitstrevende verbeteringen aan Windows Vista, is toch wel de User Account Control. Hiermee worden beperkingen opgelegd aan wat gebruikers kunnen aanpassen aan bestanden en het register om zo te voorkomen dat spyware en virussen zonder toestemming systeeminstellingen veranderen. Alhoewel dit in een simpele staat onder Windows XP ook al kon door het aanmaken van gebruikers als “Normale gebruiker” en niet als “Administrator”, zaten er daar toch nog wel wat kleine fouten in de implementatie.
Het door mij gemaakte Application Access Control vangt deze foutjes op. Zodra het is opgestart, houdt het een database bij van alle applicaties die de gebruiker toestemming heeft gegeven om op te mogen starten. Zodra een virus of spyware wil opstarten, krijgt de gebruiker een melding op zijn of haar scherm met daarin gegevens over het programma. Het is dan aan de gebruiker om te beslissen of het programma gestart mag worden of niet. Om te voorkomen dat het simpelweg op “Allow” klikken tot gevolg heeft dat ongewenste programma’s altijd opgestart worden, komt deze melding de eerste drie maal dat een programma start te voorschijn. De gebruiker hoeft alleen geïnstrueerd te worden om simpelweg alleen programma’s toe te staan die ze zelf hebben opgestart. Op deze manier kan Windows XP nog lange tijd gebruikt worden op computers die Vista nog niet aan kunnen.

jsImageGrid

Sinds het begin der tijden is er weinig veranderd aan het begrip “fotoboek”. Vroeger plakte men foto’s in een echt boek, schreef er wat tekst bij om deze boeken daarna tot in het einde der tijden te laten verstoffen in een kast. Met de komst van de digitalisering is er niet veel veranderd. Foto’s worden geupload op een site, voorzien van commentaar en blijven daarna wachten tot iemand ze inkijkt. Zolang niemand het desbetreffende fotoboek opent, zal ook niemand de foto’s zien.
Hier heb ik verandering in willen brengen. Ik heb een “image grid” gemaakt waarin foto’s ingeladen kunnen worden, samen met commentaar en overige informatie. Door het intypen van zoekwoorden kan er gefilterd worden wat er op dat moment te zien is. Na het intypen van “rood” worden bijvoorbeeld alle foto’s die iets met de kleur rood te maken hebben getoond. Al typ je “bloem” krijg je alle bloemen te zien. Combinaties zijn natuurlijk ook mogelijk, “rode bloemen” laat alle foto’s van rode bloemen zien. Daarnaast kunnen ook nog filters geplaatst worden, om bijvoorbeeld alleen foto’s uit een bepaald jaar te tonen.
Na het intypen van steekwoorden of zelfs al enkele letters, wordt er op het scherm dynamisch een selectie gemaakt van alle foto’s die iets met deze woorden te maken hebben. Wat er niet mee te maken heeft, verdwijnt uit beeld, wat er wel mee te maken heeft schuift mooi op zijn plaats. Alles is mooi geanimeerd. Op deze manier kan je dus altijd precies de foto’s zien die je wilt zien en zijn fotoboeken niet meer zo statisch als vroeger, maar één dynamisch geheel.

YouTube Player

Om lekker filmpjes te kunnen kijken op internet hoef je je handen tegenwoordig niet meer om te draaien. Even naar YouTube browsen, wat zoekwoorden invullen en een hele nieuwe wereld gaat voor je open.
Helaas is het een komen en gaan van nieuwe clips en het bijhouden van favorieten is dan ook een hele klus. Heb je net een hele lijst gemaakt, is de helft alweer offline gehaald. Deze YouTube Player download echter de filmpjes die je aangeeft direct naar je harde schijf. Hierdoor zijn ze altijd beschikbaar. Filmpjes kunnen geselecteerd worden door de ingebouwde browser die gelijk alle overbodige zaken van de overzichten af haalt (zoals banners, nieuwsberichten, etcetera). Op deze wijze kan je je eigen persoonlijke videocollectie aanleggen die je kunt blíjven gebruiken.
Het kan zijn dat deze applicatie niet meer werkt doordat YouTube zijn site regelmatig aanpast. Let op dat voor het afspelen van filmpjes van YouTube nog wel de goede codecs nodig hebt, zoals K-Lite Codec Pack.

NetTV

Steeds vaker zijn televisieprogramma’s live te volgen op internet. Sommige internetproviders broadcasten zelfs hun hele zenderaanbod live. Omdat mijn provider dat ook doet en ik graag TV kijk tijdens het computeren ben ik dus in het “IPTV” gebeuren gerold. Na een tijdje gewoon met Windows Media Player naar de streams gekeken te hebben, begon het me steeds meer te irriteren dat je WMP niet boven andere vensters kunt plaatsen zonder dat die steeds verdwijnt. Ook was het niet mogelijk om een lijst met alle TV zenders te maken.
Van het één kwam het ander, en zo maakte ik dus mijn eigen IPTV speler genaamd NetTV. Standaard blijft het programma boven alle andere geopende vensters staan, krijg je netjes te zien hoe ver de zender die je wilt bekijken is met bufferen (vooruitladen) en kan je makkelijk wisselen tussen zenders door de zenderlijst op te vragen en gewoon aan te klikken wat je wilt zien. Ook even snel zien wát er nu precies bezig is op TV is simpel, er is namelijk ook een knopje waarmee je zó naar de website van het TV station dat op dat moment aan staat kunt gaan.

sqlite emulator

SQL is een standaardtaal om met databases te praten. Het bevat maar een paar simpele commando’s waarmee je elke bewerking kunt uitvoeren die je maar wilt. Veel mensen gebruiken SQL in combinatie met PHP of ASP om dynamische websites te maken. Helaas is het installeren van een SQL server en de koppeling tussen de programmeertaal en de database vaak lastig te leggen. Hierdoor haken veel mensen al af met SQL vóórdat ze zijn begonnen met SQL commando’s.
Om hier verandering in te brengen, heb ik een online versie van een SQL client gemaakt. Je hoeft niets te installeren, maar kunt direct beginnen met het opzetten van een eigen database. Om te zorgen dat verschillende gebruikers elkaar niet in de weg zitten, wordt elke SQL-sessie gekoppeld aan het IP adres van de gebruiker. Mocht deze later terugkomen, dan krijgt hij of zij gewoon weer z’n zelf gemaakt database te zien. Doordat de emulator gebruik maakt van sqlite, zit niemand elkaar dan ook in de weg. Je kunt dus écht oefenen met SQL, zonder hiervoor enige moeite te hoeven doen!

Heggle.com

Een oud klasgenoot werd gevraagd een website te ontwikkelen waarmee gebruikers kunnen zoeken naar allerhande content zoals filmpjes, afbeeldingen en spelletjes. Om aan links naar deze content te komen, moest er ook een spider applicatie gemaakt worden dat de belangrijkste video-, afbeeldingen- en spelletjeswebsites kon benaderen en uitlezen. Het ontwikkelproces van Heggle en de bijbehorende spider applicatie heeft slechts 4 dagen in beslag genomen.
Om te zorgen dat het indexeren van websites goed verliep en dat gebruikers snel kunnen vinden wat ze zoeken, is er een database opgezet die totaal toegespitst is op zo snel mogelijk resultaten te kunnen vinden. Het resultaat daarvan is dat Heggle.com in nog geen twee maanden tijd al ruim 120.000 items heeft geindexeerd van 100 websites, aantallen die gestaagd blijven oplopen.

Voetmuis

In de ICT wereld (en ook de rest van het bedrijfsleven) krijgen steeds meer mensen last van RSI door het vele muizen. Er zijn al honderden apparaten op de markt om dit tegen te gaan; trackbars, joystickmuizen, tabloids, enzovoorts. Waarom niemand ooit bedacht heeft een muis te maken waarbij je je armen niet nodig hebt is mij nog steeds een raadsel. Daarom hebben we met een project op school een voetmuis ontwikkeld.
Het gebruik van de voetmuis is extreem simpel. Je zet je voet erop, doet het klittenband om en je bent klaar voor gebruik. Nu komt het volgende punt dat misschien wél een probleempje kan zijn. Stel dat de gebruiker ergens op wil klikken. Je kan de voetmuis zo maken dat je met je voet kunt klikken, maar als je dan iets wilt verslepen op je scherm en je moet je voet een aantal maal optillen om de muis te verplaatsen (omdat je een groot scherm hebt) dan kan je de knop niet ingedrukt houden. Onze oplossing hiervoor was om gewoon softwarematig te klikken. Naast het inpluggen van usb connector van de voetmuis in de computer, moet je ook een klein programma’tje installeren dat reageert op een toetsenbordcombinatie en in reactie daarop een muisklik simuleert.
De voetmuis is geen vervanging voor een gewone muis, maar een toevoeging. Als je even snel surft of een tekstbestand tikt heb je genoeg aan de voetbediening, maar als je daarna foto’s gaat bewerken is het gebruik van een gewone muis net zo fijn. De voetmuis kan zowel met het linker als met het rechter been gebruikt worden aangezien er tussen beide voeten niet zoveel onderscheid in precisie is als bij je handen. Daarnaast is het gebruik ervan ook nog goed, omdat je dan niet de hele tijd stil zit op een stoel maar de beenspieren stimuleert.

Middelpolder Ziekenhuis

Twee ziekenhuizen in Amersfoort zijn gefuseerd en hebben een nieuwe Service Desk afdeling nodig. Omdat de helpdesksystemen van beide ziekenhuizen niet op elkaar afgestemd zijn, zijn jullie gevraagd een nieuw systeem te ontwikkelen.
Bovenstaande tekst is zeer kort de opdrachtomschrijving van het project Middelpolder Ziekenhuis. Naast een Service Desk applicatie moesten er ook enkele andere applicaties geïnstalleerd en geconfigureerd worden en moesten enkele documenten geschreven worden over bijvoorbeeld (draadloos) netwerk beveiliging, een onderzoek over netwerkbelasting van digitale röntgenfoto’s en moesten de processen van de Dienst ICT in kaart gebracht worden.
De ontwikkelde helpdeskapplicatie is zeer simpel in gebruik. Het bevat een viertal tabbladen waar de Service Desk medewerker stap voor stap doorheen kan bladeren. Het eerste tabblad is om in te loggen, daarna kan er een klant gekozen worden, de calls van de klant ingezien, gewijzigd en toegevoegd worden en met het laatste tabblad kunnen alle open calls weergegeven worden. De applicatie maakt gebruik van een Microsoft Access database dat op een gedeelde netwerkmap op een server staat. In dezelfde map is ook een submap waarin bijlagen automatisch worden geupload als de Service Desk medewerker deze via het programma toevoegt. De applicatie is gebaseerd op de ITIL principes voor Service Desks.

Virgo B.V.

Tijdens de laatste onderwijsperiode van schooljaar 2004/2005 moest er door projectgroepen een fictief bedrijf opgestart worden. Een belangrijk onderdeel van dit project was het maken van een informatiesysteem om de administratie van een winkel te beheren. In acht weken tijd hebben we met zes projectleden het bedrijf Virgo B.V. opgezet, een computerwinkel gezeteld in de Breestraat in Leiden. Virgo verkoopt zowel computers als computeronderdelen en verleent reparatiediensten.
Om het de medewerkers van Virgo zo makkelijk mogelijk te maken, is er een ingenieus systeem ontworpen waarbij alle mogelijke administratieve handelingen via één scherm te benaderen zijn, een zogenaamde Multi Document Interface. Door te kiezen voor het juiste menu item wordt het betreffende onderdeel gelijk opgestart. De winkel bevat meerdere kassa’s, kantoren en werkplaatsen, dus is er gekozen om een Microsoft SQL server op te zetten waar alle clients verbinding mee maken. Deze SQL server bevat onder andere de productenvoorraad, reparatiestatussen, facturen en offertes, klantgegevens en enkele administratieve zaken.
Naast de opdracht om een intern informatiesysteem te maken, hebben we ook nog een website ontwikkelt. Deze website maakt gebruik van dezelfde Microsoft SQL database als de interne applicatie waardoor bezoekers informatie kunnen zien over onze producten. Daarnaast kan men gelijk bestellingen plaatsen in de vorm van een offerte, zodat de klant met de uitgeprinte zelf samengestelde offerte en/of enkel het opgeschreven offertenummer in de winkel de offerte direct om kan zetten in een factuur en de gekochte producten meteen meenemen naar huis.

Taskbar Projects

“Tabbed” is in. We doen aan “tabbed webbrowsen”, “tabbed tekstverwerken” en zelfs MSN heeft tabbladen. Waarom gebruikt Windows ze dan niet standaard bij de taakbalk? Je kunt wel knoppen per applicatie groeperen, maar je wilt ook wel eens per groep programma’s kunnen sorteren.
Taskbar Projects kan dit. Het bestaat uit in totaal zes tabbladen waar je zelf een tekst op kunt zetten en waaraan je programma’s kunt toewijzen. Ben je bijvoorbeeld met een werkstuk bezig, maak je een tabblad werkstuk en kieper je daar alle programma’s in die met dat werkstuk te maken hebben. Om niet zo afgeleid te worden door vrienden, stop je MSN en ICQ ook weer in een eigen tabblad. Windows Media Player, Kazaa en je Mp3 map stop je vervolgens in de muziek tab, enzovoorts. De tabbladen verbergen zich automatisch als je met andere dingen bezig bent en komen weer tevoorschijn zodra je met je muis aanstalte maakt om op een knop op je taakbalk te klikken. Zo maak je dus met een kleine aanpassing extra ruimte en kan je dus veel makkelijker switchen tussen programma’s.
Taskbar Projects werkt zowel op Windows XP als op Windows Vista, beide met bijbehorende visuele thema’s.

Wikipedia

Wikipedia, wie kent het niet tegenwoordig. Dé plek om informatie te vinden over wat je maar kunt verzinnen. Ik gebruik de online encyclopedie dan ook regelmatig. En daar komt ook gelijk mijn reden voor dit programma. Als je de Nederlandse versie van Wikipedia wilt gebruiken, krijg je eerst altijd een voorpagina waarin je je taal en dialect moet kiezen, wat niet automatisch wordt opgeslagen, het moet dus elke keer opnieuw. Echt snel is het dus niet op deze manier. Een ander punt dat ik jammer vind aan Wikipedia, is de menubalk aan de linker kant die zoveel ruimte inneemt met functies die je toch nooit gebruikt als je even snel iets wilt opzoeken.
Om verlost te zijn van deze problemen, heb ik een Wikipedia browser gemaakt. Het programma nestelt zich tijdens het opstarten automatisch in het systeemvak naast de klok, waardoor je het met één keer klikken kunt openen. Als je zoekt naar resultaten worden van tevoren netjes alle menu’s weggehaald, net als de [bewerk] links. Ook worden de bezochte pagina’s en ingetypte zoekwoorden automatisch onthouden, zodat je snel terug kunt bladeren naar een eerder bezochte pagina.

LinkSearch

Iedereen kent het wel. Wil je even snel een programma starten, je klikt op Start, opent Alle programma’s zo, wacht netjes tot alles is opgeklapt en kan het programma dan niet meer vinden. Misschien omdat de menu’s niet netjes gesorteerd zijn, of misschien omdat Windows de snelkoppeling van het programma dat je zoekt heeft verborgen omdat je ‘m al te lang niet meer hebt gebruikt.
Met LinkSearch is dat probleem voorbij. Je hoeft niet meer zelf door hele menu’s te zoeken maar LinkSearch doet het voor je. Het programma start automatisch met Windows mee op en wordt geactiveerd als je Ctrl, Shift en A tegelijk indrukt. Als je nu (een deel van) de naam van het programma dat je wilt openen typt, zie je vanzelf in een lijst alle programma’s waar die naam in voor komt. Simpel aanklikken of er met de pijltjestoetsen naartoe gaan en het programma wordt gestart.

Block PC

Deze applicatie heb ik gemaakt voor een programmeerwedstrijd waar het goed was voor de tweede plaats. Block PC is eigenlijk hetzelfde als het normaal locken van je computer zoals je doet door op Windowsvlaggetje+L te drukken. Het verschil zit ‘m erin dat Block PC bij elke poging tot inloggen een foto maakt met een aangesloten webcam. Op deze manier kan je zien of terwijl je weg was, iemand heeft geprobeerd in te loggen.
Zowel bij een goede als een verkeerde inlogpoging wordt een foto gemaakt. Als je het goede wachtwoord hebt ingevuld krijg je een overzichtscherm te zien met foto’s van de laatste 9 inlogpogingen. Je ziet het dus zo als iemand heeft geprobeerd met je computer te rommelen.

Batch scanner

Om in plaats van losse pagina’s in te scannen en dan te zitten met tientallen JPG bestandjes, kwam ik op het idee om ingescande pagina’s automatisch te bundelen. Het enige bestandsformaat dat hiervoor in aanmerking kwam, was PDF. En zo flanste ik dus op een regenachtige zondagmiddag een Batch scan applicatie in elkaar.
Een paar simpele drukken op de knop, even geduld tijdens het scannen en er rolt zó een keurig PDF bestandje uit met een digitale kopie van een boek, werkstuk, fotoalbum of verslag.

Basic OCR

Optical Character Recognition. Al jarenlang wordt mensen de belofte verteld dat het allemaal zo handig is. Je pakt een boek uit de bibliotheek, legt het op je scanner en binnen 10 seconden krijg je dezelfde tekst als Word documentje gepresenteerd. De meeste scanners krijgen ook gratis OCR software meegeleverd. Na installatie blijkt alleen dat de software tot hooguit 95% nauwkeurig is. Je bent dan ook vaak langer bezig met het verbeteren van fouten dan dat je tijdswinst hebt met het inscannen ten opzichte van alles zelf overtypen.
Met handgeschreven teksten is het helemaal aanknoeien. Er zíjn wel een paar OCR applicaties die handgeschreven tekst aankunnen, maar daarvoor moet je vaak extra groot schrijven, precies dezelfde letters en streepjes gebruiken en je moet ze vaak dagen lang “trainen” om je handschrift te herkennen. Omdat ik vaak dingen bedenk die ik uitgetypt op de computer wil hebben terwijl ik geen computer bij me in de buurt heb, heb ik mijn eigen OCR engine voor handgeschreven tekst ontworpen.
Toen ik na ging denken waarom bestaande OCR applicaties niet goed werken, kwam ik tot de conclusie dat dit is omdat er véél te veel tekens zijn die moeten worden herkend. Niet alleen alle 26 letters van het alfabet moeten gelezen worden, maar ook toevoegingen zoals é, è, ê en ë. Om dit allemaal te voorkomen in mijn OCR engine, heb ik besloten maar een beperkt aantal tekens te gebruiken, acht in totaal. Door deze tekens te vertalen naar getallen zodra ze zijn ingescand, is het daarna mogelijk om per combinatie van twee tekens (elk teken is overigens met één penbeweging op papier te zetten) er een letter of cijfer aan toe te wijzen. Op die manier kan je dus met 8 simpele tekens 64 verschillende letters en cijfers schrijven. Omdat er ook maar acht tekens gebruikt worden die zeer van elkaar verschillen, is er een herkenningsratio van 100%!

SPL

Sjoerd’s Programming Language, mijn eigen poging om een scripttaal te maken. Opzich werkte het heel goed, maar omdat er al zoveel programmeertalen zijn ben ik ermee gestopt. Het ontwikkelen en implementeren van alle functies en commando’s die ik erin wilde hebben zou namelijk zoveel tijd in beslag nemen en (voor mezelf) weinig voordeel opleveren boven programmeertalen als Visual Dialogscript en Visual Basic aangezien ik die allebei goed beheers.
SPL kende twee soorten instructies, functies en commando’s. Commando’s voeren iets uit en functies geven een waarde terug van bijvoorbeeld een berekening. Onderstaande commando’s en functies konden worden gebruikt met SPL:

Commando's

messagebox [tekst]
alert [tekst]
title [nieuwe titel]
if / else / end
while / wend
goto [naam label]
exit

Functies

#chr([nummer])
#asc([teken])
#add([nummer1],[nummer2],[nummer3],{enzovoorts})
#diff([nummer1],[nummer2],[nummer3],{enzovoorts})
#multiply([nummer1],[nummer2],[nummer3],{enzovoorts})
#division([nummer1],[nummer2],[nummer3],{enzovoorts})
#substring([tekst],[begin],[einde])
#input([tekst],[titel],[standaard waarde])
#title()
#time( h – m – s)
#equal([waarde1],[waarde2])
#unequal([waarde1],[waarde2])
#not([boolean waarde])
Om te springen tussen stukken programmeercode, heb ik zogenaamde labels gebruikt. Een label is te herkennen aan een tekst dat tussen < en > staat. Variabelen kunnen worden gebruikt door voor een woord een dollarteken $ te plaatsen.
De SPL interpreter is gemaakt in Visual Basic. De reden hiervoor is dat Visual Basic beschikking heeft over arrays die ik heb gebruikt om variabelen in op te slaan. Ook is het voor Visual Basic applicaties vaak niet nodig om extra bestanden mee te leveren aan de gebruiker, waardoor de gecompliceerde SPL scripts slechts 10 KB groot zijn.
Om het voor de gebruiker makkelijk te maken én houden, is er ook een kleine IDE ontwikkelt in Visual Dialogscript. Met deze IDE kunnen bestanden geopend, gecompileerd en uitgevoerd worden zonder dat hiervoor externe commando’s ingetypt hoeven te worden.

COD-Tracker

Online multiplayer spellen zijn vaak leuk om te doen. Veel voor mensen is de lol er alleen snel vanaf als ze niet bij kunnen houden hóe ze spelen. Ook willen sommigen pochen met hoe goed ze wel niet zijn. Bij een aantal spellen, zoals America’s Army: Special Forces, worden deze gegevens automatisch bijgehouden. Voor het spel Call of Duty bestond deze mogelijkheid echter nog niet. Met COD-Tracker bracht ik hier verandering in.
COD-Tracker bestaat uit een website en een applicatie die mensen die Call of Duty speelden moesten installeren. Deze applicatie werd automatisch geactiveerd als je Call of Duty opstartte en stuurde dan vanzelf statistieken door van hoe het de speler verging. Installeren van het programma was simpel. Men downloadde het installatiebestand, opende het, klikte een aantal maal op Volgende, vulde zijn of haar login gegevens van de COD-Tracker website in (of registreerde zich) en COD-Tracker werd geactiveerd.
De statistieken die door COD-Tracker werden verzameld werden automatisch geupload naar de COD-Tracker website. Hier werd het verder verwerkt, werden bepaalde killratio’s uitgerekend en werd netjes weergegeven dat de speler online was. Andere spelers en belangstellenden konden al deze gegevens live opvragen en zo de vorderingen van hun vrienden bijhouden. Het was zelfs mogelijk om met één klik op een link rechtstreeks Call of Duty op te starten en naar dezelfde server te gaan als waar vrienden speelden. Ook was het mogelijk voor mensen om hun statistieken op een eigen avatar neer te zetten, om deze zo op elk forum aan mensen te kunnen tonen.
Met het uitkomen van Call of Duty 2 is het ontwikkelen van COD-Tracker stopgezet omdat er nog maar weinig animo voor de eerste versie was. Daarnaast was het door bugs in de Call of Duty 2 3D engine niet meer mogelijk om degelijke statistieken te verzamelen. COD-Tracker is 10 maanden online geweest en heeft in deze tijd rond de 18.000 mensen van statistieken voorzien. Daarnaast heeft de website in deze periode ruim 500.000 pageviews gehad wat neerkomt op ongeveer 1800 pageviews per dag. Een doorslaand succes dus.

Forum Check-up Tool

Voor de tijd dat RSS en XML geaccepteerde standaarden werden om informatie van fora, weblogs en websites te distribueren was er al wel de noodzaak om goed op de hoogte te blijven van ontwikkelingen. Eén oplossing was alle fora die je bezocht openen met je browser zodra je je computer opstartte en dan elke 10 minuten op de F5 knop te drukken. Een andere oplossing was de door mij gemaakte Forum Check-up Tool te installeren.
De Forum Check-up Tool was een klein programma’tje dat automatisch in de gaten hield wanneer er op een forum een nieuw bericht werd geplaatst. Als er een nieuw bericht was gevonden, werd dit aan de gebruiker gemeld door middel van een popup zoals MSN Messenger dat ook doet bij nieuw ontvangen berichten.
Forum Check-up Tool was zowel een oplossing voor gebruikers, als voor server en forumbeheerders. Voor de gebruikers was het gemakkelijke gebruik één van de grote voordelen. Voor serverbeheerders was het vooral het lagere dataverbruik dat interessant was. Het programma deed namelijk één maal per 10 minuten een aanvraag bij de server om na te gaan of er nieuwe berichten waren. Dit kostte slechts 90 bytes, tegen de 20 KB (exclusief het laden van plaatjes) dat een normaal bezoek van een gebruiker aan een forum kost. Voor forumbeheerders was het grote voordeel dat bezoekers vaker terugkwamen en dat men sneller op geplaatste berichten reageerde.
Het programma is in anderhalf jaar tijd door ruim 50.000 mensen gedownload, geïnstalleerd en gebruikt. Vooral het verspreiden van het programma in samenwerking met het reeds opgeheven YourForum heeft het gebruik een flinke boost gegeven.

WYSIWYG

Op internet zijn al veel zogenaamde WYSIWYG -What You See Is What You Get- tekstverwerkers te vinden. De meeste werken op het principe dat de gebruiker zelf een lettertype, lettergrootte, kleur en overige opmaak mag kiezen. Voor persoonlijke websites en brieven is dit geen punt, want wie heeft er nu een standaard lay-out nodig voor een brief aan zijn of haar oma? Voor bedrijven is het echter een doorn in het oog. Een bedrijf wil namelijk als eenheid naar buiten treden, niet alsof er een stel amateurs werkt.
Met mijn WYSIWYG tekstverwerker kan dit eindelijk. Het maakt een einde aan de wildgroei van editors die steeds maar meer en meer functies krijgen die alleen maar misbruikt worden of waarvan de gebruiker überhaupt niet wat ze doen. Het idee is simpel; laat één persoon een opmaaksjabloon opstellen en gebruik deze hierna voor iedere gebruiker. De gebruikers kunnen tekst per tekstvak invoeren en per tekstvak hier een opmaak aan toewijzen. Daarnaast kan het opmaaksjabloon ten alle tijden worden aangepast, waarna alle documenten die ermee gemaakt zijn óók aangepast zullen worden.
Tijdens het bewerken van de tekst is er steeds één alinea de actieve alinea. Door middel van toetscombinaties of door het klikken op het scherm kan de alinea omhoog en omlaag verplaatst worden of kan een andere alinea geselecteerd worden. Alinea’s invoegen en verwijderen gaat met hetzelfde gemak. Zodra de tekst in een alinea is ingevoerd, kan door te klikken op de opmaakknop het opmaakprofiel voor die alinea gekozen worden, zoals ‘koptekst 1’, ‘koptekst 2’, ‘platte tekst’, ‘citaat’, enzovoorts.

vSchool

vSchool is een revolutionair product dat leerlingen in staat stelt om zowel thuis als op school aan projecten te werken, huiswerk te maken, bestanden uit te wisselen en te vergaderen via internet. Op deze manier kan zo goed mogelijk met moderne techniek omgegaan worden in het lesprogramma.
Zo, dat is de officiële inleiding van vSchool. vSchool is een op javascript en PHP gebaseerd raamwerk om applicaties op te draaien in het onderwijs. Omdat het voor veel scholen veel te duur is om elke 3 jaar nieuwe computers, besturingssystemen en software te kopen is vSchool als dé oplossing voor deze problemen ontwikkelt. vSchool draait op allerhande computers, van Pentium I tot en met Pentium IV.
De grootste tekortkoming van huidige interactieve lesondersteunende ICT middelen is dat altijd voor elke aparte actie een aparte pagina geladen moet worden. Het is dus haast onmogelijk om tegelijk in een virtueel boek te kijken én antwoorden ergens te noteren. vSchool lost dit op door multitasking ondersteuning en het werken met vensters. Gebruikers kunnen meerdere verschillende online applicaties naast elkaar draaien, snel wisselen tussen de applicaties en ze ook om beurten weer afsluiten als ze niet nodig zijn.
Zoals gezegd is vSchool compleet gericht op het onderwijs. Zo zijn de gebruikers standaard opgedeeld in klassen en projectgroepen. Daarnaast is er standaard een chatfunctie aanwezig zodat leerlingen (ook al zijn ze niet fysiek bij elkaar) toch kunnen samenwerken. vSchool is gemaakt door middel van javascript, PHP en HTML. Om data heen en weer te kunnen zenden tussen de server en de browser van de gebruiker, wordt er gebruik gemaakt van de Ajax-methode. Op deze wijze kan er een dynamische verbinding opgezet worden zonder dat de complete pagina herladen hoeft te worden. Vensters kunnen hierdoor onafhankelijk van elkaar werken.

Priki

Priki, een samentrekking tussen ‘proxy’ en ‘wiki’. Priki is een systeem waarbij er bij de sites die je bezoekt, automatisch woorden worden onderstreept. Ga je met je muis over die woorden heen, dan krijg je informatie over wat het woord precies inhoud.
Leuk en aardig, dat je met Priki snel de betekenis van woorden kunt achterhalen zal je denken. Maar dat is dan ook nog niet alles. Met Priki kan je ook heel snel van site naar site hoppen terwijl je specifiek naar een onderwerp zoekt. Zoek je bijvoorbeeld eerst op het woord ‘Nederland’ en je klikt dan op de onderstreepte woorden ‘Koningin Beatrix’, krijg je info te zien over Beatrix haar ambt. Klik je daarna op die pagina op het onderstreepte woord ‘geschiedenis’, krijg je netjes een overzichtje met de geschiedenis van het koningshuis.
Als je een pagina wilt openen, gaat Priki met een PHP script de betreffende pagina downloaden, zet tags bij relevante woorden en stuurt de aangepaste pagina naar de browser van de gebruiker. Een stuk Javascript code op de pagina veranderd alle links zodat ze gebruik maken van de Priki engine, onderstreept de woorden die bij de tags staan en zorgt voor de popup omschrijvingen van woorden. Klik je op een onderstreepte link, dan kom je gelijk op een nieuwe pagina die zowel de oude zoekwoorden als het net aangeklikte woord bevat. Zoeken door te surfen dus!

Online Office

Overal en altijd je bestanden bij je hebben. Tegenwoordig steek je gewoon een USB stick in je broekzak, maar wat als je die vergeet? Dan heb je in één klap helemaal niets meer. En uploaden op een FTP server is ook niet handig, want door allerlei proxyservers kan je er dan soms geeneens meer bij komen vanaf school of werk.
Nadat ik een keer een “WebOffice” heb gezien heb ik besloten er zelf een te maken die makkelijker in gebruik is. Niet meer knoeien met allerlei checkboxen die je moet aanvinken en buttons die je moet aanklikken voor je bestanden kunt verplaatsen of aanpassen, maar gewoon net zoals in Windows met linker en rechter muisklikken. Hieruit is Online Office ontstaan. Je kan simpel je bestanden uploaden, waarna je ze óveral vandaan kunt openen.
Om te zorgen dat je snel eigenschappen van bestanden kunt wijzigen zonder daarvoor andere pagina’s hoeft te laden, worden child windows gebruikt. Op deze manier zie je nog gewoon het bestandsoverzicht en zie je in één oogopslag waar je mee bezig bent als je met meerdere vensters tegelijk werkt.
Een andere leuke toevoeging aan Online Office is de hulp van een MsAgent. Normaal gesproken kom je deze tekenfiguurtjes alleen maar tegen in Microsoft Office maar ze kunnen ook gewoon op websites gebruikt worden. Op deze manier is het makkelijk de gebruiker wat uitleg te geven over kleine dingen, zonder dat deze hiervoor een hele handleiding door hoeft te spitten.

MyWebFTP

Alhoewel er veel Content Management Systemen zijn, zijn er maar weinig CMS-en die om kunnen gaan met PHP bestanden. Omdat ik vaak kleine wijzigingen aan sites wil maken, heb ik daarom een online bestandseditor gemaakt, MyWebFTP.
Met MyWebFTP kan je navigeren door mappen, bestanden en mappen maken, bestaande bestanden uploaden en bestanden wijzigen. Verwijderen en verplaatsen van bestanden is expres niet geïmplementeerd, omdat anders het gevaar bestaat dat je met één verkeerde muisklik een hoop werk kwijt bent. Daarnaast is het doel van MyWebFTP ook alleen het snel aanpassen van bestanden zonder daarvoor allerlei FTP en editor applicaties te openen.

JsForum

XmlHttp, tegenwoordig veel gebruikt. Een paar jaar geleden was dat wel anders. Veel websites hekelden om ook maar enige vorm van javascript te gebruiken omdat elke browser dat verschillende zou interpreteren. Niet dus. Om dat te bewijzen heb ik een begin gemaakt met een forum die totaal op javascript draaide. En wat bleek? Het werkt gewoon netjes in elke browser én je hebt veel minder code nodig dan bij een forum als phpBB, terwijl je toch alle functionaliteiten zo over kunt nemen.
Een voordeel van javascript boven gewoon PHP en HTML is dat je altijd gewoon de pagina kunt blijven zien. Als je een normaal forum hebt en je klikt op een link, moet álles opnieuw geladen worden en is je scherm de eerste paar seconden wit. Met JsForum krijg je gewoon netjes een schermpje waarin staat dat de pagina aan het laden is waardoor je niet teveel wordt afgeleid. Ook gaat het laden van pagina’s sneller omdat er niet elke keer opmaak en dergelijke gedownload hoeft te worden als je een nieuwe pagina opent, maar dat dat maar één keertje hoeft.
Een ander voordeel is bbcode. Normaal gesproken moet de server elk bericht dat binnenkomt opslaan in de database en zodra iemand die pagina opvraagt, de bbcode in HTML code omzetten. Omdat JsForum toch al op een programmeertaal draait, heb ik gelijk gezorgd dat javascript bbcode en smileys en dergelijke afhandelt. Dat scheelt niet alleen serverbelasting, maar het voorkomt ook dat je extra info zoals HTML tags en opmaakcodes heen en weer moet sturen om hetzelfde resultaat te krijgen.