Coherence

It turns out Coherence is a bit better at serving music to my Xbox 360 than uShare is. Currently my setup is improved over uShare thusly:

  • It doesn't include non-genre/album/artist/playlist entries in those respective categories (that was a very strange thing on uShare's part; it put individual files in those categories, or at least that's what the xbox saw)
  • My xbox hasn't frozen up while playing media from it yet.

I was playing Wik while listening to Sunny Day Real Estate today. That was confusing.

It's also written with Twisted, which is neat. There is also theoretically support for meaningfully listing Artists and Albums, but the plugin which is responsible for that is not working for me yet.

Fortunately a developer was around to help me out with configuring it. I'll show you how I got it working, but I'll skip all the parts about installing Coherence and its dependencies (which was very easy for me). All of the dependencies are either in Ubuntu or are part of the software stack that I have development checkouts of (Twisted, Nevow, Divmod stuff).

First create a file with the following contents:

logmode = warning
interface = eth1
web-ui = yes

[subsystem_log]

[plugins]
[[FSStore]]
content = /home/radix/Media
name = Coherence Test Content


Then run ./bin/coherence -c /path/to/your-coherence.conf

Coherence has a way to go, as its web site explains: "This is still young software! It won't destroy any data - at least it isn't supposed to ;-) - but it might not yet fulfill your expectations in your particular environment." Etc.

Here's a hint, guys:

1. WRITE UNIT TESTS. Preferably before you write implementation. Please. Your software is doomed to suckiness if you don't have a good suite of unit tests.

2. Don't use 0 as a default web server port. I shouldn't have to run "netstat -nlp | grep python" and guess at ports to find out where my web UI is. Either choose something like 8080 (and document it) or show an error message if there isn't one. OTOH, this isn't a big deal right now since the web UI doesn't really do anything.

3. Make your software easier to set up and use, and write better documentation. I know this goes without saying, but here's a suggestion: every contribution should be peer reviewed and ensured to have full documentation. It's really much easier to keep the quality of your code and documentation high when you have a strict set of rules in place, as we Twisted developers have learned.

However, good job on giving me a media server that sucks less! I'll be filing bugs and working with it until I can get a movie to play :-)