champagne anarchist | armchair activist

Search Facebook by date

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.

Topics discussed in the Amsterdam city council, 2006-2018

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.

Tags: 

Windchill

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’.

Tags: 

The fastest speaker of the Amsterdam City Council

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.

Embedding tweets in Leaflet popups

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.

Pages