Aug 01

I’m officially rebooting this blog ;-) New theme, new wordpress and new content… hopefully.

Feb 03

I’m currently working on a big rewrite of the algorithms behind Jamendo’s “Similar albums”. The new algorithm will focus only on tags because there will be both “Similar albums” and “Related albums” (where I’ll put recommended stuff). I was really slow this morning while thinking about it so I decided to blog the whole process in real time ;-)

Let’s begin! The problem is, we have a list of weighted tags for each album and we want to compute for each album the list of album that have the most similar tags list.

Here is a sample tag/weight list for the Manu Cornet album :

jazz 19.8494
latino 18.4662
bossa 16.4924
contrebasse 16.4924
sensible 16.4924
world 16
basse 15.6844
hamonica 15.6844
batterie 15.6844
tamtam 15.6844
improvisation 15.6844
piano 8.48528
easylistening 7.34847
ambient 6.63325

Let’s call this base album “A1″ and the similar albums we’re looking for “A2″. We can consider that “20″ is the maximum tag weight.

A quick list of requirements for the algorithm :

  • Shouldn’t be symmetric
  • Should penalize A2s if they lack one or more of the most important tags of A1
  • Should be quite fast, even if we’re not going to run it on the fly (everything will be computed once a day)

Martin told me yesterday about the nice app “Grapher” which is bundled with OS X. I’m going to use it to write the formula.

My first idea was, for each tag of A1, to compute a number Z between -1 and 1 and add them all. Let (x,y) be the weight of the tag in A1 and A2 respectively. The most obvious algorithm would be :


z=20-ABS(x-y)

The axis on the left is Y, on the right it’s X and the elevation is of course Z.
The window is (0,20),(0,20),(-20,20)

Easy improvement : multiply by x/20


z=(20-ABS(x-y))*x/20

Quite good but there is a problem over the X axis. If y=0, z should always be < 0. Another easy solution : add min(0,y-x)


z=(20-ABS(x-y))*x/20+min(0,y-x)

New problem : x=20, y=10. In these conditions z shouldn’t be nul. Let’s multiply min(0,y-x) by (1-y/20).

z=(20-ABS(x-y))*x/20+min(0,y-x)*(1-y/20)

Better, but not good enough yet. (1-y/20)^4 ?

z=(20-ABS(x-y))*x/20+min(0,y-x)*(1-y/20)^4

Well, it looks quite good to me! Maybe we could tweak some curves a bit but let’s go for this one for now.

Here are the results for the Manu Cornet album :

id weight_sum
2336 89.7347740595245
608 84.9463957742962
2013 79.2737167470594
2239 78.7533019317343
1968 78.3494367998522
3552 78.2419321761695
2626 77.4643574361218
868 76.3107863971299

(query took 1.2 seconds)

I am not so happy with the results. Maybe there need to be another negative zone for tags that are in A2 but not in A1 after all.

Let’s reduce the window size to (0,1),(0,1),(-1,1) and take those “20″ factors out. Now much easier, here is what I’ve come up :

z=SQRT(x*y)+MIN(0,(y-x)^3)+0.5*MIN(0,(x-y)^3))

Looks good too but let’s compare the results :

id weight_sum
608 4.49465968951514
2336 4.32499417058527
2013 3.74828022088347
3552 3.49127205825584
2626 3.44471851383391
2407 3.35824086666307
2239 3.3511421181151
1968 3.27891762132192
868 3.18629627915296
1013 3.18123969513814
1741 3.11171873935927

(query took 1.2 seconds)

Quite funny that both queries take the same time to process : the formula doesn’t seem o be the bottleneck. Results are a bit better but I think there will still be some tweaking needed in the future. Maybe reduce the negative zones.

Anyway, now I’m going to implement this and the new data should be online in a few minutes. Don’t forget to check our the “Similar albums” slider on your favourite albums pages!

Jan 07

This is actually the first time on earth the new jamendo embeddable player is used ;-)

This is a random radio of all the albums. Please report any issues with it as it will be official in a few days!

Update : Once again, thanks for irpyC from jamendo for his nice GUI !

&amp;amp;amp;amp;amp;amp;nbsp;

Dec 14

I have been once again invited to present jamendo in Amsterdam for the first CC salon in the Netherlands yesterday. The evening was really interesting with two other presentations and two CC bands. I was told my presentation was quite good so let’s put it on this blog and if you’ve more questions, just ask ;-)

The presentation is focused on how and why jamendo and the artists use the Creative Commons licenses.

That’s it… See you soon Amsterdam and special thanks to all the Knowledgeland team for putting this event together, you guys rock!

Dec 12

The Good :

  • Shimon Peres
  • Having a jamendo presentation :-)
  • Overall good management
  • Good food
  • Low price tag
  • A few very good panels

The Bad :

  • A few very bad panels (Fashion and technology anyone?)
  • Poor wifi access
  • Nicolas Sarkozy and Francois Bayrou invited to run their presidential campaign
  • Many english-speaking people angry against Loic about the Sarkozy-french-only-30-mintes-no-questions thing

The Ugly :

  • Jamendo ranking only 5th on the 50 startups … We missed the 3rd rank that would have allowed us to take jamendo to the main stage but I guess that will be next year and without competition :-)

Ready for LeWeb4 next year ? In the meanwhile tell me if I missed a few highlights!

Technorati tags:

Dec 12

Laurent presented jamendo in the startup room of the LeWeb3 conference today in Paris. We had interesting contacts with a few exciting companies… stay tuned for more partnerships in the next weeks ;-)

Here is the powerpoint file containing the video demo I recorded on my new MacBook Pro! It was made to last less than 2 minutes and show the “Download and Listen” feature of jamendo.

Jamendo presentation at LeWeb3, 2006/12/11

We will be at LeWeb3 tomorrow too, if you want to chat with us!

Even more exciting, the day after tomorrow I’ll be at the CC Salon in Amsterdam presenting how jamendo interacts with Creative Commons and why is CC so important for us. More on this presentation soon…

Technorati tags:

Sep 30

I just downloaded Firefox 2.0 RC1, and while randomly clicking everywhere I could I noticed that “Stephen Colbert” appears in the “Contributors” list of the “? / About Firefox” dialog.

I’m an early fan of Colbert… But does anyone know if this is a joke or something ? ;-)

Is Colbert a good friend of some firefox devs ? Or is it just another genius prank from him ? ;-)

Sep 06

A few days ago I had the chance to speak with both Richard Stallman (the father of Free Software) and Gael Duval (who created Mandriva, and is now working on a new top-secret projet called Ulteo).

The three of us were actually invited on a panel about the latest copyright law in France. The debate was interesting, I explained how jamendo works and why it is interesting for many artists to make their music free, or “almost free” (RMS, if you read me… ;-)

Before and after the conference we discussed a lot of issues with Richard and Gael, they are both incredible in their own way. So, big kuddos to them and to our host Frederic de Gournay who did an amazing job!

From left to right : Frederic, me, Gael and RMS
Jun 25

While working on the future AJAX interface of jamendo, I ran into some performance problems that were due to the extensive use of the new Prototype 1.5 function, $$. (Announcement of $$ on Ajaxian)

Prototype’s current code is quite elegant (as always!) but very slow, so I wrote an add-on that makes this function up to 20 times faster in most usual cases (tested on IE6, Firefox 1.5 and Opera). Don’t believe me, test it yourself!

Download the add-on | Stripped down version (1.3Kb) | Interactive test suite

UPDATE:
Thanks to StoneCypher from #prototype I ran the regression tests and fixed a trivial bug. Now the add-on passes the regression tests! Good :-)

Here are the main ideas of this add-on :

  • Forwarding the call to the old $$ if the selector expression is too complicated (currently : if it uses attributes)
  • Replacing regular expressions with a simple parser
  • Minimizing the number of operations done on each iteration.
  • Trying to use getDocumentById() instead of getDocumentByTagName() when possible.
  • Avoiding recursive functions with return values.
  • Not being afraid of some “old-style” code if it speeds up the execution ;-)

I just emailed the code to Sam Stephenson (the author of Prototype), I hope he’ll welcome the speedup! I don’t know if this add-on could make it into the Prototype SVN trunk, maybe some comments from Sam or from readers of this blog will help improve it.

To use this code in your website, just include the javascript file after prototype.js, and the $$ function will be automatically replaced. The old one will still be available as “$$old” (but you shouldn’t need it. The add-on is “feature-compatible” with the original)

This code is released under the same license as Prototype (”AS-IS” ?) so feel free to use it. (In this case, a comment about our exciting free music website jamendo would be appreciated too ;-)

That’s it ;-) I look forward to having your comments on this code, it’s open for discussion!

Jun 15

Tomorrow I’ll drive from Grenoble to Amsterdam where I’m presenting jamendo at both the “Holland Open Conference” and the “Digital Pionners Academy”.

This is very exciting because it’s one of my first presentations of jamendo in front of an english-speaking audience. I’ll speak next to guys from Wikipedia, Creative Commons and OpenBusiness.cc so I guess it’s quite a good start ;-)

Here are my “final” slides for tomorrow : PDF

Wish me good luck for both the conference and the 10-hour drive ;-)

Jun 14

With all the buzz on Flock I decided to give it a try!

My impressions are mixed. I think the default skin looks bad, it has a “toy” feel just like IE7.

I’m currently trying the “New blog post” feature, that’s a good one. I’ll install an extension like this in my beloved firefox (which is crying with my 50+ extensions)

There are also a few severe bugs in the main window, I don’t have time to report them though

PS: I had to publish this post twice to get it working! :-/

Jun 13

Following the example of many talented people out there, I just dropped out of my school!

Okay, I don’t really feel like this will make me any more talented ;-) But it’s a great step, at least for jamendo :

From now on, I officially work full time on jamendo!

Wooooooooooooooooooooooowwww!!

I remember that when I imagined jamendo more than 2 years ago, I used to dream about this. I hoped that maybe, -someday- I could make a living of the project I was creating. Well, here we are!!!

The funny thing about this story is that I imagined jamendo at the very same time I was struggling to enter this “dream school” in CS & Mathematics (ENSIMAG, France). At this time it was hard for me to figure out which one (of the school or jamendo) was the backup plan ;-)

So once again, thanks to all the people that made this possible… Laurent, Pierre, Amélie, David, John, Alf, Aurélien, the 6 other “LesAutres.org” founders, and of course all our talented artists ;-)

To celebrate this new situation, I’m working on one of the biggest updates of jamendo so far, including our new API, a better homepage and a brand new design ;-) Stay tuned!

Jun 03

The latest weeks have been very exciting for Jamendo. We shipped several “Web 2.0″ (or whatever it will called now) upgrades of the website, the latest being Blog support.

I implemented both metaWeblog API and Atom API so that we can post everywhere. Currently I have some trouble with Blogger because they seem to be updating their backend. I’ll wait for them to calm down…

Anyway, you can now blog your reviews on the most common blogs out there (TypePad, WordPress, DotClear, LiveJournal, MovableType, Typo, etc…), the previous entry is the first test I made ;-)

I hope the community will use this feature heavily because I spent the last couple of days hacking…

I’m quite proud of the autodetection feature ;-) You just have to enter the URL of your blog homepage and Jamendo will detect its type and API address. Try it now !

Apr 17

Some new cool features on jamendo I’ve been working on this week :

 - A tag cloud for each user : http://www.jamendo.com/us/user/sylvinus/tags/
 - Friends : http://www.jamendo.com/us/user/sylvinus/friends/
 - IE-ready spy : http://www.jamendo.com/us/spy/

Next week, we’ll unveil our new member homepage with music recommendations… A bit late compared to last.fm and pandora, but we didn’t have enough albums before to make it really interesting.

What will make us quite unique is that you get the recommendation AND the music for free ;-)

Mar 17

Some artists I’ve to listen to next week…

- Sly & the family stone
- Level 42
- Gojira
- Ultra vomit (?!)
- Prince
- Stefano Di Battista
- Stanley Clarke

What’s up with music ? Currently I play bass in 5 different bands. It seems obvious I’ll have to quit some of them because 5 is just too much, but the choice is going to be quite hard :-/ Maybe listening to new music will help!

Mar 11

My blog has been down for a few days … we had some serious hardware failures so we were too busy working on jamendo.

I just came back from a 5-day-long road trip to Florence with my girlfriend Eliane! This was really among the best holidays in my life so I’ll try to keep some memories here.

I took the car from Grenoble to L’albenc where I picked up Eliane and eventually met his mother and little sister for the first time. Then we drove to Montelimar, France where we had lunch with my aunt and her little family. We arrived to St Raphael on the coast right on time for the office, and we spent a lovely evening on the seaside.

We slept in the car every night with a quite comfortable home-made bed, maybe the trickiest moment of each day was when we were looking in the dark for a place to park the car and spend the rest of the night. It was really funny to wake up and discover the landscape that we hadn’t seen completely before.

So we did that in St Raphael and drove to Genova, Italy on Thursday. There, we ate in a good restaurant and visited the city until the night came. Genova has a great historical center and it was worth the walk!

Friday, we drove to Pisa, then to Vinci (birthplace of Leonardo Da Vinci) and then to Sienna. It was 6pm when we arrived there and I’ve to say that Sienna amazed me… it’s a so beautiful and small old city that I wouldn’t mind buying an house there someday ;-) The streets are so …. human! We ate in yet another delicious (and expensive!) restaurant and we slept near San Gimigianno.

We didn’t get to Florence before 1pm because we got stuck in the field where we parked the car! It was crazy, we tried to get the car out of there during 1 hour but it was quite impossible for us and a few wood sticks. So we asked some local farmer to use his tractor to pull the car… and he agreed ;-) In my opinion it was actually too easy! We could have given him some gift but we had nothing, so once again, thank you!

Florence was fine, I was expecting to be dissapointed… I think I find it boring and a little bit overrated. Of course there are some incredible momuments and museums but you have to pay in order to visit every single church and tourist spot so it wasn’t really motivating for us poor students ;-)

After a last visit in the north of Florence on Sunday morning, we drove back to Grenoble and nearly got stuck in the snow near Briancon, France. But we made it!

I’m so happy to be full of happy memories of this trip with Eliane, I hope they’ll last! Of course now it’s quite hard to get back to work on jamendo, but as you know … the show must go on…

Feb 06

This is incredible. Yesterday jamendo had a special 2-minute feature on the first french TV channel, in the news report of Sunday evening which is basically one of the most viewed TV shows in France. A conservative estimate of the audience is 10+ million.

The report was really clear and focused on both the artists and Creative Commons, with Pierre from Jamendo explaining shortly what’s CC, and a zoom on a License Deed.

It’s so exciting to bring CC into mainstream like that. I really feel that this is the greatest accomplishment for jamendo so far. Now that more than 10 million people have heard of what we’re doing, a lot of things are going to be much easier.

Here is the full video in French :

Note for fun : our servers went down seconds after the airing ;-) We expected our database to crash but surprisingly our load balancer died first. It took us a few minutes to get the website back up but since then we have been experiencing very high trafic.

Some figures… Today we have 10.000+ members and countless new album uploads, yesterday we had more than 600 concurrent BitTorrent downloads, our main BitTorrent seeder was uploading at 5Mo/s… Impressive! Keep sharing!

Dec 30

I’ve been playing bass in some bands for a few months, here are some of their members I enjoyed playing with :


Simon, an amazing guitarist who enjoys playing Radiohead ;-) He also has a terrific look :p

Eric, the second guitarist of this band (”nameless” …). He really has the rock’n'roll attitude ;-)

Mus’, the lead singer and guitarist of my cover band (”Twist and Floyd”… guess what we play ;-)

He is fond of the Beatles and really rocks on stage, check his bloody fingers at the end of the show!! :-/

Olivier, the mighty drummer of Twist and Floyd. Too bad he’s going back to Lille for his internship next month :(

Eliane is the lovely pianist of Twist and Shout … Big kisses to her!!!!!! (Okay she’s my girlfriend :p)

That’s all, I will hopefully take more pictures of the other members if I free space on my damned cellphone. Some pictures of the last concerts I’ve been to :


Both : One of the first jamendo bands : download their albums on jamendo! This was the first concert with their new guitarist, who was pretty good I think.

YES I’VE BEEN TO A STICK CONCERT! AAAAARRGGHHH!

One of my favourite bassists : Richard Bona

I was to his concert in Lyons with ttoine from jamendo. It was some really great time!
Dec 30

I’ve been playing bass in some bands for a few months, here are some of their members I enjoyed playing with :


Simon, an amazing guitarist who enjoys playing Radiohead ;-) He also has a terrific look :p

Eric, the second guitarist of this band (”nameless” …). He really has the rock’n'roll attitude ;-)

Mus’, the lead singer and guitarist of my cover band (”Twist and Floyd”… guess what we play ;-)

He is fond of the Beatles and really rocks on stage, check his bloody fingers at the end of the show!! :-/

Olivier, the mighty drummer of Twist and Floyd. Too bad he’s going back to Lille for his internship next month :(

Eliane is the lovely pianist of Twist and Shout … Big kisses to her!!!!!! (Okay she’s my girlfriend :p)

That’s all, I will hopefully take more pictures of the other members if I free space on my damned cellphone. Some pictures of the last concerts I’ve been to :


Both : One of the first jamendo bands : download their albums on jamendo! This was the first concert with their new guitarist, who was pretty good I think.

YES I’VE BEEN TO A STICK CONCERT! AAAAARRGGHHH!

One of my favourite bassists : Richard Bona

I was to his concert in Lyons with ttoine from jamendo. It was some really great time!
Nov 16

My current playlist…

  • Steps Ahead - Trains
  • Steps Ahead - Beirut (incredible jazz fusion band)
  • Michael Brecker - Broadband
  • Lenny Kravitz - Are you gonna go my way
  • Ben Harper - Run Eyed Blue
  • Incubus - The warmth
  • Incubus - Privilege
  • Amp Fiddler - If you can’t get me on your mind
  • FFF - Free for fever
  • Jade Leary - The lost art of human kindness
  • Radiohead - I will
  • Peter Gabriel - The tower that ate people
  • Metallica - Fuel
  • Eric Serra - “Le Grand Bleu” soundtrack
  • Archive - Waste
  • Archive - You make me feel
  • The Beatles - Hey Bulldog
  • Jamiroquai - Feels just like it should
  • Lenny Kravitz - Minister of Rock and Roll
  • The Beatles - I want you
  • Daft Punk - Da Funk
  • Marcus Miller - Portrait of Tracy (Tribute to Jaco)
  • Coldplay - What if
  • Muse - Forced in
  • RHCP - Suck my kiss
  • RHCP - Aeroplane
  • Radiohead - The national anthem
  • Spock’s Beard - At the end of the day
  • Linkin Park - With you
  • Marillion - Quartz
  • System of a down - Mezmerize/Hypnotize

;-)

Close
E-mail It