Big Data Weekend at Breda Photo

Saturday 15th of September was the big data weekend at the BredaPhoto Festival organized by Wave of Tomorrow. Marloeke van der VlugtTim van Elferen and myself created a mix between a lecture about big data and ownership of our data and a demonstration of collecting data in the physical world.

Tim and Marloeke designed a ‘publiekssysteem’, a system that is supposed to measure audience response. This system measures how far people sit forward or lean backward in their chair. While we have no data to make any claims about what this indicates, intuition tells us that the way people sit may tell us something about how they experience the performance. 

So I gave my presentation, giving people examples of how online behavior is measured, analyzed and used to influence the online world we perceive. I highlighted a number of risks and benefits, the amount of control we have, and the (sometimes unforeseeable) consequences of leaving behind digital traces. All the while our audience members’ position in the chairs was measured.

After this somewhat theoretic lecture, we showed our audience the data that we measured. First on an aggregate scale, to see how the audience reacted as a whole. Then towards the individual (but anonymous) chairs, to see if there were any topics that caused different reactions across audience members. And finally, by linking the individual chairs to the individual audience members. People made various interpretations of why the data showed what it showed.

Two graphs describing how our audience was positioned in the chairs. The average position on top and ten individual chairs (the individual lines in the lower graph) were measured in terms of how far forward (higher) or far back (lower) they sat. The topics in the presentation are represented by the different shadings.

People in general are prone to making inferences from data, and draw conclusions that may not be warranted. In WW2 people thought they could conclude that German bomber pilots were avoiding civilian targets based on where the bombs landed, even though statistically the bombings were random (Clarke, 1946).

The data itself did not serve a purpose other than making people aware of the digital traces they leave behind and what insights they bring and (maybe more importantly) cannot bring. In the current days people have a very dystopian view when confronted with big data, AI, data mining etc. But in the end I trly believe we have a fair amount of control to how our digital traces affect our lives, both before the fact (our decisions to share or to not share our data) as well as after the fact (thanks to rules and regulations).

Essential Tools for Young Faculty

I have been an assistant professor for about 6 weeks now, and it has been quite hectic. I have spent a lot of time meeting new people, deciding on which research lines to start, finishing some unfinished business from my PhD project, getting acquainted with the way students are taught and supervised, joining research projects, etc. Basically, designing my new job. It’s not over yet, but I feel like right now I am in control of what is happening.

My job consists right now of four main parts:

  1. Education (this year I will teach two master level courses and supervise a number of students in programs of University Maastricht‘s department of Marketing and Supply Chain Management),
  2. Post-Graduate Education (I will be involved in teaching data science courses for professionals in various BISS programs)
  3. Fundamental Research (the research I do independently, with or without my academic connections)
  4. Applied Research (the research I do as part of BISS, in collaboration with external/commercial parties, currently Q-Park, APG and Politie Nederland)

So there are already 4 main categories of activities, and within each category there are multiple projects. For example, for my fundamental research I am continuing my research on music listening experiences on the Spotify platform, I am investigating if I can build a research platform on the bol.com API to study online consumer behavior and I am working on a number of papers. But the same applies for the different categories…

Right now I do have a sense of control of what is happening. It took me a while achieve this, and most of it is thanks to a number of software tools/apps that I use that really help me with my time allocation. These are: Todoist, TimeCamp, OneNote and (not essential but really valuable) Headspace. The two first apps really give me a lot of insight on how to allocate time and how I spend my time, the third allows me to keep notes and the last one is there just to deal with the madness and chaos. 

Timecamp

Screenshot ImageI felt getting a grip on where my time went was essential in order to see if I was working effectively. I have used several types of time logging in the past (back when I worked as a consultant and had to my weekly timesheet registration) and none have really worked for me. Timecamp appears to have a nice mix of freedom in defining your project structures and ways of logging hours. I copied the project structure described above in there. On the first level I have teaching, executive education, fundamental research and applied research. On a lower level I have my different courses, the different applied research projects, my research lines etcetera. And then within each of those levels I add another level where necessary, for example I split up my master theses project per student, and then per student I add the projects “meetings”, “reading and feedback”, “defense and grading”. 

The logging itself is great. You have full freedom on how to log. You can use the web application, the Android app or a Windows desktop app. And all of them are nice. Time logging is similar in each app, but reporting is the most extensive in the online app. 

For me it’s not essential to see what point of the day I worked on what task, so I changed the Timecamp defaults to just add the hours to each activity. Now both the Android and Windows apps and the web app just show me what task I am currently working on and how much time I spent on that task, instead of a whole detailed time log.

Now the Timecamp windows app allows for automatic logging as well. If you configure the app properly, by defining what apps and keywords correspond to what tasks, the app can find out what you are working on. I have not used this functionality, but I will at some point… But to be honest I’m sceptical towards this functionality, as I don’t switch activities often enough to warrant setting up this automatic activity detection. 

The reporting in Timecamp is amazing. I get an overview of weekly activities, that I can specify myself. So I can really go nuts on hours logged per main category, or per project, or within categories, I can see trend lines. I can specify at what level I want my breakdowns, I can get a report over a full week, with hours specified for the different levels… It’s amazing! 

But not everything is great. One major nuisance I have with timecamp is that the logging is not synced. What I mean by that is that if I start logging a task on my laptop, but move away from it without pausing the task, if I then start logging a different activity on my phone, there is double logging. The computer logs hours on one activity, the phone on another. It would be nice if Timecamp automatically paused the logging on my computer, but I guess that this is a bit of an edge case for this app.

All in all Timecamp gives me a nice overview of how much time I spent on what task. While this really helps me in getting an idea of how much time I spend on what, I also need to have a way to plan what I’ll be working on when. For that I rely on Todoist. 

Todoist

Screenshot ImageTodoist is basically an online task list. The cool part about Todoist is that it allows you to create nested projects, and define your tasks in these projects. Like any todo list you can assign tasks and deadlines. Not like any todo lists, you can define projects and subprojects. 

I defined the same structure I use in Timecamp, and whenever I have tasks to do I add them in their respective folder. Todoist gives you a nice overview of tasks to finish today, tomorrow or in a week. It allows you to check per project what the tasks are. 

Now adding tasks to Todoist I do in one of three ways. When I receive an email that I should follow up on (e.g. an invitation to review), I use the Todoist plugin for Outlook to create a task from the email. All I have to do is add the deadline and the project it belongs to, and the task is added. The cool part is that it shows up in my todoist apps with a link to the email, that sadly only works on the web app and the outlook plugin. 

Another way I add tasks is by using OneNote. When I take notes during a meeting, I immediately add a small task list. In this task list I add the deadline and the project it belongs to with a and when I copypaste this list to Todoist it automatically creates the tasks (see the video below). 

So Timecamp allows me to see what I spend time on, Todoist allows me to prioritize what I work on, all that is left is finding a place to write down ideas and content. For this I use OneNote. 

Why I don’t link Todoist and TimeCamp

Timecamp provides functionality to link with Todoist. I have tried this, I didn’t like it and I don’t use it. While in principle it is very cool, the problem I ran into is that all Todoist projects get added under a new Todoist folder in Timecamp. In my case this results in duplicate projects. I guess you could create all your projects in Todoist and then use those to log your hours in Timecamp, but I haven’t gotten around to doing that. In addition, using this integration requires a paid version of Timecamp, which is $7-$10 per month. The thing also is that a large part of the work I do is not on my todo-list. Teaching, for example, is something recurring, without a deadline. I thus do not have a task for it in Todoist and I would like to book that time on  projects defined in Timecamp. So I figured that just manually maintaining project structures in both tools is a good solution for now. 

Screenshot ImageOneNote

OneNote has been around for many years and it does the trick. In the past I have used Evernote, that I also liked. But I feel OneNote is a bit more flexible and usable, plus it comes preinstalled on my work laptops and has a nice app for Android. For Onenote I use the same structure as I defined in Timecamp and Todoist and that is basically that.  

Headspace

Screenshot ImageNow Headspace is a bit of an outlier in this set, since it is not contributing to my productivity directly. Headspace’s tagline is “Meditation made simple – Brilliant things happen in calm minds”, and it does just that. It is an app that has several series of meditation exercises to help you get more mindful. If you do one session every day, you should become more focussed, more effective, more compassionate, less stressed, less aggressive and it is said to have a number of other benefits.  I haven’t found the time yet to get a longer streak than three days, so I can’t say much about the longer term effects. But I do notice that when I do a session in the morning, in general I feel more productive. I’m not sure whether that is a placebo effect, but if it works it works!

Next steps

Right now I work quite independently and all projects are really small scale. I supervise one master student and I have two research lines with Bruce Ferwerda and Martijn Willemsen. But I guess that at some point my research here will take off and I will need something for collaboration and project management. I am not sure what good platforms for this are, but for now I’m looking at Trello. I have no idea what options there are, and if there is one be-all and end-all solution for what I need, so suggestions there are very welcome.

With regards to collaborative research I have started using Overleaf for writing. I think it might be a nice next step to work with shared R or Python notebooks, to do data analysis as a collaboration. 

Graduation Eelco Wiechert

Today Eelco Wiechert presented and defended his master thesis on the occurrence of the peak-end effect in music playlist experience, supervised by Martijn Willemsen and myself. Psychological literature tells us that when evaluating an experience, all individual episodes that make up the experience have equal weights. When people evaluate an experience, they mainly consider the most intense episode (peak) and the last episode (end). Thus when we do our objective playlist evaluation, we should take this into account. 

Eelco designed a very extensive study in the form of a Flask application running on Heroku building on Spotify‘s API that allowed participants to listen to personalized playlists that he manipulated to contain an extreme peak and end, or a smaller peak and end. The peaks and ends were done based on the valence and energy audio features provided by Spotify and in order to investigate the research question he asked users to rate all individual songs in the playlist and the playlist as a whole. 

The basics of what he found was that the values of the most intense song and the last song indeed explain additional variance in the playlist evaluation over considering the average value of the individual songs. And there are (naturally) several smaller, interesting findings that can guide us in our future research.

If you’re interested in reading his work, I will add the link here as soon as it is available. 

Mobile Innovation & Marketing

I was asked to join the panel responsible for judging the final presentations in our departments course ‘Mobile Innovation & Marketing’. 12 teams of students pitched ideas for new apps that add value to the customers of businesses in and around Maastricht. People came up with all kind of apps, to help people in gyms, apps to help find a new home for dogs in animal shelters, scooter-sharing, shopping in the supermarket and many others.

And in addition I got to sit in our school’s gorgeous aula, where I’ll be teaching myself from September. Very nice experience!

First Day of Work

Today I started working at the Marketing and Supply Chain Management in the School of Business and Economics in Maastricht University and at the Business Innovation and Smart Services (BISS) Institute in Brightlands Campus, Heerlen.

Graduation

Today I graduated after defending my thesis in front of Joe Konstan, Jürgen Ziegler, Paul de Bra, Maurits Kaptein, and my team of supervisors Martijn Willemsen, Chris Snijders and Mykola Pechenizkiy.

The research in this thesis focused on personalization, and mainly how to bridge the gap between the psychological understanding of systems’ users and the methodological challenges of building systems that personalize.

IUI 2018

I spent a week in Tokyo, where I attended the Intelligent User Interfaces (IUI) conference. I co-organized the HUMANIZE, a workshop aimed at incorporating psychological theory in personalized interfaces. If you are interested in this idea, please have a look at the workshop proceedings. And apart from meeting people and learning new thing, I also got to see a bit of Tokyo during the evenings.

The End of Internet Radio Stations?

ClouwdNine

For those of you that don’t know together with some other heads I run things for clouwdnine.com. Our website was recently attacked, presumably because of the availability of Low Orbit Ion Cannon or similar simple tools for ddos-attacks. While the attack in itself is not that much of an issue, and can be mitigated, the consequences for us and maybe radio stations as a whole is a bit upsetting.

ClouwdNine is like several other radio stations, managed by a small team of people who are mainly making sure that there is infrastructure, DJs streaming and some communication on social media. In my opinion we are doing a good job, steadily growing our following, organizing sound clashes (both internal and against FKOF), and hosting some bigger names DJs (looking at you Fill Spectre). We even had a small introduction to promoting with a night in Dalston.

All of this is mainly costing us manpower, making sure everything runs the way it should. When it comes to our other resources, we run very basic and cheap servers, which is also our main vulnerability. Just one icecast server can be taken down easily and all of a sudden we are not functioning anymore.

What are our alternatives?

In order to really be safe from these types of attacks you need the resources of social streaming service like a mixlr or chew.tv. The thing is, we don’t want to move to social streaming. We are not a bunch of individuals, we are a collective that has a common goal of sharing our view on music with those who want to know. The radio station is our means to that end. And now it shows that our means are rather vulnerable to attacks.

We did find a way to increase our robustness. We moved to several smaller, cheaper servers. We moved our webspace to a host that offers ddos-protection. And most importantly, subsource magazine is helping us out with streaming through a more protected icecast server, for which we are very grateful. However, getting all of this up and running has spread us out rather thin. We’re still in the process of finetuning all of our systems and trying to get grip on how our new software deals with the software our DJs use to connect to us. But if all goes well we should be up and running again in the coming few days.

All in the same boat…

The painful thing is that we are not the only station under attack. As a sub.fm regular listener I found out that they were having some issues as well. We received accusations from another radio station of attacking them. Rumor has it that even the big rinse.fm got attacked. And to be honest, it’s a sad thing, if radio stations have to struggle to stay alive. While I do believe that social streaming is a nice way forward, especially for the individuals, there is value in a curated radio station. Internet radio stations provide new, less popular DJs to band together and get some exposure together. And if a radio station does have bigger name DJs, the less popular DJs benefit from this tremendously. All the while the listener benefits from curated, quality controlled content.

What I would love to see is more collaboration between radio stations. Everyone is dealing with the same challenges, trying to combine a streaming service, some social media scripts, a web frontend and some chat functionality. There’s a lot of reinventing the wheel. The thing is, it doesn’t have to be that hard. Even though there’s a lot of different building blocks, once you have some servers, it’s a matter of installing and configuring a small number of software programs and you’re good to go. So in that light over the coming weeks I will be sharing all scripts we use (liquidsoap, python, php and custom javascript) in a public github for anyone that feels like having a look at how we’re running things under the bonnet. And of course I would love to get some input on how others are running their things.

Use metadata from input.harbor to populate now-playing in output.icecast

Since we moved servers for clouwdnine.com, I had some troubles with getting the “Now Playing” text right. Before, this was always populated with the Description or Name our DJs would enter in BUTT. This allowed us to inform visitors of the website to see who was playing, which we liked…

Sadly, I couldn’t find how to fix this, but after way too much time I managed to do this. Just storing it here for people who would like this.


meta = ref []

def update_title(m) =
  me = !meta
# log(json_of(m))
# log(json_of(me))
  if me["title"] != "" then
    title = me["title"]
    [("title","#{title} - LIVE")]
  else
    title = m["title"]
    [("title","#{title} - archive")]
  end
end

def djdisconnects() =
  meta := []
end

def djconnects(h) =
#  log(json_of(h))
  meta := [("title",h["ice-description"])]
end

live = input.harbor("/",port=8000,password="XXXX",icy=true,on_connect=djconnects, on_disconnect=djdisconnects)

radio = map_metadata(update_title,radio)