Tech Ready 6 – MSFT only

Thu, January 31, 2008, 02:27 PM under Events
I attended Tech Ready 3 in July 2006, but I missed the two in-between so I will be going back to Seattle for TechReady 6 (the internal week-long Microsoft conference) in 2-3 weeks.

This time I will also be presenting a session at TR6 so, if for whatever reason you get bored of listening to the product teams, come to my session (DEV353) for some field-to-field demos :-)

I am also looking forward to meeting with people I know electronically but not in-person yet, and to catching up with older acquaintances. If that sounds like you and you are free between Friday 8 and Saturday 16 February please ping me!

Screencasts: Watch Them, Love Them and What's Wrong With Videos

Wed, January 30, 2008, 02:52 PM under Random
Why is it that 50% of the people watch the screencasts and are asking for more and the other half don't (see links from Q8 and the comments)? In my view, everybody should watch screencasts (to be clear, I mean as a complementary activity to reading articles). If you haven't ever watched one, there are some links here (plus check out the UK MSDN page).

"What is so great about screencasts anyway?"
Many things:
a) Following a document step-by-step to achieve a goal is fine, but what about when you don't have the right stuff installed? It is many times that I have received emails from people saying words to the effect: "Having watched your video I am now downloading XYZ to give it a try!". Those people would not have gotten the same enthusiastic experience from reading a document. E.g. when Vista wasn't so widely available, this Sidebar Gadgets video could not have had the same effect in written form.

b) Even if you have the right stuff installed, what is it that would motivate you to invest time in following some steps to achieve a goal, i.e. how do you know it is going to be worth it? Instead you watch a short video and it is easy to decide if you want to go ahead and explore this technology further or not, e.g. how many desktop developers own a Windows Mobile phone and are aware of the dedicated managed API (not talking about the Compact Framework here)?

c) Let's face it, a picture is worth 1000 words which makes a video worth numberOfFrames*1000 words. I explained the LINQ-to-objects relationship with the language features on this blog and received good feedback. I described it in a video and I received outstanding feedback. How would you capture the effect of my LINQ video in written form?

d) It is not just about the topic being demonstrated, there are side learnings. Whenever I watch someone else do a screencast I pick up productivity/usability tips (e.g. some new ones in VS2008) about the way the presenter uses the tools or talks about certain concepts that is different to my mileage. You just don't get that in a written piece of text. Screencasts bring a demo at your desk, which usually you pay money for to see at a conference!

e) I was going to add a few more reasons here but they are weaker and I don't want to dilute the main points above. Feel free to add your own reasons why you like or hate screencasts in the comments below.

Now, let me tell you why I find videos sometimes lacking: Non-scanability. In the age of information overload, I usually scan pieces of text for the interesting points and probably abandon 80% of the web pages that I randomly visit within seconds. You cannot do that with videos today – once you've started watching it is hard to scan through without missing huge chunks of content. This is the reason that I seldom even attempt to watch videos over 30' unless I know for sure that I am interested in the topic in a big way! Table of contents with timings help slightly but everything I have seen that tried to address the problem is inadequate. My attempt to make it less painful is to keep screencasts at 15' long because then you are investing a reasonable amount of time and you can probably tell if it is worth to continue to watch after 3'. To that extent, I try to have a quick intro telling you what's coming. I also offer the additional download option which means that clicking forward/backwards to scan will be very fast as opposed to the streaming media (craze that is taking over the world) that largely relies on sequential viewing...

The larger question of how do we make long videos scanable remains. I think there is an opportunity here for some clever software: I point this piece of software to a wmv file and it instantly produces a complete transcript from the audio and it highlights every word as the video continues to play. No matter what word I click on in the transcript, the video follows suit by synchronising itself. Now I can watch and listen to the video and concurrently quickly scan for words/phrases of interest so that I can jump directly to that piece with a single click. Anyone building such software or does it even exist already? I can be a beta tester ;-)

Native Threading APIs in Windows Server 2008

Tue, January 29, 2008, 11:35 AM under Windows | Vista | WindowsServer2008
On 3 recent events I spent 20' talking about the new native threading APIs in Windows Vista and Windows Server 2008. Here are resources as promised.

1. Thread Pool – re-architected native ThreadPool that amongst other things allows multiple pools per process.

2. One-Time Initialization – think singletons for the native world with an interesting option of asynchronous initialization.

3. Slim Reader/Writer Lock (SRW) – finally a reader writer lock out of the box for native devs.

4. Condition Variables – addresses scenarios such as the classic producer/consumer pattern in a more efficient way than previous techniques.

5. Thread Ordering Service (TOS) – an interesting service that I cannot find a compelling use case for. If you've got one, let me know!

6. Wait Chain Traversal (WCT) – aids in programmatically debugging deadlocks and hangs.

The links above point to the MSDN documentation where you can click further to read the API descriptions and click further to see code examples. In addition, the MSDN Magazine has 3 articles that describe all of the above (except for the TOS):
- June 2007 – Describes Condition vars, SRW, and One-Time Init. Don't let the title fool you, these are even more applicable with the release of Windows Server 2008.
- July 2007 – Describes usage of the WCT from unsafe C# code to create a utility.
- October 2007 – Describes the New Thread Pool APIs.

Lastly, I have created some slides for the above. Nothing fancy, just very boring bullets with lots of text and API signatures with nothing additional than what you can find in the links above. Their only use is if you need to talk about this topic and cannot be bothered to create your own from scratch, you can use mine as a starting point. See slides 8-22 inclusive in this deck.

More on User Groups

Tue, January 29, 2008, 06:55 AM under Events
Little over a month ago I posted: How To Start a User Group. In addition to the list I linked to there, Dave posted his own thoughts and also Chris followed with his tips and tricks. Both are definitely worth a read. Any additional thoughts welcome (it is getting much tougher to complement those 3 though!).

In a somewhat related story, Nick complains how it is unacceptable for speakers to cancel presentations at user groups, especially at the last minute. I agree, unless there is a health issue, it is very uncool. Touch wood, I've never ever had to do that.

In other news, if you are in the UK, we now list all User Group events on the same MSDN page where we list Microsoft events – James explains how.

As always, if you want to start a user group in the UK let me know. Especially if it is one down here in Brighton & Hove where I live ;-)

Do you use "Presenter view" in PowerPoint

Mon, January 28, 2008, 04:32 PM under AboutPresenting
I recently received (as a gift) the "Microsoft Office Powerpoint 2007 Step-by-step". I was scanning thought it to see if I am missing any tricks and came across page 232 where it advises on how to use Presenter view when using two monitors. That reminded me of how I had evaluated and discarded this feature before the 2007 version so, after looking at it again, my reasons still holds true:

3. Presentation View does not show animations. So when I go to a slide that has animations, on my screen I will see the entire slide while the audience is seeing a different one.
- I don't like looking back on the large screen because I find it distracting.
- I like to see on my screen what my audience is seeing.
- Clicking (on my clicker/mouse/keyboard) in order for the animation to appear on the large screen while nothing happens on my screen makes me uncomfortable.

2. Presentation view is useful for slide notes, but I'd rather not read anything while the audience is expecting me to be speaking instead.

1. It encourages the presenter to be in front of the laptop screen for the duration of the presentation, which whilst the only option in some venues, is not my preferred place to be.

There you have it, instead of telling you what features I do use in powerpoint, I am sharing the one that I don't... oh well, maybe you have some powerpoint tips to share?

Blog survey results

Sun, January 27, 2008, 02:06 PM under Blogging
Last Sunday I posted a survey for my blog (followed by two others, identical but hosted on different sites). A week later I thought you might want to know what the results are from the 300 responses (which as I hinted wasn't straightforward to consolidate, hence the delay). Below are the questions, summary of responses and some interspersed commentary on some of my plans.

Q1. Which version(s) of Visual Studio do you mostly use? – Multiple answers allowed.
The vast majority of votes went to VS2005 (67%) and VS2008 (62%). The percentages for the other answers are VS6orOlder (7%), VS.NET2002 (0%, 1 out of 300), VS.NET 2003 (10%) and some people stated: "Eclipse for Linux, MonoDevelop, Rhapsody, Vim, Macromedia". Note that most responses selected VS2005 in addition to anything else which suggests they are using the older IDEs for older projects rather than using them exclusively. FYI I do not plan on focusing on other IDEs other than VS2008 (inc. any service packs) and of course Visual Studio vNext as soon as a public CTP VPC becomes available.

Q2. Which language(s) do you predominantly program in? – Multiple answers allowed.
The most popular language by far was C# (84%). Even people checking other languages would do it in addition to checking C# as their answer! The results for the other languages are: C++ (15%), VB6 (6%), VB.NET (22%) and some people additionally entered: "Powershell, COBOL, Java, Ruby, ColdFusion, Classic ASP, PHP, Perl, Fortran, javascript". FYI my samples are mostly in C#, but I do throw in VB occasionally and in fact have covered many VB-specific features that would not have been of interest to C# devs. I will continue to blog for both managed developer types and in the future may expand on more dynamic and functional languages supported on the .NET platform.

Q3. What type of .NET applications do you primarily focus on? – Multiple answers allowed.
Looking at the results, it is hard to deduce any info because almost everybody checked more than two answers and many areas score well. I think the conclusion is that few people build just one type of .NET solution so there is no point narrowing down the focus – and I don't plan to. FYI, here are the percentages: Client (64%), Web (50%), Server (24%), Mobile (17%), Rich Web (10%), Office (6%), Embedded (6%) and additional entries were: "SharePoint, libraries, prototypes not systems, not .NET, classic ASP, client-side SDK, my own n-tier environment, Extension to Visual Studio, Smart client, Plugins, Microsoft CRM, straight forward Windows cross platform apps, .NET 2 WebServices".

Q4. What OS do you run on your development machine? – Multiple answers allowed.
Unsurprisingly Windows XP (62%) and Windows Vista (53%) came up top followed by Windows Server 2003 (11%) and then Windows Server 2008 (2%). Additionally some of you wrote: "Linux, Mac OS X, Windows 2000 server".

Q5. Do you have an active blog (more than 5 posts per month)?
78% of my readers do not have a blog. From the 22% that do, not everybody left their URL but I have visited the ones that did. It was interesting that I did not know about some of these at all, which means that they never linked to my blog (because I know who links here and always check out a blog that does). Interesting fact (to me)...

Q6. Do you currently live in the UK most of your time?
I did open the 3 separate surveys at different timezones and over multiple days to give everyone a chance and the result is that under half of the respondents live in the UK (39%). I will continue to talk about UK-specific news (e.g. events) and I will continue to make that clear in the title of the blog posts so the other 61% can easily ignore.

Q7. Besides reading my blog, do you also watch my screencasts?
This was a big surprise to me. Only 50% watch the screencasts I produce (I was expecting it to be closer to 100%). I will be producing many more of these and will make sure people reading the blog are aware by pointing to them. Screencasts are a quality medium and I have tons of positive feedback about them in my inbox. I can only deduce (wish I had a specific question on the survey) that people who said "No" do not watch screencasts in general – you guys are MISSING OUT. More on this topic in a future blog post, in the meantime the screencasts link is always on the left.

Q8. What would you like my blog to focus on?
This was the question where you could enter whatever you wanted in 4 optional textboxes: Continue to do (137 suggestions), Stop doing (30 suggestions), Start doing (54 suggestions) and Other feedback (30 suggestions). The previous hyperlinks take you to a text file for each that includes ALL the verbatim (stripping out anything that could identify individuals). There are definitely some action items I have taken from your feedback (e.g. this) and others that I will, but the grand theme here (explicitly and implicitly) is "keep doing what you are doing" – I love it, thank you, stay tuned!

How To Run Surveys and Which Survey Site Is Best

Sat, January 26, 2008, 09:09 PM under Links
In my quest to get some feedback I setup 3 surveys for my subscribers with identical questions on three different sites: surveymonkey, zoomerang and questionpro (I also signed up and test drove for a bit wufoo but it wouldn't let me setup the questions the way I wanted them so I gave up). I thought I'd share my learnings here so you can use the knowledge if you setup a survey for your own site/blog or even for your team at work or your customers. At the bottom I also have some generic tips.

Remember my disclaimer.

All 3 vendors offer a free version of their paid for services. The main limitation of the free service on all sites is that they only allow 100 responses per survey.

In all cases you sign up by providing your email and then you receive the login info. Surveymonkey sent me one text-only email with login details and that was the last I heard from them. The other 2 sent me html emails and also decided to sing me up to their newsletter (which I promptly unsubscribed from). Surveymonkey gives you a URL that points directly to the survey; the other two force a landing page (where they have their adverts) before allowing the survey taker to proceed.

Zoomerang has a funky easy to use user interface and with minimal clicks you can setup the survey and ditto for browsing the results (both overall and individual). There are 2 reasons I will not be using their free service again. Not only you cannot download the reports but they will only hold them on their servers for 10 days since the launch time of the report. More importantly, they will not notify you when the 100 allowed responses are complete and instead let people fill in your survey beyond that and if you want to see the additional completes you have to pay (I noticed this at some point and had to manually close the survey)!

QuestionPro has a horrible unintuitive user interface IMO. In addition, it takes far too many clicks and slow response times to setup the survey and ditto for reading the reports. Its login timeout is also too short so it added additional clicks to my user experience every time I refreshed the reports page. The main advantage it has is that even the free version allows you to get csv/xls reports to your own machine, whereas the other 2 will not let you do that unless you pay. Even generating the report involved making a few clicks and then receiving an email with an attachment (instead of just right click->save as). Beware that they will not notify you when the response limit reaches 100 and if there are more than 100 responses they will not show you *any* reports until you upgrade!

Surveymonkey just works. Best experience for setting up, quickest to use for browsing reports, keeps you logged in with no apparent timeouts and smoother experience altogether both for me and for the people taking the survey. None of the issues I mentioned in the previous two paragraphs.

To conclude, here are some random tips if you run a survey. This is based on my vast experience of doing this...twice ;-)

1.Keep the number of questions short; definitely make them fit on a single short page. Any more than that and users will abandon the survey the minute they see it. Budget 20 seconds per question and then gauge how long you think someone will spend overall there before giving up – this should guide you to the total # of questions.

2.Write questions in such a way so the user can just select the answer (i.e. Yes/NO or multiple choice). Again, if you force me to have to do a lot of typing, I will probably not take the survey. Make the last choice "Other" where applicable and offer an optional textbox for additional comment.

3.Following on from the previous point, try and make the multiple choice answers exclusive. Allowing multiple responses per question (like I did) means having to spend a lot more time analysing the results as the percentages alone do not show the full picture.

4.When you think you wrote a good question, visualise how the results will be interpreted. If you cannot think of how you would interpret the results or what action you'd take based on the results then the question is wrong. For example, I asked a question in my survey that was just to satisfy my curiosity and in hindsight it was not actionable or interpretable so I should have left it out.

5.The more factual-based questions you have, the faster the user can move through them. The more opinion-based questions that you have the longer it takes to fill in and the longer it will take you to analyze. Just something to bear in mind.

6.Assuming that you managed to write questions where the user didn't have to use the keyboard, make the last question open ended. Make it last, so you don't receive feedback that is covered in other questions. Make it open ended because the verbatim feedback will likely be more important than the rest of the questions.

7.Never use multiple different survey sites for the same set of questions. Aggregating the results from 3 different engines for consolidation is a bit of a time consuming nightmare.

Opening Comments

Sat, January 26, 2008, 01:35 PM under Blogging
I have tried this twice before and had to give up due to comment spam. If I get too much again, I'll close it again. Also, like I've said before, I am not too thrilled with this blog engine's comment form and interaction flow, but I'll let you be the judge of that. Does it work for you?

UK 2008 Launch Registration Now Open

Wed, January 23, 2008, 07:09 AM under Links
As per my intro in today's MSDN Flash (that will at some random point appear here), the registration is now open to everyone. Come learn about Visual Studio 2008, SQL Server 2008 and Windows Server 2008 in Birmingham on 19th March. Register from here.

Survey for my blog subscribers (FINAL UPDATE)

Sun, January 20, 2008, 09:02 AM under Blogging
Over the years I have focused on a range of Microsoft technologies on this blog and will continue to do so moving forward. I was curious as to what stuff you guys and girls focus in your professional lives. At the same time, I was also curious to see how the various free online surveys work. So, putting the two "curiosities" together, may I kindly ask 100 of you that subscribe to this blog to fill out this short anonymous survey (6-10 clicks and you are done) please?

UPDATE: the 3 free survey sites that I used reached their respective 100 capacity limits so they have been deactivated/closed. Thank you to the 300 that responded!


Video on debugging into the .NET source code

Wed, January 16, 2008, 03:32 PM under Orcas | VisualStudio
Finally, what was promised back in October is now available to everyone with Visual Studio 2008 installed: debug into the actual .NET Framework source code!

All you need is VS2008 and 15' to watch my screencast that shows you step-by-step how to enable this feature.

While watching my video start downloading the hotfix for VS2008 which will make the whole experience a lot faster than what it is without it. Note: I recorded the video without the QFE.

For questions and/or more info, visit the blog of the man that made this feature possible.

My VS2008 Articlette in TechNet Magazine

Sun, January 13, 2008, 02:44 PM under Links
Even though I am a developer (as opposed to an IT Pro), I do enjoy some of the content of the UK TechNet magazine to which I subscribe. In the January issue, they feature a two-pager (p10-11) on the three launch products for 2008 (SQL Server, Windows Server and Visual Studio). I recall being asked to share my top 5 features of VS2008 with them, so I wasn't too surprised when I saw my name and photo in there.

To read my relevant bits, scroll down on this PDF page until you read the words "On Visual Studio 2008".

MSDN Flash 9 Jan

Thu, January 10, 2008, 06:43 AM under Links
The MSDN Flash was delivered yesterday (subscribe here). In addition to a great SharePoint article, my UK readers will find great choice for in-person developer events in the Register and Horizon sections – you can view this issue online now.

My January Events

Mon, January 7, 2008, 08:15 PM under Events
After a thin sprinkling of events in December, below is where and when you can heckle me in the second half of January:

+ 14th, Oxford, Details and registration.
+16th, London, Details and registration (PDF).
+17th, Manchester, Details and registration.
+23rd, Edinburgh, Details and registration.
+24th, Edinburgh, Details and registration.
+29th, London, Microsoft Partners talk to your MS contact.
+31st, Leeds/Bradford, Details and registration.

Best of "The Moth" 2007

Tue, January 1, 2008, 02:30 PM under Personal
Keeping with the tradition I started in 2004 and continued in 2005 and 2006, I just reviewed my blog posts of 2007. This year I had 275 blog entries to choose from and 4 themes emerged:

01. Last year I focused on Windows Vista and that dominated my blog culminating in the very popular blog post: Windows Vista for managed developers. Please revisit that, because I updated it by adding 5 more links to my new Vista blog posts this year. In addition, you can download all my C# Vista demos at this post.

02. The mobility content on this blog has thinned down (but luckily not gone away). That is mainly because I put a lot of the effort and knowledge in our book which we released this year. I have to say I am ecstatic with the Amazon reviews.

03. This has definitely been the year of Visual Studio 2008 and .NET Framework v3.5 for me. I announced last January that Orcas would be my focus and indeed it dominated my blog. Twice in the year I gathered several of my Orcas blog posts together and both times the response I received was great:
- .NET Framework v3.5
- Top 10 of Visual Studio 2008
From the second post you'll find links to the many screencast videos I recorded on the topic. Even if you do not watch videos, follow those links because they include additional links to further written information.

Also, with Fx 3.5, Microsoft shipped Fx v2.0 SP1 and you can read my collection of posts about SP1 here.

04. Concurrency and Parallelism. In the last quarter of 2007 I rediscovered my interest in concurrency and parallelism (as evidenced by what I was linking to here, here, here and there). In July I had hinted my interest in PLINQ so it should not have come as a surprise when I made this post on Parallel Fx followed by one more video on TaskManager. More in this area in the upcoming months...

Thanks to all who read my blog in 2007, roll on 2008 and if you are not reading me in your feedreader yet, there are options for you to subscribe on the left ;-)