The Movie DB

Oliver Brown
— This upcoming video may not be available to view yet.

I found a new website through the MythTV mailing list a few days called The Movie DB. It’s essentially aiming to be an open version of IMDB.

Many projects (such as MythTV and XBMC) have depended IMDB for a long time to provide metadata. Unfortunately this has usually been against the rules and was often difficult any since it relies on rather fragile screen scraping.

So in steps the Movie DB. From what I can tell from reading around the forums and stuff (and apologies if any of this isn’t accurate) it was started by the guy who wrote Meligrove, a database of fan made movie posters to replace a similar effort called Movie XML. The content is a little limited right now (about 8000 movies apparently) but the database from Movie XML is soon to be imported adding another 150,000.

Of course the important point is that the Movie DB is an open database - all the entries are editable wiki style. It also has high level support for TV series (with seasons and episodes etc) as well and a not-quite-ready public API.

Introducing Elisa

Oliver Brown
— This upcoming video may not be available to view yet.

I’ve keeping my eye on a project called Elisa a lot recently. It’s basically another attempt to produce a cross platform* media centre solution. At the moment its features are fairly limited, it’s essentially just some nice media playing software. It does have plugins to handle Youtube and Flickr though with lots of other stuff planned.

The main reason I’m interested in it though is that it feels likes it’s constantly making progress (and they make the progress very visible). They have weekly releases and every one actually has some cool new feature. It’s also written in Python which I think lowers the bar a little for community contributions (as opposed to C++/Qt required for MythTV).

For it to replace MythTV for me the obvious missing feature is, well, TV. Reading the forum suggests it’s quite low on the priority list for the moment (since it obviously requires a lot of work and other features are less likely to be released in the meantime just because the developers are busy). But, as I said at the beginning, it’s worth keeping an eye on.

* Not so long ago it only worked on Linux, now it supports Windows. It technically supports MacOS with some messing around but they’re aiming for proper support soon.

Google Chrome

Oliver Brown
— This upcoming video may not be available to view yet.

Well this came way out of left field for me, but after reading their thoughts and plans on the matter makes a lot of sense: Google have released a browser, called Chrome. Main highlights: based on Webkit and using a spanking new Javascript engine called V8.

I’m using it right now to type this and everything seems in order. It feels faster than Firefox 3, the interface is nice and clean and I’m generally revelling in the nice newness of it all. Interestingly it seems to have a spellchecker built-in that doesn’t recognise the word “Google”…

Anyway, anything I might say about the browser this early will end up repeating most of their hype, and that is done much better by this comic strip they released.

PS. Currently the beta version is Windows only with Linux and Mac versions to follow..

Empyrean Age bringing Factional Warfare to EVE Online

Oliver Brown
— This upcoming video may not be available to view yet.

Factional Warfare will soon be upon us. I stopped playing EVE several months ago with the plan to return once Factional Warfare was in (which I figured would be a couple of months since it was suppsed to be part of Revelations. Well the next expansion, Empyrean Age will finally bring it to us. It’s not going to be quite as drastic as my hopes but they were pretty drastic :P

Basically you sign up for FW with one of the four factions - that is Caldari, Minmatar, Amarr or Gallente (they’ve said other factions will probably be added later). You then have kill rights on that factions enemies anywhere (0.0, lowsec, highsec - even Jita, which will be even sillier than it has been). The factions enemies will obviously have kill rights on you. At the moment it seems it’s just going to be Caldair vs. Gallente and Amarr vs. Minmatar.

Joining the fight gives you access to special missions that will involve attacking your new enemies. As one faction wins fights in a system it gains “points” there. Enough points and that factions takes the system. It seems that, at least initially, only lowsec systems will be up for grabs in this way.

Finally, to balance out the fact that Caldari have little lowsec, a new region has been added basically in the middle called Black Rise that is mainly Caldari lowsec.

Silverlight is pretty cool

Oliver Brown
— This upcoming video may not be available to view yet.

More than two months since my last post. Which means I suddenly have a lot to say. Beware, rambling may follow… Nearly five months ago I claimed to be making “rapid progress with language learning”. Well obviously not rapid enough to actually reveal anything. Well that might be at an end soon.

One of the problems of writing the app using things like LINQ means most people will have other things to install to use the app (.NET 3.5 specifically - and possibly .NET 3.0 for non Vista users) and even then it’s limited to Windows users as Mono support for Windows Presentation Foundation will be a long way off (if they do it all). Since Silverlight 2.0 is supposed to be really cool and now supports a big chunk of the widgets from standard WPF (and has has quickly developing Moonlight support), why not write the app in that? So that’s what I’ve been doing. And it was a lot easier than I thought.

The first piece of easiness I found was that I only had to make like three changes to my non-UI code to make it compile as a Silverlight DLL. Unfortunately I can’t persuade Visual Studio to compile it as a Silverlight DLL and a normal DLL in one go, so I’ve currently got the same code added as two different projects and I copy the code between them (not ideal). The only real work I had to do was reimplement my data provider. When I started, I cunningly made sure that all resources (lessons, media, user progress) were grabbed from a data class. I wrote a new class that fetches it from a RESTful server (more on that in another post). So hopefully, a nice Silverlight version of the app will be public soon.

About Silverlight

For those that don’t know, Silverlight is Microsoft’s answer to Flash. Apparently. I’m not sure if it’s that a good analogy really. Silverlight 1.0 basically gave you access to a nice environment to draw things in the browser and then manipulate it with Javascript. Or something. To be honest I didn’t really care about version 1.0 since writing complicated things in Javascript doesn’t sound like fun. Silverlight 2.0 (formerly Silverlight 1.1) on the other hand gives you that same environment but the ability to manipulate the things with compiled .NET assemblies written in any CLR language and comes with implementations of a lot of the widgets in the WPF.

Mythbuntu is even simpler

Oliver Brown
— This upcoming video may not be available to view yet.

One of the newest developments in MythTV land is the development of “multirec”. Multirec is the name of the SVN branch of Myth where code to handle the recording of multiple DVB streams from a single tuner (providing the streams are on the same multiplex). This means any DVB users (in the UK this essentially means Freeview users) have the possibility of recording many more channels at once. In fact if you had six tuners (three Nova-T 500s for instance) you’d be able to record the whole of Freeview (if you had enough hard drive throughput at least).

Unfortunately using this wonderful feature requires you to run the latest SVN version of MythTV. Since I didn’t fancy compiling Myth from source I looked for a simplrr way - the answer is Mythbuntu.

Mythbuntu is basically Ubuntu (7.10 - Gutsy) with MythTV installed. It’s basically the same idea as the other MythTV distributions. The big difference is that they also provide weekly packages built from trunk - i.e. if you’re willing to accept the small chance of instability you can have bleeding edge MythTV installed without having to leave your package manager (well within a week of bleeding edge at least).

PS - You can also add MythTV to an existing Ubuntu 7.10 installation by clicking the relevant link on the Mythbuntu page. This also comes with a nifty utility called Mythbuntu Control Center which lets you choose whether to install a frontend, backend or both as well as choose which desktop to use (Gnome, KDE or XFCE) and enable/disable various useful services (VNC, MySQL etc.) all in one place.

Google Docs rule - if you use them right

Oliver Brown
— This upcoming video may not be available to view yet.

I’ve been vaguely using Google Docs (specifically Spreadsheets) since it came out but never to do anything actually important. Most of the time I just had a list I need sorting, or if I was feeling sophisticated I’d use it to decide on what was best value for money (how much £/GB a range of hard drives were for instance). Recently I started using it to plan lessons for the language learning app. The ability to use it from work (or any other computer I might be on - including viewing it on my Nokia 770) was useful, but in the end I was only really writing a list with it.

Until now. I now have a nifty little C# app that generates modules directly from a Google Spreadsheet which is definitely a Good Thing. I’ve been thinking of writing an app for module editing for a while since writing them by hand is tiresome and error prone. Google Spreadsheets does half the work for me by providing the user interface for generating a table and then provides access as simple XML. Which brings me to the matter of actually accessing the data. Google provide a client library in C# for accessing quite a lot of their API. I tried using it but found it a little confusing. Luckily since I was just wanting to query data, I discovered that raw access was actually easier. You simply make a GET request to http://spreadsheets.google.com/feeds/worksheets/_key_/public/values (where key is provided to you when you “publish” a spreadsheet - access to unpublished spreadsheets requires authorization which is more complicated). This gives you an Atom feed of URLs to the individual worksheets which them contain Atom feeds of either rows or columns (your choice). The query power of LINQ (along with XElement, XAttribute etc.) make transforming the feeds into modules really easy. In fact the code that does the hard work (takes a spreadsheet key and generates the XML) is only 102 lines long, and that’s including unnecessary spacing to make the LINQ more readable (the main LINQ query is 35 lines).

Rapid progress with language learning

Oliver Brown
— This upcoming video may not be available to view yet.

Thought I’d offer a quick status update regarding the language learning app. After a short break I’m back at it. Appart from enough Finnish content to generate ten 15-minute lessons the biggest progress is outputting MP3 files. My original plan was just to output M3U playlists but it seems iTunes and therefore iPods don’t support M3U files (as far as I can tell iTunes can only create playlists of files in it’s library - who wants hundres of files in their library consisting of a few words each?).

The sample MP3s should be available “soon”…

EVE Online for Macs!

Oliver Brown
— This upcoming video may not be available to view yet.

As of Tuesday it seems EVE Online will be officially supported on Macs and Linux. The Linux version seems to be just improved (and official) support for running EVE with Cedega (a commercial WineX fork). At the moment only Ubuntu, openSUSE and Linspire are supported (and come with nice packages). The Mac version was developed using Cider (a modification of Cedega for Macs) and only supports Intel Macs.

The minimum hardware requirements are interesting. Processor and RAM are the same at 1.8GHz+ 1GB respectively. Mac users require a better graphics card than Linux users but the Linux version doesn’t support ATI graphics cards. I would guess 6 months to a year down the line when AMD have finished releasing open source versions of the ATI drivers then ATI support will exist for everything in Cedega.

Full info about the Linux and Mac clients The other features in this release (Revelations 2.3) - incredibly minor

LINQ is magical

Oliver Brown
— This upcoming video may not be available to view yet.

The secretly named language learning app has been revamped to use LINQ for most of the XML handling. For those that don’t know, LINQ is a new technology that provides querying functionality in the .NET world. In my case I’m using LINQ to XML and it has seriously cut down on the size of the heaviest methods. Also, the part of LINQ to XML that I found least interesting when I read about it is actually the part I’ve found the best - the new XDocument API. Anyway, LINQ combined with a new USB headset that provides some actually quite good audio means that the important fundamental features have been implemented and work. At the moment it can:

  • Generate lessons based on vocabulary1 modules
  • Generate lessons containing past content with the correct repetition timing.
  • Actually play the lessons (but only on Windows2)

There are a few more things I want to add before I release any of it (like more audio for a start). But I thought I’d at least point out development is still happening :o) 1Instead of the Conversation > Phrase > Term style of Pimsleur I’ve decided to go for a more freeform approach to start with (inspired by me listening to Michel Thomas again). A vocabulary module just contains list of words and phrases that are processed in order. 2I still need a cross platform way to play audio. At the moment I use MCI which is part of winmm.dll which is obviously Windows only. Although Wine has apparently implemented it almost completely but I’m not sure how I’d go about making that help me.