7c0h

The problem with music recommendations

There's a popular song, written by an Argentinean musician called Charly García, called "Los Dinosaurios" ("The Dinosaurs"). The song was released in 1983 in the album "Clics Modernos", and you can listen to it in all its vinyl glory here.

This song represents for me an interesting problem: it is by far my favourite song from this author, and I would like to listen to something similar. But so far all recommendation systems have failed me. Here are some of the reasons why.

A first approach could be to pick something from the same author, or even the same album. This approach, sadly, doesn't work: while Charly García is certainly a prolific author, with 41 published records and countless guest appearances, his main style is oriented towards electronic music, and it doesn't really fit the style of this specific song. If anything, this song is more fitting for his earlier albums, which limits us quite a bit - out of those 41 soloist albums, "Clics Modernos" is the second one.

We could instead assume that this song was written in a certain context, and that looking at authors from a similar context we can obtain similar music. Again, this doesn't entirely work: if we pick "Argentinean songs from the 80's", we would end up with a list of songs that fit perfectly the style of the other 8 songs on this album, but not this one specifically^1. Grouping the song into "Latin American music", as some systems do, only exacerbates the problem: there is no relation at all between this song and, say, a Cuban bachata.

If we look at the actual lyrics, the situation gets even worse: "Los dinosaurios" is a thinly veiled critique of the military dictatorship that ruled the country between 1976 and 1983. A lyrics-based systems would most likely fail on two fronts: either it wouldn't understand the references made in the song and label it as "nonsense/fantastical", or it would understand the reference and recommend politically charged songs. Neither approach seems really right - while "The times they are a-Changin" could be a viable candidate for a recommendation, neither "The Revolution will not be televised" nor "Redemption song" fit the bill.

All of these approaches fail for the same reason: they apply a network-oriented measure to a song that doesn't fit the popular rhythm of the time and place in which it was produced, and which doesn't fit the overall style of the author either.

So what exactly am I looking for? A non-technical answer would be "I need a song that contains simple vocals, a piano as it's main instrument, and with raising tension towards the end". Or in the words of the author, a song that "adapts the English sound to Tango". As far as I know, the only system that applied a similarity measure capable of detecting this would be Pandora, but with their system closed to Europe, I cannot tell whether this works or not.

Footnotes

^1 How to obtain a digital archive of Argentinean songs from the early 80's is left as an exercise for the reader.

Related reading:

The Napoleon Dynamite problem.

Voting in Argentina

For the longest time, I thought that elections all over the world were more or less the same. Finding out that this is not the case was surprising, but not as much as what came afterwards: out of all the typical complaints, the Argentinean voting system manages to avoid most common pitfalls. So here's a quick overview.

Technicalities

First of all, and this should be a no-brainer, election day in Argentina is a public holiday, and always takes place on Sunday. The act of voting itself can take somewhere between 5 minutes and an hour, depending on whether you show up during rush hour or not. Voting is mandatory, too, and it always takes place as close to home as possible, so you really have no excuse not to vote.

On election day you show up with your ID to your designated place (usually the nearest school), and you queue at your assigned table. Eventually you present your ID and receive in return an empty envelope. Then you enter the so-called "dark room" alone, and close the door. Inside you'll find piles of ballots with the name and photo of each candidate. You pick one, seal the envelope, put it inside the urn, receive your ID back, and off you go.

Running the voting process is a (paid!) civic duty, and as such anyone over the age of 21 can be chosen. If you are selected, you get a letter informing you of your role (either President, Vice President, or backup), and where and when to receive a free training course. Aside from these voting authorities (three per table), there's an unspecified number of volunteers from political parties. These volunteers' main job is to make sure everything is run fair and square, but the table President can kick them out if they are out of line. Should (s)he need it, the army is always there to lend a hand.

What goes well, what doesn't

What is there to like about this system? A lot. Mandatory voting, public holiday, and short-ish queues ensure that everyone can vote. And while jerk bosses exist everywhere, it's an accepted part of the culture that, on election day, you vote. The system is also simple enough that anyone can understand it.

Large scale fraud is notoriously difficult, and expensive. Voter supression is also reasonably dealt with, as evidenced by the 80% turnover rate. Fun fact: every election, a non-zero number of fugitives end up arrested when they show up to their assigned voting place.

The Achiles heel of this system are the ballots themselves. For starters they can be stolen (and they are), so political parties must print ten times the required number to account for this (and even then, at times they just give up). They can also be replaced by fake ones, so they are thrown away during the vote count for being couterfeits. There's literally no good reason for not implementing a single voting ballot, which is probably why new projects introducing this change are shot down over and over by the ruling parties. At a more general level, the argentinean political system exhibits all known defects from the "first past the poll" system.

In conclusion

I'm really impressed by the vision the founding fathers of Argentina showed in several aspects, and elections is one of them (the other main one being the Constitution). There is no doubt that argentinean politicians are not the best the country has to offer, but that's hardly the voting procedure's fault.

And then again, who hasn't elected a clown for President here and there?

So, what did you say you do?

Tell me if the following sounds familiar:

Oh, hi! It's been such a long time! They told me that you are a researcher now, right? What are you working on?
Me? Oh, well, ...

  • ... I am developing a new carbulator theory that can hiperstat a maximum-entrophy logarithmic equation.
  • ... it's something complicated. Have you ever heard of carbulators? No? Don't worry, no one ever does.
  • ... you don't really want to hear that. It's super boring.

I am guilty of giving all of those answers at some point in my life. And while I am used to people not caring about my work, I'm not happy about it. Of course, I'm a nerd, so "doing boring things that no one cares about" is what I do. And I'm not saying everyone should be pasionate about Dungeons and Dragons^1. But I do think that, when I give a completely useless answer like the ones above, I'm contributing more to the problem than to the solution.

It is a fact that a lot of what we programmers and researchers do is considered boring by lots of people. But think about it, do you think it's boring? If the answer is "no", then I bet you could explain to me what's exciting about your job, why does it matter and/or what are you expecting to achieve. So all we need to do now is to better transmit this excitement to those around us. And yes, by "around us" I mean people who doesn't know what a carbulator is, have never heard the term in their life, and are probably none the worse for it.

I think a good start is my research section, in which I've listed some articles where I give a simple explanation of what I do. Not because I'm expecting my relatives to check my personal homepage, but because writing the articles has made me think really hard about what might be hard to grasp to non-technical readers, and next time I'll have a good script to begin with.

I can't tell you why I feel so strongly about this. Perhaps it's because the last time I was asked this question all I had were links to published papers, and that's unacceptable. Or because the time before that I straight up lied about it. Or maybe because I'm thousands of kilometers away from my family, and yet they don't have a clue about why I think it's worth it. And I have yet to find any downside to making knowledge more accessible.

So, what did you say that you do?

Footnotes

^1 I still can't find a Dungeon Master near me, though. And if you don't know what that is, no, it's not a sex thing. It's an old game...

Experiment report

Hypothesis

People who claim being able to identify brands of cola by taste are usually right

Resources

5 different kinds of cola drinks (Pepsi, Coke, Coke Light, Diet Coke, Freeway), 5 similar cups, sticky paper, pens, even more paper

Description

So this is something that definitely happened, mainly because I think things too much and my girlfriend doesn't know when to stop me. The setup was: we kept all soft drinks at room temperature (to keep the taste unaltered), and then we split up. In step 1, one of us poured a cup of each softdrink into a numbered cup, and then left the room. In step 2, the other one replaced the numbers with different ones (Roman numerals), and mixed the cup order. This is a single blind experiment, which is as scientific as we could get without involving third parties.

Then the tasting began, which we did literally blind to keep any effect from identifying the color of a given softdrink (just in case). The task was to accurately identify which drink is which. Here are our highlights:

  • Soft drinks at room temperature taste awful.
  • Coke light is terrible even when blindfolded.
  • The Coke brands were identified without a hitch, while one of us mixed up Pepsi and Freeway. This points to our hypothesis being right.
  • If you don't think that softdrinks pack enough sugar, try tasting them at room temperature and blindfloded. We had to implement water glasses in between, because after the second cup they all tasted just like pure, unadultered sweetness.
  • It is curiously difficult to find Pepsi in Berlin. Seriously, give it a try.
  • It would be quite easy to fake an experiment to prove that people prefer a certain brand over the other. Just make sure your brand's drink is cold while the other one is not.

Conclusion and Future work

It is quite possible to identify a brand of cola by taste only. In future work we intend to repeat the experiment, but this time rating drinks in order of preference instead, to find out whether we really prefer the soft drink we claim to prefer.
We also found that the claim "people prefer X over Y in blind tastes" ranges from a filthy lie to useless at best. This result might come as a shock to some of our reviewers. We suggest those reviewers to leave their houses more often.

I am an idiot (a Windows Phone development story)

I was warned. I was told this wasn't a good idea. I mean, even the price should have pointed out that something was not what it seemed. But no, I had to go ahead. I had to be cooler than the other guys, and I was certainly going to prove everyone that you can't go wrong with a Nokia phone. So I got myself a Windows Phone 8.1 (again), and today I say to you, that was a stupid choice and I'm stupid for going with it.

I've chronicled in a previous blog^1 how much of a pain it was to try to develop for a Windows Phone (WP). That alone should have kept me away from buying a smartphone with a too-good-to-be-true price. But on I went, tricked by memories of me saying "this is not so bad after all", carefully ignoring that I only said that before I tried to write my own app. And here we are again.

This is, step by step, what my experience trying to develop a very simple app for my (Lumia 530) Windows Phone was like. Yours might vary, of course, but I'm not betting on it.

  1. Install Visual Studio Community 2015 (free), following the Official WP develop guidelines
    Problem: all versions that could work in Windows 7 (the one I have) are deprecated for WP development one way or another: they don't have required tools, cannot be activated because the servers are gone, or just won't work. So get Windows 10 and that comes bundled with itwant it or not, and try again.

  2. Update your Windows and Install Visual Studio Community 2015 (free), following the official WP develop guidelines
    Problem: the installer doesn't actually install the WP tools. Go back to the installer and modify your requirements.

  3. Plug your phone to enable development
    Problem: you need to unlock your phone first.

  4. Sign up to Microsoft's Dev Network to register as a developer to get your phone unlocked
    Problem: you need to pay €14, because reasons.

3.1 (Optional) Sign up on Dreamspark as a student to get a free developer account
Problem: the automatic verification process is broken. You need instead to send a copy of your ID, your student ID, and a transcript of your grades to Microsoft over unencrypted email. But don't worry, this data will be destroyed after they use it. "Anna" promised me so over email.

  1. Start Visual Studio, create your first project, and add a couple text fields
    Problem: bugs! The auto-complete is buggy, running my app once would force me to restart every time, and adding a control on the GUI while the text cursor is in the wrong place can (and will) erase every other control. But hey, at least we are finally developing something.

  2. Add a "select date" field to your project
    Problem: you need the DatePicker control to do this, but it's not included - I guess people don't select dates in phone apps. You have to follow several steps to get it working. However, as there's a library incompatibility somewhere, you'll get stuck anyway.

If you have been following all the steps you'll notice that, after several GiB of downloads and a lot of hours spent on internet forums, I have not yet managed to finish the first screen. I spent three days trying to get things running, which is the time I budgeted for the whole app, I'm out €14, and yet I haven't even managed to add a control that should have been there anyway. I also gave Microsoft quite some money, along with a lot of my personal information.

But the worst part is that I knew this is what development would be like, and yet I insisted on giving it another try. This is why I'm an idiot, and if you think your experience will be any better, it is my opinion that you are deluding yourself too.

Listen to my advice, dear reader: Windows Phone? Not even once.

Footnotes

^1 As of now I haven't restored the backup anywhere, but once I do you should see a link to that post here.