59
« on: December 06, 2007, 11:34:27 am »
Wow, this turned into a rather heated debate...
The MPlayer/Xine discussion:
The current approach of the system deciding which media player to use for a particular task is the correct one, in my opinion. Granted, that there is more work to do and some code probably needs to be cleaned up (I'll just take Thom's word on this as I haven't looked at it myself), but the general approach is sound. Lets say a brand new codec came out that only one Media Player specially designed for that codec could play, we would want LinuxMCE to just launch that player without the user having to think about it; as far as they would be concerned LinuxMCE could play their media and that's all they (including me) would care about. Of course if MPlayer does prove to have more performance (yes, this is extremely important for LinuxMCE) than Xine in certain areas then we should expand MPlayer's use for those cases, but only those cases.
The package discussion:
The whole package debate is moot. LinuxMCE already has packages and the new release will expand on this. It has been LinuxMCE's goal from the beginning to be on top of another distro like that. And, no, this would not in any way make it not an appliance. LinuxMCE should always have a default install and wizards that configures everything for the user and JUST WORK. Making packages doesn't change that... The packages just help with upgradability and scalability... which also helps with the security...
The UI discussion:
I couldn't agree more that the UI needs work. I have mentioned this several times in other places and even gave some thoughts as to improving it. I also couldn't agree more that developers that specialize in functionality shouldn't be creating the UI. I, myself, am an "under the hood" type of developer and as such I almost never create a UI on my own. What I usually do at work is create some focus groups from users, and create a few mock-ups for them that mimics the most important functionality (this production quality code is later re-used). The end-users usually have the best ideas on how the UI should operate. Then I work with some artists (not very many developers can do this and we desperately could use some artists in this project) to make the UI look pretty. Then I take it back to the users and get their thoughts again. After a few more tweaks we have a damn nice UI. This may seems like a lot of work, but it really isn't and is the best approach, IMHO, to get a functional, intuitive, and pretty UI. This also coincides with the Unified Process. You OOP devs should know what I mean...
The configuration discussion:
This is where I think I disagree with some of what Thom said. I don't think the database should be used to store the configuration as an intermediary between the applications config and LinuxMCE. We definitely need an API that as an intermediary (we don't disagree there), however this API should directly modify the applications configuration rather than have the config stored in LinuxMCE's database and then use what is stored in that database to actually modify the configuration. If it modified the configuration directly then user changes to that configuration (if they used the applications own configuration editor, for example) would not be wiped out and LinuxMCE would just continue on using that configuration. I don't think this would break the appliance aspect of it as the wizards and install process (in the orbiter, or web, or whatever) would continue to use that API and wouldn't care how that API gets or sets the config. Granted this isn't important if all we want is an appliace, but we want more (at least I do). I want to be able to have something that JUST WORKS and be able to customize it easily without having to go through LinuxMCE's databases or specialized configurators. This is certainly a tall order; I'm definitely not disagreeing there, but lets face it, the people who are using this system now are the type of people who want to customize things... but without getting a migraine from dealing with LinuxMCE constantly changing things back and then having to poor through the database and code to see why that's happening...
Summary:
LinuxMCE should always be able to be an appliance by default, but should also play nice with others. Please note that I'm not in any way putting down the devs that put this thing together. It's remarkable that they were able to get all the apps they have working together as seamless as they are now... I just want that expanded upon so it's even more seamless in the configuration standpoint. Also, the UI needs work before LinuxMCE will ever reach the average end-user. I cannot and currently do not recommend LinuxMCE to my friends and family because I know it would frustrate them to no end (though they wouldn't care about being able to configure things outside of LinuxMCE)...