Archive for June, 2011

The Economics of Microsoft Surface

This is a post I wrote August 2009 but never got around to publishing. Whilst spring cleaning my drafts, I re-read it and decided it wasn’t that bad, so here it is. I wonder if the issues are still the same in 2011….

——————–

It’s almost a year ago to the month that Amnesia Razorfish smuggled the first Microsoft Surface tables into Australia with the help of parent company Razorfish, much to the excitement of local geeks. There was also a fair bit of uproar from surprised parties who hadn’t expected to be usurped in such spectacular fashion.

I was hired by Amnesia shortly before Surface arrived, partly on speculation that they would soon need a Surface developer. I had experience with the technologies it uses, and a great interest in the product, so was really excited to get such an opportunity. It was also a bit of a gamble on my part, as it was by no means guaranteed at the time they would even be getting a table, let alone any paying clients.

The first few weeks, maybe months, there was a great buzz and curiosity from clients and media about this new device. The phones were ringing off the hook and there were regular coffee table tours.

Despite this, and the amazing stock of talent Amnesia had at its disposal, I think it’s safe to say that during my year there, they never needed more than this one, solitary, Surface developer.

How can that be? “Surely it would be as easy as selling antifreeze to Eskimos!”, I hear you mutter…

Here’s why: In many scenarios, the economics of Surface development simply don’t add up.

For background, let’s put a few ballpark figures on the coffee table:

- Cost of a MS Surface table: $10k
- Cost of  development/design time: $200/hour

Let’s tackle the most obvious thing first: This Is Software Development.

It’s been many years since the Adobe Flash experiences that draw crowds on the web have been built entirely with a visual tool. Most are chock full of ActionScript. In fact, dare I say, they probably contain more programming hours than design hours.

Suffice to say there are very few digital experiences of the richness that people expect these days, that can be built without significant software development capabilities, and that goes for Microsoft Surface too.

Microsoft Surface carries the extra burden of not only having slightly less mature tools than industry mainstay Adobe Flash, but more importantly having a much smaller experience pool, particularly in the crucial “devigner” niche. And as with any new technology, the early days often mean higher costs and higher risks.

So, creating a quality Surface experience means building software. But what do you get for your money? Well it could easily cost you $6000 per man week, and even after many weeks development the chances are you won’t get that award winning experience you were hoping for. My guess is that most commercial Surface applications you see being touted cost in the region of $300,000. Definitely in the hundreds of thousands. Let your imagination go wild and you could easily spend half a million.

The next most obvious thing is: Penetration.

Unlike building a user experience for the web, prospective clients will be footing the bill for each and every device that will end up in front of users. If you are going to pay a hefty sum for bespoke software development you sure as hell want to leverage that investment by deploying it to the maximum number of locations.

You can keep the costs low by only having a tiny number of tables (and maybe even spin that to your boss by claiming the experience would then be truly unique/exclusive!), but ultimately you are talking about investing in a piece of custom-written software that will only ever be seen by a tiny audience. Yes, that might be tenable for a small number of luxury brands, but for the majority who actually need to justify there expenditure? I think not.

So, to get “good value” from your investment in a Surface experience you need to also purchase a reasonably large number of tables. I would say at least in the tens if not hundreds (e.g. retail locations). There’s $500,000 right there.

Lastly: Cost/benefit.

At the end of the day, clients have to estimate how much a Surface experience is going to be worth to them. It’s obvious that many applications of Surface can be categorized as marketing in some sense; whether its experiential branding, attractive gimmick, or 9 o’clock news hype.

I can only imagine it’s very hard to estimate the financial benefits such a Surface experience will bring, because in the majority of cases it’s going to be an indirect effect at best. And such financial benefits are almost certainly going to be impossible to determine a-priori.

Which is also the case if Surface is used as Point-of-Sale platform – it’s all pretty much undiscovered country. With such little data on natural user interfaces, not to mention Surface specifically, it’s very hard at this stage to make confident guesses about how conversion rates or stickiness can be improved. The only way to find out for sure is by putting down the cash. And that’s a risk many firms can’t or wont take.

Running uTorrent as a Service on Windows Home Server 2011

Step 1: Download and Install uTorrent

  • Download uTorrent 2.2.1 (390 KB)
  • Install uTorrent as normal, by opening the downloaded EXE
  • It should install itself into C:\Program Files (x86)\uTorrent

Step 2: Configure uTorrent Web UI

  • Run uTorrent as normal (e.g. Start Menu)
  • Go to Options menu and select Preferences
  • Go to the Directories folder and set the folders where you want your torrents to be stored
    • Make a note of these directories, as you will need them in step 8

image

  • Go to the Web UI section and make three changes
    • Tick “Enable Web UI”
    • Set a username and password
    • Tick “Alternative Listening Port”; leave the number as 8080
      • Note: This sub-step is not strictly necessary but gives you a higher chance of things working first time

image

Step 3: Test uTorrent Web UI

  • Using a different computer on the local network ensure you can get to the uTorrent Web UI
  • The web address should of the form http://homeserver:8080/gui/
  • Note: You must replace homeserver in the above URL with the name of the computer where you install uTorrent.
  • The browser should ask for a username and password. Use the values provided in Step 2
  • You should see the uTorrent Web UI.
  • If you do not see the uTorrent Web UI do not proceed any further. You have a networking problem. Seek help.
  • At this stage you have a working uTorrent Web UI but it is NOT running as a service. This means that torrents can still only be downloaded when a user is logged on and running uTorrent. Continue with the following steps to run it as a service…
  • Important: Now Close down uTorrent by choosing File->Exit.

Step 4: Copy the uTorrent settings file

  • Copy the settings.dat file from C:\Users\<User>\AppData\Roaming\uTorrent to C:\Program Files (x86)\uTorrent

Note: Depending on your username you will need to substitute <User> in the above path

Step 5: Download and Install SRVANY.exe

  • Download Windows Server 2003 Resource Kit Tools (11.8 MB).
  • Install the entire tool suite as normal, by opening the downloaded exe.
  • By default srvany.exe will be installed to C:\Program Files (x86)\Windows Resource Kits\Tools\srvany.exe

Step 6: Create Windows Service for uTorrent

  • Open an administrative command prompt by following these steps:
    • Navigate to Start Menu –> Accessories –> Command Prompt
    • Right click and select “Run as Administrator”
  • At the command prompt enter the following:
      sc create uTorrent binPath= "C:\Program Files (x86)\Windows Resource Kits\Tools\srvany.exe" obj= "NT AUTHORITY\LocalService" start= auto
  • Note: Do not remove the spaces between the equals sign and parameters. This is an oddity of sc command and is required
  • If this works you should see something like the screenshot below:

image

If you get the “Access is denied” error then you are not running as administrator.

Step 7: Configure the SRVANY.EXE service

  • If you want to perform this step manually you will need to know about regedit. Here are the steps:
  • Run regedit
    • Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\uTorrent\Parameters
    • Create the Parameters key if it does not exist
    • Under the Parameters Key, add a new String Value named Application
    • Set the value to be C:\Program Files (x86)\uTorrent\uTorrent.exe
    • If you have done everything correctly it should look like the screenshot below:

image

Step 8: Modify permissions on your downloads directory

By default Windows will not allow your uTorrent service to read or write to the disk. In order for uTorrent to work you need to add read & write permissions on the directory or directories you specified in Step 2.

  • Navigate to the directory
  • View the directory properties
  • Select the Security tab
  • Click the Edit… button
  • Click the Add… button
  • Enter LOCAL SERVICE (including the space) then click OK
  • Ensure “Allow Modify” is ticked, and OK everything
  • It should look something like the screeshot below:

image

Step 9: Ensure the uTorrent service is running

  • Load the services control panel (Start->Run->Services.msc)
  • Locate the service named uTorrent and verify the Status column says “Started”.
  • If it does not say “Started”, then click the Start Service button

Finally…

  • Log off your Windows session and repeat Step 3 to verify that the web UI is still working and you can download torrents successfully.

General trouble shooting:

  • Double check that uTorrent.exe is not running on your desktop.
    • Note: By default clicking the close button in top right of the uTorrent window will not actually exit the application
  • Double check that uTorrent.exe is running as a service.
    • In task manager, “Show processes from all users”, ensure you can see uTorrent.exe running with LOCAL SERVICE displaying in the User Name column
  • Please leave a comment if you have any issues with this guide