Alles met betrekking tot programmeren en IT architectuur.

ICT Bij De Tennisbond: Dubbele Fout!

Door sys64738 op vrijdag 16 mei 2014 14:11 - Reacties (30)
Categorie: Programmeren en architectuur, Views: 7.376

Het zonnetje laat zich weer wat vaker zien en de temperaturen worden steeds aangenamer. De zomer is in aantocht en voor vele tennisliefhebbers betekent dat ook weer de start van het competitie-seizoen. Lekker een balletje slaan en wat nazitten, gezellig toch. Helaas zit er een keerzijde aan al dit plezier: de draconische webapplicatie ServIt-2 waarin je van de KNLTB de uitslagen in mag voeren.

Toen ik afgelopen week met iemand mee zat te kijken die de uitslagen aan het invoeren was, vroeg ik uit nieuwsgierigheid hoe lang deze applicatie al mee ging. Mijn ogen puilden uit van verbazing toen hij me vertelde dat dit het nieuwe, net geÔntroduceerde systeem van de KNLTB was.

ServIT-2 was blijkbaar de langverwachte opvolger van het verguisde, originele ServIT platform. Er is ruim 5 jaar aan het nieuwe systeem ontwikkeld en de kosten zijn opgelopen tot 5,6 miljoen euro. Ik kan echt in de verste verte niet bedenken waarom een kern-applicatie van een sportbond zo veel geld en inspanning zou moeten kosten, maar goed.

Het heeft een enorme berg geld gekost dus het zal wel een fantastisch pakket geworden zijn, toch? Nee, dat kon er helaas niet af voor die bijna 6 miljoen. Het is een zeer gebruiksonvriendelijke app die gemaakt is in Microsoft Dynamics CRM 4.0. Om ermee te kunnen werken moet je een Windows XP, 2000 of Server 2003 machine hebben met IE 6.1. Met veel pijn en moeite werkt het ook nog wel op Windows 7 met IE 11 maar dan moet je allemaal compatibiliteitsinstellingen aanzetten. In Chrome en Firefox werkt het niet en Mac gebruikers hebben ook pech want daar werkt het sowieso niet.

Ja, laat het maar even op je inwerken. Het is inderdaad nog steeds 2014 en dan wordt er dus een applicatie opgeleverd die alleen in IE 6 op Windows XP werkt. En dat voor slecht 5,6 miljoen euro!

In een open brief erkent Erik Poel, de algemeen directeur van de KNLTB, wel dat er inderdaad problemen zijn met het systeem. In de testomgeving werkte alles prima maar nu het echt draait ineens niet meer. Dan is er toch echt iets mis met je test-strategie.

Daarnaast is hij kwaad over het feit dat hij een systeem opgeleverd heeft gekregen dat totaal niet functioneert. Hier kan hij toch ook de hand in eigen boezem steken. Als je een huis laat bouwen, ga je toch ook om de paar weken even kijken hoe het er mee gaat. Waarom ga je bij het herbouwen van je core systemen, a 5,6 miljoen euro, rustig achterover zitten en 5 jaar wachten tot het opgeleverd wordt en dan pas eens kijken hoe het er uit ziet en wat het kan?

Maar de echte schuld ligt natuurlijk bij Sogeti, de leverancier van al dit moois. Hoeveel tijd, resources en geld kun je verspillen aan het bouwen van een relatief simpele applicatie voor een sportbond? En hoe kun je nou in hemelsnaam anno 2014 software opleveren die alleen in IE 6.1 werkt? En waarom heeft Sogeti zelf niet aangedrongen op tussentijdse opleveringen en demo's? Als ik iets bouw, wil ik juist zeer regelmatig checken met de klant of alles nog volgens plan gaat of dat we toch bij moeten sturen.

In de open brief geeft Erik Poel ook aan dat er hard wordt gewerkt om de problemen die er zijn op te lossen en het pakket gebruiksvriendelijker te maken. Waarom denkt hij dat dit met Sogeti als leverancier Łberhaupt nog zou lukken? Als ze na 5 jaar zo'n puinhoop opleveren, denk je dan serieus dat ze in 1 of 2 maanden alles vlot gaan trekken.

Het is gewoon een gemiste kans. Het slechte imago dat opgebouwd was met de eerste versie van ServIt had behoorlijk opgepoetst kunnen worden met een mooie nieuwe versie. Hoe moeilijk is het nou om een degelijke webapplicatie te maken die wel gebruiksvriendelijk is en goed werkt op moderne browsers? En zorg er dan ook gelijk voor dat de applicatie goed werkt op telefoons en tablets. Dan heb je pas echt blije gebruikers. Je teamgenoot haalt een rondje en ondertussen vul jij op het terras even snel de uitslagen in op je telefoon. Hoe makkelijk wil je het hebben.

Het enige dat de KNLTB nu nog kan doen, is zo veel mogelijk geld terug zien te krijgen van Sogeti na deze wanprestatie en daarna helemaal opnieuw beginnen. En dit keer dan wel met een partij die zijn vak verstaat en gewoon een knap product oplevert, gebaseerd op moderne platformen en technologieŽn, binnen een normale termijn. We hebben het hier per slot van rekening niet over een grote bank of verzekeraar maar over een systeem voor een sportbond. Het heeft akelig veel weg van een gemiddeld rampproject bij de overheid en mijn ICT-handen beginnen echt te jeuken als ik dit soort verhalen hoor.

Hopelijk ziet de KNLTB eindelijk eens het licht en hoeven we volgend jaar niet meer in de rij te staan voor die Windows XP machine achterin de kantine, waarop Internet Explorer 6.1 overuren maakt.

Android SDK overflow

Door sys64738 op woensdag 27 juni 2012 12:10 - Reacties (5)
CategorieŽn: Programmeren en architectuur, Technologie en gadgets, Views: 2.842

Onlangs heeft QualComm de Snapdragon SDK voor Android uitgegeven waarmee het mogelijk wordt om specifieke Snapdragon features te gebruiken in je Android programma’s. Op dit moment wordt alleen de S4 8960 processor ondersteund maar binnenkort zullen meer processoren worden toegevoegd aan de SDK.

De QualComm SDK biedt onder andere betere gezichtsherkenning (met herkenning van lachen en knipperen met je ogen), burst foto opnames en surround sound opnames voor toestellen met meerdere microfoons. Dat klinkt allemaal heel mooi en iedereen is dus blij, toch?

Custom SDKs zijn in de Android wereld een bekend fenomeen en de meeste telefoonfabrikanten hebben hun eigen SDK om developers in staat te stellen hun uitbreidingen op Android te gebruiken. Maar als de chip-fabrikanten nu ook al eigen SDKs uit gaan brengen, zou er wel eens een wildgroei aan development kits kunnen ontstaan.

Met de uitbreiding van het aantal SDKs zal ook de versnippering van het Android platform verder toenemen en dat is een slechte ontwikkeling. Voor consumenten wordt het verwarrend omdat software zich op verschillende toestellen anders zal gedragen of helemaal niet zal draaien en voor ontwikkelaars betekent dit een veel langer en duurder ontwikkeltraject.

In Cupertino zullen ze niet zo rouwig zijn om deze hele ontwikkeling. De kracht van Apple wordt hiermee nog eens extra benadrukt: slechts een paar, redelijk op elkaar lijkende, hardware platformen, enkele iOS smaken en geen third party grappen en grollen. Lekker overzichtelijk en een makkelijk target voor ontwikkelaars voor wie het steeds meer een no-brainer wordt om iOS als primair platform te kiezen.

Oracle database gepruts

Door sys64738 op maandag 16 januari 2012 17:04 - Reacties (11)
Categorie: Programmeren en architectuur, Views: 3.957

Voor een project waar ik nu mee bezig ben, moet ik een Oracle database overzetten van een server naar mijn ontwikkelbak en daarna alles verhuizen naar een MySQL database. Normaal probeer is zo ver mogelijk weg te blijven van Oracle databases maar dit keer gaat het om een bestaand systeem en had ik dus niet zo veel keuze.

De database is niet zo groot en ook niet erg ingewikkeld qua model. "How hard can it be?" dacht ik nog heel even. Het antwoord is natuurlijk: very hard!

De export die ik aangeleverd kreeg was gemaakt met expdp (aka Data Pump) en bevat zowel de structuur als ook de data. Kwestie van even uitvogelen hoe impdp werkt (en dat is niet zo triviaal als je zou verwachten) en klaar is Kees. Niet dus. De character encoding van de bron en doel databases wijken blijkbaar af en daarom past VARCHAR data soms niet meer in de kolommen. Voor zover ik heb kunnen achterhalen, kun je zonder logfiles de encoding van de export niet meer achterhalen en omdat alles binair is kun je ook de data niet bekijken. Je zult het dus moeten doen met de errorcode en de foutmelding dat het niet past.

Dan maar door met een paar missende velden, niet het einde van de wereld. Maar dan kan ie natuurlijk ook zijn constraints niet aanmaken want er ontbreekt data die nodig is voor sommige relaties.

OK, dan maar door met wat missende velden en ontbrekende constraints. Om over te gaan naar MySQL heb ik vervolgens een export gemaakt van de tabellen in sql formaat. Dat er dan conflicten ontstaan met zaken zoals NUMBER, VARCHAR2 en to_date die door MySQL niet ondersteund worden, kan ik nog inkomen. Maar na al deze zaken te hebben opgelost, startte ik de import weer en kreeg ik de volgende melding voor mijn kiezen:

SQL Error (1136): Column count doesn't match value count at row 1

Enig speurwerk leidde tot de oorzaak van deze fout. SQL Developer gebruikt bij het maken van een export een komma als decimal seperator welke natuurlijk ook gebruikt wordt als field delimiter. Dus elk record dat een getal met cijfers achter de komma bevat, heeft bij het importeren ťťn value te veel. Hier door kan zelfs Oracle zijn eigen export bestanden niet meer inlezen.

Nou zijn relationele databases natuurlijk al tamelijk onnatuurlijk in een object georiŽnteerde wereld maar Oracle doet er nog een schepje bovenop en maakt het nog onintuÔtiever en minder werkbaar. Ik hoop dat ik de migratie er snel doorheen heb en dan gooi ik alles met Oracle in de naam van mijn laptop af (oh, minus Java natuurlijk).

Devoxx 2011

Door sys64738 op maandag 21 november 2011 20:26 - Reacties (4)
Categorie: Programmeren en architectuur, Views: 3.282

Afgelopen vrijdagmiddag teruggekomen van weer een fantastische week Devoxx in Antwerpen. Voor wie niet bekend is met het fenomeen: Devoxx is een java developers congres. Het duurt een week en er waren dit jaar 3350 bezoekers. Nerd paradise dus. Hoewel het met het gehalte echte nerds eigenlijk wel meevalt. Java developers anno 2011 zijn tamelijk sociaal begaafd.

De opening werd ook dit jaar weer verzorgd door de voorzitter van de BeJUG Stefan Janssen. Hij heeft een apart soort humor waar je van moet houden… en dat doe ik dus duidelijk niet. Maar los daarvan kun je alleen maar respect hebben voor de manier waarop hij de zaken voor elkaar heeft. Devoxx is super goed georganiseerd (op de wifi-verbinding na dit jaar) en het is een feest om er rond te mogen lopen.

Op het einde van de opening van Stefan maakte hij bekend dat er in april 2012 Devoxx Paris plaats zou gaan vinden. Yes! Twee keer per jaar naar Devoxx. Helaas sloeg die stemming als snel om in mineur toen direct daarna werd aangegeven dat 75% van de tracks in het Frans zouden worden gepresenteerd. Door het Franstalige karakter zal Devoxx Paris weinig buitenlandse sprekers en bezoekers trekken waardoor niet dezelfde sfeer zal ontstaan als op Devoxx en ook niet hetzelfde niveau zal worden gehaald.

Na de opening kon de echte actie beginnen. Oracle mocht het spits afbijten met de keynote van de dag over java SE en EE. De presentatie was goed verzorgd maar inhoudelijk was het allemaal oud nieuws waardoor het een saai geheel was. Geeft niet, snel door naar de volgende tracks. Maar helaas was mijn keuze in tracks de hele dag wat ongelukkig en was de eerste dag dan ook vrij teleurstellend.

Qua organisatie was het wel weer allemaal prima geregeld. Je kreeg dit jaar een polsbandje met streepjescode dat naast toegangsbewijs ook diende voor het ophalen van je lunch en goodies tot het aanmelden bij standhouders. Ik vond het beter werken dan die badges en keycords van vorige jaar maar niet eidereen was het met me eens. Wel opvallend was de brakke wifi verbinding waardoor het bijna onmogelijk was om verbinding te krijgen. Daar bovenop kunnen Android toestellen van HTC blijkbaar niet zo goed tegen overbevolkte wifi netwerken want ik heb nog nooit zo veel crashende HTC Desires gezien bij elkaar, inclusief die van mezelf. Om de paar minuten hoorde je wel weer het geluid van een rebootende Desire.

Dag twee was het wifi netwerk niet veel beter maar gelukkig waren de tracks wel weer op het niveau dat ik gewend ben van Devoxx. Zeer leerzame en vermakelijke presentaties met als hoogtepunt mijn absolute winnaar van Devoxx 2011: Matt Raible. In een geweldige presentatie liet hij zien dat je best 10 nieuwe tools, frameworks en talen kunt leren in ťťn jaar, er een applicatie mee maken en het resultaat presenteren op Devoxx. Ook het afsluitende filmpje (link naar video), waarin zijn dochtertje een belangrijke bijrol speelde, kon reken op luid applaus uit de zaal.

De derde dag begon de vermoeidheid van de 3 dagen Devoxx en de bijbehorende sociale evenementen ’s avonds zijn tol te eisen. De laatste dag begon met de Panel Discussion. Deze had ik vorige jaar ook al gevolgd en dit jaar laten schieten in ruil voor iets meer nachtrust. De overige twee tracks die dag heb ik wel gevolgd en het was eenvoudig bij de les te blijven aangezien ook deze weer erg interessant waren.

Al met al toch weer een zeer geslaagde sessie van Devoxx met veel leermomenten en heel veel dingen waar ik de komende tijd zeker mee ga spelen (alleen nog even tijd vinden ergens!). Op core java gebied was er weinig spannends te melden maar op andere vlakken des te meer. Zo heb ik voor het eerste met Android 4.0 gespeeld en ben erg onder de indruk. Ook Google TV was leuk om eens in het echt te zien. Daarnaast ook weer heel veel HTML5 tracks waarin men je blijft verbazen over de dingen die ermee mogelijk zijn.

Mijn Frans is helaas niet goed genoeg om op Devoxx Paris iets op te steken dus die slaan we over maar ik reserveer nu alvast al wel ruimte in mijn agenda voor Devoxx 2012.

Liever lui dan goed

Door sys64738 op woensdag 12 oktober 2011 11:19 - Reacties (11)
Categorie: Programmeren en architectuur, Views: 5.328

Tegenwoordig programmeer ik voor mijn werk niet zo heel vaak meer maar als ik nog code klop, is het meestal in Java. Zodra ik iets met Java moet doen, start ik zonder er over na te denken Eclipse op. Eenmaal in Eclipse zal ik zeker niet de enige zijn bij wie <ctrl> spatie de meest gebruikte toetsencombinatie is. Gemak dient de mens en Code completion is bliss, zeker voor een vrij verbose taal als Java. Of toch niet?

Sinds kort ben ik weer wat meer met Ruby en Rails aan het stoeien. Hoewel support voor dynamically typed talen lastig is, heb je tegenwoordig goede IDEs voor Ruby en Rails. Toch werk ik vooral in Notepad++ en irb als ik in Ruby aan het programmeren ben. Een interactieve Shell zoals irb is sowieso een fantastische vinding die eigenlijk elke taal zou moeten hebben (hoewel het voor dynamische talen wel iets leuker is dan van statische talen).

Door te werken in Notepad++ (of een elke willekeurige programmeurs editor) ben je veel meer aan het typen maar tegelijkertijd ook veel meer aan het denken. Pas nu merk ik hoe erg ik op de automatische piloot werk als ik in Java bezig ben en als ik een keer iets met de hand (lees: in notepad) moet doen, moet ik bekennen dat ik toch wel meer “hoe zat dat ook al weer” momentjes heb dan me lief is. In een simpele editor merk ik dat ik een taal veel sneller oppak en begrijp en dat ook je project meer gaat leven. En als je het even echt niet meer weet, kun je in Ruby altijd even spieken met .methods.

Ik zal zeker niet gaan ontkennen dat Code Completion en andere hulpmiddelen die IDEs bieden het ontwikkelen van code vergemakkelijken en waarschijnlijk ook behoorlijk versnellen. Maar het is wel leuk en zeker ook leerzaam om zo nu en dan eens in een simpele editor te werken en kijken hoe goed je “blind” kunt programmeren. Op congressen sta ik er vaak versteld van hoe snel die “eigenwijze hackers” kun programmeren in TextMate of Vim. Dus ook hier geldt: oefening baart kunst.