2 Mac laptops running OSX (personal computers) connected via Wifi
1 Linux Intel desktop (also personal, but I like working on a desktop if I'm working from home for the day) connected via Wifi
1 Linux PPC headless server (old G4 under the TV that does a lot of media functions) connected via Ethernet
1 NAS (used to back up all the above) connected via Ethernet
1 G2 (Android, Nate's phone)
1 iPhone 4 (Clau's phone)
1 iPad (for Nate's work, maybe more on that in another post)
1 iPod classic (120GB), which we generally keep in the car
1 iPod touch (8GB), which Clau got from Kraft and would like to use as the "music device" for the kitchen.
1 Altec Lansing sound dock, with an iPod connector. Unfortunately Clau's iPhone can't plug into it because she has a pink case that's ~2mm thick, and the connector just can't get through. The sound dock is very handy for playing music from an iPod / iPhone because it has a water-resistant remote control, and is therefore great for the kitchen while cooking - you don't need to wash your hands just to skip forward or whatever.
Notice that there are no desktops (i.e. permanently powered on) running a mainstream OS and that the one server with a KVM is connected via Wifi.
So, for her birthday, Clau wanted to be able to play music on her computer and her iPhone. A reasonable request to be sure. I've got all my music on the NAS share (which is sharing everything via DLNA) and my own Linux box (which can share the music in pretty much any way I want), so there must be some products that can work with that music available for iOs, right?
Wrong. At least nothing that I was able to find after a lot of poking around.
Part of the problem is that Apple users seem to be totally fine with paying for everything. OK, so everything's cheap - maybe $5, but there don't seem to be trial versions of many things, and I'm sorry but I'm not going to pay $5 just to see if maybe I want to use a DLNA client. The free ones I found were, frankly, not very nice or intuitive. Definitely not what my Apple-happy wife wants.
Another problem is that Apple seems to have kept the masses happy with iTunes. I still for the life of me don't understand why there isn't some massive Apple revolution against iTunes - it's a total piece of crap that needs to go away but just seems to get more and more ubiquitous. It seems that every Apple app _except_ for iTunes is slick, intuitive, and easy to use - I still don't get it.
So, back to my requirement to share my music out - I guess I'll have to find something that works with iTunes (which isn't available for Linux btw). A quick check found that iTunes has a feature called home sharing, which should at least take care of Claudia's computer and iOs devices. My initial solution plan was to create a Windows VM on my desktop that would run iTunes with home sharing, and just have it running all the time. There ended up being a few problems with this:
Notice that there are no desktops (i.e. permanently powered on) running a mainstream OS and that the one server with a KVM is connected via Wifi.
So, for her birthday, Clau wanted to be able to play music on her computer and her iPhone. A reasonable request to be sure. I've got all my music on the NAS share (which is sharing everything via DLNA) and my own Linux box (which can share the music in pretty much any way I want), so there must be some products that can work with that music available for iOs, right?
Wrong. At least nothing that I was able to find after a lot of poking around.
Part of the problem is that Apple users seem to be totally fine with paying for everything. OK, so everything's cheap - maybe $5, but there don't seem to be trial versions of many things, and I'm sorry but I'm not going to pay $5 just to see if maybe I want to use a DLNA client. The free ones I found were, frankly, not very nice or intuitive. Definitely not what my Apple-happy wife wants.
Another problem is that Apple seems to have kept the masses happy with iTunes. I still for the life of me don't understand why there isn't some massive Apple revolution against iTunes - it's a total piece of crap that needs to go away but just seems to get more and more ubiquitous. It seems that every Apple app _except_ for iTunes is slick, intuitive, and easy to use - I still don't get it.
So, back to my requirement to share my music out - I guess I'll have to find something that works with iTunes (which isn't available for Linux btw). A quick check found that iTunes has a feature called home sharing, which should at least take care of Claudia's computer and iOs devices. My initial solution plan was to create a Windows VM on my desktop that would run iTunes with home sharing, and just have it running all the time. There ended up being a few problems with this:
1) For some reason, the following combination produces serious problems:
- Windows VM with bridged network adapter
- iTunes installed
This combo results in the _entire_ system (not just the VM, but the whole darn box) instantly crashing whenever a music file is copied to the VM. Obviously that's a dealbreaker. I tried everything I could think of to get around this:
--Use a different virtualization platform:
- KVM - doesn't support a bridged interface on a wireless device (theoretically it's possible but I wasn't able to get it to work with an hour or so's worth of poking at it).
- VMWare - VMWare server doesn't really work anymore on later Linux distros, and they've pretty blatantly EOL'd it. There are patches floating around out there on the net, but I had trouble just getting a VM up and running, and decided that this wasn't the route I wanted to take.
--Use NAT networking and just port forward the required Home Sharing ports to the VM: this doesn't work because Home Sharing uses mDNS, which is effectively a multicast, serverless method of name resolution - every device is constantly sending UDP packets to a multicast address with its own name and IP info. I think Apple does this in order to make it really difficult to spoof devices, but it makes my life tough. In the case of NAT, the packets will get from the VM to the iOs devices, but they have the internal non-routeable NAT address instead of the gateway address. I briefly considered trying to do some packet mangling to change the internal IP address to the gateway IP, but that creates a whole new difficulty.
--Same idea, but use a host-only VLAN: this requires forwarding multicast packets between the host-only VLAN and my home VLAN. I tried a few packages (smcroute, pimd, even mrouted) and none of them worked - tcpdump analysis showed that they were configured correctly but simply weren't working. The conclusion I came to was that, even though the apps _thought_ that the kernel was compiled with multicast routing support, it wasn't really enabled, and a kernel recompile would be required. There are many reasons that I don't want to recompile my kernel (too many kernel mods that would have to get recompiled, plus I'd be stuck on that kernel forever, plus it might not work!).
Anyway, all this went on for a long time, till I finally decided to just set up the original way, with the limitation that I couldn't copy music files over the network to the VM, lest the entire system go kaboom. I did my initial import of music by creating ISO images of my music and attaching those to the VM, then importing from the "DVDs". I'm still working on how I'm going to get new music up there :)
So, after all that hassle (which admittedly isn't Apple's fault, although if they weren't using that stupid mDNS then I could have easily worked around the VirtualBox issues), I come to find that:
- With my collection size (about 13k tracks) the initial connection from the iPhone or iPad is slow as molasses - it takes about 3-4 minutes to connect to the music library and load it all. And, since it load the details of the entire catalog onto the iPhone, the performance for everything is sludgy - start searching through the catalog and you have about a 2 second lag between key presses. Definitely not good, and definitely not the way it should work.
- Home Sharing is only supported on new Apple devices. That means that Clau's iPod won't work, despite running the latest version of iOs (and being very sluggish because of it). And, you may recall, her iPhone doesn't fit into the sound dock (which is almost a moot point since the iPhone doesn't handle our collection very well).
I spent about 2 weeks of personal time working on this, and to show for it I have my music sharing working (poorly) on 2 devices, neither one of which is the one Claudia wanted, and neither one of which can be plugged into the sound dock
Which brings me to why I hate Apple. Part of their technological ground rules are:
1) We will make it deliberately difficult, if not impossible, for non-Apple devices to work with Apple programs / devices unless it directly benefits us.
2) We will only enable newer features on newer products, regardless of that product's technological ability to use that feature. This will force consumers to buy a newer version of that product if they want that feature.
3) We will disregard impact of newer versions of firmware on older devices (i.e. iOs 4 on the iPhone 3). (Note: I'm giving Apple the benefit of the doubt, and not assuming that this was actually an intentional breaking of the iPhone 3 - not everybody feels the same way).
I can understand the first point - Apple isn't in the business of trying to make their product work with other companies' products, especially when those other companies are potential competitors. Furthermore, everybody else (Sony, Samsung, and most notably Microsoft) is doing it too, so it's not like Apple's playing dirtier than everybody else.
Points 2 and 3, however, are unforgivable and (imho) unethical.
Anyway, enough ranting. I suppose I ought to edit this before posting it, but maybe it'll help someone else who is trying to do the same thing. Soon enough I'll post my solution (hint: it's a Squeezebox).
No comments:
Post a Comment