Het dode spoor van Wordpress

Door StephanVierkant op vrijdag 4 december 2015 14:58 - Reacties (19)
Categorie: php, Views: 6.479

Ik ben begonnen met programmeren zoals veel programmeurs. Eerst een standaard HTML-template (met animated gifjes, Flash hover buttons, <marquee>, etc.) aanpassen in FrontPage, overstappen naar DreamWeaver en PHP 4 op een site Tripod (van Lycos Inc.). Later stapte ik over naar een shared hosting provider, waar ik het extra dataverkeer dat mijn phpBB-forum trok betaalde per gigabyte. In guldens. Naast het hobbymatige gepuzzel kwamen steeds meer kennissen met de vraag of ik ook een site voor hen wilde maken. Samen met enkele vrienden deden we dat met veel plezier en zo werden mijn kroegbezoeken gefinancierd.

Onder programmeurs werd PHP echter niet als volwaardig gezien. Het blog ‘PHP: a fractal of bad design’ is een klassieker die elke programmeur zou moeten lezen. Inmiddels is er veel veranderd. Veel van de genoemde punten zijn inmiddels opgelost of niet meer relevant. Met de komst van PHP versie 7 worden nog meer zaken verbeterd.

Met de komst van WordPress 3.0 ontwikkelde de blogsoftware zich steeds meer als CMS. Zaken zoals de ‘custom post types’ zorgden voor veel flexibiliteit en de hoeveelheid thema’s, plugins en tutorials groeide razendsnel. Ik stapte af van een eigen gebouwd CMS en de vele statische websites werden steeds dynamischer.

Gemaakt door en voor luie programmeurs

WordPress is langzaam gegroeid van weblog-software naar een CMS met focus op nieuwe functionaliteiten en vlakke leercurve. Dat heeft veel nieuwe functies en veel nieuwe ontwikkelaars gebracht, maar heeft er ook voor gezorgd dat WordPress technisch behoorlijk rammelt. Een (heel) kleine bloemlezing:
  • Er wordt gebruik gemaakt van Global variables. Dit wordt breed gezien als een bad practise: zo maakt het de uitkomst van functies erg onberekenbaar. Voor mij als programmeur is dat echt verschrikkelijk.
  • Ook functienaamgeving is ondoorgrondelijk. Zo heb je ‘the_title()’, dat niets anders doet dan ‘echo get_the_title()’. In combinatie met de global variables die door The Loop worden gebruikt, maakt dit de code slecht leesbaar. Of een functie iets echo’t of returnt is compleet willekeurig. En waarom is er Łberhaupt een functie nodig? Wat is er mis met ‘$post->title’ of ‘$post->getTitle()’?
  • De afhandeling van fouten is nauwelijks mogelijk door de onbegrijpelijke implementatie van WP_Error. Wat is er mis met Exceptions? Eigenlijk is er geen fouthandeling in WordPress: dit moet je zelf inbouwen door functies af te vangen als ze ‘false’ returnen. Het zal niet verbazen dat dit vaak mis gaat: WordPress is gemaakt voor luie programmeurs (die de fouten dus niet goed afvangen) en omdat je bij ‘false’ niet weet of je verzoek mislukt is of het gewoon geen resultaten heeft gevonden.
  • Last but not least: de grote hoeveelheid plugins en thema’s is een sterkte en een zwakte tegelijkertijd. Het aanbod is gigantisch, maar de lage leercurve heeft ook luie programmeurs aangetrokken. De meeste plugins zijn slecht onderhouden en de kwaliteit ervan is soms schandalig laag. De levendige handel in thema’s is een walhalla voor hackers.

PHP als ecosysteem: composer en namespaces

PHP heeft zich de afgelopen jaren flink ontwikkeld. Niet alleen door beetje bij beetje de eerder genoemde ‘designfouten’ te verbeteren, maar de grootste ontwikkeling kwam misschien wel van buitenaf: Composer. Sinds PHP 5.3 namespaces ondersteunt is het uitwisselen van componenten eenvoudiger en de ‘Dependency Manager for PHP’ heeft er voor gezorgd dat programmeurs bibliotheken eenvoudig kunnen binnenhalen. Hiermee is PHP uitgegroeid van scripttaal naar ecosysteem.

Ontwikkelaars hebben dit massaal omarmd. Iedereen snapt dat ‘het wiel opnieuw uitvinden’ geen goed idee is en veel grote softwarepakketten gebruiken composer. Zo worden de componenten uit Symfony in veel grote projecten gebruikt. Met Drupal 8 hebben de ontwikkelaars naar eigen zeggen afscheid genomen van het ‘Not Invented Here’ syndroom.

Helaas staat WordPress op dit vlak compleet stil. WordPress ondersteunt PHP 5.2 nog steeds, terwijl deze versie al lang verouderd is. Er komen al bijna 5 jaar geen security fixes meer voor uit en het gebruik ervan wordt door iedereen sterk ontraden. Dat is ongeveer de Middeleeuwen in ICT-tijd. Deze onnavolgbare focus op het verleden remt de vooruitgang van WordPress.

De toekomst van WordPress

De plugins van WordPress zijn alleen te gebruiken binnen WordPress, terwijl de wereld om WordPress heen steeds meer bezig is met uitwisselbaarheid tussen systemen. Systemen die vroeger concurrenten leken, dragen nu samen bij aan de verbetering van het ecosysteem. Het is maar de vraag of WordPress kan concurreren tegen de rest van de PHP-wereld. Het lijkt er niet op dat WordPress de keuze om composer te gebruiken (op korte termijn) gaat maken. Mijn voorspelling (en ook hoop) is dat steeds meer ontwikkelaars WordPress de rug zullen toekeren en kiezen voor andere pakketten, waarbij templates en ‘business logic’ meer worden gescheiden van de gekozen software. Nu een klantspecifieke plugin ontwikkelen is immers kiezen voor een ‘vendor lock-in’. Daarbij komt dat alle krachtige nieuwe technieken (sass, twig, etc.) lastig zijn te implementeren in WordPress. Een CMS zonder enige vorm van scheiden tussen Model, View en Controller is anno 2015 niet meer serieus te nemen.

Ik ben nogal teleurgesteld in de ontwikkeling van WordPress en mede-oprichter Matt Mullenweg zegt het zelf ook: “We realized that the tech wasn’t going to take us to the next decade.” Het team ontwikkelde een nieuwe interface voor Wordpress.com en bracht deze open source uit. Maar pas na de lancering en bovendien alleen de client side code: de backend draait d.m.v. de plugin Jetpack op de server van Wordpress, waarmee een belangrijk deel van WordPress dus niet meer open source is. Of de backend Łberhaupt open source wordt, is nog maar de vraag: “Asked whether the new interface, dubbed Calypso, would become part of the main open source WordPress project, Mullenweg says he hopes so, but that will depend on what the community wants. There could be some technical challenges involved in integrating the new interface because Calypso isn’t just a visual redesign but a complete technical overhaul.”

De eigenaar van WordPress lijkt ook het geloof in de ontwikkeling van WordPress opgegeven te hebben. “It’s up to the community” is mijn inziens een eufemisme voor ‘zoek het allemaal lekker zelf uit’. Het doet me denken aan wat Google nu met Android doet: steeds meer onderdelen worden uit AOSP gehaald en verdwijnen (closed source) in de Play Store.

Mijn conclusie: Het open source CMS WordPress is op sterven na dood. Gezien het marktaandeel zal het een zeer langzame dood sterven, maar lijkt mij momenteel onvermijdelijk. De eigenaar legt de focus op de (closed source) Wordpress.com, de focus op het verleden (PHP 5.2) remt de ontwikkeling, terwijl de wereld om WordPress heen juist een enorme sprong voorwaarts maakt. Ik ben benieuwd of de ontwikkelaars nog een verrassing uit hun hoge hoed toveren of dat het begin van het einde is ingezet.

Telfort, test je communicatie!

Door StephanVierkant op woensdag 10 juni 2015 09:58 - Reacties (10)
Categorie: -, Views: 4.308

Ik ben al geruime tijd klant bij Telfort en ik moet zeggen dat de Telfort-reclames redelijk recht doen aan hoe ik het bedrijf ervaar. Dezelfde kwaliteit als KPN, maar dan iets meer uitgekleed. Inmiddels weet ik waar ze op bezuinigen: de communicatie naar bestaande klanten.

Ik kon niet inloggen op de Mijn Telfort app, dus vroeg een nieuw wachtwoord aan. Die kwam niet, ook niet na enkele uren. Toen ik via een ander formulier een wachtwoord aanvroeg, kwam het volgende SMS'je binnen:
Geachte klant, het wachtwoord voor uw MijnTelfort account % is %.Blokkade van premium SMS diensten kunt u eenvoudig regelen via Mijn Telfort.
Daar heb je dus weinig aan.

Ook andere mails worden blijkbaar niet getest, want alle mails van Telfort (behalve de reclamemails) bevatten een of meerdere fouten. Een korte bloemlezing:

Gesprek op jjjjmmdd

http://static.tweakers.net/ext/f/B4MAHjZ2Jr8FozFnAwE24WZi/full.png
Het is "Geachte heer/mevrouw" als aanhef, "De heer [achternaam]" als adressering. Hier kiest Telfort voor een verrassende combinatie. Maar wanneer was dat gesprek precies?

%

http://static.tweakers.net/ext/f/oznrWPXi0ONDXFyjBjRvCQhU/full.png

"Uw is omgezet"

http://static.tweakers.net/ext/f/b9CvvqDLXsbcgeqps9Qpsv46/full.png

RTL, zo moet je dus geen apps bouwen

Door StephanVierkant op dinsdag 11 november 2014 15:08 - Reacties (14)
Categorie: -, Views: 8.498

Onlangs wilde ik een aflevering van een RTL-programma terugkijken, maar inmiddels heb ik dat nog steeds niet gedaan. De Android-app van RTL is zo slecht dat terugkijken nauwelijks mogelijk is. Ik heb de app getest op verschillende apparaten*. Geen van de apparaten kon de aflevering zonder hapering streamen, terwijl de verbindingen (ja, meerdere getest) verder prima waren (> 25 Mbit). Na enig onderzoek bleek ik niet de enige te zijn.

De waardering van de RTL-XL app is beroerd, maar ook andere RTL-apps scoren erg slecht. RTL, waar zijn jullie in godsnaam mee bezig?! De enige app van CLT-UFA NL (de officiŽle naam van de toko waar RTL onder valt) die 4 sterren haalt is Couverts Dashboard, maar die heeft dan ook maar 20 stemmen. Ter vergelijking: vrijwel alle andere apps die ik momenteel gebruik hebben ten minste 3,5 ster en de meeste zelfs 4 of 5:
andere apps

De apps lijken gemaakt door het bedrijf Tapptic, die zich er blijkbaar ook voor schamen. De apps ontbreken in hun portfolio.

Overigens focus ik me alleen op Android-apps, maar ik zag al in de App Store van Apple dat het daar niet beter is gesteld.

De beoordelingen van enkele RTL-apps:
Ik heb nog even gekeken of er verschil is tussen de meest recente versie van de app en oudere versies. Helaas is dat wat lastig te zien in de Play Store, maar een snelle scan laat eigenlijk geen verschil zien. Het lijkt er zelfs op dat de apps steeds vaker crashen dan voorheen.

RTL XL:
rtlXL

RTL Nieuws:
RTL nieuws

RTL 365:
RTL 365

Ook de apps van TV-programma's scoren niet zo best. Deze zijn gemaakt door Tellybug:
Weet ik veel:
Weet ik veel

The Voice of Holland:
Voice

* Geteste apparaten
  • Nexus 5
  • Nexus 7 (2013)
  • Galaxy Nexus
  • Galaxy Tab 10.1"
  • Tizzbird N1 (HMDI-stick)
De eerste twee Nexus-toestellen heb ik momenteel veel in gebruik en zijn getest met Android 4.4, Android L en Android 5.0. Het werkte allemaal even slecht.

Reageren? Graag!
Maar laat 'bij mij doet hij het wel/niet' achterwege a.u.b. ;)

Rijks politie

Door StephanVierkant op woensdag 17 september 2014 10:11 - Reacties (21)
Categorie: -, Views: 8.359

In Nederland had men vroeger de Rijkspolitie en de Gemeentepolitie. Deze werden in 1993 afgeschaft en gingen op in de regiokorpsen en het Korps Landelijke Politiediensten (KLPD). Inmiddels zijn we weer een reorganisatie verder en kennen we de Nationale Politie.

Onlangs kwam ik een plaatje tegen van een Porsche 911 van de Rijkspolitie:
http://www.knac.nl/wp-content/uploads/2012/11/Porsche-911-KLPD.jpg

Het lettertype doet me ergens aan denken:
http://www.nrc.nl/wp-content/uploads/2012/09/HH_17865591.jpg

In 2007 heeft de Rijksoverheid besloten dat er een meer consistent huisstijlbeleid moet zijn. De wildgroei aan verschillende logo's en huisstijlen binnen de Rijksoverheid was een doorn in het oog en sindsdien gelden er strakke richtlijnen.

Waarom noemen we de Nationale Politie niet gewoon weer Rijkspolitie? Dan gieten we het in een modern jasje en voegen we gewoon een spatie toe.

Marktplaats; waar is de innovatie!?

Door StephanVierkant op woensdag 10 september 2014 09:29 - Reacties (45)
Categorie: -, Views: 10.800

De afgelopen tien jaar heb ik vele tweedehands artikelen ver- en gekocht, zowel via Tweakers, Bol.com en Marktplaats. Het verschillen tussen die laatste en de andere twee vind ik echt opvallend. Waar is de innovatie van Marktplaats? De wijzigingen die ik me kan herinneren in al die jaren maakten de site alleen maar slechter en -correct me if I'm wrong- ik heb geen verbeteringen gezien.
  • Veel van de advertenties bevatten geen foto's door de gebruiker zelf gemaakt. En waarom zou je ook? Je googlet even en copy-paste gewoon de eerste hit. De mogelijkheid om rechtstreeks te zoeken in een fotodatabase (Google Images of vergelijkbaar) zou de kwaliteit van de foto's verbeteren en het gebruiksgemak vergroten.
  • Hetzelfde geldt voor de omschrijvingen. Tweakers en Bol.com hebben respectievelijk een grote en gigantische database waaraan je je product kunt (of moet) koppelen. Waarom ontsluit Marktplaats niet verschillende databases? Dat vergroot het gebruiksgemak enorm: je kunt foto's, omschrijvingen en metadata eenvoudig toevoegen, waarmee zowel het plaatsen als doorzoeken gemakkelijk wordt. Regelmatig raak ik het overzicht tussen advertenties kwijt, zelfs bij zeer eenduidige producten met een uniek kenmerk zoals een typenummer of ISBN-nummer.
  • De betrouwbaarheid van zowel koper als verkoper is nauwelijks in te schatten. Waarom kun je gebruikers niet beoordelen, zoals Tweakers zo goed doet? En waar zijn de mogelijkheden voor extra verificatie? Het (optioneel) koppelen van een uniek telefoonnummer aan een account maakt het voor oplichters lastiger steeds weer fake-accounts aan te maken. Ik heb gelukkig nog geen oplichting meegemaakt, maar ik heb al wel een aantal keer lang moeten wachten op producten of hoorde ineens niets meer van de verkoper.
  • Alle aan- en verkopen heb ik betaald (gekregen) via bankoverschrijvingen. Erg vreemd, blijkbaar doet huidige eigenaar eBay geen moeite om haar eigen PayPal te promoten. Dit terwijl de e-mailnotificatie bij een ontvangen betaling erg handig kan zijn. Veel tijd (en ergernis) gaat nu verloren aan het heen- en weermailen over betalingsgegevens. Een “koop direct”-button kan ook voorkomen dat verkochte producten nog steeds online staan.
  • Waar zijn de mogelijkheden voor een notificatie bij nieuwe producten? Dat een zoekactie niets oplevert, wil niet zeggen dat in de nabije toekomst niets wordt aangeboden. Een alert ontvangen als er een bepaalde nieuwe advertentie is geplaatst, zou enorm veel helpen. Een RSS-feed is toch niet zo lastig te maken?
  • Goede suggestie van Xavier: e-mailen kunnen ze namelijk wel. Je krijgt ongevraagd een kopie van een bericht dat je aan iemand zendt. Enigszins nutteloos, aangezien je die berichten zelf verzendt. Die notificatie is niet uit te zetten.
  • Waar zijn de koppelingen met sociale media? Ik heb al een aantal keer een advertentie van mezelf op Facebook gedeeld, waarbij de verkoop uiteindelijk is gesloten met een bekende. Een koppeling met Twitter- of Facebook-account maakt het verspreiden van je eigen advertentie gemakkelijker en bovendien is het sluiten van de verkoop met een bekende veel prettiger. Bijkomend voordeel is dat een (unieke) koppeling met een social media-profiel de betrouwbaarheid van een account ook nog beter inzichtelijk kan maken.
  • De Android-app, mobiele site en desktop site verschillen erg van elkaar. De mobiele site is voor mij echt onwerkbaar en aangezien de Android-app al tijden crasht i.c.m. Android L is mobiel gebruik van Marktplaats voor mij niet mogelijk.
  • De Android-app, mobiele site en desktop site verschillen erg van elkaar. De mobiele site is voor mij echt onwerkbaar en aangezien de Android-app al tijden crasht i.c.m. Android L is mobiel gebruik van Marktplaats voor mij niet mogelijk.
En dit is slechts mijn lijstje. Er zullen nog veel meer ideeŽn zijn waar ik niet aan gedacht hebben, maar slimme ICT'ers of marketeers al wel. Maar waarom verrast Marktplaats ons niet met slimme features?