Monday, 22 October 2007

Mediacenter internals

I've been playing with the DLLs which ship with Mediacenter (MCE) over the past week to try and find a way to get MCE to remove a timer from its recording schedule programmatically. Irritatingly (in MCE 2005) the API Microsoft have provided does not allow the removal of a timer. To get around this I've been probing some of the DLLs which make up MCE and eventually I found a hidden API which does allow me to manipulate the schedule list.

One issue with this however, has been updating the list of timers once a timer has been removed. The list is kept in an XML file, but MCE only writes that file out when it feels it needs to. I'm using an undocumented API of course, so MCE doesn't know that I've changed anything and the file does not get written.

Fortunately after some further experimentation, I have found a way to make MCE write the file on demand (by setting a key property to itself). This updates the XML on demand, and I can read it immediately with the updated information inside. I'm pleased I've found a way to do this, because it was one feature of the Nebula interface which I couldn't get to work in MCE.

In poking around at this level I have also found out how to read the MCE EPG data direct from its database, which is useful if XMLTV is not available, or if you prefer the level of detail you get in MCE's EPG. I've modified the guide application to abstract away the implementation of how the guide is populated - and created a new "plug-in" interface which fills the guide with data. As a result, you can now choose which plug-in you want to use - either MCE or XMLTV - just by modifying the configuration file. I think this is of limited use at present as the XMLTV data works fine for me, but if I ever decide to sell this application, it makes sense to support something other than XMLTV.

Finally I've added an RSS feed from the web site which will allow you to subscribe with your favourite reader and see which recordings have been set automatically each day. If you click on a feed entry, you are sent to the description page on the website for that programme. A friend requested this feature, and I'm happy to oblige.. ;-)

Wednesday, 10 October 2007

TV Guide on the Mac

I suppose it was only a matter of time until I managed to get some Mac screenshots of the guide to complete the picture! Here are some with the guide running in Safari:

My virtual machine was running OS X 10.3 which presented a bit of a Java version problem, but once I'd targetted my build at Java 1.4.12, everything was fine. I see that Apple have updated to at least Java 1.5 on the latest OS X, so that would not be a problem on a real machine.

Here it's possible to see the search screen. Bear in mind all of these pages are designed to be seen from an armchair rather than your computer screen..


The Mac, as usual, does a lovely job of rendering the Java applet and web pages. I feel like I've been writing native Mac applications all my life ;-)

From my testing, I can see that the design will probably need a little modification to suit every platform, and given that there is less information displayed in the web TV guide than the Windows version (by default, to reduce load times) I think the channels could be a bit thinner and the vertical programme height a bit shorter. These are easily solvable however, and then it should be working just how I want it!

Tuesday, 9 October 2007

TV Guide under Ubuntu

Well I finally got around to testing the new web-based guide under Linux, on my favourite Linux flavour, Ubuntu. Here are a couple of screenshots showing how it looks:

The first shows the main page, with the new Java applet running exactly as expected. The trimmings around the applet are standard ASP.NET generated HTML.

And then the Now and Next page, which of course does not use Java, just ASP.NET to serve up the dynamic content.
I'm pleased with the results, and to be honest in comparison with converting the .NET application to run under Mono, or trying to draw the guide using HTML/JavaScript, the Java solution has been remarkably straightforward.

I really hope that Silverlight can provide the same kind of ease of use cross-platform, and if it can, it's surely a winner for Microsoft. Until that day comes though, Java rules!

Monday, 8 October 2007

First look - web interface

Here's a first look at the web (cross platform) interface for the TV guide, running as a Java applet in Firefox on Windows. I hope you agree it's pretty close to the native Windows version!


The programme descriptions are deliberately cut short by default to save network data bandwidth, but if you double-click on a programme, the full data is then loaded and cached.

All I need now is a Mac user to test this ;-) Remember you still need a windows PC to serve the website at the moment.

I'll be giving it a go under Linux later to check that it works on that platform, but I'm pretty confident that it'll be fine, seeing as Java support is widespread.

Saturday, 6 October 2007

New look once again

Perhaps I have a low attention threshold, but I've changed the UI appearance of the guide once again.

I thought that it needed to be modernised a bit, and to be a little less bold in its choice of colours. This has been carried through to the web interface too, so there's a themed look to all the applications now.


Hopefully you'll agree with me that it looks a little more professional now, and hopefully I won't have to change it again for a little while ;-)

Wednesday, 3 October 2007

Web enablement and Cross platform development

A good friend of mine suggested to me that I should web-enable my TV guide application, so that it would operate cross-platform.

Seeing as I'm still considering a low cost Linux based PC as a mediacentre, this definitely sparked my interest.

In this blog, I've previously covered my exploits with trying to get the guide to run natively under Mono which would immediately enable it to be run on Linux and the Mac. Although that has potential, my initial work with it has not produced a reliable enough version of my guide which will run on Linux (yet).

Keeping it running on a Windows machine and having it served up to a browser however does initially sound like a great idea. Why bother worrying about getting it to run natively on a non-Windows machine?

The issue with this is that providing the same level of graphical appearance and interaction is not straightforward using HTML and JavaScript. Google have got it down, with their Calendar, Mail, Word Processor and Spreadsheet applications, but they have a few more developers available to them than I do ;-)

Generally, my experience of JavaScript and the associated web development has been painful - browser wars aside - I feel JavaScript is a poor competitor to languages such as Java and C#. I'm not saying it can't be done in JavaScript with enough effort, but in comparison with how quickly I can put together an application in other languages, I find JavaScript too big a hill to climb.

That's not to say that a lot of what the TV Guide provides cannot be web-enabled. Setting up recording rules and searching for programmes etc can easily fit into a less graphical interface. I'm an experienced ASP.NET developer, and there's no issue with me writing that functionality on top of my existing core guide functionality.

The key area however which requires the interaction is the main guide display..

Alternatives to JavaScript

Seeing as I am a software developer by profession, and have invested much time in the Microsoft camp, the recent announcement of Silverlight has me very interested. Silverlight is Microsoft's answer to Flash, which some are reporting has the potential to be a flash killer. That remains to be seen however (it's very early days), and Adobe are bound to have something to say about it.

In its present incarnation (1.0), Silverlight provides mainly flash-like capabilities such as animation and video playback. Programmatically, Silverlight currently uses JavaScript which is not ideal for me for the reasons above. In Silverlight's next incarnation (1.1) however it will bring .NET language support (VB and C#). That will be a real change of direction for Microsoft, as they have already produced the Silverlight plugin for the Mac and are working with Novell and the Mono project for the Linux version. Scott Guthrie (the General Manager of the .NET development teams at Microsoft) recently confirmed this partnership.

I'm hoping that Silverlight 1.1 will allow me to produce cross-platform, flash-like quality graphics and interaction using C# which will require minimal changes to my existing C# code base. 1.1 is due out early 2008, but I will probably play around with the beta before then, which is out now.

In the meantime, I'm left with just one cross-platform contender - Java.

Java and .NET interaction

I have always tried to keep the span of technology for my guide to the minimum. It's harder to maintain multiple code streams in multiple language technologies, so what has changed my mind? Simply that I can produce a Java applet that displays the graphical portion of my TV guide in only a few days. Behind the scenes, the data is still provided by my .NET server code base, and made available to the applet via a .NET XML web service. I've already written much of that connectivity code in a past project, so grabbing it for this makes that part of the project much quicker.

The remainder of the Java code is regarding the drawing of the guide, the display of programme details on double-click, and the ability to set recordings. Beyond that, as I see it, the rest can be implemented using traditional ASP.NET web pages rather than in Java - keeping my cross-language code to a minimum. Hopefully to the web user this will be transparent, as the applet will itself just be embedded in one of the web pages.

I've started this Java project as an exercise, and already have the guide displaying with my required interactivity inside a web page. I have yet to try it on other platforms, but as long as Java can be installed on the Mac or Linux, it should work without issue. The benefit of that cross-platform ability vs the cost of maintaining two sets of code in my mind is not an issue as the majority of the code is still behind the server, and not in the applet.

I'll post more about this project as I finish parts of it.

Tuesday, 18 September 2007

WebGuide is now free!

It seems that Microsoft have bought WebGuide, and decided in the process to make it freely available (see this news article).

WebGuide is a web based UI for your Windows Mediacenter PC, which also allows you to stream TV to any browser.

I've given the original WebGuide a test run, and although it certainly allowed me to stream recorded TV, I was unable to get it to stream live TV even though the documentation implies this is possible.

I wonder whether, now that MS have taken it over, there's a chance that live TV will work too?

Friday, 13 July 2007

Shuttle X200 Mini-HTPC

I've been looking around for a PC equivalent of the Mac mini, just to see if anyone is trying to take advantage of the concept that Apple introduced with that machine. There are some options available, and one of the first that caught my eye was the Shuttle X200.

On paper this looks like a decent attempt by Shuttle, albeit at a premium cost. Reading a few reviews however, it seems that there's a lot to be desired.

This review is particularly good in evaulating this model, so if you're interested, take a look.

Sunday, 8 July 2007

Mediacenter plugin

A few posts ago I was singing the praises of DVB Web Scheduler. Although on the face of it this was a great application for recording TV via any BDA tuner, in practice there were some problems using it.

The main issue was that it seemed to get into an invalid state with the tuner and would either stutter inside the recording, or not be able to open the tuner at all. Having given it the benefit of the doubt for a few weeks, I've decided to move away from it because of its unreliability. It's quite possible that it might work better with specific BDA cards, but it certainly doesn't manage my card very well.

To get around the problem, I've written the much promised, never written plugin for Mediacentre (MCE) 2005 for my TV guide. This now allows the TV guide to talk to MCE just like it used to talk to the Web Scheduler app and to Nebula DigiTV. The benefit is that my Pinnacle tuner was designed for MCE, and at least from early tests, works with it much more reliably than with Web Scheduler.

Of course, I have therefore inherited the issue with the DVR-MS recording format, but fortunately this has already been solved for me by this toolbox. Adding the command line conversion into my automatic XVid conversion application was no problem at all, so now it all works as intended.

Thanks to the work I completed a few weeks ago, adding devices and plugins to the TV guide is now not much work at all - as long as there is some way programmatically to read existing timers, add a timer and remove a timer. Usually there's a way to do that somehow, even if it requires scraping and spoofing the web interface of the device's controlling application.

Time will tell if MCE can handle the card better than Web Scheduler did, but from the tests I can throw at it at the moment, it seems a lot more stable.

I've also just discovered WebGuide for Mediacenter, which might provide me with the LAN Live-TV streaming I've been after. I've installed the trial and will give it a go over the next few weeks. It's certainly polished, but how well it works remains be seen.

By the way, I've reworked the appearance of the TV guide application in this process, so that it has a much more contemporary look. What do you think ;-)


Next on the development list is to continue with that Mono port. I'll get there eventually!

Wednesday, 4 July 2007

HT Guys

One of the podcasts I listen to the most is the HT guys' HD and Home Theatre Podcast. It's a fun listen, and especially at the moment because recently they've covered both a Mac mini based home network and now a Myth TV version. The detail level is not as high as I'd like, but there's more information on their website. It's definitely worth a listen if you have the time..

Monday, 25 June 2007

TV Guide upgrade

Prompted by my purchase of the Pinnacle Dual tuner, over the last week or so I've been rewriting my TV guide application to work with an arbitrary number of tuners. I've added a plugin type architecture, which allows me to add tuner "adaptors" as and when required. For example, I now have a Nebula DigiTV adaptor, a Pinnacle adaptor and a testing adaptor. Which ones are in use is controlled by a configuration file, and the TV guide just expands its processing to accommodate as many as are available.

One of the things this would allow me to do would be to create an adaptor for Windows Mediacenter for example. That way, any one who had MCE working would then be able to use my TV guide to control it. Of course, with my purchase of DVB Web scheduler (detailed in my last post) I'm not currently needing that facility, but it's good that I can now add it painlessly to the guide should I need to.

Another feature I've added is that the order of the tuners is respected. I.e. although the main aim now is to use the two Pinnacle tuners for recording and the DigiTV tuner for watching, all three are available for recording if necessary. The TV guide will however only use the DigiTV tuner if both the other tuners are already recording something else. Given that both types of tuner can record multiple programmes from a single multiplex, this actually means that I need to be recording three separate multiplexes for all three tuners to be required. Generally, that just doesn't happen, but it's nice that it will handle it if necessary.

Transport Streams

One thing I've had to deal with since I moved the majority of recording to the Pinnacle is that it records as a .TS transport stream file. Back in the days, DigiTV used to do the same but fortunately it was changed to do TS-to-DVD MPG on the fly. With the Pinnacle I'm back with a transport stream.

TS files don't matter too much as both Media Player Classic (my preferred player) and VLC both play them back natively. I do however have an automatic conversion application which converts the native video to XVid as soon as the recording has finished. This, prior to this weekend, did not work with TS files.

When I originally had a problem with DigiTV, I used a program called ProjectX to convert the TS stream to an MPG. This worked very well and still seems to stand above the rest in the marketplace. It works from the command line too, which makes it easily integratable into my automatic conversion system.

I've now made some changes to the automatic conversion to detect a TS stream and insert a conversion step before the XVid work is done. This seems to be working fine, and gets me back to where I wanted - automatic conversion to XVid with no interaction. That's more like it!

Monday, 11 June 2007

New Tuner(s)

I bought a new Pinnacle PCTV Dual DVB-T USB tuner recently, to extend the capability of my media centre PC. I chose this device because it follows the now relatively standard BDA interface which will let it work with Windows Media Centre for example. Given it uses this interface, it should also not be too hard to get it to work under Linux if necessary.

Being compatible with lots of software, I felt confident that I would be able to adapt my TV guide application to set recordings on it and, albeit a lower priority, I hoped that the Nebula DigiTV software would also recognise it.

The latest version of the DigiTV software states that it will work with BDA compatible devices. Unfortunately it appears that it won't (at least with this tuner anyway), but I don't see that as too much of a problem because there's every likelihood that the next Nebula version will recognise it better.

In the meantime, I have a choice of methods to set recordings:
  • Windows Media Centre. I like the interface a lot, but it is a bit fiddly to get to where you want quickly which does not make it my player of choice. It has however proven to be a useful application for testing the new tuners. Another downside is its choice of recording being only MS-DVR format which is not directly playable by many applications. There is a recording API in .NET which I can call direct from my TV Guide which is handy, but because of the reasons above, I probably won't use it.
  • Pinnacle Media Centre. This is a pretty horrible looking application from Pinnacle and only stayed installed for the day whilst I was testing it. There's no comparison (IMHO) with either MCE or Nebula's software.
  • DVB Web Scheduler Pro. I discovered this recently and I like it because it does pretty much exactly what I want it to do. It's an application which sets up a small website on your computer which you can then use to schedule recordings. It works with any BDA compatible tuner, and records in a number of formats. It will support multiple tuners, and multiple simultaneous recordings from the same multiplex. It costs AUD 29.95 and seems to work fine. From my TV guide perspective, because it uses a web UI, it's easy for me to adapt it to work with my guide using just a new timer plugin.
The plan for now is to add a plugin to the TV guide so that it can talk to DVB Web Scheduler, and use the two new tuners primarily for recordings. It's unlikely that the third tuner (Nebula) will be required then for day-to-day Tivo like operation so the Nebula can be used for viewing live TV instead.

Once I have it set up like that, I'll extend the TV guide so that it can use the Nebula if it needs to, but will use the other tuners in preference. That should give me the best of all worlds.

One interesting point about DVD Web Scheduler is that an early version (which I was testing) allowed streaming of live TV over the network, something which I've not managed to do until now. I followed the instructions on the VideoHelp forum, and to my surprise it worked seamlessly! It also has the advantage of controlling the streaming via the web front end - meaning I could change channels remotely too!

Oddly however, that functionality has disappeared from the latest version. I'm not sure why yet, but already there appear to be workarounds.

I'll give it a go and report my findings..

Wednesday, 6 June 2007

Mono

Having had quite a lot of success with Linux and open source replacements for my most common applications, I'm left with one big problem. How do I get the TV guide application to work under Linux?

One idea would be to rewrite or extend it to present a web interface rather than a Windows one. That would easily make it cross-platform. The problem with that is with the level of interactivity that it provides, the web site would be quite a challenge to write. I know it's been done before, I've seen many other web based guides which do the job - the question is do I have the time to rewrite my app?

The other option would be to look at Mono on Linux. The mono project is a set of open source libraries which (in theory) allow you to run .NET applications natively on Linux. Now call me a sceptic, but that sounds too good to be true. I wouldn't have to rewrite the application at all..

Recently I actually got around to trying to run my application using Mono. Fortunately you can test mono under Windows first to speed up the process. What I found was amazing - it basically works!

I needed to make some trivial changes to my application, such as converting path separators from "\" to "/" and, given that the application is heavily graphical, remove the double-buffering I'd put on to smooth the scrolling in the Windows version. Other than that, I can quite happily run the guide under Mono. It reads the XML data and displays it in its full graphical glory(!)

Seeing as the graphical side is probably the most complicated part of the application, it's unlikely that there are going to be any other issues. Ok so maybe there will be a few, but I'm sure a little alteration will be able to fix that.

Best of all, one application code base and binary runs on both Windows and Linux. Mono will even run on MacOS should I ever go that route..

Sunday, 3 June 2007

Ubuntu vs Kubuntu

Having had so much success with the Kubuntu live CD, I thought it was time to try it on a real PC. My laptop was going to be the guinea pig as it had the least to loose if everything went horribly wrong.

The dual boot installation was a piece of cake, and is a credit to the K/ubuntu team. Once I had Kubuntu (7.04 feisty) installed, I wanted to try the TV streaming again in case it was just a virtual machine issue. Unfortunately it wasn't and still I couldn't get it to work. I'll need to keep working at that.

Instead, I installed Thunderbird 2.0 and tested my central mail/calendar locations under Linux. Sadly TB would not run under Kubuntu for me. It wouldn't on the laptop and it wouldn't on the virtual machine either.

To be honest I didn't spend much time trying to find a solution and a google search did not seem to lead to an immediate fix.

Moving on with Kubuntu, I kept having applications crash on me for little reason. I also didn't like the way that Konquerer (the file manager) kept taking over everything including web browsing. I wanted to make Kubuntu look as much like MacOS as possible, including transparency and centering of the icon bar. That's easy to do, but even then I couldn't get it quite how I wanted.

My overall feeling with using KDE is that it's probably great if you already like it, but for me as a Windows user, it was a bit much to get used to in one go.

The crashes continued and although I'm sure that they had something to do with my laptop's graphics card, they were such a pain I decided to move from Kubuntu to Ubuntu as the "perceived reliability" had been higher with that version of the OS.

Sure enough, I've not had any problems with Ubuntu since, and TB installs and runs without issue too. I bet there's a quick fix for Kubuntu, but I only have a certain amount of time to play with it. Thankfully the virtual machine will let me continue with that even if the laptop is now set up with Ubuntu.

Other applications

Generally though, with most applications the experience has been great. I gave OpenOffice a go, successfully opening my Word documents and saving a new document in Office format. For the kind of word processing and spreadsheet work I do at home, OpenOffice is going to be absolutely fine.

With regards TB2 (with my profile stored on the network remember) the mail worked perfectly and only the calendar presented a problem. For some reason Lightning under K/Ubuntu won't let me create a calendar or subscribe to one. This is a bit strange because Sunbird on the same installation works just fine. I'm assuming it must be related to TB 2.0 not being fully available for Ubuntu yet - it does not appear in the official package list at the moment. I'm not too concerned about this because I'm sure it will be fixed and in the meantime I just use Sunbird instead.

I attached to my network shares using Samba, including connecting to my shared printer. No problems there at all.

Playing back Xvid avi's, and recorded MPEG2 PS files from the network was not a problem at all using Totem movie player, and neither were local DVDs.

My music was read and played with the default Rhythmbox player without any issues either. It's nice to have an application there which just does what you tell it and does not have all the extra "flash" of Windows media player. In the end, I want to create a playlist and play it. Searching is easy and not cluttered. Just about perfect.

In conclusion, Ubuntu seems to be a great step forward and at present would be my choice for a new, low cost HTPC.

Friday, 1 June 2007

Linux weekend

One of the biggest issues with moving my HTPC to Linux is my TV card. Although the machine is used for lots of different things, without the TV recording and guide functionality, there's really no need for it.

I did quite a bit of research at the DigiTV forum which was very helpful. In particular there is a great how-to which explains what you need to do under Kubuntu to get it to view TV on the Nebula DigiTV card which I own.

Not wanting to pull my existing PC apart just to test this, I booted into the Kubuntu Live CD and installed the necessary drivers to the ram drive. Sure enough, without any problems at all, the Kaffeine player scanned for channels and found them just like on Windows. I even managed to record some TV direct from the live CD onto my network, just to prove I could watch it elsewhere.

Aside from the fact that I can boot Kubuntu, install drivers, tune channels and watch TV directly off a live CD without affecting my existing system, I was very impressed that it worked so painlessly. Thumbs up Linux, thumbs up Kubuntu.

Streaming TV

In reading around this area, I noticed that Kaffeine could stream TV on the network. This interested me because it would allow the tuners in one PC (near the aerial input) provide tv to other boxes around the house. Think shared music or video playback, but with live TV.

This is not just serving up the TV either, it's also providing the client application with the ability to change channels too.

I used my virtual machine installation of Kubuntu as a client and left the main DigiTV PC running Kubuntu off the live CD.

Turning on the streaming feature in Kaffeine forced me to pick a "broadcast address". By default this was 192.168.0.255. Apparently this is the broadcast address for the 192.168.0 subnet, but I would have thought a multicast address would have been better (230.x.x.x for example).

On the client, with the server broadcasting on 192.168.0.255, I could succesfully read which channels were available, but double-clicking on one brought garbled pictures in the screen area. Despite playing for a while, I couldn't get this to work properly which was a shame.

I noticed that whilst it was broadcasting, it took out my other network connections, preventing me for example from accessing the web. I changed the broadcast address to a legitimate multicast address (230.1.1.1) and that brought back my internet. Unfortunately, now the client couldn't even display a list of channels, implying it couldn't pick up the server's transmission.

Just to prove that the principle was not impossible, I set up VLC on the server and client and asked it to stream a recorded video on the 230.1.1.1 address. I was able to have multiple clients watching the stream simultaneously without any problems. Of course, I don't really need recorded video to be streamed, it's the live stuff I'm interested in. VLC can take live TV but then you can't change channel.

Close, but no cigar. At least it is definitely possible to watch and record TV under Linux from my DigiTV card. That's a start.

Monday, 28 May 2007

Open source migration

To get me on the way towards Linux, I've decided to start using more open source software and see if I can head away from my dependency on Microsoft.

Nearly a year ago I switched to Firefox for my browsing. Finally there was an alternative to IE which would still work with most websites. I've never looked back from that decision and IE7 has held no appeal for me.

I've mentioned in a previous post that I run my mobile TV website under Apache. The flexibility Apache gives me over IIS is not insignificant. It's also very important that I can run ASP.NET under that too, because with all the will in the world, I'm not going to switch to PHP etc when I use .NET all the time at work. I have time for technology, but not that much time ;-)


The next step was to move away from Outlook. This is hard, because it works, and it works well for me. I can also easily synchronise my mobile with it via bluetooth.

I recently heard that Thunderbird 2.0 was out, and having not been that impressed with V1.5, I wasn't that sure about it. Fortunately it's moved on a lot and now definitely could replace Outlook Express with no question. It being cross platform also bodes well for the Linux move later.

Mozilla also have Sunbird which is a calendar program. I don't need anything too flashy for my scheduling, but it needs to do the basics and allow me to synchronise my phone. The Lightning addon for Thunderbird also allows me to get an "outlook feel" by integrating the two into one application.

A website (which is currently free) called Schedule World provides the crucial link between Thunderbird/Lightning and my mobile. This site works much like Google calendar, providing a web UI on your schedule, but also has a SyncML interface which is required by my phone to synchronise itself with it. Tie that together with an addon for Thunderbird to sync it with ScheduleWorld, and I have all my requirements met.

I've been using this combination for a few weeks and it seems to work for me. Lightning is a bit shaky in comparison with Sunbird, but it works ok. I've set up a WebDAV site under Apache to allow me to store the calendar centrally on my network, but be accessed from any machine. Once again, Apache has come to the rescue here!

Similarly, my mail accounts and profile under Thunderbird also sit on the network for the same purpose. With them stored on a network share, the start up time is slowed a little, but being able to access them from any machine on the network is an important feature for me.

I did have some problems with timezones when getting Lightning/ScheduleWorld and my mobile working, but eventually I managed to turn off all that functionality and get it to work. The reality is, I don't have entries coming into my calendar from multiple timezones so 10am is 10am is 10am wherever I am.

Friday, 25 May 2007

Ubuntu

Everyone is raving about Ubuntu. For the first time in a long time (IMHO) Linux has a variant which might actually replace Windows for the average user.

With my new HTPC in mind, I set off to set up both Ubuntu and Kubutu (the KDE desktop equivalent) on a virtual machine to test whether all the common applications I need to use on my HTPC are available or replaceable under Linux.

In case you've not used them, VirtualPC (free, from Microsoft) or better still VMWare Workstation (commercial, from VMWare) allow you to install another operating system and have them run inside your existing OS. I use them a lot at work for software testing purposes, but they work great for this Linux test as well. VMWare supports Linux better than VirtualPC, but I have got both of them working fine.

Ubuntu install was painless, and immediately I was surprised how much Linux has come on since I last looked at it a number of years ago. Certainly, the Ubuntu team have worked on making the OS more friendly and with a nice add/remove programs screen to handle the delight(!) of package dependencies, it's really not difficult to get results on Linux now.

I'm mainly looking at Linux because it's free and therefore can help me reduce my costs in building the HTPC. Also, it's a better operating system than Windows at its heart and has great community support. It's also hard not to pick up on other people's success stories with Linux as an HTPC, such as the Win XP MCE "competitor" MythTV. There's even a Linux distribution available (KnoppMyth) which installs from scratch ready configured to run Myth.

That said, KnoppMyth is a bit too far for me because I want a normal desktop as well as a nice big screen experience, much like I get from WinXP MCE at the moment.

Whether you go for Ubuntu or Kubuntu seems to be a personal preference. I like the look of Kubuntu because you can set it up to look pretty close to MacOS (which you have to admit is nice). It also feels a bit more integrated than Ubuntu in my opinion. Having said that, I did encounter a problem or two with some Kubuntu applications and didn't with the equivalents in Ubuntu, so for the moment due to the lack of issues I've had with it, Ubuntu is my choice linux flavour.

Sunday, 20 May 2007

Why not Mac?

You might wonder why I don't just go and buy a Mac mini? They look fantastic, they work well, the 1.66 Core Duo is not even that expensive...

Well let's just say that I've not ruled it out. I guess my tendencies have been towards PCs for a long time, and I'm not quite ready to move over just yet. I also have an inner geek which means I'm disinclined to head for the easy option, but that could change if I hit any walls via the PC route.

Generally, I also have issues with "mac fanboy smugness", which usually turns me off so much I head in the other direction. Maybe that's my loss in the end, but that's where my reluctance comes from.

So I'll be heading in the PC direction to start with to see where that leads me and only if I'm not happy with the results will I look at a mac mini instead.

Wednesday, 16 May 2007

ITX vs ATX

I've been looking at ITX as a form factor to base a quiet pc on. These are generally used for embedded systems as far as I can tell. A site which sells them is http://www.itxwarehouse.co.uk/. The ITX form factor is pretty tiny, so much so you can comfortably use it in the car.

The downside from what I can gather however is that the processors are relatively low powered. That wouldn't be an issue except that I do want my new quiet pc to be able to decode HD video. A minimum of 720p but ideally up to the full 1080p.

I've found it hard to find out what the minimum spec of CPU required to playback 1080 is, and only by running my own tests have I decided it needs to be a Core Duo or Core 2 Duo to manage it comfortably.

The other issue with ITX is the expandability. You usually get a number of USB2 ports, so that's good but forget about a graphics card for example.

That probably puts an end to the ITX idea, even though it sounds great..

Tuesday, 15 May 2007

New (quiet) PC

Part of the grand plan for the media network at home is to add more boxes in other rooms.

I've kept up to date with the new media player boxes like the Netgear MP101 and Philips Streamium, but they're either too expensive for me to justify, or more often than not, just too limited in their functionality.

I'd really like to be able to surf the web, or read my email. Limiting the box to media playback just isn't good enough for what I have planned.

One of the key points however, is to keep costs and fan noise to a minimum. If I have multiple boxes, they're going to have to be quiet and I don't want to be paying through the nose for them. The trouble is, "quiet" and "cheap" do not normally go hand in hand.

One of the options I've been looking at is a lower end processor and Linux as the operating system, moving slowly away from the relatively expensive Windows or MacOS. It's a long time since I've delved into Linux however, so that will be an interesting task in itself..

Thursday, 10 May 2007

Mobile access

Once again the TV guide has bowed to feature creep.. New this time is control of the scheduling via a mobile phone!

Just imagine, you're down the pub and you suddenly remember that you've forgotten to set the timer for that new programme you heard about last week. No problem, just connect to the website sat on your home PC and set the timer from your mobile. Nice!

The website is written in C# ASP.NET mobile, and based on the existing code from the main guide, only took a few hours to write. It's designed to be as plain as possible because I get charged by the Mb to surf the web on my mobile at the moment, so minimalistic = less bytes = cheaper!

In setting this up, I discovered something pretty amazing. Not only is Apache now available and reliable enough on Windows, there's a mod for it which lets it serve up ASP.NET. That's great, because IIS on WinXP Mediacentre will only host one website at a time. Add to that the ability for me to control who gets to log onto my home PC via Apache and there's no contention with IIS in my opinion.

Tuesday, 1 May 2007

An introduction

Ok so what's this new blog all about? Well I've had a PC in my living room for the last two years, and combined with the LCD TV via DVI, we can watch TV on it and also surf/email etc.

We've got so used to it, I doubt we could now do without.

One thing which I've worked on since I got the PC is a TV guide to help with the scheduling of recordings. What started off as a way to see what was on, has expanded into a Tivo like application. Now, we define recordings by a set of rules and the recording is done automatically. Repeats are ignored and we can search for programmes by genre, name, actor etc. We can even get the DVD cover on screen for a film..

And what's the best thing about it? It does exactly what we want and nothing else!

Here's a picture for reference, you can click on it for a full sized version:


The data comes from XMLTV and the guide is written in C#. I like the vertical appearance rather than the (more common) horizontal type I guess because I find it easier to read.

All this is well and good, but my plans don't stop there. This works so well in one room in the house, I want it available everywhere!

This blog will detail my trials and tribulations of trying to get there. Once we're through, you might need to wash several times to get all that geek out of your hair ;-)