• Onderhoudswerkzaamheden

    De afgelopen weken ben ik bezig geweest om alle posts in dit blog volledig te converteren naar Markdown en alle links om te zetten naar de Jekyll {% link %} en {% post_url %} tags, waar relevant. Ik wil namelijk heel graag dit blog wat nieuw leven inblazen, maar daarvoor moet de keuken natuurlijk wel een beetje opgeruimd zijn.

    In 2015 heb ik de hele blog geconverteerd naar Jekyll vanuit Hobix. Omdat Jekyll prima kan omgaan met Textile content – het standaardformaat in Hobix – heb ik toen niet de de moeite genomen om de hele boel om te zetten naar Markdown, maar dat leverde wel een hoop brakke pagina’s op met veel kapotte links en plaatjes.

    Midden 2016 ben ik van GitHub Pages naar GitLab Pages geswitched, waarmee ik de volledige vrijheid kreeg om mijn Jekyll in te richten naar mijn eigen smaak, in plaats van te gebruiken wat GitHub aanbiedt.

    Het project is publiekelijk beschikbaar, dus neem vooral eens een kijkje als je geïnteresseerd bent in hoe het allemaal achter de schermen werkt.

    Lees verder
  • Lisebergs achtbanen vanuit een ander perspectief

    Wow, daar is iemand verrekte handig met een drone! Bij Liseberg in Göteborg moeten ze gedacht hebben dat we de in-rides nu wel gezien hebben, dus laten we een professionele drone-piloot racen met de twee grootste achtbanen van het park.

    Valkyria, het Zweedse antwoord op Baron 1898 en eveneens van B&M:

    Helix, de langste achtbaan van Scandinavië. De baan is heel mooi geïntegreerd in de heuvel waar Liseberg op ligt en is deels vervlochten met nog een derde achtbaan, Lisebergsbanan.

    De video’s werden gemaakt door Viggo Koch, die op zijn YouTube-kanaal nog veel meer stunts uithaalt met z’n drone.

    Lees verder
  • GOTO Amsterdam 2019: dag 3

    Dag drie van GOTO is nieuw. Voor het eerst is de conferentie driedaags en dat is even wennen, want dat betekent ook een stuk meer te verwerken!

    Keynote: AI/ML, Quantum Computing and 5G – Opportunities, Challenges and the Impact on Society

    Marco Gercke

    [Meer info] [Video]

    Building Evolutionary Infrastructure

    Kief Morris

    [Meer info]

    Build Agility with Design Sprints

    Gary Crawford

    [Meer info] [Video]

    The Happy Movement: How Business Is The Key To Making The World A Happier Place

    Evan Sutter

    [Meer info] [Video]

    Life After Java 8

    Trisha Gee

    [Meer info] [Video]

    It’s Getting Faster

    Liz Keogh

    [Meer info] [Video]
    Lees verder
  • GOTO Amsterdam 2019: dag 2

    Op dag twee van GOTO zien we vliegende auto’s, vliegensvlugge acceptatietests, testen met objecten, kwantumcomputers, monitoring, buzzwords bingo bij “Cloud Native” “Developer Experience”, sneller opleveren en we sluiten afgelegen dorpen in India aan op hun eigen electriciteitsnetwerk.

    Keynote: From Flying Cars to Humans on Mars - The Future of Transportation

    Dr. Anita Sengupta is wat je noemt een “rocket scientist”. Ze was de hoofdingenieur van het team dat het parachutesysteem van het Mars Science Laboratory – beter bekend als Curiosity – veilig op Mars deed landen. Na haar leven bij NASA is ze in de private sector begonnen aan het ontwikkelen van nieuwe transportmethodes, waaronder de implementatie van een hyperloop.

    Naast haar werk als ingenieur is ze ook piloot in de algemene luchtvaart. Het nieuwste concept valt dan ook in de categorie “vliegende auto’s”, maar dan niet zoals we kennen uit de Jetsons. Het idee is een vierpersoons vliegtuigje wat verticaal kan opstijgen en landen als een helicopter, maar ook kan starten en landen op een normale landingsbaan. Hierdoor kan het gebruikt worden om vanuit kleinere vliegveldjes buiten een stad in een directe vlucht bovenop een gebouw in de door verkeersopstoppingen geplaagde stad. Het toestel is elektrisch aangedreven, aangezien fossiele brandstoffen echt niet meer passen in een nieuw vervoersconcept.

    Het doel is om de vliegtuigen zo goedkoop te maken dat ze in dezelfde prijsklasse als taxi’s kunnen worden ingezet. Klinkt leuk, maar volgens mij zorgt dat er gewoon voor dat de drukte zich verplaatst van de grond naar de lucht. Natuurlijk is er in de derde dimensie een stuk meer ruimte, maar ik krijg toch het idee dat de oplossing niet méér vervoer is maar juist minder.

    Niettemin een technisch interessant onderwerp waar we in de toekomst zeker meer van gaan horen.

    [Meer info] [Video]

    Millisecond Full Stack Acceptance Tests

    Aslak Hellesøy begon in 2013 met Cucumber, een combinatie van specificeren, documenteren en testen op basis van een enkel bronbestand. Het probleem van specificatie is normaalgesproken dat software engineers, business analysten en testers niet dezelfde taal spreken en elkaar daardoor niet begrijpen. Het resultaat is dat de verkeerde software wordt opgeleverd met niet-gevonden fouten. Het verenigen van de talen van de drie rollen en het voorzien in de mogelijkheid om die taal te gebruiken voor specicatie, documentatie en tests is de kern van Cucumber.

    Over de jaren heen is Cucumber vele malen verkeerd begrepen. Steeds kwam dat voort omdat slechts één van de drie rollen volledig investeerde en de anderen de geschreven tekst volgden. Het belangrijke aspect van samenwerking werd vaak vergeten.

    Een van de misverstanden is dat een Cucumber-bestand de volledige stack moet omschrijven om nuttig te zijn. Alleen, als je de bestanden dan gebruikt om te testen krijg je lange, onstabiele tests, die ook nog eens veel herhaling bevatten. Door bewust delen van het systeem te vervangen door test-implementaties kan een test veel stabieler én sneller worden. Stel je applicatie voor als een stapel blokken met elk zijn eigen verbindingen. Als je schijf- en netwerktoegang weet te beperken, zullen je tests veel sneller worden.

    Zekerheid versus Tijd

    Uiteindelijk is zekerheid het enige doel van testen. De zekerheid dat wat je live zet op vrijdagmiddag het hele weekend goed zal werken. De zekerheid dat de facturen op de juiste manier worden opgemaakt. De zekerheid dat het systeem werkt op macOS én Windows. Elk van voorgaande voorbeelden kan worden bereikt met een end-to-end-test, maar het is de vraag of je daar meer zekerheid mee bereikt dan met een meer specifieke test.

    Dezelfde set Cucumber-bestanden kan een volledige stack testen, of slechts twee componenten, of zelfs allebei. Dat is alleen afhankelijk van of de stappen in de bestanden een betekenisvolle invulling hebben voor het gewenste zekerheidsniveau.

    [Meer info] [Video]

    Selenium Tests, the Object Oriented Way

    Corina Pip presenteert een manier om je Selenium tests meer object-georienteerd op te zetten en zo de asserties leesbaarder en herbruikbaar te maken. Ik vond het zelf een iets minder geslaagde presentatie, omdat er veel herhaling in zat en de concepten van OO wel erg diep werden geïntroduceerd. Software engineers met een informatica-achtergrond waren duidelijk niet de doelgroep; die hadden het met een introductie van 5 minuten ook begrepen en het kunnen repliceren.

    [Meer info]

    Keynote: The Grand Challenge and Promise of Quantum Computing

    Lieven Vandersypen geeft een bloemlezing langs de huidige stand van zaken rondom kwantumcomputers en de uitdagingen die nog komen.

    [Meer info] [Video]

    An Introduction to Systems and Service Monitoring with Prometheus

    Julius Volz is een van de oprichtes van Prometheus, een monitoring-oplossing.

    [Meer info] [Video]

    In Search of the Perfect Cloud Native Developer Experience

    Daniel Bryant

    [Meer info]

    Continuous Delivery and the Theory of Constraints

    Steve Smith

    [Meer info]

    Keynote: Energy and Education Access for Remote Communities

    Jaideep Bansal

    [Meer info] [Video]

    GOTO Gathering

    De GOTO Gathering is het traditionele social event. Vorig jaar in een café onder een brug aan het IJ met prachtig zicht op de ondergaande zon; dit jaar in de grote zaal van de Beurs van Berlage. Voor eten en drinken is gezorgd, en ook aan gekke games en bonkende beats is gedacht.

    Sam Aaron trekt nog eens alle registers open van zijn Sonic Pi en bouwt een feestje.

    [Meer info]

    Lees verder
  • GOTO Amsterdam 2019: dag 1

    De eerste dag van GOTO begint met een rockster. Voor mij gaat het vervolgens verder in de mindfulness, het Spotify model, leren programmeren met electronische muziek, het modelleren van tijd, augmented reality, het leven van een ondernemer en tenslotte de ethiek van machines.

    Keynote: Turning your customers into fans

    Bruce Dickinson is schrijver, piloot, ondernemer, maar vooral is hij de leadzanger van Iron Maiden. Hij vond dat klanten maar vervelend zijn, omdat ze een hele nare eigenschap hebben: ze kunnen weglopen. Daarom is het volgens hem veel waardevoller te investeren in een fan-relatie in plaats van de klant-relatie.

    In een wereld waar muziek bijna gratis is, willen fans best 50 euro neertellen voor een t-shirt.

    Hij sluit af met de herinnering dat de platenlabels het zwaar hadden in het afgelopen decennium en zelfs de allergrootsten de digitalisering niet allemaal overleefden, maar dat de bands er nog gewoon zijn. De muziekliefhebbers waren klanten van de labels, maar zijn nog steeds fans van de muziek.

    [Meer info]

    Mind as code: Mindfulness for developers and knowledge workers

    Toen Markus Wittwer voor het eerst in aanraking met mindfulness kon hij er vrij weinig mee aanvangen. Het was te vaag, te zweverig en te esotherisch. Hij was dan ook blij om te zien dat in de decennia die erop volgden er steeds meer aandacht vanuit de wetenschap was naar wat het is dat mindfulness zo effectief maakt. Het onderzoek zet het wat meer met beide benen op de grond, maar de aard van de onderzoeken maakt het ook mogelijk om de praktijk op een meer westerse manier aan te pakken.

    Wat betreft mindfulness zijn de drie belangrijkste vaardigheden:

    • Concentratie: Focus op wat je nu belangrijk vindt, want aandacht is de meest schaarse “resource” die we hebben als kenniswerker.
    • Helderheid: Ervaar het hier en nu met hogere resolutie en minder vertraging, want daardoor kun je beter reageren op de situatie.
    • Gelatenheid: Verzet je niet tegen ongemak, want zo reageer je beter op onzekerheid en verandering.

    Deze vaardigheden worden ontwikkeld door oefening, wat een iets minder zweverig woord is voor meditatie. We hebben een gezamenlijke meditatie-sessie gehouden waarin we probeerden onze aandacht op een enkel punt te focussen en daardoor dat punt met verhoogde resolutie te kunnen waarnemen. Door steeds de focus los te laten en weer terug te vinden, oefen je je hersens om dit sneller en beter te doen.

    Hiermee kan je jezelf oefenen om sneller in diepe concentratie te komen; alleszins geen onnodige vaardigheid in de gemiddelde kantoortuin.

    Voor mij was dit de eerste kennismaking met mindfulness en het heeft mijn interesse gewekt. Ik zal de komende tijd er zeker nog wat meer in gaan duiken.

    [Meer info] [Video]

    Death of the IT manager: Being a tech lead in modern IT organizations

    Han Markslag & Marcin Pakulnicki werken als tech leads voor ING. Ze leggen uit dat ING sinds een aantal jaren het Spotify model volgt wat betreft software-ontwikkeling en wat dat betekende voor de rollen die verdwenen en de nieuwe rollen die verschenen.

    De silo’s van de projectorganisatie van afdelingen met aan de hoofd een IT manager met diverse, tegenstrijdige verantwoordelijkheden (persoonlijke ontwikkeling, projectsucces, technologieontwikkeling) maakten plaats voor een aantal grote teams met aan het hoofd een manager die voor de persoonlijke ontwikkeling is, en daarbinnen projectgroepen met projectleiders en expertisegroepen met technologisch leiders.

    Dat het Spotify model eigenlijk niks meer is dan de aloude matrixorganisatie wordt door velen vergeten als ze het hebben over hippe termen als Tribes, Squads, Chapters en Guilds. Het klinkt gewoon lekkerder dan Afdeling, Projectgroep, Expertisegroep en Interessegroep en toch zijn er in Nederland bedrijven die al veel langer dan Spotify zo functioneren, zoals Océ.

    [Meer info]

    Keynote: Get ready to rock with Sonic Pi: The live coding music synth for everyone

    De boodschap van Sam Aaron, ontwikkelaar van Sonic Pi, is dat programmeeronderwijs onmisbaar is in het huidige onderwijs, maar dat het huidige curriculum zó saai is dat er natúúrlijk niemand het graag wil leren.

    Programmeren is de taal van de 21e eeuw. Lang niet alle kinderen zullen professioneel programmeur worden, net zomin als dat ze in de 20e eeuw allemaal professioneel schrijver werden omdat ze hebben leren schrijven. Het is echter wel verrekte handig dat we (bijna) allemaal kunnen schrijven!

    Kinderen zien op tv “hackers” die voor flitsende schermen op een toetsenbord aan het hameren zijn en binnen tien seconden ingebroken zijn, maar als ze zelf in de stoel van Neo, Zero Cool of Crash Override gaan zitten mogen ze alleen maar “Hello World” oneindig vaak op hun scherm laten verschijnen.

    Zijn betoog is dat als we leerlingen al op de basisschool willen laten kennismaken met programmeren en programmeurs, we ze iets moeten bieden wat aanspreekt. Op “neem je papa of mama naar school”-dag kan ook een programmeur iets aansprekends laten zien, wat misschien niet direct met het werk te maken heeft, maar wat wel inspirerend kan zijn voor nieuwsgierige kinderen.

    Zijn Sonic Pi produceert muziek op basis van code, echte code:

    live_loop :melody do
      notes = (scale :e4, :minor_pentatonic)
      16.times do
        play notes.choose, cutoff: rrand(90, 110)
        sleep 0.25
      end
    end
    
    live_loop :bass do
      use_synth :prophet
      play 30, release: 0.5, cutoff: rrand(50, 90)
      sleep 0.25
    end
    

    Het meest toffe is dat het systeem live-editing ondersteunt, waardoor je terwijl je programma in een loop draait, de code kan wijzigen en zo dus de muziek verandert. Op deze manier wordt live coding hetzelfde als een muziekinstrument bespelen, want ook dit vereist heel veel oefenen!

    De software integreert met traditionele (electronische) muziekinstrumenten en andere randapparatuur via MIDI en OSC en heeft een flinke verzameling aan effect-pedalen, software synthesizers en samples ingebouwd om snel resultaat te bereiken. Ik wilde Jasper al introduceren aan mijn oude Technics KN-901 en nu wil ik dat ding ook nog met mijn MacBook aansturen.

    [Meer info] [Video]

    Temporal modelling

    Matthias Verraes

    [Meer info] [Video]

    Augmented Reality, beyond virtual objects floating in physical space

    Morten Birk is een beetje teleurgesteld over waar augmented reality (AR) lijkt te blijven hangen. Geinige filtertjes die ons in een panda veranderen en dino’s over tafel laten lopen. Allemaal leuk, maar het zijn allemaal kostenposten en leveren geen directe inkomsten op.

    De echte toepassingen laten intussen op zich wachten, terwijl de technologie al ver genoeg is. In de industrie wordt geprobeerd AR in te zetten om het personeel te helpen bij complexe taken, zoals montage en onderhoud, maar het blijft bij knullige simulaties die uit elkaar vallen als de omgeving er nét iets anders uitziet dan de maker had bedacht.

    [Meer info] [Video]

    Journey of an entrepreneur: the story of a product startup from a founders perspective

    Koen Bos is mede-oprichter van Relay42, die zich bezighouden met het onderhouden en verstevigen van de klant-relaties van hun eigen klanten door het inzetten van slimme technologiën die losse interacties omzetten in betekenisvolle dialogen. Dat lijkt extreem veel op BlueConic, een spin-off van GX Software.

    Hij schetste zijn beeld van het leven in een startup.

    [Meer info] [Video]

    Keynote: Machine ethics

    Nell Watson

    [Meer info] [Video]
    Lees verder
  • GOTO Amsterdam 2019

    Deze week ben ik op de GOTO Amsterdam conferentie. Een conferentie over softwareontwikkeling in de breedste zin van het woord. Ik ben dol op deze conferentie, omdat dit nu juist niet gaat over welke “stack” je dit jaar moet gebruiken, of wat de leuke nieuwe features van het hipste platform van het moment zijn.

    Daarnaast wordt het gehouden in de Beurs van Berlage, wat op zichzelf al een goede reden is om te gaan.

    Ik ben het verslag nog aan het uitwerken, dus deze pagina zal nog wel een paar keer worden bijgewerkt voordat ik er helemaal tevreden over ben.

    Lees verder
  • Bendik

    Wát een gaaf geluid! Bendik klinkt als een heel orkest, maar is het werk van frontvrouw Silje Halstensen en drie bandleden. Jammer dat ze niet echt buiten Noorwegen touren, want dit wil je live zien.

    Lees verder
  • End of the Line

    This is it. The end of Logging the Switch.

    Over the years the number of posts became less and less and in the last few years it came to a complete standstill, save for a few posts and a migration to Jekyll.

    So therefore, without further ado I declare this blog closed.

    Lees verder
  • Blog migrated to GitHub Pages and Jekyll

    A few weeks ago I started migrating the blog off my own VPS into GitHub Pages. At first, I tried Octopress which is a set of templates, scripts and plugins for Jekyll that make blogging easier on the platform. I found it to be impractical and inflexible compared to good old Hobix, my previous blogging platform.

    Then I tried to put the actual Hobix installation in GitHub to basically achieve the same setup as Octopress. This proved to be even more inconvenient as trying to install Hobix nowadays is quite the endeavour, since it has not been maintained for over 5 years now.

    I found it more wise to migrate to a more modern system. So, here we are with the blog on a vanilla Jekyll installation.

    How to migrate your Hobix blog to Jekyll

    Hobix has an API which allows (among others) to export entries out of the system. However, as I discovered that installing Hobix is no longer an option, I had to process Hobix's entry YAMLs by hand to convert them to Jekyll YAML Front Matter.

    Below is the script I have been using.

    #!/usr/bin/ruby
    
    require 'RedCloth'
    require 'yaml'
    
    Dir.glob('entries/**/*.yaml').each do |f|
    # Dir.glob('entries/**/we-hebben-sleutels.yaml').each do |f|
      entry = YAML::load(IO.read(f))
    
      if f =~ /^entries\/page/
        out_dir = File.dirname(f).sub('entries', '../logging-the-switch')
        out_file = "#{File.basename f, '.yaml'}.textile"
      else
        out_dir = "../logging-the-switch/_posts/"
        out_file = "#{entry['created'].strftime '%Y-%m-%d'}-#{File.basename f, '.yaml'}.textile"
      end
    
      puts "#{File.dirname f}/#{File.basename(f, '.yaml')}"
    
      system("mkdir -p #{out_dir}")
      File.open("#{out_dir}/#{out_file}", 'w') do |file|
        file << "---\n"
        file << "layout: post\n"
        file << "title: \"#{entry['title']}\"\n"
        file << "date: #{entry['created']}\n"
        file << "---\n"
        file << entry['content']
      end
    end
    
    Lees verder