<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cosimo's blog.</title>
	<atom:link href="http://blogs.gnome.org/cosimoc/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/cosimoc</link>
	<description>things about GNOME and music</description>
	<lastBuildDate>Tue, 15 Jul 2008 11:20:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MediaManager, week 7</title>
		<link>http://blogs.gnome.org/cosimoc/2008/07/15/mediamanager-week-7/</link>
		<comments>http://blogs.gnome.org/cosimoc/2008/07/15/mediamanager-week-7/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 11:20:21 +0000</pubDate>
		<dc:creator>cosimoc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/cosimoc/2008/07/15/mediamanager-week-7/</guid>
		<description><![CDATA[Hi everyone,
Last week I have been to Istanbul, to attend GUADEC. It has been an amazing time there, and I have been really happy to meet, socialize and share ideas with the other SoC students and some of the GNOME gurus  
Together with Bastien, Clemens and Felix, we planned the next final steps for [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone,</p>
<p>Last week I have been to Istanbul, to attend GUADEC. It has been an amazing time there, and I have been really happy to meet, socialize and share ideas with the other SoC students and some of the GNOME gurus <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-raspberry.png' alt=':P' class='wp-smiley' /> </p>
<p>Together with Bastien, Clemens and Felix, we planned the next final steps for the MediaManager project. Also, it seems that Felix&#8217; project (Cheese integration) will be one of the first clients to use my MediaManager library to expose cool features in the GtkFileChooser! <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
<p>== Work to be done ==</p>
<p>- Write a set of widgets wrapping around the backend code<br />
- Write a GtkModule that hooks up into the GtkFileChooser to achieve my ultimate SoC goal of integration with it.</p>
<p>== Timeline ==</p>
<p>I don&#8217;t know how much work I will be able to do in this following week until the 23rd of July, as I&#8217;m having some exams in this timeframe. Anyway, afterwards I&#8217;ll be home until the 10th of August at least and working again full-time on the project, so I came up with this plan, which would be perfectly synced with both the SoC timeline and my holidays <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
<p>- 24th of July to 31st of July, writing of the widgets<br />
- 1st of August to 5th of August, writing of the GtkModule<br />
- 6th of August to 10th of August, final bugfixing &#038; release</p>
<p>Feel free to mail me for any suggestions on the widget part or if you think your application needs some specific widget to use my library. I will start coding them in the next week, so there&#8217;s still time for thinking/designing.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/cosimoc/2008/07/15/mediamanager-week-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GNOME 3.0 = Tabs!</title>
		<link>http://blogs.gnome.org/cosimoc/2008/07/12/gnome-30-tabs/</link>
		<comments>http://blogs.gnome.org/cosimoc/2008/07/12/gnome-30-tabs/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 22:41:09 +0000</pubDate>
		<dc:creator>cosimoc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/cosimoc/2008/07/12/gnome-30-tabs/</guid>
		<description><![CDATA[It seems that the GNOME community has finally reached the long-awaited wide consensus about the future direction for the project. It&#8217;s all about tabs!
We&#8217;ve been discussing the issue here at GUADEC and it seems that many guys really agree this is the path we want to follow. I am pretty sure the guys from the [...]]]></description>
			<content:encoded><![CDATA[<p>It seems that the GNOME community has finally reached the long-awaited wide consensus about the future direction for the project. <strong>It&#8217;s all about tabs!</strong></p>
<p>We&#8217;ve been discussing the issue here at GUADEC and it seems that <a href="http://uwstopia.nl/blog/" target="_blank">many</a> <a href="http://www.barisione.org/blog.html" target="_blank">guys</a> really agree this is the path we want to follow. I am pretty sure the <a href="http://www.vuntz.net/journal/" target="_blank">guys from</a> <a href="http://blogs.gnome.org/aklapper" target="_blank">the release team</a> will just support it as well, as all the community is so excited by the new stuff that is happening that we really don&#8217;t want to stop the effort now.</p>
<p>Also, it seems that GTK+ will help us by <a href="http://blogs.gnome.org/johan/2008/07/12/simplified-tabbing-support-in-gtk/" target="_blank">providing a cool API</a> for that, so let&#8217;s just make it happen!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/cosimoc/2008/07/12/gnome-30-tabs/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Arrived in Istanbul</title>
		<link>http://blogs.gnome.org/cosimoc/2008/07/07/arrived-in-istanbul/</link>
		<comments>http://blogs.gnome.org/cosimoc/2008/07/07/arrived-in-istanbul/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 14:45:53 +0000</pubDate>
		<dc:creator>cosimoc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/cosimoc/2008/07/07/arrived-in-istanbul/</guid>
		<description><![CDATA[I just arrived in Istanbul&#8230;I&#8217;m writing this post from the Orient Express hotel lobby!
I&#8217;m really looking forward to meet many of you GNOME people&#8230;see you soon! If you want to meet me, drop me a mail, add me on twitter (cosimoc) or contact me on IRC (always cosimoc).
See you soon!  
]]></description>
			<content:encoded><![CDATA[<p>I just arrived in Istanbul&#8230;I&#8217;m writing this post from the Orient Express hotel lobby!</p>
<p>I&#8217;m really looking forward to meet many of you GNOME people&#8230;see you soon! If you want to meet me, <a href="mailto:cosimoc@gnome.org">drop me a mail</a>, add me on twitter (cosimoc) or contact me on IRC (always cosimoc).</p>
<p>See you soon! <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/cosimoc/2008/07/07/arrived-in-istanbul/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MediaManager, week 5</title>
		<link>http://blogs.gnome.org/cosimoc/2008/07/01/mediamanager-week-5/</link>
		<comments>http://blogs.gnome.org/cosimoc/2008/07/01/mediamanager-week-5/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 12:30:06 +0000</pubDate>
		<dc:creator>cosimoc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/cosimoc/2008/07/01/mediamanager-week-5/</guid>
		<description><![CDATA[Hi everyone!
This is the report for my fifth week of work in my SoC project.
This week I managed to dedicate three days of almost full-time hacking
on the project, and I almost completed the DBus interface.
== Work done this week ==
I splitted the MMApplication and MMCategory classes into abstract
interfaces, implemented by MMSoApplication/Category and
MMDBusApplication/Category. This was needed, [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone!</p>
<p>This is the report for my fifth week of work in my SoC project.<br />
This week I managed to dedicate three days of almost full-time hacking<br />
on the project, and I almost completed the DBus interface.</p>
<p>== Work done this week ==</p>
<p>I splitted the MMApplication and MMCategory classes into abstract<br />
interfaces, implemented by MMSoApplication/Category and<br />
MMDBusApplication/Category. This was needed, as the implementation of<br />
the methods which get the categories and the hits are very different. To<br />
pass the objects (i.e. the filters and the hit collection) over the bus,<br />
I serialized their members into a XML tree. So I spent some time<br />
familiarizing with the libxml2 reader/writer API and finally wrote<br />
methods that transform my objects into strings to be sent over DBus.<br />
I also had to refactor some code into the Manager itself to make it more<br />
DBus friendly. In the end, the DBus interface that an app should expose<br />
is very simple:<br />
- GetApplicationInfo, which returns the desktop id and the supported<br />
types<br />
- GetCategories, which returns two string arrays; one for the names and<br />
the other for icon names<br />
- GetHits, which takes as arguments the category name and a filter, and<br />
returns a hit collection.</p>
<p>I am quite happy with the work so far, and I think I will have finished<br />
a first implementation of the &#8220;backend&#8221; (i.e. non-UI) part by the next<br />
week, just like I originally planned in my proposal! <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
<p>== Work for the next week ==</p>
<p>I don&#8217;t know if I will be able to do much hacking next week, as on the<br />
next Monday (July 7th) I&#8217;ll be leaving for GUADEC, in Istanbul and I<br />
have to prepare many things. Though, there&#8217;s some things that I want to<br />
do:<br />
- GErrorize the _unserialize () methods<br />
- Write more tests for the DBus interface<br />
- Re-read the code written so far and look for possible<br />
optimizations/bugs<br />
- (optional) Try to implement the first widgets.</p>
<p>So I&#8217;m looking forward to meet everyone of you in Istanbul, I hope we&#8217;ll<br />
have a great time!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/cosimoc/2008/07/01/mediamanager-week-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MediaManager, week 4</title>
		<link>http://blogs.gnome.org/cosimoc/2008/06/24/mediamanager-week-4/</link>
		<comments>http://blogs.gnome.org/cosimoc/2008/06/24/mediamanager-week-4/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 00:14:50 +0000</pubDate>
		<dc:creator>cosimoc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/cosimoc/2008/06/24/mediamanager-week-4/</guid>
		<description><![CDATA[Hi everyone, this is my report for the fourth week of coding for my SoC
project.
This week hasn&#8217;t been as productive as the first three, as I have been
quite busy with some personal things.
== Work done this week ==
I spent quite some time on DBus: first reading the documentation and
learning the basics and then fighting to [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone, this is my report for the fourth week of coding for my SoC<br />
project.</p>
<p>This week hasn&#8217;t been as productive as the first three, as I have been<br />
quite busy with some personal things.</p>
<p>== Work done this week ==</p>
<p>I spent quite some time on DBus: first reading the documentation and<br />
learning the basics and then fighting to solve some nasty crashers in<br />
the code I was writing.<br />
In the end, I made a separate executable helper, mm-dbus-manager, whose<br />
activation should be auto-activated on request (i.e. when the library<br />
wants to know the applications registered on the DBus interface or<br />
interact with them). The helper puts a manager on the bus, which takes<br />
care of spawning the application-specific executables, which in turn<br />
register themselves to the manager and should expose and implement the<br />
methods of my interface.<br />
The manager discovers the available application-specific executables by<br />
looking for GKeyFiles installed in a known location.<br />
Apart from setting this up, I spend some other time autofooizing the<br />
whole project in a much nicer way; the test suite is getting better too,<br />
and I also wrote tests for the DBus interface.</p>
<p>== Work for the next week ==</p>
<p>- Keep the work and hopefully finish the DBus parts (i.e. implement the<br />
queriable interface and the serialization and deserialization of library<br />
objects).<br />
- (optional) Do the other tasks I had setup for this week and didn&#8217;t<br />
have the time to do.</p>
<p>== Resources ==</p>
<p>As usual, you can find my work in <a href="http://repo.or.cz/w/mmediamanager.git" target="_blank">my git repo</a> tagged &#8220;week4&#8243; now.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/cosimoc/2008/06/24/mediamanager-week-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MediaManager, week 3</title>
		<link>http://blogs.gnome.org/cosimoc/2008/06/16/mediamanager-week-3/</link>
		<comments>http://blogs.gnome.org/cosimoc/2008/06/16/mediamanager-week-3/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 22:56:59 +0000</pubDate>
		<dc:creator>cosimoc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/cosimoc/2008/06/16/mediamanager-week-3/</guid>
		<description><![CDATA[It seems this week I had fewer time than last week to work on the project, due to University, personal business and the talk I gave.
Anyway, I managed to complete almost all the tasks I set for this week, finishing a first implementation of the filtering API. The only thing I did not have time [...]]]></description>
			<content:encoded><![CDATA[<p>It seems this week I had fewer time than last week to work on the project, due to University, personal business and <a href="http://blogs.gnome.org/cosimoc/2008/06/12/gnome-hacking-in-guadalajara/" target="_blank">the talk I gave</a>.</p>
<p>Anyway, I managed to complete almost all the tasks I set for this week, finishing a first implementation of the filtering API. The only thing I did not have time to fully write are proper tests for it, so do not expect it to work and shine yet <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
<p>As always, you can grab a copy of the project from <a href="http://repo.or.cz/w/mmediamanager.git">my git repository</a> on repo.or.cz. I am making a tag each week, and tagged versions should be guaranteed to compile and run the included tests.</p>
<p>== Work for  the next week ==</p>
<p>- Finish coding the tests and iron out some more the filtering API.</p>
<p>- Take some time to think about how object ownership works in the whole code I wrote and fix some leaks (if any).</p>
<p>- Implement a DBus interface.</p>
<p>- (optional) Try to think about a signal-enabled implementation of the HitCollection.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/cosimoc/2008/06/16/mediamanager-week-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GNOME hacking in Guadalajara :)</title>
		<link>http://blogs.gnome.org/cosimoc/2008/06/12/gnome-hacking-in-guadalajara/</link>
		<comments>http://blogs.gnome.org/cosimoc/2008/06/12/gnome-hacking-in-guadalajara/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 17:23:07 +0000</pubDate>
		<dc:creator>cosimoc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/cosimoc/2008/06/12/gnome-hacking-in-guadalajara/</guid>
		<description><![CDATA[Great news everybody!
I finished some hours ago to give my first GNOME talk at my University   The talk was called &#8220;GNOME Hacking in Guadalajara&#8221; for no specific reason other than &#8220;GNOME Hacking in Florence&#8221; seemed to be less cool. And for some hours, I have been Cosimo Garcia Lopez, a mexican uber-cool hacker [...]]]></description>
			<content:encoded><![CDATA[<p>Great news everybody!</p>
<p>I finished some hours ago to give my first GNOME talk at my University <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' />  The talk was called &#8220;GNOME Hacking in Guadalajara&#8221; for no specific reason other than &#8220;GNOME Hacking in Florence&#8221; seemed to be less cool. And for some hours, I have been Cosimo Garcia Lopez, a mexican uber-cool hacker <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-wink.png' alt=';)' class='wp-smiley' />  The event was organized by <a href="http://www.lilik.it">LILiK</a>, a stuednt free software lab I am member of.</p>
<p><a href="http://pi242422.wordpress.com/">Alessandro</a> made an introduction about what GNOME is, and I talked about the cool libraries we have inside our platform, writing in about an hour as example, a little app that plays with libempathy and GIO to get Jabber messages and downloading http uris we receive, opening them with the default application. I ended the talk promoting <a href="http://bugzilla.gnome.org">bugzilla</a> and encouraging people to spread the (GNOME-)love and start writing patches now!</p>
<p>The room wasn&#8217;t much crowded, but the people there were really interested and made me a lot of questions about GTK+ and GObject. I am quite proud of this little achievment&#8230;if someone an year ago told me I was going to hold a talk about developing GTK+ applications I would have laughed at him <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://blogs.gnome.org/cosimoc/files/2008/06/hacking.png" title="guadalajara"><img src="http://blogs.gnome.org/cosimoc/files/2008/06/hacking.png" alt="guadalajara" /></a></p>
<p>== Summer of Code ==</p>
<p>In other news, I&#8217;ve made some more progress on the filtering API for MediaManager, but haven&#8217;t had the time (due to the talk) to write any tests yet. More about this on the next weekly report.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/cosimoc/2008/06/12/gnome-hacking-in-guadalajara/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MediaManager, week 2</title>
		<link>http://blogs.gnome.org/cosimoc/2008/06/09/mediamanager-week-2/</link>
		<comments>http://blogs.gnome.org/cosimoc/2008/06/09/mediamanager-week-2/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 21:36:09 +0000</pubDate>
		<dc:creator>cosimoc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/cosimoc/2008/06/09/mediamanager-week-2/</guid>
		<description><![CDATA[Hey, so the second week is over, and I managed to complete all the tasks I set for this time!  
== Work done this week ==
Until friday I&#8217;ve finished the first implementations of MMHitCollection, MMHit and MMFilter (though the last two do not do anything interesting yet). Also, I&#8217;ve spent quite some time setting [...]]]></description>
			<content:encoded><![CDATA[<p>Hey, so the second week is over, and I managed to complete all the tasks I set for this time! <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
<p>== Work done this week ==</p>
<p>Until friday I&#8217;ve finished the first implementations of MMHitCollection, MMHit and MMFilter (though the last two do not do anything interesting yet). Also, I&#8217;ve spent quite some time setting up all the autofoo needs for the project, generating libmmanager.so.</p>
<p>Then, I&#8217;ve written a simple applications to test the backend side of the API and another simple one to query the results, and after a bit of struggling everything seems to work fine.</p>
<p>Starting from today, I&#8217;m working on the implementation of the filter side.  I tried to think a clever and extendible API for queryable attributes: so we have an extensible MMAttributeManager interface, which inside the library is implemented by MMAttributeBaseManager, MMAttributePhotoManager and so on, but it can provide any kind of attribute details, so it would be easy to write implementations for other kind of things. Its duty is to list and create all the possible attributes for a speficic media type. The atributes created by the manager should only contain a type, a name and a description.</p>
<p>So, a MMFilterParam is created, with a MMAttribute, an operator (equal, greater, less, &#8230;) and a value. By setting one or multiple MMFilterParams on a MMFilter you can actually query the application database to obtain your hit collection. Finally, a MMHit will contain an hash table of the MMAttributes with actual values relative to the object.</p>
<p>All of this is not yet implemented, though I started coding it today and some things are already there (untested).</p>
<p>== Plan for this third week ==</p>
<p>- Finish the filtering part.</p>
<p>- Code some &#8220;real-life&#8221; tests for the filtering API.</p>
<p>- (optional) Start investigating the D-Bus API.</p>
<p>I&#8217;d really like to finish the backend + D-Bus part until the end of June, to have the time to discuss it with someone at GUADEC and then have a full month for the GTK+ part and to iron out what&#8217;s wrong.</p>
<p>That&#8217;s all for now <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/cosimoc/2008/06/09/mediamanager-week-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hello Planet :)</title>
		<link>http://blogs.gnome.org/cosimoc/2008/06/02/hello-planet/</link>
		<comments>http://blogs.gnome.org/cosimoc/2008/06/02/hello-planet/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 12:34:33 +0000</pubDate>
		<dc:creator>cosimoc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/cosimoc/2008/06/02/hello-planet/</guid>
		<description><![CDATA[Hi everyone, this is my first post ever on Planet GNOME!
First, I&#8217;d like to introduce myself: I&#8217;m Cosimo Cecchi, I am 22 and I am from Florence, Italy. I am in the third year of Computer Engineering at the University of Florence. I already contributed to some GNOME modules during the last year, and I [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone, this is my first post ever on Planet GNOME!</p>
<p>First, I&#8217;d like to introduce myself: I&#8217;m Cosimo Cecchi, I am 22 and I am from Florence, Italy. I am in the third year of Computer Engineering at the University of Florence. I already contributed to some GNOME modules during the last year, and I really enjoyed it! So I decided to try the Google SoC under the GNOME flag. I am glad I have been accepted for my GtkMediaManager idea [1], and I really look forward to accomplish it.</p>
<p>Here&#8217;s a report of my first week of work for MediaManager.</p>
<p>After some time spent on designing a good architecture for my project,<br />
some days ago I started the actual coding, which is being done in a<br />
public git repo [2]. Nothing is working/compiling yet, but I feel the<br />
project is shaping up quite nicely.</p>
<p>Also, I spent some time contacting my mentor,<a href="http://eikke.com/" title="Nicolas Trangez"> Nicolas Trangez</a>, to hear<br />
his opinions on the design I made, before start coding, and he gave me<br />
some nice ideas that I am looking forward to implement <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
<p>== Brief overview of the architecture ==</p>
<p>Among the two choices I had in my project description (Xesam vs<br />
application provided plugins) I went for the plugins way, but I am<br />
trying to design it in a way that the manager could be easily extented<br />
to support a Xesam plugin too.<br />
So, applications can ideally implement the manager interface in two<br />
ways: installing a .so in a well-known place and letting GModule do the<br />
magic, or installing a .desktop file and using a D-Bus activated<br />
service. This is to make it easy for applications written e.g. in Python<br />
or C# to use the interface provided by the library. I am currently<br />
implementing the GModule part, the D-Bus interface will come a bit later<br />
(when I have the GModule implementation up and running).</p>
<p>On top of this, the manager library is about Applications, Categories<br />
and Hits. A Manager object keeps track of the available applications,<br />
and an application has mainly the following methods:<br />
- GDesktopAppInfo getInfo ()<br />
- GList getCategories ()</p>
<p>A Category is a subset of the content managed by the application (e.g. a<br />
playlist, &#8220;Last Roll&#8221;, &#8230;) and each application has at least one<br />
category (the whole library). They are provided by the application and<br />
they can be queried to retrieve the &#8220;real stuff&#8221;. A category should have<br />
the following methods:<br />
- GIcon getIcon ()<br />
- char getName ()<br />
- HitCollection getHits (Filter f)</p>
<p>Hits are the &#8220;real stuff&#8221;, as they resemble the real content managed by<br />
the system. A Hit have some generic methods like<br />
- getName ()<br />
- getUri ()<br />
and the most important GFile getFile (), which I think will be<br />
implemented in a separate subclass (HitFile) as it can be useful to<br />
decouple the Hit from the GFile for some use cases.</p>
<p>Filters instead are objects on which you can set the attributes that the<br />
application has to query on. The library will provide specialized<br />
filters for a specific type i.e. PhotoFilter, MusicFilter,<br />
VideoFilter, &#8230;, which will contain all the possible attributes for<br />
that media type.</p>
<p>On top of this, I will eventually write libmmanager-gtk, which will<br />
contain widgets for data provided by libmmanager.</p>
<p>== Weekly Status ==</p>
<p>As I already said, nothing is working or compiling yet, but I am quite<br />
happy of how the project is coming up.<br />
I have written (but not tested) a GTypeModule subclass to handle .so<br />
files, a manager for modules, the providers to interact with the modules<br />
and some code to handle Applications and the global manager.</p>
<p>Next week I plan to finish a rough implementation of Categories, Hits<br />
and HitCollections, to make all this compile and then to write a test<br />
program to drive further development and to test whether the API I<br />
designed is really worth.</p>
<p>[1] http://code.google.com/soc/2008/gnome/appinfo.html?csaid=15C2B5BC19A9276A</p>
<p>[2] http://repo.or.cz/w/mmediamanager.git</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/cosimoc/2008/06/02/hello-planet/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Summer of Code 2008</title>
		<link>http://blogs.gnome.org/cosimoc/2008/04/23/summer-of-code-2008/</link>
		<comments>http://blogs.gnome.org/cosimoc/2008/04/23/summer-of-code-2008/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 15:03:52 +0000</pubDate>
		<dc:creator>cosimoc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[myself]]></category>
		<category><![CDATA[soc]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/cosimoc/2008/04/23/summer-of-code-2008/</guid>
		<description><![CDATA[I&#8217;ve ever resisted the temptation to open a blog, but the fact that I&#8217;ve been accepted for Google Summer Of Code 2008 is just too cool and deserves some blogging  
A little but about myself: my name is Cosimo Cecchi, I am 22 and I live and study in Florence (third year in Computer [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve ever resisted the temptation to open a blog, but the fact that I&#8217;ve been accepted for Google Summer Of Code 2008 is just too cool and deserves some blogging <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
<p>A little but about myself: my name is Cosimo Cecchi, I am 22 and I live and study in Florence (third year in Computer Engineering). I&#8217;ve been doing some work across various GNOME modules in the last year (Epiphany and Nautilus mainly) and really had good time doing it and knowing some people from the community. So when I saw <a href="http://blogs.gnome.org/calum/2008/02/18/media-at-your-fingertips/">Calum&#8217;s post</a> about media integration in the GNOME desktop, I thought that was a good job to work on for a Summer Of Code project so I applied for it, and guess what, I was accepted <img src='http://blogs.gnome.org/cosimoc/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
<p>I&#8217;ll blog about the details of my project later, now I&#8217;d like to thank some <a href="http://www.barisione.org/blog.html">cool</a> <a href="http://www.xatom.net/">people</a> for the support and the ideas they gave me and also I&#8217;d like to wish a good luck to everyone involved in GSoC this year!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/cosimoc/2008/04/23/summer-of-code-2008/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
