apr 042018
 

Deel dit bericht:
apr 022018
 

De SonicPi software bestaat al lang. Maar ik heb er nog niet eerder over geschreven. Bij deze dus. Want eigenlijk kan dat natuurlijk niet.

Even vooraf: de SonicPi software verwijst in zijn naam naar de Raspberry Pi, maar je hebt geen Raspberry Pi nodig, de software draait ook gewoon op Windows, een Mac of Linux. Je kunt hem gratis downloaden en voor Windows is er ook een “portable” versie, die hoef je dus niet te installeren, kun je gewoon op een USB-stick zetten.

Wat is SonicPi en waarom zou je er iets mee moeten?
Dat kan ik je waarschijnlijk het beste door de bedenker (Sam Aaron) ervan laten uitleggen. Het filmpje hieronder is al uit 2015 (er zijn oudere filmpjes):

De introductie lijkt erg op het verhaal van Felienne bij haar Python/programmeren en kunst workshop.  En daarmee bedoel ik richting beiden niets negatief. Integendeel. Beiden maken duidelijk dat maar een bepaalde (kleine) groep speciale mensen enthousiast wordt van programmeren. En ook Sam Aaron maakt duidelijk dat het een stuk eenvoudiger is om kinderen enthousiast te maken over programmeren als je ze ook echt iets geeft waar ze enthousiast over worden.

Nou moet ik bekennen dat dit, net als verhalen bedenken in Python, natuurlijk ook weer niet voor elke leerling zal gelden. Ik heb vanmiddag een uurtje zitten spelen met SonicPi en zo goed als Sam zal ik waarschijnlijk nooit worden. Sowieso, kijk maar eens hoe veel werk het is om onderstaande track te maken.

Lees verder….

Deel dit bericht:

Jarig op Moederdag?

 Gepubliceerd door om 22:34  Algemeen, Programmeren
apr 012018
 

Het zijn zo van die vragen die opeens over de ontbijttafel vliegen. Een van mijn neven is geboren op Moederdag. Toen was dat 9 mei.
Vraag #1: kun je daaruit afleiden welk jaar het is?
Vraag #2: hoe vaak is hij op Moederdag jarig?

Tja, en als het dan weekend is, dan is er tijd om op zoek te gaan naar een antwoord. Het werd een combinatie van het opknippen van het probleem in stukjes en voor een deel brute rekenkracht (nou ja).

Het opknippen van het probleem was niet zo moeilijk: wanneer valt Moederdag? Het is de tweede zondag van mei. De eerste zondag valt op zijn vroegst op 1 mei, op zijn laatst op 7 mei. Dat betekent dat de tweede zondag op zijn vroegst op 8 mei en op zijn laatst op 14 mei valt. Als je de zondagen telt tussen 1 mei en 14 mei, dan weet je dat de tweede die je tegen komt Moederdag is.
Als je dan kijkt of die dag gelijk is aan 9, dan weet je of zijn verjaardag samenvalt met Moederdag.

Gereedschap voor het tweede deel was vandaag repl.it en dus Python. Ik heb de code hier gedeeld: https://repl.it/@PiAir/Jarigopmoederdag.

Als je de link volgt en de code uitvoert, dan zie je dat het best vaak voor komt. Afleiden in welk jaar hij geboren is kan op basis hiervan niet. Dus dat jaartal heb ik onderdeel van de code gemaakt (de code kijkt 50 jaar terug ten opzichte van dat jaar en 100 jaar vooruit). En de uitvoer laat zien dat er heel duidelijk een regelmaat is: elke 6, 5, 6, 11 jaar valt zijn verjaardag samen met Moederdag.

Geen oplossing voor een belangrijk wereldprobleem. Maar ja, het was een vraag die we hadden. 🙂

Deel dit bericht:
mrt 312018
 

Wauw! Dit was een site die ik graag een paar weken geleden had willen ontdekken: Katacoda

Dat had me namelijk waarschijnlijk heel wat gestoei met Docker gescheeld. Op Katacoda staan namelijk meer dan 100 interactieve scenario’s voor als je met Docker aan de slag wilt gaan. En ze worden verder uitgebreid met scenario’s voor andere technologieën zoals Git, .NET, Java, CoreDNS, Tenserflow, R-project etc.

Er zijn natuurlijk wel meer (gratis) online resources beschikbaar voor Docker. Maar de YouTube-filmpjes en online instructies zijn niet interactief en soms was het nogal even stoeien om in docker op Windows 10/VirtualMachine alles aan de praat te krijgen.

Katacoda werkt met scenario’s. Dat op zichzelf is nog niet zo spannend, een scenario is een klein brokje lesmateriaal, een thema/onderwerp zo je wilt. Maar wat in dit geval handig is, is dat naast de instructie / uitleg, er meteen een terminalvenster getoond wordt waarin je de commando’s kunt uitproberen. De terminal reageert namelijk precies zoals je van een terminal zou mogen verwachten in een live omgeving. Dat betekent ook dat je ook andere commando’s kunt uitvoeren dan exact in de instructie staan. Je kunt niks stuk maken, je krijgt hoogstens een foutmelding.  Er zitten een paar grenzen aan, ik heb geprobeerd een complete WordPress installatie en een Minecraftserver te installeren, dan krijg je bij Katacoda een foutmelding vanwege te weinig toegewezen geheugen. Voor zulke dingen kun je beter gebruik maken van Play with Docker, maar daarover later meer.

Los van die (logische) begrenzingen is het heel prettig werken in de omgeving. Afhankelijk van wat je nodig hebt, heb je 1 terminal, soms een editor om bv een Dockerfile te wijzigen, maar als je met een Swarm aan de slag gaat heb je (uiteraard) 2 Terminalvensters zodat je zonder problemen kunt simuleren dat de ene machine zichzelf toevoegt aan de swarm.

Prettig is dat je net persé de commando’s die getoond worden over hoeft te typen. Als je er op klikt dan worden ze geknipt en geplakt in het terminalvenster. Natuurlijk, intypen is wel zo verstandig, dat voorkomt dat je parameters in een commandoregel over het hoofd ziet.

Katacoda is echter niet alleen een plek waar je kunt leren. Als jij op jouw beurt scenario’s hebt die je aan anderen over wilt dragen, dan kun je ook de rol van instructeur aannemen en in de omgeving zelf nieuwe scenario’s aanmaken in de ingebouwde editor (of via Github). Zelf heb ik voorlopig even genoeg aan de rol van student, nog meer dan genoeg te leren! 🙂

 

Deel dit bericht:
mrt 292018
 

Aflevering 5 alweer van de Crash Course Media Literacy (zie hier voor een overzicht van de andere afleveringen). Na aandacht voor ons brein in aflevering 4, gaat het nu over media en geld. Nee, nog niet over adverteerders, maar over de constatering dat alle media gemaakt zijn door iemand, of een groep van iemanden (ja ja, dat is geen correct Nederlands, in het Engels klinkt het veel leuker: “group of someones”) .

Omdat media gemaakt worden met een doel (om je te informeren, te overtuigen, te vermaken), wordt gekozen voor een bepaalde manier om de boodschap over te brengen. Daarbij wordt gewezen op het feit dat er iemand moet betalen het maken van die media. En die mensen zijn mensen met geld. En vaak zijn dat witte hetero mannen. Dus dat kan invloed hebben op manier waarop de boodschap overgebracht wordt.

De aflevering krijgt op YouTube een aantal duimpjes naar beneden (veel minder dan duimpjes naar boven hoor). En dat is logisch. Want dit stuk van het verhaal komt stilaan al in het gebied waarbij het wat minder ongevaarlijk wordt. Sowieso, ook CrashCourse wordt betaald door mensen met een boodschap en een doel. Dus ook de filmpjes van CrashCourse zijn niet zonder kleur en doel. Hoe afgewogen en neutraal of “juist” jij als kijker die boodschap vindt hangt nu ook deels af van je eigen positie.

Als je als docent/leraar met de filmpjes aan de slag gaat maakt dat ze zeker ook nog waardevoller als je dat gesprek met de studenten/leerlingen aangaat: je hebt nu een filmpje gezien over media, maar dat filmpje is ook onderdeel van die media. Denk daar eens over na en bedenk hoe het filmpje jou probeert te beïnvloeden. Wat zou je kunnen/willen/moeten doen, naast het alleen naar dit filmpje kijken?

Deel dit bericht:
mrt 282018
 

Vond ik afgelopen weekend nog dat Docker toch best wel een leercurve had, vandaag  kwam ik er gelukkig al achter dat die geïnvesteerde tijd toch niet voor niets was geweest. Want op het Revolutions weblog stond een interessant bericht. Daarbij werd gebruik gemaakt van de Microsoft Azure Computer Vision API om automatisch een bijschrijft te laten genereren van willekeurige afbeeldingen die opgehaald werden van Wikimedia Commons. De stap-voor-stap beschrijving staat hier.

Om dat te doen had je alleen een (gratis) Azure-account nodig (ik heb de studenten versie aangemaakt met mijn Office365-account) én een installatie van RStudio. Die laatste gebruik ik niet dagelijks. Maar met behulp van Docker was het een kwestie van een Docker commandline openen en het commando docker run --rm -p 8787:8787 rocker/verse, even wachten totdat Docker gezien had dat container nog niet lokaal beschikbaar was, de container automatisch gedownload was en opgestart.

Daarna had ik in mijn browser de beschikking over een volledige R setup met RStudio en de meest voorkomende libraries.

Ik heb daarop een R-bestand aangemaakt en daar de code die David Smith in zijn blogpost plaatst geknipt en geplakt. Daarbij bleek er 1 klein foutje te zitten in de code waardoor het niet werkte. In regel 3 van image_caption.R stond "?visualFeatures=Description",
en dat moet zijn "/analyze?visualFeatures=Description", anders krijg je alleen 404 meldingen terug van Azure. Daarna krijg je confidence info en een beschrijving retour. Bij een niveau boven de 50% komt hij zo te zien heel aardig overeen:

Lees verder….

Deel dit bericht:
mrt 272018
 

Sorry, nooit gedaan, ook niet toen het cool was om voor het goede doel te (laten) doen. Ga ik dus ook niet doen met een NFC-chip er in. Onderhuids implanteren zou ik nog iets vinden waar ik over zou willen nadenken, maar dan zijn de LEDs weer wat moeilijk te bevestigen.

Ik begrijp dat er een HOWTO in de maak is. Voor alsnog moeten we het even doen met bovenstaand filmpje van NFC-LED enabled techno nails. 🙂

(als je nou geen idee hebt wat ik hierboven allemaal schreef, kijk dan in ieder geval even het filmpje!!)

Deel dit bericht:
mrt 262018
 

Ik kan me voorstellen dat je van mening bent dat de combinatie “grappig” en een Microsoft product (Skype is tegenwoordig ook van Microsoft) niet zo voor de hand ligt. Toch omschrijft het het beste mijn reactie toen ik bij Richard Byrne las over de nieuwe whiteboard optie die aan Skype Interviews is toegevoegd. Skype Interviews is niet helemaal hetzelfde als Skype. Je gebruikt hem in de browser om een gesprek op te zetten. Vergelijkbaar met wat je bij Skype voor bedrijven (onderdeel van Office365 en dus voor veel scholen beschikbaar) ook kunt doen. Je krijgt dan een URL en daarmee kunnen anderen (de persoon waar je het gesprek mee wilt hebben) ook kunnen deelnemen.

Het meest verrassende in de omgeving vind ik niet zozeer het whiteboard maar de programmeeromgeving. Je kunt hier in een groot aantal verschillende programmeertalen code invoeren en dan uitvoeren. Ik neem aan dat het achterliggende idee is dat je een sollicitant wilt laten bewijzen dat hij/zij daadwerkelijk over de in het CV genoemde programmeervaardigheden beschikt?

De editor is helaas minder flexibel dan bijvoorbeeld repl.it. De code voor de spirograaf uit de workshop van Felienne Hermans levert alleen een foutmelding op omdat de module Turtle niet beschikbaar is. Bij ons gekke verhaal struikelde hij over de trema “macrameeën” (SyntaxError: Non-ASCII character '\xc3' in file app.py on line 11, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details), na verwijderen daarvan werkte hij probleemloos.

Ik ben eigenlijk wel vooral nieuwsgierig of er ook bedrijven zijn die dit al echt inzetten voor sollicitatiegesprekken.

 

Deel dit bericht:
mrt 252018
 

Toen ik met Resin.io en Docker aan de slag ging voor de TTN Gateway verliep het installatieproces probleemloos en snel. Inmiddels ben ik er ook achter dat het een andere verhaal wordt als je zelf een image wilt aanmaken.

Installatie op mijn laptop ging op zich wel, al heb ik uiteindelijk gekozen voor de Docker Toolbox omdat de “officiële” huidige versie op het eerste Windows 10 systeem waar ik het uitprobeerde voor de nodige problemen zorgde. Sommige containers werken daar heel mooi. Zo wist ik oude tijden te laten herleven door Etherpad te installeren op basis van deze container. Voor de jongeren onder ons: voordat Google documenten en Microsoft Word online het mogelijk maakten om samen, online, aan hetzelfde document te werken, was er al een gratis online dienst (Etherpad) die dat ook mogelijk maakte. Niet zo fancy als de anderen, maar gratis in een tijd dat nog niemand anders dat kon. Toen de dienst offline ging hebben ze de code en installatie open source beschikbaar gemaakt. Ook R en RStudio kreeg ik aan de praat met dank aan deze uitgebreide handleiding.

Installeren van Docker op een Raspberry Pi ging ook niet zonder slag of stoot. De installatie via Hypriot vergt dat ik ofwel de image via hun eigen flash-tool (geen Windows versie) uitvoer ofwel een vast netwerkverbinding heb. Omdat ik 2 Raspberry Pi zero’s ter beschikking had, was dat niet direct een handige optie. Rechtstreeks installeren op een bestaande image met deze instructies leek te werken, maar als ik docker probeerde op te starten kreeg ik niet meer dan een foutmelding.

Uiteindelijk ben ik dus met Resin.io aan de slag gegaan. Het coole daarbij was en is het heel eenvoudig is om meerdere apparaten toe te voegen. Wijzigingen worden dan automatisch naar alle apparaten doorgestuurd zodat ze steeds allemaal de laatste versie van de container(s) hebben. Ik zet de (s) even tussen haakjes. Ook via Resin.io kun je meerder containers tegelijkertijd op een machine laten draaien. De setup daarvan is echter ook weer even net wat ingewikkelder dan met één container.

En voor je het weet ben je dus wel meer dan even bezig met het onder de knie krijgen van een systeem dat eigenlijk tijd zou moeten besparen.  Tja, in ieder geval wat geleerd. 🙂

Deel dit bericht: