<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet CLAM</title>
	<link rel="self" href="http://clam-project.org/planet-atom.xml"/>
	<link href="http://clam-project.org"/>
	<id>http://clam-project.org/planet-atom.xml</id>
	<updated>2012-02-22T19:58:15+00:00</updated>
	<generator uri="http://www.planetplanet.org/">http://intertwingly.net/code/venus/</generator>

	<entry>
		<title type="html"> Xavier Amatriain: The Recommender Problem &amp;amp; the Presentation Context</title>
		<link href="http://technocalifornia.blogspot.com/2011/09/recommender-problem-presentation.html"/>
		<id>tag:blogger.com,1999:blog-17171206.post-2675018638164046997</id>
		<updated>2011-12-23T19:01:38+00:00</updated>
		<content type="html">&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 12pt; line-height: normal; font-family: arial;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;In the traditional formulation of the &quot;Recommender Problem&quot;, we have pairs of items and users and user feedback values for very few of those dyads. The problem is formulated as the finding of a utility function or model to estimate the missing values.&lt;br /&gt;&lt;br /&gt;In many real-world situations, feedback will be implicit&lt;span style=&quot;font-weight: bold;&quot;&gt;**&lt;/span&gt; and binary in nature. For instance, in a web page you will have users visiting a url, or clicking on an add as a positive feedback. In a music service, a user will decide to listen to a song. Or in a movie service, like Netflix, you will have users deciding to watch a title as an indication that the user liked the movie. In these cases, the recommendation problem becomes the prediction of the probability a user will interact with a given item. There is a big shortcoming in using the standard recommendation formulation in such a setting: we don't have negative feedback. All the data we have is either positive or missing. And the missing data includes both items that the user explicitly chose to ignore because they were not appealing and items that would have been perfect recommendations but were never presented to the user.&lt;br /&gt;&lt;br /&gt;A similar issue has been dealt with in traditional data mining research, where classifiers need to be trained only using positive examples. In the &quot;&lt;/span&gt;&lt;a href=&quot;http://www.cse.ucsd.edu/users/elkan/posonly.pdf&quot;&gt;&lt;span style=&quot;font-size: 12pt; color: blue;&quot;&gt;Learning Classifiers from Only Positive and Unlabeled Examples&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&quot; SIGKDD 08 paper, the authors present a method to convert unlabeled examples into both a positive and a negative example, each with a different weight related to the probability that a random exemplar is positive or negative. Another solutions to this issue is presented in the &quot;&lt;/span&gt;&lt;a href=&quot;http://research.yahoo.com/files/HuKorenVolinsky-ICDM08.pdf&quot;&gt;&lt;span style=&quot;font-size: 12pt; color: blue;&quot;&gt;Collaborative Filtering for Implicit Feedback Datasets&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&quot; paper by Hu, Koren and Volinsky. In this work, the authors binarize the implicit feedback values: any feedback value greater than zero means positive preference, while any value equal to zero is converted to no preference. A greater value in the implicit feedback value is used to measure the &quot;confidence&quot; in the fact the user liked the item, but not in measuring &quot;how much&quot; the user liked it. Yet another approach to inferring positive and negative feedback from implicit data is presented in the paper I co-authored with Dennis Parra, and I presented in a &lt;/span&gt;&lt;a href=&quot;http://technocalifornia.blogspot.com/2011/07/walk-talk-on-combination-of-implicit.html&quot;&gt;&lt;span style=&quot;font-size: 12pt; color: blue;&quot;&gt;previous post&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;. There, we argue that implicit data can be transformed to positive and negative feedback if aggregated at the right level. For example, the fact that somebody listened only once to a single track in an album can be interpreted as the user not liking that album.&lt;br /&gt;&lt;br /&gt;In many practical situations, though, we have more information than the simple binary implicit feedback from the user. For unlabeled examples that the user did not directly interact with, we can expect to have other information. In particular, we might be able to know whether they were shown to the user or not. This adds very valuable information, but slightly complicates the formulation of our recommendation problem. We now have three different kinds of values for items: positive, presented but not chosen, and not presented. And this is only if we simplify the model. In reality, information related to the presentation can be much richer than this and we might be able to derive data like the probability the user actually saw the item or weigh in different interaction events such as mouse overs, scrolls...&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center; font-family: arial;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-VSfb2LZ66y8/TovvlN5sIrI/AAAAAAAAANk/Zou3UMqH4gw/s1600/NetflixInterface.jpg&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5659880779386987186&quot; src=&quot;http://2.bp.blogspot.com/-VSfb2LZ66y8/TovvlN5sIrI/AAAAAAAAANk/Zou3UMqH4gw/s200/NetflixInterface.jpg&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 335px; height: 177px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;  &lt;/span&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-family: arial;&quot;&gt;&lt;span style=&quot;font-size: 12pt; line-height: 115%;&quot;&gt;In Netflix, we are working on different ways to add this rich information related to presentations and user interaction to the recommender problem. That is why I was especially interested in finding out that this year's SIGIR best student paper award has been awarded to a paper that addresses this issue. In the paper &quot;&lt;/span&gt;&lt;a href=&quot;http://www.cc.gatech.edu/%7Esyang46/papers/SIGIR11CCF.pdf&quot;&gt;&lt;span style=&quot;font-size: 12pt; line-height: 115%;&quot;&gt;Collaborative Competitive Filtering: Learning&lt;br /&gt;Recommender Using Context of User Choice&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt; line-height: 115%;&quot;&gt;&quot;, the authors present an extension to traditional Collaborative Filtering by encoding into the model not only the &lt;b&gt;collaboration &lt;/b&gt;between similar users and items, but also the &lt;b&gt;competition &lt;/b&gt;of items for user attention. They derive the model as an extension to standard latent factor models by taking into account the context in which the user makes the decision. That is, the probability I decide to select a given item depends on which are the other items I have as an alternative. Results are preliminary but promising. And, this work is definitely an interesting and appealing starting point for an area with many practical applications.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;  &lt;/span&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-family: arial;&quot;&gt;&lt;span style=&quot;font-size: 12pt; line-height: 115%;&quot;&gt;However, there are many possible improvements to the model. One of them, mentioned by the authors, is the need to take into account the so-called &lt;b&gt;position bias&lt;/b&gt;. An item that is presented in the first position of a list has many more possibilities to be chosen than one that is farther down. This effect is well-known in the search community and has been studied from several angles. I would recommend, for instance to read some of the very interesting papers on this topic by Thorsten Joachims and his students. In the paper “&lt;/span&gt;&lt;a href=&quot;http://www.cs.cornell.edu/People/tj/publications/radlinski_etal_08b.pdf&quot;&gt;&lt;span style=&quot;font-size: 12pt; line-height: 115%;&quot;&gt;How Does Clickthrough Data Reflect Retrieval Quality?&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt; line-height: 115%;&quot;&gt;”, for instance, they show how arbitrarily swapping items in a search result list has almost no effect. This proves that the positioning of the element can be a most important factor than how relevant the item is.&lt;br /&gt;&lt;br /&gt;I would love to hear of other ideas or approaches to deal with this new version of the recommender problem that includes, and would encourage researchers in the area to address an issue of huge potential impact.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;  &lt;/span&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-family: arial;&quot;&gt;&lt;span style=&quot;font-size: 12pt; line-height: 115%;&quot;&gt;**&lt;b&gt;Note&lt;/b&gt;: I am using the word implicit here in the traditional sense in the recommendation literature. The truth is that a user selecting an item is in fact &lt;b&gt;explicit&lt;/b&gt; information. However, it can be considered implicit in that the user is informing about the preferences indirectly by comparing the item to others in a context.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/17171206-2675018638164046997?l=technocalifornia.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Xavier Amatriain</name>
			<email>noreply@blogger.com</email>
			<uri>http://technocalifornia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">TechnoCalifornia</title>
			<link rel="self" href="http://www.blogger.com/feeds/17171206/posts/default"/>
			<id>tag:blogger.com,1999:blog-17171206</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en"> Natanael Olaiz: Trailer de MIS AHORROS SU BOTIN</title>
		<link href="http://nael.info/asociaciones_libres/2011/12/04/trailer-de-mis-ahorros-su-botin/"/>
		<id>http://nael.info/asociaciones_libres/?p=306</id>
		<updated>2011-12-04T19:50:05+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;&lt;/p&gt;</content>
		<author>
			<name>nael</name>
			<uri>http://nael.info/asociaciones_libres</uri>
		</author>
		<source>
			<title type="html">Asociaciones Libres</title>
			<subtitle type="html">Memex info-sono-musical. Recopilación de herramientas y recursos libres que me resultan interesantes...</subtitle>
			<link rel="self" href="http://nael.info/asociaciones_libres/feed/"/>
			<id>http://nael.info/asociaciones_libres</id>
		</source>
	</entry>

	<entry>
		<title type="html"> Xavier Amatriain: Recsys 2011 - Notes and Pointers</title>
		<link href="http://technocalifornia.blogspot.com/2011/11/recsys-2011-notes-and-pointers.html"/>
		<id>tag:blogger.com,1999:blog-17171206.post-8599625116147452790</id>
		<updated>2011-11-03T05:31:45+00:00</updated>
		<content type="html">&lt;a href=&quot;http://recsys.acm.org/2011/images/Chicago_night1.jpg&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://recsys.acm.org/2011/images/Chicago_night1.jpg&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 518px; height: 201px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;I found &lt;a href=&quot;http://recsys.acm.org/2011/index.shtml&quot;&gt;Recsys&lt;/a&gt; this year of very high quality in general. There were many good papers and presentations. The &lt;a href=&quot;http://recsys.acm.org/2011/industry_track.shtml&quot;&gt;Industry track&lt;/a&gt; was also very high-quality, with very interesting talks from companies such as Twitter, Facebook, or eBay. Jon Sanders and I also gave two presentations explaining how recommendations have evolved since the Netflix Prize (more on this soon).&lt;br /&gt;&lt;br /&gt;Here are my rough notes with pointers to some papers I considered especially interesting. I have grouped them in 5 categories that I think summarize the main topics in the conference: (1) Transparency and explanations, (2) Implicit Feedback, (3) Context, (4) Metrics and evaluation, and (5) Others. Note that the selection is completely biased towards my personal interests.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;(1) TRANSPARENCY &amp;amp; EXPLANATIONS.&lt;/span&gt; One of the recurring themes was the fact that user trust and perceived quality of the recommendations was very much influence not by accuracy alone, but by how transparent the system was, and the amount of &quot;explanations&quot; that were added.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Daniel Tunkelang(LinkedIn) did a very interesting tutorial on &quot;Recommendations as a Conversation with the User&quot;, where he focused on these kinds of issues. See his slides in &lt;a href=&quot;http://thenoisychannel.com/2011/10/31/recsys-2011-tutorial-recommendations-as-a-conversation-with-the-user/&quot;&gt;his blog&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Neel Sundaresan (eBay) also stressed in his keynote that adding explanations can sometimes be more important than getting the recommendation right.&lt;/li&gt;&lt;li&gt;In the paper &quot;&lt;a href=&quot;http://www.usabart.nl/portfolio/KnijnenburgReijmerWillemsen-recsys2011.pdf&quot;&gt;Each to His Own: How Different Users Call for Different Interaction Methods in Recommender Systems&lt;/a&gt;&quot;, the authors found that depending on how experts are users in the domain, they prefer different kind of recommendations and interaction models. For example, in one of the extremes, novices, prefer top-10 non-personalized to their personalized recommendations. In general a hybrid model of interaction is better than either implicit or explicit-only.&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;(2) IMPLICIT FEEDBACK.&lt;/span&gt; A lot of papers this years on using implicit consumption data instead of (or in combination with) ratings.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The best paper, by Yehuda Koren and Joe Sill, addressed the issue of non-linearity in ratings. &quot;&lt;a href=&quot;http://labs.yahoo.com/node/640&quot;&gt;OrdRec: An Ordinal Model for Predicting Personalized Item Rating Distributions&lt;/a&gt;&quot; modifies the standard Matrix Factorization approach to adapt to the fact that user ratings are ordinal, but not numerical. The way they model ratings, with a set of thresholds, can be used in combination with any model, not only SVD-like approaches. This paper effectively addresses most of the issues I raised in my previous post &quot;&lt;a href=&quot;http://technocalifornia.blogspot.com/2011/04/recommender-systems-were-doing-it-all.html&quot;&gt;We are doing everything wrong...&lt;/a&gt;&quot;&lt;/li&gt;&lt;li&gt;In &quot;&lt;a href=&quot;http://unical.academia.edu/NicolaBarbieri/Papers/803078/Modeling_Item_Selection_and_Relevance_for_Accurate_Recommendations&quot;&gt;Modeling Item Selection and Relevance for Accurate Recommendations: A Bayesian Approach&lt;/a&gt;&quot; they define the concept of a &quot;Free probabilstic model&quot; where they try to predict independently the probabilty of play and rating. &lt;/li&gt;&lt;li&gt;In &quot;Multi-Value Probabilistic Matrix Factorization for IP-TV Recommendations&quot;, the authors present a Matrix Factorization model that allows for multiple observations of the same item. In particular, it is applied for IPTV recommendations where the fact that the user watched part of an episode is interpreted as negative feedback.&lt;/li&gt;&lt;li&gt;&quot;&lt;a href=&quot;http://www.cs.purdue.edu/homes/fangy/hetrec11-fang.pdf&quot;&gt;Matrix Co-factorization for Recommendation with Rich Side Information and Implicit Feedback&lt;/a&gt;&quot; presents a combined Matrix Factorization model that includes ratings, content features, and implicit feedback. They use cosine item similarity for weighing negative examples.&lt;/li&gt;&lt;li&gt;In &quot;&lt;a href=&quot;http://www.slideshare.net/alansaid/personalizing-tags-a-folksonomylike-approach-for-recommending-movies/download&quot;&gt;Personalizing Tags: A Folksonomy-like Approach for Recommending Movies&lt;/a&gt;&quot;, they use tags (or categories) as a very simple method of recommending movies: for each user compute average rating given to movies with a certain tag.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;(3) CONTEXT.&lt;/span&gt; There were 2 workshops (&lt;a href=&quot;http://cars-workshop.org/&quot;&gt;CARS&lt;/a&gt; and &lt;a href=&quot;http://2011.camrachallenge.com/&quot;&gt;CAMRA&lt;/a&gt;), and several papers in the main conference, talking about how to add contextual information for the recommendations:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&quot;The Effect of Context-Aware Recommendations on Customer Purchasing Behavior and Trust&quot; is an interesting paper, focusing on the evaluation side. They include an A/B test for measuring the effect of context-aware recommendations. Using context increased overall sales in $ but not in number. Therefore, users tend to spend more $ per item.&lt;/li&gt;&lt;li&gt;In the &lt;a href=&quot;http://2011.camrachallenge.com/&quot;&gt;CAMRA&lt;/a&gt; workshop, many papers (such as &quot;Temporal Rating Habits: A Valuable Tool for Rater Differentiation&quot; or &quot;Identifying Users From Their Rating Patterns&quot;) were related to how to identify who the author of a rating in a household was, since this was one of the tasks for the contest.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Also related to group recommendations, &quot;Group Recommendation using Feature Space Representing Behavioral Tendency and Power Balance among Members&quot;, tries to model what is a good recommendation for a group where each of the individuals does not have the same influence.&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;(4) METRICS and EVALUATIONS: &lt;/span&gt;There were several papers that offered different ways to measure accuracy for top-N ranked recommendations.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&quot;&lt;a href=&quot;http://www.slideshare.net/pcastells/acm-recsys-2011-rank-and-relevance-in-novelty-and-diversity-metrics-for-recommender-systems&quot;&gt;Rank and Relevance in Novelty and Diversity Metrics for Recommender Systems&lt;/a&gt;&quot; presents an interesting framework that includes metric for measuring not only accuracy, but also novelty, diversity....&lt;/li&gt;&lt;li&gt;&quot;Item Popularity and Recommendation Accuracy&quot; is an interesting work on how to remove popularity bias from accuracy metrics. A user study validates the fact that recall measure is correlated with user perceived quality of recommendation. Besides proposing a recall metric that removes popularity bias, he also proposes a popularity stratified training method that weights negative examples according to how popular they are.&lt;/li&gt;&lt;li&gt;&quot;&lt;a href=&quot;http://ucersti.ieis.tue.nl/files/papers/3.pdf&quot;&gt;Evaluating Rank Accuracy based on Incomplete Pairwise Preferences&lt;/a&gt;&quot; proposes a measure called expected discounted rank correlation for the specific case of implicit feedback.&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;(5) OTHERS&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;eBay and UCSC presented &quot;&lt;a href=&quot;http://users.soe.ucsc.edu/%7Ejwang30/index.files/recsys175-wang.pdf&quot;&gt;Utilizing Related Products for Post-Purchase Recommendation in E-commerce&lt;/a&gt;&quot;. The paper won the best poster award&lt;/li&gt;&lt;li&gt;There were many papers on Social Recommendations. Just to name one, in &quot;Power to the People: Exploring Neighbourhood Formations in Social Recommender Systems&quot;, they did a user study to figure out how much users would like and trust recommendations coming from different user groups (those they decided, friends, everyone...). Interestingly, the method of choice did not make much difference... until you told the users what it was.&lt;/li&gt;&lt;li&gt;In &quot;Wisdom of the Better Few: Cold Start Recommendation via Representative based Rating Elicitation&quot; they discussed how to select most imformative users and items for cold start. I was surprised to see that our &quot;Wisdom of the Few&quot; approach got paraphrased in a paper title.&lt;/li&gt;&lt;li&gt;There were a couple of very interesting workshops on &lt;a href=&quot;http://womrad.org/2011/&quot;&gt;Music Recommendations&lt;/a&gt; and &lt;a href=&quot;http://pema2011.cs.ucl.ac.uk/&quot;&gt;Mobile Recommendations&lt;/a&gt; that I had to miss since I was attending others. But, they are definitely worth looking into if you are into music or mobile.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/17171206-8599625116147452790?l=technocalifornia.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Xavier Amatriain</name>
			<email>noreply@blogger.com</email>
			<uri>http://technocalifornia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">TechnoCalifornia</title>
			<link rel="self" href="http://www.blogger.com/feeds/17171206/posts/default"/>
			<id>tag:blogger.com,1999:blog-17171206</id>
		</source>
	</entry>

	<entry>
		<title type="html"> David Garcia: CLAM binders, ipyclam and PyQt</title>
		<link href="http://vokicodder.blogspot.com/2011/09/clam-binders-ipyclam-and-pyqt.html"/>
		<id>tag:blogger.com,1999:blog-36421488.post-5088901163739097107</id>
		<updated>2011-09-06T23:57:49+00:00</updated>
		<content type="html">I just finished a pair programming session with Xavier Serra. He is going to defend his Final Career Project on Friday and we are preparing some cool demos involving binding &lt;a href=&quot;http://vokicodder.blogspot.com/2011/02/ipyclam-interactive-python-console-for.html&quot;&gt;ipyclam&lt;/a&gt; and &lt;a href=&quot;http://www.riverbankcomputing.co.uk/software/pyqt&quot;&gt;pyqt&lt;/a&gt;. It has been an exciting session because as we debunked one by one the show stoppers that we were finding, we realized that the potential of the tool mix is wider than we thought. &lt;br /&gt;&lt;br /&gt;What we can do now is to build a network with ipyclam, building an interface by combining pyqt and ui files and binding them to that network, all that either in live by using the interactive shell or using a written script. This formula adds the flexibility of scripting to &lt;a href=&quot;http://clam-project.org/wiki/Network_Editor_tutorial&quot;&gt;CLAM prototyping system&lt;/a&gt;, raising the ceiling of what you can do without raising too much the learning threshold.&lt;br /&gt;&lt;br /&gt;For example, let's play a file in a loop with ipyclam:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;import ipyclam&lt;br /&gt;n=ipyclam.Network(ipyclam.Clam_NetworkProxy())&lt;br /&gt;n.file = n.types.MonoAudioFileReader&lt;br /&gt;n.out = n.types.AudioSink&lt;br /&gt;n.file.Loop = 1&lt;br /&gt;n.file.SourceFile = &quot;jaume-voice.mp3&quot;&lt;br /&gt;n.file &amp;gt; n.out&lt;br /&gt;&lt;br /&gt;n.backend=&quot;PortAudio&quot;&lt;br /&gt;n.play()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Then you can instantiate an Oscilloscope, bind it and play: &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;from PyQt4 import QtCore, QtGui&lt;br /&gt;a=QtGui.QApplication([])&lt;br /&gt;&lt;br /&gt;w=n.createWidget(&quot;Oscilloscope&quot;)&lt;br /&gt;w.show()&lt;br /&gt;w.setProperty(&quot;clamOutPort&quot;, &quot;file.Samples Read&quot;)&lt;br /&gt;&lt;br /&gt;n.stop()&lt;br /&gt;n.bindUi(w)&lt;br /&gt;n.play()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You can also load an UI file and bind it simultaneously.. &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;w2 = n.loadUi(&quot;myui.ui&quot;)&lt;br /&gt;w2.show()&lt;br /&gt;n.stop()&lt;br /&gt;n.bindUi(w2)&lt;br /&gt;n.play()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Adding a tonal analysis and some related views&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;n.stop()&lt;br /&gt;n.tonal = n.types.TonalAnalysis&lt;br /&gt;n.file &amp;gt; n.tonal&lt;br /&gt;w3 = n.createWidget(&quot;CLAM::VM::KeySpace&quot;)&lt;br /&gt;w3.setProperty(&quot;clamOutPort&quot;, &quot;tonal.Chord Correlation&quot;)&lt;br /&gt;n.bindUi(w3)&lt;br /&gt;w3.show()&lt;br /&gt;n.play()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The enabler of the mix has been the new binder architecture in CLAM. Until 1.4, the Prototyper used what we call 'binders' to relate processing elements with user interface elements. Each binder concentrates in a given kind of binding: oscilloscopes, control sliders, transport buttons...&lt;br /&gt;&lt;br /&gt;For the upcomming CLAM 1.5 the binder interface (CLAM::QtBinder) has been redefined and moved out from the Prototyper to the qtmonitors module. So now you can use them in any CLAM application. The bindings are now based on &lt;a href=&quot;http://doc.qt.nokia.com/latest/properties.html#dynamic-properties&quot;&gt;Qt dynamic properties&lt;/a&gt; which provide more flexibility than former QObject name mangling.&lt;br /&gt;&lt;br /&gt;Currently there are several binders implemented:&lt;br /&gt;* Action/Button -&amp;gt; launch a configurator dialog on some processing&lt;br /&gt;* Action/Button -&amp;gt; launch a open dialog for a MonoFileReader&lt;br /&gt;* Checkable -&amp;gt; Send a bool, or a bistable float control&lt;br /&gt;* Slider -&amp;gt; maped float/int control&lt;br /&gt;* Any Monitor -&amp;gt; outPort to monitor&lt;br /&gt;* ControlSurface -&amp;gt; Send pair of controls&lt;br /&gt;* Slider -&amp;gt; ProgressControl or a MonoFileReader or similar to control&lt;br /&gt;&lt;br /&gt;Now you can extend those binder by means of plugins as we extended processings. You can use Qt dynamic properties in the interface elements to specify how the binding is done. &lt;br /&gt;&lt;br /&gt;The abstract interface provides the static method QtBinder::bindAllBinders() which is the one called by python bindUi. This looks for every ui element in the QObject hierarchy, looks for every registered binder and if they match it is applied.  &lt;br /&gt;&lt;br /&gt;To implement your own handle you just have to rewrite the &lt;tt&gt;bool handles(QObject*)&lt;/tt&gt; method that returns true if the object managed by the binder (type, name, presence of properties...) and the &lt;tt&gt;bool bind(QObject * uiElement, Network &amp;amp;amp; network, QStringList &amp;amp;amp; errors)&lt;/tt&gt; which does the actual binding. To register the binder, you just have to instanciate one as static variable of a cxx file in your library.&lt;br /&gt;&lt;br /&gt;All that is still being building up but its potential seems clear, so i hope that this new way of claming will be useful to you all.&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/36421488-5088901163739097107?l=vokicodder.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Vokimon</name>
			<email>noreply@blogger.com</email>
			<uri>http://vokicodder.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Voki Codder</title>
			<subtitle type="html">Joyful bits</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/36421488/posts/default"/>
			<id>tag:blogger.com,1999:blog-36421488</id>
		</source>
	</entry>

	<entry>
		<title type="html"> David Garcia: ipyclam: interactive python console for CLAM networks manipulation</title>
		<link href="http://vokicodder.blogspot.com/2011/02/ipyclam-interactive-python-console-for.html"/>
		<id>tag:blogger.com,1999:blog-36421488.post-7823498031507560482</id>
		<updated>2011-09-06T22:50:46+00:00</updated>
		<content type="html">Xavier Serra (not the &lt;a href=&quot;http://www.mtg.upf.edu/&quot;&gt;MTG&lt;/a&gt; &lt;a href=&quot;http://www.dtic.upf.edu/%7Exserra/&quot;&gt;head&lt;/a&gt;, but an homonym student at the &lt;a href=&quot;http://www.upf.edu/&quot;&gt;UPF&lt;/a&gt;) is about to reach an interesting milestone on his Final Career Project related to &lt;a href=&quot;http://clam-project.org/&quot;&gt;CLAM&lt;/a&gt;.  He is developing an  &lt;a href=&quot;http://clam-project.org/clam/trunk/ipyclam&quot;&gt;interactive Python console for CLAM&lt;/a&gt; named &lt;tt&gt;ipyclam&lt;/tt&gt;.  It is a text based interface to explore and manipulate CLAM networks.  Hopefully this will end being a dock widget within the &lt;a href=&quot;http://clam-project.org/wiki/Network_Editor_tutorial&quot;&gt;Network Editor&lt;/a&gt; but it is also useful as interactive text console tool and as programming interface, which are the first useful outputs Xavi is about to get.  &lt;tt&gt;ipyclam&lt;/tt&gt; comes to cover the need of manipulating complex networks in cases when point and click is just tedious and also that of generating parametrized networks.&lt;br /&gt;&lt;br /&gt;Let's make clear that it is not a full wrapper for the CLAM API like Hernan's &lt;a href=&quot;http://clam-project.org/clam/trunk/pyclam&quot;&gt;&lt;tt&gt;pyclam&lt;/tt&gt;&lt;/a&gt;, &lt;tt&gt;ipyclam&lt;/tt&gt; just enables high level operations you usually do with Network Editor: instantiating, connecting, configuring and playing modules.  Moreover we have intentionally decoupled &lt;tt&gt;ipyclam&lt;/tt&gt; API to any existing CLAM API in order to define the most pythonic, convenient, and clean API we could think.  For example the code to build an stereo cable would be:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;net = Network()&lt;br /&gt;net.processing1 = net.types.AudioSource&lt;br /&gt;net.processing1.NOuputs = 2&lt;br /&gt;net.processing2 = net.types.AudioSink&lt;br /&gt;net.processing2.NInputs = 2&lt;br /&gt;&lt;br /&gt;net.processing1.Output1 &amp;gt; net.processing2.Input1&lt;br /&gt;net.processing1.Output2 &amp;gt; net.processing2.Input2&lt;br /&gt;&lt;br /&gt;net.play()&lt;/pre&gt;&lt;br /&gt;An interesting feature, is that &lt;tt&gt;network.code()&lt;/tt&gt; just returns an string with similar python code, so a network knows how to regenerate itself.  This opens the door to &lt;b&gt;python based format for CLAM networks&lt;/b&gt;. Bye bye XML!.&lt;br /&gt;&lt;br /&gt;Convenience? Yes, please. Connections can be done in batch, broadcasting connections from all the connectors in one processing to all or to a single connection of another:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;net.processing1 &amp;gt; net.processing2 # all to all&lt;br /&gt;net.processing1.Output1 &amp;gt; net.processing2 # one to all&lt;br /&gt;net.processing1 &amp;gt; net.processing2.Input1 # all to one&lt;/pre&gt;&lt;br /&gt;Convenience is good but all things should be doable.  Often most convenient solution is not the best suited for all the cases.  Accessing configuration parameters and connectors of any kind directly from proccessing is quite convenient but names can collide, to solve that some special attributes are provided to restrict the name scope.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;network.processing1._config.NOutputs&lt;br /&gt;network.processing1._inports.InPort1&lt;br /&gt;network.processing1._outports.OutPort1&lt;br /&gt;network.processing1._incontrols.InControl1&lt;br /&gt;network.processing1._outcontrols.OutControl1&lt;/pre&gt;&lt;br /&gt;Connection names can have spaces, and attributes cannot, so we also provide an alternative subscript syntax.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;net.processing1['Output 1']&lt;/pre&gt;&lt;br /&gt;One of the features I like the more is &lt;b&gt;tab key exploration&lt;/b&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;tt&gt;network.[tab]&lt;/tt&gt; and you get the list of processings&lt;/li&gt;&lt;li&gt;&lt;tt&gt;network.processing._inports[tab]&lt;/tt&gt; and you get the list of input ports&lt;/li&gt;&lt;li&gt;&lt;tt&gt;network.processing._config[tab]&lt;/tt&gt; and you get the list of configuration parameters&lt;/li&gt;&lt;li&gt;&lt;tt&gt;network.processing.[tab]&lt;/tt&gt; and you get connectors and cofiguration parameters&lt;/li&gt;&lt;li&gt;&lt;tt&gt;network.types.[tab]&lt;/tt&gt; and you get the list of available processing types&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;It works for interactive console with tab completion like &lt;a href=&quot;http://ipython.scipy.org/moin/&quot;&gt;ipython&lt;/a&gt;. We also provide &lt;tt&gt;ipyclam_console&lt;/tt&gt;, an ipython based shell conveniently importing modules and adding a network to start playing with.&lt;br /&gt;&lt;br /&gt;For more details on the API just check &lt;a href=&quot;http://clam-project.org/clam/trunk/ipyclam/API.txt&quot;&gt;this document&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The implementation&lt;/h3&gt;&lt;br /&gt;&lt;tt&gt;ipyclam&lt;/tt&gt; is defined in two layers.  The &lt;b&gt;front-end layer&lt;/b&gt;, purely written in python, makes the convenient API happen: Exploration, dynamic object attributes, many interfaces to similar operations...  This upper layer, relies on the lower, less pythonic and more purpose oriented one, the &lt;b&gt;network proxy layer&lt;/b&gt;, which provides access to the state and operations of the actual network with quite fewer entry points.&lt;br /&gt;&lt;br /&gt;Xavi defined the front-end layer while evolving, in parallel, a dummy proxy layer simulating network status with basic python structures.  That gave us the flexibility to explore and evolve both the frond-end and the proxy interface without bothering about the actual CLAM implementation that would have made such exploration quite rigid.&lt;br /&gt;&lt;br /&gt;Two layers approach is also convenient because by defining the ops in the network proxy layer, we are able to reuse the front-end API with any other patching like environment.  I am thinking on &lt;a href=&quot;http://jackaudio.org/&quot;&gt;JACK&lt;/a&gt; or environments like &lt;a href=&quot;http://drobilla.net/software/ingen/&quot;&gt;ingen&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Status and road map&lt;/h3&gt;&lt;br /&gt;Xavi just finished most important bits of the API: Inspection, module creation, module type enumeration and module inter-connection.  Currently we still rely on a dummy network proxy, but a CLAM based proxy will arrive during next week.  Configuration API seems to be controversial and we are holding it until we have something implemented with CLAM.&lt;br /&gt;&lt;br /&gt;Once we have a full CLAM based proxy the next big goal is to integrate the console in NetworkEditor.  We need a console widget for Qt which is able to execute a python interpret.  We found some candidates:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://qconsole.sourceforge.net/&quot;&gt;qconsole&lt;/a&gt; which already has a python wrapper&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://qtermwidget.sourceforge.net/&quot;&gt;qtermwidget&lt;/a&gt; a more robust console (based on KDE Konsole) but without direct support for python, and&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://ipython.scipy.org/doc/manual/html/development/ipython_qt.html&quot;&gt;ipython qt frontend&lt;/a&gt; quite experimental and using a weird threading model, but still interesting as ipyclam_console already uses ipython and it is awesome&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So either candidate seems to require some work on our side.&lt;br /&gt;&lt;br /&gt;Well, I hope you will find this new CLAM feature as amusing as I do. Xavier is really doing quite a good job, congrats and keep it that high.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/36421488-7823498031507560482?l=vokicodder.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Vokimon</name>
			<email>noreply@blogger.com</email>
			<uri>http://vokicodder.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Voki Codder</title>
			<subtitle type="html">Joyful bits</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/36421488/posts/default"/>
			<id>tag:blogger.com,1999:blog-36421488</id>
		</source>
	</entry>

	<entry>
		<title type="html"> Xavier Amatriain: Joining Netflix</title>
		<link href="http://technocalifornia.blogspot.com/2011/07/joining-netflix.html"/>
		<id>tag:blogger.com,1999:blog-17171206.post-211881762342667900</id>
		<updated>2011-07-31T17:36:02+00:00</updated>
		<content type="html">Three weeks ago, I started to work for Netflix. Everything has moved so fast with so many things to do and learn that it seems like I have already been here for a much longer time!&lt;br /&gt;&lt;br /&gt;I am now working as the manager of a small team working on recommendations &amp;amp; personalization in the company that promoted recommender systems research to major headlines thanks to the &lt;a href=&quot;http://www.netflixprize.com/&quot;&gt;Netflix Prize&lt;/a&gt;. It also feels great to come to the company in an exciting time when it has just reached its 25th million customer and is starting its international expansion to &lt;a href=&quot;http://blog.netflix.com/2011/07/netflix-is-coming-to-latin-america.html&quot;&gt;Latin America&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;All the fuzz created around the Netflix Prize &lt;a href=&quot;http://news.cnet.com/8301-17852_3-20078504-71/mit-prof-netflix-has-its-recommendations-wrong/&quot;&gt;might lead some&lt;/a&gt; to believe that rating prediction is all there is to Netflix suggesting a given movie. However, I was happy to find out that rating prediction is only one of the many signals that my team uses in creating the final suggestions.&lt;br /&gt;&lt;br /&gt;Awesome place, awesome people, and awesome time to be around. And, btw, &lt;a href=&quot;http://www.netflix.com/Jobs?id=7563&quot;&gt;we are hiring&lt;/a&gt;, so let me know if you are interested in joining. (&lt;span style=&quot;font-weight: bold;&quot;&gt;Update&lt;/span&gt;: it seems that the jobs link is currently not active outside US/CA... I'm working on getting this fixed)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-EU1JNoF8ZXI/TjI9TqhAlmI/AAAAAAAAANQ/WKPl4DaPcds/s1600/2011-07-20%2B08.19.53.jpg&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5634633491833460322&quot; src=&quot;http://3.bp.blogspot.com/-EU1JNoF8ZXI/TjI9TqhAlmI/AAAAAAAAANQ/WKPl4DaPcds/s320/2011-07-20%2B08.19.53.jpg&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 189px; height: 252px;&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/17171206-211881762342667900?l=technocalifornia.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Xavier Amatriain</name>
			<email>noreply@blogger.com</email>
			<uri>http://technocalifornia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">TechnoCalifornia</title>
			<link rel="self" href="http://www.blogger.com/feeds/17171206/posts/default"/>
			<id>tag:blogger.com,1999:blog-17171206</id>
		</source>
	</entry>

	<entry>
		<title type="html"> Xavier Amatriain: Walk the Talk: On the Combination of Implicit and Explicit Feedback</title>
		<link href="http://technocalifornia.blogspot.com/2011/07/walk-talk-on-combination-of-implicit.html"/>
		<id>tag:blogger.com,1999:blog-17171206.post-4449493430080955379</id>
		<updated>2011-07-21T06:45:07+00:00</updated>
		<content type="html">Last week, &lt;a href=&quot;http://www.sis.pitt.edu/%7Edparra/&quot;&gt;Denis Parra&lt;/a&gt; presented our paper entitled &quot;Walk the Talk: Analyzing the Relation between Implicit and Explicit Feedback for Preference Elicitation&quot; at the &lt;a href=&quot;http://www.umap2011.org/&quot;&gt;UMAP conference&lt;/a&gt;. The paper won Denis the best-student paper award (Congratulations!).&lt;br /&gt;&lt;br /&gt;The paper presents our initial work in analyzing the relation between implicit and explicit feedback. In short, the main question we wanted to answer is how does the self-reported preferences users give in a typical 5-star interface relate to what they actually do when looking at their consumption patterns. Our hypothesis was that there should exist simple models that relate both kinds of feedback. Finding a way to robustly convert implicit feedback into explicit ratings would open up the door to applying well-known methods with implicit feedback. But, much more importantly, we could then combine both kinds of input in a single model.&lt;br /&gt;&lt;br /&gt;In order to test our hypothesis, we prepared an experiment in the music domain. We asked last.fm users to take a &lt;a href=&quot;http://technocalifornia.blogspot.com/2010/08/study-on-online-music-taste-call-for.html&quot;&gt;survey&lt;/a&gt; in which we queried them about how much they liked albums that were already in their listening history. With this data in hand, we could analyze the relation between implicit and explicit feedback and try to fit a simple model.&lt;br /&gt;&lt;br /&gt;I recommend you read the &lt;a href=&quot;http://bit.ly/r1mvkK&quot;&gt;full paper&lt;/a&gt; if you want to get the longer story of our findings, but here is a brief summary:&lt;ul&gt;&lt;li&gt;There is a strong correlation between implicit feedback and self-reported preference (see figure below)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Variables such as recentness of interaction or overall popularity do not have significant effect. Note that in &lt;a href=&quot;http://www.princeton.edu/%7Emjs3/salganik_watts08.pdf&quot;&gt;a previous study&lt;/a&gt; by Salganik &amp;amp; Duncan Watts, global popularity was found to affect users perceived quality. However, in that case and as opposed to ours, users were made aware of the popularity.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Interaction effect: When listening to music, some people prefer to listen to isolated songs or albums. The way they interact with music, affects the way they report their taste.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-gtrwSvrIpEI/TifEaf_CfYI/AAAAAAAAANI/IzeMVpRZbaQ/s1600/up-box.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5631685818591640962&quot; src=&quot;http://1.bp.blogspot.com/-gtrwSvrIpEI/TifEaf_CfYI/AAAAAAAAANI/IzeMVpRZbaQ/s320/up-box.png&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 514px; height: 357px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;After our analysis, we then construct a linear model that takes into account these variables by performing a linear regression. Once we have built these models, we can evaluate their performance in a regular recommendation scenario by measuring the error in predicting ratings in a hold-out dataset.&lt;br /&gt;&lt;br /&gt;This paper represents an initial but very promising line of work that we have already improved in several ways such as the use of logistic instead of linear regression to account for the non-linearity of the rating scale or the use of the regression model as a way to combine both implicit and explicit feedback. But I will leave those findings for a future post.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/17171206-4449493430080955379?l=technocalifornia.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Xavier Amatriain</name>
			<email>noreply@blogger.com</email>
			<uri>http://technocalifornia.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">TechnoCalifornia</title>
			<link rel="self" href="http://www.blogger.com/feeds/17171206/posts/default"/>
			<id>tag:blogger.com,1999:blog-17171206</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en"> Natanael Olaiz: Comunicado Indignados hechos Parlament Catalunya - Más sobre lo ocurrido el 15</title>
		<link href="http://nael.info/asociaciones_libres/2011/06/17/comunicado-indignados-hechos-parlament-catalunya/"/>
		<id>http://nael.info/asociaciones_libres/?p=291</id>
		<updated>2011-06-17T22:09:28+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;&lt;br /&gt;
…&lt;br /&gt;
Más videos sobre lo ocurrido el 15:&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;</content>
		<author>
			<name>nael</name>
			<uri>http://nael.info/asociaciones_libres</uri>
		</author>
		<source>
			<title type="html">Asociaciones Libres</title>
			<subtitle type="html">Memex info-sono-musical. Recopilación de herramientas y recursos libres que me resultan interesantes...</subtitle>
			<link rel="self" href="http://nael.info/asociaciones_libres/feed/"/>
			<id>http://nael.info/asociaciones_libres</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en"> Natanael Olaiz: Vista aérea del 27M</title>
		<link href="http://nael.info/asociaciones_libres/2011/06/16/vista-aerea-del-27m/"/>
		<id>http://nael.info/asociaciones_libres/?p=287</id>
		<updated>2011-06-15T23:41:07+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;&lt;/p&gt;</content>
		<author>
			<name>nael</name>
			<uri>http://nael.info/asociaciones_libres</uri>
		</author>
		<source>
			<title type="html">Asociaciones Libres</title>
			<subtitle type="html">Memex info-sono-musical. Recopilación de herramientas y recursos libres que me resultan interesantes...</subtitle>
			<link rel="self" href="http://nael.info/asociaciones_libres/feed/"/>
			<id>http://nael.info/asociaciones_libres</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en"> Natanael Olaiz: Como se hizo…</title>
		<link href="http://nael.info/asociaciones_libres/2011/06/16/como-se-hizo/"/>
		<id>http://nael.info/asociaciones_libres/?p=283</id>
		<updated>2011-06-15T23:16:35+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;&lt;a href=&quot;http://www.planetatortuga.com/noticias.item.3875/los-violentos-en-#parlamentcamp-son-policias-infiltrados.-ver-fotos-rt-plz.html&quot;&gt;http://www.planetatortuga.com/noticias.item.3875/los-violentos-en-#parlamentcamp-son-policias-infiltrados.-ver-fotos-rt-plz.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;De ahí:&lt;br /&gt;
(&lt;strong&gt;aquí había un video en alta calidad, que tenía cientos de miles de visitas y cientos de comentarios… y fue borrado&lt;/strong&gt;: http://www.youtube.com/embed/YcmvzRvsf8g…. va otra copia en menor calidad)&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Actualización: otro link hablando de lo mismo: &lt;a href=&quot;http://jmgoig.wordpress.com/2011/06/15/estrategias-del-poder-para-desprestigiar-movimientos-sociales-el-caso-parlamentcamp/&quot;&gt;http://jmgoig.wordpress.com/2011/06/15/estrategias-del-poder-para-desprestigiar-movimientos-sociales-el-caso-parlamentcamp/&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>nael</name>
			<uri>http://nael.info/asociaciones_libres</uri>
		</author>
		<source>
			<title type="html">Asociaciones Libres</title>
			<subtitle type="html">Memex info-sono-musical. Recopilación de herramientas y recursos libres que me resultan interesantes...</subtitle>
			<link rel="self" href="http://nael.info/asociaciones_libres/feed/"/>
			<id>http://nael.info/asociaciones_libres</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en"> CLAM News: CLAM at Debian!</title>
		<link href="http://clamnews.wordpress.com/2011/04/04/clam-at-debian/"/>
		<id>http://clamnews.wordpress.com/?p=114</id>
		<updated>2011-04-04T23:13:20+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;CLAM finally made its way into the official Debian repositories. Many thanks to the maintainer, Taniguchi Takaki.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://packages.debian.org/source/sid/clam&quot;&gt;http://packages.debian.org/source/sid/clam&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://packages.debian.org/source/sid/clam-networkeditor&quot;&gt;http://packages.debian.org/source/sid/clam-networkeditor&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://packages.debian.org/source/sid/clam-chordata&quot;&gt;http://packages.debian.org/source/sid/clam-chordata&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/clamnews.wordpress.com/114/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/clamnews.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/clamnews.wordpress.com/114/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/clamnews.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/clamnews.wordpress.com/114/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/clamnews.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/clamnews.wordpress.com/114/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/clamnews.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/clamnews.wordpress.com/114/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/clamnews.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/clamnews.wordpress.com/114/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/clamnews.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/clamnews.wordpress.com/114/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/clamnews.wordpress.com/114/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=clamnews.wordpress.com&amp;amp;blog=761839&amp;amp;post=114&amp;amp;subd=clamnews&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>vokimon</name>
			<uri>http://clamnews.wordpress.com</uri>
		</author>
		<source>
			<title type="html">feeds to the clam web page » english</title>
			<subtitle type="html">News in English, Catalan and Spanish to be seen in http://clam.iua.upf.edu</subtitle>
			<link rel="self" href="http://clamnews.wordpress.com/category/english/feed/"/>
			<id>http://clamnews.wordpress.com</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en"> CLAM News: Ubuntu PPA for CLAM</title>
		<link href="http://clamnews.wordpress.com/2011/04/04/ubuntu-ppas-for-clam/"/>
		<id>http://clamnews.wordpress.com/?p=106</id>
		<updated>2011-04-04T23:03:43+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;For the convenience of Ubuntu users, we deployed a personal package archive (PPA) in launchpad.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://launchpad.net/%7Edgarcia-ubuntu/+archive/ppa&quot; rel=&quot;nofollow&quot;&gt;https://launchpad.net/~dgarcia-ubuntu/+archive/ppa&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Instructions available at the same page. It currently contains libraries, extension plugins, NetworkEditor and Chordata packages for maverick, and platforms i386 and amd64.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/clamnews.wordpress.com/106/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/clamnews.wordpress.com/106/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/clamnews.wordpress.com/106/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/clamnews.wordpress.com/106/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/clamnews.wordpress.com/106/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/clamnews.wordpress.com/106/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/clamnews.wordpress.com/106/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/clamnews.wordpress.com/106/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/clamnews.wordpress.com/106/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/clamnews.wordpress.com/106/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/clamnews.wordpress.com/106/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/clamnews.wordpress.com/106/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/clamnews.wordpress.com/106/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/clamnews.wordpress.com/106/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=clamnews.wordpress.com&amp;amp;blog=761839&amp;amp;post=106&amp;amp;subd=clamnews&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>vokimon</name>
			<uri>http://clamnews.wordpress.com</uri>
		</author>
		<source>
			<title type="html">feeds to the clam web page » english</title>
			<subtitle type="html">News in English, Catalan and Spanish to be seen in http://clam.iua.upf.edu</subtitle>
			<link rel="self" href="http://clamnews.wordpress.com/category/english/feed/"/>
			<id>http://clamnews.wordpress.com</id>
		</source>
	</entry>

	<entry>
		<title type="html"> David Garcia: Numpy arrays to video</title>
		<link href="http://vokicodder.blogspot.com/2011/02/numpy-arrays-to-video.html"/>
		<id>tag:blogger.com,1999:blog-36421488.post-244088033454694142</id>
		<updated>2011-02-16T15:52:21+00:00</updated>
		<content type="html">I found &lt;a href=&quot;http://stackoverflow.com/questions/4092927/generating-movie-from-python-without-saving-individual-frames-to-files&quot;&gt;some examples&lt;/a&gt; on how to generate video with python by piping frames to external programs like ffmpeg or mencoder. All those snippets encode each frame as a given image format (png, jpg...) by using PIL, matplotlib.. to get them. Besides the dependency, building figures or encoding images can be quite slow. I finally found a way of piping raw numpy buffers as frames to mencoder. You can use the following code:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import subprocess&lt;br /&gt;import numpy as np&lt;br /&gt;&lt;br /&gt;class VideoSink(object) :&lt;br /&gt;        def __init__( self, size, filename=&quot;output&quot;, rate=10, byteorder=&quot;bgra&quot; ) :&lt;br /&gt;                self.size = size&lt;br /&gt;                cmdstring  = ('mencoder',&lt;br /&gt;                        '/dev/stdin',&lt;br /&gt;                        '-demuxer', 'rawvideo',&lt;br /&gt;                        '-rawvideo', 'w=%i:h=%i'%size[::-1]+&quot;:fps=%i:format=%s&quot;%(rate,byteorder),&lt;br /&gt;                        '-o', filename+'.avi',&lt;br /&gt;                        '-ovc', 'lavc',&lt;br /&gt;                        )&lt;br /&gt;                self.p = subprocess.Popen(cmdstring, stdin=subprocess.PIPE, shell=False)&lt;br /&gt;&lt;br /&gt;        def run(self, image) :&lt;br /&gt;                assert image.shape == self.size&lt;br /&gt;#               image.tofile(self.p.stdin) # should be faster but it is indeed slower&lt;br /&gt;                self.p.stdin.write(image.tostring())&lt;br /&gt;        def close(self) :&lt;br /&gt;                self.p.stdin.close()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It is a tenth faster than the PIL based one. And there is no fair comparison to the matplotlib one. I got it working with mencoder but I could not figure out how to make it with ffmpeg.&lt;br /&gt;&lt;br /&gt;You can find that code with an usage example &lt;a href=&quot;https://github.com/vokimon/freenect_python_processing/blob/master/src/videosink.py&quot;&gt;there&lt;/a&gt;. Being based on other public domain snippets consider it also public domain.&lt;br /&gt;&lt;br /&gt;I am using that class to save the output of my &lt;a href=&quot;http://openkinect.org&quot;&gt;Freenect&lt;/a&gt; based &lt;a href=&quot;https://github.com/vokimon/freenect_python_processing&quot;&gt;project&lt;/a&gt;. More on that on next entries.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/36421488-244088033454694142?l=vokicodder.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Vokimon</name>
			<email>noreply@blogger.com</email>
			<uri>http://vokicodder.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Voki Codder</title>
			<subtitle type="html">Joyful bits</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/36421488/posts/default"/>
			<id>tag:blogger.com,1999:blog-36421488</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en"> Hernán Ordiales: High abstraction level audio plugins specification (and code generation)</title>
		<link href="http://audiores.uint8.com.ar/blog/2010/05/17/high-abstraction-level-audio-plugins-specification-and-code-generation/"/>
		<id>http://audiores.uint8.com.ar/blog/2010/05/17/high-abstraction-level-audio-plugins-specification-and-code-generation/</id>
		<updated>2010-09-20T00:35:52+00:00</updated>
		<content type="html">If you ever wrote at least 2 audio plugins in your life, for sure you have noticed you had to write a lot of duplicated code. In other words, most of the times, writing a plugin there is very little … &lt;a href=&quot;http://audiores.uint8.com.ar/blog/2010/05/17/high-abstraction-level-audio-plugins-specification-and-code-generation/&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;→&lt;/span&gt;&lt;/a&gt;</content>
		<author>
			<name>Hernán Ordiales</name>
			<uri>http://h.ordia.com.ar</uri>
		</author>
		<source>
			<title type="html">hordia at clam</title>
			<subtitle type="html">hordia at clam - http://h.ordia.com.ar</subtitle>
			<link rel="self" href="http://h.ordia.com.ar/clam_feed"/>
			<id>http://h.ordia.com.ar</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en"> Hernán Ordiales: Some experience with CLAM inside an audio club at FIUBA, Argentina</title>
		<link href="http://audiores.uint8.com.ar/blog/2010/03/11/some-experience-with-clam-inside-an-audio-club-at-fiuba-argentina/"/>
		<id>http://audiores.uint8.com.ar/blog/2010/03/11/some-experience-with-clam-inside-an-audio-club-at-fiuba-argentina/</id>
		<updated>2010-09-20T00:35:52+00:00</updated>
		<content type="html">(Note: I wrote this as something to tell to the clam-devel mailing list about some of my source-code commits) About eight months ago, there was a foundation of something like an “audio club” in my university [1]. As soon i … &lt;a href=&quot;http://audiores.uint8.com.ar/blog/2010/03/11/some-experience-with-clam-inside-an-audio-club-at-fiuba-argentina/&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;→&lt;/span&gt;&lt;/a&gt;</content>
		<author>
			<name>Hernán Ordiales</name>
			<uri>http://h.ordia.com.ar</uri>
		</author>
		<source>
			<title type="html">hordia at clam</title>
			<subtitle type="html">hordia at clam - http://h.ordia.com.ar</subtitle>
			<link rel="self" href="http://h.ordia.com.ar/clam_feed"/>
			<id>http://h.ordia.com.ar</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en"> CLAM News: CLAM Chordata 1.0</title>
		<link href="http://clamnews.wordpress.com/2010/03/08/clam-chordata-1-0/"/>
		<id>http://clamnews.wordpress.com/?p=99</id>
		<updated>2010-03-08T21:13:09+00:00</updated>
		<content type="html" xml:lang="en">&lt;div style=&quot;float: right; margin: 3px;&quot;&gt;&lt;a href=&quot;http://clam-project.org/w/images/6/6c/TurnAround-colorSegments.png&quot;&gt;&lt;img alt=&quot;screenshot&quot; src=&quot;http://clam-project.org/w/images/6/6c/TurnAround-colorSegments.png&quot; width=&quot;220px&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;The CLAM project is pleased to announce the first stable release of Chordata, which is released in parallel to the 1.4.0 release of the CLAM framework.&lt;/p&gt;
&lt;p&gt;Chordata is a simple but powerful application that analyses the chords of any music file in your computer. You can use it to travel back and forward the song while watching insightful visualizations of the tonal features of the song. Key bindings and mouse interactions for song navigation are designed thinking in a musician with an instrument at hands.&lt;/p&gt;
&lt;p&gt;Chordata in live: &lt;a href=&quot;http://www.youtube.com/watch?v=xVmkIznjUPE&quot;&gt;http://www.youtube.com/watch?v=xVmkIznjUPE&lt;/a&gt;&lt;br /&gt;
The tutorial: &lt;a href=&quot;http://clam-project.org/wiki/Chordata_tutorial&quot;&gt;http://clam-project.org/wiki/Chordata_tutorial&lt;/a&gt;&lt;br /&gt;
Downloat it at &lt;a href=&quot;http://clam-project.org&quot;&gt;http://clam-project.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This application was developed by Pawel Bartkiewicz as his GSoC 2008 project,  by using existing CLAM technologies under a more suited interface which is now Chordata. Please, enjoy it.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/clamnews.wordpress.com/99/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/clamnews.wordpress.com/99/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/clamnews.wordpress.com/99/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/clamnews.wordpress.com/99/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/clamnews.wordpress.com/99/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/clamnews.wordpress.com/99/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/clamnews.wordpress.com/99/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/clamnews.wordpress.com/99/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/clamnews.wordpress.com/99/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/clamnews.wordpress.com/99/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/clamnews.wordpress.com/99/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/clamnews.wordpress.com/99/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/clamnews.wordpress.com/99/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/clamnews.wordpress.com/99/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=clamnews.wordpress.com&amp;amp;blog=761839&amp;amp;post=99&amp;amp;subd=clamnews&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>vokimon</name>
			<uri>http://clamnews.wordpress.com</uri>
		</author>
		<source>
			<title type="html">feeds to the clam web page » english</title>
			<subtitle type="html">News in English, Catalan and Spanish to be seen in http://clam.iua.upf.edu</subtitle>
			<link rel="self" href="http://clamnews.wordpress.com/category/english/feed/"/>
			<id>http://clamnews.wordpress.com</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en"> CLAM News: CLAM 1.4.0, 3D molluscs in the space</title>
		<link href="http://clamnews.wordpress.com/2010/03/08/1-4-0-3d-molluscs-in-the-space/"/>
		<id>http://clamnews.wordpress.com/?p=94</id>
		<updated>2010-03-08T19:08:58+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;&lt;a class=&quot;image&quot; href=&quot;http://clam-project.org/wiki/Image:CLAM-1.4.0.png&quot; style=&quot;float: right; margin: 3pt;&quot; title=&quot;CLAM-1.4.0.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; class=&quot;thumbimage&quot; height=&quot;134&quot; src=&quot;http://clam-project.org/w/images/thumb/5/53/CLAM-1.4.0.png/180px-CLAM-1.4.0.png&quot; width=&quot;180&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
The CLAM project is delighted to announce the long awaited 1.4.0 release of &lt;a class=&quot;external text&quot; href=&quot;http://clam-project.org&quot; rel=&quot;nofollow&quot; title=&quot;http://clam-project.org&quot;&gt;CLAM, the C++ framework for audio and music&lt;/a&gt;, code name &lt;em&gt;3D molluscs in the space&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;In summary, this long term release includes a lot of new spacialization modules for &lt;strong&gt;3D audio&lt;/strong&gt;; &lt;strong&gt;MIDI&lt;/strong&gt;, &lt;strong&gt;OSC&lt;/strong&gt; and &lt;strong&gt;guitar effects&lt;/strong&gt; modules; architectural enhancements such as &lt;strong&gt;typed controls&lt;/strong&gt;; nice &lt;strong&gt;usability&lt;/strong&gt; features for the NetworkEditor interface; convenience tools and scripts to make CLAM experience better; enhanced building of LADSPA plugins and new support for &lt;strong&gt;LV2 and VST&lt;/strong&gt; plugin building; a new easy to use application to explore songs chords called &lt;strong&gt;Chordata&lt;/strong&gt;; many optimizations, bug fixing and code clean ups.&lt;/p&gt;
&lt;p&gt;Many thanks to the people who contributed to this release, including but not limited to the GSoC 2008 students and all the crew at Barcelona Media’s Audio Group.&lt;/p&gt;
&lt;p&gt;Some details follow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;Chordata&lt;/strong&gt; is a new CLAM application which offers a user friendly way to explore the chords of your favourite songs, using already existing technology in the CLAM framework but with a much simpler interface.  &lt;a class=&quot;external text&quot; href=&quot;http://www.youtube.com/watch?v=xVmkIznjUPE&quot; rel=&quot;nofollow&quot; title=&quot;http://www.youtube.com/watch?v=xVmkIznjUPE&quot;&gt;Video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; The &lt;strong&gt;spacialization module&lt;/strong&gt; and helper tools, contributed by &lt;a class=&quot;external text&quot; href=&quot;http://barcelonamedia.org&quot; rel=&quot;nofollow&quot; title=&quot;http://barcelonamedia.org&quot;&gt;Barcelona Media&lt;/a&gt; audio group, turn CLAM in tandem with Blender and Ardour, into a powerful 3D audio authoring and exhibition platform. Here you can see some related &lt;a class=&quot;external text&quot; href=&quot;http://www.youtube.com/watch?v=KSfqJUIAiXk&quot; rel=&quot;nofollow&quot; title=&quot;http://www.youtube.com/watch?v=KSfqJUIAiXk&quot;&gt;Videos&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Typed controls&lt;/strong&gt; extend CLAM with the ability to use whichever C++ type as the message for a control. So, not just floats, but also bools, enums, integers, or envelopes can be sent as asynchronous controls. Examples on boolean and MIDI controls are provided.&lt;/li&gt;
&lt;li&gt; NetworkEditor has been ported to the &lt;a class=&quot;external text&quot; href=&quot;http://doc.trolltech.com/latest/qgraphicsview.html&quot; rel=&quot;nofollow&quot; title=&quot;http://doc.trolltech.com/latest/qgraphicsview.html&quot;&gt;QGraphicsView&lt;/a&gt; framework. Dealing with heavy networks such the big ones used in Barcelona Media have pushed many usability enhancements into its interface: multi-wire dragging, wire highlighting, default port and control actions, network and in-canvas documentation… &lt;a class=&quot;external text&quot; href=&quot;http://www.youtube.com/watch?v=0kt0WDmvMwo&quot; rel=&quot;nofollow&quot; title=&quot;http://www.youtube.com/watch?v=0kt0WDmvMwo&quot;&gt;Video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; It also made necessary to provide a tool such clamrefactor.py to perform batch high level changes to clam network XML files such as renaming processing types, ports, or configuration parameters, changing configuration values, duplicating sets of processings, connecting them…&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Music Annotator&lt;/strong&gt; application now is designed to aggregate several sources of descriptors and update them after edit. Descriptors are mapped to a work description schema that can be graphically defined. Also semantic web descriptor sources to access webservices such as MusicBrainz have been implemented.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can download them from the &lt;a class=&quot;external text&quot; href=&quot;http://clam-project.org/download/&quot; rel=&quot;nofollow&quot; title=&quot;http://clam-project.org/download/&quot;&gt;download page&lt;/a&gt;. Source, windows, debian and ubuntu packages are available. Contributed binaries for other platforms are welcome.&lt;/p&gt;
&lt;p&gt;See also: &lt;a class=&quot;external text&quot; href=&quot;http://clam-project.org/wiki/Development_screenshots&quot; rel=&quot;nofollow&quot; title=&quot;http://clam-project.org/wiki/Development_screenshots&quot;&gt;development screenshots&lt;/a&gt;, the &lt;a class=&quot;external text&quot; href=&quot;http://clam-project.org/clam/trunk/CLAM/CHANGES&quot; rel=&quot;nofollow&quot; title=&quot;http://clam-project.org/clam/trunk/CLAM/CHANGES&quot;&gt;CHANGELOG&lt;/a&gt;, the &lt;a class=&quot;external text&quot; href=&quot;http://clam-project.org/wiki/Version_Migration_Guide&quot; rel=&quot;nofollow&quot; title=&quot;http://clam-project.org/wiki/Version_Migration_Guide&quot;&gt;version migration guide&lt;/a&gt; and the new &lt;a class=&quot;external text&quot; href=&quot;http://www.youtube.com/group/clamproject&quot; rel=&quot;nofollow&quot; title=&quot;http://www.youtube.com/group/clamproject#&quot;&gt;CLAM group on youtube&lt;/a&gt;.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/clamnews.wordpress.com/94/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/clamnews.wordpress.com/94/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/clamnews.wordpress.com/94/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/clamnews.wordpress.com/94/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/clamnews.wordpress.com/94/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/clamnews.wordpress.com/94/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/clamnews.wordpress.com/94/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/clamnews.wordpress.com/94/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/clamnews.wordpress.com/94/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/clamnews.wordpress.com/94/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/clamnews.wordpress.com/94/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/clamnews.wordpress.com/94/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/clamnews.wordpress.com/94/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/clamnews.wordpress.com/94/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=clamnews.wordpress.com&amp;amp;blog=761839&amp;amp;post=94&amp;amp;subd=clamnews&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>vokimon</name>
			<uri>http://clamnews.wordpress.com</uri>
		</author>
		<source>
			<title type="html">feeds to the clam web page » english</title>
			<subtitle type="html">News in English, Catalan and Spanish to be seen in http://clam.iua.upf.edu</subtitle>
			<link rel="self" href="http://clamnews.wordpress.com/category/english/feed/"/>
			<id>http://clamnews.wordpress.com</id>
		</source>
	</entry>

	<entry>
		<title type="html"> David Garcia: Libraries becoming plugins, plugins becoming libraries</title>
		<link href="http://vokicodder.blogspot.com/2010/01/libraries-becoming-plugins-plugins.html"/>
		<id>tag:blogger.com,1999:blog-36421488.post-653185673445238970</id>
		<updated>2010-01-26T23:27:44+00:00</updated>
		<content type="html">Let me post about some of the latest changes on the &lt;a href=&quot;http://clam-project.org/&quot;&gt;CLAM&lt;/a&gt; build system.&lt;br /&gt;&lt;br /&gt;The CLAM project has been distributing two kinds of shared libraries: the main library modules (core, audioio and processing) and a set of plugins which are optional (spacialization, osc, guitareffects...). Plugins are very convenient since programs like the NetworkEditor can be extended without recompile and enable third party extensions. They are so convenient that we were seriously considering splitting processing and auidioio as plugins.&lt;br /&gt;&lt;br /&gt;But the use of content of a clam plugin is limited to abstract Processing interface. No other symbols are visible from other components. That has a serious impact on the flexibility to define plugin boundaries. For example, if a plugin defines a new data token type, any processings managing that token type should be in that same plugin. To use symbols of one plugin from another implies installing headers, provide soname, linker name and so on. That is, building a module library.&lt;br /&gt;&lt;br /&gt;So, if plugins want to be libraries and libraries want to be plugins, let them all be both. Each module will be compiled as library (libclam_mymodule.so.X.Y.Z), with soname (libclam_mymodule.so.X.Y), linker link (libclam_mymodule.so), headers (include/CLAM/mymodule/*), pc file... and it will also provide a plugin library (libclam_mymodule_plugin.so) which has no symbol by itself but is linked against the module library. When a program loads such a plugin, all the processings in the module library become available via the abstract interface. On the other side, if program or a module needs to use explicitly the symbols of another module, it just has to include the headers and link against the module library.&lt;br /&gt;&lt;br /&gt;I just applied the changes to the plugins and seems to work nicely. Adapting the main modules will be harder because the old sconstruct file, but it is a matter of days and we can split them. I moved a lot of common SCons code to the &lt;a href=&quot;http://clam-project.org/clam/trunk/CLAM/scons/sconstool/clam.py&quot;&gt;clam.py scons tool&lt;/a&gt;. There is a cute environment method called &lt;tt&gt;ClamModule&lt;/tt&gt; which generates a clam module including the module library, soname, linker name, plugin, pkg-config, and install targets. I also added some build system freebies for the modules and applications:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;All the intermediate generated code apart in a 'generated' directory&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Non verbose command line&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Colour command line&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Enhanced scanning methods with black lists&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Well, do not rely too much on the current clam scons tool API. Changes are still flowing through the subversion. Of course, warn me if I broke something. ;-)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/36421488-653185673445238970?l=vokicodder.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Vokimon</name>
			<email>noreply@blogger.com</email>
			<uri>http://vokicodder.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Voki Codder</title>
			<subtitle type="html">Joyful bits</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/36421488/posts/default"/>
			<id>tag:blogger.com,1999:blog-36421488</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en-US"> Greg Kellum: wired magazine</title>
		<link href="http://gregkellum.com/blog///index.php/2009/04/03/wired-magazine?blog=5"/>
		<id>http://gregkellum.com/blog/29@http://gregkellum.com/blog///</id>
		<updated>2009-04-03T15:04:53+00:00</updated>
		<content type="html" xml:lang="en-US">&lt;p&gt;I was in Wired magazine last week: &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.wired.com/gadgets/mods/multimedia/2009/03/gallery_instruments?slide=22&amp;amp;slideView=3&quot;&gt;http://www.wired.com/gadgets/mods/multimedia/2009/03/gallery_instruments?slide=22&amp;amp;slideView=3&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://gregkellum.com/blog///index.php/2009/04/03/wired-magazine?blog=5&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>symfonysid</name>
			<uri>http://gregkellum.com/blog///index.php?blog=5</uri>
		</author>
		<source>
			<title type="html">Greg Kellum's blog...</title>
			<link rel="self" href="http://gregkellum.com/blog/index.php?blog=5&amp;tempskin=_rss2"/>
			<id>http://gregkellum.com/blog///index.php?blog=5</id>
		</source>
	</entry>

	<entry>
		<title type="html"> Roman Goj: Chord Segmentation: first results are here!</title>
		<link href="http://ro-baczek.blogspot.com/2007/08/chord-segmentation-first-results-are.html"/>
		<id>tag:blogger.com,1999:blog-6230855389015998097.post-4729883697362646743</id>
		<updated>2008-12-10T22:19:41+00:00</updated>
		<content type="html">Hullo Planet!&lt;br /&gt;Three months after starting this blog, finally the first post...&lt;br /&gt;...because finally I have something nice to show off.&lt;br /&gt;&lt;br /&gt;My &lt;a href=&quot;http://code.google.com/soc/&quot;&gt;Google Summer Of Code&lt;/a&gt; task is enhancing realtime chord extraction in &lt;a href=&quot;http://clam.iua.upf.edu/&quot;&gt;CLAM&lt;/a&gt;. So far I've been working on small changes, refactorings, etc. But now I took a small break from that to check whether I can really improve the chord segmentation.&lt;br /&gt;&lt;br /&gt;The chord extraction algorithm in CLAM is really good but has a very &quot;raw&quot; output - not exactly something one could use to learn the chords of a favourite song. A big part of my GSoC task was changing this. And the first results are here:&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_7Q2rGqIQOAk/RrxP3IVnn3I/AAAAAAAAAAw/fLsmwKNwapg/s1600-h/screenshot.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5097036686826119026&quot; src=&quot;http://2.bp.blogspot.com/_7Q2rGqIQOAk/RrxP3IVnn3I/AAAAAAAAAAw/fLsmwKNwapg/s400/screenshot.png&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 392px; height: 167px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;The screenshot shows ChordExtractor output as viewed with the Annotator. The song being analysed is Debaser-WoodenHouse.mp3. The upper half of the screenshot shows the old output (to be exact the ChordExtractor from current svn, as extracted with my computer using fftw3). The lower half shows the new improved segmentation (notice the chord segments are much bigger, not that, well - segmented).&lt;br /&gt;&lt;br /&gt;Problem is - this code exists only in my sandbox for now... I unfortunately reverted to my old pre-svn methods of programming - more or less just jabbing at the code as long as the number of segfaults stays manageable (just one with this code, shows how simple the changes are!). The next few days will hopefully see it cleaned and committed to the svn.&lt;br /&gt;&lt;br /&gt;What this new improved segmentation actually does ...&lt;br /&gt;&lt;br /&gt;Some chords are very similar to others i.e. C# Minor differs from A Major by just one note (G# exchanged for A). When you play just the two common notes for the first 5 seconds and then a full chord for the next 5, you'll know that you're not really changing the chords... but the old algorithm would probably show you a mix of both chords during the first 5 seconds.&lt;br /&gt;&lt;br /&gt;The new algorithms calulates a chord similarity matrix and takes this similarity into account when deciding whether a new segment really needs to be inserted. This is enough to produce the results above. I still hope this simplicity will allow some nice improvements... but this is still to be seen (hopefully before the GSoC deadline, *gulp*).&lt;br /&gt;&lt;br /&gt;For anyone wishing to see the results, links to the new and old ChordExtractor .pool files for the songs that come as examples with Annotator:&lt;br /&gt;&lt;a href=&quot;http://www.box.net/shared/ihh2gdfono&quot;&gt;Debaser, Wooden House, old&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.box.net/shared/vmvqdcy15t&quot;&gt;Debaser, Wooden House, new&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.box.net/shared/vmvqdcy15t&quot;&gt;Debaser, Coffee Smell, old&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.box.net/shared/vmvqdcy15t&quot;&gt;Debaser, Coffee Smell, new&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/6230855389015998097-4729883697362646743?l=ro-baczek.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Roman</name>
			<email>noreply@blogger.com</email>
			<uri>http://ro-baczek.blogspot.com/search/label/CLAM</uri>
		</author>
		<source>
			<title type="html">RO-baczek BLOG</title>
			<link rel="self" href="http://www.blogger.com/feeds/6230855389015998097/posts/default/-/CLAM"/>
			<id>tag:blogger.com,1999:blog-6230855389015998097</id>
		</source>
	</entry>

</feed>

