MGS 2018

A month ago, I was at MGS 2018:

What a nice gathering and learning opportunity!

I followed the lambda calculus, category theory and machine learning till the end. The materials were all top-notch.

Most importantly, got to talk about the learning process with fellow students, made new friends, worked on new things. Connecting the dots.

Some unfortunate episodes include getting a cold, spilling water on my laptop (but it caused no damage!), etc.

If there’s another opportunity, I would totally go again: for learning other modules, and the whole experience!

Blogging for about a year

Time flies! It’s been almost a year since I started “blogging”!

It all started with three things coming together: attending a polyglot gathering talks about blogging, encountered this blog (a really good blog/vblog by a CS professor Philip Guo), and actually got an invite to write a blog post for WiMIR (Women in Music Information Retrieval), my first blog post. I must say I mostly kept writing for myself and there are almost no “useful” posts, or posts direct to a certain group of audience (which I should probably do more). But I think I’m generally happy with it so far.

Life has been busy, and there are times when I just wanted to give it a break. But writing is additive. The urge to write comes back from time to time. How amazing there are times when one just want to run away from reading and writing to go out and play, while other time theabsorbing and outputting words on the screen or on the paper just seem to be the “superfood” of life.

I like writing on paper. But it has now become something special. It’s much cheaper, faster, stabler, and easier to use a device to type than to actually write something down on paper. I also had this discussion not long ago with a friend: there’s a big different in track, that is, it’s much more difficult to erase from paper than using “backspace”.

Ok. Now coming back to blogging again. My workflow is more like this: create a a title and write down some materials briefly, attach some photos -> leave it there for a few days, or weeks, or months, with or without ever coming back to it -> post. I like the writing titles part the best. It makes you realise how easy it is to generate ideas and it sometimes prevents the danger of stopping writing completely (well you still have to have the time and the motivations to do it though). And it makes the content better if you ever come back to it, iterations upon iterations, meliora! Algorithmically, one can check and add more leaves of ideas to the tree of the blog theme in this way.
In a more general and irresponsible way: Time always helps produce something interesting, right?

Through the time intervals between blog writing, one can connect with the current-self with the old-self, update your belief and see what changed in your self, what should have changed and what shouldn’t. I’m not very sure if this is in any way meaningful to others, but someone out there might be interested in seeing this? (My future self definitely, I think)

Now I have ~50 drafts on wordpress, mostly because of my slacking around in the summer while the ideas just kept coming. And there are 20 more topics on another list (I started use Wunderlist recently, it turns out to be surprisingly useful in organising myself and time management!). These are probably going to keep this blogging running for a while.

I recently also found out this nice feature of scheduling the posting of written blog posts. So now I don’t have excuses of wrong timing anymore. Will try to post something more regularly.

But for future, I hope I can do the following improvements:

Revise the posts more often.

Writing in different languages.

And maybe start a vlog!

Visa applications

I have applied for lots of visas so far. I’m not sure if I remember them all, but here are the ones which I can remember:

(Turkey): First time aboard, but with a group so I didn’t apply it myself

Swiss: First time aboard by myself, did all the applications almost just by myself

Germany: Second time application to Schengen visa, when I was attending Uni back in China

For my master studies and conferences, I applied to UK, Germany (in the UK), France (in the UK), and Singapore (in France) (+ Indonesia arrival visa)

For further studies (PhD -> Master, it’s complicated…), I applied to US and Canadian visas (in France), but during the summer, I had to apply to the UK and Schengen visas (in the US) again.

Finally, for my studies now in the Netherlands, the Utrecht University helped me with yet another Schengen visa application.

Recently, for recent conferences and personal reasons, I had to apply for the UK visa in the Netherlands yet again. I have to say the UK visa is the most pricy one. In addition, there’s a document (Residence Permit Copy) which is not stated required on the official document requirement list, but they the visa centre asked for it. I heard lots of people even paied 10 euros for copy this piece of paper at hotels which are close to the application centre. I was lucky enough to have a kind hotel host who helped me out without any charges…

And the most recent visa application is the Japanese one (in the Netherlands), much cheaper than the UK one and people are much more friendly at the embassy. Looking forward to the trip in November!

For the ISMIR conference, people around me are applying for a Chinese visa. I can see that they are not very used to this. I wish I could help more, I wish I know how their databases works, but since I was speculating in my application processes and each individual and country has a different situation, I don’t think I could help much concretly. Sorry..


All the bureaucracy. I understand they are necessary. At the same time, many improvements could be done there, but it as long as it doesn’t brake, few initiatives will be made..

Clojure and Overtone

My first time encounter with Clojure is through the Amsterdam Clojure Dojo (but it was in Utrecht, just under the Dom!)

It was a time that I went to lots of tech meet-ups (will be more posts), and I really liked this one. I didn’t know it’s going to be learning through solving a small problem: the maze problem here (love to alice in the wonderland)

It was lucky that, coincidentally, I just revised some tree search algorithms the day before. So I felt like I know the solution, I just needed to learn the syntax.

There were lots of brackets! We had an experience member in the team of three, so it was a nice learning process. The host used a time-management scheme that we could only work for 25 mins and then we had to take our hands off the keyboard for 5 mins. TBH I didn’t like it that much. Time management methods are preventing all the breakthroughs!

But anyway, we managed to solve problem one. And then every team (5 in total) presented their solutions. And the pizza was nice!

And then, second time, I was trying to get the music related clojure package Overtone to work

First I tried it in windows a few weeks ago, but it wasn’t successful after tickering with a few things, so I let it go. Today I went back to it, still no luck in Windows, but this time at least I know from the error message that it’s the problem of the operating system.

Screenshots from Windows:

(First stupid error, forgot to change the project file)


The file looks good now


But java tells you that windows is no good..


Screenshots from Ubuntu (feeling very lucky and cursed by having three operating systems):

Setting up everything from the beginning in Ubuntu (from installing lein):

Screenshot from 2017-08-30 18-52-09Screenshot from 2017-08-30 18-51-52Screenshot from 2017-08-30 18-51-37

Trust me. There was sound.

Also in the AFP summer school last week, I met someone who uses clojure for work, and learnt that clojure Dojos are everywhere, and the inventer of the language is a really cool guy (a musician)!

The Applied Functional Programming summer school @ Utrecht


I attended a great AFP course last week:

What I learnt:

The lectures happened in parallel with my reading of the Graham Haskell book. It definitely went much faster than the speed of my reading, but it gave me more motivations and provided lots of tasters of the more advanced stuff. From my own and others’ experiences that I heard, Haskell needs patience, iterations upon iterations (will get there eventually..). I already feel I can understand more in comparison to when I took the Advanced Functional Programming course in Spring. Especially that I was more daring to read the actual code and tried to think how I would have written it myself.

I found examples in the lectures very helpful. The research way of thinking lies more in little toy examples and snippets. And also it was great to see Haskell being used in the industry on the last day. And there seems to be much more that the langauge could offer (in DS, ML, NN, etc.)

In general, I would say I only understood about 50% of the course, and there are still many questions left with the assignments and the lecture slides. But it’s still great because I got so many pointers from the course as to how I should go further with this, and I’m blessed by my great colleagues to whom I could address my questions!


Website of this year’s summer school:

Website of previous summer schools:

Chat channel: IRC, Slack

(There are pointers to nice books, videos, tools, etc.)

What else we did: 

We also had good catering food for a week. People socialed during coffee breaks, lunch, dinner and lab sessions. Lots of interesting “inside” small talks.

In the future

Some participants asked for answers for the assignments, which could be a double edged sword, but it would be nice to have one. Some others said that it would be nice to have more functional programming elements from other languages than Haskell. And there are always people starting at different levels, so the speed of the course was at the contre of lots of discussions. It seems people have been thinking about this for the next year. And maybe video recordings of the lectures could help, too?

This might be hard, but it would nice to have a MIR summer school at some point, too? 😀

The ISMIR 2017 paper and deadlines

Results: Accept!!!

which means Asia for me in October and maybe November!

Paper title: A comparison and fusion of musical pattern discovery
algorithms (Paper #120) -> Finding the consensus among musical pattern discovery algorithms (after first revision) -> ???

It was a bumpy road towards submission: realising the overall results are not good enough and you have to write an almost completely new paper with new dataset, new algorithms and new results in less than two weeks… It was an intensive working schedule towards the deadline. But I didn’t hate it. I should have know better though…

The happiness of getting accepted is now mixed with the not-so-fun process of revision. This step is mostly small things, but still important: make the figures and text clearer, make the contribution and purpose of the paper more obvious, etc. One pain is to re-generate the figures which need to be improved. Because of all the deadline hassle, I didn’t really comment my code well. To get back to my own thinking  2-3 months ago was amazingly hard!

1 (1)

Finally, I think I’m starting to like writing and reading papers more.  It’s a old way of communication but one can convey and grasp all the info if they really try..

Festivals and Spring Utrecht

June is the month of festivals in the Netherlands it seems!

Although it’s been quite a while, here are some pics from Red Light Jazz festival and Japan market:

There are so many more and each one of them has something unique 😀

Another event recommended by a friend is the Spring Utrecht. It happened even earlier. I was lucky enough to be in one of the rehearsals for one of the shows. It was very interestingly about sound and movement: using your body and movement to create different sound effects in an empty space. I definitely felt the pro-ness from the leader. But I didn’t have the time to more rehearsals and to the shows, unfortunately…

I just discovered that they are actually doing more of it:

Spring in Autumn

Maybe worth a look!

Pattern Recognition Course in Delft

Almost a month ago, I went to this ASCI course to fulfil my “study plan”. It wasn’t very pleasant to get up everyday at 6:30am and take the train to Rotterdam and then bus to Delft, but it was better with my office mates 😛

The course was a good overview of the machine learning and pattern recognition materials I learnt before. Some of them I only learnt on my own and had some loopholes, so it was good to have them solid in this course.  There are new theorems, new concepts and new applications, too, like the impossible theorem for clustering. I now know why some people hate clustering…

One unfortunately thing is that the main package used in the course is in Matlab. I admit it can still be sometimes useful though. I also took the opportunity and learnt Weka. Can be handy, too. The slides and exercises of the course can be found here:

The campus of TUDelft was quite nice. A little resemblance to Utrecht but seems to be bigger. Had a lunch outside Aula on the grass!

TAR, Teaching as research, and education

This draft has been staying here for very long. Although the project is not entirely finished (don’t know if it’s ever going to be entirely finished), I think I’ll just say what I remembered from this experience anyway.

In 2016, I participated in the Teaching as research programme with the Centre for Excellence in Teaching and Learning, University of Rochester. It’s been a nice experience. But due to my early departure, I couldn’t get all the fellowships….But that’s ok.

What’s more important is what I remember from tit:

  1. Getting the IRB protocol approved (to get permission to conduct an experiment with human subjects)
  2. Participating in workshops for teaching and diversity, curriculum design, new methods of teaching, etc.
  3. Actually participating the class and distributing questionnaires

The theme of our project was: whether shorts breaks/pauses are going to improve students’ experience in class

We distributed a short questionnaire (5 questions) in every class. The questions are about their interest level in class, their focus, their enjoyment, and whether they feel good to tackle the homework.

The class was twice every week. So we introduced the short breaks (usualy a comic) in of them and didn’t do any break in another. And the statistics of the questionnaries are shown as below:


The box on the left of each subplot is the one without breaks, and on the right is the one with breaks. We do see the difference is not great. But the medians are a little bit higher. Plus that we had different number of subjects every class, it’s actually very hard to tell…

But it was a good thing that some students left the comment that they liked the comics! (We intentionally didn’t tell the students anything about that this is an experiment)

I also trie to plot some individual plots on the first three lectures. Lecture 2 had the comic while lec 1 and lec 3 didn’t. It’s interesting to see that in lecture 2, there are more people on scale 4 & 5. enjoy

I also find hard for anyone to draw any definite conclusion in an experiment like this though. Also because I was taking the class while doing this experiment, it complicates things a little bit more.

Anyway, it was fun to talk with people about education. In the future, I think there will be more teaching duties for me one day. Hopefully there could be something fun with it!