The first day Flash died was January 27th, 2010, when Steve Jobs announced the iPad. A few months later, in his Thoughts on Flash letter, he confirmed and explained why he saw the future of the mobile web without Flash. He was hardly alone in thinking so, but it remained somewhat controversial at the time.
Since then, tens of millions of iPads have been shipped and no other tablet manufacturer or mobile manufacturer has been able to ship a device with a decent Flash implementation. However, beyond the “Steve was right” mantra and the obvious trend towards HTML5, the forthcoming death of Flash still wasn’t consensual.
Until today. Adobe just bought two hugely successful HTML5 tooling companies, TypeKit and Nitobi (makers of PhoneGap). It is hard to imagine a stronger endorsement for HTML5.
I think October 3rd, 2011 will be remembered as the second day Flash died, this time by the hands of its owner.
Of course Adobe will still spin Flash as a convenient solution for some use cases, which will remain true for the next few years, but they clearly announced where they want to go next, and boy, I couldn’t be happier that it’s towards the open web. For this, I think we can all give credit to Adobe. Few companies this size would even semi-publicly admit their technology is a dead-end and invest so heavily in a more open solution.
Big cheers to them for that.
Disclaimer: I co-founded Joshfire, a company also deeply invested in HTML5.
The last session began with a surprise speaker: Julian Assange from Wikileaks. Chris interviewed him about his achievements so far, including shifting 10% of the vote in the 2007 Kenyan election and lately the release of the infamous Bagdad shooting video. Why leak such material? “There are illegitimate secrets” Julian answered. “People in Bagdad, they don’t need to see the video. They see it everyday.”. Then he talked about Iceland who is becoming a safe heaven for free press. They are also working on a Nobel Prize for free press. At the end Chris asked the audience who thought of Julian as a modern hero or as a dangerous troublemaker. Modern hero won and even if I think “hero” may be a bit too much, you have to respect the guy for his courage and commitment. By the way, his talk was one of the first to be published on TED.com!
Next, Stefan Wolff talked about ethnic conflicts and civil wars. He wondered if all the pictures of current conflicts he showed on screen were to be pictures of the past. He argues there has been a decline in the number of conflicts since the 90s, due to institutional design, leadership and diplomacy. The subject was interesting but frankly the presentation a bit underwhelming because Stefan kept reading his notes too closely.
Then Eric Berlow did a short talk about the difference between complex and complicated. He showed how it was possible to find simple answers by raising complexity. He took as an example the NYT-leaked diagram for reaching popular support for the Iraqi government. An unholy mess of arrows but as he increased complexity and represented the graph in 3D, a simpler way to resolve dependencies emerged. Nice one!
William Perrin, the ex-CTO of the Blair administration from what I understood, talked about his neighborhood in London, which although very central seems to have been deserted by law enforcement. He showed how he managed to return to some kind of local civic democracy by launching a low-tech blog, and making people join forces. He argued governments should pledge to make the Internet the first means of communication with people.
Mallika Sarabhai, who opened TEDIndia, danced and sung. Some parts of it I liked, some others not.
Finally, Zainab Salbi talked about her childhood under missile strikes. She emphasized the importance of women in wars and most importantly in peace.
This last session closed TEDGlobal 2010, we unfortunately had to leave without going to the final BBQ party because of travel constraints. Next year maybe! ;-)
The past few months have been quite crazy. There will be some big news on the Jamendo front soon.
In the meantime, my side project TEDx PARIS is finally becoming big, tomorrow is the first public conference “à la TED” in Paris. We’ve got an amazing lineup of speakers for the 650 attendees, and that’s without the many surprises we’ve prepared ;-)
It has been soldout for one month but we have prepared a live video stream that will begin with the conference at 14:00 Paris time. It will be available on www.tedxparis.com/weblive/, liberation.fr and france24.com
Wish us good luck ! :)
Today we received an USB audio interface so we shot a quick demo of our Jamendo+FON prototype ;-)
That’s it! For those interested in the source, it was moved on the official FON repository. Feedback welcomed!
I’ve spent a few hours yesterday on a prototype of Jamendo application for the upcomping Fonera 2.0
The idea is to allow Foneros to listen to our Creative Commons-licensed radios with an USB sound card plugged in the new USB port of the Fonera. These small sound cards can be found for as little as $1 on eBay, we already ordered a couple of them for the office.
So the application is still in prototyping stage but we’re now familiar with the development environment of the Fonera and have a much better idea of how the app can work.
A few screenshots :
That’s it! We still have to figure out how to start the radio automatically when the Fonera starts, add an authentification layer and maybe some sort of volume control.
We have checked in the code on our googlecode repository, feel free to comment!
Well, time has come to try to blog again. For several reasons actually:
I’m officially rebooting this blog ;-) New theme, new wordpress and new content… hopefully.
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 :
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 :

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

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)

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!
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;nbsp;