De Browser-Back Button

18 18 2008 by datumentijd

De Browser-Back knop op internetschermen is een zege voor de eindgebruiker en een nachtmerrie voor de webapplicatie-bouwer. De eindgebruiker is er blij mee, omdat hij altijd naar een vorige situatie terug kan. De bouwer is er niet blij mee, want met deze knop verliest hij de controle op de volgorde van te bezoeken webpagina’s.

Bovendien heeft de Browser-Back button een zusje: de Browser-Forward button. En richten verschillende browsers het gedrag van de Browser-Back knop verschillend in.

Hieronder beschrijven we welke concepten we hebben gebruikt om de Browser-Back button op te vangen in een webapplicatie met een flexibele workflow. Onze oplossing is gebouwd in Java, maar de concepten zullen ook in andere programmeeromgevingen bruikbaar zijn. Wij hebben onze oplossing toegepast in een adresboek ontwikkeld voor een Onderzoeksbureau van de Rijksoverheid. Voor het toevoegen van een nieuwe medewerker moeten de volgende stappen doorlopen worden.

  1. Voer naw gegevens van de medewerker in
  2. Voeg de medewerker toe aan 1 of meer categorien
  3. Controleer de gegevens van de nieuwe medewerker
  4. Voeg de gegevens toe aan de database
  5. Meld dat de actie is uitgevoerd

De invoer van de gegevens gebeurt met jsp’s. Een jsp wordt voorafgegaan door een Access-servlet, waarin autorisaties worden geverifieerd en helpers worden gevuld. Deze helpers worden gebruikt om de informatie in de jsps te tonen, en te zorgen dat de jsps niet te complex worden. De oplossing om de Browser-Back button op te vangen maakt gebruik van:

  1. Cookies om de ingang van de jsp via de Access files te garanderen
  2. een server-worker pattern voor hergebruik van de code
  3. Een stack met variabelen voor het bewaren van scherminvoer

Cookies
Wanneer de eindgebruiker op de Browser-Back toets klikt, dan gaat de browser terug naar de vorige pagina. Deze vorige pagina kan de jsp zijn, of de Access voorafgaand aan de jsp. Dit is afhankelijk van de instellingen van de browser, i.e. dit wordt buiten de applicatie-code geregeld. Om te garanderen dat jsps altijd via de bijbehorende Access file benaderd worden, zetten we de cookie “entrypage” in de Access file. De eerste actie bij binnenkomst van de jsp is het verwijderen van de cookie. Als de jsp vervolgens benaderd wordt zonder de Access uit te voeren, dan wordt eerste de Access-page uitgevoerd, en daarna de jsp.

Deze techniek is ontwikkeld op basis van diverse engels-talige bijdragen en voorbeelden die over dit onderwerp op internet te vinden zijn.

Cookies moeten op de goede plek in de hierarchie ingezet worden. Met de Webdeveloper plugin van de firefox browser kun je eenvoudig controleren of de cookies juist in de hierarchie worden geplaatst.

Service-to-Worker pattern
Het Service-to-Worker pattern is een elegante manier om workflows te bouwen en tegelijk het aantal servlets en access-classes te beperken. Bij het Service-to-Worker pattern worden de functionaliteit en de volgorde van de stappen van elkaar gescheiden. Je krijgt dus een bestand met stap-volgordes, in ons geval een xml bestand. Een regel in het xml-bestand bestaat uit een start-status, een doel-status en een actie. Wanneer de applicatie in start-status is, dan gaat hij naar doel-status na het succesvol uitvoeren van de actie. Wij hebben deze techniek gehaald uit:

J2EE Design Patterns, William Crawford and Jonathan Kaplan, O’Reilly, 2003

Doordat de functionele classes en jsps geen workflow informatie bevatten kun je ze op verschillende plekken in verschillende workflows hergebruiken. Hergebruik komt de kwaliteit en de onderhoudbaarheid van de software ten goede.

Maar omdat de functionaliteit en de workflow van elkaar gescheiden zijn, staat in de jsps niet meer aangegeven wat de volgende stap is. Dat is geen probleem wanneer de jsps in volgorde achter elkaar worden uitgevoerd, dan is immers het xml-bestand met de stap-volgordes leidend. Maar dat is wel een probleem wanneer een eindgebruiker op de Browser-Back of de Browser-Forward klikt. Dan wijzigt de eindgebruiker de volgorde van stappen buiten het xml-bestand om.

Onze oplossing is een link te bouwen tussen de jsps en het xml-bestand met stapvolgordes. Deze link is de naam van de jsp, die een jsp altijd zelf kan bepalen., en die overeenkomt met een start-status in het xml-bestand. Zo kan de web-applicatie altijd dynamisch bepalen wat de volgende stap is en welke stap dan uitgevoerd moet worden.

De search-stack
Door ervoor te zorgen dat een jsp altijd voorafgegaan wordt door een Access pagina, kan informatie die de eindgebruiker handmatig op een scherm invoert verloren gaan. Om de eindgebruiker beter van dienst te zijn bewaren we in een stack de laatste keuzes van de eindgebruiker.

Essentieel in de stack is het veld entrypage. In dit veld staat de naam van de Accessfile waarmee de jsp benaderd wordt. Bij binnenkomst zoekt de Accessfile het stackitem met de juiste naam en haalt de meest recente gegevens uit dit stackitem.

In de stack wordt en teruggezocht en vooruitgezocht. In die zin is het niet een echte stack. Bij het uitvoeren van een actie vanaf een pagina midden in de stack worden de items boven deze plek uit de stack gehaald.

Samenvatting
Omdat de Browser-Back knop zoveel waarde heeft voor de eindgebruiker moet deze button in een webapplicatie beschikbaar blijven. Wij gebruiken in onze applicaties een combinatie van:

  1. Cookies, om af te dingen dat jsps altijd benaderd worden vanuit de Access file
  2. Een Service-to-Worker pattern met als status de jsps om hergebruik van code te bevorderen
  3. Een stack om de laatste invoer van de eindgebruiker te bewaren

Let op: wellicht zijn cookies niet nodig, en kun je de binnenkomst van een jsp via de Access file afdwingen met zgn filters. Als jij daar ervaring mee hebt, of als je andere verbeteringen in deze aanpak ziet, dan stel ik een reactie op prijs.

Sophie Fischer
Sponiza !T
www.sponiza.nl
www.etikettenprinten.nl

Selenium: automatisch testen webtoepassingen

10 10 2007 by datumentijd

Het testen van nieuwe of gewijzigde software is een belangrijke, maar ook een tijdrovende klus. In deze bijdrage laten we zien hoe de testsoftware Selenium het uitschrijven van testgevallen overbodig maakt, zodat ontwikkelaars en eindgebruikers hun energie kunnen besteden aan de kwaliteit van de testgevallen. Deze bijdrage is bedoeld voor ontwikkelaars en - wat betreft de minder technische secties – eindgebruikers van webtoepassingen.

Aanleiding
Een grote uitdaging bij het ontwikkelen van software is het effectief en efficient testen van die software. Eindgebruikers waarderen foutloze software enorm. Maar testen is ook kostbaar. Tijdens een test dien je voor alle mogelijke voorkomende situaties na te gaan of de software zich juist gedraagt.

Dat “alle mogelijke voorkomende situaties” is de bottleneck tijdens het testen. Want stel dat 2 personen een jaar lang 24 uur per dag, 7 dagen mogen testen, en stel dat een test 5 minuten duurt. Dan kunnen max 2 * 12 * 24 * 365 = 210.240 testgevallen uitgevoerd worden.

Dat lijkt veel. Voor software-producten, die met de hand getest worden, zal het uitvoeren van 210.240 testen in de praktijk onhaalbaar zijn. Maar dat is het niet. Om een eenvoudig webformulier met 10 velden, waarbij ieder veld 6 keuze-mogelijkheden heeft, volledig te testen, zijn 1.000.000 (10*10*10*10*10*10) testgevallen nodig. Bovendien moet na iedere wijziging in de software het hele pakket opnieuw getest worden.

Omdat volledig testen geen optie is, proberen wij met geautomatiseerd testen en het opbouwen van een vaste verzameling met testsituaties de kwaliteit van de test en daarmee van onze producten te verbeteren.

Automatiseren testen
Het automatiseren van testen is niet nieuw: er bestaan verschillende software-pakketten die het automatisch testen van software ondersteunen. Commerciele pakketten zoals Tmap en Testrunner. Maar ook OpenSource varianten. Wij hebben zelf een hele tijd gebruik gemaakt van HttpUnit, een extensie van het veel-gebruikte jUnit.

Hoe werkt dat, een automatische testtool? Voor onze webtoepassingen maken wij scripts waarmee wij de mogelijke acties van eindgebruikers simuleren. Een script om in te loggen bijvoorbeeld, dat bestaat uit de volgende stappen:

1. open de login pagina
2. vul de gebruikersnaam in in het veld voor de gebruikersnaam
3. vul het wachtwoord in in het veld voor het wachtwoord
4. druk op de knop met het woord login
5. controleer dat je op de pagina Afspraken Overzicht bent gekomen

of, als voor het testen van de reactie op een verkeerd wachtwoord:

1. open de login pagina
2. vul de gebruikersnaam in in het veld voor de gebruikersnaam
3. vul het wachtwoord in in het veld voor het wachtwoord
4. druk op de knop met het woord login
5. controleer dat er een foutmelding verschijnt met de mededeling dat er een verkeerd wachtwoord is ingevuld

Het maken van dit soort testen is tijdrovend, maar als ze er eenmaal zijn, dan leveren ze veel tijdbesparing op. De zgn ReturnOnInvestment is enorm.

Vaste verzameling representatieve testgevallen
Omdat het niet haalbaar is alle testgevallen uit te voeren, is het zinvol om te bepalen welke testgevallen in ieder geval wel uitgevoerd moeten worden. Bijvoorbeeld testgevallen die de beveiliging testen, testgevallen die de meest voorkomende handelingen van eindgebruikers testen en testgevallen voor situaties die na analyse van de programma-code tot problemen kunnen leiden.

In de loop van tijd kan de verzameling representatieve testgevallen uitgebreid worden. Bijvoorbeeld wanneer de eindgebruiker een fout meldt, dan kan na het oplossen van de fout een testgeval worden gemaakt die test die de gemelde fout niet meer voorkomt. Dit is erg belangrijk voor de klantbeleving.

Waarom een alternatief voor HttpUnit
Wij hadden goede successen met HttpUnit voor onze online agenda en het internet-adresboek, maar het lukte ons niet onze nieuwste roostertoepassing met automatisch volledig te testen. Hier zijn 2 redenen voor. Ten eerste is rooster-software veel complexer dan agenda en adresboek-software. Ten tweede maken wij gebruik van Javascript om de toepassing gebruikersvriendelijker te maken. Het lukte ons niet de JavaScript met HttpUnit te simuleren. Dus zijn wij op zoek gegaan naar een nieuwe, automatische testtool voor webtoepassingen, en wij hebben een oplossing gevonden in Selenium van www.thinkworks.com. Selenium downloaden kan van de website http://www.openqa.org/selenium.

Het product Selenium – de Core
Het product Selenium bestaat uit verschillende onderdelen, waarvan wij nu de onderdelen Selenium Core gebruiken en Selenium IDE. De kern van de Selenium testsoftware is de Selenium Core. Deze core bestaat uit een verzameling voorbeeld-testgevallen. deze voorbeeld-testgevallen zijn de basis voor de eigen testgevallen.

<tr>
<td>open</td>
<td>http://192.168.0.10:8080/login.jsp</td>
<td></td>
</tr>
Deze testcase opent een loginpagina. De derde parameter is leeg.

<tr>
<td>type</td>
<td>USERID</td>
<td>s.fischer@mijnbedrijf.nl</td>
</tr>
Met deze testcase wordt ingelogd.

In het algemeen geldt dat de eerste kolom de actie bevat, de tweede kolom de locatie en de derde kolom de waarde. Een actie kan een actie van een eindgebruiker zijn, zoals open pagina, tik een waarde in of klik op een link. Maar een actie kan ook een verifieer-actie zijn, zeer belangrijk als je wilt verifieren dat een bepaalde foutmelding wordt getoond. De tweede kolom kan bijvoorbeeld een URL zijn, zoals http://192.168.0.10:8080/login.jsp, een invoer-veld, zoals USERID of een DOM-referentie. De derde kolom mag leeg zijn. Dus een algemene testcase is

<tr>
<td>action</td>
<td>location</td>
<td>value</td>
</tr>

De tweede kolom mag overigens ook leeg zijn, zoals in het voorbeeld:
<tr>
<td>goBackAndWait</td>
<td></td>
<td></td>
</tr>
waarmee het klikken op de Vorige-toets in een browser-window wordt gesimuleerd.

Erg krachtig is het aanroepen van test-bestanden in een soort super-test-bestand. Daarmee is het mogelijk uitgebreidere testen te splitsen en op te slaan in handzame delen. Bovendien is het mogelijk een conditie toe te voegen aan het <tr> element van de testcase zodat testen afhankelijk van het browser-type worden uitgevoerd. Bijvoorbeeld: <tr unless=”browserVersion.isKonquerer”> voert een test uit tenzij er met de Konquerer browser gewerkt wordt.

Het valideren van het testresultaat
Een testgeval behoort naast de acties ook een beschrijving te hebben van het verwachte resultaat. Selenium kan het controleren van de verwachte resultaten automatisch uitvoeren. Hiervoor bestaan bijvoorbeeld de commando’s verifyTextPresent en verifyText. De verifyTextPresent controleert of een tekst, bijvoorbeeld een foutmelding of een toegevoegd item, op het scherm voorkomt. De verifyText controleert of een bepaald element (link, button) op het scherm voorkomt. De controle-stappen voor het valideren van de testresultaten moeten handmatig in de test worden geplaatst.

Het product Selenium – IDE
Selenium – IDE is een plugin en om deze te gebruiken is Firefox 1.5.8 of hoger nodig. Na installatie van deze versie kan de Selenium – IDE automatisch geinstalleerd worden vanaf de website. De plugin is vervolgens beschikbaar onder Tools.

Voordeel: Met Selenium - IDE hoef je geen testgevallen meer in de omgeving van de applicatie-server te plaatsen.

De Selenium – IDE biedt een opname mogelijkheid voor het uitvoeren van testen op dezelfde manier waarop je vroeger muziek op een casette opnam, en je nu macro’s in Excel kunt opnemen.

Hiermee wordt het mogelijk om gebruikers-gedrag te simuleren. Want gebruikers voeren niet de velden op een scherm in de juiste volgorde en met de goede waarden in. Ze openen een scherm, komen er achter dat ze niet over de juiste informatie beschikken, gaan terug naar eerdere pagina’s met de browser-vorige-knop en vergeten vervolgens een veld. Dit gedrag kan nu opgenomen worden en later weer worden afgespeeld.

Wij zijn bij het opnemen van de testen de volgende zaken tegengekomen:
- Wanneer wij een link op een ander frame aanklikken, dan wordt er een actie click in het testbestand gezet. Dit zou naar onze mening clickAndWait moeten zijn, net zoals dat gebeurt bij links op hetzelfde frame. Wij adviseren het testbestand door te lopen en click te vervangen door clickAndWait.
- De browser-backtoets wordt niet gesimuleerd. Deze teststap goBackAndWait zal apart moeten worden toegevoegd.

Troubleshooting en documentatie
Een nadeel van testen met Selenium is dat het niet snel duidelijk is welk object, zij het een window, formulier, frame, enz, centraal staat. Zo zijn wij nogal wat tijd kwijt geraakt omdat we 2 frames dezelfde naam hadden gegeven. Het eerste frame met de naam bevatte geen links, het tweede frame bevatte wel links. Tot vervelends toe meldde de test dat een link niet bestond, en wij hadden geen mogelijkheid om te zien waar de tool aan het zoeken was.

Een tweede reden waardoor een link niet gevonden kan worden is bij het zoeken niet gewacht wordt totdat de pagina volledig geladen is. Zelf maken de Selenium testcases veelvuldig gebruik van het commando clickAndWait en selectAndWait. Dat betekent dat het script op een link klikt en wacht totdat de resulterende pagina geladen is. Bij de commando’s click en select gaat het script meteen door, en zal links niet kunnen vinden als die nog niet opgehaald zijn.

De documentatie is niet goed, niet duidelijk en onvolledig. Maar er zijn zoveel testvoorbeelden met aansprekende titels, en er is een goed forum met een goede zoekfunctie. Een avondje puzzelen en je kunt ermee aan de gang.

Tot slot
Welke methoden gebruikt u om te controleren of software aan uw wensen voldoet? Maakt u gebruik van handmatige of automatische testen? Kende u Selenium al? Zo ja, wat is uw ervaring met Selenium RC? Zo nee, denkt u dan dat u Selenium gaat gebruiken in de nabije toekomst?

Sophie Fischer
www.sponiza.nl
www.etikettenprinten.nl

Praktijk: installatie iDEAL advanced Java

25 25 2007 by datumentijd

Wanneer u producten of diensten verkoopt op het internet dan kunt u uw klanten verschillende betaalmethoden aanbieden:

- Betalen dmv een overschrijving
- Betalen met een creditcard
- Betalen via Paypal
- Betalen via het internet

Voor de toepassing etikettenprinten.nl bieden wij de eerste vorm, overschrijving, en de laatste vorm, betalen via internet, aan. Het voordeel voor de klant van internet-betalen is dat zijn betaling zeer snel verwerkt wordt. Zodra de betaling binnen is, kan de klant de adressen op etiketten printen. Het voordeel voor ons is dat we online-betalingen automatisch in onze boeken kunnen verwerken. Facturen worden automatisch naar de klant en de boekhouding gestuurd en de BTW aangifte wordt automatisch bijgewerkt.

Maar daar hebben we wel wat voor moeten doen. We hebben voor de internet-betalingen een contract afgesloten met de Postbank. Daarnaast hebben we onze webwinkel aangepast op basis van iDEAL.

In deze bijdrage laten wij zien hoe wij iDEAL Advanced voor java hebben geintegreerd, welke problemen we zijn tegengekomen, en hoe wij die hebben opgelost. Misschien helpen onze ervaringen anderen die voor eenzelfde keuze staan. Wilt u deze informatie op uw eigen computer opslaan? Dat kan, want we hebben deze bijdrage als pdf-document bijgevoegd.

Wat is iDEAL: iDEAL is een betaalstandaard voor veilige en directe betalingen over het internet. Verschillende banken werken met iDEAL waaronder de Postbank, ING, de Rabobank, ABN en Fortis. iDEAL is gebaseerd op dezelfde technieken als internetbankieren, en is daardoor net zo veilig. Bovendien gaan betalingen op dezelfde wijze als internetbankieren, waar de klant al vertrouwd mee is.

Verschillende banken bieden verschillende methoden aan voor die integratie. De Postbank geeft 2 varianten: iDEAL basic en iDEAL advanced. Wij hebben de variant iDEAL advanced gebruikt.

Het integreren van iDEAL basic met een webwinkel is het eenvoudigst, maar geeft minder mogelijkheden voor het automatisch afhandelen van betalingen. iDEAL advanced integreren is lastiger en vraagt technische kennis. Wanneer u ervaren bent in het ontwikkelen van web-toepassingen kunt u zonder probleem iDEAL advanced gebruiken. Wanneer u deze ervaring niet heeft, dan zult u iemand moeten inhuren die die ervaring wel heeft.

Bekijk ter verdere verduidelijking van het verschil tussen iDEAL basic en iDEAL advanced de stappen van het betalingsproces:

Actie Omgeving
1. Bestelling plaatsen Klant
2. Bank selecteren Klant/Bank
3. Klant betaalt Bank
4. Betaling wordt verwerkt Klant/Bank
5. Melding betaling ontvangen Klant

Het verschil tussen iDEAL basic en iDEAL advanced zit in de stappen 2. en 4. Bij iDEAL basic regelt de bank deze stappen, bij iDEAL advanced zorg de ondernemer hier zelf voor.

Weet u niet wat u moet kiezen? Kies dan eerst voor iDEAL basic. U kunt altijd later nog kiezen voor iDEAL advanced, bijvoorbeeld als u merkt dat u zoveel via het internet verkoopt, dat u dat niet meer met de hand wilt bijwerken.

Start iDEAL: Om iDEAL te gebruiken meldt u zich bij de bank waar u een zakelijke rekening heeft. Kijk op www.ideal.nl, onderdeel Zakelijk - helemaal onderaan, wanneer u de informatie niet snel op de website van uw bank kunt vinden.

Wij ontvingen na aanmelding de inloggegevens voor de iDEAL test-site, ook wel het dashboard genoemd.

Integreren iDEAL – java advanced Postbank: Wanneer u iDEAL niet zelf gaat installeren dan zijn deze en de volgende secties misschien minder interessant voor u. Wanneer u iDEAL wel zelf gaat installeren, maar via een andere bank, of via PHP, dan kunnen deze en de volgende secties het algemene begrip vergroten en helpen bij troubleshooten.

Op de idealtest-site staat een zip-download-bestand met daarin bestanden die gebruikt kunnen worden voor de installatie van iDEAL advanced. Het gaat om een handleiding, een referentiegids (achtergrond informatie), een demoshop (bij java een war-bestand), de sleutels mpi_ssl.truststore en mpi.xml.truststore en het configuratie bestand thinmpi.properties.

Voor het integreren van iDEAL advanced hebben wij zelf een scherm ontwikkeld waarop klanten kunnen kiezen voor een internet-betaling. Wij hebben met de commando’s in de handleiding een eigen paar sleutels aangemaakt en het configuratie-bestand gewijzigd. Vervolgens hebben wij functionaliteit ontwikkeld voor het automatisch verwerken van betalingen. Voor etikettenprinten.nl werken wij met credits. Als een betaling is voldaan worden automatisch de credits van de klant verhoogd en de factuur naar de klant en de boekhouding gestuurd. De voorbeeldschermen die meegeleverd worden in het download-bestand waren een goede leidraad voor het ontwikkelen van de eigen functionaliteit.

Het maken van sleutels: De beveiliging voor de betaling is geregeld met de zgn sleutels. Deze techniek is gebaseerd op de cryptografie uit de wiskunde. Sleutels verschijnen in paren. Er zijn steeds 2 verschillende sleutels die bijelkaar horen. Twee partijen kunnen alleen met elkaar praten als zij ieder een unieke sleutel uit hetzelfde paar bezitten. Met zo’n sleutel kunnen ze berichten naar de andere partij versleutelen, d.i. onleesbaar maken voor onbevoegden, en versleutelde berichten van de andere partij ontsleutelen, d.i. weer leesbaar maken. Sleutels zijn codes, bestaande uit cijfers, letters en lettertekens. Eenzelfde sleutel kan niet gebruikt worden voor versleutelen en ontsleutelen.

Bij de integratie van iDEAL advanced zijn 2 paren sleutels betrokken. Het ene paar zit in het download bestand, het zijn de sleutels in de bestanden mpi_ssl.truststore en mpi_xml.truststore. Daarnaast moet een webwinkelier zelf een paar sleutels genereren. De handleiding geeft duidelijk aan met welke commando’s dit paar sleutels gegenereerd kan worden. Hiervoor is wel speciale software nodig. De referentie-gids legt in detail uit in welke communicatie welk paar sleutels wordt gebruikt. Het resultaat zijn 2 bestanden, 1 bestand eindigend op .keystore en 1 bestand eindigend op .cer. Het bestand eindigend op .cer bevat de sleutel die doorgegeven moet worden aan iDEAL. Het bestand eindigend op .keystore wordt verwerkt in de applicatie. Dus 2 sleutels – 1 van ieder paar – worden beheerd door uw bank en de twee overgebleven sleutels – de andere van ieder paar – integreert u met uw applicatie, in dit geval de WAR-file.

Aanpassen van het configuratie-bestand: In de handleiding wordt uitgelegd hoe de velden ingevuld moeten worden. In de handleiding stond niet duidelijk vermeld wat ingevuld moest worden in het veld ideal.thinmpi.certificateAlias=?. Dit moet myprivatekey zijn, de sleutel uit het paar sleutels dat de webwinkelier zelf gegenereerd heeft, en dat niet is toegevoegd aan de testomgeving van iDEAL.

Het packagen van de web-applicatie: de applicatie wordt gepacked in een war-bestand. Wanneer uw applicatie alleen uit een war-bestand – bijvoorbeeld applicatie.war - bestaat, pak dit bestand dan uit met:
# jar -xvf applicatie.war
U ziet nu een directory structuur ontstaan beginnend bij applicatie
U plaatst de volgende bestanden in het war bestand:

  • owner.keystore
  • mpi_xml.truststore

En u plaatst deze bestanden in de directory applicatie.war/ of in de directory applicatie.war/WEB-INF/classes. Daarna recreeert u de applicatie met het commando:
#jar -cvf applicatie.war applicatie/*
De handleiding was bijzonder onduidelijk over welke bestanden toegevoegd moeten worden. In de praktijk lijken deze 2 bastanden voldoende.

Wanneer uw applicatie een enterprise applicatie is, dwz uw bestand eindigt op ear, bijv. applicatie.ear, dan kunt u het war bestand daaruit extraheren met het commando:
# jar -xvf applicatie.ear
Een van de bestanden eindigt op .war. Voor dit bestand volg de stappen uit het begin van deze paragraaf. Merk op dat de betalingen volledig in het .war bestand wordt geregeld. U hoeft dus niets te wijzigen in uw enterprise-server – bijv JBOSS – en u de betaling op de development server testen en vervolgens de applicatie op een productie server installeren zonder dat u nieuwe sleutels hoeft te genereren of te uploaden.

Testen: Als laatste stap moet de nieuwe toepassing getest worden met test-transacties. Voor een test-transacties doet u achtereenvolgens een betaling van 1, 2, 3 …. 7 euro naar de testomgeving van iDEAL. De iDEAL testomgeving reageert op deze test bedragen, soms met een acceptatie en soms met een weigering. Wanneer deze testen niet correct worden beantwoord dan kan het zijn dat u de verkeerde bedragen overmaakt. In ons geval was niet 1 euro overgemaakt, maar 10 eurocent. En de 2 euro was 20 cent. Het overzicht scherm op het dashboard kunt u controleren welke bedragen zijn binnengekomen.

Helpdesk: Wanneer de installatie niet lukt, dan biedt de helpdesk wellicht uitkomst. De helpdesk is goed bereikbaar en deskundig in het advies. Voor PHP installaties is er een gemeenschap OSEcommerce met heel veel informatie over online betaalsystemen.

Tot slot: Wat zijn uw ervaringen met het integreren van uw webwinkel met iDEAL? Of heeft u vragen over de integratie die we niet beantwoord hebben? Laat het weten met een berichtje!

Sophie Fischer
BV Sponiza !T
www.sponiza.nl
www.etikettenprinten.nl

PDF praktijk installatie iDEAL advanced java

Excel als katalysator

28 28 2007 by datumentijd

Voor werknemers in grote organisaties die vinden dat automatisering beter moet aansluiten bij hun werkzaamheden.

Het klinkt mooi. Computertoepassingen waarmee we ons werk sneller, beter en met meer plezier kunnen uitvoeren. Maar binnen organisaties kan de automatisering zwaar lijden onder organisatie-brede kwaliteitseisen, een centrale onderhoudsafdeling, een beperkt budget en een afhankelijkheid van leveranciers. Met als resultaat:

  1. Verkeerde, onvolledige en/of verouderde informatie in systemen
  2. Systemen die soms meerdere dagen niet benaderbaar zijn
  3. Dubbele invoer van gegevens, omdat verschillende systemen niet met elkaar gekoppeld kunnen worden
  4. Systemen, die lastig zijn in het gebruik

Moeten medewerkers dan maar berusten dat zij veel tijd kwijt raken met tijdrovende en naar hun gevoel nutteloze werkzaamheden? Nee. Want bijna iedere werk-pc bevat het spreadsheet-pakket Excel. Met Excel heb je een krachtige programmeer-omgeving tot je beschikking, waarmee je een deel van de routine-taken kunt automatiseren.

Zaak is de volgende dingen te doen en uit te zoeken:

  1. Maak een lijst met tijdrovende en vervelende bezigheden
  2. Ga na welke systemen je raadpleegt voor die klussen.
  3. Verdiep je in de mogelijkheden van Excel

Als je je gegevens uit de centrale systemen kunt halen (en dat kan vaak) en in kunt voeren in een spreadsheet, dan kun je de programmeer-omgeving in Excel gebruiken voor het uitvoeren van standaard taken. Sorteren en data filteren en de standaard spreadsheet-functies kunnen al enorm helpen. Maar er is meer: Excel heeft macro’s.

Een macro kun je op dezelfde manier maken als je vroeger muziek opnam op een cassette-bandje. Je klikt op OPNEMEN, voert je acties uit en stopt de opname. Wanneer je de macro draait, zal hij de acties die je hebt opgenomen, uitvoeren. Je kunt ook macro’s programmeren. In Excel zit een Visual Basic editor, en daarmee kun je nieuwe macro’s schrijven, of bestaande macro’s – bijvoorbeeld een macro die je had opgenomen – wijzigen. Wil je meer over Excel weten, dan kun je een cursus volgen, of de Excel voor Dummies uit de bibliotheek halen, of O’Reilly’s Writing Excel Macros with VBA lezen.

Praktijkvoorbeelden
Wij hebben Excel met succesvol gebruikt tijdens een software-ontwikkel-traject met verschillende internationale ontwikkelteams, waar fouten in de software centraal geregistreerd werden. Voordat we Excel gebruikten was het vaak niet duidelijk welke fouten nog open stonden en welk team welke fouten moest herstellen. Deze onduidelijkheid leidde tot veel overleg. Na de invoering van het Excel spreadsheet verliep de samenwerking tussen de internationale teams gestructureerd.

Een collega van mij gebruikt Excel spreadsheets voor ingewikkelde pensioen berekeningen. Met het spreadsheet kan hij nieuwe pensioen regels eenvoudig testen en achterhalen welke regels in een specifieke situatie van toepassing zijn.

Een andere collega gebruikt spreadsheets om de inhuur van freelance medewerkers op orde te krijgen.

De nadelen
Het gebruik van Excel spreadsheets heeft ook nadelen:

  1. Backups
    De macro’s die je zelf schrijft vallen niet onder de automatische backup-procedures van de automatiseringsafdeling. Dat betekent dat je je macro’s kwijt bent als je pc opnieuw geïnstalleerd wordt. Dit probleem kun je ondervangen door zelf backups te maken bij iedere wijziging die je in het spreadsheet aanbrengt.
  2. Wijzigingen
    Door de opzet en structuur zijn eenmaal gebouwde spreadsheets niet makkelijk aan te passen
  3. Lokale oplossing
    Je maakt het spreadsheet op je eigen computer. Dat betekent dat alleen jij het spreadsheet kunt gebruiken. Dat is lastig als je even niet beschikbaar. Het spreadsheet rondsturen naar collega’s is eigenlijk geen optie, omdat je niet kunt afdwingen dat iedereen met de nieuwste versie werkt.

Niet iedereen denkt daar hetzelfde over, maar deze nadelen zorgen ervoor dat Excel wat mij betreft een oplossing is voor de korte termijn (1 á 2 jaar).

Na Excel
Stel dat jouw organisatie merkt dat jouw Excel spreadsheet tijd bespaart en een prettige werksfeer, meer transparantie en meer kwaliteit. En stel dat jouw organisatie jouw Excel spreadsheet in het gehele bedrijf wil introduceren. Dan zul je waarschijnlijk je spreadsheet moeten vervangen door een andere IT-oplossing. Er zijn legio mogelijkheden. Van een standaard pakket tot een maatwerk Java programma.

Is de tijd die jij in je spreadsheet hebt gestoken voor niets geweest

Nee, je ervaring is zeer waardevol. Je weet nu immers precies wat het programma moet kunnen. Je weet welke invoer en uitvoer nodig is. Je kent de uitzonderingen. Je kunt je requirements definieren en onderbouwen en je bent in staat een verantwoorde pakket keuze te maken. Door jouw kennis en ervaring ben je een droom-klant voor een IT-leverancier

Sophie Fischer
www.sponiza.nl 
www.etikettenprinten.nl

Afsprakencoördinatie en adresbeheer

Meedoen volgens Web 2.0

13 13 2006 by datumentijd

Het internet ontwikkelt zich op dit moment tot een virtuele, sociaal-liberale wereld met als uitgangspunt meedoen. Alle bezoekers op het internet zijn mede-ontwikkelaars van dat internet. In de Elsevier van 9 december 2006 staat een uitgebreid en goed leesbaar artikel over welke mogelijkheden bezoekers van het internet momenteel beschikken. Van het verzamelen van nieuws tot het controleren van nieuwsberichten. Over prijsvergelijkingen en het slechten van machtstructuren zoals de NVM.

Deze ontwikkeling op het internet wordt Web 2.0 genoemd. Sommigen definieren Web 2.0 als de techniek om het verzamelen en delen van informatie mogelijk te maken. Maar je kunt Web 2.0 ook beschrijven als een houding. Een houding die participatie mogelijk maakt en stimuleert.

Het mogelijk maken en stimuleren van burger-participatie volgens de Web 2.0 gedachte zou wel eens kunnen bijdragen aan meer draagvlak voor onze samenleving. Dat is hard nodig. Het persbericht van het 21minuten.nl onderzoek over 2006 – ingevuld door 170.000 burgers, georganiseerd door Mc Kinsey ea – meldt een grote kloof met de politiek en een groot ongenoegen over de prestaties van regering, overheid en politici. Mark Bovens, Hoogleraar Bestuurskunde aan de Universiteit Utrecht, schetst in een artikel in de NRC van 9 december (Opinie en Debat, blz 17) de kloof die is ontstaan doordat mensen met een hoge opleiding relatief veel meer invloed hebben op het bepalen van de politieke agenda.

Verschillende organisatieskomen nu met oplossingen die je als Web 2.0 kunt bestempelen. De Nationale Conventie stelt voor dat de Tweede Kamer de thema’s voor een kabinet bepaalt, in plaats van het kabinet zelf. Nog beter zou zijn de burgers die politieke agenda te laten bepalen. De zorgverzekeraars, patiënten- en consumentenorganisaties zijn overeengekomen dat patiënten in het openbaar rapportcijfers gaan uitdelen aan zorginstellingen. Een methode om klantwensen belangrijker te maken. Bibliotheken overleven door hun diensten af te stemmen op de wensen van hun leden.

Het lijkt mij zinvol als politieke partijen voorstellen voor meer burger-participatie ontwikkelen en steunen. Met Web 2.0 als inspiratiebron. D66 zou, naar mijn mening, hierin een actieve rol moeten spelen vanwege het sociaal-liberale karakter van de partij en vanwege de bestuurlijke vernieuwing die de partij nastreeft.

Is gratis software iets voor jou?

13 13 2006 by datumentijd

Het mag dan gratis zijn, Linux, en veilig, en stabiel, overstappen op Linux betekent zelf hardware kopen, zelf installeren en zelf vragen stellen aan Linux goeroes op het internet. Voor de niet-technisch geinteresseerde computer-gebruiker lijkt Microsoft dan zoveel aantrekkelijker. Iedereen gebruikt het, het ziet er gelikt uit, je koopt een computer met Microsoft al voor 500 euro bij Dell. Die ook nog thuis wordt bezorgd.

Maar wat zie je op veel van deze computers:

1. Virusscanners, omdat de computers bedolven worden onder allerlei virussen, trojaanse paarden en internet-wormen. Er zijn testen die aantonen dat een nieuwe computer aangesloten op het internet binnen 20 minuten zijn eerste virussen te pakken heeft. Een Linux computer is minder bevattelijk, beter te beschermen en er zijn diverse gratis virusscanners op de markt.

2. Een mengeling aan legale en illegale software. Microsoft Word is misschien legaal. Maar Excel? Of Powerpoint? Of Photoshop? Terwijl illegale software op je computer strafbaar is. Bij Linux betaal je niet voor de software of het gebruik van de software, en kent geen betaalde licenties.

3. Tijdverlies bij het opnieuw installeren van je computer of een programma. Waar was die installatie-cd met certificatie-key ook maar weer? Voor een Linux computer kun je software zonder kosten of certificatie-keys van het internet halen en gebruiken.

4. Wat als je meer wilt met je computer? Een stamboom van je familie maken? Foto’s en films bewerken? Websites ontwerpen? Offertes en contracten omzetten in PDF-formaat? Met een Linux computer heb je toegang tot een scala aan gratis software voor allerlei hobbies en werkzaamheden. Eventueel huur je iemand in die op afstand de software op jouw computer plaatst en beheert. Daar betaal je voor, maar voor de commerciële software varianten betaal je ook, die je dan zelf moet onderhouden.

Vergelijk het met koken en uit eten gaan. Je eigen eten koken heeft veel voordelen. Het is goedkoop. Het is gezond en veilig. Op het internet kun je een heleboel recepten vinden. Voor lastige sauzen en curries koop je een basismix in de winkel. Maar zelf koken kost wel tijd en je hebt er vaardigheden en creativiteit voor nodig. Het alternatief is uiteten gaan. Een traktatie, maar je zit wel vast aan de openingstijden, het menu en de hygiëne van het restaurant.

Misschien is het toch de moeite waard eens uit te zoeken of een Linux computer beter aansluit op jouw wensen en werkzaamheden.

Werken en zorgen zonder stress

28 28 2006 by datumentijd

’s Ochtends vroeg opstaan, de kinderen rustig aankleden en naar school brengen en dan met een kop verse koffie aan het werk gaan. Thuis zijn als de kinderen uit school komen en toch je eigen geld verdienen. Op woensdagmiddag met de kinderen naar het strand en ’s avonds een werkbespreking voorbereiden. Het combineren van zorg en het deelnemen aan de arbeidsmarkt wordt voor ouders een stuk gemakkelijker als zij een groot deel van hun werkzaamheden thuis kunnen doen.

En daar is veel noodzaak toe. Veel vrouwen in Nederland lijken een keuze te maken tussen of kinderen of werk. Logisch, want als vrouwen kiezen voor kinderen en een fulltime baan, dan kiezen zij voor dagelijkse stress in de ochtend en dagelijkse stress bij het avondeten. Zien zij hun zeer gewenste kinderen alleen ’s avonds en in het weekend. En gaan belangrijke ontwikkelingen van hun kinderen voor een groot deel langs hen heen. Vrouwen verliezen meestal niet hun ambities als ze kinderen krijgen, maar zij zien weinig voordelen in een commitment van 4 a 5 dagen per week van 8.30 – 17.00 uithuizig bij een baas.

Mede hierdoor neemt de gemiddelde leeftijd waarop vrouwen hun eerste kind krijgen steeds maar toe, neemt het aantal kinderen dat geboren wordt ieder jaar af, en draagt een groot deel van de beroepsbevolking niet naar vermogen en niet naar eigen wens bij aan onze economische voorspoed.

Daarom is het waardevol initiatieven, die thuiswerk bevorderen, te steunen. Bijvoorbeeld het gemakkelijk maken van het oprichten van een bedrijf-aan-huis. Of je zou als overheid met incentives organisaties kunnen stimuleren tot het inrichten van een mobiele en beveiligde infrastructuur. Waarmee de medewerkers van die organisaties een groot deel van het werk thuis kunnen doen. Technisch is het mogelijk en financiëel is het aantrekkelijk: Grote bedrijven zoals IBM, Cisco en Fortis hebben nu al flexibele werkplekken – geen vaste werkplek meer maar aanschuiven aan een vrij bureau als je wel op kantoor bent.

Er zullen best functies zijn waarvoor je fysiek op de werkplek aanwezig moet zijn. Bijvoorbeeld in het onderwijs, bij de politie, in de zorg en bij de vuilnis-ophaal. Maar er blijven voldoende functies over waar vrouwen een heel groot deel van hun werk thuis kunnen doen. Zodat zij en kunnen werken en hun kinderen kunnen opvoeden. Twee nuttige bijdragen aan onze samenleving. 

Sophie Fischer

http://www.sponiza.nl/

Afsprakencoördinatie en adresbeheer

Op een betere samenwerking!

11 11 2006 by datumentijd

Het gebeurt vaak dat afdelingen of organisaties moeten samenwerken om hun doel te bereiken. Zo moeten de ontwerp- en marketingafdeling van Nike ervoor zorgen dat ieder seizoen de juiste artikelen in de winkelschappen liggen. Moeten CWI, Sociale Dienst, Reïntegratie- en Uitzendbureaus uitkeringsgerechtigden aan betaald werk helpen. En zullen Thuiszorg, wijkverpleging en welzijnsorganisaties samen de WMO moeten uitvoeren. 

Het is vrij eenvoudig zo'n samenwerking mis te laten lopen. Door geen afspraken te maken over hoe je gaat samenwerken. Door belangrijke werkdocumenten niet tijdig beschikbaar te hebben voor de andere partij. Door geen gemeenschappelijk overleg in te stellen. En door een slordige administratie te voeren, zodat resultaten niet duidelijk zijn.

Als je toch wilt dat meerdere partijen gaan samenwerken en het is van essentiëel belang dat die samenwerking plezierig en gestructureerd verloopt, dan kan automatisering  je daarbij helpen. Computers zijn uitermate geschikt voor het verspreiden en opslaan van informatie, het controleren van afspraken, het produceren van management rapportages en het plannen van bijeenkomsten.

Maar als je zulke software wilt aanschaffen of laten bouwen, waar moet je dan op letten?

1. Zorg ervoor dat je het systeem alleen kunt gebruiken met een gebruikersnaam en wachtwoord. En dat het systeem bijhoudt wie wat heeft gedaan. Dan kun je makkelijker achterhalen wie altijd die ene fout maakt, en de persoon hierop individueel aanspreken. In plaats van dat je een hele groep tijdens een overleg moet aanspreken.

2. Laat automatische reminders inbouwen, zodat je niet zelf medewerkers hoeft te benaderen dat het tijd is om bijvoorbeeld een kwartaalrapportage in te leveren. Zorg dat die reminders na de due-date regelmatig (bijv iedere dag) gestuurd worden. 

3. Zorg voor een status-pagina, waarop iedereen kan zien waar een actie zich in het proces bevindt. Als je collega op vakantie is, dan kun je even bijspringen. Daarmee kun je de klanttevredenheid verbeteren. 

4. Werk met herinneringslijstjes. Als een actie slechts onder bepaalde omstandigheden uitgevoerd mogen worden, zorg er dan voor dat voor het uitvoeren van die actie hiervan een melding verschijnt. Dat helpt mensen bij hun drukke werk minder fouten te maken.

5. Analyseer welke informatie je wilt delen met de andere partijen. Het is de kunst om zo min mogelijk informatie te delen. Want anders overspoel je drukke collega’s met troep.

6. Zorg dat je computersysteem de management rapportages of rapportages om een subsidie te verantwoorden voor je maakt. Daarmee bespaar je een hoop tijd.

7. Zorg dat het systeem beschikt over een afsprakenmodule, want het regelen van een bijeenkomst waar meerdere partijen bij aanwezig moeten zijn kan zeer veel tijd kosten.

8. Zorg dat je het systeem via het internet kunt gebruiken. Dat heeft 2 voordelen. De software is vanaf iedere computer benaderbaar. Dus mensen kunnen ook thuis werken. En de  inleertijd is kort. Want mensen zijn al behoorlijk gewend aan de internet look & feel.

Werk jij met andere partijen samen? Waar loop je tegenaan? En als jullie het hebben opgelost, hoe dan? Ik ben erg benieuwd naar je ervaringen.

Sophie Fischer

Afsprakencoördinatie en adresbeheer

www.sponiza.nl 

Waar had ik dat ook maar weer opgeslagen?

5 05 2006 by datumentijd

Regelmatig ben ik mijn sleutels kwijt. Ze slingeren dan meestal ergens rond in de keuken, liggen op het kastje in de hal of zitten in mijn jaszak. Meestal kan ik ze snel vinden, maar soms ook niet. Eenmaal heeft mijn zoekactie de hele ochtend geduurd. Heel jammer, want het was prachtig weer en ik had afgesproken met vriendinnen op het strand. Zij zijn uiteindelijk zonder mij gegaan. 

Zoeken kost tijd. Die tijd kun je nuttiger en aangenamer besteden. 

Op je computer kun je ook veel kwijtraken. Een essay waar je vorige week mee was begonnen is opeens foetsie. Je weet niet meer welke offerte je naar die ene klant hebt gestuurd. Je voert wijzigingen in de verkeerde versie van een document uit. En als je laptop gestolen wordt, dan ben je in 1 klap alle adressen van je potentiele kopers kwijt, de afspraken met je accountant en alle electronische facturen waarover je nog BTW moet terugkrijgen.

Met je gezonde verstand kun je veel ellende voorkomen. Dat hoeft geen geld te kosten. En je hoeft geen extra software op je computer te installeren. Een paar praktische tips:

Tip 1: Gebruik een versie nummer in de naam van je document. Dus als je een ingezonden brief stuurt naar de krant, dan zou je kunnen beginnen met 'Reactie krant vs 0.1'. En als je je draft hebt laten lezen aan vrienden en je hebt hun reacties verwerkt, dan sla je het document op als 'Reactie krant vs 0.2'. Het uiteindelijke document dat je naar de krant stuurt noem je 'Reactie onderwerp vs 1.0'. En als de krant nog wil dat je wat wijzigt (bijvoorbeeld inkorten), dan maak je ervan 'Reactie onderwerp vs 1.1'.

Tip 2: Voorzie offertes van een offerte nummer en verwerk de datum in het offertenummer. Begin de offerte met een korte geschiedenis, waarin je beschrijft met wie je hebt gesproken en in welk opzicht de offerte is aangepast ten op zichte van een vorige versie. Als je je offerte electronisch verstuurt, maak dan een PDF van je offerte. Dat ziet er professioneel uit, en de klant kan de tekst niet eenvoudig wijzigen. Mensen die met de Mac of met Linux (Open Office) werken kunnen de PDFs gratis creeren. Als je met Microsoft Word werkt, dan doe je er goed aan een PDF Creator aan te schaffen.

Tip 3: Een directory op een computer kun je visualiseren als een kast in je huis. In de directory op de computer kun je weer nieuwe directories maken om je informatie te ordenen. Net zo goed als dat een kast laatjes en plankjes heeft, zodat je niet alles doorelkaar hoeft te leggen. Het werkt snel als je al je documenten, email en internet-favorieten opslaat in 1 directory. Want dan hoef je voor het maken van een backup alleen een backup van die directory te maken. En als je een nieuwe computer moet inrichten, dan hoeft alleen de informatie uit die directory over. Het is als dat je zou verhuizen en alleen die ene kast hoeft mee te nemen. In plaats dat je door je hele huis moet en bij ieder dingetje moet denken 'zal ik het nou wel meenemen, of zal ik het niet meenemen'. Maak dus gebruik van de directory Mijn Documenten en verdeel die onder in bijvoorbeeld Bedrijf, Huis, School, Internet en Fotos.

Tip 4: Verwerk in de naam van een factuurbestand het klantnummer en het factuurnummer. Dan weet je meteen bij het uitsturen van een nieuwe factuur wat het nieuwe factuurnummer is. En als je een nieuwe klant hebt, dan weet je wat het nieuwe klantnummer moet zijn.

Tip 5: Koop 5 Writable CDRoms voor het maken van backups. Gebruik deze CDRoms in volgorde voor het maken van een dagelijkse backup. Zo kun je altijd 5 dagen terug in de tijd.

Ik hoop dat je met deze eenvoudige acties meer structuur en overzicht in je werk krijgt. Laat me weten wat je ervan vindt, en ook of je zelf een tip hebt, die anderen weer kunnen helpen.

Sophie Fischer

BV Sponiza IT 

www.sponiza.nl

Afsprakencoördinatie en Adresbeheer

Nooit meer wachten in het gemeentehuis

4 04 2006 by datumentijd

Vroeger, toen ik net begonnen was met mijn studie, haalde ik wekelijks mijn geld bij de VSB bank aan de Burgemeester Reigerstraat in Utrecht. Je kon alleen tussen 9.00 en 17.00 geld ophalen, moest lang in de rij op je beurt wachten en er moest (zucht) telefonisch gecontroleerd worden of er genoeg geld op je rekening stond.

Gelukkig werd vrij snel daarna de PIN-code geïntroduceerd. Je geld uit een automaat, snel en wanneer je dat zelf wilt. Een voorbeeld hoe nieuwe technologie kan leiden tot een verbetering van de dienstverlening.

Tegenwoordig, als je je paspoort wilt verlengen, moet je twee keer naar het gemeentehuis. Een keer om een pasfoto in te leveren. En een keer om je oude paspoort in te leveren en je nieuwe paspoort op te halen. Als je gaat trouwen moet je eerst naar het gemeentehuis voor de ondertrouw in de gemeente waar je gaat trouwen. En daarna moet je naar het gemeentehuis van de plaats waar je geboren bent voor een recente versie van je geboortebewijs.

Wij van D66 Wassenaar hebben wel eens visioenen dat je 's avonds een pasfoto digitaal verstuurt en 2 dagen later je rijbewijs thuis ontvangt. Of dat als je een vergunning aanvraagt je die aanvraag electronisch kan indienen en de status van de behandeling via het internet kan volgen. Of dat je klacht binnen de wettelijk gestelde termijnen afgehandeld wordt.

Want als je als gemeente overheid en burgers dichter bij elkaar wilt brengen, dan is toch een minimale voorwaarde dat de dienstverlening voor die burgers een zo hoog mogelijk niveau heeft? Burgers, die druk bezig zijn werk en zorg te combineren, moeten hun kostbare tijd toch niet spenderen in het gemeentehuis? En de werksfeer binnen je eigen gemeentelijke organisatie wordt toch niet beter van een dagelijkse rij wachtende inwoners aan de balie, terwijl dat niet hoeft?

De huidige stand en kennis van IT bieden voldoende mogelijkheden voor het verbeteren van de dienstverlening. Wat D66 betreft zou Wassenaar bij de kopgroep van gemeenten moeten horen die van die mogelijkheden gebruik maakt.

Sophie Fischer

Dit artikel is eerder gepubliceerd in de Wassenaarder