The blogs of Black Marble staff

Build Day 1 - HoloLens and a Q&A with Satya Nadella

So much happened on Day 1, need to split it into several posts!

In the Keynote, they announced that a small number of Build attendees would get to try out HoloLens, and we all had to apply to get our names.  I was delighted, amazed, and so so excited to be chosen! No one else I know at Build were chosen, so it was a real honour!  We select few had to go off to another location, sign a special release form and lock all our devices away so no secretly recording our experiences!

I got to try Skype for Business and they were monitoring our hand gestures - it was all very intriguing, but I couldn't have been more excited! Plus I got a special badge (picture to follow!) to wear all day :D


Day 1 - Q&A with Satya Nadella

There was so much going on throughout Day One of Build, but for me the best bit was the Q&A with Satya Nadella!!

My sister and I are here as students at Build, 2 out of only 100.  Plus, I am the youngest at 13 - most of them seem to be university students (like Caitlin).  And lots of them are Microsoft Student Partners (again, like Caitlin!).

At teatime on Day One, there was a special Q&A session for the students with Satya Nadella and Guggs.  It was really cool, a small room, and we got to ask Satya questions.  There was a lot about stuff for students worldwide, and software for universities, plus who did Satya prefer - Gandalf or Dumbledore!*

I was so excited when I got to ask Satya my question about programming in schools for children, as I'm 13, the issues at school level are different than older students.  He told me about his daughter, who is 13 too, and the kinds of things Microsoft are doing to help schools and encourage children like me.  It was awesome!

Plus there was a massive group selfie of Satya with all the students - Caitlin and I are in this picture but right on the edge at the left, and it was tweeted out by Guggs!  So cool :D Can you spot Satya?


*He went for Gandalf...

Build Day 1 - The Keynote, HoloLens, Edge and Satya Nadella!

It was an early start for the Day One Keynote at Build - but that was OK, thanks to jetlag, we were up at 5:30am anyway!

There was the usual crush for the Keynote - so many people keen to be present for the exciting announcements - so much more exciting in person than online! There was a real buzz in the hall, it was great to be part of it.

And the stream of amazing speakers and announcements meant information overload - from Satya Nadella's opening, to Mark Russinovich on Docker, and Scott Hanselman and his 3D Channel 9 guy!  Plus Alex Kippan, Joe Belfiore and Terry Myerson - it was a lot to take in, and I highly recommend you check it out the streaming on Channel 9 for yourself.

It was excellent to hear the direction Microsoft was taking with Windows 10, it is a great platform to develop for, and now it is so much more - who wouldn't want their phone to be like their PC? 

We were all on the Edge of our seats (groan) too for the Project Spartan naming announcement - Microsoft Edge is a cool name!

I know the room was very excited for all the cross-platform announcement, but for me, the standout section was HoloLens!  It is amazing, and there was an announcement that a select number of attendees would get to try it out! Such a mad rush for that! More news on that later...

Plus of course the announcement we will all be getting an HP Spectre x360 convertible Windows notebook was also very well received :D

Build Day 0 - Registration and out and about in San Francisco

After a long day of travel on the Monday, we spent Tuesday out and about exploring in San Francisco.  The weather was glorious - bright and sunny but cool with it!

Took time to do some shopping - we checked out the Microsoft store!

Niamh tried out Minecraft!

And then we went to register :)

We managed to fit in lots of shopping, before coming over all exhausted in the Cheesecake Factory! So looking forward to Day 1 of Build tomorrow :D


A Visual Studio Extension to create MSDeploy parameters.xml files

When you using MSdeploy you should create a parameters.xml file that exposes your web.config settings at the time of installation. This enables good deployment habits, build the product one and then set system specific values using deployment tools. The problem is that this parameters.xml file is a pain to write, it is a series of XML blocks that contain XPath to find the entries to replace, typo’s are easy to introduce.

A ripe candidate for automation, but I could not find a tool to do it, so I wrote one for Visual Studio 2013 and 2015. You can find the source on GitHub andthe actual VSIX package in the Visual Studio Gallery.

So what does it do?

Once it is installed, if you right click on a web.config file you will see a context menu option to generate a parameters.xml file, click it, if the file does not exist it will be generated and added to the current project. Entries will be made for all appSettings and any custom applicationSettings blocks found in the web.config. The actual web.config values will be replaced with __TAGS__ to be set via Release Management or your tool of choice.

So the web.config file

      <setting name="Directory1" serializeAs="String">
      <setting name="Directory2" serializeAs="String">
    <add key="APPSETTING1" value="123" />
    <add key="AppSetting2" value="456" />

it generates the parameters.xml

  <parameter name="APPSETTING1" description="Description for APPSETTING1" defaultvalue="__APPSETTING1__" tags="">
    <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='APPSETTING1']/@value" />

  <parameter name="AppSetting2" description="Description for AppSetting2" defaultvalue="__APPSETTING2__" tags="">
    <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='AppSetting2']/@value" />

  <parameter name="Directory1" description="Description for Directory1" defaultvalue="__DIRECTORY1__" tags="">
    <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/applicationSettings/Service.Properties.Settings/setting[@name='Directory1']/value/text()" />

  <parameter name="Directory2" description="Description for Directory2" defaultvalue="__DIRECTORY2__" tags="">
    <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/applicationSettings/Service.Properties.Settings/setting[@name='Directory2']/value/text()" />


If a parameters.xml file already exists then you are prompted first if you wish to replace it, if you say no, then you  are prompted if you wish to add any new entries in the web.config, or do nothing.

All the work is done via an XSL Transform, so if you need to transform extra settings just add to the embedded XSLT resource and rebuild the VSIX package.

So the tool won’t do everything, but should get you close to the file you need.

May is a busy time for events

Mid May is a busy time for me presenting-wise:

  • On the 12th/13th I am presenting at Techorama in Belgium
  • And on the 14th I will be presenting at a Microsoft/GreyMatter  event at Microsoft’s Reading office.

And after that there are also the Black Marble Re:Build and Re:Ignite events. I am sure I will be involved at those, but we have to wait for a couple of week until after Build and Ignite to find out what we will be talking about.

There are spaces I think at all these events, why not have a look.

Happy Earth Day!

Day 1052 in the House of Black Marble:

Not only is it Administrative Professionals Day, (hug an Admin Day), it’s also Earth Day – promoting environmental change for the better.

The first Earth Day was the 22nd April 1970, and is credited with launching the modern environmental movement, and even now, each year protests are held for cleaner air and to help save endangered animals. To find out more about how you can help environmental change please visit the Earth Day Network site. Founded by the organizers of the first Earth Day in 1970, Earth Day Network (EDN) promotes year-round environmental citizenship and action, and is a driving force behind environmental awareness around the world.

Not only that, but you’ll also find a neat quiz on Google today: Which Animal Are You?


We're off to Build in San Francisco!

We are getting very excited, as in less than two weeks we will be in San Francisco for //build! We attended before, back in 2013, and it was great fun.  Plus San Francisco is an amazing city, looking forward to be being back.

Keep reading our blog or follow Calicowind on Twitter for our thoughts on the conference.

After a few days living with a Microsoft Band…

I have worn a Polar s610 heart rate monitor as my watch for years (probably 15+), as I write it needs another battery swap, which means sending it to Polar, something I have done a couple of times in the past for servicing The batteries in the watch last 5 years or so, in the associated heart rate monitor strap maybe a bit more depending on usage.

The point is I am used to having a device that ‘can’ give heart rate information, it seems normal, but I do need to remember to put on the heart rate strap, something I would only usually do for a race or specific training set. Now don’t get me wrong having the s610 does not mean I am a talented athlete, but I do have good idea of my heart rate for any given sporting activity

So this week I got hold of a Microsoft Band, nice timing as my s610 needs that new battery, but how has the Band done?

Microsoft Band in Watch Mode

Whilst in the USA last year I had tried on other people’s Bands and felt them cumbersome, but mine is a small (previously I had only tried on large or mediums). Actually I find it little worse on the wrist than the s610. So tip here – it seems sizing is critical, especially if have spindly little wrists like me. Like compression sport wear, if in doubt err to a smaller size.

Beyond being a watch, I have been using it to track my runs and cycling and the HR seems accurate, at least the numbers are within a few beats of what I would expect on the s610, and it is so much easier than remembering the monitor strap for my Polar. It is great that it gets so much information so easily, and that it  can push it onto other services as I want without me having to play with modem style audio based Polar SonicLink (I did say my s610 is old)

But of course I do have some issues:

  • The obvious one is battery life. I am seeing 6 to 48 hours depending on how much GPS I used. For the first two days it was great, when I used it as a watch, no charging needed. However, yesterday I did a a 5K Parkrun and a 40K bike ride, so after less than 3 hours of GPS, HR and screen on etc. it needed a charge. I can live with this I think, I do need to make sure the screen is off and see how that helps. I don’t want it dying on a half day or so cycle ride.
  • Turns out I glance at my watch a lot – as by default the screen is off I have to press button to see the time – it took me back to the LED watches of the 70s. Again this comes back to battery life. I know I can leave the screen on, but it just needs to much power.
  • When running the splits are in km, it would be nice to have my own trigger e.g laps.  For example on my local Parkrun we do 3 laps, and I know my target splits. On the Polar I have a big red button to press for each lap to get a lap time,  on the Band I have to do maths in my head. Now there might be a way to do this, but I have not found it yet.
  • Finally my major issue is it is not waterproof so can’t wear it to swim, so not useful in a Triathlon as it is as something else to have to put on in T1. Also I do use the time splits in the pool on my S610 when training, again counting laps not KM (I don’t swim that far!). Not sure how they would make it fully waterproof, but it would be a great feature.

So first thoughts, loads better than I expected, all my niggles are minors and are more to do with current battery technology than the device itself. For the price, £169 at Amazon UK for pre-order, an interesting alternative to Garmin or Polar. Certainly got some interest at the 10K race I did this morning.