Task Parallel Library / TPL

It has been very long since my last post here – I was really busy at work. But I will try to “fix it”! :)

I don’t know where Sacha Barber finds time for all his articles and “hobby” projects, but I am glad he does! One of the latest subjects of his investigations is Task Parallel Library (or TPL in short), one of the new parts of .NET 4:

  1. Part 1: Starting Tasks / Trigger Operations / Exception Handling / Cancelling / UI Synchronization
  2. Part 2: Continuations / Cancelling Chained Tasks
  3. Part 3: Parallel For / Custom Partioner / Aggregate Operations
  4. Part 4: Parallel LINQ
  5. Part 5: Pipelines
  6. Part 6: Advanced Scenarios / v.Next for Tasks

Criminal Overengineering

Just a few days ago we talked within a team about this subject, and now I bumped into Criminal Overengineering article that says it all (well, almost all) about the subject of over-engineered design/code. IMHO, this is a must reading for all beginners (and not only, to be honest), and it will be definitely on a list of “things to read” for all new members of our team.

Computer Security Identifier (a.k.a. SID) Myth

Would never believe this, if it would not come from Mark Russinovich:

NewSID has been retired and is no longer available for download. Please see Mark Russinovich’s blog post: NewSID Retirement and the Machine SID Duplication Myth

Sounds fantastic, isn’t it? :) I wonder, if one should use reseal on Windows Embedded images in light of this information: reseal is renaming machine (can be done other way), resets some settings, e.g. mount points (can be done other way), and changes SIDs (which seems obsolete if you are not in domain)…

Debugging MSBuild Scripts (VS2010)

I did not actively search for the subject, but once I bumped into a three-part article about the MSBuild script debugging (Part I, Part II, Part III) on The Visual Studio Blog I immediately though that it is worth remembering about it when (I am not saying if, but rather when here) I need it in the future. The blog itself is also worth checking, as there is much information about VS IDE, MSBuild, and extensibility from the Visual Studio development team.

Help in the Visual Studio 2010

Mmmmm… I don’t know what kind of daemon possessed Microsoft usability engineers when they were designing Visual Studio 2010 help system, but something definitely went very-very-very wrong. :( What’s wrong, you might ask?

  • It opens in a web browser, which kind of sucks as it breaks my normal work-flow (I have to track help tabs in browser, and then close them, and if I open some new tabs, then help is not in place I expect it, etc. etc. etc.)
  • It’s content tree (the thing on the left side) is not really a tree anymore – it just shows top-level hierarchy and then also “path” to current topic. No more, no less. And if you need to go to some other topic, you will immediately lose track of previous topic. So, if you want to “browse around” the documentation – tough luck. What’s even more ugly is that the online help can be at least configured to show full content tree, but offline help won’t allow you any customizations.
  • There is no index. Full stop. Yes, yes – N-O—I-N-D-E-X. They say that there is search, but try to find some API related to paths and that you vaguely remember exists and has name PathBlaBlaBla (where BlaBlaBla is some meaningful name) and you will see that the search is as useless as it can only get.

Conclusion: new help system is VS2010 is light years behind that of VS2008 or VS2005.

Can something be done about it? There are at least two partial solutions:

  1. Microsoft Help Viewer Power Tool – simply adds keyword index capability to the Help Viewer, with an option to display help in a standalone window.
  2. Help 3 Viewer goes much further: it shows VS 2010 help in a traditional help viewer (similar to “old” DExplore) with full TOC and Index, and features multiple document tabs. There are other features too, and it can be set as default VS2010 help viewer.

I hope that these tools will help you with your help experience :) .