Reminder: hoe een nieuwe site op te zetten met ZF2

Ben goed thuis in Zend Framework 1 – heb daarin behoorlijk wat sites ontwikkeld. De nieuwe versie van ZF2, nu twee maanden oud, is ingrijpend gewijzigd. Omdat ik elke keer moet opzoeken wat ook alweer de beste manier is om een nieuw project te starten, notuleer ik maar even de stappen:

  1. Maak een nieuwe map aan voor je project
  2. Download en installeer composer, het gemakkelijkst gewoon in je terminal:
    curl -s https://getcomposer.org/installer | php
  3. Gebruik Composer om de ZF standaardapplicatie en het framework zelf te installeren:
    php composer.phar create-project --repository-url="http://packages.zendframework.com" zendframework/skeleton-application
  4. Composer doet suggesties voor aanvullende bibliotheken en modules; de enige suggestie die ik standaard overneem, is doctrine/common, omdat deze de annotatiefunctionaliteit van Zend Form mogelijk maakt. Voeg aan de 'require'-sectie in het composer.json bestand toe:
    "doctrine/common": "dev-master",
    "bjyoungblood/bjy-profiler": "dev-master",
    "zendframework/zend-developer-tools": "dev-master"
  5. Voer achtereenvolgens de commando's in:
    php composer.phar self-update
    php composer.phar update

    Doctrine, alsmede de twee extra modules worden gedownload en geïnstalleerd. Deze moeten overigens nog wel geactiveerd worden in je applicatie.

  6. Kopieer alle bestanden uit de skeleton-applicatie naar je projectmap; de skeleton-map kun je weggooien
  7. Kopieer het configuratiebestand van Zend Developer Tools naar ./config/autoload; verwijder de extensie dist, zodat het bestand gevonden kan worden door ZF
  8. Pas ten slotte je module lijst aan. Mijn PHP-configuratiebestand ziet er nu zo uit:
    return array(
        'modules' => array(
            'Application',
            'ZendDeveloperTools',
            'BjyProfiler'
        ),
        'module_listener_options' => array(
            'config_glob_paths'    => array(
                'config/autoload/{,*.}{global,local}.php',
            ),
            'module_paths' => array(
                './module',
                './vendor',
                './vendor/bjyoungblood',
            ),
        ),
    );
    

Europa, groei en innovatie

 

Visie op innovatie

Ik zag de afgelopen week een aantal berichten passeren over innovatie en hoe Europa hierin achterblijft. Ik ontwaarde in deze berichten een te mooie samenhang om hem hier niet aan te halen.

Het regeerakkoord

Het is voor mij off-topic, maar als oud-correspondent in Brussel kan ik het toch niet laten om een bericht te wijden aan de Europa-paragraaf in het gisteren gepubliceerde regeerakkoord (pdf). Ik heb de discussie rond de positie van Nederland in Europa met enige bevreemding gevolgd, omdat deze naar mijn idee voorbij gaat aan een paar fundamentele en eenvoudige waarheden:

  • problemen zijn steeds minder lokaal, en steeds vaker grensoverschrijdend:
    • criminaliteit
    • milieu
    • handel
    • fiscale stelsels
    • migratie
    • etc
      wat betekent dat internationale samenwerking noodzakelijk is om deze problemen aan te pakken
  • de VS is een homogene massamarkt, wat voor ondernemingen veel schaalvoordelen met zich meebrengt. De lidstaten van de EU zijn elk voor zich veel te klein om de concurrentie op wereldschaal aan te gaan
  • hoe je het ook wendt of keert, Europese landen hebben meer met elkaar gemeen (zelfs, bijvoorbeeld, de Zweden en de Grieken) dan elk van deze landen met de VS. Een gemeenschappelijke geschiedenis is een krachtige culturele verbindende factor

In het regeerakkoord wordt iets meer dan een pagina gewijd aan het Europese project. Die ene pagina ademt toch vooral de scepsis en de terughoudendheid die we de laatste jaren van onze politici gewend zijn geraakt.

Pessimisme over Europa

Bobbie Johnson, voormalig tech-correspondent van onder meer The Guardian en de BBC, is pessimistisch over de mogelijkheden van Europa om te innoveren. Hij zegt dat we ons in Europa te veel concentreren op de prestaties van Silicon Valley, en te weinig stil staan bij de mogelijkheden die Europa van zichzelf heeft. Ons verleden, onze gedeelde geschiedenis, beschouwen we niet als een creditpost waarmee we ons voordeel kunnen doen, maar als een last die als een molensteen om onze nek hangt. We proberen de succesfactoren van Sillicon Valley na te bootsen, en zijn hoe dan ook te weinig bezig met uit te vinden waar onze eigen mogelijkheden liggen.

Synthetische innovatie

Eerder deze week publiceerde Harvard Business Review een bericht waarin vraagtekens werden geplaatst bij de stelling dat de kosten van innovatie aan het dalen zijn. Op zich ligt de stelling voor de hand, omdat nieuwe technologie het steeds gemakkelijker maakt om met nieuwe producten de markt te domineren. Computers worden sneller en goedkoper, 3-d printers liggen in bijna ieders bereik… wat is er nog om een steeds snellere innovatie te stoppen? Veel, meent de auteur:

Technical complexity, social risk management (including lower tolerance for unintended consequences), diminishing returns, and talent challenges have all combined to raise the cost threshold of breakthrough innovation, even as downstream the costs of proliferation — reproducing, replicating, diffusing, disseminating, and indeed hacking innovation — have decreased. Think about the massive investments being made in innovation and R&D in the newly rich countries of Asia, like Singapore and China, and their struggles to produce truly groundbreaking innovation, and you will see the principle described above at work.

Uiteindelijk, zegt hij, liggen de mogelijkheden voor kleine ondernemingen en kleine landen niet in de kostbare innovatie en de dure R&D zoals die in de VS kan plaatsvinden. De achterblijvers moeten het zoeken in 'synthetische innovaties', waarbij de output van een innovatie van de eerste orde (bijvoorbeeld GPS-technologie) kan leiden tot een innovatie van de tweede orde (bijvoorbeeld de commerciële navigatiesystemen). Synthetisch innoveren is relatief goedkoop, weinig riskant, en potentieel zeer winstgevend.

De opdracht voor Frans Timmermans

TL;DR: Breek met de scepsis over Europa, accepteer dat onze toekomst daar ligt. En werk in Europees verband aan onze kracht: bouw aan een cultuur van open innovatie. Bouw aan een Europa dat:

could be the global innovation engine combining the best of both worlds [Azië en de VS, GJB], acting as a broker, facilitator and enabler between East and West. It does after all contain many of the right ingredients to support open innovation including diversity of opinions, intedepence, and decentralisation. Combine that with a central timezone, a very diverse population with global links, creative and financial hubs, why not seek to re-position Europe as the (open) innovation hub in a global innovation ecosystem?

 Ik heb Timmermans wel eens gesproken; hij komt op mij over als een man met een visie. Als hij nou ook nog de ruimte krijgt, komt het misschien toch nog goed met ons en Europa, en met ons en onze innovatie-agenda.

Octrooien schieten hun doel voorbij

Over het oordeel van de Amerikaanse lekenjury dat Samsung patenten van Apple heeft misbruikt, is al veel gezegd. Mij interesseren eerlijk gezegd de directe consequenties voor Samsung en Apple niet zoveel; zelfs maakt het me niets uit als de Android-telefoons een tikje duurder worden door de zogeheten Apple-tax.

Wat me wel zorgen baart, is de overweging dat het systeem van octrooien dat aan Apples overwinning ten grondslag ligt kan leiden tot een tamelijk gruwelijk misbruik van patenten en uiteindelijk ook het stopzetten van alle internet-innovatie.

Een van de punten waarop Apple in het gelijk is gesteld, is dat Samsung in zijn apparaten de techniek heeft gekopieerd voor het inzoomen of uitzoomen van foto's. Als de gebruiker twee vingers op een foto zet en deze naar elkaar toe beweegt, wordt er ingezoomd; bewegen ze van elkaar af, dan wordt het blikveld groter. Ik vind dat een techniek die niet te patenteren zou moeten zijn; net zo min als iemand zou moeten kunnen patenteren dat je soep met een lepel eet. Een lepel is nu eenmaal het aangewezen instrument om soep mee te eten, net zoals de vingerbeweging de meest intuïtieve manier is om te vergroten of te verkleinen.

De zaak doet mij denken aan die van BT (British Telecom) tegen Prodigy, een Amerikaanse internetprovider, waarbij BT beweerde dat het de uitvinder was van de hyperlink. De Amerikaanse rechter was gelukkig weinig onder de indruk van BT's claims; je zou er toch niet aan moeten denken wat er zou gebeuren als één partij in staat zou zijn om de techniek van het hyperlinken als de zijne te claimen.

Google  legde dit jaar 12,5 miljard dollar neer om Motorola over te nemen. Het was niet geïnteresseerd in Motorola's fabrieken, personeel, of klantenbasis; het wilde slechts beslag leggen op de octrooien van Motorola. Deze move tekent wat mij betreft de ziekte van de high-tech industrie. Er is geen technologiebedrijf te noemen dat op dit moment niet honderden miljoenen uitgeeft om aan octrooibescherming. Vooral de advocaten worden er rijk van. Maar de consument wint er niks mee, en de innovatie wordt er niet mee geholpen.

Update: een iets uitgebreidere en meer aangeklede versie van deze post vind je hier.

Waarom Windows 8 een kans heeft op de tablet markt

Volgens Tim Cook, de opvolger van Steve Jobs bij Apple, leven we in een 'post-pc' wereld. Bij de presentatie van de iPad 3, de nieuwste Apple-gadget, zei Cook dat 'de pc niet langer het centrum is van de digitale wereld'. En het moet gezegd, de verkoopcijfers van de iPad zijn fenomenaal. Apple verkoopt meer iPads dan marktleider HP pc's. Ray Ozzie, ooit Bill Gates' opvolger als chef technologisch visionair bij Microsoft, is het met Cook eens. Er is geen twijfel mogelijk dat we in een post-pc wereld leven, zei hij. Maar hij voegde er een belangrijke nuance aan toe: dit betekent slechts dat de scenario's waarvoor we de pc gebruikten, langzamerhand veranderen.

Volgens mij heeft Ozzie gelijk. Ook uit de cijfers blijkt niet dat de pc zijn beste tijd gehad heeft. Volgens marktonderzoeker Gartner zullen er dit jaar 4,4 procent meer pc's worden verkocht dan vorig jaar. Uiteindelijk gaat het met de pc en de tablet als met de ouders die een dochter uithuwelijken: je raakt geen dochter kwijt, maar krijgt er een zoon bij.

Natuurlijk zie je een verschuiving optreden in het gebruik. Er wordt vaak gezegd dat je tablets vooral gebruikt voor consumptie van diensten: je gebruikt het apparaat om spelletjes op te spelen, muziek naar te luisteren, websites op te bezoeken, of video's te kijken. Apple probeert uit alle macht zijn iPads zo te positioneren dat ze ook kunnen worden gebruikt voor de productie van deze diensten: om websites op te bouwen, video's te monteren, en games te programmeren.

Ik denk eigenlijk dat die pogingen tot mislukken gedoemd zijn. Wie lange tijd zakelijk naar een scherm moet staren en ingewikkelde bewerkingen moet uitvoeren, waarbij tien of meer applicaties tegelijk open staan, informatie van het ene naar het andere scherm wordt gesleept, in de tussentijd ook zijn mail moet bijwerken of een presentatie moet voorbereiden: als deze ongelukkige dit alles op een scherm van minder dan 10 inch moet doen, wordt hij stapelgek. Natuurlijk bestaat er inmiddels prachtige software om foto's te bewerken op je tablet. En natuurlijk kun je met die mooie swype-technologie van Samsung snel teksten fabriceren. Maar het blijft een noodoplossing.

Het versturen van een kort mailtje met mijn tablet lukt me prima. Maar een tekst van enige lengte en substantie schrijf ik liever op mijn grote beeldscherm.

Wat ik wel zie gebeuren, op enige termijn: dat de tablet uiteindelijk wel het digitale rekencentrum wordt van mijn kantooromgeving. Maar dat betekent simpelweg dat het ding genoeg interfaces krijgt om er een 22 inch monitor, een ergonomisch toetsenbord en een muis aan te koppelen. En dat de software die erop draait gemakkelijk en snel moet kunnen switchen: van iOS 4 naar OS-X, of van Android Gingerbread naar Windows. En dat zie ik met de huidige generatie apparaten toch niet snel gebeuren. Op die markt heeft hooguit Windows 8 een kans – want dat wordt gemaakt om op zowel tablets als desktops te kunnen draaien. 

 

Technologische vernieuwing en maatschappelijke verandering

Weinig tijd deze week; vandaag ben ik de hele dag bezig met het geven van een training; de rest van de week zit ik in het buitenland en kan ik al helemaal niet meer schrijven. Mijn volgende blogpost komt dus pas maandag de 13e. Excuus daarvoor!

Wil eigenlijk alleen even de gelegenheid aangrijpen om je te attenderen op de site van Kevin Kelly – de oud-hoofdredacteur van Wired Magazine, met zijn boek 'Out of Control' een van de inspiratoren van de film-trilogie The Matrix. Hij is een van die mensen die me helpen om de wisselwerking tussen technologische vernieuwing en maatschappelijke verandering te begrijpen. Hij schreef een paar jaar geleden 'What Technology Wants'. Daarin vergelijkt hij de evolutionaire processen in de biologie met die in een hoog-technologische omgeving; zijn centrale stelling is dat technologie een leven op en van zichzelf heeft, een autonomie die ertoe leidt dat technologie, onafhankelijk van menselijke inspanning, tot nieuwe technologie leidt.

Zeer de moeite van het lezen waard. Volgende week meer over Kevin Kelly, over e-books en over techniek.

De machines nemen het over

Over 35 jaar houdt de mensheid op te bestaan. Wees gerust, dit is geen Mayaanse doemvoorspelling. Integendeel. Als we wetenschapper, uitvinder en futuroloog Ray Kurzweil moeten geloven staan we juist aan het begin van een glorieuze nieuwe dageraad. Kurzweil zegt dat de zon opkomt boven een mensheid die onherkenbaar zal zijn veranderd door  de steeds snellere vooruitgang van kennis op drie gebieden: de nanotechnologie, de biomedische wetenschap en kunstmatige intelligentie. De progressie op deze drie terreinen versterkt elkaar: door nanotechnologie kunnen computers sneller en sterker worden, waarmee we weer rapper de biologische geheimen van ons leven ontrafelen.

In 2045 hebben we het punt bereikt dat Kurzweil ‘singulariteit’ noemt. Wij mensen zullen geleidelijk aan uit steeds meer kunstmatige onderdelen bestaan. Het onderscheid tussen mens en computer vervaagt. We zullen kapotte onderdelen vervangen zoals bij dertigduizend Parkinson-patiënten is gebeurd, die hun ziekte met neurologische implantaten proberen te bestrijden. Met nanotechnologie kunnen we alles maken wat we willen, van onuitputtelijke voedselvoorraden tot energiebronnen die niet opraken. Ziekte behoort tot het verleden – en dood hoeven we ook niet meer.

Ik ben onvoldoende wetenschapper om het waarheidsgehalte van Kurzweils claims te kunnen beoordelen, maar genoeg romanticus om de aantrekkelijkheid ervan te kunnen inzien. Stel je voor, als je nu vijftig bent kun je de onsterfelijkheid nog bereiken! Dat zou wat zijn. Het klinkt als science fiction – maar zoals schrijver Lev Grossman terecht opmerkt in een recent nummer van Time Magazine, Kurzweils toekomstvisioen bevat net zoveel fictie als het weerbericht. Per slot van rekening worden computers niet alleen sneller, ze worden sneller in een steeds rapper tempo. De singulariteit is een serieuze hypothese over de toekomst van de mensheid die door tal van wetenschappers wordt onderzocht. NASA is gastheer van de singulariteits-universiteit waar studenten van alle grote universiteiten het fenomeen diepgaand bestuderen. Google is een belangrijke sponsor. Google-oprichter Larry Page houdt er toespraken.

Kurzweil is een optimist. Computers die steeds sneller worden en steeds intelligenter zullen nooit een bedreiging vormen voor de mensheid. The Matrix is en blijft een film, de machines nemen ons leven niet over. ‘Vanuit het perspectief van een biologische mensheid zullen deze bovenmenselijke intelligenties zich aan ons voordoen als onze trouwe dienaren, die in al onze behoeften en noden zullen voorzien’, schrijft hij. Sommige cijfers lijken hem gelijk te geven. Dat beamen niet alleen die dertigduizend patiënten met Parkinson, maar ervaren we ook zelf: als onze iPhone van ons afgepakt wordt, voelen we ons alsof we onze rechterhand kwijt zijn.

Niet iedereen deelt Kurzweils optimisme. Er is geen garantie dat de machines ons leven niet zullen overnemen. Maar los van de vraag naar het realiteitsgehalte en de positieve dan wel negatieve effecten van de singulariteit, het hele idee roept belangrijke vragen op over ons mens-zijn en onze intelligentie. De pure intellectuele capaciteiten van de mens kunnen heel goed worden nagebouwd. IBM is er per slot van rekening in geslaagd een computer te bouwen die de beste deelnemers van een Amerikaanse kennisquiz vorige week kon verslaan.

Maar het is niet alleen ons intellect wat ons tot mens maakt; het is onze hele sociale omgeving, onze sociale netwerken, onze emotionaliteit die karakteristiek zijn. We bouwen steeds snellere en betere computers die ons steeds meer dichter bij de singulariteit brengen: ze helpen bij de bestrijding van ziektes en bij het oplossen van het energieprobleem. Deze computers hebben in de afgelopen vijf jaar 600 miljoen mensen, wereldwijd, aan elkaar verbonden via elektronische netwerken. Hoe garanderen we dat deze nieuwe kunstmatige intelligentie zo ‘menselijk’ mogelijk is – dat ze inderdaad de mensheid dienen in plaats van haar tot slaaf maken?

Dat zijn volgens mij de belangrijke vragen van de singulariteit – en ik denk dat het tijd wordt dat we daarover ook in Nederland met elkaar in debat gaan.

Zó verkoop je jezelf (en je muziek) online

Wat worden er toch een prachtige dingen gemaakt op het internet. Vandaag kwam ik twee sites tegen die ik u niet wil onthouden:

Arcade Fire helpt je je jeugdherinneringen op te halen. Op The Wilderness Downtown word je geacht om het adres in te geven waar je je jeugd hebt doorgebracht. De band brouwt daar dan een videoclip omheen (in HTML5! – kijk pap, zonder Flash!) waarin jouw eigen jeugd centraal staat – nou ja, met een beetje goede wil dan. Streetviewbeelden van de straten en pleinen waar je speelde worden in de clip verweven. Niet alleen een prachtig concept, maar technisch ook fantastisch uitgevoerd.

De Japanse band Sour heeft iets soortgelijks gedaan, alleen moet je daar iets meer van jezelf prijsgeven dan alleen een adres. De band vraagt om toegang tot je Twitter en Facebook-accounts, en om je webcam aan te zetten als je die hebt. Vervolgens wordt met alle gegevens die je binnen die sociale netwerken achterlaat, een clip gebouwd waarin je zelf de hoofdrol speelt. Technisch slechts iets minder geavanceerd, maar zeker zo mooi.

Ik kan het niet laten: dit zijn toch veel betere manieren om het publiek aan je te binden een nieuwe schare volgers en fans te krijgen, dan ze schrik aan te jagen met copyrights en rechtszaken – waren alle artiesten maar zo creatief en vindingrijk.

Stukken over Zend Framework apart gezet

Ik heb een nieuw subdomein aangemaakt voor de technische verhalen die ik publiceer. Ze vormen in dit blog een vreemde eend in de bijt, en trekken een totaal ander publiek dan mijn spinsels over journalistiek, politiek en nieuwe media. Je kunt ze vanaf nu vinden op http://tech.raker.nl.

Je vindt daar ook het vervolg op mijn handleiding over Zend Framework. Die gaat over imagick en Zend_Mail. Ter lering en, voor sommigen, vermaak.

Formulieren en gegevensverwerking

Dit is het zevende deel van een serie over de bouw van een nieuwe website op basis van Zend Framework. Kijk in de zijbalk voor de linkjes naar de eerste delen.

Een van de meer gecompliceerde componenten van het Zend Framework is Zend_Form. Het duurt even voordat je doorhebt hoe de verschillende onderdelen van Zend_Form met elkaar samenwerken om het de developer uiteindelijk gemakkelijk te maken. Maar als je eenmaal die steile leercurve hebt doorlopen, zul  je merken dat je inspanningen niet voor niets zijn geweest.

Wat Zend_Form gecompliceerd maakt, is de veelheid van verschillende taken die eraan worden toegekend:

  • Het moet op eenduidige wijze formulieren weergeven in de pagina’s
  • Het moet gebruikersinput filteren en valideren
  • Het moet kunnen omgaan met de verschillende formulierelementen die in de verschillende HTML-specificaties zijn opgenomen.

Voor de weergave van formulieren worden decorators gebruikt; voor filtering en validatie filters en validators; en voor de verschillende elementen een deelcomponent die Zend_Form_Element wordt genoemd.

Zend_Form nader bekeken

Het belangrijkste dat je moet weten van Zend_Form is dat je deze component nooit rechtstreeks benadert. Je ontwerpt je eigen formulierklassen die een child vormen van Zend_Form. Binnen je formulierklasse hoef je geen aparte constructor te maken; sterker, het is aan te bevelen om dat niet te doen, omdat je dan een aantal standaardinstellingen van Zend_Form kunt overschrijven.

Zend_Form levert een hook, een lege methode die vanuit de constructor wordt aangeroepen, die je kunt gebruiken om je formulier te initialiseren. Die methode wordt, heel toepasselijk, ‘init’ genoemd. Je standaard formulier zal dus meestal zo’n opbouw kennen: Continue reading →

Compliment voor DirectVPS

Mag ik een warm applaus voor Larry Kos, de man achter DirectVPS?

Bij hem host ik deze en een aantal andere sites op een zogeheten Virtual Private Server. En aangezien serverbeheer niet mijn sterkste kant is, kom ik soms wel eens in de problemen. Een enkele mail is genoeg: Larry lost het op. Dus: zoek je nog een provider, zoek niet langer.