18 February 2008

Large capacity PMP roundup

After my considerable disappointment at no news of a 160GB iPod Touch from Apple at this year's Macworld I decided to have a look at what the competition is doing in the way of large capacity portable media players.

My criteria

  • 40GB or greater disk
  • 3" or larger screen (preferably 16:9)

The contenders

Model Capacity (GB) Screen (Inches) Formats Battery A/V (Hours) Price
Archos
504 40, 80, 160 4.3" Video: MPEG-4
Audio: MP3, WMA, WAV
17/5.5 £172.21, £258.99, £394.95
704 WiFi 40, 80 7" Video: MPEG-4, WMV
Audio: MP3, WMA, WAV
25/5.5 £269.99, £368.23
605 WiFi 80, 160 4.3" Video: MPEG-4, WMV
Audio: MP3, WMA, WAV
17/5.5 £214.99, £254.64
705 WiFi 80, 160 7" Video: MPEG-4, WMV
Audio: MP3, WMA, WAV
25/5.5 £269.99, £368.23
Cowon
A3 60 4 Video: DivX, XviD, MPEG 1/2/4, WMV, H.264
Audio: MP3, WMA, FLAC, OGG, AAC, AC3, BSAC, True Audio, WavPack, G.726, CM
25/5.5 £315.95
Q5 60 5 Video: DivX, XviD, MPEG4, WMV
Audio: MP3, WMA, ASF, OGG, WAV, FLAC, APE, MPC
13/7 £409.95
iRiver
PMC-140 40 3.5 Video: WMV
Audio: MP3, WMA
12/5
PMP-140 40 3.5 Video: AVI, XviD, MPEG-4, MPEG-1
Audio: MP3, WMA, WAV, ASF
10/5

Archos have the most players meeting the criteria with large disk versions up to 160GB however they are let down by poor codec support although you can add support for more by downloading them from their website (at extra cost).

The two Cowon players offer an impressive list of codecs out-of-the-box but they only come in a maximum 60 gigabyte version and are a lot more expensive than in particular the Archos players.

The iRiver players have small disks, small screens and poor codec support but I couldn't find anywhere stocking them anyway so it looks like I couldn't buy one even if I were interested.

Conclusion

The Archos players definitely seem to be the best deal if you're not bothered about having support for a large number of codecs. One big criticism of them however is that, looking at the overview of for example the 605 WiFi on the Archos site, it seems like you're getting loads of features for your money. Reading the small print, however, will tell you that to use some of them you need to buy optional add-ons and they're not cheap. The DVR dock for recording TV is an extra £60, the web browser is £20, the Video podcast plug-in (read iPod compatibility pack featuring H.264 and AAC codecs) is £15! I'm surprised they are allowed to sell the product based on features it doesn't have out of the box and it certainly puts a sting in the tail of the good deal.

16 February 2008

NHibernate in Visual Web Developer Express

If you fancy using NHibernate in VWD you'll have trouble because you can't compile your mapping files into the same assembly as your classes. As a result you can't add mappings to your session factory by assembly name or class name.

Thankfully there is a simple solution to this, which I'll demonstrate with the aid of the quickstart example in the NHibernate documentation.

Start by creating all your persistance class files in your App_Code folder with your mapping files (.hbm.xml) alongside. Next, make the alterations to your web.config as outlined in section 1.1 of the quickstart but leave out this line:

<mapping assembly="QuickStart" />

In your mapping files, change the assembly attribute of the root hibernate-mapping element to "App_Code" and remove the namespace attribute if you're not using a namespace (the default behaviour of VWD) e.g:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="App_Code">

Finally, copy the code for the NHibernateHelper class from section 1.4 and change its constructor from this:

static NHibernateHelper()
{
   sessionFactory = new Configuration().Configure().BuildSessionFactory();
}

to this:

static NHibernateHelper()
{
   Configuration cfg = new Configuration().Configure();
   cfg.AddDirectory(new System.IO.DirectoryInfo(HttpContext.Current.Server.MapPath(@"~/App_Code/")));
   sessionFactory = cfg.BuildSessionFactory();
}

The original constructor used the mapping element in the web.config to find out which mappings to load, here we're telling it to load all the mapping files it finds in the App_Code folder. You can also use the AddFile method to add individual mapping files.

09 February 2008

Merge with "How to Code"

Initially I thought it was a good idea to write separate blogs because people interested in gadgets and codecs aren't necessarily interested in code and databases.

I've since realised three things; that the target audiences were pretty much the same, that dividing my traffic was a bad idea and that I don't really have enough to say or the time to fill two blogs.

So, having just finished copying all the posts over from Derek's How to Code, I'll be deleting it and maintaining just the one from now on.

What a shame I never got to use this snazzy bit of artwork...