Creating Website Slots and SQL Elastic Pools using Azure Resource Templates

Recently I have been helping a number of organisations automate the deployment of their applications to Azure and came across a couple of scenarios that were not documented: Deploying an App Services web site with slots and SQL connection string settings, and the creation of a SQL Elastic Pool. Of those, the SQL Elastic Pool I found to be written up already by Vincent-Philipe Lauzon and all credit to him – my template draws on his excellent article.

The Web slots and configuration, however, I didn’t find. There are templates that deploy a web site, and some that deploy configuration settings into that web site (indeed, creating a new Web+SQL template through Visual Studio does just that). However, I could find none that deployed slots and none that added the config to the slot.

You can find the full template in my GitHub Repo. The template code to deploy a slot and associated config is shown below. This sits in the nested resources bock within the website resource, for reference.

The trick with the config, as it turns out, is the resource type. If you examine the connectionStrings node within a slot through Resource Explorer you will see it reported as Microsoft.Web/sites/config. However, if you click the PowerShell tab for the same note you will see the type reported as Microsoft.Web/sites/slots/config. Make sure that the resource name matches the config section (i.e. connectionStrings – or appsettings, etc).

{           "apiVersion": "2015-08-01",           "name": "[concat(variables('website').websiteName, '/', variables('website').slotName)]",           "type": "Microsoft.Web/Sites/slots",           "location": "[resourceGroup().location]",           "dependsOn": [             "[concat('Microsoft.Web/Sites/', variables('website').websiteName)]"           ],           "tags": {             "displayName": "Slot"           },           "properties": {           },           "resources": [             {               "apiVersion": "2015-08-01",               "name": "[concat(variables('website').websiteName, '/', variables('website').slotName, '/connectionStrings')]",               "type": "Microsoft.Web/Sites/slots/config",               "location": "[resourceGroup().location]",               "dependsOn": [                 "[concat('Microsoft.Web/Sites/', variables('website').websiteName, '/slots/', variables('website').slotName)]"               ],               "tags": {                 "displayName": "SlotConnectionStrings"               },               "properties": {                 "DefaultConnection": {                   "value": "[concat('Data Source=tcp:', reference(concat('Microsoft.Sql/servers/', variables('sqlServer').name)).fullyQualifiedDomainName, ',1433;Initial Catalog=', variables('sqlServer').stagingDbname, ';User Id=', parameters('sqlAdminLogin'), '@', variables('sqlServer').name, ';Password=', parameters('sqlAdminPassword'), ';')]",                   "type": "SQLServer"                 }               }             }           ]         } 

Net Writer: A great UWP blog editor

I came across Net Writer some months ago, when it’s creator, Ed Anderson blogged about how he’d taken the newly-released Open Live Writer code and used it in his just-started Universal Windows Platform (UWP) app for Windows 10. In January it only supported blogger accounts, which meant that I was unable to use it. However, I checked again this weekend and discovered that it now supports a wide range of blog software including that powers

I’m writing this post using the app. It’s great for quick posts (there’s no plugin support so posting code snippets is tricky) and most importantly, it works on my phone! That’s the big win as far as I’m concerned. I’ve been hankering for the ability to easily manage my blog form my phone for a long time and now I can.

You can find Net Writer in the Windows Store and learn more about it at Ed’s blog.

Convert new VM’s dynamic IP address to static with Azure Resource Templates

Over the past few posts on this blog I’ve been documenting the templates I have been working on for Black Marble. In a previous sequence I showed how you can use nested deployments to keep your templates simple and still push out complex environments. The problem with those examples is that they are very fixed in what they do. The templates create a number of virtual machines on a virtual network, with static IP addresses for each machine.

This works well for that deployment, where I have complete control. However, one of my aims is to create a series of templates for virtual machines that my developers can combine themselves to create environments that may be very different in makeup to my original. For example, what if the dev needs more servers? What if they only realise after pushing out four web servers that they need a domain controller? If I can’t guarantee the number or sequence of my servers I can’t use static address on creation.

The answer to this problem is actually really simple and uses the same approach as I described previously when reconfiguring a virtual network to alter the DNS address. I deploy a new virtual machine where the virtual nic for that machine requests a dynamic IP address. I then use a nested deployment to reconfigure that same nic, setting the address type to static and specifying the IP address that it was just given as the intended address. This means that I no longer care what order the Azure fabric creates the virtual machines in. That one key change over my previous template approach has halved the deployment time as I can now create all machines in parallel (the bit that takes the most time) and then configure in sequence as needed.

The markup to do this is very straightforward. First we create our nic:

{     "name": "[concat(parameters('envPrefix'),parameters('vmName'),'nic')]",     "type": "Microsoft.Network/networkInterfaces",     "location": "[parameters('VirtualNetwork').Location]",     "apiVersion": "2015-06-15",     "dependsOn": [     ],     "tags": {         "displayName": "DomainControllerNic"     },     "properties": {         "ipConfigurations": [             {                 "name": "ipconfig1",                 "properties": {                     "privateIPAllocationMethod": "Dynamic",                     "subnet": {                         "id": "[concat(parameters('VirtualNetworkId'),'/subnets/',parameters('VirtualNetwork').Subnet1Name)]"                     }                 }             }         ]     } }

You can see that I have set privateIPAllocationMethod to Dynamic.

The we call a nested deployment from our template, passing the IP address of the nic as a parameter. That template will redefine the settings of the nic, so it’s important we pass in all the information we need. If I miss something, that setting will be removed from the nic, so it’s important to be careful here. Notice that I use the reference keyword to access the privateIPAddress address property of the nic.

{     "name": "SetStaticIP",     "type": "Microsoft.Resources/deployments",     "apiVersion": "2015-01-01",     "dependsOn": [         "[concat(parameters('envPrefix'),parameters('vmName'),'nic')]",         "[concat(parameters('envPrefix'),parameters('vmName'))]",         "Microsoft.Insights.VMDiagnosticsSettings"     ],     "properties": {         "mode": "Incremental",         "templateLink": {             "uri": "[concat(parameters('_artifactsLocation'), '/SetStaticIP.json', parameters('_artifactsLocationSasToken'))]",             "contentVersion": ""         },         "parameters": {             "VirtualNetwork": {                 "value": "[parameters('VirtualNetwork')]"             },             "VirtualNetworkId": {                 "value": "[parameters('VirtualNetworkId')]"             },             "nicName": {                 "value": "[concat(parameters('envPrefix'),parameters('vmName'),'nic')]"             },             "ipAddress": {                 "value": "[reference(concat(parameters('envPrefix'),parameters('vmName'),'nic')).ipConfigurations[0].properties.privateIPAddress]"             }         }     } }

Within the template called by my nested deployment object I use the incoming parameters to reconfigure the nic. I need to change the privateIPAllocationMethod setting to static and pass in the IP address from my parameters.

{   "name": "[parameters('nicName')]",   "type": "Microsoft.Network/networkInterfaces",   "location": "[parameters('VirtualNetwork').Location]",   "apiVersion": "2015-05-01-preview",   "dependsOn": [   ],   "tags": {     "displayName": "DomainControllerNic"   },   "properties": {     "ipConfigurations": [       {         "name": "ipconfig1",         "properties": {           "privateIPAllocationMethod": "Static",           "privateIPAddress": "[parameters('ipAddress')]",           "subnet": {             "id": "[concat(parameters('VirtualNetworkId'),'/subnets/',parameters('VirtualNetwork').Subnet1Name)]"           }         }       }     ]   } }

Finally, in my virtual machine template I pass the IP address back up the chain as an output so I can use it in other templates if needed (for example, to reconfigure the vNet DNS property with the IP address of my domain controller).

{   "name": "[parameters('nicName')]",   "type": "Microsoft.Network/networkInterfaces",   "location": "[parameters('VirtualNetwork').Location]",   "apiVersion": "2015-05-01-preview",   "dependsOn": [   ],   "tags": {     "displayName": "DomainControllerNic"   },   "properties": {     "ipConfigurations": [       {         "name": "ipconfig1",         "properties": {           "privateIPAllocationMethod": "Static",           "privateIPAddress": "[parameters('ipAddress')]",           "subnet": {             "id": "[concat(parameters('VirtualNetworkId'),'/subnets/',parameters('VirtualNetwork').Subnet1Name)]"           }         }       }     ]   } }

Life with a Lenovo IdeaPad Yoga 13


My wife’s desktop computer is eight years old. In fairness, it was good kit at the time, and the dual core, 64-bit AMD CPU and it’s four gigabytes of RAM are still more than enough to run her apps today. But the disks are slow and, frankly, it’s just getting tired. Time to get a new one…

I had no real preference whether we replaced the old computer with a new traditional-style desktop and screen, or an all-in one, or a convertible or even a tablet. The only thing I was firm about was that we should get a computer with touch, whatever the form factor. It’s not that my wife loves touch (in truth, I’m not sure she does…) but that’s the way we’re all headed and I wanted to make sure we got something that would last.

There aren’t many places in the UK to buy a computer if you’re not sure what you want and you need to look, feel, touch and play with the various options so we trotted off to our nearest big chain PC store. We wandered up and down the aisles and my wife examined a number of laptops, desktops and more. We left to get a coffee and consider, and she decided on the IdeaPad Yoga.

Solid pedigree

We’ve been buying Lenovo kit for the office for a while now. ThinkPads are built like tanks and keep on trucking, but they’re not the most beautiful of devices. However, I strongly believe that of all the OEMs building PCs right now, Lenovo are the only one who really grok the principles behind Windows 8 and have embraced those principles with lovely, functional design. At work the sales team use Twists, and Robert has a Helix. Lovely devices all. The Yoga is cut from the same cloth. From the packaging to the design to the materials it’s made from, the Yoga oozes quality and thoughtful design.

The outer casing is coated with something that makes it feel more like some kind of fabric. It’s grippy and easy to hold and carry. The inner surface around the keyboard is soft and rubbery. It’s great when holding the Yoga in tablet form but it’s also comfortable when typing. The keyboard is of the same Lenovo quality as my laptop, albeit with the now standard chiclet type of keys and the trackpad is big and accessible. It’s a very comfortable machine to use.

Powerful enough

The model we got in the end has an Intel Core i5 CPU and four gigabytes of RAM. That’s plenty of power for what my wife needs and should still be enough a few years from now. The SSD inside ensures that storage is quick enough to make the whole thing feel snappy and responsive. It isn’t exactly overflowing with ports, and expansion isn’t much of an option but those aren’t high on the list. There is a single USB 3 port on one side, another USB 2 port on the other and an HDMI port. An SD card slot rounds off the list.

A novel form factor

The thing that stands out when you see the Yoga is that double hinge which allows the screen to fold all the way back to transform the Yoga into a slate. I was dubious at first about the keyboard being exposed and how that would feel to hold, but I can’t say it’s bothered me. The keyboard is disabled as the screen moves past the point where the laptop is fully flat so you can’t accidentally press keys.

The design also allows the Yoga a neat party trick that Lenovo call ‘tent mode’ where you fold the screen back but not all the way. The result is a stable inverted V which allows the Yoga to stand freely – great for watching videos.

A better than average screen

One of the things that attracted me to the Yoga in the store was that, unlike almost every other touch-enabled (and non-touch, for that matter) laptop, it didn’t have a 1366×768 screen. That resolution is fine on my Surface RT, and I put up with it on my work X220 tablet, but on a screen bigger than ten or twelve inches its annoying and when you work with Office or other desktop apps, as my wife does, the extra real-estate makes a difference. Her desktop had, until one of them died, two 1600×1200 21” LCD screens. The Yoga has an impressive resolution of 1600×900 so she wouldn’t lose much desktop space. It’s also a lovely, crisp display. It’s a glossy screen, so it suffers with reflection in bright sunlight as all glossy screens do, but it’s lovely to use.

Solid battery life

Windows reckons the battery is good for around 6 hours or so. Evidence so far supports that. What more can I say?

Strength in flexibility

The form factor is a big win. I’ve watched as my wife has folded the screen back to use the Yoga in tablet mode and read on the Windows 8 Kindle app; I’ve seen her use it tent mode to watch YouTube and BBC iPlayer videos; she uses it as a laptop all over the house. Finally, she uses it with a second monitor and separate keyboard and mouse, with her scanner and one of our printers plugged in via USB.

Adding peripherals: The Lenovo USB 3 dock

My wife was insistent that she needed to be able to use any new computer to perform the tasks she did on the desktop. That means scanning photos and manipulating the resulting images, word processing and more. She wanted to keep the remaining 21” screen and like the idea of having a desktop keyboard and mouse for when she wanted to work at her desk. The Yoga doesn’t have enough ports to support all the peripherals she needed, and having lots of cables to connect is a pain.

Enter, stage left, the Lenovo ThinkPad USB Dock.

dock frontdock back

A single USB 3 connection to the Yoga gives five USB 3 ports for peripherals, an audio output jack, ethernet and two DVI ports. The accompanying software is needed to enable everything except the USB: DisplayLink for the DVI, USB audio and USB ethernet. I had the thing connected and working in less than five minutes and it just worked. With one cable to plug or unplug from the Yoga it transforms into a docked laptop with attached keyboard, mouse, scanner, monitor, speakers and physical ethernet for speedy transfer of data to and from our home server. It works quite happily other systems as well – it’s not limited to Lenovo PCs. Want to use your Surface Pro – no problem!


All in all I’m very impressed with the Yoga. My wife likes it and is happy with the choice she made. I think it’s good value for the cost and well specified too. Standout features are the quality and resolution of the screen, the always-reliable Lenovo keyboard and the innovative, flexible hinged form factor.

I can also heartily recommend the ThinkPad dock as a companion device for any USB 3-equipped laptop.

Tweaking my Lenovo x220 Tablet and running Windows 8

A short while ago I replaced my trusted by heavy Acer laptop with a Lenovo x220 tablet. After a couple of months running windows 8 I’m ready to put my thoughts into words.

If you’ve landed on this post looking for notes on Windows 8 drivers for the x220, skip to the end. UPDATE 12/06/2012 – added some points to the Windows 8 section.

A painful purchase

Nothing could have prepared me for the deeply unpleasant experience of actually purchasing my new tablet. The Lenovo UK site is shockingly bad at providing the information and options you need. Examples include (some of which bit me!):

  • Confusing information about specification and options. I still don’t actually know whether I have USB 3 or not – the product page suggests yes; the lack of identified hardware suggests not.
  • Appalling lack of detail on options and accessories. I ordered the docking base – there was only one choice. Nowhere did it say that I could have one with an optical drive. If I want to get a DVD now, it’s another £130!
  • Confusing information on critical choices. I still don’t understand the screen choices. I think I messed up on this – all the notes said five-point multitouch but Windows reckons I have only two-point. I got the standard screen because nothing I read said I needed anything but that. This is the one that might well bite me, so be careful!

However, on the plus side I was lucky enough to get a honking great discount off the final price thanks to lucky timing. The discount more than covered the cost of the extras I added post-purchase.

A solid platform

What I did manage to do was some research before my purchase. Lenovo will only ship the x220 with up to 8Gb of RAM. If that had been the maximum I could stuff into the system, I would have walked away. In fact, it will work quite happily with 16Gb, installed in the form of two 8Gb SODIMMS. Mine are Corsair, from my local supplier, and it works just great. Coupled with the dual core with hyper-threading Core-i7 option I chose from Lenovo, this thing is quick and great for VMs.

Less useful was the discovery that the x220 can only take 7mm drives. I had a 750Gb hybrid drive in the Acer that I wanted to use, so I order the x220 with the basic 320Gb drive. When I tried to fit the hybrid drive I found that I couldn’t.

It turns out that 7mm drives are actually quite hard to find in reasonable capacities, and I quickly learned that the 320 was definitely not fast enough and not really big enough. Step forward my second addition to basic spec – a 512Gb Crucial M4 solid state drive. That actually took some digging as well – the Crucial UK site denied the existence of any 7mm SSDs in their range. I got mine from Amazon in the end. What did we ever do before internet search engines?

The end result is a shockingly quick, light and flexible laptop that gives me over six hours of battery life and can comfortably run the battery of virtual machines I use for demo, customer work and testing.

Would I recommend the x220?

In a word, definitely. Would I recommend the Lenovo web site to purchase it from? Probably not. If you can reach out to a product specialist for advice I would strongly suggest you do so. Not only that, but I type this the week after the x230 was announced, with Ivy Bridge and other new-tech goodies. Am I disappointed to have bought ‘too soon’? A little bit, but you can wait forever in this business – something shinier is always around the corner, and I needed something pretty urgently when I bought the x220.

Overall, it’s good kit. It’s light, with a small, light power charger. It’s quick enough for development and running VMs – something I do a lot of. The convertible design means its ready for Windows 8 but doesn’t sacrifice that wonderful Lenovo keyboard for when I need to write documentation. The screen is bright and crisp, and whilst I would love more pixels (it’s only 1366×768) I’ve not been frustrated by lack of screen real estate.

Running Windows 8 on the x220

My first install of Windows 8 was before Lenovo released their suite of beta drivers. More on those in a while. I started with a clean disk and installed Windows 8 Consumer Preview. Not unexpectedly, the bulk of the devices were located and installed by the OS – display, networking etc. However, the WWAN, bluetooth, tablet buttons and a few others were not found.

I had to work through the drivers from Lenovo, installing pretty much everything including software. It’s irritating that there is no way to change the state of the wireless radios other than software. There’s a ‘flight-mode’ button on the x220 but everything else is controlled by the Lenovo apps. That means installing pretty much all the battery of crapware Lenovo ship in order to merely use the stuff the laptop ships with.

However, once it was all installed I was very happy. The arsenal of Lenovo stuff meant that startup was slow, but once up it was quick. Hyper-V installed with no problems and the Windows 8 UI was lovely to use with the touch screen.

With hindsight, I should have left it like that. Except Lenovo released their beta drivers, and I decided to install them.

True to form, disaster struck when I was on the other side of the world, in California. The fault manifested as a corrupted hard drive. The OS was beyond repair, so I had to salvage what data I could onto a pod that thankfully I always carry. With the help of others around me I managed to get a USB stick with Windows 8 CP on to rebuild. That night I spent a while in my hotel room fiddling with drivers again.

It ran, but it was flaky after that, so this week I decided to methodically rebuild and be sparing with the software.

x220 driver step-by-step

I now have a solid, quick, tidy install of Windows 8 on my laptop. I only installed two pieces of Lenovo software in addition to the beta hardware drivers (and you could argue that one of those is a driver as well).

UPDATE: I had some stability problems shortly after installing the Release Preview. Upgrading the firmware to the latest version fixed them.

  • Install the OS clean. Don’t mess around with upgrades – take off and nuke the site from orbit; it’s the only way to be sure!
  • Get all the Windows Updates done first. You should find that takes care of the Conexant Audio driver and the Lenovo monitor driver.
  • Download the drivers from the Lenovo Windows 8 beta drivers page that list the x220.
  • Start with the Intel Rapid Storage driver and the chipset drivers, then install the rest. The Tablet Button drivers are important if you want to be able to rotate the screen.
  • Download the latest version of Lenovo ThinkVantage Access Connections from the x220 support page. That’s the only way I’ve found to manage the wireless connections (especially my Ericsson WWAN card, for which there seems no other way to establish a 3G mobile data connection).

What doesn’t work after this lot? Just the bluetooth, which refuses to install the drivers because it’s not enabled, but without the software won’t enable. Ah well. I can live with that for now.

UPDATE: Upgrading the firmware reset the bluetooth status. Installing the Lenovo Hotkey Utility after everything else has now given me full control of all wireless radios. Whilst I was at it, I tracked down the last unknown device as being the power management interface. I installed the Power Management Driver (Note: not the Lenovo Power software, just the driver) and all is fine. With all the radios off I’m getting at least 6 hours if not more.

Notice that I avoided the Lenovo Power Management (software), tablet menu, active protection and many other software utilities. My experience has been that they add very little whilst significantly slowing boot time.

Recommended Reading

Following Richard’s lead, here are a range of books that I have found useful across the broad spectrum of topics I work in.


SharePoint 2007

SharePoint 2010


Web Design

User Experience


Reassigning the correct SSL certificate to SharePoint 2010 Web Services IIS Site


This post is about assigning an SSL certificate to an IIS 7.5-hosted website which is not located in the Personal Certificate store. The steps shown are not SharePoint-specific, however. Hopefully this post will save you the large amount of time I spent hunting down the information on how to do this.

The usual background

I’ve been installing and configuring a SharePoint 2010 system that we can use here at Black Marble for our demo sessions. I hit a nasty wall just after lunch which turned out to be caused by the SSL certificate being used by the ISS web site hosting the SharePoint web services.

I’d spent a while carefully wiring up the user profile service to our AD, getting synchronisation working and dealing with the creation of a new MySite host. That in itself is a fairly involved process right now, so when I hit errors I naturally assumed it was related to my work on the user profile service.

When trying to manage the User Profile Service I was seeing errors that Central Administration could  not access the service.

The automatic Health Analyzer in SharePoint was telling there was an error with the Security Token Service:

The Security Token Service is not available.
The Security Token Service is not issuing tokens. The service could be malfunctioning or in a bad state.
SPSecurityTokenService (SecurityTokenService)

In the Application Event Log I was seeing EventID 8306: An exception occurred when trying to issue security token: Could not establish trust relationship for the SSL/TLS secure channel with authority 'localhost:32844'..

Naturally, I checked the bindings through IIS Manager to see what certificate was in use. An IIS self-issued certificate for the server was listed, which I though should have been valid…

I looked in the Local Computer Certificate Store using the MMC snapin and I discovered a folder called SharePoint which had three certificate in it, all issued by the Sharepoint Root Authority:

  • SharePoint Security Token Service
  • SharePoint Security Token Service Encryption
  • SharePoint Services

That sounded interesting – perhaps one of these was the certificate which should be used and the configuration had got changed. The trouble now was how I assigned those certificates. IIS Manager only shows you the certificates in the Personal store – I couldn’t select the certificate I  needed anywhere.

Being one to tinker before turning to the web I looked in applicationhost.config – the xml file which contains the configuration details for the IIS sites. It listed the protocol bindings but not the certificate. So I turned to Bing.

The first site of note was (of course) on IIS.Net – How to setup SSL on IIS 7.0

This listed a whole heap of things to do in order to set up SSL, but none of it told me how to assign a certificate from a specific store, at least without turning to WMI (and that wasn’t clear).

I then found a detailed MSDN How To: Configure a Port with an SSL Certificate

This was really useful (if hard to find). It detailed how to configure a certificate using netsh. This required a key bit of information which I didn’t have – the certificate hash. However, the article linked to another, telling me that the has is in fact the Thumbprint attribute, accessible through the certificate MMC snapin (MSDN – How To: Retrieve the Thumbprint of a Certificate).

I tried the appropriate netsh command and it failed. I then realised that when I queried the ssl bindings the certificate store name was listed, showing where cert was. There was no information in that article on how to specifiy this.

Bing to the rescue again. A non-MS site listing the parameters of the netsh add sslcert command.

The actual solution

In an elevated command prompt enter the following command to list the current SSL bindings:

netsh http show sslcert

You’ll get something that looks suspiciously like the image below. Note that there may be more than one binding listed; note also that the details below are for a working web services site.

Output from netsh http show sslcert

You need to get some information for the SSL binding on port 32844, used by the SharePoint Web Services. The relevant section, as show above, will list the IP:Port as Mark and copy the the Application ID GUID. Interestingly, I’ve checked two different SharePoint 2010 installs on different servers and the Application ID is the same for both.

You also need to find the certificate hash (thumbprint) for the SharePoint Services Certificate. Load up MMC and add the certificate snapin, connecting to the Local Computer store. You should see a store named SharePoint with three certificates in, as per the image below:

Certificate console showing SharePoint store

Double-click the SharePoint Services certificate and select the Details tab. Scroll down and find the Thumbprint property and copy it’s contents to the clipboard.

Certificate properties showing Thumbprint

Paste the text into notepad and trim out the spaces before you use it in the commands below.

I removed the SSL binding first using the command below, although I’m not sure if this step is necessary:

netsh http delete sslcert ipport=0.0.0:32844

Once that’s done, enter the command below, using the thumbprint from your certificate and (if it’s different) the correct appid for your website.

netsh http add sslcert ipport=0.0.0:32844 certhash=<thumbprint> appid={4dc3e181-e14b-4a21-b022-59fc669b0914} certstorename=SharePoint

Finish off with another netsh http show sslcert to make sure the changes have been made, and then perform an iisreset, just to be sure.

The annoying bit

When you’ve done all this, don’t be fooled when you examine the bindings in IIS manager. If the certificate isn’t in the Personal store (i.e. IIS Manager doesn’t show it in the list) then the certificate is listed as Not Selected, which is very misleading. One to poke the guys in the IIS team about, I think.

@media 2009 Day 1 – Morning

It’s good to see familiar faces once again here at @media. This year’s conference is around the same size as the first one in 2005 and it has a strangely familial feeling. Nick’s here as a volunteer ‘@mediator’ so he was manning the desk as we registered.

A note at this point about the conference swag: aside from the very nice T-shirt, which strangely matches my normal style (Andy often refers to me as ‘Mister Taupe’), the conference bag is excellent! Made from coconut fibre, it hits all the marks for eco-friendliness, but it’s a very practical, messenger-style durable bag, and perfect for my Dell Mini, upon the keyboard of which I currently type. A bag I shall no doubt use a great deal in the future – no doubt the original aim. The whole look and feel of the conference this year is really good – sophisticated and earthy.


Andy Clarke opened the conference with a rousing session about changing working practices in the design process. It was interesting, because it reminded me of the more agile approach we take to software development. I also love the feel of Andy’s sessions – they have a very distinctive visual style and draw on lots of things I remember from my youth.

Simon Collinson followed with a great discussion of how his agency approach creative projects and some of the tools they use. I found it interesting that he disliked sprints so much, but on reflection, the creative process of web design is perhaps less naturally iterative than the software development projects for which we use Scrum. A few simple things struck me with the old ‘why didn’t I think of that’ and some elements that I can achieve for better interaction with our customers through innovative repurposing of existing tools that we already have and use.

Taking us up to lunch was Jon Hicks. I really got a lot out of his session. Whilst icon design is not something I do much, it was interesting to see the thought processes and hear about some of the pitfalls when icons don’t have the universal meaning you as a designer think they do.

So far then, really good. I love the fact that this year has the same small, friendly feel of the very first @media. May it long continue.

Places to eat in Seattle: Marcella’s Cookery

Tonight we ate in a place we’d seen recommended by Sara Ford in her blog: Marcella’s Cookery. A fantastic little New Orleans-style eatery run by the eponymous (and very friendly) Marcella and her husband, Anthony. The food was fabulous, well cooked and happily discussed by the chef himself. Between us we tried a number of dishes and all were excellent. Anthony (the chef) told us that he moved to Seattle after Hurricane Katrina and I think it’s Seattle’s gain – we had a great time and I can wholeheartedly recommend the place.