Game of memory in clojurescript
Waiting for ever and ever for a pre-ordered tablet I realized it would make a great platform for simple HTML/JavaScript games. So I wrote a very basic game of memory of my kids:
The code’s on github.
Waiting for ever and ever for a pre-ordered tablet I realized it would make a great platform for simple HTML/JavaScript games. So I wrote a very basic game of memory of my kids:
The code’s on github.
Upload progress is lastig; aan de server kant bijhouden wat de voortgang is en gerommel met JavaScript om dat dan weer aan de gebruiker te kunnen tonen. Eigenlijk zou een browser dit zelf voor je moeten doen — bij een download kan ik toch ook zien hoe ver ik ben — maar helaas is de realiteit anders. Gebruikers van je applicaties opschepen met een “hangende” browsers als zij een paar fototjes uploaden is natuurlijk geen optie.
Gelukkig ben ik niet de enige met dit probleem en kan ik, omdat ik mijn applicaties met Mongrel deploy, gebruik maken van de Mongrel Upload Progress plugin. Vol enthousiasme heb ik me dan ook op deze plugin gestort maar heb na het lezen van de instructies met een vies gezicht een stapje terug genomen.
Lees verder →Laatst werd me gevraagd wat mooier of beter is:
obj.getItem('Status') obj.getItem('Status') == 'Completed'
of
obj.getStatus() obj.isStatusCompleted()
Het laatste voorbeeld is beter omdat het minder foutgevoelig is; een tiepfoutje in het eerste geval kan heel lang blijven sluimeren terwijl in de tweede versie de foutmeldingen meteen om je oren vliegen. Daarbij vind ik de tweede variant ook beter leesbaar.
De degene die de vraag stelde, gaf me schoorvoetend gelijk. Maar zou dit niet betekenen dat hij deze methoden voor alle 10 statussen uit zou moeten schrijven en is dat dan niet ook weer foutgevoelig? Voorzichtig vroeg ik om welke taal het eigenlijk ging; “JavaScript”. Maar natuurlijk hoef je dat niet helemaal zelf uit te schrijven! JavaScript is, net als Ruby, Lisp en vele andere, een moderne taal en stelt je in staat te meta-programmeren, ofwel programma’s zichzelf te laten schrijven.
Dus geen gedonder met een preprocessor en/of rare annotaties meteen aan de slag met de programmeertaal waar je toch al mee bezig was!
Lees verder →Een collega en ik werken hard aan een web applicatie welke voor 90% uit client-side JavaScript bestaat. In een dagelijkse “kijken of het nog op IE draait”-sessie begon ik weer wild met debug statements te smijten. In het te testen geval ging er iets mis in een event handler en was de eventueel foutmelding nergens te bekennen. Dus begin ik vlijtig alle functies die in aanmerking komen te voor zien van een alert (of wat dan ook) om te zien of dat punt bereikt wordt.
Ugh, dit heb ik al zo vaak gedaan.. Dit moet makkelijker kunnen! Kan ik niet een soort AOP dingen doen?
Lees verder →Voor de blog bij m’n werkgever heb ik een artikel over Phobos, het JavaScript web framework op het Java platform, geschreven.
Update: I’ve recently written a JQuery version of this slideshow. It operates in roughly the same way and is a lot simpler. You can find it on github.
Geïnspireerd door een post bij code snippets heb ik met een kopje koffie zitten klungelen met javascript. Ik wilde graag een OO versie en daarmee dus de mogelijkheid om meerdere slideshows gemakkelijk op een pagina te kunnen plaatsen. En, in tegenstelling tot de inspiratie bron wilde ik dat de foto’s inelkaar over zouden gaan. Het resultaat:
Maar hoe werkt het?
Lees verder →De accesskey eigenschap in HTML kan de gebruikers vriendelijkheid van een web-applicatie enorm verbeteren. Het probleem is alleen dat je in de meeste browsers niet kan zien dat er sneltoest beschikbaar is voor een element. Een elegante oplossing hiervoor is een stukje CSS2 te gebruiken zoals a:after{content:" [" attr(accesskey) "]"}
. Helaas wordt deze constructie maar weinig ondersteund door browsers.
In een verloren uurtje heb ik een alternatieve oplossing gemaakt gebaseerd op JavaScript. Het onderstaande script doet twee dingen met een element met accesskey
. Het voegt een title
toe (tooltip) met daarin de toets combinatie. En, in het geval het element inline tekst bevat, wordt hier het eerste karakter opgezocht dat gelijk is aan de accesskey
en deze omsloten door een span
tag met als class
shortcut
zodat dat karakter te stylen valt.