LinuxMCE Forums

General => Developers => Topic started by: tschak909 on August 29, 2007, 03:57:35 pm

Title: All Developers, please read.
Post by: tschak909 on August 29, 2007, 03:57:35 pm
note: this thread is intended to instigate discussion, and to try to generate a plan of attack.

I am noticing something _very_ disturbing here, that I feel must be dealt with especially given the relatively young age of this fork of the project.

LinuxMCE developers (both present and future) have inherited a very large code base from a developer who took a very straightforward (from their perspective) approach to putting together a device agnostic messaging system and a drawing-independent user interface system for the purpose of home control and the delivery of media.

Notice, I said, from their perspective. This is very important, because for a lot of us, we came here at the viewing of the LinuxMCE demo videos. They _are_ very intoxicating, and do serve to generate a ton of excitement.

And after those of us who do manage to get the system built, and running, a lot of us immediately see something, as developers, that we want to work on...

now what?

we start digging into the system, and find that a great big part of it is still very black-boxed, not in the sense that we can't see it and mess with it, but in the sense that there are a great number of moving parts, all working like a swiss watch, to ensure that this system DOES run like an appliance. And some of us do manage to understand bits of the system and realise just how clever parts of it really are.

Assuming we get past all of this, and we see things we want to improve, what are our options?

We have some reference material on both the LinuxMCE and Plutohome.com wiki sites, which relate to programmer material. However, this material is still very sparse once you actually read through it. It becomes very difficult to get a systems-level overview to figure out which direction you need to go in, to modify, or augment a particular feature. It seems that Plutohome never got around to writing stuff down that their programming staff obviously knew, and this is understandable, they make their money doing custom development, and I am not knocking anything done up to this point.

We need to figure out, as a community, what to do next.

* Can we coordinate with Pluto to get the missing pieces of programming information? if not, we need to do a full audit of the code-base.
* We need to get the missing tools built and accessible, they do exist in SVN, but they need to be brought out in a form that can easily be installed and used. This includes the Designer and the DCEGen tools.
* Skin development/refinement. We need lots of polishing work done on the user interface, although again, information on this process is limited, what are all our options herE?
* Device driver stuff. This one is pretty obvious, and it will get done, but we need to get a library of knowledge established to allow motivated developers to fill in more hardware support. again, obvious, duh, but it does need to be on this list.

I have a fairly complete media-centric set-up (complete with an XL1B jukebox), and will slowly be folding in home automation. But, there are various things I keep noticing, that I want desperately to work on, but I am finding more and more, there are missing tools and pieces which, while they don't stop development for me entirely, do impede it significantly.

Just my thoughts, what do you all think?
-Thom
Title: Re: All Developers, please read.
Post by: Zaerc on August 29, 2007, 10:11:59 pm
Glad I'm not the only one to notice that. ;)  Eventhough I'm no "LinuxMCE developer", that is the best plan I've heard so far.

From what I have seen so far the architecture is pretty much brilliant, incredibly flexible yet relatively simple, but unfortunately the implementation could use some cleanup here and there.  Apart from that, a few simple bugs still need to be squashed.

You can add user documentation to the list as well, I know nobody wants to do it, but it needs to be done nevertheless.  The way I understand it is that if we can provide proper guidelines and instructions on adding Devices, then anybody could make their own and even "upload" them to a central database for everyone else to use.

Title: Re: All Developers, please read.
Post by: tschak909 on August 29, 2007, 10:15:46 pm
there IS sqlCVS to deal with as well, webpaul1, can we use this? is there infrastructure to support this? if we need to set up a server or something for it, what needs to be done?

-Thom
Title: Re: All Developers, please read.
Post by: bulek on August 29, 2007, 10:36:36 pm
Hi,

I've tried to transfer my contributions from Pluto system (support for Marantz Audio Receiver,etc...). I've posted to forum how to do it and received no response in quite some time now. I really have no clue what to do next other than waiting...

I'd also contribute a lot, but currently I don't know who will (if anyone at all) maintain and review changes, give some directions for contributions to be uniform and aligned with LMCE philosophy... We need some starting up effort to get more contributors on the line, but no sign of it. I understand that developers are filled with other, maybe more important stuff. But similar thing happened to Pluto also. Promising at the start with prompt help and then we all know what happened.

Regards,

Bulek.


Title: Re: All Developers, please read.
Post by: darrenmason on August 30, 2007, 01:38:48 am
Thom,

Excellent post and a good summary of what a lot of the lurking developers here are finding.
Just to add;
* The overall architecture/design of the system is good and very extensible. This includes the centralised messaging router concept and templated device heirarchy.
* The implentation of this design has, in my view, compromised the higher level design. This is not intended to be overly critical, I well understand the time pressures that were placed on the PlutoHome developers. But the device implementations, particularly involving media players/plugins and orbiters, has a high degree of coupling and undocumented dependancies.
* The current project (linuxMCE) has generated plenty of interest, which undoubtedly will include talented developers that have new ideas and are prepared to implement them. At the moment there seems to be some major barriers to this happening. These include lack of documentation to understand the mountains of code that exist and unclear mechanisms on how code can be submitted and absorbed into the project.

The sqlCVS part of the project seemed to be an effective way to have distributed development (including new devices/templates as well as the associated code) and I would like to see it used if possible.
I am keen to know what Paul and some of the others on the contact list for the project think about  these ideas.

I have quite a few ideas and potentially a technical  background that is well suited to helping, however each time I attempt to do something I get overwhelmed by the initial barriers that I mentioned and effectively lose interest. I assume others are probably in the same boat.

Anyway, I hope this thread generates some positive discussion and we can plan a path forward.

Regards
Darren
Title: Re: All Developers, please read.
Post by: dopey on August 30, 2007, 02:53:02 am
I think, currently, the main problem is that there isn't any kind of formal forum where developers can discuss things and then come to mutual decision with a plan of action. There has been numerous talks about this and so far the answer has been that the current active developers are too busy programming to deal with these community issues. I certainly understand, and appreciative,  that they are really busy, but this is something that just needs to be addressed, and sooner rather than later.

I too have some things in mind that I think should be done, but am overwhelmed by the fairly complex and sparsely documented code base. Although, given enough time, I'm sure I can figure it all out, but it's rather tedious work that's hard keep an interest in. Also, the lack of community structure is rather concerning to me and has already turned some developers away.

Although we can discuss the "plan of attack" here, really we need the developers that are currently active in the project to be in the discussion and be a big part of the decision making process.
Title: Re: All Developers, please read.
Post by: tschak909 on August 30, 2007, 02:58:46 am
I have posted this to the mailing list, and am trying....to send mail to Paul directly to try and get him in on this.

Mostly, I'm just trying to get a response, ANY response, from the developer, as to "This is where we are, this is what we're going to do."

-Thom
Title: Re: All Developers, please read.
Post by: webpaul1 on August 30, 2007, 09:07:58 am
Thom, thanks for emailing me...

I lived and breathed this code for many, many months, and went through just about every module and every class, stepped through all the calls, etc.  Yes, it was DAUNTING, and took many, many, many months to get a handle on what was going on.  The problem I have is that (a) I'm kind of lousy at documenting and don't really know how to document stuff well; kind of a self-taught programmer that lives for coding, but without any formal training on proper documentation techniques, etc.  (b) I'm not the most organized person at setting up teams, etc. (c) I'm *totally* swamped.  I spent such a huge amount of time getting the first release done, and then the second release that I neglected everything else (like my job), and, given the volume of forum posts, emails, etc., have trouble responding...

So, what I think would be in the best interest of the project is to find (1) a volunteer who wants to be the community coordinator, with the mission of recruiting developers, coordinating requests and activities, and kind of 'buffering'.  I could give this person my cell phone number so they can call me anytime.  Since I spent so much time with this code, if somebody wants to know "how do I do this", or "where is this code", or "how do these pieces fit together", I could probably answer those questions in a minute and point someone in the right direction.  Secondly, (2) we really need a volunteer who knows how to write proper documentation that can be the official 'standard bearer' for deciding how the architecture should be documented, coordinating with developers that are doing new code to be sure it's properly documented, and maybe, if anybody is up to the tedious task, coordinating other volunteers who want to go through some key pieces of the existing code and document them.  I think that if there was a somebody who knows how documentation should be done laying out the rules and providing examples, it would be easier for devs like me who don't document stuff to have examples to follow.

I think that have 2 people fill those roles would make a huge difference in the ability to get a thriving development community, and would establish some sort of order so other devs could join the team and not get frustrated.

The big, major task that needs to be undertaken in LinuxMCE is redoing the GUI (Orbiter/Designer/etc.).  You guys read the announcement from KDE that LinuxMCE is being merged into KDE, right?  Well the plan is to completely rewrite the GUI using QT 4, instead of SDL, leveraging a lot of the eye candy type effects that KDE has built in, and create a really powerful design tool that allows the creation of a GUI that is dynamic and highly skinnable.  Then KDE could get their guys who did the Oxygen and Plasma UI work to help with LinuxMCE, and the really good graphic artists/theme artists would have a rich toolset to create beautiful gui's.  The goal is that the GUI would be flexible enough to do neat effects like having the highlighted options in the main menu 'zoom' and 'explode', like the bottom icon bar in Mac OS X, but without hardcoding all that behavior.  Right now the behavior is very much hard-coded into Orbiter, so it would be difficult to create a new theme that does much more than change button images/placement, without re-writing a ton of code.  I've talked to the Pluto guys and they have an invested interest too in seeing this done because their commercial clients like Monster all want their own distinct GUI's that look nothing like what the other Pluto-based solutions are doing.  They can't currently do this with Orbiter.  It's my understanding that Pluto and perhaps even a few others are considering sponsoring developers to work on this new GUI, since it would be such a huge task and would go much faster with full time devs instead of purely part time volunteers.  I know there's discussions going on right now with KDE developers, Trolltech (the QT guys), and Pluto about how to get this going.  It's going to be a big task because afaik nobody else really has such a dynamic UI that is theme-able.  MythTV has a very theme-able UI that you don't need to write code for, but it doesn't have eye candy, 3d effects, etc.  Then you've got UI's like Windows MCE which have cool effects, but they're hardcoded and not theme-able.  So it seems like this is going to be pretty special if we get it done right.

If we get somebody to do the 'community coordinating' role, maybe that person could try to find a good dev who knows UI design well and could architect such a UI, and I can work on finding that person a sponsor so they can put all their efforts into it.
Title: Re: All Developers, please read.
Post by: Zaerc on August 30, 2007, 10:40:48 am
I would like to nominate Thom for community coordinator, as he already got the ball rolling on this, and he seems the most capable in my opinion. 

Developing a new UI would be awesome, I just hope it won't go at the expense of the already existing ones. 
Title: Re: All Developers, please read.
Post by: tschak909 on August 30, 2007, 05:10:29 pm
Building an eye-candy GUI is all well and good. Visual presentation _is_ important, and given the code-base and the current limitations of the Orbiter, this IS _a_ top priority.

With that said...

I do believe that a great amount of detail needs to be spent on making sure that the existing functionality (and I am talking from the user perspective), works, and works well, remember...this is an appliance, it needs to work as such. I'm not talking about INSTALLATION, i'm talking about AFTER the installation hurdle has been crossed and you're staring at a working orbiter, like making sure that:

* if we go into KDE, Arts doesn't clobber the soundcard, so the orbiter phone will still function.
* messaging breakdown when using a Sony VAIO jukebox (i've literally had the entire DCE router restart even when a rip was in progress, which TOTALLY causes even more bizarre behaviour with the jukebox as you continue using it.)
* button interaction, when I press a button, I want to know i pressed the button, even a simple color change, a blip sound, something.
* making sure all remote types can access all of the exposed UI elements. (Windows MCE remotes currently can't deal with the gesture rose for things like changing channel with the rotating guide,.. the MCE arrow keys are completely useless.)
* making sure auto-detected networked storage devices work

What about sqlCVS?

What about altering remote assistance for our needs?

What about the missing tools so that we can get working NOW?

The important thing to note here is that, yes, shiny interfaces good.. but it's also about the protocols and interfaces, making them cleanly understood.... I for one would like to see a Motorola RAZR (J2ME) orbiter, don't think we can port the Qt4 one to that...

Paul, you say there are discussions started with KDE, Pluto, and Trolltech, is there a public forum so that we can be in the loop? Bring them here, or can we go there?

(yes, I _am_ being a persistent, tenacious, and arrogant bastard. I've seen far too many good projects go up in flames because the developers didn't make themselves communicate on a regular basis.)

-Thom
Title: Re: All Developers, please read.
Post by: nite_man on August 30, 2007, 06:32:30 pm
I came to LMCE from Pluto. I work with Pluto about one year. I do an installation for the big house. Unfortunately, this is not my main job (I work part-time). Actually, I dig just an SDL Orbiter functionality to bring it to Nokia770 (finally, it's done thanks to Chris Miron). So, I cannot say is the code is good or bad. As I see the system was designed by proper way. But from the point of view of system user I worry about many thing related with its functionality. For example, DVD playback on the wide screen. From the developers point of view it's not so important bug. But my customer asks me why he cannot watch DVD on his 50" TV. Why I spent about one week to install a new MD on his Pluto system? Because the SMP kernel was not tested well. As result it was not possible to activate SPDIF. And there are many small problem and bugs which do process of installation and configuration extremely  hard. Maybe it isn't so critical if you build the system for you or your friends. But I suspect that LMCE team is interested to see its system on the commercial area as well (but as I see it's impossible to use it for consumers).

Another thing which is scary for me is missing direction. I don't see the road map and plans (maybe I missed something).  I knew about a partnership between KDE 4 and LMCE from the KDE blog not from the LMCE site (or blog which can be very useful for the community and for developers also). I really don't know what I can expect from Pluto and from LMCE as well. And it's scared me more than bad code-style or not well organized project tree.
 
Title: Re: All Developers, please read.
Post by: Zaerc on August 30, 2007, 10:34:42 pm
If I read Paul's words right (and considering the way things are going) then basicly we are on our own.  Now that may sound a bit harsh, but here is how I look at it:

He has given us a shrink-wrapped bitesize version of the Plutohome system complete with easy installer and wizard that is sufficient to get the basics going for most people, plus provided us with all sorts of tools like this forum and the wiki for instance.  It seems pretty obvious that he can't do everything by himself, and he shouldn't have to.  Instead of waiting for him to do it all for us, I think we should try leaning on him as little as possible, in the hope he will find the time to give us a little push here and there where it is needed most. 

Therefore we, as a community, should focus on picking up as much of the issues as we possibly can.  We are already fixing our own little corners of the puzzle anyway.  It would be nice if we could synchronize our puzzles so we can focus on the few missing and/or broken pieces.  SqlCVS and SVN could be used for that, and we will need Paul's assistence if we want to do it properly.

So what's in it for me, you might ask, well here is how it works.  When somebody figures something out and documents it, the next persons get a free ride which means that they can verify and improve the instructions and don't have to waste time googling around for answers.  In turn they can use that time to figure other stuff out, maybe not on the directly the stuff that the first person is interested in but in the long run everybody wins.  There is really no need for everybody to keep running into the same basic setup questions over and over again, please help yourself by helping others, it does pay off.  I suspect that the Pluto community never reached it's critical mass simply because everybody was left to fend for themselves, let's not repeat that same mistake.

The most important thing to do (in my opinion at least) is to get some sort of development cycle set up.  There are a lot of people (like Bulek pointed out) with small fixes and additions who currently have nowhere to go.  I'm sorry to say it but in an open-source community that is completely unacceptable.  We really must find a way to submit and test changes/updates or we are never going to be able to support everybody's hardware.  Nightly builds would be ideal but seem far off for now.

Another thing is that we are not going to resolve all these issues overnight.  We need to realize that we all have different priorities and goals (not to mention hardware).  I consider this a huge advantage as long as we work together and share our experience.  We have more then enough talent around to pull this off and get our systems working the way we want them to, not just for ourselves but for everybody that is willing and able to put in a bit of their own timeand effort.  In the end all we commonly want is the most versatile home system money can't buy.  On the downside it will be hard to formulate clear goals and roadmaps, since we all want to go in different directions, I agree with Michael that therein lies a big challenge that is important for the business side. 

I hope I didn't offend anyone as I don't intend to be disrespectful, please correct me if I'm wrong and sorry for the long rant. 
Title: Re: All Developers, please read.
Post by: webpaul1 on August 31, 2007, 04:49:34 am
Zaerc,

That's not at all what I was saying.  For example, today, I got word from the DVD replicator that was supposed to be delivering the LinuxMCE mastered DVD's today (there are already almost 1,000 orders) that there's a problem with the dual layer dvd-9's layer 0 & 1 overlapping and they need the .iso split and all sorts of stuff like that which was all totally new to me, and I ended up blowing off a very important meeting because I had to spend the whole day buying new, high-end dvd-DL's, a new type of dvd burner, installing/fighting tons of software issues, etc., to fedex off a new master by 5pm since so many people are waiting.  And when the discs come in on Monday, I'm going to have address & mail 1,000 dvd's.  This in addition to fixing lots of mantis's (note how many I'm working on at any given time), etc.  And so on.  I'm still working on LinuxMCE all the time constantly, including every single weekend.  I didn't put this much effort into this for the past 9 months to 'abandon' it.

What I was saying is that I'm at 100% capacity right now, and I keep getting pressured that I need to be doing more (like writing docs, organizing development efforts, etc.), but I can only do so much and that's why things are moving so slowly.  Therefore, for the best interest of the project, there should be a team / community that works together.  And I will continue to devote 100% to it like I have since last year.

I get lots of emails each day related to LinuxMCE.  Many are asking for new features and making business offers and stuff like that, and I just don't have the time to read let alone respond to all of them, and if there are emails from developers offering to help or submit bug fixes (which is badly needed), I may miss them. 

That's why I think that there should be a 'community coordinator', who doesn't really need to be a coder and understand coding, but just someone who's organized and can take the lead in handling the incoming requests and filtering out what's important and what's not.  I'm not trying to 'abandon' LinuxMCE, just ask for help since this I realize that I can't keep up with everything.
Title: Re: All Developers, please read.
Post by: webpaul1 on August 31, 2007, 05:06:06 am
RE: SqlCVS, SVN, remote assistance, submitting new code, daily builds, etc....

When I first did release 1 I tried to branch from Pluto completely and sever all ties.  Unfortunately, just managing the build server, sqlcvs server, svn, etc., was a huge (and expensive) task.  Pluto was very supportive of LinuxMCE and offered to help and let me use their resources.  So I sort of abandoned my own svn and sqlcvs and went back to using theirs.  There are build servers that make new builds every hour, and full releases each night.  There have been some users that have submitted patches by emailing me.  These *have* been merged into the svn head, and I am regularly downloading the nightly builds to be sure nothing broke.  The problem with making this all public is that the nightly releases are 4gb (it's a new quick start dvd each night).  And it's not my server so it wouldn't be my place to give out the URL and take down their servers with constant hits from people downloading the nightly releases.

For pluto it's not a problem because they all work in an office and they have testers that install the daily builds each day as far as I know.  And me being one guy who remotely downloads the latest dvd once every couple days isn't going to be a problem.  However we do need to find a way to get the latest versions out to the community, not just the official releases.  I'm open to suggestions, since I don't have a clear cut answer.  There are other projects, like Mono, that are also huge and have tons of binaries.  I'm not sure if there are ways to distribute patches or diff's to the binaries?  One possibility is to streamline the build process so it's easier for each dev to build his own.  While that's good, the fact that it takes 5 hours to compile/build all the code makes it unlikely a developer would want to do it on his own.  What I find useful myself is to take just the contents of the bin & lib directories from each nightly build and then update the database with sqlcvs.  But this doesn't really bring the system current...  Anybody have more ideas on this?

For now, it's still using pluto's server for sqlcvs.  I do want to get our own, it's just a matter of cost.  It's expensive to setup another server, so I'm just using theirs for now.  As far as I know, the way it's supposed to work (with Pluto at least) is that every user who learns new i/r codes or gsd codes, that stuff is automatically sent to their sqlcvs server each night and put into a 'quarantine' until it's approved.  i haven't had a chance yet to see if this mechanism works in LinuxMCE.  So it's possible the i/r & gsd stuff is getting sent to pluto and they have tons of records in quarantine waiting for approval.  It's high on my priority list to figure out if this mechanism still works with LinuxMCE, and if so, to get our own sqlCVS server, or work out some way to get linuxmce community guys permissions to use pluto's existing one to do approvals on quarantined records.
Title: Re: All Developers, please read.
Post by: dopey on August 31, 2007, 09:41:16 am
Paul,

The way I read Zaerc's post he was saying the same thing you were; you are already doing a whole lot and we are asking too much of you. I also agree with that, but it doesn't take away the frustration.
Quote from: Zaerc
It seems pretty obvious that he can't do everything by himself, and he shouldn't have to.

I'm encouraged simply by the fact that we are having this discussion. There are a lot of issues where no one has a clear answer to and we just have to work through them together.

On the note of distribution, we could continue to use bittorrent. The only change would be that we would need nightly tar balls of the code. Then someone else could build the DVD and release it through bittorrent or the devs can just build their own. Of course this is dependant on streamlining the build process (which I think should be done anyhow)... A 5 hour build time actually wouldn't bother me too much. But then again I'm a Gentoo user so I'm used to it and have a few of distcc slaves that'll make it build faster. Also, is that 5 hour build time including a large ccache?

Bittorrent certainly isn't the ideal solution. I think everyone here would prefer SVN, but we should not expect you to pay for it or even maintain it. I don't have any experience with that so I really wouldn't know how much it costs in time and money, so I'll leave this part of the discussion to someone more knowledgeable in this area.

I think using Pluto's SqlCVS is a realistic and mutually beneficial approach, assuming they agree to it. This would allow both Pluto and LinuxMCE to benefit from contributions from both projects. I think the main problem would lie in the approving of the quarantined item, like you said. It's doubtful that Pluto would want people from LinuxMCE to approve things for their system. We would most likely need a mechanism so you can approve a quarantined item for only one project. Perhaps we can read the quarantined items and then "approve" it for us by copying it to a local database? Just a thought...

I also would like to nominate Thom to be the community coordinator. Thom, would you even be interested doing that?
Title: Re: All Developers, please read.
Post by: tschak909 on August 31, 2007, 03:16:20 pm
I wish I could. However, I would not be able to dedicate as much time to this project as would be needed in these first critical stages. I am currently on the verge of releasing my first research project as Free Software (Niki, a Wiki-web engine based on the results of my research on alternative user interfaces.), and I wouldn't want to let you guys down.

With that said, as soon as that project stabilises (should be a couple of months from now), I would be glad to lend a hand in coding, documentation, helping set up servers, whatever is needed of me.

-Thom
Title: Re: All Developers, please read.
Post by: Zaerc on August 31, 2007, 03:59:14 pm
I'm sorry if I wasn't clear enough, but I think we're on the same page here.

You (Paul) have done a tremendous job so far.  And the last thing I want to do is to saddle you up with more work.  If it wasn't for your hard work and dedication we wouldn't be here today.  I didn't mean "we are on our own" in the sense that you have abandonned the project/community, but more like that we shouldn't wait for you to hand us everything on a silver platter (like you have been doing so far, which is pretty amazing in itself).

So the point I was trying to make is that it's time for the rest of us to get of our asses and see how can we help out, preferably in such a manner that will take as little effort from you as possible.

One of those things we can already do (without your help) is simply documenting the things we figure out.  The rest will sooner or later require at least some of your assistence so I guess we will need to find a way to reduce your workload one way or another to make some room for that in the mean time.
Title: Re: All Developers, please read.
Post by: bulek on August 31, 2007, 08:42:59 pm
Hi,

I'll try to add few thoughts, since I've been working a lot also on Pluto system. Since I'm not experienced Linux guy, I could easily be missing something but anyway :
1. for a good start, I think working SVN and sqlcvs would be just fine
2. enhancement should be entered in coordinated way - For example under Pluto, where I helped a bit with Motion wrapper. I've contacted corresponding developers and explained what I'd like to add. Then he approved my work, I took down SVN source, compiled just new binary for Motion Wrapper and add it to my formal release. Then I tested it in my environment and then applied those changes into SVN - "official" testers did try it and it was in next release.
3. Same mechanism could be used for sqlcvs. I know this would narrow contributions, but again maybe better than nothing at all...

Currently we're not getting any enhancements into sql database or in source code, so maybe this would be improvement. And later, if community grows, we can take another steps.

What I'm currently also missing very badly is developers discussion... If you notice, I have several question regarding (how to best implement this, how to efficiently add this and to do some brainstorming on some future additions and how to implement them, or to learn important details about LMCE & Pluto internals etc..)...

HTH,

regards,

Bulek.
Title: Re: All Developers, please read.
Post by: Zaerc on September 01, 2007, 02:38:26 am

About the SVN part, as we all see the need for one or more people to approve and apply modifications requested by the community.  I can see a couple of options on that:

But before a decision is made on this, I think we should figure out and document how to build the sources, at least up to the point of .deb packages which can be used to up/down-grade an existing installation.  I'm confident that we're able to do that with the pieces we already have.

Once we have that out of the way that we can set up a seperate community develpment repository and feed it so the changes can be tested by more people.  By this time a decision should be made on how to deal with SVN.  That should give us plenty of time to discuss all our options I think, and SVN is only really usefull if people know how to build from it anyway.

So I guess that's the direction I would like to go in...
Title: Re: All Developers, please read.
Post by: nite_man on September 01, 2007, 11:57:57 pm
Sourceforge can be a good to keep the project there. Many projects are hosted there (I have a few ones). I'm not sure only about license. Maybe it may cause some problems.
Title: Re: All Developers, please read.
Post by: webpaul1 on September 02, 2007, 12:15:01 am
I first tried source forge, but the problem there is that they only host small projects.  Each project only can use 100mb, and the forums/bug tracking, etc., are really geared towards small projects.  LinuxMCE's sources were too big.
Title: Re: All Developers, please read.
Post by: Zaerc on September 02, 2007, 12:58:41 am
Ok, I guess we can scratch sourceforge off the list then, thanks Paul.
Title: Re: All Developers, please read.
Post by: tschak909 on September 02, 2007, 05:24:35 am
I could buy a xen slice and set things up there?

-Thom
Title: Re: All Developers, please read.
Post by: dopey on September 02, 2007, 08:42:36 am
That would be wonderful. I wouldn't mind contributing to it either.

The question is what size do we need? Slicehost seems to have very reasonable prices for this, it's just a matter of just how much storage it would need. I don't think we would need that much bandwidth, as long as we don't allow everyone to download the the dvd every day...

Another problem is who will be responsible for setting up and maintaining the slice. As I said before, I'm not experienced enough in that area to do it myself and I really don't think Paul should have to do it.
Title: Re: All Developers, please read.
Post by: webpaul1 on September 03, 2007, 10:20:57 am
Sorry if I'm not totally familiar with that 'slice' hosting and what the advantages are over a normal dedicated server.  But it seemed quite a bit more expensive than a normal dedicated server.  I'm using a server from go-daddy.  It's about $100/month for a p4 with 1gb ram, and then you pay $40/month for each extra 1TB of bandwidth; linuxmce uses about 2tb/month.

The problem, though, with using one of those go-daddy servers as a build box is that it only comes with Fedora.  When I do the building I always do it with the LinuxMCE/Kubuntu distro so all the headers and stuff match.  I guess it could be built on a fedora box, but it's probably more work.
Title: Re: All Developers, please read.
Post by: dopey on September 03, 2007, 11:17:05 am
With slicehost you pay $70 for 1GB Ram 40GB storage and 400GB of bandwidth plus you can install several different distributions and they don't oversell, so you really are getting the bandwidth and resources you purchased. You can also buy extra bandwidth, but it seems that price is negotiable. Really, they are similar concepts that's just implemented differently.
Title: Re: All Developers, please read.
Post by: tschak909 on September 03, 2007, 06:44:43 pm
and if the thing explodes, it can simply be rebooted from the management console, or even re-imaged. I find less and less of a need to use dedicated boxes anymore.
Title: Re: All Developers, please read.
Post by: tschak909 on September 06, 2007, 07:41:44 pm
Paul? What if we got a slice from gplhost.com or somewhere similar?

also, what ARE the immediate priorities currently in the development branch?

-Thom
Title: Re: All Developers, please read.
Post by: seanyseansean on September 08, 2007, 12:32:33 pm
Am I being stupid here, or wouldn't it be a good idea to use Ubuntu's Launchpad for the project hosting?

https://launchpad.net/

Title: Re: All Developers, please read.
Post by: webpaul1 on September 09, 2007, 09:40:14 pm
The immediate priorities, imho, are (1) building a community, and (2) any stability or installation issues that will allow a majority of users to get going with LinuxMCE.  Most of the emails I get are for feature requests.  But LinuxMCE already has a gazillion features, and while there certain new features that would be really nice to have, I think the community will be better off if the features that are already there are accessible by everyone.

So, if I was to put the priorities in order, I would say:

1) Find someone who has knows the FOSS world well, has some clout in the FOSS community, and has some free time, and who can act as a community liason to start building a team.
2) Find someone who's good at writing docs, ORG charts and other tools to document LinuxMCE, both enhancing the existing quick start guides, but also laying the foundation for developer docs so that as developers join they can jump in right away.  There's actually a ton of info already in the wiki, I think it just needs a clear roadmap.
3) Working with the team to identify the high priority tasks.  My personal votes are: A) improving the integration with MythTV.  I still get complains that Myth is less stable in LinuxMCE than in stock Ubuntu, which baffles me given that LinuxMCE is stock Ubuntu + stock MythTV.  But since the PVR is such a key component, this needs to be resolved.  B) Trying to determine what are the installation issues that prevent a lot of users from getting their systems going.  C) Implementing the PIN code to protect private media (ie keep the kids from watching Dad's porn :) ).
4) The next big, new task will be re-doing the UI to make it easily re-skinnable and themable and improving the designer stuff.  This way the creative design guys can work on making it look really beautiful, since the aesthetics seems to be the first thing people pay attention to.
Title: Re: All Developers, please read.
Post by: Zaerc on September 09, 2007, 10:26:06 pm
I still get complains that Myth is less stable in LinuxMCE than in stock Ubuntu, which baffles me given that LinuxMCE is stock Ubuntu + stock MythTV. 

Excuse me for getting offtopic, but couldn't that be caused by the older kernel version that is used?  I can imagine some drivers and/or firmware getting updated in the mean time.  :-\
Title: Re: All Developers, please read.
Post by: dopey on September 10, 2007, 02:40:41 am
Most of the emails I get are for feature requests.

This is just down right unacceptable. Feature requests belong in the forum, not in your inbox. We really need to do something about this ASAP as it's just counter productive... but I guess that leads us to your (and my) first priority. There still hasn't been anyone willing/able to step up to this task though. I'm just unable...

I would prioritize things just like you did... only I wouldn't have really considered the pin code thing...

It seems everyone in this thread is in violent agreement; we just don't know how to proceed.

Zarec,
There are many things that can cause this. In my experience, Myth is very picky about its dependencies. You are right though, the kernel would be a good place to start as most V4L problems are solved there. The next step would be to identify any (possibly deep) dependencies Myth uses that LinuxMCE overrides and builds itself instead of using the stock versions.
The integration with the mythconverg database is also causing problems. I know at one point LinuxMCE added 5 tuner cards to the database even though I had only one installed... it did remedy the situation itself though...
I should note that I'm not having any stability problems in Myth. Myth is operating just as expected for this version of LinuxMCE. Though if you see my other threads on this topic I do definitely agree that the Myth integration should be improved. It's just not as high of a priority as building the community.
Title: Re: All Developers, please read.
Post by: tschak909 on September 10, 2007, 02:49:59 am
yup, I am in agreement here too. let's DO it. my main thing right now is, I'm trying to get a development environment set up... I tried using the UbuntuHelper scripts, but I have a funny feeling those are for 1.0??? .... not sure....

I will write down how to set up an up-to-date environment, so long as I know I am building the right tree, the right environment, etc.

-Thom


Title: Re: All Developers, please read.
Post by: mdarmistead on September 10, 2007, 10:21:51 pm
Hi all, I'm a newbie here, but reading this thread has sparked my interest. I'm very interested in helping out with organization and documentation. I'm not a developer, though I do so some amateur coding, but I have done technical documentation for hardware related issues. I generally have my evenings free and can generally also bust out some time at work.

My interest in LinuxMCE stems from wanting to create a touchscreen video intercom/background music system for a small office environment. A lot of the features in LinuxMCE are not really needed in this sort of implementation, but the feature set is so rich and the system far more stable than anything else I've tried, that it's the only system I can really consider for my project. I expect that as I become more familiar with the system that I will want to offer other services to the office staff, such as video on demand, room light control, etc.

Let me know if I can be of use.

Matt Armistead
Oklahoma City, Oklahoma
Title: Re: All Developers, please read.
Post by: Niels on September 11, 2007, 02:28:56 pm
1) Find someone who has knows the FOSS world well, has some clout in the FOSS community, and has some free time, and who can act as a community liason to start building a team.

what is FOSS?

2) Find someone who's good at writing docs, ORG charts and other tools to document LinuxMCE, ...

Yes, i found something i can help with. Have some experency with making flowdiagram's. So ORG (i hope it stends for organisation?) charts are no problem for me. Tell me what te make and i can try to make it.

Niels v/d Spek
Title: Re: All Developers, please read.
Post by: tschak909 on September 11, 2007, 03:21:33 pm
1) Find someone who has knows the FOSS world well, has some clout in the FOSS community, and has some free time, and who can act as a community liason to start building a team.

what is FOSS?

Free/Open Source Software.

-Thom
Title: what is FOSS?
Post by: mdarmistead on September 11, 2007, 03:46:47 pm
Niels,
Here's the opening paragraphs from wikipedia:
http://en.wikipedia.org/wiki/FOSS


"From the early 90s onward, alternative terms for free software have come into common use, with much debate in the free software community. The term "free software" was coined by Richard Stallman in 1983 when he launched the free software movement. Records of published version of its definition can be found dating back to February 1986. The definition can be summarised as software which the user can use for any purpose, study the source code of, adapt to their needs, and redistribute - modified or unmodified.[1] To avoid the ambiguity of the English word "free" (free as in beer versus free as in speech), and to avoid talking about the impact on freedom of non-free software, people have suggested alternative names.

"Open-source software", "Software Libre", "FLOSS" (Free/Libre/Open-Source Software), and "FOSS" (Free and Open-Source Software) are the most common alternative terms.[2] The most popular of these has been "open-source software".[2]

Users of each of these terms share almost identical licence criteria and development practices, but differ, according to Richard Stallman, in the respective philosophical values. Some people use "libre" (as in free speech) or "gratis" (as in free beer) to avoid the ambiguity of the word "free". However, these terms are mostly used within the free software movement and are slowly spreading. "
Title: Re: All Developers, please read.
Post by: lucidus.nox on September 18, 2007, 03:53:10 pm
Greetings,

     I am new to the project, but have been around plenty of FOSS projects in the past, and while I am no developer I would like to help. I am a systems engineer and have worked with some larger web hosting companies in my time so I would like to see if there is anything I can do to provide this project a nice, permanent home.
    I was wondering if anyone knew what kind of resources this project would need in terms of bandwidth and storage space so that I can look for a solution. It had been mentioned that a true build environment was desired, and the best way to do that would be having a dedicated server somewhere with Xen or OpenVZ and give the devs each a virtual environment. That type of thing isnt free, and it may be more of a long term goal, but its good to have solid plans for growth.
    I would also like to know if there is an IRC channel for the developers yet. If not I would be happy to set that up for and lurk there to keep it open. The early momentum this project has is very encouraging, but it needs to be kept going, and the best way I know for a project like this to do that is to get a solid community built around it (as has been stressed previously in this thread). I am finally getting to the point where I feel more comfortable with the LinuxMCE systems that I have set up so I will also try to do my part by fielding support requests that I can and maybe trying to fix up the wiki here and there.
Title: Re: All Developers, please read.
Post by: lucidus.nox on September 21, 2007, 01:33:20 pm
Ok, so i've found a reliable place that may be willing to give us a larger SVN repository but they want to know the total size of the source base that will be hosted there. I really cant seem to find any place to get the current source so if someone (paul?) could send me a message with that info I'll see what I can do.

Thanks
LN
Title: Re: All Developers, please read.
Post by: webpaul1 on September 22, 2007, 04:31:43 pm
I think the svn isn't that big.  It's probably 300MB if you add the graphics and other stuff to it.  I don't expect the bandwidth load on it will be too high either since it's just devs.
Title: Re: All Developers, please read.
Post by: chewi on September 25, 2007, 10:46:48 am
I was wandering, if you could just make the diffs from 0704-source-tar-ball public, as long as there is no svn accessible.

That way, the main load for checking out source would be on Bittorrent (for the tar.bz2) and only the diffs would have to be downloaded from a centralized point. And for this, sourceforge should be sufficient for the moment... And developers interessted in working on linuxmce (like myself) could at least checkout the current source-base for their running linuxmce with the updates you made since the major release...
Title: Re: All Developers, please read.
Post by: chriss on September 26, 2007, 01:29:44 pm
All,

I have a virtual server running and there's enough space left on the HD as well as there are some GB of traffic left. I could set up a repository (SVN) until there is a dedicated server. To do that, I'll need

I can also set up a TRAC environment for the development, if needed. Unfortunately the server is not powerful enough to allow for a nightly build or something.
The only drawback of that solution is, that I might have to restrict read-only access as well if the traffic increases to much, but I think, chewi's proposal (having the 0704 Revision as a torrent and only get diffs from SVN) is quite a good solution.

What do you  think?

Cheers
/Chriss

edit: I'll be away for vacation during the next week, i.e. I will read the discussion next week  ;)
Title: Re: All Developers, please read.
Post by: rancid_elf on October 05, 2007, 12:21:04 pm
With a bit of luck and time I will be spending some time looking through the code.  There are a few ideas for plugins I would like to write which came from modules I used on meedio.

When I have got to grips with the code base I would love to help in any way I can with anything that needs attention.

Title: Re: All Developers, please read.
Post by: avajon on October 09, 2007, 02:39:49 pm
hi,

are there any news about the source-code? is there a place where we can download it?

lg
avajon
Title: Re: All Developers, please read.
Post by: PeteK on October 09, 2007, 03:34:26 pm
avajon--


The 0704 source is available as a .torrent currently (and possibly from one or more of the mirrors).  The build process is still fairly complicated, but the source is there.

Title: Re: All Developers, please read.
Post by: chriss on October 09, 2007, 08:34:35 pm
Hi,

some posts above I offered to setup a SVN repository for the sources. I'm surprised nobody commented on that. Did I miss something, like some repository somewhere else? Anyway, I did setup the repository by now; unfortunately it is nothing more than the 0704 sources from bittorrent with the following policy:

My suggestions for the next steps (before I make the URL public) are

Cheers,
Chriss
Title: Re: All Developers, please read.
Post by: chewi on October 11, 2007, 10:44:50 am
Awesome, that you got a repository...
But do you think that 50GB will be enough ? I would guess, that if only the people writing on the wiki and forum wil do an initial checkout, those 50gb will not be enough. Or do the extra gb not generate additional cost but "only" limit the bandwidth ? 25kBit will make a checkout take

My suggestion is, that for now a few svn-maintainers should be voted. Definately not too many, maybe 1 or 2. The rest could upload their patches as diffs to some php-skript on a website as a tar.gz with a discription.
Alternatively, we could add the status "pending for repository" when there is a solution to a bug in the mantis-system...

Best regards, Chewi
Title: Re: All Developers, please read.
Post by: chriss on October 11, 2007, 11:54:18 am
Chewi,

Quote
But do you think that 50GB will be enough ?
Probably not, it's only for the beginning. I have to move some things around and than I can increase the traffic to ~300GB, I think. At the moment there won't be any extra cost (i've calculated the speed so that it fits into the maximum free traffic).
IMHO, there will be very high traffic during the first days, because everybody is donwloading the stuff. If I had a list of volunteering developers, maybe they can get the URLs first to have the chance to use full speed  for downloading.

Anyway, a discussion about the repository and how to go on has already started here: http://forum.linuxmce.org/index.php?topic=2809.0#new

Quote
a few svn-maintainers should be voted
Great idea. I already thought about having maintainers for the single modules and something like a release manager/overall maintainer to merge the branches back into the trunk.
Let's start another thread to see who wants to get involved...

Cheers,
Chriss
Title: Re: All Developers, please read.
Post by: chriss on October 11, 2007, 11:57:50 am
BTW, it seems that some people (like danielk) have already talked to Paul. I think that we should honor Paul's effort as well and that he should also give a statement on who should be maintaining what.
Title: Re: All Developers, please read.
Post by: nite_man on November 21, 2007, 02:44:00 pm
Hi,

My company is owner of a big datacenter in Amsterdam. So, we ca provide a hosting for SVN repository and ISO for free. We're going to use LMCE as a home automation system. And we'd like to help it to grow. Just let me know what you need.
Title: Feature and Code Documentation
Post by: Matthew on November 21, 2007, 06:52:16 pm
A good dump from Paul and anyone else familiar with the features and sources would be a map of all of LMCE's features, to the code that supports those features. Even just the list of all features would be a good inventory to start from. Or even just all the source files grouped into which feature groups they each support.

Hi all, I'm a newbie here, but reading this thread has sparked my interest. I'm very interested in helping out with organization and documentation. I'm not a developer, though I do so some amateur coding, but I have done technical documentation for hardware related issues. I generally have my evenings free and can generally also bust out some time at work.

My interest in LinuxMCE stems from wanting to create a touchscreen video intercom/background music system for a small office environment. A lot of the features in LinuxMCE are not really needed in this sort of implementation, but the feature set is so rich and the system far more stable than anything else I've tried, that it's the only system I can really consider for my project. I expect that as I become more familiar with the system that I will want to offer other services to the office staff, such as video on demand, room light control, etc.

Let me know if I can be of use.

Matt Armistead
Oklahoma City, Oklahoma

2) Find someone who's good at writing docs, ORG charts and other tools to document LinuxMCE, ...

Yes, i found something i can help with. Have some experency with making flowdiagram's. So ORG (i hope it stends for organisation?) charts are no problem for me. Tell me what te make and i can try to make it.

Niels v/d Spek
Are Matt and Niels still offering to help the documentation? Can the two (or just one) of you take ownership of that feature/code map, find people to populate it, and then turn that into readable (initial) descriptions and API/codepath diagrams?

I've been updating the wiki as I figure out LMCE features and functions, but I'd be a lot more productive with a schematic index to the system as a guide. I'm sure others wanting to help would find it the same.
Title: Re: All Developers, please read.
Post by: rstuart on November 26, 2007, 07:10:29 am
Can anyone give an update on whats been happening as a result of this thread? Obviously Daniel has been appointed as community liaison but has there been much progress in the dev and documentation?

I have the skills and willingness to contribute to the project, but like so many before me I find it hard to get started with this project. I think the need to have improved developer documentation for this project is an important one. With better documentation more developers will know where to start and things will start happening at a rate of knots.

An important document to get written would be a system architecture document, that describes the whole system, not just the DCERouter (I'm referring specifically here to the boot scripts and other distro specific details like the sources list pointing to the hard disk) all the way through to the messaging protocol used by the DCERouter. While it is undoubtedly a big task, i think its i probably essential to get started.

Has someone been appointed as head of documentation and have efforts already started to make this happen? I notice plenty of people have posted on the contacts page saying they are offering documentation. We seem to have the people power, we just need the organisation.
Title: Re: All Developers, please read.
Post by: bulek on November 26, 2007, 01:15:59 pm
Hi,

I'll try to quickly describe current status of LMCe, so you won't loose your energy. IMHO right now, we're all waiting for new release that will I hope also bring public code repository, so developers could start contributing, compiling, etc....

So don't be disapointed if there will not be many responses...

HTH,

regards,

Bulek.
Title: Re: All Developers, please read.
Post by: danielk on November 28, 2007, 02:32:35 am
<i>Can anyone give an update on whats been happening as a result of this thread? Obviously Daniel has been appointed as community liaison but has there been much progress in the dev and documentation?</i>

We've been working on getting a developer's sqlcvs running and getting the repository compile to be self-hosted on a LinuxMCE machine. sqlcvs documentation has been written, but not much other developer documentation. In particular if you want to help it would be great if you could assemble a script and a doxygen config to generate documentation from the source (which has plenty of doxygen documentation.)

FYI You can check out the latest public sources by following the directions at http://svn.charonmedia.org, I will be syncing these from the sources being used for 0710 soon.

<i>An important document to get written would be a system architecture document, that describes the whole system, not just the DCERouter (I'm referring specifically here to the boot scripts and other distro specific details like the sources list pointing to the hard disk) all the way through to the messaging protocol used by the DCERouter. While it is undoubtedly a big task, i think its i probably essential to get started.</i>

I agree, but you should probably get started with a few of the major components before writing an overview. Getting the doxygen documentation going should be the first step, so that we can refer to this from the overview document.

<i>Has someone been appointed as head of documentation and have efforts already started to make this happen?</i>
No. As soon someone picks up the baton and starts working on it they will become the  documentation coordinator. :)
Title: Re: All Developers, please read.
Post by: cbynaker on November 28, 2007, 05:07:35 am
Greetings,

I had been interested in running doxygen on the lmce distribution on the Charonmedia SVN server and took a run at it on last Wednesday. I just upgraded the memory in my test box and it churned through much faster earlier today pointing at the "lmce/src" directory. The To-Do list was not very large.

What do you envision the script needing to do. Is it for customization of the default output.

I have observed a need to expand the documention some in order to make it a better fit for those not as intimate with the code or operation and setup of this huge appliance. A good example of that is why has someone not created a recipe for creating a new template for a not so popular Audio Visual Receiver controlled by IR. You find out quickly that the "channel:port" does not get added automatically. A search through our wiki turned up the answer which turned out to be a trivial task. This leads me to believe that we need an Integration area that specializes in how to configure addons and behaviors once lmce is installed. It is encouraging to see the number and quality of the documents added to the lmce wiki recently.

Charles