Archive for the ‘Interests’ Category

Why “Intellectual Property” sucks - a recent case

Friday, July 9th, 2010

Cory Doctorow from BoingBoing has recently discussed the case of Landmark Digital Services (Creators of “Shazam”, an audio fingerprinting tool) threatening a guy who was discussing how to implement an audio-fingerprinting algorithm. To make a long story short, Landmark Digital Services (”Shazam”), accused Roy van Rjin of infringing on their patents by discussing how audio-fingerprinting worked, and is trying to force him to put his blog post down. Go read the above links for more detail.

This is not only a jerk move from the part of Shazam, but it is also a very sad example of how companies use the murky idea of “IP” (Intellectual Property) to try and enforce rights that they DO NOT HAVE.

Recently “Intellectual Property” has been used to put together three very different kinds of laws, whose only thing in common is that they deal with ideas: Copyright Law, Patent Law and Trademark Law. Put very simply, Copyright law describes who has the right to copy a creative work; Patent law describes who has the right to implement and use a certain technical idea; and Trademark Law describes who has the right to use a Brand on a certain service or product.

Now, these laws give very different rights and duties, for very different situations. For example, patent law, which is described here, says that if you have a technical idea (like, how to make a machine), you can give the government a very detailed description of how your idea works, and the government will give you a monopoly of the use of your idea in exchange of explaining to everyone how your idea works. It makes sense, if the working of your patent is not public, how will someone know if they are infringing it or not?

Copyright is almost the opposite - you register your copyright work with the government, and you get a monopoly on copying/distributing your work, in exchange of letting everyone copy/distribute your work for free after a certain time has passed. (And big media companies are trying to cheat us and extend this time indefinitely, but that is another discussion).

Now, what happened in the case of Landmark Digital Services/Shazam is that they are trying to enforce “copyright” rights into their patents. “We have a patent on this idea, so you can’t discuss this idea, or show this idea to anyone!”. If they were alleging that copyright rights were infringed, they would have a case, but the whole point of patents is that everyone is supposed to know, discuss and understand how the given patent work. You can only infringe a patent if you are actually using the patented idea, not talking about it.

This is what happen when we put together all these laws under the same term. We start to think of them as the same. And unethical people will try to rob us of our rights by using this confusion.

* Some more discussion about why “Intellectual Property” should not be used can be seen here.

Averaging text files with bash and awk

Friday, March 19th, 2010

Small script that might be useful for analysing data. The script takes multiple files (filemask is $1) which are composed of data columns, and produces the average of each data point across the files. Leaving around for future reference.

Usage: $ average.sh “filename.*” > filename.avg

sum=`ls -l $1 | wc -l`
tf=`ls $1 | tail -n 1`
fld=`tail -n 1 $tf | wc -w`

count=1
while [ $count -lt $(($fld + 1)) ]; do
paste -d” ” $1 | nawk -v s=”$sum”\
-v fld=”$fld” -v f=”$count” ‘{
for(i=0;i< =s-1;i++)
{
ta=f + i*fld
tta=tta+$ta
}
print tta/s
tta=0
}' >> tmp$count
count=$(($count + 1))
done
paste -d” ” tmp*
rm tmp*

Bonus points for anyone who can make the above code simpler.

UPDATE: Thanks Pat for the bugfix. Whups.

Evolutionary Music Composition and CrowdSourcing

Friday, March 5th, 2010

Two days ago I went to this Nomikai (work-related drinking “parties”) with some industry contacts of my lab. While the nomikai itself was not very exciting (I don’t really like this kind of Japanese event, but that’s for another post), I had a nice little neat idea while chatting there.

One of the research topics addressed in my laboratory is the use of Evolutionary Computation to assist in music composition. Basically, a EC algorithm generates multiple small pieces of music, which are evaluated by the human composer, and those evaluation scores are sent back to the computer, which try to generate a new generation of pieces similar to those which received a high score. This particular framework of evolutionary computation is called “Interactive Evolutionary Computation” (IEC) [1], because the fitness function is a human operator, and not a algorithmic function.

A big issue IEC is “user burden”. Evolutionary computation is based on scoring multiple candidate solutions, many times - when this evaluation is done by a human, instead of a computer program, the user may get tired after scoring too many individuals. To avoid that, it is important to either use the least amount of evaluations as possible, or make the evaluation as quick and painless to the user as possible - a lot of research has been done in both areas.

Now, the idea - how about using the concept of crowd sourcing to IEC? Instead of having one user evaluating the songs, we would have multiple users evaluating them in a asynchronous manner. The example we thought up would be a website where, say, mobile ring tones are generated by EC, with downloads and user evaluation being used as scores. Every few days(?), these values would be used to generate new tones, which would replace the old ones. This could not only generate more interesting tones, but also be able to “track” or “follow” fashions or memes of users.

A quick google search on the above keywords seemed to reveal that this is still a new idea (nothing relevant shows up on the first page for “crowd-sourcing IEC” and “crowd-sourcing composition” only show non-EC approaches [2]). Try it while it is fresh. Brainstorming in the comments is welcome :-)

Links
[1] IEC on Wikipedia
[2] Crowdsourcing Composition

Genetic Computing - and more info on the PhD

Friday, December 11th, 2009

Today in the University meeting my professor told me that my pre-thesis defense will consist of an one hour presentation, followed by an one hour Q&A session. Since my Master Thesis presentation 2 years ago here in Tokyo university was a paltry 20 minutes, I was both relieved and a bit apprehensive. I was thinking that maybe one hour was a bit too much (I was expecting more like 40 minutes), but talking to Y I realized that among the three techniques and two problem I will have to explain and discuss at length, one hour might even be too little. Anyway, I’m breathing a little easier now that I know exactly how much time I have available - now I just need to do the work. I just wished they would give me the damn deadline already so I could prepare my schedule better.

Also, In today’s meeting we had visitors from another laboratory which presented to us their research on DNA computing. DNA computing is a sort of wet computing where you use the chemical reactions between DNA strands as the processing units. They were explaining their work in developing an AND gate with DNA. To be honest, I was not very impressed. I had heard before of wet computing before (maybe chemical computing?), and in my mind the state of art in this was a bit more evolved. But in their presentation, one AND operation would take more than one hour to complete, and they would need to do the experiment from scratch to change the data inputs. I wasn’t very convinced (although the rain might have made me grumpier than usual). Either you try to emulate electro-mechanical computing, but do it faster, or you get some new operators to do different stuff (like quantum computing). Could someone enlighten me about what I’m missing here?

In other news, RPG game tomorrow, and I got a pretty neat series of encounters for my players. Report coming from Sunday on :-)

ETD Day 2 - A simple solution, elegant and wrong

Tuesday, November 24th, 2009

They say that for every problem there is a solution which is simple, elegant, and wrong. I found mine today while working on ETD, and I also find the correct solution (which is also elegant, although a bit less simple).

One of the rules of the “Tower Defense” games is that you cannot completely lock the path that the enemies take from the entrance to the exit of your maze. This path may be as long as it takes, but it must exist. In my implementation, I’m writing in each cell of the path the cost to go to the exit, so that each enemy does not need to calculate their exit paths all the time. Then I have to have a “locking detection” routine that detects if placing an aditional tower in a given location will lock down the maze or not, to prevent that tower from being put.

My first idea was to see what are the distance values of the cells the new tower is going to occupy. If those values were not repeated anywhere else in the maze, that means that that path is a bottleneck, and cannot be blocked. Thinking this solution for a bit while showed that it was wrong (exercise to the reader :-P). The new solution is thus: The entrance and the exit of the maze bissect the surrounding walls into two groups. I give each of this group a flag, and I check each tower when it is put down to see if it connects to one of the groups. If it does, I give it the same flag as the group. If a tower connects BOTH groups, then it means that it blocks the path from the entrance to the exit. I only have to deal with the special case of “island” towers, by giving them a third, “neutral”, group flag, which is painted 1 or 2 when one of the groups reaches the island.

I have not finished implementing the above, but I have implemented most everything else that I needed from the map. I did not have as much time to program today as I had yesterday because I used the bright sunny day to walk around a little bit, clean my home (including washing the dreaded bath), and meeting my friend Dionisio. All in all, I had about 4 hours to hack away at ETD today, and I think I managed quite a bit in this time. Tomorrow I’ll finish implementing the maps, then a bit of tower logic, then link the genome with the tower and the map :-) I hope!

  • Categories

  • Archives

  • Meta


  • "The secret of happiness is total disregard of everybody."
    Fortune file