Although a bit late to the party, I've been using Boxee at home for watching movies and TV shows for almost a year now. Its indexing engine is pretty accurate, and the killer feature has to be the Boxee remote app for the iPhone.

I've tried using XBMC but found it suffers from the common open source problem of exposing all its knobs and dials to make everything infinitely tweakable for the end user (also known as: the KDE user experience). Although the free Boxee release is drifting towards an unmaintained state now Boxee are focusing on the Boxee Box, it's simple and stable enough to use that everyone in my family can get their heads around it in under a few minutes.

The one bug that's consistently annoyed me has been disappearing CIFS shares when a configured media source (a file server) exists on a different subnet to the Boxee itself. This only happened recently when we moved house and put our file server on a separate subnet that's not DHCP serviced.

I scratched my head for a little while on how to solve this. The obvious solution is to shorten the DHCP lease range and put the file server on the same subnet as the Boxee machine, but I'm cautious of what other CIFS bugs lurk beneath the surface, and it feels vastly more complicated than it should be.

The simplest solution I could find was to pass off handling CIFS shares to Linux and add a plain old directory as a media source:

# /etc/fstab: static file system information.
# <file system>         <mount point>   <type>  <options>           <dump>  <pass>
proc                    /proc           proc    nodev,noexec,nosuid 0       0
/dev/sda1               /               ext4    errors=remount-ro   0       1
/dev/sda5               none            swap    sw                  0       0
//jules/videos          /media/videos   cifs    guest               0       0

This bypasses Boxees dodgy CIFS code completely, and has the added benefit of abstracting away the source from Boxee, making it vastly easier to shuffle file shares and disks around without Boxee getting upset.