I’ve no doubt some of you are too young to have been introduced to the low level details of implementing Windows via Charles Petzold’s seminal work “Programming Windows 3.1” (I really missed those message pumps in VB!). I was browsing through Don Box’s blog and decided that Charles must surely qualify for Uber-Geek status: Charles Petzold has a Windows logo tattoo! I wonder where he put the blue screen tattoo?
Uncategorized
Tech-Ed 2006 Webcasts available for download
The PDC05 webcasts are no longer available for download (although you can buy the 3 DVD set for US499.00!), but the good news is the Tech-Ed 2006 webcasts are available for download and there is some great content (you will need a MS Passport login to access these webcasts). In addition, some of the Tech-Ed 05 presentations that were also given at PDC05 are also available at that link.
Free SQL Server 2005 e-Learning Courses
If you haven’t heard about Microsoft’s e-learning resources, now is the time to go and check them out before the free ones expire. There are 9 SQL Server 2005 courses available free from Microsoft e-learning until later this year. You can download them and view them offline using the offline course viewer, available as separate download. Here is the link: SQL Server 2005 e-Learning courses (You will need a MS passport to download for offline viewing). These are the courses currently offered for free:
Database Admin
Course 2936: Installing and Securing Microsoft® SQL Server™ 2005
Course 2937: Administering and Monitoring Microsoft® SQL Server™ 2005
Course 2938: Data Availability Features in Microsoft® SQL Server™ 2005
Database Developer
Course 2939: Programming Microsoft® SQL Server™ 2005
Course 2940: Building Services and Notifications Using Microsoft® SQL Server™ 2005
Course 2941: Creating the Data Access Tier Using Microsoft® SQL Server™ 2005
Business Intelligence
Course 2942: New Features of Microsoft® SQL Server™ 2005 Analysis Services
Course 2943: Updating Your Data ETL Skills to Microsoft® SQL Server™ 2005 Integration Services
Course 2944: Updating Your Reporting Skills to Microsoft® SQL Server™ 2005 Reporting Services
Free training resources are always a boon and these free ones from Microsoft are no exception. I used them extensively whilst studying for the SQL Server 2005 Beta exams. There are also some free Visual Studio 2005 and TFS courses available.
Microsoft Virtual PC now free!
I’ve just noticed that Greg Low has blogged about Microsoft making Virtual PC free! This is great news! As Greg notes, virtualisation has many benefits for developers.
The download link for Microsoft Virtual PC 2004 SP1 is here.
Boolean what? Rules for Simplification
We were having a small dev meeting the other day, someone said something and I replied “…it’s a bit like applying Boolean Algebra or Karnaugh maps” which resulted in several blank looks. Thinking they had misheard (my diction is not always the clearest) I repeated the statement and gave the example of applying De Morgan’s laws. These are applied by negating the individual terms, changing the AND’s=OR’s and the OR’s=AND ‘s and then negating the whole expression e.g.
A + B = NOT ( (NOT A) . (NOT B))
A . B = NOT ((NOT A) + (NOT B)) where ‘.’ = AND, ‘+’ = OR
Now some of you are probably saying what does this have to do with my day-to-day job? Well, applying these simplification rules can be very useful for simplying ‘if’ logic. I’m not a big fan of those ‘if’ statements that descend 15 levels deep! In fact, I always try and simplify logic to make it more understandable (no more than 3 or 4 nestings is great). I have seen some shockers: a few years ago, one coder whose code was outside my jurisiction would mangle huge, completely unfathomable nested if’s. She just did not get why this was totally wrong. Sigh! [Note: Karnaugh maps are more usually used by electrical engineers to reduce the number of gates required to implement some specific boolean logic.]
Bye Bye Windows Error Reporting
If you’re a developer you will never have seen one of those Windows Error Reporting dialogs right? 😉 Now, I’m sure that Microsoft are putting those Quadzillion error reports to some good use, but I’m equally sure they don’t want to hear from me about my half finished application, that is having, well…, one or two issues! MCPMag describes how to turn off Windows Error Reporting. Open the registry at this key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PCHealth\ErrorReporting
and set these values as follows:
AllOrNone: 1
DoReport: 0
IncludeKernelFaults: 0
IncludeMicrosoftApps: 0
IncludeWindowsApps: 0
ShowUI: 0
Mr. T likes the double-shot espresso
How did I arrive at Paul Davidson’s site? I’m not actually sure, but I’m glad I did. This one is for Wes, a result of all those Mr.T conversations (don’t ask!)
Mr. T likes the double-shot espresso
I wonder if Mr. T has a blog…It would have to be called “I pity the fool”!
Bye Bill
With Bill Gates having departed Microsoft to varying degrees of applause and a great deal of commentary, what will happen to Microsoft? Will they continue to dominate the software landscape for the foreseeable future, or will they succumb to the same fate as IBM? Is it a coincidence that mini-microsoft decided to stop blogging just before Bill Gates left???
In my view, Microsoft has the same fundamental problem that affects all producers of shrink-wrapped software: you eventually reach a point of diminishing returns where you can’t sell the same end user any more of the ‘same’ software (by that, I mean yet another upgraded version of a product, such as Office for example). Hence Microsoft’s abortive foray, spearheaded by Steve Ballmer, into the world of leasing software applications to end users. Is he just waiting for all pervasive DRM to be incorporated deeply into the OS and hardware, and will make another attempt soon?
Now I don’t want to be branded a MS hater (I’m not), but Microsoft’s strength until recently has not been raw innovation. Microsoft knows a good product when they see it, with the usual result of them buying the company that produces it! Microsoft has possibly been the world’s best software ‘refinery’. I wanted to use the word immitator to paraphrase their famous sound bite, but I don’t think that accurately describes what Microsoft does best.
Take the .Net framework for instance. It was hardly that innovative (can you spell Java?), but I applaud what the teams at Microsoft have done. It’s nothing short of bloodly marvelous. Imagine the type of systems you can easily create now compared to ten years ago. And SQL Server 2005; well I think it examplies the best aspects of what Microsoft can do well. I’m not ashamed to say that I love SQL Server! I hope that all MS software will become this solid.
How do companies create great products that sell? Unless it’s a paradigm shift (i.e innovation), one way is to listen to consumers to find out what they want, add expertise and flair, and then give them something that goes byond what they asked for.
I think MS should adopt a policy with more emphasis on innovation if they want to be as successful in the next ten years. The ‘Bayesian’ like abilities of Google are something MS should have been incorporating into their products years ago (especially given the size of Microsoft’s research department). I think Microsoft would better serve their consumers by creating products that contain more ‘think ahead’ for the user, rather than coming up with a succession of new interfaces for the core products (as they seem to have done in Office 2007, although it is early days yet and I’m sure it will include new features of value).
I believe Microsoft is likely to dominate as they move into the corporate office arena of content creation, management and (especially) workflow. No other company is so well positioned with Microsoft’s hooks into the Office suite.
Anyway, that’s enough dribbling on from me!
Roy Osherove Releases Regulazy
Roy Osherove has released a new regular expression tool called Regulazy.
“Regulazy is an attempt to build a small “Expert System” for creating .NET Regular Expressions. It lets the user create an expression based on a real life example of text they would like to parse.”
Embed any File in a .Net Assembly
This is probably old news; I’m posting it here so I can find it again quickly! Here is a simple way to embed any file in a .Net assembly:
Add a file item to an existing project, go to the file’s properties and change the Build Action to ‘Embedded Resource’
Add the following C# code and you’re up and running. I’ve used this technique to embed parameterised default templates into a .Net executable.
///
/// Reads an embedded file from the executing assembly’s resource and returns it as a string.
///
/// Embedded Resource Filename
/// Namespace of the enclosing assembly
/// Embedded resource as string
public string GetEmbeddedResourceFile(string filename, string rootNamespace)
{
string embeddedResource;
Stream strm = null;
Assembly ass = Assembly.GetExecutingAssembly();
if (!rootNamespace.EndsWith(“.”))
rootNamespace = rootNamespace + “.”;
try
{
using (strm = ass.GetManifestResourceStream(rootNamespace + filename))
{
byte[] buffer = new byte[strm.Length – 1];
strm.Read(buffer, 0, buffer.Length);
embeddedResource = System.Text.ASCIIEncoding.ASCII.GetString(buffer);
}
}
catch
{
// Note: It is generally bad practice to consume all exceptions!
// If any error errors, simply return an empty string
embeddedResource = String.Empty;
}
return embeddedResource;
}