Apple iTunes and NAS usage – please fix it Steve!

This is such a nightmare and it only grows with time.

Many many people have this desire: a single place for all their media: music, videos etc.

A NAS device is the place, backed up suitable. The problem is iTunes / Front Row just does not fit with this strategy if you have more than one computer / Apple device.

The core issue is that iTunes does not automatically rescan the media folder for new files. So you can point as many iTunes as you like to a shared location but they will only see the files they add to their libraries via purchasing or importing media.

So you end up with many devices in your house, all with a different view onto your shared media.

To access that new album you imported, you have to manually Add To Library on that iTunes instance, hoping it isn’t set to duplicate the files on the server. When this happens, as it certainly used to for me, you then end up with many copies of albums as you re-create your library from scratch on the various computers over the years.

Add to this the fact that if for some reason your connection to the NAS goes down when you run iTunes, it will revert the media path to the local folder, and you end up with a total mess – a bunch of machines with files only on some of them, their media split between local and NAS, and only the ones that added those files having them listed in their library.

The experience is so un-Apple it is shocking, and it causes daily pain.

It is important to remember that the iTunes Media folder is where it PUTS files that you buy/import – and that is ALL. (There is a new “Automatically add to iTunes” folder there, which seems half-assed to me). The iTunes Library is specific to each computer and is the list of media and the file path to each. This, unlike the media folder that actually stores the media files, is something you do not want to share between computers in many cases.

Now, iTunes 9 added Home Sharing. But guess what, this sucks and blows! Why? It (a) only shares iTunes-purchased content and (b) it duplicates the files to your local HD. Home sharing, I believe has a lot more to do with the iSlate/tablet and their new datacenter – music in the cloud crap – so you can sync your iSlate content without a cable.

Please Apple, it needs to work like this:

How it should work

How it should work

This is relatively simple:

  1. First, never change the media path in iTunes if the previous path is not reachable. Tell the user what is happening so they can fix it
  2. When new files are added, make a bonjour announcement to any other iTunes running (perhaps even wide-area bonjour to make iPhones/Slates pick it up) so that they can instantly add the file to their iTunes library
  3. When a file is not located on the local disks, have a local cache for stuff that the user ACTUALLY PLAYS. My wife doesn’t like all that heavy metal I listen to, so let’s not fill her hard disk with a clone of it eh? iSlate and Apple TV / mac mini media hubs etc can pick up just the files that are needed.
  4. For the occasion when not all the machines / iTunes are running, have iTunes do daily rescan in the BACKGROUND for any new files in the media folder and AUTOMATICALLY add these to the Library. This is not rocket science.
  5. Maintain an “excludes” list on each iTunes library so the user can remove items from their local itunes Library (without deleting it from the NAS) and they will not be offered the file again in a future background sync.

Don’t give me stuff about non-purchased media not having ISRC codes to identify them and de-dupe. You can dedupe on SHA hashes of the media (calculate once and embed in the metadata of the file) and failing that trackdata, and then failing that – USER INTERVENTION eg “There are some new media files added and we don’t know if they are duplicates or not – help me”.

You can even put all these newly discovered files into a special “Newly discovered” place in iTunes where the user can yay or nay them – or have it set to auto-accept (default).

The more and more macs and related devices are sold to households the more shitty this problem becomes and you REALLY REALLY need to fix it Apple. Without the cloud. The cloud is not a solution for terabytes of media being instantly accessible in your living room.

Please. Just do it. iTunes Home Sharing was nearly it, but sadly failed completely to address this.

  • Twitter
  • Slashdot
  • Delicious
  • Evernote
  • Share/Bookmark
Tags: ,

12

01 2010

This is spot on.

Why aren’t you using Grails at work?

As mentioned earlier today, I’m going to be talking at JAX London 2010 about how you CAN use Grails.

I would like to hear however, the reasons why some of you may not have been able to use Grails at your place of work. I’m sure there are many amusing and probably frustrating stories.

OK, I’m looking for soundbites for the talk. Come on, feed me!

  • Twitter
  • Slashdot
  • Delicious
  • Evernote
  • Share/Bookmark

14

12 2009

Speaking at JAX London 2010

They’ve firmed up the timetable now and it seems I’m on the last day where the Groovy & Grails track is happening – at the same time that there’s a Java EE 6 talk. So I’m hoping that all the smart people will be over at my talk :)

Full details of the JAX London 2010 program are here http://jaxlondon.com/

…and here’s the overview of what my talk (which is not written yet, but is roughly fleshed out) will be about:

Grails is the hot property in rapid web application development frameworks on the Java platform, attracting around 90,000 downloads per month. It uses the Groovy language but is nonetheless primarily a Java-based stack. This makes it a perfect fit for Java development teams. Most programmers I talk to want to be working with Grails more in their day job because it is actually great fun and incredibly productive. However organisations are often resistant to change and may not be as excited as they should be about the opportunities Grails offers their business. This talk will give you some insights into the power of Grails and ways to ease your organisation into a more productive and enjoyable era of development – for the good of all concerned!

The talk is listed as “basics” , which I suppose is fair but I expected to present some reasonably advanced concepts for non-Grails users in terms of ways to use Grails and plugins.

I’m crapping myself to be honest, no idea how big the conf rooms will be etc. Gulp. It should be fun though. Knowing how high or low to pitch it at a general-purpose Java conf is tricky though. I see the Rails crowd have a “twitter in about an hour”. I’m hoping to pitch something a bit more “get grails working within your existing enterprise systems” which I think may be a bit more relevant to the crowd.

Comments on this appreciated, especially from JAX veterans – I’ve never been myself.

  • Twitter
  • Slashdot
  • Delicious
  • Evernote
  • Share/Bookmark
Tags: ,

14

12 2009

Do we need a commercial market for Grails Plugins?

Right at the end of the Groovy & Grails Exchange (AKA #ggx) final park bench session I came up with a question that has been brewing in my mind for a long time. Thing is, it is quite a big and difficult question, so I thought it would be better to shut the hell up and deal with it later after I’d clarified things in my mind a bit, i.e. now.

Here it is in a nutshell: Unless I’ve missed something, there’s no commercial market for Grails plugins. And this could be a problem because what percentage of all free open source dev projects out there survive in the long run with a vibrant user base? It must be pretty low by my estimation.

As a developer of many Grails plugins I am most definitely not having a whine about how I can’t make money out of my plugins (at least directly). I will always be able to get enough work one way or another – this is about the health of the plugins themselves which suffers because it is not currently possible to make money from them. Unfortunately this is really related to the general contentious issues surrounding the whole free (no cost) software movement. Paying for support works for large applications/frameworks, but for the smaller stuff it doesn’t work as a model in my opinion.

Anyway, its great that we have over 300 grails plugins now. Some of them are already stagnating though – including some of mine. Keeping plugins current and of good quality is fundamental as we know from experience (not just with Grails) that old plugins – which may still be relevant – stop working with newer builds of the “mother” framework. This leaves users in the cold over time, and can cause the attractiveness of a framework (eg Grails) to decay over time.

Conversely the number of stable releases of Grails that are in use by users only increases over time, which means all plugin developers have an increasing burden of support and testing for every plugin release.

When a big part of the value of a framework comes from the reusable components you can pull into your apps, if you end up with a high percentage of these components becoming mothballed over time, your ecosystem starts to look like a graveyard rather than the productive paradise it was when you started.

Let’s look at a possible plugin lifecycle – it happens to be very similar to my situation which will be no surprise, but I’m sure I’m not alone:

  1. Inception: Either a lone developer has a great idea and a lot of spare time, or their employer has a great need that is reusable and they agree to open source it.
  2. Dash to meet needs: Implementation steams ahead, the plugin is released
  3. Documentation: high quality documentation is written for the first release (if you’re lucky)
  4. Honing: in response to other users’ feedback, bugs are fixed, new features added
  5. Steady state: the plugin works. No new major features are needed by the core developer/company
  6. Stagnation begins: Minor bugs and feature requests begin to build up in JIRA. Some users submit patches or contrib minor fixes
  7. Infrequent maintenance: Original devs return when they have precious spare time, usually to fix the issues that affect them most, but maybe with a couple of user-related fixes.
  8. Stagnation sets in: Documentation drifts out of sync with point releases, builds stop working with newer versions of Grails. Developer doesn’t relish re-testing all their plugins with all stable releases of Grails in circulation (Grails 1.0.3/4, 1.1.1, 1.1.2, 1.2… and beyond) and so hides head in sand. This holds back Grails users who rely on such plugins who then do not upgrade to newer Grails versions.

It might look something like this:

Available time for plugin development against Time itself

It doesn’t look that bad does it? Try multiplying it by 10 plugins.

So what can be done about this? I don’t have the answer.

Would an iPhone App Store like mechanism for premium plugins work? There’s certainly people out there who would pay for plugins – but whether there are enough to pay a non-punitive price and make plugin development a viable career for people so they don’t let the rot set in because they can devote their real paid time to development?

Would a “Plugin development co-op” work, where people pay a low-ish monthly subscription fee to use and receive priority support for all participating plugin developers’ plugins? I rather like this idea, but again it remains to be seen if this could generate enough revenue to make it possible for enough developers to dedicate non-spare time to the development.

It just bothers me – why must plugin development be a “spare time” thing? These are very serious and important components in peoples applications. Will big enterprises really be happy to move to using Grails to dev apps that use a bunch of free plugins by individuals who write them on the train or when their wives have gone to sleep? Something that has Apache behind it may be an easy sell, but “some guy in a shed in the UK somewhere” doesn’t have the same ring to it does it.

I think if this problem is solved well, it may well open up the enterprise market that much quicker. Surely we can’t expect SpringSource to “buy” every enterprise-vital plugin that pops up, to give it credibility?

There is also another issue – that of licensing. Serious businesses need to know about the licenses that plugins are released under. This is not yet clearly identified, we could do more work there. I started tagging my plugins on grails.org with license tags such as “license-apache2″. However you can’t currently browse plugins by tag as far as I can tell on grails.org

Your thoughts appreciated.

  • Twitter
  • Slashdot
  • Delicious
  • Evernote
  • Share/Bookmark

11

12 2009