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. 

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.

RecSys 2012

Tomorrow I leave for Dublin to attend RecSys2012. Together with Dirk Bollen and Martijn Willemsen I performed a study on how memory effects influence the ratings people will give. The main finding is that as time passes between watching and rating, people tend to give less extreme ratings. Presumably this is because people forget the details on how or why they liked or disliked the movie.

Using our psychological background we were able to predict that submitted ratings would change over time. The next step is researching these effects more in-depth and using it to better model user preferences. The poster that I will be presenting is below. A link to the proceedings will be added when they are published.

MyMediaLite + ServiceStack

The first milestone in my PhD project is nearly reached. For the continuation of my research it is necessary to have a recommender system that I can easily manipulate for research.

Since I have already been using the full MyMedia, this would be maybe the easiest way. However, the entire framework that was delivered by this project is somewhat of an overkill for my needs. This project however was forked into MyMediaLite, a lightweight version of the framework which mainly consists of the different recommendation engines.

The drawback of MyMediaLite however is that it is not readily usable as a web service. Enter ServiceStack… This library allows for easy deployment of a .NET application as a web service.

The combination resulted in a .NET application that can be deployed on a web server. Right now the only methods provided are the submitting of ratings and receiving recommendations, both as REST interfaces. Recommendations are returned as JSON object. To do this a number of things had to be changed, because of the lack of thread safety in MyMediaLite. The main change is that ratings are stored in a queue that is processed periodically. Without this addition the data was not consistent, as there is some mapping going on from external ID’s (used in the http requests) and internal ID’s (used in the recommender engine).

Yesterday and today I have been stresstesting the application through Blitz.io and the numbers are quite surprising. The report shows that apparently the application can take 250hits/s easily.

It does have some startup issues, so going from 0 to 250 hits instantaneously causes timeouts. Sadly I cannot try any higher loads with my Blitz account.

Response Time by Concurrent Users

So for now the idea is creating a user interface around this application, such that research can continue. We will probably still be using the 10M dataset of GroupLens, as we have done most of our research on this dataset. But with full control of the application it is also time to think of new ideas like visualizing preferences and/or movies, similar to what I have done in my thesis. Time will tell what way to go…

TU/e VPN profiles

I am again a little annoyed by the TU/e helpdesk, for not having VPN profiles ready to download for those that already have a VPN client installed. The only option you normally have is downloading a Cisco client that comes with the profiles. So I took the liberty to extract the profiles from this auto-extractor to upload the .pcf files to import in your VPN client.

Feel free to make use of it if you want to.

Download: TUeVPN

Graduation

First page of thesis
So I finally graduated. My thesis took around 13 months to complete, but was graded with an 8.5/10, which is high enough to forget about how long it took.
The thesis is available from the TU/e library website. It discusses the study I performed on the similarities between an algorithm called matrix factorization that predicts ratings for movies, based on ratings that users have given in the past, and psychological ways to describe preferences. To make this comparison I deployed an online study to investigate how people perceive similarities in movies.

(1/2) Paper

I just received my grade for the first of two papers I have to write before receiving my Master’s degree. It’s good and I enjoyed the research, so why not post it online?

The study is a wee bit too small to be submitted to a conference paper, but too large to be completely forgotten, so I’m posting it online. The study tried to study the occurrence of choice overload in a movie recommender system and whether or not diversifying the set of recommendations alleviates choice overload. The results were not really conclusive, but good enough to base a second study on. And enough questions rose to base a master thesis research on. So go ahead and read it if you want to.

Paper

CS4243 – Digital Image Stabilization

CS4243 – Digital Image Stabilization

During my stay at NUS I followed a course on Computer Vision by Terence Sim. The course was partly a project that I did with Florian Kock and Samuel Martin. Our self-assigned subject was an image stabilization algorithm.
This page shows you the result of our algorithm and the slides of the final presentation. The slides can be seen by clicking on the image to the right.

Below is a result video of our algorithm. The algorithm is based on removing the high-frequency movements found in video. In order to do so, three steps had to be taken.

Step 1: Finding the movement
In order to find the movement, we calculated the difference in position, rotation and zooming of every two succeeding frames. This was done by finding corresponding points in every two frames, selecting the best ones and calculating the homography.
Finding corresponding points was done with the Shi-Tomasi algorithm to find valuable features to track and the pyramidical Lucas-Kanade optical flow calculation.
Because the result was still pretty noisy, we iterated the calculation of the homography, removing the points that had a too large error at every step.

img1Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9

Slide 10Step 2: Averaging the movement
For every frame a moving average was taken in order to remove the high-frequency movement. Because of the use of homographies, this was not as straightforward.
This lead to homographies that, once applied to the original frames, correct the movement by removing the unwanted movement, but keeping the intended movement.

Step 3: Compensating for the movement
In the last and final step, all the frames were transformed according to the calculated homographies. An extra step is taken by cropping the image so that the image is filled entirely in every frame.

The result
The result is shown below. The first frame is the uncorrected movement. In the middle frame the frames are corrected, it shows that every frame can be rotated, shifted and enlarged in order to compensate for the shaking. The last frame is the final result where a number of pixels are taken from the sides and top and bottom.

Slide 11
Slide 12
Slide 13
Slide 14
Slide 15
Slide 16
Slide 17
Slide 18
Slide 19
Stabilized Video

the end of CHI

Wow, this has been a crazy week. So much information to process, people to meet, pictures to take.

Lectures and courses
I’ve been following so many lectures on so many papers. It’s been crazy. Subjects ranged from “A comparison between Heuristics Evalutation Methods” to “User Research using Mechanical Turk”. I’ve been trying to attend to a lot of usability lectures, some of which were really interesting and some of which were plain bad. It was nice to see the difference between academic work and corporate work.
On the general however, it’s just like school. A lot of people sitting and listening to a lecture. Some people taking notes on paper, some taking notes on their macbook pros and some just taking pictures of the projected slides. Continue reading “the end of CHI”