Posts tagged boxee

Posted 1 year ago

Behind the Scenes: Interview with the Plex Team

On January 11, 2008, the following post appeared in the fledgling Plex blog:

“Videos actually sort of play now, although there’s no sound […] and videos play at strange rates. Sometime fast, sometimes slow.” - elan

That was then, and this is now. Just over a year later and Plex is already one of the most advanced and full-featured Media Center packages available on OSX. Accelerating away from its roots as an XBMC port, Plex has over a short time managed to carve out its own unique identity as a solid, rich media platform.

Today we have a chance to look behind the scenes of one of the Mac platform’s greatest labours of love, by sharing some question time with two of its key creators: Elan Feingold and Isaac Ordonez.

Q: Tell us a little bit about your background.

Elan: I was born in Pakistan to American parents, grew up in Europe, and my first computer was an MSX2. I studied Computer Science and Electrical Engineering in upstate New York, worked for Digital Equipment Corporation and then a string of start-ups.

Isaac: I’m a self-taught Server and Systems administrator for a medium sized school district in California.  I’ve been working on Unix and Mac servers for quite some time.  Since I deal with students and teachers on a daily basis I tend to understand what everyday computer users expect while at the same time also understand the nitty gritty. I try and apply this when working with Plex as I feel our target market is going to be the everyday user.

Q: Why Plex?

Elan: I was looking for a media center for my Mac, and I was trying Perian and Front Row. However, Perian had horrible support for AC3 passthough and no support for DTS passthough (at the time, at least). I was considering coding it up, but then got bored one evening and started on the port of XBMC, which I had used on an XBOX for years. More to the point, why Plex and not XBMC? I found that I had very different goals for the application, which is I guess how most forks occur.

Isaac: As with most people I started as an XBMC user on my Xbox1.  I’ve always bounced around trying to find the perfect media center.  I got an Apple TV, Played with VLC, Perian and Frontrow but none of these really stuck.  The biggest problem I had was that while I could use these systems, my wife and most of my friends couldn’t. Heck I had to pay someone to mod an Xbox1 and install XBMC on it.

When I saw Elan was porting XBMC to OS X I jumped at the idea of creating something easy yet functional.  Once we forked it’s been great only having to focus on one platform, we’ve been able to avoid having to develop features for a “hobby” audience and try and focus on the masses.  Whenever we look at a new feature we think “Is this wife friendly?”.  I usually sit my wife down in front of the feature and hand her the remote to get feedback.  If the feature is too confusing we have to take a step back and consider if it’s worth implementing.

Q: How would you define your role within the scope of the Plex project team?

Elan: I’m one of the people coding, obviously, and I try to help keep us focused as a team and set priorities. I also act as gatekeeper for the release branch of Plex and make the releases.

Isaac: So far my role has been “do a little bit of everything”.  I manage web services, keep an eye on our forums, dabbled in coding, help with plugins, project management and the list goes on.  I also try to keep developers grounded with the user base.  Sometimes I worry someone will run off and create something totally useless like an ASCII video player.

Q: With its Plex/Seven series of releases, the Plex project has been establishing a more defined sense of identity by diverging from its XBMC roots through new features such as TV Themes, the Plex Media Server, and the new App Store. What inspires you and the team as to which new features to pursue?

Elan: These things all play into our plans for world domination. Honestly, I think we have a shared vision, but the exact pieces of the puzzle change over time, and we’re lucky to have really creative people like James (author of the TV Themes feature) who’s always coming up with great ideas. Also, one of the great things about forking is that we have this powerful code base, but without any of the potential baggage that comes with it in terms of ownership, existing priorities, or politics.

Isaac: As with most projects, personal interest is what drives new features.  You have to be really excited with a feature to want to work on it.  At the same time you have to listen to the user requests and sometimes work on a feature you have little to no interest in.  As long as in the end it’s for the good of the project.

Q: There have been a few hints in the past as to a complete rebuild of the Library system for Plex. How’s that coming along, and what sorts of improvements can we expect from it?

Elan: We don’t comment on upcoming features, but if you look on the forums, you’ll see that it is one of the biggest annoyances at the moment.

Isaac: Without directly answering the question, I think you could say we’ve make good progress already. Since we added full iTunes and iPhoto support the Music and Picture library system is becoming irrelevant.  Most Mac users already have their music and pictures neatly organized in these programs.  I think Apple has provided a really great way to manage your these types of media so there isn’t much of a reason to re-invent the wheel here.

Q: Are there any new features you can hint at on the Plex roadmap?

Elan: I can’t say much beyond saying that we’ve scoped out our roadmap for the rest of the year, and that there’s a lot of exciting stuff on it. If we manage to get it all done, I think users will be really pleased.

Isaac: We’re looking at adding Gopher support and possibly streaming RAR files over telnet, other than that we have some ideas.

Q: How, if at all, is Plex’s reliance on XBMC code changing as the project increasingly develops its own unique feature set?

Elan: The reliance will continue to lessen over time. If you break down XBMC into components, you have the skinning engine, the players, and then everything else. The skinning engine is the component of primary interest to us, along with the players. The other parts will likely be of decreasing importance as time goes on. What people don’t seem to realize is that every feature comes with a non-zero support cost. More features doesn’t imply a better, more stable, or more usable product. We’ve not serving our users well by trying to be everything to everybody.

Q: What about skinning; Plex currently defaults to MediaStream. What’s your team’s relationship to the skin’s creators?

Elan: Mike Beecham (one of the authors of MediaStream) is a great guy, and he’s now part of our team. We take design seriously, and we actually have as many or more designers as we do coders.

Q: How would you rate MediaStream in terms of aesthetics and usability?

Elan: I don’t think that’s a totally fair question, because I think that a skin’s usability has a lot to do with the underlying structure of the XBMC application/UI code. Having said that, I think the appearance of MediaStream was groundbreaking in terms of both aesthetics and usability.

Isaac: I’d give it an 8 and a 7.  It’s a great looking skin, when people come over and I show them Plex they go “what’s that!?”.  My wife can use it, but sometimes she gets lost.  I’ve programmed “Movies”, “TV Shows” and “Music” buttons on our remote to help with this.  Sometimes I see people getting stuck on a scroll bar or on the options menu to the right (or top).  All in all I think Mediastream really raised the bar for XBMC/Plex skins in balancing beauty with usability.

Q: The upcoming Aeon Stark interface has been getting quite a buzz lately, and seems to also shaping up to become one of the more user-friendly interfaces available for XBMC. Are there plans to extend Plex’s skinning support to be Stark-friendly upon the skin’s release?

Elan: First off, major kudos to DJH, who’s an incredibly talented designer. We don’t have any concrete plans, although a resync with the skinning engine code is definitely in our plans for the future. We have our own priorities, and I worry about getting distracted by these sorts of things; at the end of the day we only have a limited number of spare hours.

Isaac: Aeon Stark looks like a beautiful skin from the videos and pictures I’ve seen.  From it’s looks though I wouldn’t put it in on a device and give it to the common user though.  Personally I would like to see something that way halfway between Front Row and Mediastream.  Being able to control every little aspect how your setup looks is important, but only to a small subset of people and in the end usability will always trump eye candy.

My Comcast DVR for example, the interface is ugly as dirt, but there is no need for an instruction manual. But at the end of the day millions of people use it, and it doesn’t even come with a user guide. After I created a help screencast for adding your movies to Plex someone who had used been using Plex/XBMC for years went “Woah! You can add multiple paths to a source!?” Basic functionality like this should be intuitive for even casual users.

Q: Does the team have any interest in evaluating Stark ahead of its release?

Elan: I’m interested but sadly don’t have the time. The ideal would be a Plex user with some development experience who could be an advocate for the skin, test it out, and perhaps cherry pick some of the new skinning features that are required. Also, I’m sure the (very talented) author of Stark has a good idea of what new things he needed.

Q: What about the skinning community as a whole: it would seem that, currently, most of the third-party interfaces in use by the Plex community are originally designed for XBMC. Does the team have any plans to further engage the skinning community to encourage a stronger focus towards Plex?

Isaac: Personally I would rather see one KILLER skin for plex than 500 mediocre ones.  But that is just me being a stick in the mud. ;)

Elan: I agree completely with Isaac. Having more skin choices isn’t always better for the end user who just wants to sit down and watch something on their TV. To answer the question, we definitely engage with designers who approach us, which is why we have quite a few of them working with us now.

Q: I’d now like to talk a little about Plex in relation to its siblings in the HTPC software market, namely XBMC and Boxee. In a previous interview with Jmarshall from the XBMC team, he stated they maintained no real relationship with the Plex team as a whole. Would you agree with that, and if so, is that by choice?

Elan: It depends how you define “relationship.” If you mean “share code” then yes. If you mean we email back and forth to exchange ideas, then no. I respect and like Jonathan, and I’ve always gotten along well with Vulkanr of the Boxee project. However, at the end of the day we all have different visions and different priorities.

Isaac: As Jonathan noted in his interview Scott and I had lunch with him when he was in San Francisco.  He has always been open to communicating to us and we appreciate that. Aside from Jonathan there have been a few XBMC members who have been more than willing to talk about common issues via PM or E-mail.

Q: How do you think communication between the Plex and XBMC teams could be improved?

Elan: To what end? The basic fact is that we have different aspirations with our respective projects. As long as we have open communication channels to discuss common issues (which we do), I think things are working fine.

Q: Would it be fair to say Plex has adopted a more closed-off development model relative to XBMC? If so, what factors influenced such a move?

Elan: Yes, it would be fair. Releasing the source at the same time as a release (which is also what Boxee does), reduces or eliminates the number of half-baked or “in-between” builds that might exist, which helps lighten the support load. Overall we haven’t found any downsides in doing things this way, especially since we tend to release fairly often.

Isaac: Open or closed development makes no real difference when it really comes down to the end user that I can see.  Most people aren’t going to be bothered to download the source and compile.  Bottom line is they want new features and they want them now.  This is why our auto update feature has been such a big hit.

Q: Looking at Plex’s new App Store feature, one might observe that it is taking Plex into a somewhat analogous direction to the more streaming-focused Boxee. Was that intentional?

Elan: I don’t consider it a change of direction, just an additional piece of functionality. It rounds us out.

Isaac: Streaming is just once piece of the puzzle, mediocre quality video on demand probably won’t replace higher quality files that reside on the users system.  It’s the way the world is moving though.

Q: Does the Plex team maintain any contact with streaming service providers like Hulu with regards to making their content available via App Store plugins?

Elan: No, although this is likely to change. To be honest, though, I’m really not very impressed with the major content providers (I described my feelings more here) as I don’t think that they’ve provided a viable alternative to pirated content, which is what they should be doing. I’m personally much more excited with things like TED Talks than I am with low-resolution, ad-laden old episodes of MacGyver.

We have been approached by companies who are interested in getting their content onto people’s televisions, and this is the sort of win/win relationship we are interested in.

(As a funny side note, if you look at the source of a Hulu video page and search for ‘pl’ - with quotes, I can only assume it stands for “Plex” - you’ll see the only communication we’ve received from them, in the form of a hidden div countermeasure.)

Q: Has Plex’s increased focus towards streaming content provision raised any legal issues?

Elan: We are rendering these sites in a web browser, we just happen to zoom in to fit the content inside the Plex player, so we believe we are within our rights.

Q: How does the project keep going financially without relying on advertising or other commercial tie-ins?

Isaac: We get paid in smiles… Almost literally.  We have some fantastic users who have provided hosting for our files and liquidgravity.com has provided us with an almost dedicated server for our web services.

Elan: As a team of people working on this in their spare times, there are no real financial requirements. As Isaac said, generous people have come forward to provide us with the bandwidth and hosting we need. Everything else is just fingers and a keyboard. People have been very kind and generous in providing us with beer, as well.

Q: Is Plex’s financial model likely to move in a more commercial direction in future?

Elan: First of all, we’re obviously not in it for the money, because we’ve put in thousands of hours over the last year with very little in return. Getting an appreciative email, forum post, or a beer donation is really awesome, and we absolutely love our users and think they’re great.

The second thing I’ll say is that obviously we really love working on Plex. Wouldn’t it be great if we could actually make a living doing it? The question is whether we can figure out a way to do that without compromising our vision.

Q: Where do you see Plex going over the next year?

Elan: We have big plans for the year, and I’m really hoping we can release 1.0 before 2010.

Q: Finally, do you have a message for our readers?

Elan: Thanks for reading, thanks for your interest, and if you’re a Plex forum user, thanks so much for contributing to the nicest and most productive forum I’ve ever seen on the Internet!

..

bravelittlememe would like to thank Elan and Isaac for their time, and encourages you to visit them over at the Plex home.

Posted 1 year ago

An interview with Jmarshall, XBMC developer

A few weeks ago I had the opportunity of interviewing djh, one of the Xbox Media Centre’s leading interface designers. The interview received overwhelmingly positive feedback from the XBMC community, and many requests or a follow-up with other sides of the XBMC project.

Today I have the great pleasure of sharing an interview with Jonathan Marshall, president of the XBMC Foundation and one of the project’s lead developers. Jonathan, better known as jmarshall, shared some insights on his experiences  working on the development of XBMC.

Q: Tell us a little about your background outside of the XBMC project. 

JM: I’m a Mathematician currently masquerading as a Statistics lecturer.  I’ve lived in New Zealand most of my life, other than a short stint in the UK (Glasgow).  Outside of XBMC I’m busy making a mess (and eventually cleaning it up) whilst renovating our house. 


Q: How did you get started on XBMC? 

JM: I stumbled across it in early 2003 when it was known as XBox Media Player. I bought an xbox in order to run it, found some things I thought could be improved, and did up a couple of patches. I was invited on to the team shortly after, and have been hanging around ever since. 


Q: What do you see as being your key function within the XBMC project? 

JM: I’m president of the XBMC foundation (a non-profit we’re currently setting up to provide direction to the XBMC project) and one of the lead developers on the project. My main focus on the XBMC codebase is the user interface side of things - maintaining and improving the skinning engine, and attempting to improve the experience for the end user, but I dabble in most areas. Recently I’ve been focusing on refactoring and rewriting some of the sections of code that have been neglected for some time, such as the base texture and image classes and the directory caching system. 


Q: Let’s talk a little about XBMC itself. What would you say separates 
it from other media centre and HTPC software?

JM: The biggest thing for me are that it’s completely opensource - both in terms of code release and the development model. This has led to a large, active and enthusiastic community being built up around the project, which pushes the development further than could be achieved with a closed model. The obvious difference with XBMC is it does not attempt to restrict you in any way, whilst still attempting to be as user friendly as possible. The commercial media centre offerings cannot compete with this, and we think we’ve done a better job than the many opensource projects out there on the user friendly side of things - though obviously there’s still a great room for improvement in this respect! 


Q: XBMC’s ad-free and open source nature are arguably two of its most 
appealing traits, but how do you keep the project going financially?


JM: We rely on sponsorship and donations primarily.  For instance, Boxee has contributed the initial costs of running the server that hosts xbmc.org, trac, and associated services, in addition to many other donations to the project, such as covering the expenses of the developers conference last year. We hope that donations from users (to the XBMC foundation) will cover these costs in the future. 


Q: As a project, XBMC never seems to sit still. It has evolved from an 
Xbox hack into one of the most full-featured and customisable media experiences available. What influenced the decision to go multi platform?


JM: As with most major new things that affect the project, the decision to go multi-platform came from a developer fronting up and putting in the work.  Yuval was responsible for the port to linux which was the main departure point from the xbox. I’d done some initial work earlier on porting to win32, and once the linux port was working nicely, Elan Feingold did the initial porting work to OS X. This is the great thing about open source - developers from outside the main team can come along, grab the code, and make changes as they see fit. 


Q: How does the team cope day-to-day with XBMC’s multi platform nature? 

JM: The key is that we try to ensure that any additions to the codebase work across all platforms, assuming that it is feasible to do so. Whilst we don’t reject platform-specific features, we attempt to do everything as generically as we can.  This generally leads to improved code on the whole as the interfaces are thought through further than they may have been for a single platform solution.

An example would be the VDPAU hardware acceleration, which is only available under Linux.  This is impossible to achieve (at least using the same API) on Windows, Xbox or Mac OS X, so instead the code is added in a way that makes as little impact on the other platforms as is possible.  With developers on all platforms, any errors that unintentionally break another platform, or anything that could be done in a more platform-neutral manner is quickly picked up on and fixed. 


Q: Unlike with Plex and Boxee, which have fairly short release cycles, the XBMC community as a whole seems to rely more on self-compiled builds, with official releases often months apart. Why have you chosen this approach?

JM: We’ve chosen a 6 monthly release cycle for official stable builds as a compromise between having a build that is as bug free as we can possibly make it, and having builds that contain the latest and greatest features. We don’t want to release official builds that contain problems if we can avoid it, which means that we must feature freeze for a reasonable length of time prior to release to allow all developers to focus on fixing problems.

We currently feel that a 6 monthly interval is a reasonable compromise between having enough time for developers to focus on new features, whilst also allowing periods 
where all development effort is focused on stability. The unofficial builds from the community help fill this gap for those who prefer to try out the newer features and don’t mind having to deal with a few bugs here and there, and in addition give developers valuable feedback on how new features are coming along, and whether or not there are new problems introduced.

We’re still trying this system out, though, and it may take a little bit to get the timing right - we’ve only had the one official stable release after all, and the next is due in just under 2 months from now. I think we’ve got the timing reasonably right at the moment, given the available resources we have. 


Q: Do you think the project’s reliance on users compiling their own builds of XBMC may turn off potential adopters who don’t have the means or the experience to do so? 

JM: I don’t think that’s a problem at all, as there are builds made available from the community for most platforms. Windows has at least 3 people making releases for download, Linux has the SVN PPA which is built regularly, and with the refined Mac OS X build process, more frequent build releases there are just around the corner. I think the vast majority of users are not interested in constantly upgrading their software when what they have works perfectly well - they’re quite happy to wait a few months and update to a stable build if they think it’s necessary. 


Q: Despite the long release cycle, XBMC’s feature set continues to evolve at a rapid pace. How do you keep the project from stagnating?

JM: We don’t have to do anything as a team really - the community as a whole is so enthusiastic that it keeps things running along far faster than we could if we were doing all the pushing. I personally find I don’t have enough time to implement even20% of what I’d like to, and I’m sure other developers feel the same way. 


Q: What influences your choice of new features and areas of interest as development continues?

JM: The main thing for a developer is whether or not we’re interested in a particular area ourselves, through use of XBMC in our own systems - nothing motivates morethan an annoyance constantly faced! Given that my main interest is in the user interface, I usually have a very long list of ideas and features that I’d like to work on - all focused on making things easier for the end user (and thus me!)  Often many of these things rely on making underlying changes to the code before the end goal can be worked on, so can often take a long time to get to, but I always prefer a correct solution over a quick solution wherever possible. 


Q: What about customisation, what is the relationship between the developers and the skinning community? How do the needs of those designing interfaces for XBMC influence the core team’s development efforts?

JM: We have a great relationship with the skinning community, and I am constantly amazed at the ingenuity and skill that they display in coming up with some of the ideas - often times things that were not considered possible are done through innovated use of the skinning engine. As I’m the lead developer on that side of things, I’m usually the main point of contact for skinners looking for new things or asking about how to best achieve some particular function, and I’m always happy to entertain changes that make things easier for them, or allow them to do something new.  Much of the skinning engine has come about through back and forth discussion among the team and skinners, and we support them in any way we can, whether it’s through providing a forum, answering questions, commenting on suggestions, or adding features. 


Q: Let’s talk a little about the other products which the XBMC project has originated. What’s your take on XBMC’s spinoffs, Plex and Boxee

JM: The one great thing about open source software is that third parties can take the source code and develop it in different directions than the original developers might have done so.  I think both Plex and Boxee have done this in different ways.  Certainly we don’t have the infrastructure or financial backing to be able to do what Boxee have done - creating a version of XBMC with a focus on social networking - I think they’ve done some cool stuff.

One thing that is a disappointment with both Plex and Boxee is that they’ve gone to a closed development model and have closed off parts of the source code. Both have had to be reminded (several times) of their requirements under the license, and both only release the sources after a binary release has been made.  They’ve also closed off significant parts of their new features - the Plex Media Server is closed source, as are the flash and silverlight players that Boxee have.  While they are entitled to do so, it is in my opinion contrary to the open source ideals on which XBMC has been based, and, to be honest, I see no advantage to their users in having code hidden away. 


Q: Does the XBMC team as a whole maintain a relationship with the Plex and Boxee teams?

JM: We have a good relationship with Boxee in particular, yes.  We have two developers on the team that work for Boxee, and we’re kept abreast of changes that they make that XBMC could benefit from.  Boxee have been of great assistance to the project in terms of the financial sponsorship they’ve given - they very much understand that without XBMC they wouldn’t exist!  We don’t have a relationship with the Plex guys at all as a team, though I am in contact with Elan from time to time, and enjoyed meeting Isaac when I was in San Francisco on a recent holiday.  We take very little sourcecode back from either party on the whole, though - most of the changes that they make go into the extensions that they have, much of which is closed source. 


Q: Why do you think Boxee has been getting so much press lately as compared to XBMC or even Plex?

JM: They pay a guy to do PR would be my guess, plus they’re an ”opensource” company, which is always helpful in getting a bit of free press. 


Q: How, if at all, is XBMC influenced by the feature and design choices adopted by those other products?

JM: Obviously any similar software product gives ideas - we’ve taken many ideas and features from other products in the past, and will continue to do so in the future.  Many times we’ve already thought of a feature or design choice but just haven’t had time to implement it properly! 


Q: Getting back to XBMC itself, do you have a vision as to where the project might be in a year’s time?

JM: I think our next release will have well over a million downloads. I think that with the release of nVidia’s ION platform, XBMC on linux (either live or under ubuntu) with hardware acceleration of video decoding will be the platform of choice for many - a small, lower power box that will play all HD material. 

The main focus for me is making things easier for the new user. Currently there’s many things that a new user is confused about, and things that they should not have to concern themselves with.  Some of XBMCs most powerful features, such as the video library, are beyond the reach of the new user unless they read the manual carefully and ensure they set things up correctly.  It’s my goal to make using XBMC as simple as possible, whilst still allowing our existing “advanced” users the flexibility that they are accustomed to.  This is no easy task, but in my opinion is essential for the long-term benefit of the project. 


Q: Any hints as to when the next major release will be, and what it may bring? 

JM: Next release is April, probably towards the end of the month. Major new features are hardware video decoding on nVidia chips under linux, and smoother video playback for all platforms.  As usual, there’ll be a myriad of other new features, along with improvements in stability. 


Q: Thanks so much for taking the time to talk to us. Is there anything you’d like to say to our readers?

JM: If you’re an XBMC user, thanks for being part of this awesome community.  If not, what are you waiting for?  Pop over to xbmc.org and check it out.