Lots of fun to ride my second time at the Hague spring alleycat: Paria. Great guys, lots of speed and fun. Looking forward to more riding and maybe getting into polo.
Month: March 2010
Austin
Joi Ito – De wereld redden door iedereen in staat te stellen om te innoveren
Joi Ito 2010 SXSW Talk on Prezi
Joi Ito is niet zozeer een man, maar een beweging. Hij leidt, stuurt en overal waar hij komt heeft hij veel gelijkgestemden. In dit tijdslot wat in het programma alleen maar Joi Ito Presentation heet omdat hij nog geen naam (en ook geen presentatie of verhaal) had vult hij in zijn eentje een uur met een samenhangend verhaal en vele anekdotes uit zijn leven als wereldreiziger en cultuurproever.
We hadden altijd al complexiteit maar nu het met elkaar verbonden wordt moeten we ermee omgaan. Elke cultuur heeft lagen en lagen van eigen idiosnycratische details die anders werken dan je verwacht. De enige manier om complexiteit aan te pakken is decentraal.
Joshua Ramo schreef “The Age of the Unthinkable” dat gaat over deze culturele complexiteit.
Hezbollah werkt gedistribueerd en bevat heel veel slimme mensen die geen andere kansen of perspectieven hebben. Daarom zijn ze zo goed.
Om de problemen van de wereld en internationale betrekkingen op te lossen moeten we zorgen voor non-lineaire veranderingen.
McGonigal‘s spel: World Without Oil
Simulatie van leven in een virtuele wereld zonder olie met bewustwording in de echte wereld van hun energiegebruik.
Mensen die in die cultureel-economische contexten leven en met die details te maken hebben -zoals in Beirut verzinnen vaak hele creatieve oplossingen die op geen enkele andere van boven opgelegde manier bedacht hadden kunnen worden. Interessant perspectief op ontwikkelingshulp.
Het concept ‘positive deviance’ van Jerry Sternin waar je je richt op de paar mensen die het goed doen in plaats van iedereen die het fout doet. Voorbeeld van genitale verminking bij vrouwen in Egypte.
Nodig voor sociale verandering:
– Mensen financieel zelf in staat stellen (empoweren)
– Mensen een stem geven
Joi: Internet is my religion. Ik zou hier niet staan zonder het internet. (Geldt voor iedereen in de zaal, dat en een pessimistische blik op het onvermogen van overheden.)
Open Source werkt pas goed dmv het internet en het heeft de kosten van dingen uitproberen drastisch verlaagd.
Stack:
– Creative Commons
– The Web
– The Internet
Stelt mensen in staat om te participieren en concurreren met elkaar zonder dat mensen toestemming hoeven te vragen. Zonder inmenging van grote logge bedrijven, overheden en instanties.
Standaarden werden vroeger door bureaucratische commissies gemaakt en probeerden elk gebruiksdoel te voorzien. We maken nu standaarden op een losse manier, om te zorgen voor participatie en we zijn blij als mensen gebruiksdoelen vinden die we niet hadden voorzien.
Het netwerk is nu zo ontzettend goedkoop dat de kosten in snelheid en bandbreedte samenwerking en content-collaboratie niet meer in de weg staan. Alleen als mensen nu willen samenwerken zijn er vanwege de auteursrechten juridische kosten die zo hoog zijn dat ze de waarde van de samenwerking teniet doen.
Creative Commons is bedacht om de kosten van het samenwerken in content verder te verlagen. Auteursrechten zegt nu dat je toestemming moet vragen om iets te gebruiken en die toestemming moet je heel nauwkeurig specificeren. Sommige mensen willen niks delen, maar veel mensen willen misschien wel iets delen op de een of andere manier.
Interoperabiliteit is belangrijk. Dat we één internet hebben is handig, omdat we dan samen kunnen werken. De lobby om iedereen aan boord van CC te krijgen is om ervoor te zorgen dat iedereen onder één licentie-verzameling met elkaar kan samenwerken.
Hoe kleiner je bent hoe lager de kosten van falen zijn. Dit is de compleet chaotische non-lineaire innovatie die gedreven wordt door ondernemers. De kosten van falen in tijd en geld voor overheden en grote bedrijven zijn gigantisch. Je kunt nu heel snel en zonder een bak geld iets maken wat werkt.
Hij somt een hele rij kleine organisaties op die met behulp van het internet de wereld proberen te veranderen. De grote landen in de wereld ( zeg VS, China, Japan etc.) zijn veelal te corrupt, arrogant en disfunctioneel om daadwerkelijke verandering te kunnen bewerkstelligen. Hij werkt liever om de overheid heen en zegt dat je binnen de overheid moet werken als je de energie ertoe hebt. Volgens hem zijn kleinere landen wel in staat zijn om te luisteren, te leren en te veranderen.
Mensenrechten zijn belangrijk maar kunnen niet ingevoerd worden zonder oog voor de bredere sociale context en gevolgen. In de Arabische wereld gaan dingen langzamerhand de goede kant op.
(Deze blog is snel geschreven door Alper na een sessie op SxSWi in Austin, Texas. En tevens gecrosspost naar het groepsblog voor alle Nederlandse aanwezigen.)
In code we trust — Vertrouwen in de overheid, bureaucratie en technologie
Boeiende vinger aan de pols in open overheid Amerika met Noel Hidalgo (New York), Dmitry Kachaev (Washington D.C.) en Alissa Black (San Francisco).
Allissa Black (erg tof!) geeft een overzicht van de verschillende initiatieven die de stad San Francisco (met Twitter-burgermeester Gavin Newsom) heeft genomen om open overheid te bevorderen. Misschien een goed idee om als nieuwe burgermeester van Amsterdam ook iemand te kiezen die tenminste snapt wat internet is.
San Francisco loopt uiteraard buitengewoon voorop in dit soort dingen —noblesse oblige. Ze hebben een data-inventaris en -richtlijn aangenomen en er wordt elk kwartaal een verslag uitgebracht van de stand van zaken. Ze maken sites zoals: DataSF, RecoverySF en een Citypedia om kennis te delen binnen de stad.
Haar stappen die je moet nemen:
- Stel een team aan om het initiatief te doen groeien
- Breng richtlijnen uit
- Zorg dat het een verwachting van de overheid is.
- Voer beleid door.
Ook nog op de vraag welke software men gebruikt om participatie van burgers te bevorderen het antwoord: Uservoice en IdeaScale.
En de tip om te participeren in de O’Reilly online conferentie voor Gov 2.0 International.
In Amerika zijn heel veel initiatieven op allerlei niveau’s: stad, staat, federaal die hiermee bezig zijn en er lijkt heel veel ‘web literacy’ (mediawijsheid) te zijn en ook budget voor al dit soort dingen. Toch moet ik gevoelsmatig zeggen dat we in Nederland nauwelijks achterlopen.
Op overheidsniveau hebben we Ambtenaar 2.0, Hack de Overheid, en nog een serie initiatieven (ik wacht nog op data.gov.nl). In Amsterdam zouden we bijvoorbeeld het Open City manifest kunnen aannemen maar iets als Amsterdam Opent is al heel tof.
Waar het in Nederland beter kan:
1. Duurzame web-platformen die gebouwd zijn door bedrijven die het snappen op open technologie met een blik vooruit op (ipv één keer oplevern en iets onbruikbaars over de schutting gooien).
2. Vaste, aanspreekbare teams die de materie beheersen aanstellen voor deze onderwerpen.
(Deze blog is snel geschreven door Alper na een sessie op SxSWi in Austin, Texas. En tevens gecrosspost naar het groepsblog voor alle Nederlandse aanwezigen.)
Sea fare
Just saw this picture of the Wellington RFID farecard system at Adam Greenfield’s Flickr stream (CC-by-nc-sa photograph):
It’s called a Snapper card.
Compare this to the London based Oyster card:
And the Hong Kong Octopus card:
This international sea food theme makes me think that we have definitely missed a branding opportunity here (and this for a country of fishermen). Our entire OV-chipkaart system1 has been grossly underdesigned on all fronts, so no surprises there2.
So I’ve got two proposed alternative names for our low countries farecard system:
- Herring card (Haringkaart)
- Mussel card (Mosselkaart)
or
How do we get this change implemented? And anybody care to mockup a concept?
Municipal boundaries of the Netherlands
Goal
I want to create a simple visualization tool for Processing so I can input a set of values for each Dutch municipality and then color a map based on those values.
This is harder than it seems because there is no convenient source for the cartographic data for the boundaries of the Dutch municipalities. So the first step is to acquire those boundaries.
OSM
This blogpost in Dutch put me on track for this dataset. OpenStreetMap has a pretty complete picture of the Netherlands and they track municipal boundaries under boundary admin_level=8.
The data dump contains all administrative boundaries on several levels and is something of a mess. The informationfreeway link on the blogpost which should generate an OSM file with only the relations with admin_level=8
but that specific API seems to be down. Also the approach of importing the OSM file back into a PostGIS database before rendering anything struck me as somewhat too cumbersome. So an alternative approach was called for.
There are some readily available dumps at CloudMade both with OSM files (format) and Shapefiles for these administrative boundaries. That seemed to be a useful starting point.
An OSM file is just an XML file with series of nodes
, ways
and relations
in it. It is filterable by the generic processing tool Osmosis with the options that I guessed --way-key-value
to filter ways with the admin_level tag and --node-key-value
to do the same for nodes. Osmosis does not specify anything for relations which I want to preserve to be able to identify each boundary by the name of the municipality.
Having done that, the resulting OSM file needed to be drawn to the screen. I made a simple XML reader in Processing to display the resulting boundaries. The result did not seem to be completely what I wanted both with missing and unlinked geographical features and I think not everything properly labelled. For this particular application a wiki-map does not seem like the most suitable source of data.
CBS
CBS (the Dutch statistics office) also provides a dataset with administrative boundaries of the Netherlands. It is a bit hard to track down on the site and there’s a reference to the Kadaster which isn’t entirely clear, but the generalized Shapefile is workable.
One problem is that Shapefiles are only understood properly by GIS people and there are hardly any libraries for web developers to work with the data format. Sunlight Labs recently released their ClearMaps library to aid developers wanting to work with Shapefiles, which is a big step in the right direction.
Another problem is that the file on the CBS site is from 2006 and that several municipalities have merged/split, so that adds some problems for correlating it to data. And come to think of it, this municipal rejiggering makes any historical data view of the Netherlands a daunting task. Somebody on Wikipedia has generated a similar map of the Netherlands for 2010 supposedly using data from the CBS, but I can’t find that dataset on the site1.
Oddly enough there’s also nothing readily available to draw Shapefiles in Processing. Perusing the forum yields this post which points to Geotools which is a massive set of Java libraries consisting mostly of a huge dependency nightmare mitigated somewhat by Eclipse and Maven.
Geographical data
Viewing the Shapefile in qGIS shows that it does indeed contain the municipal boundaries with correct labeling. Having verified that, we need to extract the geographical data from the file into a format for easier reuse. Linking all the Geotools2 dependencies to my Processing sketch does not seem like an attractive proposition. Using the Geotools quickstart to setup Eclipse to pull in the libraries and run the Java code, did work pretty conveniently.
Poking around the Shapefile with Java and using the very poor javadocs (the User Guide’s usefulness turned out to be extremely limited) and sources posted online that are available of Geotools yielded something worthwhile after a full day’s work. I also found lots of forum posts of very confused people with few replies and little insight to be gleaned from them. This really seems to be an underdeveloped field.
It turns out the Shapefile read with Geotools contains SimpleFeature
classes (UML for those, and the Wikipedia lemma for the OpenGIS standard) of which you can call the getDefaultGeometry()
methods.
Geotools also provides a default Drawer.java
which you can use to display the features (via LiteShapes
) in the Shapefile using Java AWT Graphics. This turned out to be useful mainly for debugging purposes and to verify that Geotools does indeed properly read in the Shapefile. Using a GeomCollectionIterator
to walk through the points and extract the coordinates that way turned out to be a dead end (especially because I didn’t get the role of the various Transforms).
Another idea was to generate SVG from the Shapefile but the GenerateSVG
class did not seem to be included in my library checkout and fiddling with the maven file seemed risky.
Finally the following piece of code yielded for me the two pieces of data I was looking for, the names of the municipalities and the content of the SimpleFeatures as MULTIPOLYGONs.
String gemShapefile = "/Users/alper/Documents/projects/muniboundaries/cbs/buurt_2008_gen2/gem_2008_gn2.shp";
File file = new File(gemShapefile);
FileDataStore store = FileDataStoreFinder.getDataStore(file);
FeatureSource featureSource = store.getFeatureSource();
FeatureCollection features = featureSource.getFeatures();
FeatureIterator iter = features.features();
int counter = 0;
PrintWriter pw = new PrintWriter(new FileWriter("/tmp/geo.txt"));
while(iter.hasNext()) {
SimpleFeature feature = iter.next();
Collection props = feature.getProperties();
if (counter > 0) {
String gemNaam = "";
String geoWKT = "";
for (Iterator it = props.iterator(); it.hasNext();) {
Property property = it.next();
if (property.getName().getLocalPart().equals("the_geom")) {
geoWKT = property.getValue().toString();
}
if (property.getName().getLocalPart().equals("GM_NAAM")) {
gemNaam = property.getValue().toString();
}
}
pw.println(gemNaam + "; " + geoWKT);
System.out.println(gemNaam);
}
counter++;
}
pw.close();
The funny thing is every feature has a property “the_geom†which contains the geometry data and its toString()
method yields the geometry data as Well-known text. That turned out to be all we needed.
It turns out the coordinates in the Shapefile are in Rijksdriehoekscoördinaten3 which are cartesian coordinates based on a custom projection and associated rectangular grid for the Netherlands4. This is easily verified using this web form to convert a pair back to GPS and looking that up in Google Maps5.
The above code produces lines such as:
Leek; MULTIPOLYGON ( ( (224599.999985 582499.999985, 224999.999985 581299.999985, […] 223366.621185 581866.621185, 223499.999985 581999.999985, 224440.97068499998 582470.485385, 224499.999985 582499.999985, 224599.999985 582499.999985)))
This is a simple list of coordinates that define the boundaries of the polygons. A MULTIPOLYGON contains one or more POLYGONS. A POLYGON is one list of the boundary with zero or more lists defining any holes within that boundary. I figured that out looking at the specification for GeoJSON (same data model, different markup) which is the format I am going to republish this information in.
Drawing
With these coordinates, it became quite easy to write a Processing sketch to draw these boundaries. I looked up a datasource for the last European elections and hooked that up for the colors.
Making iterative sketches in Processing with Eclipse is somewhat cumbersome because you need to utilize quite a high level of abstraction if you don’t want your classes to interfere with each other but still Eclipse allows me to work quickly and lets you write Java 1.5 level code against the Processing core.jar (that alone is worth the effort).
I’m going to release a generic Processing sketch where you only need to add a data file with colors or values for each name. Publication as these boundaries as both GeoJSON and SVG is also forthcoming. I’m also looking for the more recent 2010 Shapefile from the CBS with all the current municipal boundaries in it. If there’s demand I can also extract the living quarter and neighborhood level administrative boundaries which are in the other Shapefiles.
Update: Some research shows there’s a very promising avenue to do this stuff by converting the entire Shapefile to GeoJSON as explained in this StackOverflow post and then drawing thath using either ProcessingJS or OpenLayers.
Update: Managed to convert the data to GeoJSON and draw it using ProcessingJS:
This opens up a ton of possibilities for interactive visualization and sharing. More to follow.
- Nor can I find anything else there, but that is a different story. [↩]
- Another alternative would have been a Python binding to GDAL/OGR which looked even less tractable. [↩]
- Seemingly you can put anything you want in a Shapefile also given the vast diversity in geodetic datums which are in use around the globe. [↩]
- This is something I couldn’t figure out anywhere, what the agreement was —if any— for the contents of the coordinates in the Shapefile. My question: “How do I get GPS coordinates from a Shapefile?†did not yield any answers. [↩]
- I have the formulas in a dense PDF, but some sample Java code to do the conversion would be very nice. [↩]
Verkiezingsuitslagen Grootste Partijen Gevisualiseerd
Snel een visualisatie in elkaar gedraaid op basis van mijn Europees Parlement visualisatie van vorige week. De huidige verkiezingen voor de gemeenteraad 2010 (klik voor groot):
Grootste landelijke partijen per gemeente genomen waar mogelijk1. Sommige gemeenten doen nu niet mee, zie Wikipedia voor het lijstje en van 22 gemeenten moet de uitslag nog komen.
De kaart met de grootste partijen van de vorige verkiezingen (voor het Europees Parlement in 2009):
Het is lastig vergelijken met de Europese verkiezingen omdat dat een heel ander soort verkiezingen is met een nog lagere opkomst (en zichtbaar meer winst voor het CDA). Wilders deed bij die verkiezingen op een stuk meer plaatsen mee en dat is duidelijk zichtbaar. Je ziet dat de PVV nu vervangen is door de VVD, maar als Wilders in al die gemeenten wel meedeed, had het heel heel anders af kunnen lopen.
Beide plaatjes mogen overgenomen worden onder een Creative Commons Naamsvermeldingslicentie voor Alper Cugun en een link naar http://alper.nl.
Update om 02:00. Volgende en laatste update morgenochtend.
Update: Bezig met de laatste ronde invoer en het is zelfs nog wachten op enkele laatste uitslagen die niet op teletekst staan. Daarna misschien ook de gegevens van de vorige gemeenteraadsverkiezingen overnemen omdat dat beter vergelijkt dan de Europese verkiezingen.
Update: Nog steeds aan het wachten op de uitslagen van Geldrop-Mierlo en Lelystad.
Update: Laatste verlate uitslagen ook verwerkt.
Update: NRC heeft ook een verkiezingskaart die er leuk uitziet maar hier en daar wat lastig werkt.
- Sommige gemeenten hebben niet eens een landelijke partij in het lijstje staan. Die blijven dan wit. [↩]
Toename in veiligheid door de ov-chipkaart
De OV-chipkaart is een groot succes in de Amsterdamse metro. Het aantal zwartrijders is afgenomen en navenant ook het aantal geweldsincidenten.
Mooi en nog meer onbegrip voor de mensen die tegen de ov-chipkaart zijn. Hij mag nog wel verbeterd worden, maar de waarde van de chipkaart is nu duidelijk bewezen.
De GVB zegt in de pers dat het niet mogelijk is om de harde kern van zwartrijders aan te pakken. Ik denk meer dat het een kwestie is van niet willen of dat de kosten niet opwegen tegen de baten. Het is de vraag in hoeverre je de kieren dicht van een veiligheidssysteem.
Ik post dit even hier omdat de GVB een van de meest gesloten en niet web-savvy bedrijven van Nederland is, dus voor de lezers zonder enige hoop van wederhoor.
1.
Wat mij een paar keer is gebeurd is dat er een marginaal iemand vlak achter je mee door de poortjes glipt. Ik ben meestal te in gedachten verzonken met muziek op om het snel op te merken, maar de mensen van het GVB die bij die poortjes staan DOEN NIKS. Wat hebben ze dan voor zin? En wat kan ik er dan van zeggen als de mensen van het GVB het goed vinden wat er gebeurt?
2.
Evenzo mensen die poortjes intrappen: doorseinen via beveiligingscamera’s, metro waar ze in zitten subtiel vertraging laten oplopen en ze door politie op het volgende station uit de metro laten trekken, onder curatele stellen en dwingen schade te vergoeden.
Het kan wél als je het maar wilt.