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.

Back to vanilla MythTV - Part 2: Fiddling

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

After installing MythDora, there were a few extra things I had to do that took a while to figure out.

Upgrade to mythtv-trunk from ATrpms

I figured I just enable the “bleeding” repository and then do yum install mythtv. This worked fine. But nothing was different. It seems that “mythtv” is a meta package that just says you have Myth installed without actually containing anything. So then I tried yum install mythtv-frontend mythtv-backend mythtv-setup mythweb mythplugins. This worked up until a point but then failed a transaction test. The actual failure was a mismatch between themes that different parts provided. I decided this was unimportant but couldn’t force yum to install. So I installed apt (yum install apt) and used that (apt-get install mythtv-frontend mythtv-backend mythtv-setup mythweb mythplugins and it all went fine.

Import old recordings

This was easier than I expected. Simply replace the database with your old one (make sure you stop mythbackend before you do). I had previously copied all my old recordings to my FreeNAS box and dumped the database (mysqldump -u _username_ -p mythconverg > mythconverg.sql). So I deleted the mythconverg database and imported the SQL file (mysql -u _username_ -p < mythconverg.sql. You could also just copy the mythconverg directory in the MySQL data directory directly. The next time you start mythbackend it will update the database schema (if necessary) and everything will work. Apparently if you had slave backends on your old system you might have problems but I didn’t so I’m not entirely sure what they are…

Automatically mount a remote file system

To get MythTV to save on my FreeNAS server I obviously needed to mount it at start up. This was simpler than I expected (although I did it using a terminal). Open the file /etc/fstab and add the line: _server_:_/share_ _mount_point_ cifs defaults 0 0. server is the IP address of the FreeNAS server, /share is the folder on the server mount_point is the name you want to access it with locally (this directory should already exist - you normally make a sub directory of /mnt. After adding this run the command mount -a to force the system to mount all the file systems (it does this automatically at start up). Then run MythTV Setup, select storage groups and add the mount point you chose as a directory.

Back to vanilla MythTV - Part 1: MythDora Rocks

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

Well I tried LinuxMCE but didn’t really get very far.

After deciding everything was too much of a hassle, I downloaded MythDora 4.0 and installed it. I have to say that unless you have a specific reason otherwise, MythDora is definitely the way to go for a MythTV installation. It was really easy and actually worked (something that seems not to have happened a lot when I’ve tried Linux). One of the big advantages of using MythDora is since it’s Fedora based you can update (usually) painlessly from ATrpms. It has MythTV packages based on regular SVN checkouts. Importantly for me it also has packages from from mythtv-trunk (the latest version). Although they’re marked as “bleeding” they are usually stable.

The reason I needed the latest version is for storage group support. Without storage groups MythTV is limited to storing recordings in a single directory, storage groups allows you to specify multiple storage groups, each containing several directories. MythTV then use some clever load balancing to spread things out across available drives. This is important for me since I was planning on keeping most of my recordings on my new FreeNAS server, at least in the long term. The recordings aren’t tied to a specific storage group by the way - you can move them around freely (so I record to the local hard drive and then move them to the FreeNAS server later).

Once it was installed I did have to do a bit of fiddling, and it’s the sort of fiddling other people may have to do, so I’ll explain in part 2.

LinuxMCE 0704

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

A new version of LinuxMCE is out. And from what I’ve read (I haven’t installed it yet) it looks like a big improvement.

The biggest factor is improved MythTV support (which to be honest I feel is the most important part of it). They also claim the DVD quick install only requires three keypresses (but that’s only for the install, no setup). There is thankfully a new video as well that is considerably less annoying than the previous one - complete with disclaimers about things that may only work on specific hardware.

On the subject of specific hardware, there is a company called Fiire offering some pretty affordable computers with LinuxMCE already installed. Personally I’d build the core myself but maybe buy their thin clients.. They also a do a cool remote with built in gyro (like a remote/gyro-mouse combo) but it’s a $150…