Pierre

Geek, Trendwatcher, Edublogger, Screencaster, Blogger. Ik heb verstand van ICT en Onderwijs, Elektronische Boeken, Weblectures. Ik ben gepromoveerd op het gebruik van recorded lectures door studenten en werk bij Fontys Hogescholen (maar dit blog is 100% op persoonlijke titel!!). Ik ben gek op fietsen, Bodypump en Spinning.

apr 232017
 

Als je bij Coursera een MOOC volgt en je wilt de video’s offline bewaren, dan kun je die natuurlijk in de iPad app downloaden. Maar als je ze gewoon op je pc beschikbaar wilt hebben, dan is er een andere manier.

Op deze pagina vindt je een stukje script dat je in de pagina moet uitvoeren. Je gaat dan in Google Chrome naar een video van een week, kiest rechtermuisknop en dan “Inspecteren” en plakt de code er in. De video’s van die week worden dan automatisch een-voor-een gedownload.

Het gaat niet helemaal perfect, soms zit er een resource in een week die door het script als video gezien wordt maar de poging om te downloaden mislukt en dan stopt het geheel.

De code als download .

Deel dit bericht:
apr 222017
 

Het filmpje staat al een paar dagen online, maar ik wilde het hier nog even plaatsen. Het is een korte trailer in VR. Je zit aan een tafel in een restaurant en kunt rondkijken en “rond luisteren”. Afhankelijk van het tafeltje waar je naar kijkt, zie en hoor je een andere verhaallijn. Mooi, en ook een mooi voorbeeld van hoe je gebruik kunt maken van de ruimtelijkheid van 360-graden video.

(bron: Google)

Deel dit bericht:
apr 212017
 

In het filmpje hierboven geeft Jules Urbach, CEO van OTOY een toelichting bij hun productieproces rond 360-graden video en foto’s. Hij deed dit naar aanleiding van de aankondiging van Facebook eerder deze week van hun x24 en x6 camera’s, geen huis-tuin-en-keuken camera’s, ook nog niet te koop want Facebook gaat ze niet zelf maken maar geeft de technologie in licentie.

De x24 camera (ja, er zitten inderdaad 24 camera’s in) heeft genoeg camera’s en totale resolutie om elke pixel 4x op te vangen. Daardoor kan de camera ook diepte-informatie berekenen voor elke pixel. Daardoor kun je een beeld maken waarbij je als kijker ook realistisch je hoofd kunt bewegen om rond te kijken. Ok, nog niet helemaal hetzelfde als rondlopen, maar het is weer een stapje vooruit.

Nieuwe afkorting die ik hierbij geleerd heb: 6DoF ofwel Six Degrees of Freedom, waarbij het gaat over: 1) naar boven/onderen 2) naar links/rechts 3) naar voor/achter 4) helling (pitch) 5) verdraaiin (yaw) en 6) kanteling (roll). Het plaatje bij Wikipedia helpt waarschijnlijk wel.

OTOY en Facebook zijn zeker niet de eerste of enige die hier aan werken, maar het feit dát zij er aan werken betekent dat de kans dat er een product op de markt komt (of wellicht in ieder geval content) dat hiervan gebruik maakt groot is. We gaan het zien.

Deel dit bericht:
apr 202017
 

De Amazon Dash knoppen zijn heerlijk controversieel. Het idee: je hebt een knop (gewoon, een knop met niet verwisselbare batterij en wifi ingebouwd). Als je daar op drukt, dan wordt er automatisch dat ene product waarvan je ook het logo/merk op de knop ziet (ok, dat kun je dan wel zelf instellen vooraf) in je mandje bij Amazon gelegd. Gemakkelijk: plak er eentje in het kastje op de badkamer en als iemand de laatste wc-rol pakt, drukt die gewoon even op de Dash knop om hem bij te bestellen.

Ja ja, super ernstig, fout, verspillend, gemakzuchtig. Geloof me, ik zou er nooit eentje gebruiken. Tenminste niet voor het doel waar ze voor verkocht worden. Want zo’n Dash knop kost maar 5 euro. Helaas, wel in Duitsland te koop, nog niet in Nederland.

Want zo’n knop is natuurlijk een heel hackbaar ding. Nou ja, wil je het allemaal veilig maken en zo, dan kost het wat meer werk, maar voor 5 euro kan ik niet zo’n compacte knop maken die een signaal via mijn wifi netwerk verstuurd. Een ESP8266 kost zo’n 2-3 euro, hier zit een mooie compacte behuizing omheen, een kleine drukknop, het enige nadeel vind ik wel (ook een beetje principieel) dat de batterij niet te vervangen is. Dus als die leeg is (na zo’n 1.000 keer gebruik), dan moet je de knop weg gooien (en niet gewoon in de grijze kliko vanwege die ingelaste batterij).

Dat is één van de redenen waarom deze hack van de knoppen eigenlijk niet zo “goed” is, al is het idee natuurlijk super: een ouder heeft een viertal Dash knoppen aangepast zodat dochterlief van 4 zelf de muziek via het Sonos systeem aan en uit kon zetten. Een Raspberry Pi met daarop o.a. de scapy library vangt de signalen op die de Dash knop verstuurt als deze verbinding wil maken met Amazon. De truc is om de setup van de knop niet helemaal af te ronden zodat deze wél verbinding met je wifi netwerk kan maken, maar niet met Amazon.

Dat principe is natuurlijk ook op andere dingen toe te passen, bijvoorbeeld om apparaten op afstand aan en uit te schakelen. In dit bericht kun je lezen dat dat niet zo heel veilig is aangezien anderen dan zo’n zelfde script zouden kunnen gebruiken om je lampen, apparaten etc. aan te sturen.
Nou klopt dat inderdaad, maar dat is net zo waar voor de meeste “KlikAanKlikUit”-achtige systemen die veel in gebruik zijn.

Hoe dan ook, leuk voorbeeld, en scapy is de moeite waard om wat dieper in te duiken. YouTube heeft er zo te zien voldoende filmpjes over.

Deel dit bericht:
apr 192017
 

Op woensdag 10 mei 2017 organiseert de VOR divisie ICT een bijeenkomst in Eindhoven. Tijdens deze bijeenkomst komen promovendi aan het woord bij wie ICT een rol speelt in hun onderzoek. De onderwerpen zullen heel divers zijn, soms wat meer technisch, in andere gevallen meer op onderwijs gericht. Het zal ook altijd nog “onderzoek in uitvoering” zijn. Daarom zijn de presentaties kort, 10-15 minuten maximaal. Aansluitend zijn alle promovendi op de promovendi markt beschikbaar zodat ze daar hun onderzoek, hun deelproducten etc. meer in detail kunnen toelichten. We sluiten plenair af met een terugblik op het onderzoek dat die middag gepresenteerd is.

We hebben een mooi programma samengesteld met promovendi die onderzoek doen naar diverse, interessante onderwerpen.

Lees verder….

Deel dit bericht:
apr 152017
 

Now that Alex explained everyone how to use MQTT in combination with the LoPy, I thought it was time to show some more advanced uses of MQTT in case you still had no idea why you would bother learning to understand it.
The nice thing about MQTT (MQ Telemetry Transport or Message Queue Telemetry Transport) as a protocol, is that it is not tied to the LoPy or WiPy that Alex used in his example. You can use it in combination with many different devices, tools and applications. For example, in our house, I use a Mosquitto MQTT broker as the central backbone for the home automation. For those that can understand Dutch, see this blogpost I did in 2014, or the one about the lights in my Christmas tree.

MQTT is also supported by The Things Network (TTN) meaning that you can retrieve all the data that your nodes send to TTN using MQTT. This also means you can use MQTT as a way to create a local backup of the data that your nodes send this way.
You can also use it in combination with the KPN LoRaWAN network, but the setup is slightly different. So in this post I am going to focus on TTN, although like before I will be using both the Marvin board and the LoPy board (in combination with Puck.js although that is completely optional of course).

I will be using Node-RED installed on one of my Raspberry Pi devices and I will be using MySQL as the database backend. I will be posting about MySQL versus MongoDB versus InfluxDB one of these days, but on a Raspberry Pi for now this was the quickest and easiest solution.

Let’s dive in:

Lees verder….

Deel dit bericht:
apr 112017
 

Er is weer een nieuwe afkorting bij om te kennen als het gaat om de apparaten die je thuis (en op andere plekken) aan het netwerk kunt /hebt hangen, denk aan de WiFi-router thuis, een camera die je via internet kunt bedienen, je mediabox die aan de TV hangt etc.

De media noemt ze overigens vaak “IoT devices” (Internet of Things apparaten) en dat is wellicht niet zo handig omdat veel mensen zullen denken “die heb ik niet”.

Ik schreef in januari al dat je zelfs je eigen thuisnetwerk niet zomaar als “veilig” zou moeten beschouwen. Dat was toen naar aanleiding van berichten dat hackers grote aantallen IoT devices gebruikt hadden om een DDoS (Distributed Denial of Service) aanval uit te voeren.

Nou zou je nog kunnen stellen “als het apparaat maar blijft werken, dan maak ik me er niet zo’n zorgen over”. Los van de vraag of je het prettig zou moeten vinden als een ander toegang tot je WiFi-router heeft, zijn er nu ook een tweetal bedreigingen die wél schade kunnen opleveren voor de werking van jouw eigen (onveilige) apparaat.

Het heet een PDoS, een “Permanent Denial-of-Service” en het woordje “Permanent” zegt het al: na zo’n aanval op jouw apparaat is het “stuk”. Weliswaar niet fysiek stuk, er komt geen rook uit je apparaat, maar softwarematig zo stuk dat jij er geen toegang meer toe hebt en de werking ervan ook stopt.

Zoals zo vaak maakt de tool die de aanval uitvoert (er zijn twee varianten: BrickerBot.1 en BrickerBot.2 die niet helemaal hetzelfde werken maar vergelijkbaar effect hebben)  gebruik van bekende kwetsbaarheden in software die in (blijkbaar) redelijk wat systemen aanwezig is. Het gaat om systemen die BusyBox en Dropbear gebruiken. Met name bij BusyBox is het lijstje van “andere software en hardware die gebruik maakt van BusyBox” lang. Hoeveel systemen daarmee gevaar lopen? Dat is wat moeilijker vast te stellen. Het is logisch dat een bedrijf dat ook consultancy verkoopt aan bedrijven om hun netwerk te beveiligen stevig aan de bel trekt. Dropbear heeft inmiddels al een patch uitgebracht, die worden echter maar zelden op dit soort apparaten geïnstalleerd (als het al kan). En voor alsnog geldt natuurlijk ook dat het systeem via internet bereikbaar moet zijn, dus die buitenste verdediging van je netwerk waar ik over schreef kan heel wat aanvallen tegen houden. Maar wees dus absoluut voorzichtig met het “zomaar” in je router openzetten van een poort zodat je je apparaten ook kunt bereiken als je op je werk of onderweg bent.   Het volledige bericht en de bijbehorende PDF is hier te vinden.

De vraag is in ieder geval hoe lang de situatie blijft bestaan waarbij hardware (ook je slimme TV) niet of nauwelijks van een update is te voorzien. Voorlopig lijken leveranciers zich er nog gemakkelijk vanaf te kunnen maken.

Wordt ongetwijfeld vervolgd.

Deel dit bericht:
apr 102017
 

Als het in het onderwijs in Nederland over “programmeren” gaat worden eenvoudige vragen al heel snel ingewikkeld. Dus een vraag als “Welke programmeertalen zouden onze leerlingen/studenten moeten kennen?” (bron) is niet helemaal zonder risico. Immers, je moet dan gaan nadenken over het doel dat je daarmee hebt. Wil je ze leren programmeren? Of juist coderen? Of software ontwikkelen? Ik ga niet eens proberen naar bronnen te linken die ze op één hoop of op juist heel verschillende hopen (en dan per bron ook verschillend) gooien.

Dus laat ik het maar even veilig houden in deze blogpost. Zo’n 9 jaar geleden vroeg ik me af welke programmeertalen ik allemaal zou moeten leren. Zoals ik toen beschreef:   Basic was mijn eerste kennismaking met programmeren, maar daar kon je (toen) zo weinig mee dat ik er niet veel interesse voor had. Op de universiteit leerde ik Turbo Pascal om daar vervolgens nooit meer wat mee te doen. Daarna kwam ik in de Windows omgeving en Visual Basic (binnen Office!) en Active Server Pages (ASP) terecht. Mijn eerste kennismaking met JavaScript was in de browser, ASP werd vervangen door PHP toen ik weblogtools ging gebruiken op basis van die taal. En daarna werd het een opeenvolging van “wat heb ik nodig”. Zo kwam er een beetje Python bij, een heel klein beetje .NET en eveneens een klein beetje Java. Dat was toen. Sindsdien zijn er dingen gewijzigd en gelijk gebleven.

Lees verder….

Deel dit bericht:
apr 092017
 

I still wasn’t out of “what if…” scenario’s for the devices I had been playing with in relation to The Things Network / LoRaWAN. Because, although I had used the WiFi (and of course LoRA) capabilities of the LoPy a lot, I had not yet played with its BLE (Bluetooth Low Energy) capabilities. For that I needed something else that could use BLE to connect to it. My iPad Mini, the micro:bit, my desktop machine (thanks to the BLE USB adapter), they all could do that. But I wanted to use the Puck-js buttons that I had for that.

The use-case:  If I press the button on the Puck.js (I have two of them, I can press either of them), then the Puck.js connects over bluetooth to the LoPy. After the connection has been made, the Puck.js sends 1) its device-id 2) the measurement of the light sensor of the Puck.js 3) the measurement of the temperature sensor of the Puck.js and 4) the battery voltage of the Puck-js. Once the LoPy has received those 4 values (encoded as a single HEX-string), it sends it to The Things Network (TTN) via LoRaWAN.

Like with the Adafruit Circuit Playground, one of the challenges was that both devices (the LoPy and the Puck.js) use different programming languages and there were no existing examples that handles the cross platform connection.

I uploaded all code to github.com

Programming the Puck.js

To program the Puck.js, you need the Espruino IDE. I have had my fair share of problems connecting to the Puck.js from within that IDE. It is probably one of the challenges of using BLE as a connection to program. But in the end it got the job done. I wasted most time trying to understand how I can send data from the Puck.js to the LoPy after connecting to it. There was an example using 2 Puck.js to send data, but I could not figure out what the UUID of the PrimaryService and the UUID of the Characteristic for the LoPy that allowed me to write data to it where.

I tried to figure that out using code on the Puck.js, but that didn’t work. In the LoPy code that I found, the service and characteristic were defined like this:

srv1 = bluetooth.service(uuid=b'1234567890123456', isprimary=True)

chr1 = srv1.characteristic(uuid=b'ab34567890123456', value=5)

I finally discovered how these needed to be added in the Puck.js code by using nRF Connect, a free tool for iOS. After setting up the LoPy so that it broadcasts using BLE (see the code below), I connected to the LoPy using the nRF Connect app. It then shows you the correct UUID’s that are in the Send_BT_to_LoPy.js script:

return d.getPrimaryService("36353433-3231-3039-3837-363534333231");

return s.getCharacteristic("36353433-3231-3039-3837-363534336261");

Easy, once you know it.

Note #1:  The Puck.js connects to a device named “LoPy01” so if you change the name of the device in main.py for the LoPy, you also have to change it in the code for the Puck.js
Note #2:  I added the id for the Puck.js in the code, first line. You need to change that to the code for your Puck.js if you have more than 1 Puck.js and want to be able to keep the transmitted values apart afterwards.

Let’s continue with the LoPy.

Lees verder….

Deel dit bericht:
apr 072017
 

What happens if you take a LoRaWAN node with you in a train while you travel across the Netherlands for about 2,5 hours? I did not know and wanted to find out today because I had to be in Zwolle for a meeting.

So I charged a big external battery (with 2 USB ports), drilled a couple of holes in a plastic container to guide through the micro-USB connectors, and put in some bubble foil inside for safe transport. I drilled another hole to connect the external antenna for the LoPy node. Besides the LoPy, I put the Marvin in the box, with the temperature/humidity sensor on the outside of it. Not that it really mattered, today was going to be about finding gateways while I was on the road.

Things did not look good for the experiment though in the morning. The Things Network (TTN) backbone was acting up again. That was a bummer, because I still had to change the code on the LoPy. It had the code installed for the Circuit Playground and I wasn’t planning on bringing that also. So I changed the code to a simple “send a number every 30 seconds” but was not able to test it before leaving for the train.

To make matters more balanced: I decided to have the Marvin connect to the KPN network (still got 60 days left on my free trial), but the Hookbin.com server decided that today was a good day to refuse to work. And I needed a place to store the data sent by the Marvin. Luckily I found loggly.com another site that you can use as a destination for KPN nodes. I think it is better than Hookbin btw because it keeps more records and even the free plan should be enough for most people. Another nice thing was that Loggly also can act as an HTTP-integration for TTN, so I could collect both the data sent via KPN and the data sent via TTN in one single place. Quick tip: Loggly provides you with an http:// url for the endpoint, KPN doesn’t accept http:// but you can simply change the provided url to https:// and then it works.

OK, into the train. I wasn’t really sure what to expect. A train means lots of metal and a fast moving object (and nodes).

Lees verder….

Deel dit bericht: