iFarm.nl

Main menu:

filler
facebook

Quizzen
  Films
  Acteurs
  Actrices
  Albums
  Asterix
  Kuifje
  Nederlanders
  Belgen

Stripverhalen
  Asterix
  Guust Flater
  Kleine Robbe
  Lucky Luke
  Paling en Ko
  Smurfentaal
  en meer...

Overige
  Grappige nummerplaten
  Molbeurs
  Tour-de-France-spel
  Wie is de Mol?

Recent gelezen

het geheugenpaleis

basisboek social media

the third screen

Op de boekenplank

Gelezen in 2011

Gelezen in 2010

Gelezen in 2009

Gelezen in 2007

Gelezen in 2005/2006

Doorzoek blog

Feeds

Categorieën

Archieven

mei 2017
S M T W T F S
« Dec    
 123456
78910111213
14151617181920
21222324252627
28293031  

Treinstations

enschede-drienerlo Sinds augustus 2015 maak ik selfies op treinstations om bij te houden waar ik ben geweest. Inmiddels heb ik er meer dan 60. Daarbij zitten de 16 drukste stations van Nederland (nummer 17 is Tilburg) maar ook stations waar weinig mensen komen, zoals Geerdijk. Voor dit station ben ik speciaal een keertje omgereisd naar Overijssel omdat het volgend jaar gesloten gaat worden. Dus dan kunnen we er niet meer naartoe reizen.

Reizen naar het station op de foto linksboven is nu al niet meer mogelijk. Nadat ik in november 2015 Universiteit Twente had bezocht bleek in december het station waar ik was uitgestapt niet meer te bestaan. De NS had Enschede Drienerlo van naam veranderd in Enschede Kennispark.

Voor verre reizen zijn de acties van winkels als AH en Kruidvat handig. Die bieden soms voor ongeveer 15 euro een dagkaart voor heel Nederland aan, geldig in het weekend. Een overzicht van deze acties staat op treinreiziger.nl. De NS heeft vergelijkbare acties maar met meer rompslomp (persoonsgegevens overdagen aan de NS, kaartje zelf printen en legitimeren in de trein).

Update 2 februari 2016: zie ook het project van Daniël de Ruig en Yari de Graaf op de NRC.

Drawing on maps with Javascript

20141224

In this short tutorial, I will demonstrate how you can draw geometrical figures on maps with Javascript. It took me a lot of effort to figure this out so I thought I should write it down so others could achieve this more easily. If you are in a hurry, you can skip the tutorial and just download the working code that produced the image above.

The goal is to draw a point and a polygon on a map with Javascript. For this purpose we will use the maps provided by OpenStreetMap. Our shapes will be drawn on layers from OpenLayers. We use OpenLayers version 3.0.0. You will need two extra files to get everything working: the base Javascript code of OpenLayers: ol.js (local copy) and the OpenLayers style file ol.css (local copy). Store these in the same directory as the other files of this tutorial.

First we need to create a web page on which the map will be shown:

<!DOCTYPE html>
<html>
<head>
  <title>Map with drawings</title>
  <link rel="stylesheet" href="ol.css" type="text/css">
  <script type="text/javascript" src="ol.js"></script>
  <script type="text/javascript" src="myscript.js" defer="defer">
  </script>
</head>
<body>
  <div id="mapid" style="width:400px; height:225px;"></div>
</body>
</html>

This web file loads three other files: the style file and code from OpenLayers and our own code (see below). Furthermore, it defines an environment in which the map will be drawn (the div with id mapid).

Next, we need code for drawing a base map:

// list containing the different layers of map data
var layers = [];
// create a layer with map data from OpenStreetMap
var OSMbase = new ol.layer.Tile({ source: new ol.source.OSM() })
// add the OpenStreetMap layer to the list of layers
layers.push(OSMbase);

// draw the map with the layers
var map = new ol.Map({
  layers: layers,
  target: 'mapid', // the id of the html environment for the map
  // the definition of the map controls
  // these also need the style file ol.css
  controls: ol.control.defaults({
    attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
      collapsible: false
    })
  }),
  // center and zoom level of the map
  view: new ol.View({
    center: ol.proj.transform([4.898330,52.367321], 
                               'EPSG:4326', 'EPSG:3857'),
    zoom: 9
  })
});

We create a layer with data from OpenStreetMap and draw the layer on the web page. For that purpose, we need to define the longitude and latitude of the center point of the map. In order to put the point on the right position on the map, its coordinates need to be transformed to another coordinate system (command transform). We also need to specify how far we want to zoom in on the map.

Next we will put a point on the map.

// define a layer with a point
var point = [4.649855,52.367321]; // longitude,latitude
var pointFeatures = new ol.Feature({
  // ol.geom.Point requires single point
  geometry: new ol.geom.Point(point)
    .transform('EPSG:4326', 'EPSG:3857') 
});
var pointSource = new ol.source.Vector({ features: [pointFeatures] });
var pointStyle = new ol.style.Style({
  image: new ol.style.Circle({
    // point fill color and radius
    fill: new ol.style.Fill({color: 'red'}),
    radius: 5
  })
});
var pointLayer = new ol.layer.Vector({
  source: pointSource,
  style: pointStyle
});
layers.push(pointLayer);

For the red point we need to specify its position (longitude and latitude), its radius and its color. The location needs to be transformed to the coordinate system of the map. After all the paramaters have been processed and combined, we have a new layer with a single point. This new layer can be added to our list of layers.

Now we can add a polygon to the map:

// define a layer with a polygon
var polygon = [ [5.033004,52.346782], [5.072143,52.387860], 
                [5.111281,52.346782] ];
var polygonFeatures = new ol.Feature({
  // ol.geom.Polygon requires list of polygons
  geometry: new ol.geom.Polygon([polygon])
    .transform('EPSG:4326', 'EPSG:3857') 
});
var polygonSource = new ol.source.Vector({ features: 
                                             [ polygonFeatures ] });
var polygonStyle = new ol.style.Style({
  // polygon fill color, line color and line width
  // rgba parameters: red(0-255), green(0-255), blue(0-255), 
  //                  transparancy(0-1)
  fill: new ol.style.Fill({ color: 'rgba(0,0,255,0.2)' }),
  stroke: new ol.style.Stroke({ color: 'black', width: 1 })
});
var polygonLayer = new ol.layer.Vector({
  source: polygonSource,
  style: polygonStyle
});
layers.push(polygonLayer);

The polygon is a blue triangle of which we specify the three corner points. These need to be transformed and combined with a fill color and a color and width of the boundary line. In this example the fill color has been been defined with three RGB values and a fourth value which indicates how transparent the polygon is. All the data is combined in a layer containing the polygon.

That’s it! This is the code you need to draw a point and a polygon on a map. An image of the result appears below the title of the post: a base map centered at Amsterdam with a red point to the left and a blue triangle to the right. You can also download the full script or all files used in this tutorial. Good luck with adapting the code to your wishes.

Op het nieuws

20140121 Vandaag was er in de media aandacht voor mijn Twitteronderzoek. Het begon met een artikel in de Volkskrant over sentimentsanalyse van Nederlandstalige tweets. Naar aanleiding van het artikel heb ik daarna drie korte radio-interviews gegeven (Radio1, RTV Noord-Holland en RTV Emmen). Tenslotte werd het onderzoek ook besproken in het programma RTL Late Night (van Humberto Tan) in het item van Luuk Ikink.

Zie de projectblog voor links naar de diverse nieuwsitems.

Gekocht bij de IKEA…

20131219

Top 2000 in 2013

20131206 Vanavond heb ik op de valreep nog gestemd voor de 2013-editie van de Top 2000. Dit waren mijn twintig keuzenummers (links verwijzen naar filmpjes op YouTube):

  1. Mike Oldfield – To France (1984)
  2. Tears for Fears – Sowing the Seeds of Love (1989)
  3. The Hollies – The Air That I Breathe (1974)
  4. Dusty Springfield – Summer is Over (1964)
  5. ABBA – Dancing Queen (1976)
  6. Leo Sayer – Orchard Road (1983)
  7. Ray Conniff – Harmony (1973)
  8. Carly Simon – Nobody Does It Better (1977)
  9. Whitney Houston – One Moment in Time (1988)
  10. Orleans – Dance with Me (1975)
  11. Herman Hermits – There is a Kind of Hush (1967)
  12. Youssou N’Dour & Neneh Cherry – 7 Seconds (1994)
  13. Alanis Morissette – Ironic (1996)
  14. Coldplay – Viva la Vida (2008)
  15. Melanie C & Lisa Lopes – Never Be the Same Again (2000)
  16. The Carpenters – Top of the World (1972)
  17. Roberta Flack – Killing Me Softly with His Song (1973)
  18. Astrud Gilberto – The Girl from Ipenema (1964)
  19. Pharrell Williams – Happy (2013)
  20. Macklemore & Ryan Lewis ft. Wanz – Thrift Shop (2013)

Inmiddels zijn de stembussen gesloten. Er hebben 3,3 miljoen mensen gestemd. (zie Peters blog voor een schatting van het aantal stemmers) Bohemian Rhapsody van Queen is ook dit jaar op de eerste plaats geëindigd.

Mijn eerdere TOP2000stemmen: 2009 en 2011

Naschrift: van de twintig nummers in bovenstaande lijst hebben er veertien de Top 2000 gehaald. De nummers die dat niet lukte waren de nummers van Ray Conniff, Carly Simon, Orleans, Herman Hermits, Mel C en Macklemore. Het hoogste gerangschikte nummer van de lijst is Viva la vida op plaats 15. Happy komt nieuw binnen in de Top 2000 en To France keert na een afwezigheid van twee jaar weer terug in de Top 2000.

Netflix in Nederland

Netflix Sinds woensdag 11 september 2013 is het Amerikaanse videobedrijf Netflix actief in Nederland. Voor een vast bedrag (8 euro per maand) kan je bij hen via internet zoveel films kijken als je wilt. Dat vond ik een interessant aanbod en daarom heb ik mij meteen aangemeld.

De eerste maand blijkt gratis te zijn, leuk. Je kan betalen via iDeal, handig. Ik moet wel drie plugins installeren dan wel updaten, waaronder SilverLight, maar met de instructies erbij gaat dat snel. Mijn laptop raakt meteen bij het eerste filmpje overbelast maar dat was te verhelpen door de videokwaliteit terug te zetten naar de laagst mogelijke waarde.

Onmiddellijk ga ik op zoek naar kwaliteitsfilms in de Netflixcatalogus. De lijst van de Top 250 films op IMDB is daarbij mijn bron. Van deze lijst heb ik een deel al gezien maar de meeste niet. Bijna alle films die ik opzoek, blijken in de catalogus te staan maar… ik mag ze niet bekijken. Bij elke zoekopdracht komt in beeld is niet beschikbaar voor streaming, een vriendelijke vertaling van we hebben deze film wel maar we mogen hem niet laten zien in Nederland.

Na twee dagen zoeken heb ik eindelijk succes met nummer 106 van de lijst: Jodaeiye Nader az Simin, een Iraanse film uit 2011 over een echtscheiding, die ik dan ook maar meteen bekijk. Mooie film, handig om hem zo thuis te kunnen bekijken, in dit geval legaal en helemaal gratis.

Eens turven: van de top-20 van de IMDB-lijst vind ik 18 in de Netflixcatalogus maar ik mag er maar vijf bekijken (en die vijf had ik al gezien). De films die in de afgelopen 20 jaar de oscar wonnen voor beste film, vind ik allemaal terug bij Netflix maar ik mag er maar vier bekijken. Daarvan heb ik er twee nog niet gezien dus die voeg ik meteen toe aan mijn lijst mijn lijst op Netflix zodat ik ze via de homepagina gemakkelijk kan terugvinden.

Netflix is een mooie service. Als ze het aanbod in Nederland uitbreiden, en dat zijn ze van plan, dan zijn ze voor mij de acht euro per maand meer dan waard.

Naschrift 5 oktober 2013: na drie-en-een-halve week later nog een keer vruchteloos te hebben gezocht naar films uit de bovenste 100 van de IMDB Top 250 die ik nog niet had gezien, heb ik Netflix toch weer opgezegd. De filmcollectie is voor mij te klein. Op fora lees ik wel enthousiaste reacties van gebruikers die via een Amerikaans IP-adres kijken en daardoor veel meer kunnen zien maar zo’n omweg gaat mij iets te ver.

Fraude bij filmwedstrijd Bessensap

Het grootste deel van de stemmen op de winnaar van de NWO filmwedstrijd Bessensap is afkomstig van 1 bron, zo blijkt uit een analyse van de stemmen die werden uitgebracht tijdens de wedstrijd.

Bessensap
Figuur: stemaantallen van de beste zes Bessensapfilmpjes in de periode 7 tot 25 maart 2013 met een duidelijk ander stemverloop voor het winnende filmpje van het Erasmus MC (EMC)

Deze maand heb ik meegedaan aan de filmwedstrijd Bessensap van NWO. In deze competitie konden onderzoekers een filmpje van 1 minuut insturen. NWO zou de filmpjes aan journalisten en andere belangstellenden laten zien. Zij zouden dan de beste vijf filmpjes kiezen en die vijf konden een prijs winnen. Ik achtte mijn kansen op een prijs niet zo groot maar deze competitie leek mij wel een mooie gelegenheid om mijn onderzoek onder een groter publiek bekend te maken.

Ik was verbaasd toen na het verstrijken van de deadline bleek dat de populariteit van de 41 inzendingen zou worden gemeten via YouTubelikes. Zo ging de wedstrijd niet meer over wie het meest relevante onderzoek had gedaan maar over wie de meeste vriendjes had die wilden stemmen. Kennelijk was de organisatie ook niet bekend met het bestaan van websites als BuyYoutubeLikes.com, waar je voor een paar dollar zoveel likes kon kopen als je wilde.

Een groot gemis bij de competitie was een overzicht van de tussenstand. Het leek er niet op dat NWO deze zou aanbieden en ook via YouTube was er niet snel een overzicht te krijgen. Ik heb daarom zelf een programma geschreven dat de stemaantallen ophaalde van YouTube en deze overzichtelijk op 1 webpagina plaatste: ifarm.nl/bessensap2013. De overzichten werden eens per vier uur gemaakt. Met het oog op mogelijke fraude heb ik alle tussenstanden bewaard op de website.

De eerste week van de competitie gebeurde er niet veel bijzonders. Maar in week twee was het mis. Het filmpje van het Erasmus MC (EMC) steeg op 14/15 maart in 24 uur van 46 naar 906 likes, een aantal dat bijna drie keer zo hoog was als het filmpje dat tot dat moment aan de leiding stond. Had dit filmpje misschien de landelijke media gehaald?

Tussenstand Bessensap 15 maart 2013 16:00
Figuur: Tussenstand filmwedstrijd Bessensap op vrijdag 15 maart 2013 16:00. Het filmpje “DNA Code” van het Erasmus MC heeft 50% meer likes dan views.

Het vreemde aan de stijging van het EMC-filmpje was dat het aantal views, het aantal keren dat het filmpje was bekeken, niet evenredig meesteeg. Aan het begin van de stijging op 14 maart 16:00, stond het filmpje op 46 likes en 431 views. 24 uur later stond het op 906 likes en 608 views. Het filmpje was in de tussentijd 177 keer bekeken en had 860 nieuwe likes gekregen. Raar.

Deze statistieken kunnen volgens mij op twee manieren worden verklaard. Ten eerste zouden de likes kunnen zijn gegeven door computersoftware waardoor het filmpje niet geladen en dus niet bekeken werd. Ten tweede zouden de likes kunnen zijn gegeven door mensen die op de like-knop hebben gedrukt binnen enkele seconden na het starten van het filmpje en daarna onmiddellijk de pagina hebben verlaten. Dan wordt waarschijnlijk het bekijken van het filmpje niet geteld.

Beide manieren van uitleg wijzen op stemmen die van 1 persoon afkomstig zijn. Dat iemand meerdere keren op hetzelfde filmpje stemt, is bij dit type competitie moeilijk te voorkomen. Maar als het zoals in dit geval gaat om vele honderden stemmen van 1 persoon dan is dat wel een ernstige vervalsing van de competitieuitslag.

Wie verantwoordelijk is voor de extra stemmen, is moeilijk na te gaan. Iedereen kan op websites als de eerder genoemde BuyYoutubeLikes.com likes kopen voor een willekeurig filmpje, ook als je deze niet zelf op YouTube hebt geplaatst. Het is mogelijk dat de extra likes zijn besteld buiten medeweten van de onderzoeker die verantwoordelijk is voor het filmpje. Maar het maakt niet uit wie het gedaan heeft. Het zou netjes zijn als iemand die dit overkomt zijn inzending zou terugtrekken om ervoor te zorgen dat de competitie eerlijk blijft.

De stijging van het aantal likes van het EMC-filmpje is na klachten bij YouTube gestopt. Maar de verworven likes zijn grotendeels blijven staan. De andere filmpjes konden het gat met dit filmpje niet overbruggen en het filmpje is op de eerste plaats blijven staan. NWO heeft het filmpje inmiddels een prijs toegekend. Zij hebben ook geconstateerd dat er vreemde dingen zijn gebeurd bij het filmpje maar zij konden vals spel niet bewijzen. Ik vind dit vooral jammer voor het filmpje dat nu zesde werd en dat hierdoor een welverdiende prijs misloopt.

Wat hebben we nu geleerd van deze episode? Dat YouTubelikes geen ideale manier zijn om de populariteit van filmpjes te meten? Maar dat wist ik al. Gelukkig zijn ze er bij NWO inmiddels ook achter. Dat vals spel loont? Maar dat is iets wat ik niet wil leren.

Onderzoek doen met Twitter

Vandaag is op YouTube een filmpje verschenen van de website die ik in het afgelopen half jaar bij het Netherlands eScience Center heb gemaakt voor het doen van onderzoek met behulp van Nederlandstalige tweets. In het filmpje laat ik zien hoe je groepen tweets kan samenvatten en visualiseren. Het was een erg leuk project om te doen en de website wordt inmiddels door een paar wetenschappers gebruikt.

Het filmpje van 1 minuut doet mee in de Bessensapcompetitie van de Nederlandse Organisatie voor Wetenschappelijk Onderzoek. Aan de meest populaire filmpjes wordt een prijs toegekend: een verfilming van het gepresenteerde onderzoek door een professionele filmmaker. Er zijn vijf van deze prijzen voor de vijf filmpjes die op YouTube de meeste likes verzamelen.

Hier is mijn filmpje:

Als je het filmpje leuk vindt dan kan je dat aangeven door bij het filmpje op het plaatje met de duim omhoog te klikken. Hiervoor moet je het filmpje op YouTube bekijken en moet je zijn ingelogd op Gmail, Google+, Picasa of YouTube.

Je kan ook een kijkje nemen op de Twitterzoekwebsite: http://twiqs.nl/ Daar kan je opzoeken wanneer en waar bepaalde woorden werden gebruikt op Twitter, met welke woorden ze samen voorkwamen en wie ze gebruikten.

Oratie Antal van den Bosch

20121109 Gisteren was ik bij de oratie van Antal van den Bosch in Nijmegen. Het gebeurt niet vaak dat ik bij zo’n lezing ben waarbij een hoogleraar zijn ambt aanvaardt en dit was zeker de eerste keer dat het iemand betrof die dat voor de tweede keer deed. Van den Bosch had namelijk al in 2008 een oratie gegeven in Tilburg: Het volgende woord. De nieuwe lezing getiteld Taal in uitvoering had dezelfde strekking: een pleidooi voor impliciete taalkunde, taalkunde die gebaseerd is op modellen die door computers zijn afgeleid uit tekst. Het nieuwe verhaal heb ik nog niet online gevonden maar het was interessant. Er was veel publiek op de oratie afgekomen en het was leuk om de oudcollega’s uit Tilburg en Antwerpen weer eens te spreken.

Trouwartikel met interview

Erik in beeld

Vorige week vrijdag kwam de lokale zender RTV Noord filmen bij de training van mijn loopgroep Astrea in Selwerd. Zo kwam ik ook nog even in beeld tijdens een kort interview (vanaf 0:43):