Archives for category: Uncategorized

20140112-164446.jpg

Met stilstaan toch een stapje verder komen, dat was mijn eindejaarmotto. Even niks zeggen, even goed luisteren. En wat hoorde ik? Veel, maar niet alles was even mooi. Wat worden er veel onzinnen de wereld in gespuugd. Het hielp me aan een goed voornemen: niks zeggen als er niks te zeggen valt. Verwacht dus niet meer elke week een artikel. Of elk artikel een week.

Afgelopen week vond in Las Vegas de Consumer Electronics Show (CES) plaats. Eén en al nieuwe speeltjes voor grote en kleine jongens. Ik was er (gelukkig) niet en Microsoft ook niet. Dat laatste verbaasde de wereld; het viel op dat alles wat er was (veel slimme horloges, schijnt het) te maken had met Apple’s iOS of Google’s Android. Hoewel Apple en Google er zelf ook niet waren, waren er heel veel bedrijven die op Apple’s en Google’s producten inhaken. Maar bijna niemand wil iets maken met of voor Windows; daarmee gaat het blijkbaar slecht. Hm, schreef ik daar niet vorig jaar eens over? Jawel, ik zei toen dat je beter niet afhankelijk van Word kon zijn, en misschien wel Markdown moest gebruiken. En ik beloofde daarop terug te komen. Bij deze dan.

Het idee van Markdown is dat je al je teksten schrijft als “platte tekst”. Niet in een super-de-luxe tekstverwerker zoals Word of Pages, maar met een willekeurig simpel tekst-type-programma. Op de Mac bijvoorbeeld met TextEdit, onder Windows zou dat Notepad kunnen zijn. Beide gratis en supersimpel. Just type.

Maar: in veel gevallen wil je iets meer dan platte tekst. Je wilt waarschijnlijk

  • cursief of
  • vet of
  • een lijstje met wat je wilt

En dat kan. Zoals je zag, want: vanaf vandaag schrijf ik deze blog als Markdown-tekst. Hoe deed ik het bovenstaande? Dit was de tekst zoals ik hem schreef:

- cursief of
- vet of
- een lijstje met wat je wilt

En wat je ook vaak wilt doen: een link naar een andere site. Dat deed ik zo:

En wat je ook vaak wilt doen: een [link naar een andere site](http://daringfireball.net/projects/markdown/).

De tekst zoals je ‘m schrijft bevat dus aanwijzingen voor hoe je ‘m op het scherm of papier wilt krijgen. Die aanwijzingen moeten worden verwerkt door een speciaal programma. Voor mijn blog gebeurt dat automatisch omdat WordPress, de website waarop ik mijn blog publiceer, dat sinds kort doet. Andere teksten die je maakt met Markdown moet je zelf omzetten met een programma op je computer. Er bestaan veel van die programma’s, meestal gratis of goedkoop, en simpel te gebruiken. Een paar voorbeelden:

Ze spelen een dubbelrol: ze helpen je de tekst in te typen, en ze kunnen die tekst omzetten. Naar een webpagina bijvoorbeeld, of naar een pdf (zodat iemand anders het kan lezen), of naar een Word-document (als iemand anders het verder wil verwerken).

Kopjes

van verschillende afmetingen

zijn ook mogelijk. Evenals voetnoten1. Mooi hè?

Wil je meer weten over Markdown? Hier zijn wat links:

Wat Markdown mij oplevert is dat ik de teksten die ik hier schrijf ook nog eens op een andere plek kan gebruiken. Nu worden ze onderdeel van mijn blog, maar later zou ik er een pdf van kunnen maken. Of een boek, als ik erg beroemd word.
Ik ga nog even oefenen. Geniet van de stilte.


  1. die weer terug verwijzen naar de oorspronkelijke plek 
Advertenties

OLYMPUS DIGITAL CAMERA

Er breekt een mooie tijd aan. De zomer is mooi vanwege het licht, de winter is mooi door de duisternis. De schemering binnen handbereik, elke dag opnieuw. Een schemerwandeling door de buurt geeft me een blik in de levens van al die andere mensen. Ze hebben hun lichten al aan, maar hun gordijnen nog niet dicht. En omdat het nog niet helemaal donker is ben ik ook nog zichtbaar. We zijn één grote familie. Lijkt het wel.

Het is ook een mooie tijd om stil te staan. De laatste budgetten zijn op, de mensen zijn moe en verlangen naar geborgenheid. Zakelijk laten we elkaar met rust, zodat we tijd hebben voor familie en vrienden. Of, ook belangrijk, voor onszelf. Tijd om na te denken, over het verleden en de toekomst. Tijd is bijzonder: alledaags en toch kostbaar.

Het is me dit jaar gegeven om bijtijds te kunnen beginnen met stilstaan. Wat zal het me brengen? Momenten van stilte? Momenten met mooie muziek of inspirerende woorden? Met mensen? Gedachten? Daden? Verveling? Het is allemaal goed. Tegelijkertijd zal het niet met iedereen op ieder moment goed gaan, daarin is de winter niet anders dan de zomer. Laten we proberen het te aanvaarden, het hoort erbij.

Ik ga dus even de schemering in. Ik hoop jullie volgend jaar allemaal weer terug te zien. Mijn wens voor iedereen: sta stil, en wees niet bang voor wat dat met je doet.

20131201-211822.jpg

Na een paar weken stevig er tegenaan mag ik deze week weer een cursus geven die ik op mijn sloffen kan doen. Letterlijk op mijn sloffen, want ik hoef de deur niet uit. Het is weer een LVC, een Live Virtual Class. (De cursisten zitten in Letland en Roemenië, wat ze een uur voordeel geeft. Ik moet dus wel wat vroeger op.) En figuurlijk op mijn sloffen, omdat de stof van deze training me veel beter ligt. Het gaat over GUI’s, oftewel Graphical User Interfaces. Ik vind dat altijd het leukste, bij alle software die ik maak. Daarom maak ik zo graag apps, die hebben heel veel interactie met echte mensen.

Het is, zoals gewoonlijk, een Java-cursus. De user interface-kant van Java heet JavaFX. Hoewel Java meestal wordt gebruikt voor server-toepassingen (dus zonder user interface) kun je met JavaFX wel degelijk echte client-toepassingen maken. Ik zou willen dat meer software-ontwikkelaars dat deden. En niet alleen omdat ik dan meer cursisten zou hebben. JavaFX is een modern systeem, en heel leuk om te programmeren. Het heeft veel geleerd van mobiele platforms, zoals Apple’s iOS (iPhone en iPad) en Google’s Android. Jammer alleen dat dat nou net de platforms zijn waarop JavaFX niet werkt. Was dat wel zo, dan kon ik overal met Java terecht. Voor het schrijven van server-applicaties, en voor het schrijven van iPad-apps. Zelfs Android-apps zou ik dan kunnen maken (als het echt moet). Wouldn’t it be nice, zongen de Beach Boys al lang geleden.

Maar er zijn geruchten. Het schijnt dat er toch ergens, in Praag, wordt gewerkt aan JavaFX voor iOS en Android. Zodra ik weer wat meer tijd heb ga ik mijn speurneus erin steken. Gelukkig zijn alle cursussen voor de rest van het jaar geannuleerd. De toekomst ziet er heerlijk leeg uit.

shutterstock_158118170

Eén van de onderwerpen tijdens de zojuist afgelopen cursus software-architectuur was het gebruik van mobiele apparaten om verbinding te maken met computers op afstand. Zonder dat je het altijd weet doe je dat voortdurend, met je mobiele telefoon of je tablet. Je logt in bij de bank of op Facebook, of je speelt WordFeud, of je stuurt een WhatsApp. Er wordt dan altijd verbinding gemaakt met een server. Het ontwerpen van dit soort toepassingen is een belangrijke taak voor software-ontwikkelaars. De vraag die deze week opkwam is: welk mobiele platform willen we ondersteunen? Apple’s iOS? Google’s Android? Microsoft’s Windows Phone of Windows RT? Of gaan we ál deze platforms ondersteunen? Maken we voor ieder platform een app? Dat laatste maakt het niet goedkoper, dus we willen kiezen. Er is weinig twijfel over iOS en Android, die hebben de toekomst. Maar Windows Phone/RT? Wie gebruikt dat? Dat levert een interessante situatie op: stel dat mensen steeds minder PC’s gaan gebruiken, en steeds meer tablets. Heeft Microsoft dan nog een toekomst, of wordt de plaats volledig ingenomen door Apple en Google?

Ga er, als gedachte-experiment, eens van uit dat Microsoft zijn langste tijd heeft gehad. Of dat er op zijn minst geen Windows meer is. Wat betekent dat dan voor de veelgebruikte programma’s Word en Excel? Blijven die gewoon bestaan, maar nu voor iOS en Android? Dat zou best wel eens kunnen. Microsoft verdient een hoop geld aan deze Office-producten. Microsoft is niet gek natuurlijk; als Windows verdwijnt, zorgen ze er echt wel voor dat ze nog wat anders in de aanbieding hebben. Word en Excel, wellicht. Bedenk ook dat Word en Excel (of eigenlijk diens voorloper Multiplan) eerder voor de Mac beschikbaar waren dan voor Windows. Het was 1985, de Mac was net nieuw, en van Windows was nog geen sprake. Apple werkte nauw samen met Microsoft om Word en Multiplan op de Mac te krijgen. Microsoft heeft daar een hoop van geleerd, zullen we maar zeggen (zoals later bleek toen ze met Windows kwamen, als concurrentie voor de Mac). Zo bekeken is Windows maar een tijdelijk platform voor Word en Excel. Dus Microsoft blijft bestaan, alleen Windows verdwijnt misschien.

Maar dat zet me toch aan het denken. Als Windows kan verdwijnen, dan kunnen Word en Excel op een dag ook wel verdwijnen. En wat doen we dan met al die Word-documenten? Het is toch een soort standaard in de wereld om documenten uit te wisselen in Word-formaat. Tussen Windows-gebruikers is dat heel gewoon, maar ook tussen Mac-gebruikers. Of tussen een Windows- en een Mac-gebruiker, dat werkt gewoon. Zonder Word wordt het wel heel lastig om al die oude woorden weer te lezen. Het Word-formaat is namelijk helemaal niet standaard, hoewel er een paar andere programma’s zijn die het kunnen lezen. Zoals Apple’s Pages, maar da’s toch meer om aan te sluiten bij Word, niet om het te vervangen. Pages heeft trouwens hetzelfde probleem: zonder Pages zelf is het niet mogelijk om Apple’s eigen niet-standaard Pages-documenten nog te ontcijferen. Kortom, we zitten vast aan deze programma’s, en daarmee aan Microsoft en Apple. Een eng idee.

Is er een oplossing voor deze afhankelijkheid? Ja, die is er. Al je documenten opslaan in plain text. Geen formattering, gewoon platte tekst. Dat levert wel beperkingen op. Geen cursief of vet, geen lijstjes met punten, geen grote letters voor kopjes, ga maar door. Maar er is toch een oplossing die platte tekst combineert met al deze, en meer, opmaakmogelijkheden. Die oplossing heet Markdown. Het is een notatie ooit bedacht door John Gruber en inmiddels algemeen geaccepteerd door schrijvers die schrijven voor het internet. Uiteindelijk kan een Markdown-document worden omgezet naar HTML, om het netjes geformatteerd te tonen op internet-pagina’s. Maar je zou er ook ieder ander soort document van kunnen maken. Waar het om gaat is dat het platte tekst is, en dus tot in de lengte van jaren met iedere soort tekstverwerker gelezen of veranderd kan worden. Tekstverwerkers met uitgebreide mogelijkheden, zoals Word en Pages, maar ook simpele. Van die laatste categorie zijn er talloze. Er waren tekstverwerkers voor platte tekst in de beginjaren van computers, en ze zullen er zijn zolang er computers bestaan. Van computers blijven we dus nog even afhankelijk.

Misschien is Markdown niet voor iedereen geschikt. Hoewel, als je Word kunt begrijpen ben je al een soort held, en Markdown is simpeler. Ik ga het niet hier en nu uitleggen. Het punt is namelijk dat ik er zelf nog nauwelijks ervaring mee heb. Maar het idee is dat ik deze blog in de nabije toekomst in Markdown ga schrijven. En misschien besluit ik dan wel om al mijn teksten voortaan in Markdown te schrijven. Hoewel ik het persoonlijk niet zo erg vind om van Apple en Pages afhankelijk te zijn. Er is trouwens ook altijd nog het spreadsheet-probleem om op te lossen. Er is geen Calcup, of zoiets, voor zover ik weet. Maar ik kom erop terug. Eerst nog even wat cursisten wegwerken. Als je niet zo lang kunt wachten, lees dan alvast dit iBook. ’t Is niet gratis, nee. Schrijvers moeten ook eten. Net als programmeurs, trouwens.

20131117-210418.jpg
Deze week mag ik een cursus geven over software-architectuur. Dat is een tak van sport die vooral bij grote bedrijven wordt bedreven. Als een groot software-systeem (denk aan een website zoals Marktplaats, of internetbankieren) wordt ontwikkeld dan wordt er eerst een ontwerp gemaakt. Daarbij wordt nagedacht over wat het systeem moet doen, en over hoe dat systeem intern moet werken. Software-architectuur gaat een stap verder: dat gaat niet over hoe de software werkt, maar over hoe goed de software werkt. Het gaat niet over functionaliteit, maar over kwaliteit. Over snelheid, betrouwbaarheid en veiligheid, bijvoorbeeld. Dat is wat de gebruiker van de software ervaart. Maar het gaat ook over kwaliteiten die alleen het bedrijf zelf zal ervaren. Bijvoorbeeld: schaalbaarheid (hoe reageert het systeem op een plotselinge toename van het aantal gebruikers), flexibiliteit (hoe moeilijk is het om wijzigingen in het systeem aan te brengen), of onderhoudbaarheid (hoeveel moeite moet er worden gedaan om het systeem in de lucht te houden).

Het grappige is dat er grote overeenkomsten zijn met de architectuur die we allemaal kennen: die van gebouwen. Een paar jaar geleden vond ik in een mooie boekwinkel in Kopenhagen een boekje met de naam “101 Things I Learned In Architecture School” (Matthew Frederick). Wijze lessen van en voor architecten. Grappige tekeningen, met bondige verklaringen. Ik wil er hier een paar noemen, en laten zien hoe ze ook van toepassing zijn op software-architectuur.

Architects are late bloomers.
De meeste architecten zijn op hun best rond hun vijftigste. Er is ervaring nodig om een goeie architect te zijn. Dat geldt ook voor software-architecten. Ze zijn als jonkie begonnen als programmeur, en zijn als ze goed zijn daarna ontwerper geworden. En als ze heel goed zijn mogen ze architect worden. Je ziet het aan de cursisten: ouder, wijzer, soms zelfs in pak. Jawel, en dat voor een programmeur.

No design system is or should be perfect.
Imperfecties kunnen een gebouw verrijken, of menselijker maken. Uitzonderingen op de regel zijn soms beter dan de regel zelf. Bij software-architectuur geldt: maak het zo goed als economisch verantwoord is. Niet zo slecht dat je klanten weglopen, maar ook niet zo goed dat je het niet terugverdient. Soms is het voor een bedrijf goedkoper om zich te verzekeren tegen de schade van eventuele fouten, dan om die fouten bij voorbaat op te lossen. (Denk daar maar eens aan als je een probleem hebt met een website.)

Less is more.
Geen toelichting nodig. Overdaad schaadt. Ook in de software geldt: hou het eenvoudig. Hoe complexer, hoe meer kans op problemen. In (o.a.) de software-industrie noemen we dit principe: KISS (Keep It Simple, Stupid).

A proper building grows naturally, logically, and poetically out of all its conditions.
De beste software ontstaat iteratief. Er wordt een eerste versie gemaakt, met zo weinig mogelijk functionaliteit. Daardoor leer je wat je eigenlijk wilt, of wat er mooi bij zou aansluiten. Dan verander of maak je dat. Da’s de tweede iteratie. Waardoor je vervolgens weer op nieuwe ideeën wordt gebracht. De tijd dat we eerst heel lang gingen nadenken voor we de eerste letter op papier zetten is voorbij. Je denkt wel eerst na, maar op een gegeven moment begin je met bouwen. En daarbij moet je vooral blijven nadenken.

Tot slot mijn favoriet:
An architect knows something about everything. An engineer knows everything about one thing.
Dat sluit goed aan bij mijn eigen manier van denken. Liever in de breedte dan in de diepte. Ik weet niet alles, ik weet van alles een beetje. Nou ja, van bijna alles een beetje. Of is het toch: van een beetje een beetje? De evaluaties die de cursisten mogen geven aan het eind van de week zullen het me leren.

Het was een gedenkwaardige week. Ik werd ziek met alles erop en eraan. De cursus die ik zou geven moest doorgaan, maar heeft daar wel onder geleden. Het was een nieuw onderwerp voor me, en ik had me graag iets beter voorbereid. Gemiddeld heeft het nog wel wat opgeleverd. Volgende keer beter, zeg je dan, maar het duurde toch even voor ik dat met overtuiging kon zeggen. Ik kan er slecht tegen als ik vind dat ik mijn werk niet helemaal top doe. Een nachtmerrie. De klant was gelukkig lief voor me.

Wat hielp was het cadeautje dat de koerier me de volgende dag bracht: de iPad Air. De mooiste iPad die ik tot nu toe heb gehad. Klein, licht, mooi, snel. Een grote mini. En met zo veel geheugen dat ik voor het eerst alles erop kwijt kan: al mijn muziek, al mijn foto’s, al mijn boeken, en natuurlijk alle apps die ik gebruik. De droom van iedere naar autisme neigende persoon, in elk geval van deze. Ik ben waar mijn iPad is.

Ik zit nu de volgende cursus (gedegen!) voor te bereiden op de iPad Air. De cursusboeken komen tegenwoordig als pdf, dus da’s makkelijk. “Vroeger” liep ik met ordners te slepen, nu alleen met een iPad. Op de iPad kan ik af en toe even switchen naar internet om literatuuronderzoek te doen. Intussen luister ik naar mijn favoriete muziek. Je zou zeggen dat dat afleidt, maar het helpt me juist om me te concentreren. Tussendoor een e-mailtje lezen of schrijven, dat houdt mijn klanten tevreden. Sommigen willen chatten, ook goed. En zojuist kreeg ik een idee voor een blog: meteen even omschakelen naar de WordPress app om het op te schrijven. Storingen hebben voorrang.

De keerzijde is dat de iPad toch ook een bron van afleiding is. Even op de kaart kijken waar we volgende keer in Parijs gaan fietsen. Stiekem een spelletje spelen als de cursus even moeilijk is. Procrastination, het Nederlandse woord schiet me zo gauw niet te binnen. Maar van procrastination is bekend dat het ook iets oplevert: je doet de dingen waar je op andere momenten geen zin in hebt. Ik gebruikte het om me te verdiepen in apps waarmee je kunt schrijven en tekenen in pdf’s. Vroeger stonden mijn ordners altijd vol met aantekeningen, en dat moet weer kunnen. Met de app iAnnotate PDF kom ik een heel eind. Update:
met GoodReader nog veel verder!

Tot mijn stomme verbazing kreeg ik nu voor het eerst het idee dat het handig zou zijn om met een pen op het scherm te schrijven. Zo’n vinger is toch wel erg dik. Dus, volgende afleiding, op zoek naar een zgn. stylus. Op internet zijn er nogal veel, in de winkel in de stad lag maar één model. Het verkeerde. Jammer, want dat is één van de redenen waarom ik nog naar een winkel ga: de voorraad waaruit ik kan kiezen. Weer thuis vond ik een filmpje dat liet zien hoe je je eigen stylus kunt maken van een aluminium buisje en geleidend foam. Beide had ik niet in huis, en ik moest dringend door met de cursus.

Een paar dagen later toch maar de verkeerde stylus gekocht. Valt best mee. Goed genoeg om aantekeningen, schetsjes en krabbels te maken in het cursusboek. Ik ga gauw verder.

bigstock-Blog-10686950

Mijn vriend Jean-Claude Wippler is gestopt met zijn dagelijkse weblog, JeeLabs. Elke dag (met een paar tussenpozen om bij te komen) om 00:01 verscheen er een nieuw artikel, 1400 dagen lang. Elke dag was het lezen ervan één van de eerste dingen die ik deed. Ik zal het missen. Zijn blog is zeker een inspiratiebron voor me. Hij deed me nadenken over ons gemeenschappelijke vak en over de toepassing ervan in onze dagelijkse omgeving. Hij liet me kennismaken met nieuwe ontwikkelingen. Hij liet me kritisch kijken naar mijn eigen consumentengedrag. En hij was ongetwijfeld één van de redenen waarom ik mijn eigen blog begon.

De JeeLabs blog ging (en gaat, want je kunt nog steeds alles teruglezen) over, zoals Jean-Claude het zelf zegt, “computing stuff tied to the physical world”. Over hardware en over software. Jean-Claude is een eersteklas programmeur en heeft zichzelf ook de nodige kennis bijgebracht over elektronica. Zijn drijfveer daarvoor is het terugdringen van het overmatige energieverbruik in en rond de woning. Hij doet dat op zijn eigen manier: wat hij ervoor nodig heeft, leert hij kennen. Of, als het nog niet bestaat, vindt hij uit. Zo maakte hij altijd al software. Hij schreef eens een programma waarvoor hij een database nodig. Hij vond geen goede, dus maakte hij er zelf een. Maar daarvoor moest eerst een goede programmeertaal worden gevonden. Dat werd een project op zichzelf. Ik geloof dat hij nog net niet zelf een taal heeft bedacht, maar wel alles eromheen. Hij ging wel eens zo ver de diepte in dat terugkeren naar de oppervlakte niet kon zonder gevaar van caissonziekte.

Het knappe van Jean-Claude is dat al zijn onderzoekingen ook concrete resultaten opleveren. Het is geen gedroom of geïdealiseer, maar er is een winkel waar zijn producten te koop zijn. Als je wilt gaan experimenteren met hardware, software, terugbrengen van energiegebruik, home automation: je zult hier op gang worden geholpen. Met hardware-bouwpakketten, bijbehorende software, en alles voorzien van goede documentatie. De winkel gaat gewoon door, ook na het stoppen van de blog. En ik weet zeker dat Jean-Claude ook doorgaat. Alleen, het niet meer hoeven ophoesten van een dagelijkse blog zal hem alle ruimte geven om zijn gedachten weer de vrije loop te laten. Om ongeremd te kunnen experimenteren. Misschien schrijft hij er dan toch nog wel eens over, geheel vrijblijvend.

Maar het kan natuurlijk ook dat hij iets geheel anders gaat doen. Of misschien wel niks. Lekker, die ruimte die het niet schrijven van een blog je geeft (ik moet volgende week weer). Jean-Claude, we gaan je missen. En vermoedelijk jij ons ook wel een beetje, dat is altijd het dubbele van grote beslissingen. Take care indeed!