Sunday, July 11, 2010

XBMC

I had recently been contracted to modify the interface of an XBMC installation.  For those who do not know what XBMC is, it is the open source media center that is based on the original Xbox online management software.  The original application allowed online users of the Xbox 360 to access on-line content in a pay per view context.  A community of hobbyist coders have reversed engineered the application and made it open source so anyone can slap together a media PC of choice parts (depending on their budget), hook up their rig to their entertainment center, and watch anything from DVDs, to Bluerays, to on-line media streams, to selections from their library of internet downloaded movies on their large screen LCD/Plasma TV.  They even coded routines to interpret PC remote controllers requests and configured much of their interface to accommodate the tactile nature of a push button remote control.

On top of playing a variety of formats on a PC through its built in player XBMC can also run scripts written in PYTHON to access and filter out links to media on your favorite streaming site and present the site's inventory of media on a stylized menu.  More scripts can also be added to associate backdrops, cover images of music albums and DVDs, and IMDB info of your presented media.

XBMC can also be skinned to your liking and the software provides the user with a system of XML files that can easily be edited to sport the graphics and layout of your choosing.  The system claims to even allow users to add functionality to XBMC; however, the reality is the displays that the user can add are either additional dialogues or overlays which support the main pages of the application.  The ability to add standalone new pages are somewhat limited and in practice stand out as jury rigged pages.  The skinning library is limited to image displays, lists, windows, and buttons but each component has a large inventory of customizable properties.  The interactive components can also be scripted to trigger a robust selection of predefined functions to control or display relevant information and content as well as flag states or conditions during the run time of the application.

XBMC has a community of contributors scripting everything from skin packages, plugins and scripts that target popular media source sites, to 3rd party application launchers for those who want to integrate some gaming into their media center.  XBMC is open source - anyone can download an install package for free or download the sources for modification.  All information can be found on http://xbmc.org/ .

I'd rather be blogging...

I decided to finally look into developing iphone apps.  It was the reason why I bought my Mac Book.  It's been a week and I don't think I have been this frustrated with a learning curve.  I think what is getting to me are the droves of Mac fan boys who claim anybody and their mom can learn how to make phone apps.  If that were true then why is every second tutorial I find not compiling.  Even more frustrating are the constant go to one of the many interface steps and type this code directives that's horribly out of date.  I find many of the tutorials them selves do not explain the mind set of performing the said steps and give me the impression that half these fan boys turned coder merely copy patterns of whole applications and don't have a true understanding of what really is going on.

Just the other day I was on the train and an intern I had just met who was really into iphone app development tried to show me how easy it was to throw together an app.  In 10 minutes he had his iphone simulator pop up on his Mac and pop a view of a bunch of thrown together components which really did not do anything useful.  I turned the question around to him and asked him if he could make a simple form to change the screen display to which he sat and looked around for an example he could base the app on.

I had recently learned Adobe's Flex platform in a stretch of 2 months and after working a total 6 months on the platform I know I can throw together a simple online web app with forms and views and have it store information onto a database in under an hour.  Now that to me would classify as intuitive since other than a a pattern of code I use to code database pulls and the local repository of variables everything is pretty much from the top of my head.

Now maybe I'm getting a little ahead of my self.  Maybe I'm just not of Steve Job's mind set of what easy should be.  But I am pretty sure my mom will never program her own iphone app in my lifetime.