News

Soundbyte 83: Insomnia

17 februari 2013

Toevallig schrijf ik deze Soundbyte in de week dat ik jarig ben geweest. Terugkijkend op afgelopen jaar moet ik concluderen dat het een heftig jaar was. Twee jonge kinderen die ons geen nacht fatsoenlijk door lieten slapen breekt je op een gegeven moment op. De wetenschap dat iedere ouder hier mee kampt scheelt iets, gedeelde smart is immers halve smart. Sommige mensen liggen nachten wakker omdat ze echte zorgen hebben, das nog veel erger.

Soms lig ik ook wakker van enthousiasme. Dit komt nogal eens voor wanneer ik op een project met een nieuwe technologie in aanraking kom. Ik kan het dan lastig los laten, en lig soms uren te bedenken wat er allemaal wel weer niet mogelijk is. Of toch nog even stiekem iets meer lezen…
Met deze slapeloze nachten ben ik juist wel blij. Ik merk hieraan dat ik m’n hobby nog steeds in m’n werk kwijt kan, gek genoeg ben ik de volgende dag meestal ook niet zo moe.

Microsoft

Eerlijk gezegd… was ik de afgelopen jaren niet zo gecharmeerd van Microsoft. Het bedrijf presenteerde iedere paar jaar een nieuwe technologie/software-pakket als de silver bullet; dwong je door het gesloten ecosysteem het te gaan gebruiken, om vervolgens weer een andere weg in te slaan. Het straatje WinForms, WPF, Silverlight en dan nu HTML/JS Windows 8 Apps is een aardig voorbeeld. Ook het tegenwerken van open source initiatieven door steeds een eigen ontwikkelde variant in het .NET framework te stoppen, ging behoorlijk tegenstaan.

Maar er lijkt iets veranderd te zijn. Het lijkt er op dat Microsoft de open source community eindelijk serieus begint te nemen. Het open sourcen van ASP.NET MVC, WebApi en Razor (in de zin dat je in ieder geval de source in kunt zien, en patches mag aanleveren) was een aardige stap. Maar voorbeelden als het ondersteunen van het Microsoft-medewerkers-hobby-project SignalR, of de wijze waarop de onlangs vrijgegegen Git integratie in Visual Studio tot stand is gekomen zijn positief te noemen.
Daarnaast lijkt het .NET framework met iedere release meer open te worden. Bijna alles is inmiddels te overriden, en er zijn tal van hooks om alternatieve implementaties te injecteren. De technologie stack is ook niet zo vanzelfsprekend meer. Voorheen gebruikte je voor webapplicaties zonder enige twijfel een Windows Server, met daarop IIS waarin een ASP.NET applicatie gehost werd. Mono bracht .NET al naar andere platformen, maar een initiatief als OWIN zorgt er nu voor dat ASP.NET webapplicaties niet perse in IIS gehost hoeven te worden. ASP.NET? Waarom niet iets als NancyFX gebruiken?
En dan nog alles wat er in de Windows Azure hoek speelt. Het is mogelijk Linux Virtual Machines aan te maken en de adoptie van Node.js is ook opvallend. Voor het harde rekenwerk zal C#/JAVA nog wel even gebruikt blijven worden, maar wellicht verwacht Microsoft ook dat we over enige tijd web requests voornamelijk afhandelen met iets als Node.js (dat eventuele zware taken vervolgens prima kan delegeren).
Een van de mooie dingen van bij Luminis werken vind ik, dat je zo veel van verschillende technologieën mee krijgt. Het helpt enorm bij het kiezen van de juiste tools voor de juiste problemen. Het is een stuk lastiger de beste keus voor een klant te maken, wanneer je slechts kennis hebt van de helft van de mogelijkheden die er zijn.

Javascript, Javascript, Javascript

Degene die mij kennen weten dat ik sinds zo’n 1,5 jaar behoorlijk wild ben van Javascript. (Even tussendoor: al gezien dat Javascript nu ook een assembly language is? Javascript is booming!) Sinds begin dit jaar heb ik het geluk mee te mogen werken aan de ontwikkeling van een WYSIWYG XML-editor in de browser. Er zijn tal van HTML-editors, maar aan die aanpak  kleven de nodige nadelen. Zo levert de transformatie van HTML terug naar XML vaak gedoe op, en kun je tijdens het bewerken van de HTML lastig direct schema-validaties uitvoeren. Ik zit nu dus sinds 1,5 maand tijdens werktijd fulltime in de Javascript, en ik moet zeggen: wauw. Mede door AMD en promises, en tools als Jasmine en Testacular is de ontwikkelervaring echt geweldig. Een jaar of 2 terug had ik niet gedacht dat ooit nog eens te zeggen.

Misschien dat de aanpak en gebruikte technieken interessant zijn om te delen. We laden een document (JsonML) clientside in een eigen, minimale DOM-implementatie. Dit om verschillen tussen de browser-implementaties te ontlopen. Deze in-memory DOM wordt gerenderd naar een HTML-presentatie in een contenteditable div. De input-events van de browser vangen we op, en op basis daarvan muteren we onze in-memory DOM. De onderdelen die hierin wijzigen, worden vervolgens opnieuw in de HTML-DOM gerenderd. Tevens is het mogelijk gemaakt clientside schema-validaties uit te voeren.
Mochten er mensen geïnteresseerd zijn in details en nadere uitleg, laat het me even weten. Wellicht is er voldoende animo om er een pizza-sessie aan te wijden.

Tim!

4 Responses to Soundbyte 83: Insomnia

  1. Dick says:

    Pizza, pizza, pizza!

  2. TL;DR. Pizza, pizza, pizza!

    Ik ben benieuwd naar de details van het project waar je aan werkt. Het lijkt mij leuk dat jij dat tijdens een pizza-avond nader toelicht.

  3. Angelo van der Sijpt says:

    Ik sluit me bij de pizza-roepers aan: doe hier vooral een sessie over, lijkt me geweldig interessant!

  4. Peter Doornbosch says:

    Om dit verhaal aan te horen ben ik zelfs bereid pizza te eten…

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *