Live Debugging

Tue, March 13, 2012, 07:33 PM under Random | SoftwareProcess

Based on my classification of diagnostics, you should know what live debugging is NOT about - at least according to me :-) and in this post I'll share how I think of live debugging.

These are the (outer) steps to live debugging

  1. Get the debugger in the picture.
  2. Control program execution.
  3. Inspect state.
  4. Iterate between 2 and 3 as necessary.
  5. Stop debugging (and potentially start new iteration going back to step 1).

Step 1 has two options: start with the debugger attached, or execute your binary separately and attach the debugger later. You might say there is a 3rd option, where the app notifies you that there is an issue, referred to as JIT debugging. However, that is just a variation of the attach because that is when you start the debugging session: when you attach. I'll be covering in future posts how this step works in Visual Studio.

Step 2 is about pausing (or breaking) your app so that it makes no progress and remains "frozen". A sub-variation is to pause only parts of its execution, or in other words to freeze individual threads. I'll be covering in future posts the various ways you can perform this step in Visual Studio.

Step 3, is about seeing what the state of your program is when you have paused it. Typically it involves comparing the state you are finding, with a mental picture of what you thought the state would be. Or simply checking invariants about the intended state of the app, with the actual state of the app. I'll be covering in future posts the various ways you can perform this step in Visual Studio.

Step 4 is necessary if you need to inspect more state - rinse and repeat. Self-explanatory, and will be covered as part of steps 2 & 3.

Step 5 is the most straightforward, with 3 options: Detach the debugger; terminate your binary though the normal way that it terminates (e.g. close the main window); and, terminate the debugging session through your debugger with a result that it terminates the execution of your program too. In a future post I'll cover the ways you can detach or terminate the debugger in Visual Studio.

I found an old picture I used to use to map the steps above on Visual Studio 2010. It is basically the Debug menu with colored rectangles around each menu mapping the menu to one of the first 3 steps (step 5 was merged with step 1 for that slide). Here it is in case it helps:

live debugging

Stay tuned for more...

The way I think about Diagnostic tools

Tue, March 13, 2012, 06:47 PM under Random | SoftwareProcess

Every software has issues, or as we like to call them "bugs". That is not a discussion point, just a mere fact. It follows that an important skill for developers is to be able to diagnose issues in their code. Of course we need to advance our tools and techniques so we can prevent bugs getting into the code (e.g. unit testing), but beyond designing great software, diagnosing bugs is an equally important skill.

To diagnose issues, the most important assets are good techniques, skill, experience, and maybe talent. What also helps is having good diagnostic tools and what helps further is knowing all the features that they offer and how to use them.

The following classification is how I like to think of diagnostics. Note that like with any attempt to bucketize anything, you run into overlapping areas and blurry lines. Nevertheless, I will continue sharing my generalizations ;-)

It is important to identify at the outset if you are dealing with a performance or a correctness issue.

  1. If you have a performance issue, use a profiler. I hear people saying "I am using the debugger to debug a performance issue", and that is fine, but do know that a dedicated profiler is the tool for that job. Just because you don't need them all the time and typically they cost more plus you are not as familiar with them as you are with the debugger, doesn't mean you shouldn't invest in one and instead try to exclusively use the wrong tool for the job. Visual Studio has a profiler and a concurrency visualizer (for profiling multi-threaded apps).
  2. If you have a correctness issue, then you have several options - that's next :-)

This is how I think of identifying a correctness issue

  1. Do you want a tool to find the issue for you at design time? The compiler is such a tool - it gives you an exact list of errors. Compilers now also offer warnings, which is their way of saying "this may be an error, but I am not smart enough to know for sure". There are also static analysis tools, which go a step further than the compiler in identifying issues in your code, sometimes with the aid of code annotations and other times just by pointing them at your raw source. An example is FxCop and much more in Visual Studio 11 Code Analysis.
  2. Do you want a tool to find the issue for you with code execution? Just like static tools, there are also dynamic analysis tools that instead of statically analyzing your code, they analyze what your code does dynamically at runtime. Whether you have to setup some unit tests to invoke your code at runtime, or have to manually run your app (and interact with it) under the tool, or have to use a script to execute your binary under the tool… that varies. The result is still a list of issues for you to address after the analysis is complete or a pause of the execution when the first issue is encountered. If a code path was not taken, no analysis for it will exist, obviously. An example is the GPU Race detection tool that I'll be talking about on the C++ AMP team blog. Another example is the MSR concurrency CHESS tool.
  3. Do you want you to find the issue at design time using a tool? Perform a code walkthrough on your own or with colleagues. There are code review tools that go beyond just diffing sources, and they help you with that aspect too. For example, there is a new one in Visual Studio 11 and searching with my favorite search engine yielded this article based on the Developer Preview.
  4. Do you want you to find the issue with code execution? Use a debugger - let’s break this down further next.

This is how I think of debugging:

  1. There is post mortem debugging. That means your code has executed and you did something in order to examine what happened during its execution. This can vary from manual printf and other tracing statements to trace events (e.g. ETW) to taking dumps. In all cases, you are left with some artifact that you examine after the fact (after code execution) to discern what took place hoping it will help you find the bug. Learn how to debug dump files in Visual Studio.
  2. There is live debugging. I will elaborate on this in a separate post, but this is where you inspect the state of your program during its execution, and try to find what the problem is. More from me in a separate post on live debugging.
  3. There is a hybrid of live plus post-mortem debugging. This is for example what tools like IntelliTrace offer.

If you are a tools vendor interested in the diagnostics space, it helps to understand where in the above classification your tool excels, where its primary strength is, so you can market it as such. Then it helps to see which of the other areas above your tool touches on, and how you can make it even better there. Finally, see what areas your tool doesn't help at all with, and evaluate whether it should or continue to stay clear. Even though the classification helps us think about this space, the reality is that the best tools are either extremely excellent in only one of this areas, or more often very good across a number of them. Another approach is to offer a toolset covering all areas, with appropriate integration and hand off points from one to the other.

Anyway, with that brain dump out of the way, in follow-up posts I will dive into live debugging, and specifically live debugging in Visual Studio - stay tuned if that interests you.

What changes were made to a document

Thu, March 31, 2011, 01:55 PM under Random

Part of my job is writing functional specs. Due to the inevitable iterative and incremental nature of software design/development, these specs need to be updated with additions/deletions/changes over a period of time. When the time comes for a developer to implement features or update their design document (or a tester to test the feature or update their test specs) they need to be doing that against the latest spec. The problem is that if they have reviewed this document already, they need a quick way to find the delta from the last time they reviewed it to see what changes exist and how their existing plans may be affected (instead of having to read the entire document again).

Doing that is very easy assuming your Word documents are hosted on SharePoint.

1. Every time you review a document note the SharePoint version and/or date (if it is a printed copy, make sure your printout includes the date in the footer – all my specs do)


2. When you need to see what changed, open the document (make sure you are not using a cached or local offline copy) and on the ribbon go to the "Review" tab and then  click on the "Compare" button.


3. Click on the "Specific Version…" option. In the dialog that pops up pick the last version you reviewed and click the "Compare" button. [TIP for authors: before checkin of your document, always compare against the "Last Version" on the SharePoint so you can add appropriate more complete check in comments]


4. What you see now is that in addition to the document you have open, two other documents just opened up. One is in the background (flashing on your task bar) – close that one as it is the old version.


5. The other document is in the foreground and contains all the changes between the old version and the latest one. Be sure not to make edits to this document, use it only for reading the changes. To find all the changes, on the ribbon under the "Review" tab, click on the "Reviewing Pane" to open the reviewing pane on the left. You can now click on each pink change to see what it is.


6. When you are done reviewing changes close the document and don't save any changes (remember if you want to make edits/additions/comments make them in the original document which is still open).

And now I have a URL to point to people that keep asking about this – enjoy  :-)

IE9 Beta

Wed, September 15, 2010, 10:59 PM under Random

I've been using Internet Explorer 8 since the early pre-release bits, but I never tried IE9 until today – the day the Beta is available. I downloaded it from here:

The download took longer than what I expected, but I was doing other stuff, so no bother. After coming down, it asked me to reboot my computer. Really hate when apps do that, but I did it anyway.

The first time I launched it, it prompted me with a list of add-ons I should disable including the start-up time that I could save fore each one. It even let me configure the prompt so, for example, it won't prompt me again unless an add-on contributes to more than 1 second of the startup time. Cool.

First thing I noticed is that the search bar had gone and, as you'd expect, you have to search from the address box. I totally despise this feature. The first thing I've been doing with all versions of IE is to turn off the automatic searching from the address bar and now I have no way of searching if I do that. Ridiculous.

The second thing I notice is that the tabs are next to the address bar and cannot be moved to go below it. One word for that decision: appalling (and, no, I didn't accidentally drop an 'e' and added an 'l' in the previous word).

The third thing I notice to the right is the favorites button (star icon) and when I click on it, it brings up the favorites explorer under it on the right; then I pin the explorer and it jumps to the left(!). Why move the entry point to this feature to the right instead of leaving it on the left is beyond me (other than wanting to retrain me on what I've been used to for all this time), but the fact that pinning it makes it jump sides is… an "astonishing" design decision.

As I browse I notice a little annoying pop up in the bottom left every time I hover over a link; there is no status bar. I correctly guessed to right click at the top and turn on the status bar (which also got rid of the popup thereafter) and while I am at it, I bring back my favorites bar which was hidden by default (and am pleased to see that all my favorites are still there).

The next thing I notice, I like: IE9 is fast. No joke, I visit sites and they seem to be loading visibly much faster – try it!

Beyond the speed, I am interested to find out what else is new. I searched and found a few good links:

If you are a developer, check out IE's msdn home for many articles, e.g. this section on Canvas and SVG.

Either way: wherever you are, get IE9 Beta now and judge for yourself. If you don't like it, you can always uninstall (which auto-restores the previous version).

Outlook 2010 – My Top 9 features

Sun, April 25, 2010, 02:18 PM under Random

Office 2010 has reached RTM.

Here are my favorite Outlook features.

  1. Speed. It is faster than previous versions and hangs much less…
  2. Ignore Conversation (Ctrl+Del). Not interested in a conversation? Click this button on the new ribbon and you'll never receive another message on that thread (they all go to your Deleted folder).
  3. Calendar Preview. When receiving a Meeting Request, before deciding to accept or not you get to see a preview of your calendar for that day and where the new meeting would fit in. See full description on outlook team blog post.
  4. Quick Steps. See full description on outlook team blog post. I have created my own quick steps for filing conversations to folders, various pre-populated reply templates, creating calendar invites and creating TODOs from received emails.
  5. Search Interface. Many of us knew the magic keywords for making smart searches (e.g. from:Name), but it is great to learn many more through the search tools contextual ribbon tab.
  6. Next 7 days. Out of the many enhancements to the Calendar view, my favorite is to be able with  single click to view the next 7 days – that is now my default view.
  7. MailTips. See full description on outlook team blog post. The ones I particularly like are
    • when composing a mail to someone that has their Out Of Office reply set, you get to read it before sending the mail (and hence can decide to postpone sending).
    • when composing a mail to a distribution list, a message informs you of the number of recipients. Hopefully, senders will use that as a clue for narrowing down the recipient list or at least verifying that their mail should indeed be sent to so many people.
  8. "You are not responding to the latest message in this conversation. Click here to open it.". When composing a reply to a conversation and you have not picked the last message to reply to (don't you hate it when people split threads like that?), this is the inline message you see (under the MailTips area) and if you click on the message it opens the last mail in the conversation so you can reply to that.
  9. Rich "Conversation Settings" and in particular "Show Messages from Other Folders". imageFor example, you can see in your inbox not only the message you received but also the reply you sent (it gets pulled in from the Sent folder). Another example: a conversation has been taking place on a distribution list (so your rules filed it to a folder) and they add you on the TO or CC line, so it appears in a different folder; regardless of which folder you open, you are able to see the entire conversation. Note that messages from other folders than the one you are browsing, appear in grey text so you can easily spot them. Reading them in one folder, obviously marks them as read in the other folder…

If you haven't yet, when are you making the move to Outlook 2010?

Word 2010 Navigation Pane and more

Sun, April 25, 2010, 02:12 PM under Random

I have been using Office 2010 since Beta1 and have not looked back since. I am currently on an internal RC, but will upgrade tomorrow to the RTM version.

Word 2010 Navigation Pane

There are a plethora of new productivity features and for Word 2010 the one that overshadows everything else, IMO, is the Navigation Pane. I could spend time describing it here, but I'll never be able to cover it more thoroughly than what the product team has on their blog post.

You enable it via the "Navigation Pane" checkbox in the "Show" group of the "View" tab on the Word ribbon.

Even if you have come across this new Word 2010 feature, trust me you will learn something more about it, you will thank me later. Go learn how to make the most of the new Navigation Pane.







As an aside, there are many new benefits in PowerPoint 2010 too, my favorite being support for sections. Not to leave Excel 2010 out, you should check Excel's integration with HPC Server.

Best source code comments

Wed, April 22, 2009, 05:18 PM under Random
Literally laughed out loud when this was forwarded to me and they are way too funny not to share – from stackoverflow:
What is the best comment in source code you have ever encountered?

Moth Calendar 2009

Sat, January 17, 2009, 02:57 AM under Random
When I lived in the UK I was always part of the developer community: in the early days of my career as an attendee, later as an MVP and, finally, as a Microsoft person when I joined the company.

It sounds like the community people in the UK miss my interactions as much as I do, because the other day my approval was sought for a 2009 calendar of community events where in each month there is a picture of me (sounds weird I know!). I gave my permission and Craig posted the result on his blog.

Besides 12 photos of my ugly mug accompanied by (what they think are) funny captions, each page has details of the UK community events taking place that month (I suspect that is the main purpose of the 2009 Community Calendar ;-)

Spending my life in Airports and Planes

Tue, April 1, 2008, 02:15 PM under Random
On the day of my last 3 posts, I flew to Seattle (10 hours each way) for a quick 3 night trip. Upon my return to UK, it was only a day of catch up before travelling to my hometown in Thessaloniki (Greece). After a day of rest I took the internal flight to Athens for the Greek 2008 Launch. For anyone that attended my session, the videos I mentioned are here. There was also brief mention of Parallel LINQ on the day, and my related video(s) can be found here. After flying back to Thessaloniki for a day of rest, I fly tomorrow to the UK and then a day later I fly for a 5-day trip to Israel for Tech Ed 2008 (which also includes 2 internal flights between Tel Aviv and Eilat)...phew.

There will be more activity here after that – talk to you then.

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 ;-)

6 years of hotmail

Fri, December 21, 2007, 01:38 AM under Random
I registered with hotmail in September 2001. Have you had a hotmail account longer than that? To play the "mine is longer than yours" game, go over to Ian's blog (where he has the link on how to find out).

My personal Tech Ed wrap-up

Sun, November 11, 2007, 04:55 AM under Random
This year I was presenting 4 breakout sessions on my own and was also part of a panel session with four other speakers. A huge thank you to all of you that attended my sessions and in particular to those of you that filled in the feedback forms. I read every single comment and below are the results of your voting, in the order I presented throughout the week:

Three numbers per session representing speaker's Knowledge, Presentation Skills and Quality (range is 1-9 where 9 is high).

TLA201 VisualStudio – 8.41, 8.31, 7.87 (resources here).
MED202 WindowsMobile – 8.46, 8.32, 7.85 (resources here).
MED304 CompactFramework – 8.49, 8.33, 8.09 (resources here).
WIN312 WindowsVista – 8.66, 8.54, 8.31 (resources here).

These numbers are not that different to my session results from last year so it sounds like I am not improving much. I hope next year I will do better i.e. eliminate those two pesky 7.8x numbers and replace them with 8.something!

In addition to having a session every single day and almost every day some kind of "lunch meeting", I also kept my evenings busy by managing to attend: the welcome drinks reception, the MVP party, the MSP party, the UK country drinks, a night out with MS UK DPE colleagues and the speaker's dinner/party. I also participated in two book signing events at one of which Andy "helpfully" brought a celebratory bottle of champagne. So, in hindsight, maybe I should do all my presentations from now on whilst being hangover since it apparently makes no difference ;).

It wasn't all alcohol and presentations though; there were some "media" activities too. At some point expect to see on channel8 an interview I gave to two MSPs. I also turned the table round with Dave by interviewing him on his outstanding performance at Tech Ed – expect to see that on the NxtGenUG podcast series. There is 30 seconds on us signing the book on the Day 3 Wrap (start at 01:09) on the virtual side (or save as the wmv). Also on the virtual side there is a 4-minute chat between me and Mike on Visual Studio & .NET Framework 3.5 – Top Features (or save as the wmv). Finally, since they had both me and Mike in front of a camera, they decided to record a longer (10') chat we had on the same topic, this time for VisrtualTechEd (stream it or save as the wmv).

Phew! Now I think I'll get some rest and sleep for the next 24 hours and then compile for the Flash all the announcements and product downloads from Tech Ed. I hope you are all looking forward to this week's issue...

PIP in screencasts?

Wed, October 24, 2007, 04:30 AM under Random
ScottHa asks for your opinion on the usage of Picture-In-Picture (PIP) for screencasts. If you haven't seen that before, it is where not only you see the presenter's screen but you also see the presenter's "talking head" in the corner of the video. As someone who believes very strongly in the power of screencasts, I'd also be interested in what you think about PIP so head over and scroll down to the Screencast survey and then drop a comment.

Personally I don't like PIP, but if you do then I may consider including a PIP in my screencasts. I find the head distracting plus it makes the file grow larger and I try to keep the wmv as small as possible. The last reason I don't like the PIP, is because when I record these I am at home in a far from presentable appearance ;-).

MS Speak RC Build 21004.01

Fri, October 12, 2007, 07:00 AM under Random
Mike, I find it very British of you to question the Microsoft speak!

SO, my ASK to you is to GO AHEAD and get SUPER excited about how much more PERFORMANT your developer STORY becomes with these UM.. UM... enhancements that we are BAKING into the language. See it as your CALL TO ACTION. :-)

I type 50 wpm

Fri, September 14, 2007, 01:04 PM under Random
UPDATE 4: Looks like I am bottom of the league on this one with others hitting 51.9 wpm, 62.8 wpm, 72 wpm, 73.7 wpm, 80.1 wpm, 81.6 wpm, 90 wpm, 90.3 wpm, 96.8 wpm, 97.4 wpm, 99.2 wpm, 118.8 wpm and 125.6 wpm! What are your results?

Tim talks here about Vista speech recognition, and as an aside he links to a site that tests your typing speed. I had 3 minutes to spare so I gave it a go and the results were 50 words per minute. That pales in comparison to Tim's 70 but I knew already that I am not a fast typist (which is why I rely on intellisense, snippets and "clipboard inheritance" in my VS demos). Give it a go and see how you fare...

Off Topic: 8 random things about me

Thu, July 12, 2007, 05:51 AM under Random
This meme is very similar to the one from last year, but what the heck... Eileen tagged me so here goes:
1. Born in Germany (Rinteln), grew up in Greece (Thessaloniki), live in UK (Hove).
2. Football team I support: Manchester United. Team I supported in Greece: PAOK.
3. Lost my father when I was a baby.
4. As a child I was (very briefly) a boy scout.
5. As a kid I was a massive Bruce Lee fan. When I visited Seattle for the first time, my must see place was Bruce Lee's grave (with Brandon beside him).
6. I trained in Tae Kwon Do (combined with Okinawa) up to red belt. My teacher was the teacher and father of the recent Greek Olympic medallist (Nikolaidis).
7. As a teenager I was a huge The Doors fan. When I went to Paris for the first time, my must see place was Jim Morrison's grave.
8. Last Sunday I saw old head-bangers Metallica at Wembley (ears still buzzing, neck still hurts)... This was in Microsoft's executive box ;-)

I was very tempted to kill this meme here, but instead I'll tag 8 people as mandated (not the same ones as last time) so they can list their own 8 random things about them:
Craig, Eric, Loke Uei, Martin, Mike, Neil, Nick, Steve.

Back from Berlin

Thu, June 28, 2007, 12:22 PM under Random
Just came back from MEDC Europe in Berlin after the flight from hell (5 hour delay spent in airports, gates, planes and runways) due to the Heathrow gas leakage. I've only had 4 hours sleep in the last 24... And that was following a previous night of little sleep due to a debaucherous celebration in Berlin with the MEDC organisers. Tomorrow I have to be at TVP all day including evening entertainment with our UK "community leaders", followed by DDD5 on Saturday... In the dictionary next to "sleep deprivation" there must be a picture of me... No surprise then that I've decided to take some time off Sunday thru to Wednesday and be totaly unreachable... Anyway...

On a more pleasant note, our book was selling like a hotcake over there, so MS Press should be very happy... To the people that took photos of me and Andy signing copies for the delegates (what a bizarre feeling that was!), please send me some.

Back from DevDays

Fri, June 15, 2007, 11:30 AM under Random
Just came back from a few busy days in Amsterdam. I have been to Amsterdam a few times before and given the busy schedule I didn't venture anywhere beyond the hotel and the RAI (the venue) other than one night for dinner in an Italian restaurant with funny man Rob Miles. In fact, I ordered a lemon tart and got a cake with a bit of lemon on the side! Rob has a photo of it here.

Anyway, I have to say, I was very impressed with this event. The sound system/microphone was the best I have ever used. The food was fresh and healthy (no cans of coke, or packet of crisps or chocolate bars and other junk food like that). There was a geeky buzz about the place and the Dutch were a wonderful audience – very interactive and kind enough to laugh at my bad jokes. Some of them even let me to devalue their fresh purchase by asking me to sign it.

The screen in the auditorium (capacity 2K people) was one of the largest I have ever seen. The screen had a feature that must be every presenter's dream, but is very hard to describe: it was split in two where on one side they showed the presenter's face and on the other the slides.

No, that isn't the killer feature yet. When the presenter switches to a demo, the face bit becomes smaller and goes to the corner, and a 3rd viewport appears on the screen in the middle.

So now you have 3 squares (1 small showing the presenter, 1 large showing the demo machine plus 1 more that is also large). The new one that appears in the middle is a magnifier for the demo machine, controlled by people backstage! So while you, as the presenter, are doing your demo as usual, someone else makes sure that the important bits are magnified for the audience on a separate screen. Pure genius.

Overall, I'd be more than happy to go back to DevDays in coming years. The organiser picked only speakers that he had seen present at other events previously and hence was confident they would be good for his event. He covered expenses for speakers which was refreshing for a large international conference. Congrats on a good show and thanks for inviting me Arie!

go URLs at Microsoft

Tue, May 22, 2007, 06:24 AM under Random
Have you noticed on various Microsoft web sites and newsletters the use of URLs that redirect to the real URL where the content lives? They have always bugged me. Let's look at an example by examining the following two snippets:
"If you are a developer interested in Vista, Orcas and mobile development you'll find that this blog rocks!"
" If you are a developer interested in Vista, Orcas and mobile development you'll find that this blog rocks!"
The two extracts above look identical, and following the links takes you to the same place. However, the 1st shows the real URL, while the 2nd takes you somewhere else and then redirects you. Most people I know (inc. me) hover over a URL before clicking on it. That is because when you mouseover a link, the destination usually appears in the statusbar or a tooltip so you can preview the URL you are about to visit. So, in the case above, maybe I would not click on it because I have already been to that destination and I don't want to waste my time (or maybe I already subscribe etc). Using a hides that from me. Also if I am offline, I can still get the real URL and potentially add it to a list of places to visit, but I am unlikely to do that with a go URL. While that is my view, recently I heard someone also complain about the go URLs. They were taking it a bit far by saying they were finding these URLs "suspicious". Without commenting here on the comment per se, the net effect is they also don't like them.

So I asked around about the usage of these URLs and the reply confirmed my presumption on why we use these: statistics. That is how we measure what links people follow. There are backend tools that measure the total traffic to a URL, but how can you know where those clicks are coming from, especially when they will originate from someone's email client (in the case of newsletters such as the flash)? I am not a web guy so I cannot see an immediate alternative. Unless/until someone comes up with a better solution, we'll just have to live with this necessary evil I guess...

Vegas MEDC wrap-up

Sat, May 5, 2007, 12:33 PM under Random
Just came back from a very different MEDC for me this year.

I've been to Vegas a few times before and this is the only time that I didn't venture beyond the Venetian! I pretty much spent all my time at the conference or in my room, with the occasional trip to restaurants (in the Venetian) for breakfast/lunch/dinner. I only had drinks (extremely generous portions of Stoli on the rocks) on Wednesday night at the Venetian's TAO where the conference party was held. Some of us went to some other place in the Venetian after that but I don't recall the name. This resulted in a bad hangover on Thursday morning which soon converted itself to a nasty cold that I brought back with me today. I bet half the attendees came back with a cold because the temperatures in that hotel are sub zero. The other bad news was that since Monday my laptop monitor malfunctioned. It did this last September and it only took the Toshiba technician 10 minutes to reconnect the cable internally but I wasn't going to risk that myself with all the sessions I was doing! I ended up delivering my breakouts by looking at the monitor on the stand rather than my own laptop monitor (external projection still worked, thank God!).

On a more positive note, my breakouts were well received and I enjoyed watching them feature in the Top 10 list monitor in the speaker room :-). This was a special achievement for anyone at MEDC this year since Doug Boling decided to have 4 of his talks dominate the top 5... someone suggested, and I agree, that next year we should only pay him if he gets scores above 8.5 (which is what he did this year!). Thank you to everyone who attended my sessions, thank you to all of you for voting and special thanks to those of you that put up with my bad jokes :-)

On a further positive note, I came back with more cool swag than from any other conference ever: hardware. Some bits I got because I was a speaker, others as a (former) MVP, and others by prior arrangement with Microsoft colleagues in Redmond whom I met in Vegas. Below is the top 5 swag items I have just unpacked:
- Sweet Presenter Mouse
- NETMF Freescale i.MXS Development Kit
- JawBone noise cancelling Bluetooth headset
- Cool laptop web camera
- Windows CE eBox-2300SX Development Kit

Now I'll go find some creative way to keep my eyes open while my body adjusts itself to normal time again...

See you at MIX or MEDC

Fri, April 27, 2007, 10:02 PM under Random
It is going to be busy for me at MEDC again this year (sessions one, two, three and four), but if you are attending MEDC or even MIX (which is also held at the Venetian in Vegas next week), contact me to catch up. I am flying there in a few hours and will stay until next Friday.

When I am back I'll share some good news even though somebody has already spilled the beans. Have fun!

MVP Summit 2007

Sun, March 11, 2007, 02:09 PM under Random
One of the perks of being an MVP (and the perk I miss the most!) is attending the global MVP summit in Seattle (and I did that in 2005). Having been to plenty of public conferences and also to internal Microsoft conferences (MGX, TechReady), let me share with you that the MVP summit tops them all. It is simply the one to be at! To everyone out there this coming week, have one on me :-)

I was going to try and make it there this year, in a different capacity of course, but my speaking schedule got in the way :(

lambda vs lamda

Mon, March 5, 2007, 04:01 AM under Random
With all this talk of lambda expressions, I should point out that whoever decided to spell the Greek letter using characters from the latin alphabet has done it incorrectly. Spelling LAMBDA with a 'b' is simply wrong. The correct way to spell it is LAMDA. The Greek spelling of lamda uses 5 characters that each map exactly to the latin counterparts: ΛΑΜΔΑ. In case that doesn't render as it should for you, look at the following image:

Each letter in one alphabet is equivalent to the other (they sound the same, the keyboard maps them the same, they just *are* the same!). Whose bright idea was it to introduce a 'B' where it didn't belong?! When you read the word out loud, how do you change your pronunciation between the incorrect way LAMBDA and the correct way LAMDA? If you pronounce the 'B' I can tell you that that is not the way Greeks pronounce it.

To be quite honest, if you wanted to get as close to the real pronunciation as possible, then it should be written as lamtha where the 'th' is read in the same way as 'th' in the words 'there', 'the', 'though' etc.

Rant over.

Rambling about WebDD

Sun, February 4, 2007, 07:05 AM under Random
As suggested two days ago, yesterday I was at WebDD to listen to some talks and do a 10’ stint myself.

I had a good time. It was basically a DDD with focused web content, and with a few additional twists including:
1. There was active presence by Microsoft (e.g. speakers, pods)
2. It was slightly smaller (3 rooms instead of 4)
3. No public voting of sessions
4. ScottGu dominated the event (His room was always full, with people standing and queuing)

As a complete aside, having attended (and presented) a few 1-day events at our UK TVP offices I think I prefer events where the two rooms (Chicago 1 & 2) are joined i.e. single track events.

I was one of the people standing in Scott’s sessions and I can see why people were so attracted to his talks (heck, I am not even into web development and I sat through 3 of them!):
a. Gravitas
When the General Manager of the developer platform is telling you how it is, you know that you are not only getting the facts, but also what decisions were made before reaching the current spec and what is waiting in the pipeline. You also know that you can give feedback straight to the horse’s... ears.
b. Geekness
I have always maintained that developers enjoy watching/listening to fellow geeks. Scott is a geek.
c. Passion
Usually, but not always, follows on from the previous point. In this case, it was evident that Scott was passionate about what he was showing.

Notice how I did not include in the list above “presentation skills”. That is because I have never heard so many times the word “um” in a session. If it wasn’t for the compelling content I would have walked out at one point in the “WPF/e” talk :-)

Speaking of presentation mistakes, on to my grok talk...
I managed to start talking and then realised that I had forgotten to connect my laptop to the projector... doh! I also hadn’t realised that the only microphone available was one that you must hold... a bit difficult when your entire talk is demo-based! Thanks to Richard, Dave and John for filling in for me while I battled to get Vista to talk to the screen and thanks for later holding the microphone to my face while I used the keyboard/mouse. Live and learn. As for the topic of my grok talk, I settled on Sidebar (apologies if you were hoping for SideShow, but I feel that it is hard to talk about it without having real hardware to show to people).

Challenge: 24 processes and 378MB. Possible?

Sun, January 14, 2007, 05:29 PM under Random
For the UK launch of Vista and Office, I am doing a Vista session as expected, but I am also filling a "SharePoint Workflow and collaboration" slot. To prepare for the talk I am running a Virtual PC image of Windows Server 2003 with MOSS on my Vista machine. When I received this image, immediately the challenge was obvious: the VPC image requires 2GB of RAM and my laptop has a total of 2GB of RAM. I lowered the RAM requirement of the image but it would still not start due to lack of memory. I was convinced that I could lower the memory requirements a little and also kill everything unnecessary on my Vista laptop so the host OS used as little memory as possible.

Question: Is there something I can do to a host OS to run the bare minimum since all I am going to be doing is running the VPC and nothing else? No connectivity, sound or anything else required; all I want the machine for is to run full screen the VPC image. Please let me know.

So my steps to minimising RAM use by the host OS was what most people would think:
1. Exit all applications via the X in the top right corner of their window.
2. Right click on all systray icons and select “Exit” (if they offer that option)
3. Run Task Manager. The Applications tab is empty (like the taskbar). Go to the "Processes" tab.
4. Select each unnecessary process and then click the "End Process" button in the bottom right.

At the previous stage you can cause damage so I explicitly do not advise that you kill processes that are not yours. The next stage is even more dangerous so please do not do that.

5. Click on the "Show processes from all users" button. Now you have a whole bunch of more processes to kill. Go to town.
6. After killing more processes than you've ever killed in your life, next let's stop some services. Go to the "Services" tab of Task Manager.
7. For any running service that you think is unnecessary, right click and choose "Stop service".

At the previous step you really are taking your life in your own hands. Only an idiot would stop services they know nothing about so please let me be the only one.

I have gone through this exercise a few times and once I managed to blue screen the machine and another time it just decided to restart with no warning other than slowly dimming the screen to black. I cannot stress enough that the above actions can cause loss of data or permanent failure.

8. My penultimate tip (the last one is at the end in the post script): before doing all of the above make sure you turn off network connectivity since some of the things we are killing result in a less secure machine and also many of the services we are stopping are network related.

Now you know why I asked the question earlier. I know there is a better way to eliminate all unnecessary running processes, but I don't know exactly what it is. This painful process is something I repeat every day since Christmas but at least now I know what to kill and what is either unkillable or comes back to life or if it dies it takes the system with it. It is still irritating having to do all that so please put me out of my misery and tell me how to run a VPC image that uses almost all the RAM of the host machine.

In any case, here is what the "Performance" tab of my "Task Manager" shows after I am done killing:

That's right folks, a Vista machine running with only 395MB and 24 processes. Beat that if you can!! See your task manager right now for how many processes you are running.

I then launch my Virtual PC with the gigantic image, and 12 minutes later the image is loaded and the picture has changed to this:

Yup, 1.72GB used up immediately! Not that life is good from here on cause I have lowered the VPC image's RAM to the extent where it is very slooow regardless... with the occasional failure to render the navigation bar of the SharePoint site.

I can even manage to get the RAM usage down to 378MB as this screenshot proves, which is about half of what I'd normally use when VPC images are not in the picture.

So what do you think: the next time I am asked to do a session that requires a VPC image this big, should I ask for a new laptop to go with it? ;-)

PS The biggest RAM savings I got were by stopping the services “SuperFetch” (trade memory for perf) and “Windows Search” (trade memory for productivity). Getting down to 24 processes included killing “explorer” itself (and launching the VPC image from Task Manager). These 3 actions, plus turning off aero (i.e. no glass) saved me ~150MB.

My WEI score

Sat, January 13, 2007, 09:21 PM under Random
My pathetic WEI (aka WinSAT) is available here where you can also share yours.


Tue, January 9, 2007, 06:16 PM under Random
Just followed some links from Loke's blog

It is one cool mother but...

1. Work out how much it will set you back after taking the farcical price tag and adding the rates for data and voice! Who will afford that?

2. No high speed internet access (probably so it doesn’t hurt its already bad battery life)

3. No sync with exchange! That rules out most business users.

4. No physical buttons at all?! I like feedback at my fingertips when answering the phone or sending a txt msg.

5. V1 product to be available in Europe in 11 months.

...but it is sexy... very nice toy indeed!

PS If you are reading this far it means that you didn't work out the cost, did you? ;-)

5 things you didn’t know about me

Thu, December 28, 2006, 03:10 PM under Random
MarkJo (whose accent is definitely funnier than mine despite what he claims) has tagged me in this meme... and as my regular readers will know I don’t do memes but, hey, there is always the first time I guess... :-)

1. Before deciding to study computer science in the UK (also known as “before my mum insisted I study”) I was a magician in Greece and actually appeared live on national Greek television. I still have the business cards!

2. When I am behind the wheel I just can’t help speeding. I have 6 points on my license (gained with my Punto GT Turbo); with my brand new Golf GTI 2.0 (200bhp) I am bound to increase them. Problem is that the more points you get the more chances of losing the license and that would most definitely mean losing my job. Not joking, this is a dead serious concern of mine and probably what will force me into working for myself full time from home.

3. I love travelling and have been almost everywhere. If I could live anywhere in the world it would be Australia where I’ve spent 3 unforgettable weeks. Only issue is convincing the wife who prefers Europe as our residence...

4. While competitive at most things I do, the one I always brag about is chess. If you think you have what it takes, challenge me!

5. The last thing you probably don’t know about me is that I have switched the search engine of this blog to LIVE. Check out the cool interface on the left... type “NETMF” in the box and hit enter, you know you want to :-)

Doh... I almost hit “submit”, but this is a meme so I have to tag 5 other bloggers. Let’s see if these guys are listening and want to play:
Angelos , Eileen , Mike , Peter , Scott.

The day the world broke...

Wed, December 13, 2006, 03:16 AM under Random
OT post, no technical content on this one...

[sigh] I woke up this morning to the sound of my phone’s alarm. Unlike other times though, there is no notification. Without a notification, I cannot dismiss the alarm! None of the hardware buttons has any effect. I ended up muting the volume. Soft resets, playing with settings etc but still no joy. I am supposed to know this stuff and I can’t get this annoying alarm to stop sounding... Given that I had a conference meeting in 5’ I just left it muted and turned my attention to dialling the conference centre number. However, the person in charge of the call hadn’t activated it. So while waiting I thought I’d boot the laptop up and check email. Can’t connect to server; it could however download the 3 security updates fine and browse other internet sites. Checked another separate web email service and it was down as well! While trying VPNing in and finding that it is a no starter too, there is a loud bang on the door. I opened the door to find the postman informing me that the door bell seems to have broken. He handed me a letter I had to sign for.

As I was opening the letter (still waiting on the phone for the conf-call to be activated while observing that I still can’t connect to any email account and dreading to put the volume up on my phone in case the alarm started sounding again), I couldn’t help but think: “Will there be a message in the letter informing me that the ‘the world is broken today’...”. I was getting scared, in fact, I checked out of the window to see if there was anything unusual!

For the record: I eventually got into email via Redmond (rather than Reading), found a cancellation for the conf call, the other web email sprung to life, the letter wasn’t pleasant but not the end of the world. Door bell still broken, phone still on mute :-/

NDA info: Tech Ed leader board

Thu, November 9, 2006, 04:06 PM under Random
Finally, gave my last talk this morning so I can't wait for the speaker party tonight. I may update this post with some Tech Ed links when I catch up with blogs...

We have a speaker-leader board in the speakers lounge, and some people are taking it very seriously. It shows the top 10 speakers at any given time (it updates after every round of sessions), based on attendee feedback.

On Tuesday I was impressed when Mike Hall bragged that he was in the top 10 list but then realised that there were only 9 sessions delivered at that point (since his session was in the first timeslot on the first day)... I tried to find where exactly his session ranked today and I ended up breaking my PgDn key ;-)

I am here in Barcelona until Sunday so normal business will resume next week.

Tech Ed: Virtual Side

Mon, November 6, 2006, 10:02 AM under Random
As you may have guessed from my previous 4 posts, I am in Barcelona at Tech Ed Europe this week. If you are not here, stay tuned on The Virtual Side... and while you are there, check out my short video interview talking about nothing specific and everything at the same time :-)

OT: British Military Fitness

Sun, September 24, 2006, 07:26 AM under Random
Off topic post, not even a pinch of technical content

Anyone that knows me can tell you that I am not into fitness/gym or any of that stuff at all (I've been to the gym twice in my entire life). When younger I was good with sports (e.g. football, basketball) and was in the school team and also played with colleagues at previous employment. However, in the last 13 months I have not played any sports (SCUBA doesn't count I guess) and today Jenny finally convinced me to do some exercise and she dragged me away from the laptop.

She signed us up for a trial at this thing here in the UK called British Military Fitness[1] where they tell you what to do, for 1 hour, outdoors in the park. Shocking! I thought I was going to die!! My ears where buzzing and you could fry an egg on my head. I am sure my heart stopped at one point. In fact, I've seen in films where people push themselves so far that they throw up... I never understood that, but today I came close... very close!! Needless to say I am not going back there again!

Having said that, if you think you are fit, give it a shot (they are all over the UK and also partner with a US company). Alternatively, play a prank on someone you don't like and buy them a voucher. If anybody is expecting a Xmas gift from me, now you know what it will be ;-)

[1] BMF

Giant logical leap

Sat, September 23, 2006, 11:40 AM under Random
This is old news (12 days to be precise), but I just came across it. This guy writes a farewell letter to the Microsoft world on his blog. The poor fella describes how he has had the misfortune of working with developers that are not passionate about their job (what I call the 9-to5ers, what he calls DayCoders). He then concludes that it must be all Microsoft developers that do not love their jobs (!) and hence he has now switched to open source, mac etc so he can work with talented developers.

In the dictionary, under "unjustified giant logical leap" there should be a link to his blog post. (or maybe it is a great marketing move on his behalf to attract sympathy from the non-Microsoft friendly crowd... who knows...)

Here are some choice quotes from his post:
"...the word Consultant sounded so wonderfully romantic to me and I wondered if ever I'd make it there as one of the elite band..."

"...I found myself surrounded by power hungry muppets, the odd idiot, a few downright liars (the practice director in particular being one of them), and only a smattering of the elite coders I dreamed I'd find there..."

"...over and over I'd be lambasted for being too passionate (a condition muppets refer to as arrogance)..."
His blog entry attracted almost 300 comments! Read it for yourselves and, as an aside, get someone else's opinion on Avanade (but wear your laughing hat :-D).

NxtGenUG chat

Tue, August 22, 2006, 03:36 AM under Random
Those crazy guys from the NxtGenUG are cornering anyone they can find, shoving a microphone in their face and recording short interviews!

Dave caught me at the Office event 2 months ago (little after I joined MS) and the results are up on their site (read or listen).

Beta lifestyle

Fri, July 7, 2006, 11:48 AM under Random
How much pre-release software are you using? Loads right? Whether you love it or hate it, that is the result of increased transparency. Companies are not afraid to share very early what they are working on and have put systems in place to gather feedback from customers (while having an open dialog with users about features and quality). I have no problem with that and I think the breed of user that shies away from software that has the "Beta" label on it will become extinct very soon.

Looking back in the past, it used to be that I would have a separate (older) machine for testing anything Beta, then I moved to Virtual PCs, then I started installing stuff on my main laptop only if I knew it would uninstall cleanly. Now (and maybe this is part of my job, I don't know) I just stick anything that is coming down the pipeline on my laptop and couldn't care less about its stability or removability - I just want to play with it. I want it to always be there without having to switch to another (virtual or not) slower box. My current attitude culminates with the expectation that I will repave the box every couple of months (that is only 6 times a year!).

Since it was released, I've been running Office 12 Beta 2 and using Outlook/Word/PowerPoint 2007 every single day with no serious problems (outlook crashed once and was polite enough to offer me the option of starting in safe mode). IE has become my main browser again with IE 7 (now at Beta 3) after Firefox stole me away from it last year. I still haven't gotten round to putting Windows Vista on this laptop mostly because I inherited another laptop with Vista on it already (Feb CTP that I updated to Beta 2). That's next on my list and I might go for 5456 or Beta 2 or hung on a bit for the next one (so compared to some of you, I know am still behind in this game :-).

Do you find it is a bit like an addiction? I mean, when something finally gets released, I just want the next version already; case in point Live Messenger and ActiveSync 4.2

Note how I haven't even mentioned dev stuff such as NetFx3 or NETCF SP1 (out of Beta now) or any Orcas bits... as a developer, I take it as read that those things will land on my machine

Also note how I don't mention any of the Beta web stuff (i.e. thin client, no local bits) since, technically, that is cheating IMO :-)


Sun, April 23, 2006, 04:40 PM under Random
Anyone that has anything to do with mobility development has heard the OpenNETCF name. If you are one of the few that haven't, go ahead and visit the site of

In addition to shared source initiatives, OpenNETCF has a commercial arm and if you are looking for the best in the world to work on your embedded or mobility projects, go ahead and contact OpenNETCF for all your needs.

OpenNETCF focuses entirely on the embedded and mobile space and offers free libraries, products and consulting services. Every OpenNETCF partner and member of the advisory board is recognised by Microsoft as an MVP. There isn't a single other company that can claim that, as far as I know!

Expect to see many more products coming out of OpenNETCF but for the moment many associate the brand with the Smart Device Framework (SDF).

In Seattle

Sun, September 25, 2005, 01:16 AM under Random
I am in Seattle from Sunday 25th September until Friday 7th October.

Any MVPs reading this, if you are out there at the MVP Summit (and/or the Publisher's summit), get in touch.

Avanade colleagues in Seattle, I'll be at QuickStart so give me a buzz.

Microsfties who owe me a beer (you know who you are) get ready to settle!

Anyone else, if it’s your round, I am game…

Almost forgot... I am also attending the Indigo roadshow event in Seattle so expect a critique of that when I am back here...

+44 7808482469


Fri, September 16, 2005, 04:52 PM under Random
All blog content is provided "AS IS" with no warranties, and confers no rights. All blog posts are provided under the Creative Commons license.

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way (or the view of any clients or associates of my employer).

Older blog posts (check the date) may contain out of date information/thoughts.

Use of included code samples from May 2006 are subject to the terms specified at the terms of use.

In other words, enjoy Daniel Moth's entries at your own risk!

Last day in Vegas

Fri, May 13, 2005, 08:51 AM under Random
MEDC came to its conclusion yesterday and today is my last day in Vegas.

Yesterday was a good day: Alex_F gave his all inclusive COM interop talk; David_K/Mark_I held their debugging session and Roman_B on NETCF performance were simply great. Also, Chris_T announced our latest SDF release.

Reflecting on the conference now that it has ended, there were a few things here and there that were new to me but, due to our close links with MSFT and the numerous Whidbey drops I've played with over the past year, I must say that most content was familiar. How about some level 500 sessions next year?

However, that is not the main takeaway as the most important benefit was meeting tens of MSFT people and it was great to put a face to a name and equally beneficial meeting new MSFT names/faces. In the same vain, I got a chance to meet most of the MVP community and quite frankly that is what it is all about. Apart from a handful of MVPs that couldn't make it there and a few MSFT people that I (unluckily) just didn't run into, from a networking perspective this conference met my expectations 101% :-D

Soooo... I am catching a flight to San Francisco later on and after a brief stop there it is back to Blighty... I was going to go into how much I "deposited" at the casino but I think this is a good point to stop the diary-style blogging and go back to the technical focus starting from the next blog entry.


Wednesday, conclusion to the day

Wed, May 11, 2005, 11:13 PM under Random
After the first slot it was pretty much downhill... A very bad presentation from what was very obviously a marketeer using somebody else's slides and code... A session where the title had nothing to do with the content... A one hour marathon where there was a single message and not much more content...

It's not all doom and gloom though... I had an hour supporting the NETCF booth in the exhibition area and another at the MVP cabana (which meant I only caught 30 minutes of what was a cool introduction to MSMQ by Andy Wigley) and had some interesting conversations there...

After a private do where we met with the interesting MapPoint team, came the highlight of the day: "Blue Man Group"! Words cannot describe the show... at the end I got a photo with one of them (and here is Paul with another)...

Wednesday start and a photo

Wed, May 11, 2005, 09:49 AM under Random
First session today was Ginny's... very good show and here is a photo after the event

(Alex Y, Alex F, Ginny C, Daniel M, Peter F)

Very long first MEDC day

Wed, May 11, 2005, 12:10 AM under Random
Keynote by William Gates was *packed*! Windows Mobile 5.0 codename Magneto finally released. Search for links as the news should be all over the place by now...

Following that, an interesting panel discussion on building mobile applications went well...

One of the highlights of the day was lunch with members of the NETCF and VSD teams... I must have spent an hour complaining about bugs and missing features... I forgot to tell them how much I love the platform and the great work they do but I am sure they know that ;-)

For the next two timeslots I was not attending a session as I supported the self-paced hands on labs (part of the price you pay for getting admitted free as an MVP... small price if you ask me :-)

After that I attended an interesting session in an area I have no experience and, if I am honest, no immediate interest: "Game Development Using Managed Direct3D Mobile with the .NET Compact Framework"

Finally, one of the highlights of the day was "Memory Architecture in the .NET Compact Framework". I was looking forward to this session and I certainly was not disappointed. Fantastic info!

Then I hung around at the "Ask the Experts" session while consuming food and alcohol... at the same time the Exhibition opened so it was time to collect all the freebies...

The day ended with a screening of the code room... very funny :-D

Of course, the most beneficial aspect is the impromptu conversations held with various MSFT and MVP guys (and girls)... There are some real smart people here!

Due to some weird alcohol spillage that I will not go into, I cannot get photos from my camera onto this laptop and it is too late here so I'll be looking into it tomorrow... there will be photos tomorrow I promise!


Thu, March 31, 2005, 03:07 PM under Random
I have it from a good source that Whidbey will ship in May. I was as surprised as you are when I found out and a part of me thinks they meant 2006, but the context of the conversation was 2005, so make of it what you will.

Expect more inside MSFT information now that they offered me a job. I wouldn't accept it but, since my company is being taken over by some other company, I thought it was a good time to move. It is not on the CF team as you'd expect, though. Instead the C# team has hired me with my first task being implementing a background compiler for the Orcas release. Stay tuned.

On the Compact Framework front, you will have heard by now that sanity has prevailed and CF 2.0 will be supported on WinCE 4.2 (woohoo)

Finally, a blog entry without a link is not a blog entry so, as well as posting this over at my "meme" blog, see below who you are messing with:

What Famous Leader Are You?
personality tests by

Oh, I almost forgot: the MSDN Universal price tag will increase by £500 but it will include Visual Studio Team System Suite!

MSN Messenger

Tue, January 25, 2005, 02:59 AM under Random
I haven't gone off topic in a while and today this pushed me to do so. The moral of Ian's story (although he doesn't state it like that) is do not change your main email account in Passport if you are using messenger. Reason I found the post interesting is because I was considering doing exactly that and now I am put off for good. Maybe it will be fixed in Messenger 7.0

You are using the BETA of 7.0, right? If you are not here are two reasons to do so (apart from the fact that it has been very stable for me in the past week):
1. Ability to sign in invisible
2. In addition to typing messages you can also handwrite them

Red Cross Disaster Relief

Fri, December 31, 2004, 06:34 AM under Random
Amazon Honor SystemClick Here to PayLearn More

Surprise Delivery

Fri, November 26, 2004, 03:03 AM under Random
Got a nice surprise through the post today:
.NET Compact Framework Programming with VB.NET

As I said on my Amazon review of it (the C# version), I had read the draft but didn't actually own the released version.

Further surprise followed when seeing my name in the acknowledgments (page XXXVII) and even more so with my quote on the very first page (3rd one down)!

Someone said "fame at last", but I already said that when I was first (knowingly) acknowledged in the VB6/VB.NET Design Patterns book :-)

Reading books

Thu, November 18, 2004, 11:17 AM under Random
Reading technical books is something I have always enjoyed, including writing reviews about some of them. The very first book I reviewed was over 5 years ago (Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks and Patterns) and the first .NET book I read was in 2000 (Presenting C#).

My recent focus was on .NET Compact Framework Books. I have read and reviewed all of them (let me know if I've missed any - although it's unlikely I'll be reading a book on the CF 1.0 now that the CF 2.0 Beta is out). If you are writing a CF 2.0 book let me know.

Some of my reviews are over at my Amazon page (.NET, UML, OO and COM being the dominant theme).

More and more magazines make their articles available online (and we already subscribe to quite a few at work), even more informative blogs become available with nice technical content and more Alpha/Beta software is made available earlier and to wider audiences. All of this means that my book intake has gone down (hasn't yours?). It is up to you (as a publisher/author) to change that by sending me prospective .NET books to read/evaluate :-)

Having said all that, I recently finished reading Maximizing .NET Performance (I won it at a competition). The review will also appear as my next blog post.

D.D.G. MOTH (Amazon Associate)

Gmail invites

Wed, September 29, 2004, 12:19 AM under Random

Email me (link on the top left) to send me your
First Name:
Last Name:
Topic you want me to blog about more/less:

In fact, even if you have a gmail account already, let me know topics you are (un)interested in...