Rangers Sabbatical, part 2 - Pants on the floor, and shoes in the basket
For more in this series, please visit the series index.
I write to you today from the back of a bus in Vancouver, Canada! It’s 7h20 in the morning here, although my clock and body are telling it is 17h26. This is the first of two busses and a train I am currently using to get to the Microsoft offices. This is a far cry from my usual sitting in Johannesburg, South Africa traffic! What is going on?
Last year I joined the Rangers projects and as part of that (an unexpected and enjoyable part) is a three week trip to Vancouver, Canada and Redmond, USA. The purpose of this trip was to finish, polish and deliver the TFS Integration Platform adapters I have been working on. At the same time this gave me the opportunity to see what life is like at Microsoft and more broadly in North America!
I had never heard of the shoe bomber before this trip, but this ass has ruined flying to America for the rest of the world. That is my belief after going through airport security. While at OR Tambo Airport (or Johannesburg International), I have never had to take my shoes or belt off for any flights to the countries in Africa I have been. However being an American inbound flight there was an additional check before the flight which was the first of the very many times I would take my shoes off.
The trip itself was from Jo’burg to Atlanta, USA (red line below) then a connecting flight from their to Seattle, USA (blue line) and then finally a bus to Vancouver, Canada (yellow line).
Map from http://www.oera.net/How2/TextureMaps2.htm and pins and lines added by me (not accurately)
The first flight was interesting mostly for the in-flight entertainment which was brilliant where I was able to watch a bunch of classic movies on the flight! Post the Christmas bomb scare there has been a heightened security which meant I missed my connecting flight to Seattle. This gave me the first chance I got to experience the service driven culture that many people leave South Africa for. Delta Airlines were great and got me on the next flight!
This flight to Seattle was interesting as it was the first time I could try American style Coke, aka Coke with corn syrup in place of sugar, that the cast of Major Nelson’s Podcast have spoken about before. I completely understand now why they are sneaking Coke over the borders because it really is just too sweet.
Later, at SeaTac airport, I was able grab a Cherry Coke which we do not get in South Africa, and that was much better!
However the most interesting part for me was the bus ride from Seattle to Vancouver. During this ride I got to see the Space Needle which thought would be bigger and also saw the huge harbour that is Seattle. For some reason I had never thought of Seattle as harbour town because it is inland a bit, but the fjords and rivers that run in this part of the world allow it to be a very impressive one. This was also the first chance I got to check my email in over a day as the bus had free WiFi!
Oddly enough crossing into Canada didn’t require my shoes to come off, so I guess it’s only America that is at war with the people who conceal bombs in shoes and underwear. Finally after 28 hours of travelling (16 hr, Flight to Atlanta; 3 hr, Getting through customs and waiting for flight; 5 hr, Flight to Seattle; 4 hr, Bus to Vancouver) I finally met Willy-Peter at the bus stop in a very rainy Vancouver!
Rangers Sabbatical, part 1 - Prologue
For more in this series, please visit the series index.
Welcome to the first part of a series of posts which I wrote during and after my Rangers sabbatical. In future posts I will talk about the trip in detail, but this post will just cover the history of the trip and what all these odd terms I may use mean.
The Rangers
The rangers are NOT related to any of the following:
A football team | A TV show | A military group | An ice hockey team |
The Rangers are group of individuals which is made up of internal Microsoft staff, mostly from MCS (Microsoft Consulting Services); MVP’s (external people awarded the Microsoft Most Valuable Professional award) and key community leads.
The Rangers are linked to a specific Microsoft product, in my case it is VSTS (Visual Studio Team System), and not all products have a Rangers team.
The goal of Rangers is to fill in the gaps in products with custom solutions and guidance – so that may include information on how to run TFS (Team Foundation Server) on a virtual machine, quick reference posters for the product, or additional tools.
This is different from the MVP program, where you are awarded a MVP for work you have done because you become a Ranger for the work you will do and there are specific goals, projects and guidelines for the work.
A more in depth view of the Rangers team and the structure can be found at in the post on VSTS Rangers Positioning Rangers and Projects.
Normal Process
The normal process for all Rangers work, even those who work for Microsoft, is that this is an extra effort team. Meaning that you have your day-to-day job and this is done in evenings, weekends or on bus rides. This really becomes a labour of love for the product.
Me working on a bus during the sabbatical. Picture from Willy-Peter Schaub
Sabbatical
The sabbatical is a new idea to the Rangers, where an external person (MVP or community member) takes leave from their day-to-day and spends time working directly with the product teams. For VSTS this means that you would need to be in one or more locations, since the VSTS/VS/Rangers team is spread out between Vancouver, Canada; Seattle, Washington, USA; Raleigh, North Carolina, USA; Hyderabad, India and China.
Map from http://www.oera.net/How2/TextureMaps2.htm and pins added by me (not accurately)
This idea is so new to the Rangers that I am the first person to take part in it and me this meant I would spend two weeks in Vancouver and a week in Seattle.
NDA
While this trip was not a business trip for me, it was business for Microsoft and I got access to a lot of info, people, places and experiences which I cannot talk about because of the NDA I have with Microsoft. So if you ask yourself why this seems so little for the amount of time, part of it is that the NDA doesn’t let me and the second part is that the technical aspects of the work will be covered in a separate series.
Rangers Sabbatical – Series Index
This post contains the list of posts in the Rangers Sabbatical series.
How I Build Presentations, appendix 2: Gadgets
For the rest in the posts in this series please see the series index.
Part of presenting a good presentation is using the right tool for the job. Often that may mean PowerPoint to present content, or demos to help get the point across. Sometimes it means building an entire slide show system out of the technology you are showing off to (as I did with jQuery). In this post I will open my bag of gadgets I tend to use in my presentations.
Now first off, I do not use every gadget in every presentation (right tool for the job again), but these are my favourites which I use often.
Logitech V450 Laser Wireless Mouse
I have a fairly standard wireless mouse from Logitech which is actually a great tool for a presenter, because you can use it to move forward through slides like a slide clicker device from around the room – no more being tied to the table. I can use the mouse wheel to go backwards too. While there are more dedicated mice for this job, a simple wireless does it just fine.
Windows 7
Windows 7 is my choice for presenting because of a number of great features it has specifically for presenters, which are all available via hot-keys!
Visual Studio 2010
I know it’s still in beta, but it really has replaced VS2008 as my IDE for demos for a few reasons:
- The IDE is now based on WPF, so it looks much clearer when projected on screen.
- The built in text zoom feature means I can zoom in and out of code easily.
- Multi-targeting of the framework means that my .NET 2.0, 3.0, 3.5 and 4.0 demos can all work in a single IDE.
- The extension support is so much better than the old add-in model, and being able to drag images into code or have twitter integration in the IDE is a great plus.
SysInternals ZoomIt
SysInternals has a tool called ZoomIt which has been a stable of my demos for ages as it contains three powerful features:
- The ability to zoom in – originally just static but in newer versions it also has a live zoom like Windows 7 has.
- The ability to draw on the screen – So often I want to highlight code or some text on the screen and ZoomIt makes my screen a canvas with arrows, text and free drawing. This can be combined with the zoom feature.
- Count down- You can fire up a full screen count down, which not only scares people sitting next to me on a plane but also allows me to have a timer for when a session will start. This is most useful in my full day (or longer) courses where there are smoke or lunch breaks.
ZoomIt Screenshot is taken from Ben Craigo’s blog
Rule 18
A self built application for managing text snippets for usage during demos.
The core idea is that while in a demo, I often need to type code on the screen however this is error prone and time consuming, so what else can I do? Visual Studio does support putting text in the toolbox, however this has failed on me in the past, so I do not trust it. Visual Studio also supports snippets which are a bit of overkill to setup, especially if I have a number of back to back sessions. Also what about outside Visual Studio? What are my options in PowerShell for instance?
For a while I have used a simple text file and copy/paste which is great since it means I can include it in the slide deck, I won’t forget about it, and it works everywhere. Yet it is not elegant, and remember what I said about changes on the screen – flipping to notepad the whole time is very distracting.
So I built a Rule 18 which is a simple application, where you put snippets of text into it, the application will automatically assign each snippet a keyboard shortcut and when you press that shortcut the snippet is copied to the Windows clipboard – ready to be pasted into any application you choose to use. Now you just have to remember the shortcut keys (which is why they are in my demo scripts)!
Rule 18 also stores the data as XML which means if I do not have the app or it is crashing, I can fall back to the notepad way of doing things!
How I Build Presentations, appendix 1: Simulate a type writer with PowerPoint
For the rest in the posts in this series please see the series index.
So the first of the appendixes of this series is an idea I had for the presentation: animate the content of the code slides so it looks like it is being typed. This never made it into the final presentation because each slide change (i.e. changing from one slide to another) causes your audience to lose focus on you a look at the screen. Animation is a powerful tool to help get your point across but you should not be just animating for wow factor, because then the audience will just watch the slides and ignore you.
Anyway for those who can find a good use of this effect, here is how to do recreate it. Note I am using PowerPoint 2010 Beta 2, but this should work in previous versions too.
The above image shows what the slide looks like at the start. The white block is just a normal text block with some text in it. I have turned on the animation pane as I will need it later. First select the text block, and choose the Appear animation effect.
The animation pane will now have each line as an appear, set to show individually on click. So click one will show the white block, click two will show “static void Main()” etc… Not really what we want… yet.
First I removed the first item (the Content Place Holder) as I want the white block there from the start, then I select all the remaining animations, right click, and select Effect Options…
In the options dialog I change the Animate text setting from All at once to By letter and I change the delay per letter (hidden behind the drop down above) to 0.25 as that seems to be a better speed for this and finally click OK.
Next, in the Animation Pane, I select from items two to the last item and right click again and change to Start After Previous which means I do not need to click for each line to appear. That is it, now you have a decent typing effect in PowerPoint.
I recorded a video of it which you can view by clicking here.
I <3 Nokia
The management at Nokia have scored a big point today with the big announcement in the UK yesterday where they have made Nokia Turn-by-turn FREE. This has solved the headache of paying Nokia for convenience and also showed Nokia is aware and dealing of the moves of the big players like Google.
How I Build Presentations, day 6: Dry runs
For the rest in the posts in this series please see the series index.
So today the visible changes to the slides are minor, the work really revolves around finishing up the demo script and minor cleanup. Today is maybe the most important day of work for a presentation as it is the day I do my first set of dry runs! Dry runs are vital because if you want to be successful you need to practise, practise and practise more.
All this practise is part of preventing the dreaded demo crash! Interestingly the stats on session scores show that demo crashes are one of the biggest causes of low speaker scores so you want to make sure you do what ever you can to prepare for them. On the right is a tweet that Anu said about no matter how hard you plan to avoid crashes they can catch you. Now it may look unprofessional to have a crash, but in Anu’s case she shows more professionalism because she had a backup in case her demo crashed: the live bits and so she could continue with her demo.
So what do I do for my preparations to make sure my presentations look good and do not crash?
Demo bits
If you look at my previous parts in this series I have fully completed demo, a demo base, the parts I need for demo in an XML file and in the notes of my PowerPoint. All that is just for the code for my demo and so I am covered for a lot of the issues which can go wrong.
Backups
Backups are important, so all my slides and demo’s are backed up to “the cloud”, so that even if I have a serious hardware failure I can pull the bits down and get up and running.
Connections
A lot of demo’s are prepared by sitting at a desk somewhere, normally connected to the internet with a specific configuration setup. However that is seldom where you present them – normally you present them at an event where you may or may not have internet, may or may not have network (wired or wireless) connectivity or even power. Why is that important? Because the change of environment can mean a settings change that crashes demos.
Two examples of this are power and networks. Power is an interesting for laptops since the performance could be changed if the OS detects there is no power – so your demo’s or videos may run slower than expected. In fact for my demo’s I have changed the upper limit from 100 000 to 10 000 as it runs too slowly when not on power.
Network connectivity is also something to check because if you are using a virtual machine then not having network connections could mean that the network on the VM is disconnect and then you cannot connect to the services running on it.
The tip her is to check that your demo’s still work when you not at your desk.
Projectors
Projectors are very different to a monitor and doing a demo on them is MUCH different to how it is when looking at your monitor. The key differences are I want to highlight are resolution, contrast, screen mode and layout.
Resolution
Projectors seem to come out of the stone age as getting above a resolution of 1024x768 is VERY VERY difficult. For me this has been a problem in the past when it came to Visual Studio. With all it’s toolbars and chrome, the code area is so small at that resolution it made it hard to demo. Knowing this earlier means making sure you get your configuration right and your demo will better.
Tip: Alt+Shift+Enter will full screen your code or designer window in Visual Studio – very useful to get the gunk out the way. If you are using VS2010 then you can also undock and maximize the window.
Contrast
One of the worst demo’s at TechEd ever unfortunately was one of mine. I had a great demo planned – beautiful application which was styled in a white, grey and blue theme. When projected to a movie sized screen at TechEd though, the projector was not able to get enough difference between the colours. So the application just looked like a big white screen with shadows. What I had failed to do was test that demo on a projector ahead of the time, else I would have seen the issue and would have been able to fix it.
Screen Mode
When you are doing a demo at your desk you can see the screen and have control over it – when using a projector you are either in duplication mode, which gives you the same feeling or in extended mode where you have to juggle between the projector and you machine.
I once forgot to print my notes (yes, I keep a printed copy of my slide and notes, so that I have yet another fall back) before a dry run with some people. Being still new with the presentation I hadn’t memorised the demo’s which meant I needed to read my demo script on my screen and have my demo on another one. This meant connecting to the projector in extended mode. Well it was a nightmare, I struggle with the difference in resolutions, popup’s occurring on the wrong screen and neck hurt from having to look backwards and forwards the whole time.
So when possible run in duplication mode and make sure your demo’s work well then too.
Layout
Once again when you are in front of your screen and about 30cm away you can see everything easily. However when you are looking at it projected 15m away with 20 people in front of you – where things are on the actual screen becomes important. Easy tips are to avoid the very bottom since it will likely be hidden by heads and avoid the far left and right as some projectors/screens may cut off those portions of the screen. Once again testing with a real projector helps with this scenario.
Tip: I have also started using 16:9 aspect ratio for my slide decks over the traditional 4:3 aspect ratio. This helps the layout because when a slide deck with a 16:9 aspect ratio is projected by a projector with a 4:3 aspect ratio (which most projectors are) the bottom is banded out. This is the same as when you watch a wide screen movie on a normal TV, those blank bands at the top and bottom are added to compensate. That automatically handles making sure you don’t put things too low on the physical screen.
Slide deck at the end of day 6
How I Build Presentations, day 5: Animation and Demo Script
For the rest in the posts in this series please see the series index.
Today was a very busy day which started off with touching up the slide deck with a little more content and adding touches of animation to the slides. One thing I have learnt is that every time a change happens on screen, be it slide change or animation, the audience looks at that and since people can’t multi-task, they stop listening to you. So while animations and transitions may look flashy they must be used with care or you risk having long pauses or the audience ignoring you.
For this presentation there are a few slides where I want to take the audience step by step through a process as I narrate it to them, however for the rest of the slides there is no animations. Often on very wordy slides people will bring in the content, line by line so that the audience doesn’t get ahead of the speaker. For me I have text, I dump the entire text on the screen at once, which may seem odd since everyone will start reading it. However I would rather have a 5sec pause between slides while people digest the new slide over ten 1sec pauses during the slide as they switch between me and the new text that just appeared courtesy of some animation.
Slide deck at the end of day 5
The next stage is to get my demo script written. To do this I take the demo shell and step by step write out exactly what should occur.
Part of the demo script for one of the demo’s
Normally I do not need this guide, as I will have practised a the demo’s few times and will have it almost memorised, but it is worth creating for five reasons:
- If I need to present in the future, I do not need to try and remember what I did. I just read the script, practise and I am ready to go.
- When I hand out the presentation, people who look over it can read the script and recreate the demo’s themselves if they choose.
- I use a tool to help me with my text (which I will discuss in a future blog post) but if something goes wrong with that tool then the code I need is backed up in the demo script.
- In preparing the script I need to run through my demo’s, this gives me my first chance to catch bugs and resolve issues in the demo’s before I get to my dry runs!
- Finally it also acts as a sounding board for the demo’s themselves. For example during creation of the script today, I took one demo and split it into two demo’s because it was just getting too much to do all at once.
How I Build Presentations, day 4: Slides
For the rest in the posts in this series please see the series index.
What a day, when I said yesterday that I could feel it coming together, I did not expect that it would be so fast and now at the end of day 4 the fundamental slides are done! Changes to point out for those who are watching the slides evolve:
- The slides I mentioned on day 2 that were in danger of going away, are gone.
- I moved the demo’s after the explanations – I have done this because this is such a complicated topic and so I need to do the explaining upfront so that I do not lose people in the demo. Normally I prefer the opposite as it adds more excitement to the presentation.
- Another demo has been added – the slide on debugging I just can’t explain well enough in words so that will be a demo now.
- Added 5 slides with code in, these are a great alternatives to demo’s because they don’t break (like demo’s can), can keep the session moving forward and not getting bogged down in too many demos and animation can help illustrate the code. I am not using animation here but it is an option. The risk of these code slides is that if you only have them, it may bore the audience. For them I am using them to illustrate alternatives to the demo I will do earlier in the presentation, this seem to be the nice trade off between entertaining demos and getting through it all.
- References is hidden now, if people need to see it they can ask or download the slides. No one will be able to copy that many references down during a presentation anyway.
Slides at the end of day 4
We can rebuild him, we have the technology - Rangers Factory Ships!
I am very excited that at midnight we shipped the latest Rangers solution the VM Factory!
What is the Visual Studio 2010 and Team Foundation Server 2010 VM Factory?
The purpose of this project is to build prescriptive guidance around the virtualization of the Visual Studio 2010 and guidance for full automation of the creation of virtual machines. The goal is to help users with the installation and configuration of virtualized environments with least effort and maximum automation.
You can download it from Codeplex
What is in the package?
The download package consists of two ZIP package downloads:- Rangers Virtualization Guidance
- Focused guidance on creating a Rangers base image manually and introduction of PowerShell scripts to automate many of the configuration tasks.
- Virtualization guidance looking at the “why” and “how” to use virtualization for Team Foundation Server and Visual Studio, including planning, pre-requisite software, use of non-Microsoft virtualization technologies and introducing use case scenarios.
- Rangers Factory Package and Guidance
- Reference walk-through documentation on how to install, configure and support a Microsoft internal or an external factory to automate the installation of Team Foundation Server and Visual Studio environments.
- Microsoft Deployment Toolkit metadata and PowerShell scripts used to create a Rangers factory.
The two little secrets of this is that the guidance, while targeting specific products on VM’s can actually be used as a base for non-VM scenarios and as since products like TFS use a lot of core services, for example SQL, there is a lot that can be used to build on for working with other products. The other secret is that a lot of the PowerShell scripts here are my own work, so I am very excited to see them get used and get some feedback on them!