Andy’s Blog

Just another WordPress.com weblog

Digital Economy Bill

Just a quick post to let you know the Digital Economy Bill has had it’s second reading in the house of lords. This is the first oppotunity for discussion of the bill by the lords. This bill is the one that plans to introduce new measures to fight copyright infringement (amongst other things).

The debate can be watched on Parliament TV, the debate starts at 33:45 (roughly). The default option for watching the debates is Microsoft Silverlight, if you don’t have that you can use Windows Media Player (If you have the correct plugins installed this *should* work on Linux). Unfortunately there is no option for Ogg video which is natively supported in a number of browsers.

A quick word of warning, the debate is very long, several hours in fact.

You can also read the text transcript of the debate.

Advertisements

December 9, 2009 Posted by | Computing, Software | 1 Comment

BBC Redifines “Neutral”

Back when the BBC first created iPlayer the BBC where ordered to make it platform neutral.

In response the BBC has released a new version of iPlayer using Adobe AIR. According to Adobe’s website this runs on Linux, provided your version is “Fedora Core 8, Ubuntu 7.10, openSUSE 10.3″[2].

For those who know about Linux they would notice that these versions are outdated. Ubuntu is now at 8.10[3], Fedora is at Core 10[4] and OpenSuse is up to 11.1[5]. Ubuntu 7.10 also ceases support in April 09[6]. The BBC intends to release it’s new iPlayer publicly in February, so it will only work on Ubuntu for 2 months before 7.10’s support is pulled.

According to the BBC’s Mr Rose

The cross-platform nature of Adobe AIR means the iPlayer will work with Open Source and Apple Mac computers “out of the box” on 18 December, said Mr Rose. It fulfilled the Trust’s demand that the iPlayer be “platform neutral”, he said.[1]

Princeton’s wordnet defines neutral as:

not supporting or favoring either side in a war, dispute, or contest

However the BBC’s version of iPlayer favours a few specific platforms. It will not run on Debian on ARM nether is there a version of for the SPARCS platform. Quite clearly providing versions for one platform and not for another platform is not being entirely neutral.

In the computing world we do have many platform neutral technologies. For instance HTTP is considered platform neutral as the IETF holds a public specification for it’s operation, which they provide to anyone who wants a copy and therefore any platform can chose to implement HTTP.

This is not true of the BBC’s iPlayer. The BBC has chosen to withhold the details of iPlayers operation so that no platform can implement it on their own. They then provide iPlayer to certain platforms. This is not neutral.

It would appear the BBC have a different definition of neutral to the rest of the world.

At the time of writing the BBC Trust have not confirmed whether they consider the BBC to have complied with the platform neutral obligation however they have provided the following statement:

The BBC Trust welcomes BBC management’s announcement today that Linux and Mac users will be able to download programmes from the iPlayer. We will continue to assess progress on the Trust’s requirements for platform neutrality at six monthly intervals.

References used in this article:

[1] http://news.bbc.co.uk/1/hi/technology/7787335.stm

[2] http://www.adobe.com/products/air/systemreqs/

[3] http://www.ubuntu.com/getubuntu/download

[4] http://fedoraproject.org/en/get-fedora

[5] http://software.opensuse.org/

[6] https://wiki.ubuntu.com/Releases

[7] http://wordnetweb.princeton.edu/perl/webwn?s=neutral

December 18, 2008 Posted by | Computing, Linux, Software, Ubuntu | Leave a comment

Linux Sol #2: MPlayer AF_INET6 Error

Linux Solution #2

Fixing MPlayer AF_INET6 Error

Due to the success of my previous post about fixing unmount problems I have decided another solution to a common problem is in order.

This information is supplied with ABSOLUTELY NO WARRANTY.

Please be careful when entering commands. Particularly ones you find on the Internet. Remember that anyone can post commands on the web so you should only run something if you know what it does. If in doubt use the manual. This is a good idea anyway as it can help improve your knowledge.

For more information about the commands listed use the Linux manual pages (accessed via the man command)

The Problem

When listening to remote streams using MPlayer an error message is displayed that reads: Couldn't resolve name for AF_INET6: example.com (shown below).

The cause of this error message is simple. There is a protocol called the Internet Protocol (IP) which is used to communicate on the Internet. It has two main versions IPv4 and IPv6. When MPlayer tries to turn a name (such as example.com) into an IP address it looks to see if it has an IPv6 address. If it can’t find one it switches to IPv4. However it issues an error message.

The Solution

As many sites do no use IPv6 you can instruct MPlayer not to try IPv6 unless it can’t use IPv4. To do this you can add the following line in MPlayer’s configuration file:
prefer-ipv4=yes

If you only want to make the change for the current user you can use the configuration file ~/.mplayer/config (where ~ is your home directory).

If you want to make this change for all users you can use the global configuration file /etc/mplayer/mplayer.conf or /usr/local/etc/mplayer/mplayer.conf. Which file you use depends on your Linux distribution.

Now MPlayer should not display an error message if it finds an IPv4 address but no IPv6 address.

You may have to close and reopen MPlayer for these changes to take effect.

April 6, 2008 Posted by | Computing, Linux, Software, Ubuntu | 1 Comment

Should the Linux community reverse enginner iPlayer and 4OD?

If you live in the UK you are probably well aware of the BBC’s iPlayer[1] and channel 4’s 4OD[2] program.

These are both pieces of (proprietary) software that allows (windows using) people to download TV programs and watch them on their PC.

Linux users have been intentionally excluded from this by Channel 4 and the BBC, despite the BBC’s obligations under it’s charter[3], requests from it’s regulator (the BBC Trust)[4], and protests from it’s license fee payers[5]. The BBC has stated in a podcast[6] that they will not use open source as open source is “insecure” (of course that could have been easily tampered with as a cracker could have broken into their servers as they run open source code[7] on many of them and therefore must be horribly insecure).

So as the BBC have admitted they will not provide us access to the content we pay for (I pay the same T.V. License fee as anyone else!) then maybe we should consider doing it ourselves

If we sit idle it will be almost impossible to introduce people to Linux as Microsoft now have a whole supply of T.V. to go with there OS that we can not compete with. Even though Microsoft never even produced the content in the first place, in fact members of the Free Software community even payed for the production of some of it.

The Open Source and Free Software communities can write good quality code. Linux seems to be more secure, faster and stable than it’s competitors, GCC is one of the most widely used C Compilers and Firefox is increasing it’s market share rapidly, not to mention the Apache webserver (which the BBC [7] and Channel4 [11] both use). So should we write a replacement for 4OD and iPlayer?

To begin writing a replacement we would need to know how to speak with the Channel4 and BBC servers. We also need to know how to read what they send us. To do this we would need to reverse engineer the current programs to determine how they communicate and re-implement it in our own application.

Are choices are few but here are some of them:

  1. Sit back and do nothing
  2. Implement and application similar to iPlayer and 4OD (including DRM) but using other formats and communication protocols
  3. As number 2 only minus the DRM.
  4. As number 2 only reverse engineer iPlayer and 4OD so we can use the same formats and protocols.
  5. Pursue Political options (write to MP’s, MEP’s, the Prime Minister etc.)
  6. Pursue Legal options, the BBC has requirements in it’s charter, we could continue fighting for the BBC Trust and Ofcom to take action or ask the E.U. to intervene in the matter.

If we go for option 1 desktop Linux will be dead (at least in the U.K.) very shortly.

If we go for option 2 we would have a useful application but there is no guarantee that either the BBC or Channel 4 would use it. After all Firefox can access webpages fine but the BBC blocked it from iPlayer.

If we go for option 3 we would have the same problem as option 2 with the added problem that the BBC is s huge fan of DRM and will refuse to consider anything that doesn’t use it (despite it being useless and the one they selected being cracked before the BBC released iPlayer[8], at least we know the BBC’s use of DRM has nothing to do with protecting content then).

If we go for option 4 there would be little that the BBC or Channel 4 could do. We wouldn’t need their help provided we can find enough people with the skills to reverse engineer binaries. There may however be legal issues, perhaps less with iPlayer as the charter imposes limits on when the BBC can actually sue people. Any lawyers out there want to comment on this option?

Option 5 seems good on the face of it, but as there is no election on the horizon any more MPs will no doubt fail to act. This was also tried before and the Prime Minister himself refused to provide any reassurance to the 16 thousand people who signed a petition to number 10[9].

Option 6, this is still a good option. But the E.U. have taken years to bring a judgment against Microsoft for actions it committed years ago and if we wait this long again then it will already be too late. Ofcom and the BBC Trust have said they consider Platform Neutrality to be important but have refused to actually do anything about the BBC’s refusal to comply. (it would appear compliance with regulators is optional).

If done correctly Options 2, 3, and 4 could all be done at the same time. After all if we place the code for protocol communication in a separate library or module then we could simply attach entries for iPlayer and 4OD once it’s been reverse engineered and the legal issues clarified. Again for the DRM code it would be in a separate module which could be removed to generate option 3, it would be present in option 2, and it would contain the reverse engineered formats for option 4.

One question remains, who should fund this venture and who provides resources? Let’s be straight reverse engineering is possible but difficult. (Although the Samba guys managed to reverse engineer Microsoft’s file sharing protocol reasonably well.) We would also need some kind of legal protection. Maybe the FSF would be willing to provide that?

Of course producing options 2 and 3 would be easier. And if we can make it run on all platforms easily we would have a strong case for forcing the BBC at least into replacing their current code (and hopefully returning the money they wasted back to us the license fee payer).

Some other questions:

  1. What programming language? Python, Java, C?
  2. What formats and protocols? Bittorrent, TV-Anytime, OpenIPMP, Java DReaM?
  3. FUNDING (again)

Why have the desktop Linux vendors done nothing? Do they consider the U.K. completely unimportant? I would have at least expected Canonical (of Ubuntu fame) to have stood up for us, does the U.K. not matter to them anymore? How about it Jono, will Canonical stand up and help?

Feel free to comment below.

Links:

[1] http://www.bbc.co.uk/iplayer/
[2] http://www.channel4.com/4od/index.html
[3] http://www.bbc.co.uk/info/policies/charter/
[4] http://www.bbc.co.uk/bbctrust/consult/closed_consultations/ondemand.html
[5] http://defectivebydesign.org/iPlayerProtest
[6] http://backstage.bbc.co.uk/news/archives/2007/10/iplayer_drm_and_1.html
[7] http://toolbar.netcraft.com/site_report?url=http://backstage.bbc.co.uk
[8] http://news.cnet.co.uk/software/0,39029694,49291676,00.htm
[9] http://petitions.pm.gov.uk/iplayer/
[10] http://toolbar.netcraft.com/site_report?url=http://www.bbc.co.uk
[11] http://toolbar.netcraft.com/site_report?url=http://www.channel4.com
(I am not responsible for the content of external links)

November 4, 2007 Posted by | Computing, Free Software, Software | 17 Comments

Open Source Licences – Hindering Open Source Development?

Before I start I should say that all going well this should appear on the Ubuntu-UK planet (cross fingers ;))

OK so we begin.

I’m sure many of you are aware of the British Broadcasting Corporation (BBC), if you aren’t they are a publicly funded broadcasting (T.V., Radio, Website etc.). If you own a T.V. in the U.K. you generally have to pay a licensing fee which is where the BBC gets some of it’s money from. The BBC developed an application they call “iPlayer” which currently only runs on “Microsoft Windows XP”, claiming that they couldn’t develop a cross platform application without it taking a long time and costing a lot. In an attempt to prove that this is completely untrue I thought I would take a look into how easy (or hard) this is.

As two of the important benchmarks are Cost (I am a poor student), and Time, I thought “How can I keep cost down and develop fast”. And then I thought “Hay this is Open Source (or Free Software if you prefer), I can borrow from other peoples code and just bolt them together.”.

So what I needed was:

  • Media Playback
  • Peer to Peer download capabilities
  • Fetching show schedules
  • DRM (A requirement of the BBC, if I am to show that it wasn’t as difficult as claimed to produce a cross platform application I at least have to meet the same requirements do I not?)

In a few hours I have got a basic GUI (thanks to the Java Swing library) so now I am looking at solving the other problems.

First Media Playback, after rejecting Jtheora (poor documentation made it unusable) I settled on JMF (Java Media Framework). Only it’s not open source, however I don’t actually need to distribute the code due to the way Java works so not a problem there.

Peer to Peer, well there is a GPL BitTorrent library called Snark, I haven’t quite worked out how to use it yet though.

Fetching the program data really depends on the format. There is a format called TV Anytime, and helpfully the BBC have written a java library for parsing it. This is licensed LGPL (that’s another different licence!).

Now DRM, I knew this was going to be a problem but luckily there is Java DReaM. Sorted right? WRONG! It is licensed under CDDL. Now as far as I can tell that means I can’t use it in my GPL application. And I can’t make my application CDDL because then I couldn’t use the GPL or LGPL code.

So is all the different licenses actually slowing down development? All I was trying to do is build a new application. It doesn’t do anything special just things that many people have done before so surely I could use their code. And then I suddenly have to switch from being a Software Engineer to a Lawyer to determine which open source code I can or cannot use in an open source application. This slows me down a lot because I am not a Lawyer. I don’t know how to read these complex legal documents. Can the Open Source and Free Software communities really afford to have such time wasted by legal complexities that we put in our own way?

Another problem is of course that I require the libraries to be in Java. Many aren’t. A single unified language would be good. It wasn’t so much a problem for platform specific applications you can compile down to binary from and from there they library sort of looks the same (OK I know there are differences but I can call a shared object file from different languages so it’s not a huge problem). Unfortunately I lose that when trying to go Platform Independant. I can not run native libraries as the entire code would then be locked to whatever platform I could port the library to.

So do we need a single unified license, or possibly a set of compatible licenses instead of the incompatible ones we have now.

Do we need a single unified format for cross platform “binaries”? I can access a library written in one language from a different language when they are natively compiled, why is there no standard for doing this with platform independant code? Is it just a standard Virtual Machine we need? Should we all just switch to Java? Should other languages compile to Java byte code the way that compile to native machine code (is this possible?).

Any way back to the drawing board with my Free iPlayer replacement.

For anyone interested I have been able to get it to playback media files, JMF have a bean that requires only a few lines of code. SO useful, pity there’s not a Free (as in speech) implementation (that I am aware of)

September 25, 2007 Posted by | Computing, Free Software, Software | Leave a comment