Just stop giving in to Apple’s demands!

So the internet has been awash with condemnation at Apple’s recent decision to impose it’s monopolistic tactics onto content publishers with their announcement to kiabosh any out of app purchasing. And somewhat rightly so; 30% is a lot of margin to be giving away, especially when the margins are so tight anyway that a sale can often result in a loss.

The fanbois may argue that Apple has the right to charge what they want as they have spent money building their platform over the years and I would say that they are right. Apple spent millions billions in R&D to create the iPhone, iPod, iPad and the iOS and it’s their prerogative to make it work for them financially.

However, that’s certainly not to say that publishers should just stand by and let the “suits” from Infinite Loop have their own way. The music industry learnt this lesson a long time ago, after they let Apple define the rules and set the path for digital music downloads for almost a decade. It finally seems to have started to pick itself up and work its way out of that hole, although I do worry it’s is a bit like an absentminded old man who regularly forgets that the kettle gets hot when its boiled and happily picks it up with both hands whenever it whistles.

Apple won’t drop their prices voluntarily, despite mounting pressure and the more favourable Google rates, because they just don’t have to. Unfortunately it isn’t a fair market so they won’t be forced to change their pricing through natural market forces. My point here is, that if publishers don’t like the 30% surcharge that Apple is about to impose then they should pull their content from the platform. If no one provides their content through iOS devices then those devices become less appealing and as happens in a normal fair market economy Apple will be forced to drop their prices to get the publishers back on board.

Working for an iTunes competitor I am somewhat biased on this, but if the already slightly senile music industry doesn’t want Apple to right the rules for the subscription streaming market in the same way it did with a la carte downloads then they should stand their ground. They should look to pull their content from the iTunes platform or at least stop the impending Apple streaming service from launching. Services like Spotify, MOG, Rdio at al. won’t be able to afford to give £3 per month to Apple whilst giving the lions share to the labels. The aforementioned must also avoid backing down on what they take from music subscriptions just to make this work under the Apple dictatorship or they’ll end up bending over again while the Cupertino giant gets its way.

Mike Skinner’s souper new way to distribute music

I’ve spent a lot of time listening to the genre bending Beat Stevie podcasts by The Streets of late. Mike Skinner and Ted Mayhem fuse together everything from Dubstep to Country, overlayed with the kind of nonsense hilarious conversations that you wish you could have all the time.  They fill the 3 hour long drive on trips back to see my parents nicely, they’ve helped find a common ground in music taste between my wife and I and they’ve got me through the most arduous days at work.

Mike Skinner’s use of social media has been trumpeted recently; his constant stream of Youtube video responses to fans questions on Twitter and poetic ramblings over his trademark beats are enough to keep any fan baying for more. He’s amongst a lineup of celebrities that “get” technology and social media and know how to make the most of it for their own benefit.

His latest “stunt” is to release the newest episode of the Beat Stevie podcast through the use of a an iPhone app, a barcode on his website and a second barcode which you have to hunt down. The second barcode is printed on the side of a 300g tin of Heinz Tomato Soup. There’s doubtless going to me a lot of frustated fans, those without iPhones and those whose local supermarket don’t stock that soup come to mind straight away.  But it doesn’t matter, it’ll be talked about, a lot, which is the exactly the point.

Right I’m off to the Co-op, do you need anything?

UPDATE: I’ve realised you can photograph the barcode on the website twice to get the podcast in case you refuse to shop anywher but M&S.

Open mailto: links in Gmail

If you’re a Windows user, use Gmail and like me are sick of mailto: links opening Outlook this could save you any more of those argggggggh moments.

DISCLAIMER: If you don’t know how to modify the registry, you probably shouldn’t be doing it. If you do it, you do so at your own risk.

Update the registry value at:


to be:

“C:\Users\[YOUR_USERNAME_HERE]\AppData\Local\Google\Chrome\Application\chrome.exe” http://mail.google.com/mail?extsrc=mailto&url=%1

or if you use Windows Server 2003 like me:

“C:\Documents and Settings\[YOUR_USERNAME_HERE]\Local Settings\Application Data\Google\Chrome\Application\chrome.exe” http://mail.google.com/mail?extsrc=mailto&url=%1

UPDATE: Someone has pointed out that there’s a Chrome extensions for that :


Amazon acquire Lovefilm

After being the major shareholder since 2008, Amazon have apparently bought out the remaining shares in a deal thought to value Lovefilm at £312 million.

See Techcrunch Post for more details

I imagine this is part of a content play for Europe in preparation for the rumoured Amazon Android tablet along with their App store which I expect will ultimately become something akin to iTunes.

Rubber Dinghy Rapids

I’m probably amongst the minority of my peers on this but for some time I’ve questioned the actions of those of my friends who regularly risk the potential legal ramifications of torrenting 1000’s of videos and albums every year and who have fallen foul to a plethora of viruses and Trojans from bogus downloads. I’ve not been a fan of pirating since my days at university when Napster was all new and the talk of the web and even less so since I took up camp at the 7digital offices where piracy is obviously one of our biggest competitors alongside messrs Jobs and Bezos. I certainly don’t advocate the theft of copyrighted material, it puts my job at risk, but after this weekend I’ve begun to understand why it happens.

After being reminded that I still hadn’t seen the Chris Morris film Four Lions I went to 3 HMV stores on Saturday but was unable to find it in any of them. I could have ordered it from Amazon but it would have arrived mid week and I probably wouldn’t have gotten around to watching it for weeks. I wanted to watch it that night. It wasn’t available on Zune or SkyPlayer on the XBox so I had a look round a few sites online but nowhere would allow me to buy it and then stream it to my TV through the Xbox 360 due to the DRM or requirement to use proprietary software. So I chose to torrent it.

The movie downloaded in around 20mins and the torrent client I chose, Vuze, has a DNLA client to allow me to stream it directly to my Xbox with no intervention – it even automatically converts it into the right format if necessary. The endless choice, ease and speed of the process makes it so effortless – if I could have that same service and pay for it I definitely would.

With the number of connected devices in the average household increasing and the advent of connected TV sets we need better licensed services in the UK that are simple for the average non technical person to use and made available on these platforms. I’m pleased to see Sky and Lovefilm have already taken a step into console integration with their movie services on XBox 360 and PS3 respectfully. There’s iTunes too, but you need an Apple TV device to play through your TV.   Outside of movies there are several good services (iPlayer, Seesaw and Skyplayer) but again they are only usable through a web browser. These existing services also need to look to make their content available through more platforms like Boxee and Roku so that they are simple plug and play services.

DISCLAIMER: I am actually now going to buy Four Lions from Amazon, it would have been better to be able to pay the studio, Optimum Releasing, directly with some form of honesty box system though.

Oh and the title of this blog post is taken from a quote in the movie and for those of you that haven’t seen it yet, I highly recommend that you watch it, it’s laugh out loud funny all the way through.

The music industry goes lean

There’s been a bit of chatter today about Sony and Universal deciding that they will try putting new singles on sale as soon as they get radio airplay to try and reduce piracy. The existing model has new singles getting heavy radio airplay for several weeks before they go on sale in order to boost first week sales.

As consumers we are demanding, we are used to getting things now so making us wait means we will go elsewhere so it should have a positive effect. I’m doubtful that it’s going to make a massive impact on the piracy problem especially with those that never buy music – but then I guess that was money the labels were never going to see in the first place.

Using StructureMap with Solrnet – updated

The implementation has now been updated to allow for multi-core instances. Which can be set up in your Bootstrapper like this:

var solr = (SolrConfigurationSection)ConfigurationManager.GetSection(“solr”);
var solrServers = solr.SolrServers;
x => x.AddRegistry(new SolrNetRegistry(solrServers))

You’re app config should look like the the following:

<section name="solr"
    type="StructureMap.SolrNetIntegration.Config.SolrConfigurationSection, SolrNet" />
<server id="myobject" url="http://localhost:8080/solr/"
documentType="Your.Objects.Name, Your.Objects.Namespace" />

Using StructureMap with SolrNet

SolrNet is a great .NET library for querying and updating a Solr instance. I’ve been using it recently as part of a project in which we were using StructureMap as our IOC framework (like most of our projects). It has its own built in IOC  based on the Common Service Locator Interface (Microsoft.Practices.ServiceLocation) as well as support for Windsor and Ninject.

As I didn’t want to switch our IOC Framework I decided to write a registry class. It’s now very simple to register  the container using the following line in your bootstrapper.

x => x.AddRegistry(
new SolrNetRegistry("http://localhost:8893/solr")

Its now included in the git master and the binaries should be available shortly.

Updated: The structuremap adapter now allows for multicore configuration

Azure – first impressions

I signed up to a Windows Azure account earlier this week as i’m working on a project that I need hosting for, details of which will follow in due course. I had a look at a few hosting providers including (EC2 and Rackspace) and seeing as Azure is free throughout January and at 50% discount for 6 months, I thought I would give it a go.

Here’s my first  impressions:

  1. Signup
    The signup process was far too long and overly complicated and on top of that the setup process just wouldn’t work for me in Google Chrome.
  2. Setup
    The principles behind Azure are quite new – unlike EC2 there is no actual Windows Server OS running on a VM that you can just access via Remote Desktop, you need to set up the VM via a UI.
    You first have to set up a project, which is really the notion of the server itself. The project can then have multiple services running on it. The available services are Windows Azure (compute & storage)
    Sql Azure (data) and AppFabric (service bus). The services can then have different roles which are the actual applications, for example the compute service can have a web role which is a web application or a worker role which is a windows service.
    For someone who’s used to administering a server and using the managment tools to set up websites etc this seems a bit like the basic version of a settings panel. I understand the reasons behind it, making it accessible for those not used to server administration, but I feel like I’m being treated like someone that shouldn’t be allowed to touch the advanced settings.

    Setting up Windows Azure services

  3. Deployment
    The deployment process is actually very simple, although there  are a few annoyances.
    Building a Cloud Service in Visual Studio creates two files, the application package (.cspkg) and a configuration file
    (.cscfg) which need to be uploaded through the relatively clean Azure web interface. Strangely the Beta of Visual Studio 2010 creates the package files if you right click the Cloud Service project and click publish, but not if you click publish on the Build menu.
    Once you have your packages, you can deploy the service to a staging server first without any additional setup. A url is provided for the test server so you can do some testing and then once you are happy with it you can deploy it over to the production environment with one click.  Once deployed the service can be started, stopped, configured and deleted from the UI.

    Azure Deployment

    At work we have a Continuous Integration environment set up with Teamcity running as our buildserver and automated deployments to our webservers, as nice as the Azure UI is, it would be good if the deployment is scriptable so it could be run automatically. I’m hoping at the very least that this becomes, if it isn’t already, part of  Visual Studio and TFS.

    The deployment process was really really slow and my deployment failed numerous times without any feedback as to why which made it impossible to debug. I still no idea why it wouldn’t deploy – I just recreated the Cloud Service from scratch and it worked.

I see this as ideal for a web developer who’s got no idea about server administration. I’ll persevere with it for now or at least until the end of the free period (end of January) but my patience is already starting to wain and the idea of EC2 is certainly quite appealing, despite the price differential.

Removing sites from Google Search

If, like me, you hate experts-exchange.com results appearing in your google search results, you can use this bookmarklet to remove them.

var query;
var regexS = "[\\?&]"+"q"+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null ){query = "";}
else{query = results[1];}
query =  query + " -site:experts-exchange.com";
document.location = "http://www.google.com/search?q=" + query;