[Contact]

Daily breaking news

πŸ”’
❌ About FreshRSS
There are new available articles, click to refresh the page.
Before yesterdayNews from Amsterdam

Voter revolt in Amsterdam

By DIRKMJK

In the 21 March municipal election, many Amsterdammers voted for new parties. The map below shows the effect this had on parties that already had seats on the city council. Red circles represent polling stations where the established parties lost; the rare green circles show where they won. The size of the circles corresponds to their gain or loss in percentage points.

Established parties lost across the city, but less so in Centrum and Zuid. The voter revolt was felt most in the peripheral districts Nieuw-West, Noord and Zuidoost, followed by parts of West and Oost. At some polling stations, support for the established parties declined by 15 to over 30 percentage points, with a peak of 43 percentage points.

The success of the new parties has been explained by ethnic background (especially DENK gained substantial ethnic minority support), but there’s also a socio-economic component. The chart below, showing results at the neighbourhood level, illustrates this. The share of votes for the new parties DENK, FvD, BIJ1 plus ChristenUnie is larger than the loss of the established parties, because they also won votes from parties that didn’t make the city council four years ago.

The new parties got their votes mainly in the less affluent neighbourhoods of Amsterdam, as measured by the average value of houses. This doesn’t have much impact on pro-market parties like VVD and D66, which get most of their votes in the richer parts of the city. For the social-democrat PvdA and socialist SP, things are different. The chart below shows what happened to their voters. Grey circles represent the 2014 election; red ones the situation in 2017/2018 (the scale on the y-axis is slightly different from the one above).

First, it should be noticed that most circles have moved to the right: the value of houses has increased significantly over the past years. This effect tends to be somewhat stronger in richer neighbourhoods. As a result, inequality has increased.

In 2014, PvdA and SP had considerable support in the less affluent neighbourhoods, but those are also the neighbourhoods where they lost most on 21 March. By now, their support there is hardly larger than in the richer neighbourhoods anymore. This effect is strongest for the PvdA (note that this effect doesn’t apply to other left-wing parties like GroenLinks).

Over the past years, concern has grown over Amsterdam’s social divide. The 21 March election outcome can be seen as a reflection of this inequality. In the less affluent peripheral neighbourhoods, established parties lost votes, as new parties grew.

The winner of the election, green party GroenLinks, has opted not to invite these new parties to the negotiations for a coalition agreement. In itself, there’s nothing wrong with that choice. Meanwhile, the new city government will need to come up with a credible answer to the city’s social divide. GroenLinks has often identified this as one of the key issues that need to be addressed.

For data sources and method, see the Dutch version of this article.

  • April 8th 2018 at 19:24

The impact of #deletefacebook

By DIRKMJK

This is turning into a bit of a series: in previous posts, I showed how there’s a yearly peak in people googling “delete facebook” around New Year, the time for New Year’s resolutions. The peak is even higher than for “quit smoking”.

Against the backdrop of the latest Facebook controversy, Whatsapp co-founder Brian Acton helped launch a #deletefacebook campaign. Below is an update of my previous chart, which gives a preliminary impression of the impact of this campaign.

Some caution is in order, for recent Google Trends data can sometimes be a bit unstable. Also, it’s possible that currently some people are googling “delete facebook” out of curiosity, without actually intending to delete their account. That said, the impact of the current campaign may well be substantially larger than the annual New Year’s peak.

  • March 25th 2018 at 09:01

Search Facebook by date

By DIRKMJK

Henk van Ess and Daniel Endresz have created a tool to search Facebook by date or date range. The tool creates a url containing the search criteria (as with Facebook Graph). It uses Javascript to generate the search urls. For example, this is how the date range url is generated:

function generate_url_timerange() {
 
    var keyword = $('#input-timerange-keyword').val();
 
    var day1 = $('#select-timerange-day1').val();
    var month1 = $('#select-timerange-month1').val();
    var year1 = $('#select-timerange-year1').val();
 
    var day2 = $('#select-timerange-day2').val();
    var month2 = $('#select-timerange-month2').val();
    var year2 = $('#select-timerange-year2').val();
 
    var url = 'https://www.facebook.com/search/str/'+keyword+'/stories-keyword/'+day1+'/'+month1+'/'+year1+'/date-3/'+day2+'/'+month2+'/'+year2+'/date-3/stories-2/intersect'
 
    $('#btn-search-timerange').attr('href', url);
}

The tool has been published with an open source license. The creators indicate that they «respect your privacy and the cases you are working on, so we are not storing any searches you will make» - which is nice, even if it would seem to be of little consequence since you need to be logged into Facebook to use the tool.

  • March 13th 2018 at 09:43

Topics discussed in the Amsterdam city council, 2006-2018

By DIRKMJK

The other day, I downloaded the reports of 205 city council meetings and 1,116 council committee meetings of the Amsterdam city council. These can be used to write a brief recent history of Amsterdam politics.

The charts below show how often certain terms were used (per 100,000 words). Data for 2006 is incomplete and of course, this applies also to 2018. Therefore, the columns for those years have a lighter colour. And note that the scale on the y-axis varies.

Information about more recent political developments can be found in this English-language voting advice application for Amsterdam.

Airbnb

Airbnb was launched in 2008 and it appears that the first listing in Amsterdam dates from January 2009. As of 2013, the negative impact of Airbnb on liveability and on housing prices started to become an issue. Initially, the city saw Airbnb as a partner in tackling these issues, but the relationship became increasingly distrustful. Amsterdam started to scrape the Airbnb website to gain independent data and introduced a requirement to report the use of Airbnb.

Allochtoon

The Netherlands has a bit of an obsession with ethnic background. People born in the Netherlands may still be registered as allochtoon if one of their parents is foreign-born. Statistics Netherlands even keeps data on third generation allochtonen - people who have at least one foreign-born grandparent.

While there has never been a serious debate about these registrations; there has been debate about the use of the term allochtoon. By 2013, the city of Amsterdam decided not to use the term anymore. By then, the council itself had long all but stopped using it.

Crisis

It won’t come as a surprise that the term crisis was used a lot in 2009. There was some debate about the nature of the crisis:

Mr. VERWEIJ [right-wing VVD] proposes not to speak of the credit crunch, but of the financial crisis […]
Mr. IVENS [socialist SP] says it pleases him that Mr. Verweij also wants to call the credit crunch an economic crisis. He awaits the moment it will be called a crisis of capitalism.

That didn’t really happen. Over the past years, the term credit crunch was used 223 times in the city council; economic crisis 206 times; financial crisis 59 times; climate crisis 36 times and crisis of capitalism 4 times (the list is not exhaustive).

Eviction

In 2010, a national squatting ban came into force. There has been quite a bit of debate in the city council on how it should be implemented; specifically focusing on the eviction of ‘breeding places’ like Schijnheilig and squats where refugees with no alternative housing lived. Dilan Yeșilgöz (VVD) and Marijke Shahsavari (christian-democrat CDA) argued for prosecuting squatters, which Ruger Groot Wassink (GroenLinks) called using police resources for right-wing hobbies.

Open source

Over ten years ago, there was broad support in the city council for ending the contract with Microsoft and switching to open source software. Not only would Amsterdam become independent of expensive provider contracts; it would also help promote Amsterdam as a city that promotes new developments in IT.

An attempt to end the Microsoft contract as of 2008 failed. In 2009, the city started installing OpenOffice.org and Firefox. A lobbyist for Microsoft complained that the company was all but banned from the city.

But in 2010, it became clear that the project had failed. Apparently, the city’s IT department was uncooperative:

Alderman WIEBES thinks that commitment on the part of the government and civil servants is spotty. Also, one may ask whether the wishes of the city council were consistent with what city departments deemed realistic.

Schiphol

When Lodewijk Asscher became alderman in 2006, it had been all but decided to privatise Schiphol Airport. But Amsterdam owns 20% of the airport, and Asscher wasn’t convinced that privatising it served the city’s interests. In his book De ontsluierde stad, he describes how he was put under pressure by the political and corporate elites. Among them was Wilco Jiskoot of ABN AMRO:

Condescending little smile. Did I realise the flotation would happen no matter what? What ambitions did I have for my life after politics?

Asscher persevered and blocked the privatisation. By now, no-one seriously seems to think it’s a good idea to privatise Schiphol anymore. In fact, many parties think the city, in its role as shareholder, should become more involved in the airports policies.

After 2006, the airport continued to appear on the city council agenda. Topics discussed include safety risks, after the Turkish Airlines crash in 2009; health risks caused by ultra-fine particles and the working conditions of cleaners and security staff.

Scooter

The number of snorfietsen (scooters allowed to use the bicycle path) in Amsterdam is growing steadily. Citizens sounded the alarm: in 2008 on air pollution and in 2009 because cyclists no longer felt safe on bicycle paths.

Fjodor Molenaar of GroenLinks adopted the issue. After other approaches yielded little results, he tabled a proposal to ban scooters from bicycle paths in 2012. The debate has since moved to the national parliament, which should allow Amsterdam to introduce scooter-free bicycle paths.

City districts

For some reason, it is deemed necessary to restructure Amsterdam’s administrative system every four years. In 2010, fourteen districts were merged into seven; in 2014, the districts got bestuurscommissies instead of district councils, with limited powers; and this year these will be replaced with stadsdeelcommissies with hardly any powers at all.

By 2015, it became clear that local media were losing interest in district politics. The chart above suggests their relevance is decreasing in the eyes of the city council as well.

Red light district

In 2008, Alderman Lodewijk Asscher launched the Coalitieproject 1012, named after the postcode of the Wallen (red light district). The aim was to get rid of criminal entrepreneurs, if necessary by buying their real estate. Currently, the Accounting Office is carrying out an evaluation of the programme. It appears that the number of prostitution windows has decreased. They have been replaced with bars, restaurants, shops and tourist-oriented businesses.

Information about more recent political developments can be found in this English-language voting advice application for Amsterdam.

  • March 4th 2018 at 09:13

Windchill

By DIRKMJK

On average, a windchill (gevoelstemperatuur) of –15 occurs three times per year in the Netherlands. «One can weather that with extra scarfs and a warm hat.» And if people do freak out, there’s still weatherman Gerrit Hiemstra, who will argue for common sense and warm sweaters.

1. January 2010

Only die-hard homeless people still sleep outdoors. «Last year, a homeless person told our mobile team: ‘Get lost, it’s only minus eightteen’. But now most are indoors. At least they’re somewhat sensible. Especially with the wind freshening, the cold feels disagreeable.»

2. December 2010

It’s the coldest December in over fourty years.

According to satirical website De Speld, anti-swearing group Bond tegen het Vloeken objected against describing the cold with swearwords. The Bond tegen het Vloeken takes a different position. According to a spokesperson, it’s rather cold today.

3. February 2012

At 7 February in the morning, the windchill was exceptionally low. At many places, windchill dropped to –25 degrees at dawn.

Carnival fever has reached high levels, but the mercury stays behind. Building clubs [for carnival floats] are stuck with cans of frozen paint and are working at Siberian cold locations.

In Russia, they’re not impressed with the Dutch minus 15. Minus 36, that’s cold.

4. March 2013

In central Netherlands, March 2013 was the coldest since 1962; in England it was even the coldest March since 1883. The cold air was supplied by an exceptionally strong and persistent current from Siberia.

Weatherman Gerrit Hiemstra sees only one solution: ‘Let’s make this a warm sweater weekend’.

  • March 2nd 2018 at 13:52

The fastest speaker of the Amsterdam City Council

By DIRKMJK

I’ve downloaded the reports of 205 city council meetings (as well as 1,116 council committee meetings) from the website of the City of Amsterdam. They contain over 38 thousand text fragments spoken by council members. Each fragment comes with an indication how long the council member had the floor. From this, it should be possible to calculate how fast council members speak.

The chart below shows the correlation between speech duration and the number of words, for the current city council period (see Method for caveats):

There’s a strong correlation: longer speeches contain more words (rank correlation 0.95), which shouldn’t come as a surprise. The median rate is over 158 words per minute, but this varies per council member. The red dots represent Jan Paternotte, the fastest speaker of the city council (he has since become a member of the national parliament). During this council period, his median rate was over 185 words per minute.

This doesn’t mean he rushes through his text. Here is an example (starting at approximately 59 minutes) where Paternotte speaks at his characteristic rate. For comparison, the speech by Daniel van der Ree (starting at approximately 6:08) is close to the median rate for all council members.

It’s tricky to compare these outcomes with data from other sources, but with that caveat: Paternotte speaks faster than the average news reader at BBC radio, but slightly slower than radio news readers of the French RF or the Italian RAI (not to mention the Spanish RNE).

UPDATE - Valid criticism of the chart title here (in Dutch).

Method (and an update on open council data)

For this analysis, I used the ‘old’ source for city council information. When I had almost finished, a press release announced that council information is now available as open data. Amsterdam participates in the commendable Open Raadsinformatie programme, which aims to make the city council information of over one hundred Dutch municipalities available as open data, in a uniform format. This will make it easier for journalists, researchers, app developers and anyone else who is interested to access and use this data.

Council members in Amsterdam have for quite some time been asking for open city council information. Participation in Open Raadsinformatie was meant to provide for this. However, at this moment only council meeting reports and voting results are available, and only in pdf format. This means that Amsterdam trails cities like Utrecht in terms of transparency.

Open State, an organisation that plays a key role in the Open Raadsinformatie programme, indicated that service provider NotuBiz currently makes agendas and agenda items available as part of a pilot. They are currently evaluating the pilot with the national organisation of municipalities VNG and their customers, and considering adding more data and functionality in the future.

For now, I used the ‘old’ source. Its search functionality is sub-optimal, but in this case I could get around this by scraping the site map.

The amount of text in the reports varies considerably; as of 2015, more text is available than in previous years. Further, the speech rate is higher in more recent years: a median of 158 wpm for the current council period, compared to about 145 wpm before that. I’m not sure how this can be explained, but it appears that minute taking has improved over time. Before 2015, there are frequent examples of meetings for which (almost) no speech has been reported. All in all, it appears that the data for the current council period is the most reliable.

The chart omits a few outliers. Further, I excluded speech of the chairmen of meetings from the analysis; this contains more noise. This script shows how I collected and anlysed the data.

  • February 25th 2018 at 08:27

Embedding tweets in Leaflet popups

By DIRKMJK

I just created a map showing where so-called Biro’s (small cars) are parked on the pavement and annoying people. Twitter has quite a few photos of the phenomenon. In some cases, finding their location took a bit of detective work.

First you’ll need the embed code for the tweet. You can get it manually from the Twitter website, but if you want to automate your workflow, use a url like the one below. It’ll download a bit of json containing the embed code:

https://publish.twitter.com/oembed?url=https://twitter.com/nieuwsamsterdam/status/958761072214896640

When trying to embed the tweets in Leaflet popups, I ran into a few problems:

  • When popups open, the markers didn’t properly move down. As a result, most of the popup would be outside the screen. The problem and how to solve it are described here.
  • Twitter embed code contains a script tag to load a widget. Apparently you can’t execute javascript by adding it directly to the html for the popup content, but you can add it using a selector (cf here).

Here’s the code that’ll solve both problems:

map.on('popupopen', function(e) {
    $.getScript("https://platform.twitter.com/widgets.js");
    var px = map.project(e.popup._latlng); 
    px.y -= e.popup._container.clientHeight;
    map.panTo(map.unproject(px),{animate: true});
});

You may also want to do something about the width of the popups, because otherwise they will obscure most of the map on mobile screens and it will be difficult to close a popup (which you can normally do by clicking outside of the popup). You can change the width of embedded tweets, but this will not change the width of the popup itself. A simple solution is to give popups a maxWidth of 215 (.bindPopup(html, {maxWidth: 215})).

Of course, you could also vary maxWidth depending on screen width, but I think 215px works well on all screens. Further, embedded tweets appear to have a minimum width of about 200px, so if you want popups narrower than 215px you’ll have to figure out a way to fix that.

If you embed tweets, Twitter can track people who visit your webpage. Add <meta name="twitter:dnt" content="on"> to your page and Twitter promises they won’t track your visitors. I wasn’t sure whether this should be put in the web page itself or in the html content of the popups (I opted for both).

If the popups have a somewhat spartan look and do not contain photos: Good for you! You’re probably using something like Firefox with tracking protection enabled. This blocks sites which have been identified as ‘engaging in cross-site tracking of users’ - including, apparently, platform.twitter.com.

  • February 11th 2018 at 11:03

New Year - time to delete your Facebook account?

By DIRKMJK

Around New Year, people turn to Google for advice on how to accomplish their New Year’s resolutions. The chart below (an update of one I created earlier) illustrates this.

Around New Year, there’s is a peak in people googling ‘quit smoking’, but it appears that even more people to try to figure out how to delete their Facebook account. The parallel is not entirely surprising, given claims that platforms like Facebook are designed to be addictive.

Chart updated 1 January 2018

  • December 27th 2017 at 15:59

АмстСрдам, mapped by the Soviet Union

By DIRKMJK

For fifty years, the Soviet Union had an ambitious military programme to map large parts of the world. Two collectors, John Davies and Alexander Kent, have written a great book about the secret maps that resulted from this programme.

Most of the maps in their book are of the US and the UK. Their descriptions are so intriguing that I had to find out whether Amsterdam has also been mapped. It turns out it has: on Ebay, I found a reproduction offered for sale by the Jana Seta Map Shop in Riga.

The map consists of four sheets, each more than a metre wide and 90cm high. The left margin of the fourth sheet contains the following text:

If I’m not mistaken, this text contains the following information: the scale of the map; the name of the city; the reference numbers of the 1:100,000 maps with the location of the city; the sheet number (4/4); the status of the map (SECRET) and the year of publication.

So it appears that the map was published in 1985, but that’s not the whole story. At the bottom of sheet 4, the following text is printed:

Sometimes, this text would contain the names of the people who had created the map (frequently women), but that’s not the case here. I think it says here that the map was compiled in 1972 and updated with material from 1980. By the way, a description of Amsterdam printed next to the map also refers to demographic information from 1981.

To check how recent the material is, I created a map of Amsterdam with buildings from 1980 and 1981 colour-coded. This shows that in those years, most construction took place to the south-east of the city, beyond the Bijlmer neighbourhood. The fragment below shows the area between the Academic Medical Centre and the Gaasperplas (click on the image to open it in a new screen).

For comparison, here’s roughly the same area from the Soviet map.

Generally, buildings from 1980 (orange) and before are shown on the Soviet map, while buildings from 1981 (red) are not. This seems to confirm that the map was updated with material from 1980.

The cartographers who created the maps used satellite images, local maps and other public sources, and sometimes information collected on the ground.

Some maps show new buildings but without the corresponding street names. The explanation may be that cartographers had access to recent satellite images showing the buildings, but no local maps were available yet from which the street names could be taken, Davies and Kent explain.

Something similar may apply to the Bijlmerbajes, a former prison which now houses a refugee centre.

The Bijlmerbajes opened in 1978. The map shows the prison buildings: they are east of the tracks, with a ditch in between. However, there’s no explanatory text: the only text is the name of metro station Spaklerweg. It appears that the cartographers did have access to recent satellite images showing the buildings, but no information about their function.

I don’t know whether any Dutch maps which identify the Bijlmerbajes existed in 1980. The Dutch Land Registry has a handy website with historical maps. It contains a map from 1981 identifying the Bijlmerbajes as gevangenis (prison).

The prettiest parts of the map are the harbours, that have been mapped in great detail. That’s not the case for Schiphol Airport, shown below.

The maps used a uniform colour coding. Simply put, green represented objects of military or strategic interest; purple, public institutions and black, manufacturing. Schiphol-Centrum (to the left) and Schiphol-Oost, with an aircraft repair shop (top right) have been marked as objects of strategic interest. Black blocks refer to the now closed Fokker factory, where military aircraft were produced

It’s striking how ‘empty’ Schiphol is. To some extent this is understandable: asphalt and wasteland make up a large part of any airport. However, it also appears that the cartographers didn’t have all that much information about Schiphol. For example, there used to be a depot for jet fuel (which was still delivered in barges) at Schiphol-Oost. If the cartographers had been aware of this, they would probably have included that information in the map.

Moving on to the harbours, here’s a part of the Western Harbour Area.

The Western Harbour Area contains one of the largest petrol harbours of the world. The green objects suggest the cartographers were rather interested in fuel infrastructure.

And here’s part of the Eastern Harbour Area.

There’s a lot to see here. The green triangle with number 29 represents the naval complex at Kattenburg (it has recently been abandoned by the Navy and will be converted into offices and housing). Interestingly, the square at the bottom of the triangle has also been marked as object of strategic interest. In the past this used to be a Navy warehouse, but it was turned into a Maritime Museum in 1973.

Other green objects include the Oranje-Nassau barracks at the Sarphatistraat (number 30, still in use by the army at the time) and the former location of the Nautical College (number 301).

There’s also a little green block between the Waterlooplein and the Nieuwe Amstelstraat (number 5 to the left of the photo). According to the map index, this is an арсенал or arsenal. In a way, that’s correct: the buildings name is Arsenal. The name refers to the fact that the building has been used to store arms in the past, but since 1946 it houses the Academy of Architecture.

Lovers of detail may want to zoom in to the Czaar Peterstraat. Soviet army maps used to write names phonetically, following the local pronunciation. The fact that this streets name has a Russian origin doesn’t change that: the tsar’s name is spelled Peter (Петер), not Pyotr (Пётр).

And here’s yet another strategic location, near the Museumplein.

Objects in this fragment include the American Consulate (number 166, but in a different building than where you’d expect it to be) and a bus stop where KLM busses to Schiphol Airport used to depart (number 187).

Of interest is number 250, located next to the Zuiderbad indoor swimming pool. The object is green, therefore deemed of strategic interest. The description says Служба безопасности or security service, according to Google Translate. That’s intriguing. Could it be that the map reveals an unknown location of the national security service BVD?

Not quite. This used to be the address of a precursor of the Dutch NIA (now part of TNO), an institute that dealt with workplace health and safety. Its former name was Veiligheidsinstituut or Safety Institute. However, the Dutch word veiligheid can mean both safety and security, which explains how the Soviet cartographers could have mistaken the Veiligheidsinstituut for a security service.

Details about Amsterdam

The Soviet city plans come with a general description of the city. To give an idea of the contents, here are some elements from the description of Amsterdam:

  • Because of dikes, rivers and canals and because of the viscous soil, movement of vehicles outside of the roads is almost impossible.
  • The destruction of hydraulic structures can cause catastrophic flooding of the terrain.
  • Along the roadside there are bicycle paths with a width of up to 2m.
  • All nearby settlements are electrified, provided with telephone communication, and have running water and gas.
  • From the air, Amsterdam is easily recognisable by its large size and its location between the IJsselmeer and the North Sea.
  • On some canals, there are many floating houses.
  • The metro lines have a length of 18 km (3.5 of which are underground) and number 20 stations, including 5 underground ones; the distance between underground stations is 0.8 - 0.9 km, between ground stations - 1.1–1.3 km

In addition, the text contains detailed information about manufacturing, research, administration and other topics.

Method

I once started to learn Russian, but I never progressed much beyond я не говорю по-русски. To decipher Russian texts on the map, I used the Cyrillic keyboard of my iPhone for typing short pieces of text, and I scanned longer ones with the FineScanner app, which offers OCR for Cyrillic (this works as long as the text has a white background, but not with texts printed on the map itself). I used Google Translate to translate the texts. The result may not be perfect, but it appears to work pretty well.

I created the map with construction dates using Qgis and Open Street Maps map data, which contains data from the Land Registry (Kadaster).

I can’t rule out that my interpretation of the map (and the Russian texts on it) contains errors. If you have any comments, please let me know.

John Davies en Alexander J Kent, The Red Atlas: How the Soviet Union Secretly Mapped the World. University of Chicago Press, 2017.

Maps of other Dutch cities and detailed information here.

  • December 11th 2017 at 18:00

Swearing will boost your cycling speed

By DIRKMJK

In an experiment, scientists had people ride an excercise bicycle for 30 seconds. Every three seconds they had to either say a swearword, or say a neutral word. When swearing, participants produced an average power of 429W (peak power 570W), compared to 417W (peak power 545W) for the participants in the control condition.

However, participants in the swearing condition also were more fatigued. It appears that swearing will help you ride a bit faster, but only for a short while.

And 429W, is that a lot? I wouldn’t know, but here are some figures for comparison. According to Cyclist, German sprinter André Greipel can keep up over 1,000W for 30 seconds, while Cyclist’s resident crit racer can do 600W. For what it’s worth; this page has people bragging about producing more than 900W for 30 seconds.

Back to the experiment: with a topic like this, you want to know how the research was done. Especially which swearwords were used, but that’s not reported. Participants were asked for a word they might use when they bang their head accidentally. In the control condition, they were asked for a word they would use to describe a table.

Participants were instructed not to shout, but to use a ‘strong and clear voice’, and to remain seated in the saddle during the entire test. During the test, participants were encouraged by research staff.

You’d expect this to be a fun experiment to take part in, but apparently it wasn’t for everybody. Out of 35 original participants, six dropped out: two were unable to finish the protocol, one was taken ill and three withdrew.

Richard Stephens, David K. Spierer, en Emmanuel Katehis, Effect of swearing on strength and power performance. Psychology of Sport & Exercise 35:111–117. Due for publication March 2018.

  • November 28th 2017 at 20:43

Ice-cream parlours, cheese stores and bicycle rentals

By DIRKMJK

The centre of Amsterdam has 177 businesses targeting tourists and shops selling food and drinks for immediate consumption. Those include at least 23 ice-cream parlours, 24 cheese stores and 31 bicycle rentals, according to a list (pdf) published by the Amsterdam Municipality.

According to the Accounting Office, there were only 8 ice-cream parlours, 9 cheese stores and 13 bicycle rentals in 2008. After a peak in 2015, the number of tourist businesses seems to have declined a little, although it’s also possible that a stricter definition has been used in the latest count.

The list published by the municipality includes not only shops, but also tacky tourist attractions. Or, as the municipality defines them, facilities «targeting the desire of visitors for a (taste) experience, sensation and/or (group) entertainment, in which the possible artistic, historic or educational character is secondary and that are characterised by a for-profit operation». Examples are the Sex Museum, Madame Tussaud, various marihuana museums and BODY WORLDS.

In October, the municipality has decided not to allow any new tourist businesses in the city centre. The city says the quality of the centre as a retail location as well as its liveability are decreasing. Council members Jorrit Nuijens (GroenLinks) and Tiers Bakker (SP) had urged the municipality to take measures.

  • November 19th 2017 at 09:11

Are trade unions important? Depends on who you ask

By DIRKMJK

A majority of Dutch employees think trade unions are important or even very important, Statistics Netherlands (CBS) reported. But there are exceptions. For example, very few general managers think trade unions are important. That shouldn’t really come as a surprise.

I combined the data with a previously published dataset on how satisfied employees in different occupational groups are with their salary. The results are shown below.

There’s a moderately strong correlation. General managers can’t complain about their salary and, as indicated, they could do without trade unions. On the other hand, cleaners are less satisfied with their salary, and they overwhelmingly support trade unions.

More interesting perhaps is the question which groups deviate from the pattern. Nurses appear to have a strong sense of solidarity: they are pretty satisfied with their salary, but they also attach great importance to trade unions.

The opposite applies to personnel officers. Personel officers are less satisfied with their salary than nurses, but that doesn’t translate into support for trade unions. Perhaps they think their job would be easier if workers wouldn’t organise.

Sources: opinion on trade unions xlsx, satisfaction with salary xlsx, number of workers xlsx.

  • November 12th 2017 at 10:54

Left-wing collaboration in Amsterdam

By DIRKMJK

This weekend, PvdA (social-democrats), SP (socialists) and GroenLinks (green party) have announced a left-wing pact. The parties criticize the ‘worthless’ coalition agreement of the new right-wing national government and opt for a city that is sustainable and characterised by solidarity. At the same time, the pact is an indication that the signatories want to form a coalition after the local election in March 2018.

Such a far-reaching form of collaboration is quite remarkable by Amsterdam standards. Have there been signs that such an alliance was in the making? An interesting indicator is collaboration on motions and amendments. Jointly presenting a motion not only requires that you agree on substance, but also that you get along well.

The chart below shows the percentage of motions and amendments that were presented by PvdA, SP and GroenLinks, since the previous election (in order to iron out seasonal effects, the chart shows the 12-month moving average).

The numbers aren’t very large, so we shouldn’t draw too firm conclusions from this. That said, it appears that PvdA, SP and GroenLinks have increased their collaboration. This started around May, not very long after the national election in March.

Have there been similar overtures among right-wing parties? The chart below shows joint initiatives of right-wing VVD and christian-democrat CDA.

It appears that VVD and CDA have also increased their collaboration since the national election. The majority of their joint initiatives are from Werner Toonk (VVD) and Diederik Boomsma (CDA), often dealing with education. If the collaboration depends on the people involved, this doesn’t bode well for the future: Toonk has ended his membership of the city council.

D66 (green and pro-market) is in a bit of a quandary. Nationally, they’re part of the coalition with VVD; CDA and ChristenUnie, and locally they have commited to defend the national coalition agreement. On the other hand, in the Amsterdam council, D66 appears to have somewhat intensified its collaboration with GroenLinks and PvdA.

All in all, it appears that the national election has been a catalyst for changes at the Amsterdam level. Left-wing parties have increased their collaboration, which has now resulted in a quite remarkable pact. Right-wing parties also seem to explore closer collaboration, but it’s too early to say how sustainable this will be.

Examples of left-wing collaboration

The council members most actively involved in PvdA-SP-GroenLinks motions are Jorrit Nuijens (GroenLinks), Dennis Boutkan (PvdA) en Tiers Bakker (SP).

Recent motions dealt with topics including a municipal tax on «hot money» (Bakker, Roosma, Boutkan), transparency regarding the remuneration of board members of organisations that receive subsidies (Boutkan, Groot Wassink, Peters) and a cap on insecure jobs at the municipality (Boutkan, Ernsting, Peters).

Motions and amendments filed until 27 September have been published.

  • October 22nd 2017 at 10:11

How to do fuzzy matching in Python

By DIRKMJK

Statistics Netherlands (CBS) has an interesting dataset containing data at the city, district and neighbourhood levels. However, some names of neighbourhoods have changed, specifically between 2010 and 2011 for Amsterdam. For example, Bijlmer-Centrum D, F en H was renamed Bijlmer-Centrum (D, F, H).

In some of those cases the neighbourhood codes have changed as well, and CBS doesn’t have conversion tables. So this is one of those cases where you need fuzzy string matching.

There’s a good Python library for that job: Fuzzywuzzy. It was developed by SeatGeek, a company that scrapes event data from a variety of websites and needed a way to figure out which titles refer to the same event, even if the names have typos and other inconsistencies.

Fuzzywuzzy will compare two strings and compute a score between 0 and 100 reflecting how similar they are. It can use different methods to calculate that score (e.g. fuzz.ratio(string_1, string_2) or fuzz.partial_ratio(string_1, string_2). Some of those methods are described in this article, which is worth a read.

Alternatively, you can take a string and have Fuzzywuzzy pick the best match(es) from a list of options (e.g., process.extract(string, list_of_strings, limit=3) or process.extractOne(string, list_of_strings)). Here, too, you could specify the method to calculate the score, but you may want to first try the default option (WRatio), which will figure out which method to use. The default option seems to work pretty well.

Here’s the code I used to match the 2010 CBS Amsterdam neighbourhood names to those for 2011:

import pandas as pd
from fuzzywuzzy import process
 
# Prepare data
 
colnames = ['name', 'level', 'code']
 
data_2010 = pd.read_excel('../data/Kerncijfers_wijken_e_131017211256.xlsx', skiprows=4)
data_2010.columns = colnames
data_2010 = data_2010[data_2010.level == 'Buurt']
names_2010 = data_2010['name']
 
data_2011 = pd.read_excel('../data/Kerncijfers_wijken_e_131017211359.xlsx', skiprows=4)
data_2011.columns = colnames
data_2011 = data_2011[data_2011.level == 'Buurt']
names_2011 = data_2011['name']
 
# Actual matching
 
recode = {}
for name in names_10:
    best_match = process.extractOne(name, names_11)
    if best_match[1] < 100:
        print(name, best_match)
    recode[name] = best_match[0]
 

It prints all matches with a score below 100 so you can inspect them in case there are any incorrect matches (with larger datasets this may not be feasible). With the process option I didn’t get any incorrect matches, but with fuzz.partial_ratio, IJplein en Vogelbuurt was matched with Vondelbuurt instead of Ijplein/Vogelbuurt.

PS In case you’re actually going to work with the local CBS data, you should know that Amsterdam’s neighbourhoods (buurten) were reclassified as districts (wijken) in 2016, when a more detailed set of neighbourhoods was introduced. You can translate 2015 neighbourhood codes to 2016 district codes:

def convert_code(x):
    x = 'WK' + x[2:]
    x = x[:6] + x[-2:]
    return x
  • October 15th 2017 at 09:44

Wikinews is a great idea, but is it viable?

By DIRKMJK

I’ve decided to start reposting relevant Dutch-language articles from Wikinews on News from Amsterdam. Wikinews is a sister project of Wikipedia. Its contributors describe themselves as follows:

We are a group of volunteers whose mission is to present reliable, unbiased and relevant news. All our content is released under a free license. By making our content perpetually available for free redistribution and use, we hope to contribute to a global digital commons. Wikinews stories are written from a neutral point of view to ensure fair and unbiased reporting.

It would seem a bit naive to simply claim that your writing is neutral and unbiased. The strength of Wikinews rather lies in providing a place were the merits of a story and its sourcing can be discussed on the basis of arguments. In times of clickbait, hoaxes and fake news, that’s an interesting concept.

Wikinews operates without ads (which matters). Their website may look a bit austere, but since it’s all open source, anyone can resuse the content with a different layout.

For now, Wikinews mainly consists of syntheses of news published by other media, but the site also invites other types of stories such as investigative reporting; (photo) reports and opinion articles. This could also provide room for another goal of Wikinews, which is to cover stories that are underreported in other media.

But is Wikinews viable? The consensus seems to be that it’s not. As Jonathan Dee of the New York Times put it in July 2007: «Wikinews … has sunk into a kind of torpor; lately it generates just 8 to 10 articles a day on a grab bag of topics that happen to capture the interest of its fewer than 26,000 users worldwide …».

That was ten years ago. Since, activity on the English-language version of Wikinews has further declined, as the chart below shows. Meanwhile, there’s a remarkable rise in the number of articles on Dutch-language Wikinews.

Perhaps this is a temporary boost of enthusiasm, that will fade out after a while. Then again, maybe it’ll last and Wikinews will reinvent itself. It’ll be interesting to see how this develops.

  • October 8th 2017 at 11:09

Charts on mobile screens - always tricky

By DIRKMJK

The chart shown here is from Dutch national statistics office CBS and it was created with Highcharts (or at least that name appears a few dozen times in the source code). It shows working people with second jobs and it’s from this page.

There’s a problem with the labels on the x-axis: they have been abbreviated and only show the first digit of the years. This could easily have been avoided by showing fewer labels when the chart is displayed on a narrow screen. In fact, that solution is used in the other graphs in the same article. Apparently, Highcharts doesn’t adjust the number of labels automatically, or it doesn’t do so consistently.

It appears that CBS has chosen Highcharts because it’s an easy way to create charts with added functionality. And some of that functionality seems to make sense: I can imagine people using the option of downloading a PNG to use it in a report or share it on social media.

However, it may not always be a good idea to rely on standard solutions. Here’s another example where the labels have been abbreviated. It’s a bit of a challenge to figure out what they mean.

I know it can be a pain to get charts to work well on different types of screens (let alone network graphs). Apparently, you cannot simply rely on Highcharts to get it right. CBS should probably assign someone to edit each chart individually, making sure they are displayed properly on different screen types.

As for the contents of the charts: here’s why it’s not OK that more and more Dutch workers need to take a second job to make ends meet (in Dutch).

  • September 29th 2017 at 13:51

The network of Dutch firms

By DIRKMJK

One of the ways in which firms are linked is through board members who also sit on the boards of other firms. Researchers use these board interlocks to determine which firms occupy a central position in the corporate network. This «is widely considered as an indication of a powerful or at least advantageous position», Frank Takes and Eelke Heemskerk explain in an interesting paper on the subject.

Two Dutch newspapers, de Volkskrant and NRC Handelsblad, have published visualisations of the Dutch (corporate) elite and their board memberships. You can use the data from those visualisations to create board interlock networks. Below is an example using data from NRC Handelsblad from 2017:

Darker nodes represent organisations with a more central position in the network, as measured by their betweenness centrality. Below is another example, using data from de Volkskrant from 2013:

The most obvious difference is that the second graph contains far more nodes (organisations) and edges (shared board members) than the 2017 chart. But there’s more. The 2017 dataset contains only nodes that have at least two edges - probably the result of a selection criterion used by NRC Handelsblad because of the type of visualisation they wanted to make. Further, the 2013 dataset consists of multiple components: three sets of organisations only share board members with each other; not with the rest of the network.

Given the differences between the datasets, would it still be meaningful to make comparisons between the two? The table below shows the top 10 of organisations with the highest centrality scores, for 2013 and 2017. The comparison is limited to organisations that are included in both datasets.

2013 2017
VNO-NCW VNO-NCW
DNB Ahold
Concertgebouw Concertgebouw
KLM KLM
ABN Amro Schiphol
Aegon NV FrieslandCampina
Concertgebouw Fonds Philips
DSM DNB
Philips Rabobank Groep
Heineken NV Vopak

Organisations like employers’ organisation VNO-NCW, the Concertgebouw concert hall and airline KLM seem to occupy a pretty stable position at the centre of the network. VNO-NCW has a huge non-executive board with representatives from a wide range of industries. The Concertgebouw has been described years ago as the living room of the [Dutch] elite.

Aside from these stable elements, there are substantial differences between the two rankings. The rank correlation is only 0.33 and not statistically significant. This may be due to differences in the way the datasets were created; the small size of the overlap between them (only 34 organisations) and other data quality issues.

On the other hand, some changes in the ranking appear to reflect genuine changes in the position firms occupy. Two examples:

  • One of the fastest risers is Ahold. Ahold merged with Belgian retailer Delhaize in 2016. It would seem plausible that this has strengthened their position in the corporate network.
  • ABN Amro disappeared from the top 10. The bank used to have a board with well-connected members like Gerrit Zalm and Joop Wijn (both have gone through the revolving door between government and the corporate world), Peter Wakkie and Marjan Oudeman (one of the most influential Dutch women according to various rankings). In 2015, chairman Wakkie stepped down over a commotion caused by excessive executive board remunerations (the bank was still state-owned after having been bailed out with public money in 2008). Subsequently, Oudeman, Zalm and Wijn also left the bank, for reasons partly related to its upcoming flotation. It appears the current board has a lower profile.

This type of analyses could benefit enormously from having a larger dataset available. This is yet another reason why the Dutch Company Register should be opened up as open data: this will allow for better understanding of the networks of corporate control.

Method and data

Both de Volkskrant (2013, 2014) and NRC Handelsblad (2017) have published visualisations of the Dutch (corporate) elite and their board memberships. Note that these board memberships not only include companies, but also employers’ organisations, cultural institutions and other types of organisations the collectors of the data deemed relevant for analysing corporate elite networks.

Before comparisons can be made, the names of the organisations need to be cleaned up. Beyond correcting typos and dealing with additions like N.V. (plc) and B.V. (ltd), this involves deciding when to consider units as part of the same organisation. Pragmatically, I decided to treat businesses that are part of the same corporate structure as identical. This may not always be the ideal approach; on the other hand, it’s not always possible to determine what unit a name refers to (e.g. ING could refer to the holding or to one of its subsidiaries). I did treat foundations (e.g. charities linked to a company) as separate from the company.

There are different ways to measure the centrality of a node in a network. Taking my cue from Takes and Heemskerk, I used betweenness centrality, which is based on how often a node is on the shortest path between two other nodes. I calculated centrality for the entire network, that is, before taking a subgraph. I included endpoints to prevent many nodes having a score of zero.

I used the Python library networkx to analyse the graphs (here’s the code and here’s the accompanying text file for cleaning up organisation names). I used d3.js to visualise the network graphs - here’s a description of the problems I ran into and how I dealt with them.

  • September 21st 2017 at 18:57

Dutch rail passengers are observed by cameras in advertising columns

By DIRKMJK

«What are those mini cameras doing in that advertising column!», a Twitter user asked today. In a response, Dutch Railways (NS) said that advertisers use the cameras to assess whether passengers look at advertising and for how long.

A spokesperson of Exterion, the owner of the advertising columns, told Dutch broadcaster NOS that as many as 35 such cameras are already observing passengers at Amsterdam Central Station. Reportedly, the cameras can determine the gender of people and estimate their age. In the future, facial recognition and emotion detection may be added, but that hasn’t been decided yet.

Exterion assures that images will never be stored, but doesn’t make that claim about (personal) data gleaned from the images. They told another broadcaster, RTLZ, the cameras only register «‘ones and zeros’, for example whether someone is male or female, so no sensitive data from a privacy perspective». Such a statement may not be the best way to convince people you take privacy seriously.

A spokesperson of the Dutch Privacy Authority told NOS that they will investigate the matter, but «in general, cameras in public spaces may not be used for advertising purposes». The party leader of the Green Party in Amsterdam, Rutger Groot Wassink, has called for direct action: «Who will join me tomorrow in taping up these bloody things».

UPDATE 11 September 2017 - According to media reports, Exterion has announced it will temporarily turn off the 35 cameras in advertising columns at Amsterdam Central Station, because of «the commotion» they caused. They ascribe the commotion to insufficient communication, which suggests they see nothing wrong in the cameras as such and may turn them back on in the future. Members of Parliament have asked questions about the cameras (SP, D66).

  • September 4th 2017 at 20:58

Scraping LinkedIn profiles could be legal. Is that creepy?

By DIRKMJK

An interesting American court ruling discusses whether the company hiQ Labs may legally scrape public LinkedIn profiles and sell analyses based on that information.

LinkedIn tries to portray this as an attack to its efforts to protect the privacy of its users. Some media seem to buy this line: Having a public profile just got more risky (the Independent); Is your boss checking up on you? Court rules software IS allowed to look for changes to your LinkedIn profile that suggest you’re quitting your job (Daily Mail).

It’s worthwhile to read the actual ruling. Judge Edward M. Chen pretty much trashes LinkedIn’s argument:

LinkedIn’s professed privacy concerns are somewhat undermined by the fact that LinkedIn allows other third-parties to access user data without its members’ knowledge or consent.

LinkedIn specifically refered to users who use the don’t broadcast feature, which prevents the site from notifying other users when these users make profile changes. hiQ could be violating these users’ privacy by informing their employers about profile changes, which may be an indication that they’re looking for another job.

However, hiQ presented marketing materials from LinkedIn suggesting LinkedIn does exactly the same:

Indeed, these materials inform potential customers that when they ‘follow’ another user, «[f]rom now on, when they update their profile or celebrate a work anniversary, you‘ll receive an update on your homepage. And don‘t worry – they don‘t know you‘re following them.»

All in all, LinkedIn has credibility issues when it claims it’s protecting its users’ privacy. Perhaps what hiQ does is creepy, but not more creepy than what LinkedIn is doing itself. (It’s a bit reminiscent of Facebook, which limited access to user data through it’s public API, claiming it was protecting its users’ privacy.)

There’s more to the case than just the privacy issue. For example, can a website owner prohibit the automated retrievel of otherwise public information? Can they sanction specific users for even looking at their website («effectuating the digital equivalence of Medusa»)? And is it ok for LinkedIn to use it’s dominant position in the professional networking market to stifle competition in a different market? It will be interesting to see how this develops.

Via. Ruling downloadable from the Register

  • August 16th 2017 at 22:19

Open company data in the Netherlands

By DIRKMJK

Awkward: according to an Open Corporates ranking, the Netherlands is among the least transparant countries in Europe when it comes to company data. In many countries, the company register has been opened up as open data. Examples include the UK, France, Belgium, Romania, Bulgaria, Finland, Norway and Denmark (according to Open State).

In November 2015, the Dutch Lower House adopted a motion asking if the Dutch Company Register can be opened up. It took a while, but on 17 July this year, the Chamber of Commerce has published two datasets. Open State, an organisation that advocates for government transparency, is not impressed. Is their criticism justified?

The data

Two datasets have been published, and they will be updated on a weekly basis. One contains company data from the Company Register, including city, industry, establishment date, etc. The other contains data from annual accounts. The accounts are in a zip file containing 580,000 xml files.

The data has been anonymised. According to the Chamber of Commerce, this is necessary in order to protect the privacy of entrepreneurs. Incidentally, non-anonimised data is still available at a charge from the Chamber of Commerce.

Research institute TNO has also looked into the matter. It agrees that the privacy of entrepreneurs must be protected, but deems the solution (anonymising all data) unnecessarily drastic.

Anonymising data not only makes it impossible to look up data about individual companies, but also restricts the possibilities for data analysis. For example, it’s not possible to track changes over time at the company level.

The annual accounts

The open data contains only those annual accounts that companies have submitted digitally, in the right format. It contains 185,000 annual accounts for 2016, whereas 255,000 companies have filed their annual account for that year with the Chamber of Commerce (according to the Company Register dataset). Especially the accounts of some of the larger companies appear to be missing. For 2015 and before, even more accounts seem to be missing.

This means, among other things, that it’s not really possible to calculate aggregate amounts for industries. However, the Chamber of Commerce expects that more companies will file their annual account in digital form in the future.

Almost all annual accounts in the open data contain at least a few items from the balance sheet, but other essential data is missing:

  • In almost all cases, the income statement is missing (small companies are not required to file their income statement, but this information is also lacking for larger companies).
  • The number of employees is missing.
  • Over half the annual accounts lack an industry code.

Significant step?

Open State has called the publication of the data a «first small step». Given the limitations of the data, I can see their point.

The Chamber of Commerce quoted Minister Henk Kamp, who spoke of a «significant step». His statement was based on a report by the Chamber of Commerce. The report suggested that it would be possible to aggregate data by number of employees, or to analyse concentration ratios.

I’m afraid that’s not possible with the current data. In fact, one may ask whether it’s at all possible to draw conclusions from this data (I’m not the only one who’s asking that question). Hopefully, this is indeed just a first step towards a truly open company register.

Here’s a Python script that will download and unzip the data and store the annual accounts as a csv. This may take a while.

  • August 6th 2017 at 11:03
❌