 All right All right, so Firstly, I'm going to say I'm a Have to confess I'm a bit nervous because usually when I do this kind of talk that the crowd isn't technical They are usually a businessman with ties and and they are more afraid of me and than I am for them So this is a different different experience for me I'm going to talk about a bit about XMS to and I'm going to first answer the first question that everybody asks me when when I say that I'm with associated with XMS. They say are you still alive and The answer to that is yeah, we are But as you know, this is our history and most of you have probably tried or are using this player even today It's one of the most popular music players for for Linux platform and It wasn't written by me or my Colleagues working on XMS too, but it was written by a guy called Peter Alman. I'm working together with him so when he quit the project we took over and the problem with the XMS player is it's messy code and it's hard dependent on GTK one and GTK one as you all know is pretty obsolete by now, so more or less When we started to look at this We heard this a lot The XMS code we inherited is old and messy in more specific terms It's poorly structured poorly documented and littered with duplications. It's difficult to modify and extend the one component of XMS Without breaking another we spent most of our time fixing that Problems that we introduced for seemling instant modifications and this is a direct quote from BMP developers that forked XMS and I just want to say if there any BMP developers in here, I have a news for you We know this and We fixing this right now So when we started to look at next generation player We looked at the code base and realized We could go on a list all the problems of XMS one and it would take us days So there is no idea to be in that code base and work with that code base and I'm not here to talk about the flaws in XMS one But rather what we done in XMS two so we all say goodbye to XMS one and a lot of distributions are already done this gen two and slack ware and Which century now probably Debian will also say goodbye to it and So The start of the new XMS player XMS to was actually done in January 2003 and this is quite quite some years ago and As you can see by this graph we borrowed from Olo We have developed some a substantial man a lot of code And So what is this code? When we started to look what to include and how to build XMS to with all the imagery of XMS one still in our heads We realized that some things couldn't be done in the current code base and these things that we see here Our buzzword bingo from music players today Those things we got to have them. We got to have media lab plus cross-platform sexy Faces everything like that all these things we need to comply with and and We also learned a very important history election lesson from XMS one We don't want to hardly hard dependent on our widget set because as we saw with XMS one that it got Obsoleted when we went everybody moved to get GTK to we don't want to make the same mistake when everybody moves to GTK 3 or whatever so We have pretty hard competition You probably use or seen or migrated to players like Amarok beam PX rhythm box even someone using a singing bird and Then of course we have XMS to it looks like this and that was the whole The whole room going what the fuck Working for for so many years and still this is the only thing you can show This is the best you can show well that the truth is that XMS to is everything we talked about but also something else We are more like a music framework and this is where the Boring diagrams come in in my presentation What we learned was to not be hard dependent not building everything into the Widget code, but rather separate make abstractions make it easier to extend and so on so We have a client server model where the client is The thing you see on your screen and the server running in the background doing all the boring work for you decoding data Outputting it on the audio device reading the metadata doing searches everything that you need and on top of this you have an API and We have bindings for most animals and stones and coffee there is for you to build your favorite client how you wanted to look and Building a XMS client. This is the most simple client you can build and this is done in Ruby So I have no idea what this does because I don't know Ruby But as you see making a client in XMS to with the API we have defined is very easy You have a very powerful API to work with and this gives us the choice of having multiple clients if you like the GNOME or You like the trolls you can choose and you will be able to access the same Power that we have built in in the server Also one thing that we talk about often is that everything is a client For example last FM support scrambling. This is not built into the server It's actually a client running looking at whatever things are playing right now and posted to the last FM. So this is a client Growl support that we don't really actually have but we could have is also client album art support Downloading album art. It's also a client Thinking your iPod is also a client and of course we don't have any of those things, but but we could have So we have a very very nice CLI and this is the perfect client for XMS to It does everything you you wanted to you can search you can add you can Hop forward and you can stop and whatever and I see on all of you You you making this this this face again. Yes, we do have graphical clients The problem we have is that we have too much choice. So we have too many graphical clients and none of them are very good So we have a Q2 client. We have GTK clients We have big clients We have small clients We have huge clients and we also have odd clients like this one running Java on a phone Connecting to the server and you're controlling your music. So there's a lot of different ways and clients you can use in XMS to with the API and What I'm really here to say and I've read this tutorial on how to make a lightning talk is Get to the point Because you'd only have 15 minutes so get to the point and I'm getting to the point right now We have a very very good code base. We have a very very nice API. We have bindings for most languages you use in here But we still are missing the kick-ass client. So if You're sitting here and You are an expert on making cool you eyes. You should really really talk to us You can find more information on our web page or join free node the XMS to channel and Also, find the guys with the night t-shirt that says XMS to you or something else and That's it questions so Talking about frequent questions The question is do you have a client that looks exactly like XMS one? Yes, we do We do have a client It's written in Qt instead of GTK that emulates the skin layer. It sucks really really bad But it could definitely be there. Yes More questions. What what do you say? We tried. Oh We tried and They say you're arrogant shit holes and we say we are not no We we would love love to do that We haven't found anyone Preparing to do that because people are apparently like to have nightmares about PCM data and media info Yeah, good good point Yeah We do have Collaboration with MPD project which is kind of like XMS to accept that it is a subset of XMS to so what we have Done is that we implemented a bridge Translates MPD protocol to XMS to protocol for example, so you can use MPD clients with XMS to back-end more questions What would be the ultimate client? Um, I think ultimate clients are different for for different people I think that your your view of ultimate client is very different from my view of an ultimate client And that's why we built the framework in the API What we do miss is a client that we can go to the masses with and say this is our Our standard front-end that you can use to you know do to showcase all the functionality of the server and That we still miss Other things of course, there is a lot of nice things I mean I would love to see someone here write a client that that synchronized with an iPod or something like that, but what we really miss is the Showcase client that really shows all the functionality for off the XMS to server We actually we were one of the first projects using debuts and the question was what do you use for IPC and We were one of the first projects using IPC debuts as a peer-to-peer IPC But it ended up with havoc havoc the maintainer of debuts saying that what you do No one is ever done with debuts and no one will ever do it with debuts So we had to stop using debuts and right now we have our own written XMS IPC to abstract that and It's highly portable and that's I didn't have that in my talk. I should have that in that talk the client lib is 100% pure see without any dependencies and we have it running on you saw mobile phones NH100 and All the different kinds of platforms you can think about we even have it put it through two windows. We had a poor guy sticking out with windows for too long to just do that so XMS IPC is very very very small client lib to just send messages Think we have time for one more question Okay, thank you very much