Tuesday, April 20, 2010

Future of Rygel

While you can follow the progress of Rygel through the release announcements on my blog, mailing-lists and even git log, I feel that I am not providing enough information about the future plans. Also there are some things that are not (or so far have not been) in a shape to be part of a release so here is some of what is coming:

Logo


I've been looking for an artist to make me a nice logo ever since the start of the project. A few artists gave it a try but they didn't succeed in creating anything worth showing to anyone. I couldn't possibly blame them since:

  • Its not very clear to everyone what Rygel is and I suck at explaining things.
  • Its hard to represent it even when you learn what it is.

So what happened was that I told Sebastian that I was so jealous of his new logo, he asked Klaus to attempt to do the same for Rygel. He did and after a bit of talking and him trying different ideas, we finally agreed on this:

64x64:


32x32:

16x16:

Some people like it, some people don't but I like it. I think Klaus did a pretty good job, keeping in mind this wasn't an easy one. If you are one of those who don't like it, feel free to provide better alternatives or suggestions for Klaus.

Tracker or no Tracker


About an year ago, we (mostly Jens Georg) wrote a plugin (media-export) for Rygel that exposes folders on filesystem on the UPnP network. Although that meant us re-implementing some wheels and getting hated (no i know Ivan still loves me :)) for not being active member of Tracker revolution, I think this was still the right decision because:

  • The stable tracker version (0.6) we were using sucked big time in many ways, a fact admitted by every Tracker developer I've talked to regarding this.
  • AFAIK most GNOME developer (not involved with Tracker project) and distribution packagers didn't feel very positive about the project. Rygel was getting part of the heat for depending on it and that wasn't helping in gaining popularity for a new project.
  • It wasn't really very difficult to implement media-export in Vala, I didn't need to spend a lot of time on it myself and I didn't feel like standing in the way of a new plugin that I'll get almost for free and will satisfy a lot of people.

So now its mid'ish 2010, the world has changed and so has Tracker:

  • Tracker is now a blessed GNOME dependency. That means no one can say 'boo' at me anymore for depending on Tracker, while I walk the streets. More than enough people are now positive about the project.
  • New Tracker APIs are very different from that of 0.6, richer easier, dynamic, complete and future proof. Not to mention its based on existing and proven technologies/concepts: RDF and Sparql.
  • Most of the performance issues that tracker 0.6 was known for, has been addressed appropriately.
  • Tracker is now nicely divided in different components so an application can easily depend only on the parts that it really need. For example, Rygel won't have to depend on evolution since it doesn't need any email-related stuff.
  • I made sure 'nmm' ontology of Tracker has the needed UPnP properties that I will need in Rygel.

Some people still just don't like the very idea of Tracker and for those lost souls, I quote Owen Taylor:

I think it will definitely be hard to implement our ideas without something that looks a lot like Tracker, and since we have Tracker something that looks a lot like Tracker is most likely Tracker :-)

So keeping these facts in mind I've decided to:

  • Strip down almost all the functionalities of media-export so it only exposes the file-system hierarchies on UPnP network without any metadata. Actually this is exactly what Lennart wanted in the first place when he asked for this plugin. With metadata extraction in place, we are no better than tracker 0.6 anyway.
  • Remove media-export from preferences UI. Keeping in mind what kind of users will still use media-export in its new form, its quite enough that they can configure the directories to export by manually editing the configuration file.
  • Provide an easy way for the user to specify which media from tracker-store to expose on UPnP network. Since user chooses the files to harvest for metadata and keep in tracker-store using tracker's preferences UI, I think it's better if this option is also provided in there but I need to discuss with Ivan yet regarding this. If that is not feasible, I'll do this in rygel-preferences.

Other features


  • Unit tests: In the last release we introduced a few unit tests. This is just the beginning and we intend to write units for at least all core modules.
  • MediaServer v2: Iago and Juan talked about this in their blog and announced that they already have implemented v2 so now I have to do my part and implement the consumer part in Rygel: i-e Port v1 code to v2 and I am already on it.
  • DLNA compliance: Looking at the results of DLNA CTT session we had last time, we've a lot of work to do here. Hopefully mostly small fixes here and there.
  • Getting married on 29.05.2010. This is the hardest one but I'm sure I can do it. :)

Update


Some facts that I forgot to mention/explain when I posted the blog entry and to reply to some comments I received here and on IRC:

  • media-export is not being dropped. Please read carefully before making such assumptions and then saying 'Boo' to me for that. :)
  • I still don't plan to have a hard dependency on Tracker at all. It will still be one of the plugins. If you want something like Tracker that is not tracker, you are more than welcome to take the existing media-export code and maintain it as separate or part of your project/process.
  • Once gst-convenience library that Edward and Arun are working on, is in a stable state and delivers to it's promises of speeds (so far it has), we'll re-add export of metadata in media-export but this time around, we'll do it on the fly and won't need to deal with databases and stuff.
  • Tracker has always (even in the 0.6 days) provided easy ways for specifying which directories you want it to index so once we've a way to tell it which of the indexed media to expose on UPnP, we've all the features the media-export currently provides.

I'll leave the comments about the Logo for Klaus to reply. :)

Update#2


OK OK, I get it that I am making a lot more people unhappy than I am making happy with the 'media-export' plan. So based on that and the fact that Jens is willing to keep maintaining media-export for me, I'll leave this as is. I'll just move code in the core that only media-export uses into media-export plugin. I myself will embrace the future and concentrate on Tracker integration. :)

8 comments:

patrys said...

Wouldn't it be better to stack video, photo and audio icons and connect them to the network? You know, à la folder-remote or network-server icons from the GNOME Icon Theme.

Also, Tango style guidelines perhaps? ;)

Rob said...

I hadn't seen that comment from Owen before. Love it.

mmc said...

The logo is really a mix and match of different styles... One icon is greyscale, the other has some colour, the third is a painting. Be careful with the shadows, some go up, some go down, the notes have almost no shadow, the shadow of the green line is closer on the left than on the right.

hadess said...

Seriously? That's a major change of functionality for me, and a hard Tracker requirement makes me think that I don't want to see it integrated into GNOME until there's a way to index just the stuff I want Rygel to export.

I don't want tracker to index all my data, and I certainly don't trust it not indexing things I don't want indexed.

zeenix said...

I just updated the blog entry to reply to some of the comments, please read under the "Update" header at the bottom of the blog entry.

Zach Goldberg said...

Thanks for all your hard work on Rygel :) I am glad you are taking the time to carefully consider what code to support and what helps move the project forward with a solid and clean code base. Also, thanks for blogging about this and allowing for the opportunity to get feedback!

-Zach

p.s. Love the logo =P

anna said...

As someone knowing more on visual stuff and arts than on coding (if any...) I'd say that the logo needs some simplification, something that mmc said too: Fever colours, eg the loops in one, pics in other, blue&grey/black might work. No shadows (ok, maybe for the loop, but put it somehow all aroudn it then). Would it work better with the loops being symmetrical..? And please, no Monalisa here... :) Put a nice pic with mountains or something.

Otherwise nicely thought idea and I like the triangular loop shape. Just some refinement and you'll have a great logo!

qu1j0t3 said...

Hello, Acrobat...

As former graphic arts professional & logo/identity designer I'd echo anna's & mmc's comments.