Posts Tagged ‘free software’

It’s MythTV, but lighter!

Monday, March 24th, 2008

Over the last two years I’ve been intermittently working on a light-weight frontend application to work with MythTV. Basically I was impatient with the slow loading-time and somewhat resource hungry nature of the proper MythTV frontend application. This is OK when I want to make use of the various PVR features, but sometimes I just want to tune to a digital radio channel and minimise the application or simply watch live TV, so I don’t need the advanced functionality MythTV offers.

And so LightMyth was born. LightMyth is still very much in development, but today I’ve got it working sufficiently to make a release – version 0.5. At the moment I’ve got it playing back audio-only channels perfectly, but TV playback is still somewhat broken (you can get audio or video, but not both at the same time) – this seems to be a threading issue.

LightMyth

LightMyth is written in Python (yes, maybe Python isn’t a great choice for a lightweight application, but writing the same thing in C or C++ would have taken a lot longer) and uses the very good GStreamer framework for the audio/video playback. It has a (currently very unpolished and feature-incomplete) GTK frontend. It is quite happy to work with a remote MythTV backend over the network and should be equally happy with a local backend running on the same machine.

There are three main reasons why such a simple-sounding application has taken me nearly two years to get functional. The first is that I’m lazy. The second is that when I started, GStreamer was somewhat immature and I was frequently coming up against bugs or missing features that were preventing me from doing what I needed – especially when it came to demultiplexing the MPEG2 transport streams from digital TV. These issues now seem to have all been resolved, and GStreamer is doing everything I need.
The third reason is that I was reverse-engineering the Myth protocol. You may well ask why, considering MythTV is Free/Open Source. Well trying to read someone else’s source is hard enough, but trying to decipher it and figure out the inner workings of a network protocol is even harder. I found it much easier to simply run Wireshark to capture the commands being sent and received by the MythTV frontend, then figure out what they’re doing and implement them into my application.

So I’ve made a fairly wild claim that my application is ‘lighter’. In a very, very non-scientific test I started the MythTV frontend, tuned to a radio channel (BBC 6 Music, in case you’re interested) and minimised it (note there’s no MHEG/interactive stuff enabled, so all its doing is receiving the MPEG stream over the network and playing it back). This consumed 33% of my CPU and 12% of my memory.
By comparison, my LightMyth-radio frontend playing back the same radio channel consumed just 1% of my CPU and 2.7% of my memory. I was pretty surprised by these figures – my main desire was to get a frontend that started-up quicker and I hadn’t really been concerned with CPU or memory usage, but the difference between the two is fairly substantial.

It’s fairly basic at the moment, but it has a nice configuration wizard to assist in setting it up. I will add basic support for the digital program guide at some point (maybe just now & next) but don’t expect any of the PVR functionality (scheduling or playing back recordings etc.) as this is not what LightMyth is for (this is what the main MythTV frontend is for).

If you’re feeling brave, you can go and grab a copy. The license is GPLv3. Any feedback or bug reports would be gratefully received, as would simple success/failure reports – there’s only so much I can test, due to lack of hardware. Digital satellite and cable playback is completely untested, for example…

Nearly time for FOSDEM!

Sunday, January 20th, 2008

FOSDEM 2008

LUGRadio Live 2007 Retrospective

Tuesday, July 10th, 2007

LRL2007After missing LUGRadio Live last year, I decided to go along this year. There were a few really good talks, the first of which was Thomas Vander Stichele’s Flumotion talk (I’ve since played with Flumotion and a post on that will be forthcoming). Also good was Scott James Remnant’s ‘Ten Really Cool Things’, which included a look at Compiz Fusion (born from the re-merging of Beryl into Compiz) – I normally fail to be impressed by 3D eye-candy as it usually serves no useful purpose, but some of the stuff in Compiz Fusion looks cool and actually useful usability-wise. It was also good to hear from Becky Hogge about the work the Open Rights Group has been doing since it was formed; it seems they are doing some really useful stuff and my £5 a month is being put to good use. I tend to be wary of new groups that pop-up and request money since in the past one well-known UK-based group (which I won’t name) started taking money and then did nothing useful or productive at all – they just sat around having AGMs and forming work-groups that never did any work. Anyway, there were lots more talks I would have liked to see, but the scheduling was far from ideal – in a few of the time-slots I wanted to see all three talks that were happening. Also for many of the talks the titles weren’t even published in the printed schedule on the day, making it somewhat difficult to choose what to see. I’m hoping there will be some audio or video of the KDE4, ‘I am a Lawyer’, ‘Free Software Rocks’, Google and BBC talks. There were some cool talks in the somewhat cringeworthy-yet-unmissable Gong ‘a’ Thong event (yes it included both a gong and a thong…) but there were also some really dull ones too. Perhaps next time the audience can have the power to cut-short talks like in The Comedy Store’s Gong Show.

I thought the exhibition area was very disappointing, with many notable projects and groups being unrepresented. Certainly there seemed to be more exhibitors at LRL2005… I guess clashing with the end of aKademy didn’t help. There were also very few well-known speakers – now I know well-known speakers don’t necessarily make for better talks, but it was just something that I noticed fairly quickly from looking at the schedule. Again, in 2005, there were several well-known speakers.

OK so I’ve given LRL a bit of a kicking for a few things, but there were some more good things too. The venue was pretty good and although the sunlight coming through the roof of the atrium area made it difficult to read slides, it did make it a very pleasant place to sit. The location was pretty good too – right near the railway station so easy to find and make a quick getaway from. The Friday-night meet up at the Hogs Head was also good, with several real ales to choose from and a free (and fairly substantial) buffet.

Unfortunately getting home from the event proved difficult, as a four hour journey was made to take eight hours by the rather inept handling of a technical fault on a Virgin Train (after sitting on a broken-down train for three hours, they finally arranged coaches for us). I was not very happy and won’t be losing any sleep over them losing their franchise.

Anyway, overall LRL2007 was a good event and I’ll probably go along next year. Unfortunately all my photos are pretty rubbish (I can either spend my time running around getting good shots or I can focus on enjoying the event – I chose to enjoy the event) but I’ve uploaded them to my photo album anyway.

GPL++

Friday, June 29th, 2007

Today sees the release of the GPL version 3, a license that will either ensure software freedom in the future or split and ultimately destroy the free software community (depending on who you speak to).

As yet, I’m undecided as to how I’ll be using the GPLv3 for my own projects. On the one hand, I do want the extra freedom-ensuring clauses v3 adds, but on the other hand I don’t want to make my code unusable by the many, many applications out there using v2. I suspect for the moment I shall leave things as they are: licensed under v2 with the ‘any later version’ clause so anyone wanting to use my code under v3 code can do so. At some point however, I will have to switch to v3 properly else my code won’t benefit from the extra protections in v3. Before I can do this, I’ll need to thoroughly investigate compatibility issues – e.g. is something it depends on v2 licensed (generally most core libraries under Linux seem to be under a BSD or similar license, leaving the developer free to choose their own license for their work).

One of the main things people seem to dislike about the new license is the anti-tivoisation clauses. Personally, I find tivoisation very irritating and often there is no excuse for it. My company bought an expensive NAS device from Thecus – it’s essentially a PC running Linux. The firmware was/is fairly buggy and there were initially some very serious issues (e.g. a 2GB file size limit imposed by the versions of NFS and Samba it was running). I wanted to fix these problems, which would have been easy to do, but was unable to do so. Sure I could get the GPL-licensed source code, but the box wouldn’t run my modified binaries without them having been encrypted by Thecus. That’s not fair, and it removes my freedom to use free software.

While I’m talking about the GPL v3, I’d like to publicly state that all the contributions I’ve made to GPL-licensed projects may be considered licensed with the ‘any later version’ clause – so if I’ve contributed to your project where the license stated GPL v2-only, you do not need my permission to change to v3 or add the ‘any later version’ clause; you already have it.

FOSDEM retrospective

Thursday, March 1st, 2007

Well having finally recovered from the beer and traveling associated with FOSDEM (it was a 10 hour journey for me, since I went by train in order to save a few quid) I figure I should do a quick write-up.

I didn’t take any photographs this time, simply because 1. I was feeling a bit lazy and 2. it has been shown from previous visits that my camera is not good enough to get decent photographs.

Anyway, for me the best talks of FOSDEM 2007 were Simon PhippsLiberating Java and Sean Moss-Pultz’s OpenMoko.

While I’m not really interested in Java itself (I really don’t like Java as a language; it’s too object-oriented, if that makes sense), I am interested in Sun’s reason for GPLing Java and in their new-found commitment to Free Software. Simon Phipps is a really good speaker; he is somewhat like Stallman in that he has the ability to clearly convey what he’s trying to say and when he says something, you believe him. I think it’s essential that Sun have someone like Simon to speak for them, since as a community we’re somewhat wary of corporations that claim to be on our side, since that’s exactly how Novell were before they turned around and screwed us.
In any case, the talk actually wasn’t really about Java, but more about how Sun has come to recognise the importance of Free Software and are making a serious commitment to it – such as, announced for the first time during the talk, Sun becoming a corporate patron of the Free Software Foundation. What was also emphaised was that ‘Sun are listening’ are want to know if they’re screwing up in the eyes of the FLOSS community – this is good to hear and I hope that continues. I was hoping to catch up with Simon to discuss OpenSolaris licensing and how it is impacting on my Linux kernel development work, but unfortunately didn’t get the opportunity. I’ll have to mail him instead.

The OpenMoko talk was really interesting, because these guys have some really big ambitions and are bringing some new ideas to a somewhat stagnant industry. The company behind the OpenMoko project are producing a mobile phone (the Neo1973) based on 99% FLOSS, which is completely hackable: you can write standard GTK applications for them – none of this cut-down-slow-as-hell-Java nonsense to worry about. The small room the talk was in was not just full, but over-full – people were spilling out into the corridor. Clearly the popularity of the OpenMoko project had been grossly underestimated – it should have been in one of the main lecture theaters. A development model will be available in about a month for just $350 – I will absolutely be having one, presuming I can get a nice discount when they launch the final hardware revision a few months later. One thing that really annoys me is when I buy a mobile phone, only to find that the firmware is full of bugs (my current handset has more than its fair share). The prospect of having a bugzilla in which to report firmware bugs and having the ability to fix such things myself is really cool.
Looking at the handset in-the-flesh, it was cool to see it booting a regular Linux kernel with all the usual boot-up messages and framebuffer penguin in the top-left of the screen, but it did take about a minute or so from power-on until the UI was loaded – I hope this is fixed before they go into production!

I have to say that having been to FOSDEM each year since 2005, this has been the best one. Previously I’ve had difficulty finding enough talks that I’m interested in seeing, especially on the Sunday, but this time I was in talks all day on Saturday and most of the day on Sunday. Good work FOSDEM organisers!