20 februari 2013

Doorgestoken kaart


In een poging ‘matchfixing’ tegen te gaan lanceert de KNVB een nieuw wapen: de doorgestoken kaart. Met ingang van het komend seizoen zullen scheidsrechters niet twee, maar drie kaarten in de borstzak hebben.

Er is nog veel onduidelijk over de doorgestoken kaart, maar er circuleren inmiddels vele hardnekkige geruchten. Zeker lijkt, dat bij een doorgestoken kaart beide ploegen een willekeurig aantal punten in meerdering of mindering wordt gebracht. De formule hiervoor is strikt geheim, maar de BMI van de langste doelman, de ascendant van de oudste clubvoorzitter alsmede de afstand in zeemijlen tot het ouderlijk huis van de donkerste spits zullen vrijwel zeker meewegen.

Onduidelijk is ook nog wanneer de kaart precies getrokken zal worden. Het ligt voor de hand aan te nemen dat dit zal zijn bij al te sportief gedrag van spelers, zoals het uitblijven van schwalbes. Ook afwijkend gedrag van trainers kan een doorgestoken kaart tot gevolg hebben. Wanneer een trainer in plaats van ‘blinde graflul’ ineens ‘sambal bij, rare poepchinees?’ roept, kan dit aanleiding zijn voor sancties.

Anonieme bronnen binnen Chinese goksyndicaten reageren verrast en verheugd. “Eenvoudigweg kopen van een wedstrijd wordt moeilijker. Hierdoor heeft ook de gewone man weer een kans. En de competitieuitslag wordt weer een loterij. Dat spreekt de meeste van onze deelnemers erg aan.” Wel wordt gevreesd voor hogere ‘roaming’ kosten.

De KNVB heeft officieel nog geen mededelingen gedaan. Een goedgemutste woordvoerder laat weten dat ‘men de kat niet op nummer 56 wil binden’.

15 januari 2013

DigiD

"Linda Voortman van GroenLinks vindt dat het imago van DigiD naar de haaien is.", zo viel op te tekenen uit berichtgeving.

En waarom dan wel? Omdat DigiD even offline was nadat een security-lek was ontdekt. Security-lek! Klinkt ernstig. En liefst uren offline. Gompie. Jeetje. Schande! Kamervragen!

Nu ben ik de laatste om hoog op te geven over ICT bij het Rijk. Maar mevrouw Voortman is een schoolvoorbeeld van politici en klepels en populisme. Meewaaien op elke media-hype en daarmee diezelfde hype voeden. En mevrouw Voortman bevuilt haar eigen nest, want DigiD is een overheidsdienst, diezelfde overheid die haar jaarlijks bijna een ton toestopt, maar van haar niet kan eisen dat ze er iets zinnigs voor terugdoet.

Wie een heel klein beetje verstand heeft van ICT en de berichtgeving niet alleen via koppen uit de Telegraaf heeft gevolgd, die weet dat de soep lang niet zo heet wordt gegeten. Sterker nog, dat DigiD naar mijn mening te prijzen is.

Want wat was nou het schokkende geval? Een aantal dagen voordat DigiD voor onderhoud off-line ging, is een veiligheidslek gevonden in Ruby on Rails (RoR). Ruby wat? Dat zegt niemand iets, natuurlijk. RoR is de technologie waarmee de DigiD dienst is gebouwd. Vergelijk het met uw eigen computer, of telefoon. Op uw computer staat bijvoorbeeld Windows, op uw telefoon staat bijvoorbeeld Android. En op uw computer en telefoon kunt u applicaties installeren, nietwaar? Voor sommige van die applicaties is het nodig dat u beschikt over bepaalde hulpprogramma's. Zoals bijvoorbeeld Flash, of Java, of .NET. RoR kunt u wel vergelijken met zo'n hulpprogramma, maar dan op de website van DigiD, niet op uw computer.

RoR is dus een applicatie, met een duur woord een 'ontwikkelplatform'. En dat platform bleek lek. Niets bijzonders. Er worden zo vaak fouten  gevonden in software. Hoe vaak heeft u -al dan niet bewust- uw Windows al wel niet ge-updated? Een notoire lekkenkampioen is Java, de populairste ontwikkelomgeving die er bestaat. Miljarden apparaten op deze planeet draaien applicaties ontwikkeld in Java.

Tot zover de technische details. Ik maak het nog wat simpeler: stel dat een computersysteem een auto is. Dus uw computer is een auto, uw telefoon is een auto, DigiD is een auto. En de fabrikant van uw auto laat u weten dat er een probleem is met een motoronderdeel van die auto. Wat doet u dan?

De meesten van ons, particulier of bedrijf, doen niets. Die zeggen 'hij rijdt nog, dus zo'n vaart zal het niet lopen.' Om achteraf met de gebakken peren te zitten. Maar een verstandig mens zet de auto stil en vervangt het kapotte onderdeel.

Dat is wat men bij DigiD heeft gedaan. Ze zijn gestopt en hebben een motoronderdeel vervangen. In de tussentijd konden ze niet doorrijden -  de DigiD site was dus even niet te bereiken.

Wat mevrouw Voortman beweert slaat dus nergens op. DigiD trof hier geen schuld; het vermeende 'beveiligingsprobleem' lag namelijk niet aan hen. En ze hebben relatief snel en adequaat gehandeld om het probleem te verhelpen. Dat ze daarvoor even offline moesten, dat is niet meer dan logisch; sterker, het is een verstandig besluit. Want als de een of andere gek in de tussentijd met succes misbruik van de DigiD dienst zou hebben gemaakt, dan waren de rapen pas echt gaar geweest.

Ik roep mevrouw Voortman dan ook met klem op om niet zulke populistische larie de wereld in te helpen. Alvast bedankt.





13 januari 2013

PowerShell

-nerd-alert!-

Ah, keuzes. Voor een klant werd ik gevraagd een import te doen vanuit een CSV bestand naar de database-applicatie waarin ben gespecialiseerd, Commence.

Dat begon heel simpel, maar werd al snel akelig complex. Commence, zo moet u weten, is niet erg gangbaar.  Een van de redenen daarvoor is dat het niet ODBC-compliant is. Que? Het is niet standaard. Je kunt er niet, zoals met MySQL, of MS SQL Server, of MS Access een 'verbinding' mee maken en leuke dingen met queries doen. Het heeft zelfs geen fatsoenlijke importfunctie. Commence Is Gewoon Bestwel Raar. Het is ook geweldig, maar niet als je het wilt koppelen aan een ander systeem.

Wel heeft het een API. Que? Een API is een manier om via het ene programma met het andere programma te praten. Zei ik dat Commence raar was? Nee, dan heb je de API niet bestudeerd! Klopt, hè? Gelukkig kan ik er na 14 jaar mee lezen en schrijven (ha, een kostelijke nerdwoordspeling). Die vaardigheid deel ik met een man of 5 hooguit in Nederland. Het is heerlijk om hyperspecialist te zijn in een applicatie die bijna niemand kent. Pft.

Nu goed, een ingewikkelde import dus. Klant levert een nogal complex CSV bestand aan. Aan mij de taak om de gegevens ervan in een aantal tabellen te frommelen, en deze ook nog een beetje kloppend aan elkaar te knopen. Oh wacht, de klant levert het niet aan. Ik moet het zelf gaan ophalen van een internet locatie. 'Is er een fijne webservice via REST of SOAP of zo?' zult u vragen. Neen, die is er niet. CSV het is, en die CSV moet via het antieke maar fijne FTP worden opgehaald. Daar heb je gelukkig programmaatjes voor, maar ik bouw liever niet nog een extra stap in, dus het liefst haal ik het bestand zelf even op.

Tot zover de inleiding.

Ik moet dus 2 dingen oplossen:
  1. CSV bestand ophalen
  2. CSV bestand verwerken
Ik kan deze uitdaging op een heleboel manieren aanvliegen. Zei ik 'aanvliegen'? Kastijd mij! Vreselijk woord, vreselijke zin. Sowwy.

Eén ervan is met VBScript. Daar ben ik behoorlijk goed in. VBScript is echter niet zo goed met internet. Een hoop dingen kunnen wel, maar zijn erg omslachtig. En VBScript is met zoals dat zo mooi heet 'deprecated'. Dat wil zeggen dat het nog wel bestaat, maar dat het uitgefaseerd zal gaan worden. Een soort computer-Sanskriet, zo u wilt.

Een mooi moment om mij eens te verdiepen in iets meer contemporains. Dat kan een 'echte' programmeertaal zijn. Ik spreek VB6 want ik ben oud, en een woordje C#.NET. Maar de klant wil een 'quick-and-dirty' oplossing, dus dat is geen optie. Dus wordt het een gescripte oplossing. Eentje die door Windows 'native' wordt ondersteund. PHP en Python en zo nog een paar vallen dus af. Blijven over VBScript, JavaScript en PowerShell.

Ik beheers JavaScript wel een beetje, maar ik voel me er niet zo in thuis. Eenvoudige taken zoals string-manipulaties en datum-manipulaties zijn er al snel overdreven complex in. Vind ik. En daarvan ga ik er veel nodig hebben. En JavaScript is verdomd moeilijk te lezen.

Blijft over PowerShell. Nooit wat mee gedaan, maar bijzonder krachtig, omdat je ermee direct toegang hebt tot .NET. Que? .NET is kort door de bocht een collectie van krachtige gereedschappen waarmee je van alles kunt doen. Het ophalen van een bestandje via FTP is met .NET een peulenschil vergeleken met VBScript. Ook heeft het krachtige instrumenten om gegevens heen en weer te smijten. Interessant genoeg om eens een keer mee te stoeien.

Zo gezegd, zo gedaan. Met frisse moed opende ik PowerShell ( Start | powershell). Ik kreeg een fijne DOS-prompt-achtige omgeving te zien. Dat ging hem niet worden, zelfs in DOS schreef ik geen BAT files via de command-prompt. Gelukkig bestaan er ook GUI omgevingen, en ik installeerde het fijne gratis PowerGUI.

First things first: eens kijken hoe we met Commence kunnen communiceren.

In VBScript gaat dat alsvolgt:

Set cmc = CreateObject("Commence.DB")

In PowerShell schrijf je:

$cmc = New-Object -ComObject Commence.DB

So far, so good.

Nu even de naam opvragen van de actieve database.

In VBScript doe je dat met:

naam = cmc.Name

In PowerShell doe je dat met

$naam = $cmc.Name

Maar wacht. Wat blijkt? De object-variable $cmc in PowerShell weet niets van Commence. Dat is gek! Want als ik doe:

$ie = New-Object -ComObject InternetExplorer.Application

dan krijg ik netjes alle eigenschappen en methoden van Internet Explorer te zien als ik '$ie.' typ.

Wat blijkt? (Lang verhaal dat ik u zal besparen) Wanneer ik het equivalent van cmc.Name in VBScript wil doen in PowerShell, dan moet ik schrijven:

$naam = [System.__ComObject].InvokeMember("Name",[System.Reflection.BindingFlags]::GetProperty,$null,$cmc,$null)

Ik sta dus voor de volgende keus: kies ik voor VBScript:

Set cmc = CreateObject("Commence.DB")
naam = cmc.Name

Of kies ik voor PowerShell:

$cmc = New-Object -ComObject Commence.DB
$naam = [System.__ComObject].InvokeMember("Name",[System.Reflection.BindingFlags]::GetProperty,$null,$cmc,$null)

Als ik mij was, dan wist ik het wel. Dan maar computer-Sanskriet :)


29 december 2012

Wit


Onlangs las ik een artikel van Joost Zwagerman, waarin hij hoog opgaf van een schilder die uitsluitend witte werken maakt: Robert Ryman. Wit op canvas, wit op hout, wit op metaal - als het maar wit was. Zwagerman deed, zoals hij dat zo mooi kan, een poging om deze kunstenaar in het zonnetje te zetten. Hem af te schilderen als een onschuldige en bewonderenswaardige gek, met zijn wit tegen de klippen op. Hij plaatste een en ander in historisch perspectief; zo kwamen Rauschenberg en zijn favoriet Rothko voorbij.

Voor Zwagerman was het allemaal kunst. Hij ging daarbij, naar mijn mening, voorbij aan iets heel primairs, iets ordinairs bijna. Want wanneer is iets kunst? Voorwaar geen originele vraag! Daarom is het goed om de mening van anderen te horen. Mijn al dan niet bekrompen definitie is, dat iets kunst is als het ofwel getuigt van een bijzondere vaardigheid, ofwel getuigt van een oorspronkelijk idee, of beide.

Een canvas wit schilderen, daar is weinig vaardigheid bij. Erg oorspronkelijk zou ik het ook niet willen noemen. Natuurlijk, je kunt diepe betekenis toekennen aan witte vlakken, maar dat maakt ze niet knapper geschilderd. En je kunt ze prachtig vinden, mij best. Mij lijkt het, dat je het na drie witte doeken wel gezien hebt. Ze zijn immers vooral wit.

Is het dus kunst? Ik ga mij aan het beantwoorden van die vraag niet wagen, maar ik wil er wel enige woorden aan wijden.

Toen ik nog een klein ventje was van een jaar of 16, was ik ooit op bezoek in het atelier van mijn tekenleraar, hij ruste in vrede. Hij mocht mij graag, om redenen die ik tot op de dag van vandaag niet ken. Het was zeer beslist niet om mijn tekentalent! (Ook was er geen erotische onderstroom - eigenlijk is het heel erg dat je dat tegenwoordig expliciet moet vermelden.) Hoe dan ook, ik was in zijn atelier en heb daar een vurige monoloog gehouden over waarom ik mij opwond over kunstwerken die 'Zonder titel' heetten. Tegenwoordig denk ik daar genuanceerder over, maar destijds vond ik dat wanneer je een kunstwerk maakt dat abstract is, je er tenminste een idee of emotie bij gehad moet hebben. En dat je het dus op zijn minst een titel mee moest geven, omdat anders de toeschouwer niet snapt waar het over gaat.

Als gezegd, ik denk daar nu iets anders over. Als ik een werk maar mooi vind. Of niet. Hoe het ook heet, of niet heet.

Maar dan moet er wel iets te zien zijn. Alleen wit, of rood, of zwart, in oneindige herhaling - what's the bloody point? Waarmee ik kom op een fenomeen waarover ik mij tot op de dag van vandaag in hoge mate kan opwinden. Iets dat alomtegenwoordig is: marketing.

Ik definieer marketing als de kunst van het mensen zodanig voorliegen dat ze er blij van worden. En ik heb er een haat/liefde verhouding mee. Enerzijds vind ik het fascinerend, zoals ik goochelen fascinerend vind. Anderzijds heb ik er een diepe afkeer van. Want je wordt genept, weet dat je genept wordt, en toch val je ervoor. Soms.

Laten we even terugkeren naar kunst als bijzondere vaardigheid. Sommige mensen kunnen heel goed schilderen, of beeldhouwen, of muziek maken. Om als kunstenaar beschouwd, geaccepteerd en gewaardeerd te worden, is een voorwaarde dat er een publiek is dat van het product van die vaardigheid kennisneemt. Daarvoor is het nodig om een publiek te trekken - marketing dus. Dat kan een publiek van 1 zijn. Hoeveel beroemde schilders en componisten werden niet -vaak noodgedwongen- gesponsord door een rijke mecenas die in hun levensonderhoud voorzag?

Sommige nu beroemde kunstenaars lukte het niet om zelfs naar 1 man publiek te trekken. Denk bijvoorbeeld aan Van Gogh, of Rothko.

Enige marketing heb je als kunstenaar dus per definitie nodig. Maar wanneer deze marketing betrekking heeft op het delen van een kunstuiting die getuigt van een vaardigheid of oorspronkelijk idee, dan zal het uiteindelijk de kunstuiting zelf zijn, die de waardering oproept die het verdient. Korter gezegd: Het werk zal zichzelf bewijzen.

Anders wordt het, wanneer het louter de hype om het werk heen is die de vermeende waarde ervan bepaalt. Wanneer je werken maakt die uitsluitend wit zijn, dan wordt kunst naar mijn idee leeg. Leger dan het wit op het canvas. Zet mij voor een Rothko -ik noem zijn naam bewust opnieuw- en ik zie slechts een gekleurd vlak, al het andere is humbug. Marketing. In Rothko's geval zelfs postume marketing.

Ik wil maar zeggen: je kunt de mensen een drol voorzetten, als je erbij zegt dat het een beroemde drol is vinden ze hem mooi. Dat is bepaald geen revolutionaire constatering. Wel eentje die niet ophoudt mij te verbazen.