Which HTPC Solution?!

As a keen HTPC enthusiast based in the UK, I can only concur that some kind of official app for TVCatchup.com on Boxee‘s platform would be awesome. However, if things turn out that the two parties unfortunately can’t get along in some way then I will probably have to jump-ship to Kodi (formally XBMC) which seems to have more mature mythTV capabilities in the bargain. The downside to jumping ship is that XBMC does not have the richness of different sources of online streams that Boxee has as far as I am aware.



And what about WMC? Well, that is windows-based and hence evil! :-p Seriously though, it doesn’t support a single unified backend server with multiple HTPCs streaming off it’s tuners like MythTV and VDR allow, although it does support offline content streaming.



What way can I turn to satisfy my hunger for the triplicate utopia of online, offline and broadcast media?






Bottom line? THM wants something akin to:

  • Cut and Paste between VMs must be supported.
  • AIGLX compositing on the Dom0

GPL2 vs GPL3

THM has been thinking about the GPL and it’s forward provision clause.

Some projects are refusing to update their licensing from GPL version 2 to the latest version 3. The most notable of these projects would be the Linux Kernel. Linus has stated previously that he believes the GPLv3 forces signing keys for DRM and other encryptions to be made available to whomever the code is furnished.

This may be a misnomer, as Bruce Perens has clarified (dead reference: http://www.linux-watch.com/news/NS9312220011.html): the GPLv3 doesn’t force encryption keys to be made public, but rather forces hardware manufacturers (in his example) to put the DRM into hardware or user-mode. (Where the user-mode code would not be GPLv3 licensed.) He also states that in his opinion the GPLv2 also has this intent but didn’t say it explicitly.

The issue THM thought he saw, however, is not with the Linux Kernel which excludes the wording suggested for the COPYING file that states “either version 2 of the License, or (at your option) any later version.” Instead it would be those projects that do include said wording. THM thought, but now realises he is likely wrong after doing some reading of the actual contexts of the words and where they appear in the license, that a recipient of the code could choose to force the vendor/creator to comply with the latter version 3 of the GPL thereby requiring the more draconian (according to some) measures in the new license.

However, taking Bruce Perens’ clarification of the way the GPLv3 is implemented, along with Linus’ explanation of how the “or later versions” text works: THM can see that in actuality it is the recipient that must comply with the later version of the GPL, if he so-wishes, when and if he redistributes the code, be it modified or not. This means that nobody can force the vendor to upgrade his distribution to a more recent version of the GPL unless or until he does so himself. It also means that the recipient can relicense any code she redistributes when the COPYING file includes the correct wording, but must do so in a way that complies with the wording of the newer license such as the anti-TiVo clauses for DRM.

So, if the original author using GPLv2 had NOT complied with the INTENT of the version 2 license and included TiVo-like code that could not be reimplemented by the recipient of the code, then the recipient must challenge, or at the very least RE-IMPLEMENT any TiVo-esque code so that when she RE-distributes the code thereafter, using the later GPLv3 which is her right to do so with the COPYING file text intact.

In this scenario, ideally someone in the chain would take the original author of the TiVo-esque code to task over their noncompliance with the GPL, be it version 2 or 3, as, like Bruce Perens states in his paper, the GPLv2 has the same meaning as the law stands today as the GPLv3, excepting things like the anti-patent clauses which state that any indemnification conveyed by one party to another must also be conveyed to all users of the GPLv3 licensed software.

Trialling Drupal

THM has been utilising the Drupal Content Management System for few of his other projects taken on board as part of commitments to the IND-Web.com WebHost and Bowl Hat Web Developer. These projects are due to go live soon, but THM doesn’t wish to publicise them just yet. (THM has just noticed that he has already publicised both sites, R. Llewellyn Electrical Contractor and Treasure Trove Designs, previously in his About THM page on this very site.) Both of these sites are already discoverable via Google, but will inform visitors about the incomplete status.

As part of this work, THM found that he really quite liked the Drupal CMS for it’s sheer scope of ability. He has now used the CMS on three separate sites including this blog. Previous work had utilised the WordPress system due to it’s low barrier-to-entry. However, THM found that at times WordPress can be very limiting, and especially so for non-blog-oriented applications. Where WordPress is primarily a blog engine with CMS on-the-side; Drupal is first and foremost a CMS which means that, while blogging can be an integral part of any site, a site needn’t have the blog parts dragging the rest down.

Also, THM finds the theming system a bit less clumsy, and a lot less undocumented. WordPress tends to feel difficult to get along with due to the excess number of black-box parts of everything that a programmer is meant to play with, such as themes and modules. Take themes for a simple example: it is clearly documented that a programmer should use a content “loop” but the workings of this loop requires many bad programming practices, such as global variables, and it never is clear why one needs to call “the_loop()” function straight after starting a programmatic loop. Wouldn’t it be much simpler if instead of saying

while(have_posts()) { the_loop()

to set up a loop which calls the “WordPress loop” (these two names conflict in their meanings within WordPress where a loop is required to interact with the “WordPress loop”.) you utilise object orientation and say something similar to:

<?php while ($post = $wp->getPost()) { ?>
    <div class="post">
        <h1><?php print $post->title; ?></h1>
        <small>By <?php print $post->author; ?> on <?php print $post->formattedDate; ?></small>
        <?php print $post->content; ?>
<?php } ?>

This would be the complete loop. Note the use of a single global variable, $wp, and absolutely no use of global functions, have_posts() and the_loop(), which trample all over pre-existent variables thereby preventing any thought of nested loops.

With THM’s way WordPress theme designers would be able to use constructs similar to the following, which are completely impossible without major hair pulling in WordPress as it stands today:

<?php while ($outerpost = $wp->getPost()) { ?>
    <div class="post">
        <h1><?php print $outerpost->title; ?></h1>
        <div class="postcontent"><?php print $outerpost->content; ?></div>
    $query = $wp->query("query string for a related set of posts");
    if ($query->postCount() > 0) {
        <ul class="related">
<?php while ($innerpost = $query->getPost()) { ?>
            <li><a href="<?php $innerpost->permalink; ?>">
                <?php print $innerpost->title; ?>
<?php } ?>
<?php } ?>

THM has not looked at the capability of Drupal in regards to nested content, but another thing that isn’t possible in WordPress easily, yet is fairly simple in Drupal is theming the landing page differently to the rest of the site. Ok, so Drupal actually allows theming of any random page you desire to invent, which also includes the landing page. The was this is done is to create a separate page-front.tpl.php file in your theme’s folder with the design for your landing page. This is used on both of the aforementioned sites that THM has designed and provided hosting for.

Looking forward to the future, THM feels that Drupal, with it’s extreme versatility, and even it’s capability to hide features from the control panel for the designated administrator, should be the way forward for his projects from now-on. (The locking facility will be used on both aforementioned sites, due to ongoing business needs of the owner not requiring the full feature-set of Drupal so they needn’t be aware such functionality exists unless they require it.)

Android vs. iPhone

THM supposes it had to happen, the inevitable iPhone against Android post. While THM has owned an android for approximately a year now, he couldn’t resist the lure of an iPhone and went out and bought one the moment they were available on the Vodafone network in the UK. He posted about the purchase and initial thoughts on the same day, and at the time said that the iPhone was better. Is this still the case?

The iPhone is certainly faster than the HTC Magic when using the Android 1.6 Operating System. However, Android has come a long way since the release of “Donut” and is now sitting at version 2.2 “FroYo”. THM has, since the post “iPWNed”, updated the version on his Magic to the Cyanogen Mod unofficial release of the Android firmware. The version is equivalent to Android 2.1, and from the splash screen at boot up you know that it’s going to look pretty. The boot up Android logo on the stock Google firmware is just a boring textual “Android” with a glow scrolling from right to left occasionally. On the Cyanogen mod this has been usurped with the green android in the centre of the screen and what can only be described as a particle fountain on either side causing swirls of particles to envelop the android. It needs to be seen to understand what THM sees in it. The smoothness of this animation is impressive and shows the hard work of both the Cyanogen Mod team and the core Android developers at improving the speed of the entire system.

That makes them equal..

So if speed isn’t an advantage either way, then the iPhone must be better at applications. When you look at the Apple AppStore and compare the number of applications with that available on the Google Android App Store you would be forgiven for thinking that Apple has the edge here. This may not be the case, though, as Android apps are written using the Java programming language and, although the API is different, this means that existing mobile developers should be able to create custom front-ends on pre-existent applications; or use their already ingrained Java skill set to create new applications specifically for Android. When developing for the iPhone, you have to learn an entirely new language to most developers just to be allowed to submit your applications to the AppStore. (Apple’s Developer License Agreement requires that applications be originally written in Objective-C, C++ or JavaScript as executed by the WebKit Engine.) Not many new software engineers are already proficient in Objective-C which means that the target audience of developers for the iPhone is already reduced to those people that are willing to learn a new language.

In essence what this usually means is that it is new programmers that have never written a piece of software in their lives who want to cash in on the mobile market with applications like the fart simulator for $.99. This can hardly be worthy of world attention, can it?! To get an idea of the kind of people that are developing for the iPhone, just download a random application that isn’t developed by a mainstream agency and check the spellings on words like “your” and “you’re”.

Douches ‘R’ iPhone Devs

THM came across the Douche Detector (at least that’s what he thinks it was called) which “scanned” the owner or victim’s thumbprint and gaily reported that “your(sic) a douche”. That’s all it did! the Developer was getting $.99 a pop for downloads of this application and yet he wasn’t capable of even checking, or didn’t want to, his own use of the English language in one of the very few textual elements of the application?! This is just an example, but there are many more. If this is the intellectual level of App Developers for the iPhone, then THM thinks that maybe it would be better to go elsewhere. Someplace where intellectualism is encouraged.

And it’s with Android that this place is found. Android is an Open-Source software which means that users are encouraged to find out how it works, and to help others wherever possible without requiring monetary reimbursement. – Though it is perfectly acceptable to request a small sum to cover costs of developing a product yourself, such as an application which you list on the Android Store for which you have to pay a $50 entrance-fee. (A point of note is that Apple require double this at $99 per year.)

Without getting into the details, there is an entire world of Open Source developers, helpers and documenters that all create a vibrant “community” which will usually bend over backwards to help someone to understand virtually everything. It is this spirit that lead to, and maintains, the most comprehensive repository of human knowledge ever created: Wikipedia. Virtually everything in Open Source-land is free to use, free to change and free of cost usually requesting donations to further development, providing paid support to corporate users or being advertising funded. It is this idealism that pervades the Android operating system allowing for the same system to be used, changed, and melded with everything from phones to tables to televisions without requiring any permission from Google who invented it.

I’m confused

THM thinks this post has kind of lost it’s track, but it is this reason, the openness, the community, that will allow Android to ultimately beat the iPhone and iPad. Android phones are just the start, and we will begin to see the Operating System appearing on many more devices in the future.

THM recently read this post which says the same: the diversity of android devices is what will win out. Whereas with the iPhone it’s a one-size fits all approach that the user has to enter into choosing either this year’s model vs. last year’s model or nothing; with Android if you don’t like a particular device you are free to choose a completely different one with different features even from a different manufacturer. There is even an effort underway to bring Android onto the PC with the Android-x86 Project.

So THM changed his mind and now prefers Android then?

Well, yes and no. He adores the openness of the platform and the future promise of the Google App Store along with third-party stores which are available which aren’t shunned like those for the iPhone are. The main problem THM has with Apple is that they consistently seem to be denying any form of choice (as evidenced by the blocking of Adobe’s Flash platform from the iPhone). However, THM also notes the current inconsistencies between the size of the Apple AppStore vs the Android Store(s – Google and otherwise). Apple has also partially addressed the problem of multi-tasking, which THM acknowledges but thinks doesn’t go far enough when comparing with the Android system. At present there is not much, according to THM, to choose between the two systems with each having merits, but Android is fast eroding iOS’s perceived superiority while cementing it’s own superior features.

For the future he thinks that Android is the one to bet upon especially as market share continues to increase, along with the range and form factor of devices running the system. With so many companies jumping aboard the Android boat the speed and types of progress will only improve, especially when compared with that of the iOS devices which can only go as fast as a single company can manage. So for now, iPhone may be the choice, but for the future go with Android.

What THM Uses

Currently, he uses both. This is complicated, but having two numbers means that he has to continually swap between his iPhone, which has all his music on and, his Android HTC Magic which connects him with his life in the cloud. These are the two areas he struggles with: music is without doubt done better on the iPhone, but connecting with Google’s cloud is fairly obviously better on the Google initiated system of Android.

And going forward in the future?

THM wants to get a fully hardware accelerated version of Android running on both his desktop and laptop, complete with productivity applications such as a developer’s editor with syntax highlighting and a full-on office suite, even if it’s just for the “Geek Cred” of doing so.

Why we need an open web..

As an active, but not necessarily keen, participant in the facebook and twitter social networking craze I feel that more should be done to allow me to have control over my OWN data. Why should I give up full control over, essentially, who I am as a person and who I like to be with socially, to one all-encompussing do-no-evil company? It’s not just Google who want all knowledge about myself to be under their control, we increasingly see it with facebook. And it’s both of these organisations with their respective privacy failures that show us why we need a new way. It is for this reason, privacy concerns, that I’m not necessarily keen on the idea of Facebook and their like (or koobcafe as I like to refer to the concept). What we need is a way of controlling our own information and only letting slip that with which we know we are doing so.

What we need is a “home” for all our information on the “web”. Or a “WebHome”? Many people are toying with the idea of an “open” social network such as the Diaspora guys who got record funding to work over the summer from us mere mortals over at kickstarter.com. But the idea wasn’t theirs to begin with, others have already been trying to create this open social network but received very little, if any, press coverage. However, we don’t need any of these open social networks, because the social network already exists in the form of the Internet. All it requires is for someone to tie the ideas together into a coherent blob that people can use to share their data with. I’m talking concepts that already exist such as OpenId, OAuth, PubSubHubbub and RSS. We just need someone, anyone, to put their foot down and make a defiant stand against the giant corporations and say “You’re doing it wrong!”

And, before you say that we can’t do that, someone already has started putting their toes in the water. Yes we have this champion. A small Australian outfit that has been in the social network software business for 10 years called Boonex (www.boonex.com) to be exact. They have put together a package of $200,000 funding for R&D into the idea of this “WebHome” that anyone can create with any internet connected computer. Just take a gander at www.webhome.org and see some (linked) sites that are already bucking the all-encompussing trend to begin the tentative steps of childhood in the big bad world of predators called Facebook, Twitter and Google.

I emplore all readers to turn their wordpress blog into their very own WebHome and stick their tongue out at the world that will soon be following suit out of neccessity. Yes, WebHomes are here to stay, and you heard it here first. Spread the world, get your friends on board and for heavens’ sake stop being corporate rag-dolls. You can make a stand. You WILL make a stand. And together we will make for a better, more connected, future where the individual has the power to say “No, I don’t want my personality sold on anymore!”

New Wifi Antennas

I’ve just placed an order for a pack of these “Alfa 9dBi WiFi Booster RP-TNC High-Gain Screw-On OMNI-Directional Swivel Antenna. I will be putting them on my Linksys by Cisco WRT54GL Wireless-G Broadband Router which I’ve got set up as a public hotspot.

I still need to tweak the iptables rules on the hotspot a tad, as the way it stands at the moment my entire network is visible to anybody connecting to the wifi hotspot. I do have firewalls on my computers, but I have other devices such as an HD HomeRun digital TV tuner and my Sky+HD box connected to the network, and I’m unsure as to their security credentials. Hopyfully I can set things up so that my entire network is blocked except my caching router, which is running a version of the Squid web cache on a custom gentoo Linux box.

Another thing I want to investigate is chillispot on my dd-wrt firmware allowing access via IPv6 the new addressing scheme which is due to replace all current internet addresses. I have already IPv6-enabled my LAN, but the addresses aren’t forwarded onto “clients” on the hotspot yet, and won’t be until I can be sure that things will carry on working correctly with the captive portal login system.

The following is not an actual quote but my own musings on IPv6 which don’t fit the flow of this entry:

The reason we need to switch is due to the way the current system was designed with addresses being 32Bits in length meaning that there is approximately 4billion(?) addresses available which we are fast running out of. Some reports say that early 2011 will be crunch time when the number of available IPv4 addresses is completely exhausted. IPv6 on the other hand uses 128bits for it’s addresses which makes for enough addresses for every man, woman, child, dog, cat, horse to have a unique number and still only using a fraction of the vast amount available. – the actual number is nearly 34 followed by 37 zeros! or in engineer speak “3.4 multiplied by 10 to the power of 38” aka 3.4 * 1038, which is just huge! In fact, wiki says: “In another perspective, this is the same number of .. addresses per person as the number of atoms in a metric ton of carbon.”, but that’s wiki, so it could be wrong.

Edit: The new antennas are now installed and appear to be operational.

Ubuntu 10.04 on XenServer 5.6

These instructions are taken from here and updated and formatted a bit by me. They assume that you are installing the server version of Ubuntu 10.04 and the release version of Citrix XenServer 5.6.

  1. First create a VM in XenCenter.
    • Use the other install media template.
  2. Install ubuntu to your liking and reboot into the new system
  3. Tell getty to display on hvc0 (This does do the trick of getting a display on the console, but I am still unable to login or get any key-presses to work at all. I have to login via ssh to manage the system.)
    1. Copy the existing tty1.conf
    2. Edit it to replace “tty1” with “hvc0”
      sudo nano -w /etc/init/hvc0
  4. Create a link in /boot to itself:
    sudo ln -s . /boot/boot
  5. Install openssh-server:
    sudo apt-get update
    sudo apt-get install openssh-server
  6. Shutdown the VM.
  7. On the XenServer Console:
    1. Retrieve the UUID for the VM. Assuming your VM is named “ubuntu10”:
      xe vm-list name-label=ubuntu10 params=uuid
    2. Retrieve the VBD UUID for the storage attached to the VM.
      xe vm-disk-list uuid=<UUID>
    3. Clear out the HVM boot policy.
    4. Set the PV bootloader to pygrub.
    5. Lastly, set the VBD for the VM to be bootable.
    6. The original instructions said to patch GrubConf.py in the system-wide python modules directory. This is not required as of XenServer 5.6.
  8. Start the VM and login. If your console fails to appear, try connecting to the VM using SSH. If you missed they step about getting getty to output to hvc0, the login prompt will never appear.
  9. Attach the xs-tools.iso to the VM and mount the image.
    sudo mount /dev/cdrom1 /mnt
  10. Install the XenServer tools. Make sure you use the proper file for your architecture (amd64 or i386). A quick “ls” will confirm the version of the utilities in your xs-tools.iso. File names may (will) differ.
    sudo dpkg -i /mnt/Linux/xe-guest-utilities_5.5.901-562_i386.deb
  11. Unmount the iso image and then detach it in XenCenter.
    sudo umount /mnt
  12. Reboot the VM

You are now up and running. Update the system. The original author reports issues like XenCenter not displaying the NIC IP and no performance data.





  2. type %TEMP% and click ok.




You may contact them at one of the two numbers:

02081542672 OR 02081444013



“What if they’re legit?”





    [Emphasis Mine.]


I’m currently working on getting OAuth and OpenID working on my blog so that I can use my URL as my identity to be used for logging into websites such as Facebook or Twitter.

Both of these sites along with numerous others allow you to use your login from another website to authenticate yourself with their services. This means that I can have all my social network profiles using one URL to verify my presence via. The idea being that I go to facebook, enter my blog’s URL, facebook redirects me to my blog to gather my username and password which then redirects me back to facebook with an encrypted authorisation code that has no relationship to the actual username and password other than it being generated after I’ve confirmed who I am by logging into my blog. Hmm, I think I made that sound more complicated than it needs to be.

Basically, once I’m logged into my blog, I just give my URL to facebook/twitter/etc and they let me into their system without asking for more usernames and passwords. The problem, however, is that for some reason it’s not working. Instead of authenticating me, it’s sending me to an error page, and I have no idea why. Reports on the interweb suggest that there’s a plugin incompatibility with the openid plugin that I’m using. I’ve tried disabling them all, however, and still get the error. Further reading on OAuth+OpenID and the WebHome movement is at http://www.webhome.org/.

Update (29 Jun 10): Alas, I couldn’t seem to get it running :-(