Skype Qik

Skype QikToday sees the culmination of over 6 months work for me personally, but slightly longer for the rest of the teams. I’m proud to be a part of not just another Skype client client, but a whole new Skype experience: Skype Qik (pronounced “quick”). Skype’s first app since Skype! The launch of the Skype for Xbox One was one of the most amazing experiences in my career to date; a day I’ll never forget. However, my heart belongs to mobile and to Windows Phone, so when I heard that we were working on a new cross-platform app experience for sharing video I was delighted to be asked to work on the project. The fact that I get to do it in sunny California is an added bonus! Today we’re launching on Windows Phone, Android and iOS simultaneously around the world, which is a fantastic achievement in the short time that we’ve been working on the project. Check out the blog post over on the Skype Big Blog and the web site: Put simply, Skype Qik is fast and easy sharing of rich video experiences in 1:1 and group conversations. In a little more detail, you sign in using your phone number, then you can share short videos with anyone in your address book To prevent your phone filling up with old content we clean videos you’ve watched that are two weeks old. If you don’t have a data connection, we’ll save you’re video and send it when you do. The other people in your conversation will receive a notification when you send them a new video. You can pre-record video replies (Qik Flicks) to send when you don’t want to record or something new (or can’t!). We deeply believe that user feedback is an important part of the growth and development of Skype Qik. We have a whole bunch of ideas of things that we could do with it and already have plans for the next version, but it’s what our users think that matters the most and so shape the direction that we take. So, share, chat, laugh, then head over to the Skype Community and let us know what you think and what you want. Qik.1 Qik.2 Qik.3 Note: Due to platform restrictions we can only access public address books, so numbers associated with apps like Skype and Facebook won’t be available in Skype Qik, sorry.

Multiline RegEx Replace in Visual Studio

I was just going through our codebase to update a lengthy copyright statement to a much shorter up to date version and found it tricky to match over multiple lines. I wanted to go from something like this:

// <copyright file="SomeFile.cs" company="Contoso">
// A whole bunch more text
// </copyright>

to this:

// © 2014 Contoso. All rights reserved.

After a little spelunking I eventually found that the following does just what I needed:
Find what: // <copyright file=".*"(.*n)+?.*</copyright>
Replace with: // © 2014 Contoso. All rights reserved.

Hope someone else finds this useful :)

Once more unto the breach, dear friends, once more

As regular readers will know, I’m clearly not one for settling down and the time has come yet again for major changes in the Lakin household. Today marks a major step forwards in our next move because my passport came back from the US Embassy with my L1-A visa stamp in it, so we’re officially able to make that move.

Back in April 2012, I blogged about “New Challenges” as I moved from working for the most awesome Robby Ingebretsen at Pixel Lab to Skype for Windows Phone in Stockholm. Then in August 2013 it was time to move onto to move “From Windows Phone to Xbox One” where I had a great time and was really proud to be part of the Xbox One launch last year. Arguably the most enjoyable day of my working career as we all unboxed our white ship gift consoles and started playing games in the office!

Well, the cycle is slightly shorter this time, but so is the description of what I’m doing. All I can do is say that it’s new, it’s part of Skype, but not the regular Skype client. I’m moving lock, stock and barrel out to the Californian sunshine to the Skype Palo Alto office to work on exciting new things and I can’t wait to be able to talk about the project publicly!

BETA: Piccolo

Piccolo.Beta.QRI’m about to start the beta for a new Windows Phone app that I’ve been working on. This is a first for me, I usually go straight to market, but this time I want to get feedback before I go live to ensure I hit the market with as good a product as possible.

UPDATE: The beta is now available at

What is Piccolo?

I don’t know about you, but every morning I go through the same process:

  1. Unlock my phone.
  2. Check to see what appointments I have in my personal and work calendars.
  3. Check the weather forecast for today.
  4. Check for new tweets on a Twitter list of people I follow (the ones that I really wouldn’t want to miss any tweets from).
  5. Check the news for the current headlines.
  6. Check Instagram for new images from the small list of people I follow.

This involves using five different apps and whilst I do love the Start screen on Windows Phone and the Live Tiles that these apps I use provide, they just don’t give me enough information without loading the app. So every morning I’m in and out of five different apps and then I can get on with my day. The focus on content not chrome means that I can get the information I want relatively quickly and without distraction, but that’s still focused time before I can get started.

Piccolo is my attempt to solve this problem by providing the information that you want, all in one app. I understand that different people care about different things, not everyone uses Twitter or Instagram and some people are happy to just look out the window to see what the weather is like, but other people are hooked on Facebook, tumblr or other services. So, I decided to use a “data provider” model which enables me to have a single infrastructure that handles the presentation of data and settings, and then each data provider is responsible for fetching and displaying it’s own data.

At the moment, I have built data providers for reading Appointments from the calendars registered on the device and I’ve also built a weather forecast provider that uses data from Needless to say, I have plans to implement plenty more data providers including Twitter, Facebook, news, and more, but I’m interested to know what data you want.

How can I get involved?

If you want to take part in the beta, just sign up to the beta mailing list and I’ll add you to the beta. As you use the beta, please add any bugs, feedback, comments or suggestions to the UserVoice forum over at

The first version is being ingested right now, so what are you waiting for?


Disabling Touch on a WebBrowser control

If you’re presenting content to the user with a WebBrowser control, but it’s not meant to be interacted with, then you will probably want to disable touch input to prevent the user from scrolling or zooming. Although setting IsEnabled or IsHitTestVisible to False can give you want you want, it’s also likely to mess with the appearance (a grey overlay). So, to work round this, use CSS in the source HTML like so:

<style type="text/css">
    html {
        overflow: hidden; /* Disable scrolling */
        -ms-content-zooming: none; /* Disable zooming */

APP: Markdown Notepad

Now available in the Store for Windows Phone 8 apps, my latest app is a simple notepad app that uses the Markdown format. Ingeniously called Markdown Notepad, this app builds on the Markdown features that were built into Visual Diary and extends it with note backup to the cloud. After a few false starts trying to use SkyDrive (a service which I love!) for the cloud backup feature I found that the SDK didn’t give me what I wanted, so I used Buddy instead. Whilst this meant that the service wasn’t quite as friction free as I’d have liked it to have been because I then had to create the user management (registration, login, forgotten password), the API was simple to use and I’ve been really happy. The Buddy team were really responsive and quick to fix the couple of bugs that I found. I’d be happy to share the service wrapper that I created and even consider turning the user management stuff into a reusable control if anyone is interested.

As always, your ratings and reviews are welcome in the Store, and you can give feedback at

Page01 Page02 Page03 Page04 Page05 Page06

Skype for Xbox One

Today sees the launch of the Xbox One around the world, which is another great landmark in my career. There’s plenty written about the road from Xbox 360 to Xbox One and there are plenty of reviews for you to read (my favourite is the Polygon review, which looks amazing in addition to being balanced, honest, and accurate), so I won’t jabber on about it for long. However, Xbox One brings to the living room not just gaming, but entertainment in general with HDMI pass-through for watching your TV through your Xbox, the amazing Skype client, and much more.

After a successful time with the Skype for Windows Phone team launching Skype on Windows Phone 8, I am totally stoked to be part of the team that has launch Skype for Xbox One and to be part of the launch of Xbox One in general and I’m really proud to have the “One Launch Team 2013″ watermark on my Xbox Live profile (which you can see in the image above). I think we’ve got an excellent launch product that the whole team are really proud of. As always, there’s plenty more to come!

We’d love to hear your thoughts and experiences over on the Skype Community.

P.S. If you want to see how cool Autozoom on Skype for Xbox One is, check out this video.

AdException using Microsoft Advertising SDK

When you’re developing Windows Phone apps using the Microsoft Advertising SDK, you may not see any ads when you were expecting to. This is likely to be accompanied by the following message in the Output window in Visual Studio:

An exception of type 'Microsoft.Advertising.Shared.AdException' occurred in Microsoft.Advertising.Mobile.DLL and wasn't handled before a managed/native boundary.

There’s a couple of things to check here:

  1. Make sure you have ID_CAP_PHONE_DIALER in your capabilities (I have no idea why the Ad SDK needs the capability!).
  2. If you’re running in the emulator and using actual Application and Ad Unit Ids, you won’t see any ads. You should use “test_client” and “Image480_80″ for testing (NOTE: the casing is important).
  3. If all else fails, add an event handler for the ErrorOccurred event on the AdControl to see what’s happening:
var ads = new AdControl;
  ads.ErrorOccurred += (o, e) =>

I’m sure this is fairly well covered elsewhere, so it’s more of a “note-to-self”.

From Windows Phone to Xbox One

Skype for Windows PhoneThe last time I wrote about New Challenges I’d been at Pixel Lab for 15 months. Well, it seems that 15 months is my new standard job duration because 15 months after starting at Microsoft working on Skype for Windows Phone, I’ve moved on again.

During my time on the Skype for Windows Phone I’ve worked on the initial release for Windows Phone 8 including background chat and calling and the numerous releases since then. We switched to a much shorter release cadence and have only skipped one release since. The app has gone from strength-to-strength including the significantly improved resume performance, much more reliable push (which I spent a lot of time working on) and there is much more greatness to come. The agile nature that the team works makes it hard to put your finger on individual things in the app that you have been responsible for, but needless to say, I’ve fixed a lot of bugs and been involved at all levels on the app. My most externally obvious contribution won’t be seen for another release yet, but I’m proud of what I’ve achieved and hope that users like it, too.

In December I was fortunate enough to take on a Senior Development Lead role within the team and was line manager for just over half of the development team. It’s been an honour and a privilege to work with them and the wider team and I wish them all the best for the future. Although I’m not actively working on the team any more, I am still a passionate Windows Phone user and will be keeping a close eye on the progress of the Skype app and the platform.

Xbox OneYesterday was my last day on the Windows Phone team and today is my first day on the Skype for Xbox One team. I’ve actually been sat amongst the team since my return to the UK, but have had very little opportunity to participate, but now there’s no holding me back :) I’ve got a console, a controller, and a screen on my desk and the source code on my laptop. The release is fast approaching and I’m really excited to be part of the team responsible for putting Skype on the best console!

Skype for Xbox dev writing Windows Phone apps in my own time