About Me

Mitch Wheat has been working as a professional programmer since 1984, graduating with a honours degree in Mathematics from Warwick University, UK in 1986. He moved to Perth in 1995, having worked in software houses in London and Rotterdam. He has worked in the areas of mining, electronics, research, defence, financial, GIS, telecommunications, engineering, and information management.
Mitch has worked mainly with Microsoft technologies (since Windows version 3.0) but has also used UNIX. He holds the following Microsoft certifications: MCPD (Web and Windows) using C# and SQL Server MCITP (Admin and Developer). His preferred development environment is C#, .Net Framework and SQL Server. Mitch has worked as an independent consultant for the last 10 years, and is currently involved with helping teams improve their Software Development Life Cycle. His areas of special interest lie in performance tuning

I like playing Devils Advocate! As I mentioned in my reply to Darren's post, I see Vista as overwhelmingly more important for developers than end users in the short term. I agree that applications maketh the OS (isn't that always true?). End users want new features when they make their life easier (after factoring in the pain of any re-learning process)

Being able to blog from within Office 2007 is great for people who have a blog, but does the average user care? No, of course they don't. Where are the adaptive applications that learn a user’s habits? That adapt to specific behaviour (not quite the same as annoyingly hiding infrequently used menu items!). If you give users software that feels like 'it cares' about the user you get ‘buy-in’ and a higher tolerance for change from them.

Here’s an idea: build in the ‘Adaptive Decisions Widget’ that keeps a track of all (revertable) decisions that the OS and Applications make on my behalf, for instance if I consistently reply X times to the same question, ask me if I’d rather not be asked, and store a decision if one is made. It’s a bit like Alan Cooper’s design ethic: don’t ask me to confirm a delete action, just peform the action but make it un-doable. Give me a warm fuzzy glow, instead of a resigned sigh!

Mitch Denny wrote:>>"What operating system upgrades do is set a baseline which can shorthand>>discussions, for example, because I know that Vista is going to ship with WPF, WCF >>and WF I can simply say “you must be running Windows Vista to run this software”."

I not even sure that will be true: what about new versions of the framework? (we've had two versions in this XP iteration). We have even seen people in the ausdot stanski list saying that they had to stick with 1.1 of the .Net framework, due to the inability to get 2.0 installed (due to its size). Even if it is true, I still think it directly benefits developers of new software more than end users. If you write a new application and want to maximise your target market and profits, you do not force users to have the latest OS and nothing else!

Inside many organisations, the main (even single) driving force for developing browser based applications is the zero intsall footprint. Having gone down that path, there seems little incentive for such organisations to swap to vista so that you can re-write all your web apps to run as windows forms taking advantage of WPF, WF, WCF, WWF.

There are a heck of a lot of large organisations still running Windows 2000!

I lay down a challenge: name a reason why an average office worker will be better off with Vista! (I’m not saying there aren’t any, just curious that’s all…I wonder what the official marketing line is?)

PhotoSynth

Microsoft Live Labs have recently released details of PhotoSynth, an application that takes photo collections, automatically figures out how they relate to each other, and seamlessly stitches them together into a navigable 3D space. I was intrigued because a friend has been working on a similar concept for a several years.

Greg Linwood’s blog is a mine of information on performance tuning: for instance this article on Query Plan Guides (SQL Server 2005 only). Greg gave a great introduction to performance tuning a few months ago in Perth: the slide deck is here.

Ken Henderson’s SQL blog is here. Bart Duncan started blogging just recently, he is a recognised master. His weblog is here

Also check out webcasts by Kimberley Tripp, Bob Beauchemin and Bill Graziano to name a few. The main webcast events page is here. There is a whole section devoted to SQL Server here. There are more to watch than I can find time! These are a remarkable free resource.

SQL Tuning by Dan Tow is excellent but takes a bit of work to get your head around. Applicable to Oracle and many other databases.

The Guru’s Guide to SQL Server Architecture and Internals by Ken Henderson. Very thorough treatment of what’s under the hood. Not directly related to solving a particular performance problem but if you want to understand how the internals affect the layers above this book covers it in great detail.

When will we support Rongo-Rongo?

Free Download: Microsoft MSDN Library May 2006

Microsoft has released the MSDN Library May 2006 Edition as a free download. The MSDN Library was previously only available for download to MSDN subscribers, so if you don’t have an MSDN subscription this is great free documentation. Future editions will be available as they are released:

MSDN Library provides access to essential programming information, includingtechnical white papers, software development kits and code samples necessary todevelop web services and applications. This is an updated version of the MSDNLibrary for Visual Studio® 2005

Creating Smaller Virtual Machines

If you’re a developer and you are not utilising virtual machines (for things like testing installs, different platform installs, presentations, trialing beta software to name but a few) you probably should be. Microsoft’s Virtual Server 2005 and Virtual PC 2004 are both free, and VMware server is free.

What about the giant squid, you may ask? "Wimpy," says Cassell. The giant—whichgrows to 60-plus feet and is one of only four squid, out of the 400 or sospecies found in the oceans, that are human-size or bigger—is generallyconsidered to be fairly placid. In any case, it's so elusive, no modern squidhunter has ever even seen one alive. No, if you want a scary squid, you want aHumboldt. And they're easy to find, teeming by the millions in Pacific watersfrom Chile to British Columbia.

Saturday, July 22, 2006

The Value of Perspective

A few weeks ago I was talking to several developers and a Microsoft evangelist. The topic of conversation turned to the relative proportions of web forms versus windows forms development. One of the developers (who is primarily an ASP.NET developer) put forward his strongly held view that the ratio is at least 80% : 20% in favour of web development. My own view was that it would be much closer to 60% : 40% with web development in the lead. The man from MS, who gets to see a wider cross section of the industry than most, said “It’s actually closer to 50:50”.

The point I’m making is not that my estimate was closer but that it is easy to believe that someone else problems / solutions / environment look exactly like your own: experience gives you a wider perspective. It’s a problem faced by software designers and developers everyday: each project participant has their own view of the world.

Now I wonder if he knows the relative proportion of C# versus VB.NET developers…did someone say “language jihad”? Are you predominately a web or windows forms developer?

Friday, July 21, 2006

Grokking Hanselman

Several people have commented upon the fact that Scott Hanselman is so prolific and knowledgeable that he must not sleep at all. I take the more fantastic view that he has been cloned: in fact if each clone would place their ID number in the title of each post, it would soon become apparent that there is actually an entire army of Scott Hanselman’s out there!

Humor aside, I grok Scott Hanselman. I had heard of Watir (pronounced water) and several other tools for automated Web page acceptance testing, but as usual a Hanselman blog post turned the light on for me. Whilst Fitnesse, a wiki based user acceptance (UA) tool will still be applicable for getting non-programmers writing UA tests, Scott has posted this great idea Time Saver - Using Watir as a Startup Program in your ASP.NET Projects. Not his first great idea and highly unlikely to be his last!

Friday Laughs

Found a great combined RSS feed at diggdot. Not only does it have some great Tech posts but also some funnies, like the Secret Diary of Steve Jobs ! With lines like "The seventies called, and they want their hairstyle back" it is sufficiently silly and irreverent to hit the spot.

DailyWTF: Should I Stay or Should I go?

Do you read thedailywtf? If you enjoy programming you should check it out. Sometimes the stories leaving you wondering whether to laugh or cry! Take this one for instance -- "…utilizing some Excel Interoperability" -- actually described the architecture of the system: a horrid amalgamation of Excel spreadsheets interacting with C# interacting with other spreadsheets…”

It reminded me in a tangential kind of way of an incident in my third full-time job after University. I’d been working at this company for around 3 months and one morning, one of the analysts dropped by and said “…come and look at this”. He opened a large storage cupboard and pointed to a huge pile of that green lined computer paper (you know, the type with the sprocket holes down the sides!) . A quick look showed that it was line after line of a large array initialisation setting each value to zero! The programmer responsible had obviously not quite got up to the point in the training course where loops were introduced!

SourceGear Vault: Vault 3.5 Released

Windows Developer Power Tools

I am really looking forward to the release of this new book: Windows Developer Power Tools, published by O’Reilly (due Nov 2006) and written by James Avery and Jim Holmes.The book is designed to be a reference encyclopedia on many of the productivity and quality improvement tools available to Windows developers. There is coverage of 150 tools spanning 1000 pages so it’s definitely going to be a huge book! Rather than try to be a complete reference for each tool, this book describes each tool, what it is used for, what situations it is best suited to, and then a quick introduction on how to get started with the tool. The book covers automated builds, testing, code generation, metrics, source control, deployment, lifecycle, debugging to name just a few areas.

Thursday, July 20, 2006

Microsoft Research

A blog article by James Avery led me to Robert Scoble’s blog and his post on Microsoft Research. Here he talks about the long term value of of research and makes comparisons between the research programs at Microsoft and Google. He gives the link to Microsoft Research, where there are literally stacks of very interesting research papers available for viewing. The sheer number of papers is mind boggling.

Sunday, July 16, 2006

Feersum Enjun, The Best Software writing…

Since I’m on the subject of books…

I'm also a huge Iain M. Banks fan: his work is outstanding. I used to read volumes of Sci-Fi when I was in my teens but later went off it, finding it a bit childish and sometimes too out of touch with today's science let alone that of tomorrow. So discovering Iain M. Banks was something of a revelation. His last book 'The Algebraist" shows just what an exquisite imagination coupled with an understanding of the possibilities science can create. Simply wonderful. Another of his that really stands out is ‘Feersum Enjun’.

I’ve just finished reading “The Best Software Writing Vol. I”, a collection of essays and commentary, selected and edited by Joel Spolsky. Joel makes the point that “…communicating is one of the most overlooked skills in software development.” Another pithy one-liner is “Show, Don’t tell.” This pretty much sums up what any software development book or training course should do to be successful. That means fewer slides in those PowerPoint presentations and more coding demos! This book won’t tell you how to implement the MVP (model-view-presenter) pattern using TDD (although this MSDN article Model View Presenter by Jean-Paul Boodhoo will!), but it is brimming with anecdotes that encourage you to think outside your locked in terms of reference. This book is worth reading by developers and non-developers alike.

Michael Connelly: Crime Beat

Anyone that knows me well, would know that I read alot of books! Not just technical or non-fiction ones, but a heap of fiction as well. One of the genres I love is high quality crime fiction, typified by Ian Rankin, Michael Connelly, Peter Robinson and to a lesser extent James Lee Burke. Michael Connelly's portrayal of detective Harry Bosch is nothing short of brilliant.

I've read every Michael Connelly book so far; the last was 'The Lincoln Lawyer" (not a Bosch novel, but the next is!) I haven't read anything in the genre that can compare from the point of view of the story content and the quality of the writing.

It would be fair to say I'm very much a Michael Connelly fan. So it was a Huge disappointment to read 'Crime Beat: True Stories of Cops and Killers'. Michael Connelly started out his career as a Police Reporter for the Los Angeles Times and this book is a collection of stories that inspired many of the plots (or sub-plots) in his work. The introduction is great; it has that special quality that all of Michael Connely's books have. But the rest! It just seems to be re-prints of newspaper stories written long before Connelly honed and perfected his art. I was barely able to finish most of the 'stories'. This seems to be a shameless attempt by the publisher to profit on Michael Connelly's writing reputation by way of rehashing old, poorly-edited material.

Saturday, July 15, 2006

Charles Petzold has a Windows Logo Tattoo?

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?

Friday, July 14, 2006

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:

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.

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.

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.]

Wednesday, July 12, 2006

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:

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.

Saturday, July 08, 2006

An error has occurred…

I recently got bitten by a rather annoying and hard to track down error. I was in the process of creating a fairly simple ASP.NET 2.0 application which accesses a SQL Server 2005 database. It worked at home but not in the office…

An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

After doing a few Google searches, it turns out this can be caused by lots of things, and there are quite a few similar error messages for many different reasons. The most often cited one is due to SQL Server 2005 not accepting remote connections by default (which personally I think is ridiculous, it’s a server right, the whole reason for having servers is to allow access by remote clients! But I digress..)

So I fired up the Surface Area Tool 2005 and checked that remote connections were allowed. No problems there.

Another oft cited reason for this error is that a Specific Protocol is not enabled. So I opened up SQL Server Configuration Manager and checked the Client Protocols. All fine.

Of course! It’s probably the firewall. Checked it and in desperation temporarily turned it off. Still no good.

Checked the connection string worked in isolation. Once again nothing wrong there.

After a great deal of hair-pulling and searching I finally found the problem. The ASP.NET role provider was trying to access the role table via a connection string named “LocalSQLServer” defined in the machine.config, and this was pointing to “.\SQLEXPRESS” which was not installed!

I had installed several of the ASP.NET starter kits and doing so had updated the machine.config. The reason it worked at home was because an application had installed SQLExpress without me realising! These links helped me track down the problem:

Microsoft Certification Exam 70-441 Status Change

The title says it all! I received confirmation yesterday that I had passed Exam 70-441: PRO: Designing Database Solutions by Using Microsoft SQL Server 2005, which means I've completed MCITP: Database Developer in addition to MCITP: Database Admin. Might have to look into the requirements for Analysis Services...

Wednesday, July 05, 2006

Gemini: A Free and Easy to Use Issue Tracking System

Following on from my previous post Software Development Must Haves, thought I would mention Gemini, a free and easy to use Issue Tracking System. I've successfully implemented it at 4 different companies and mentioned it on the ausdotnet mailing list a few times.

Several years ago when I was looking at what systems were available, I did a comparison of the free and not-so-free offerings. For ease of use and bang-for-buck, I think that Gemini is by far the best. Gemini has a free license for up to 10 users, and is under AU$500.00 for a commercial license.

It is web based (but also provides a Windows client), supports a customisable SQL Server backend, web service interface and a utility for importing data. With a little work it can be integrated with your Source Code Control system.

If you are developing software and you are not using an Issue Management System, I strongly suggest you check out Gemini.

Sunday, July 02, 2006

SQL Down Under Code Camp

For those who live on the East coast(!) (or happen to be in the vicinity in October), Greg Low has posted details about SQL Down Under Code Camp, which is scheduled to run in Wagga, Wagga (Australia) on October 7th and 8th 2006. This follows on from the success of CodeCampOz, run for the last 2 years.

Saturday, July 01, 2006

Microsoft .Net Security Code Examples

I came across this channel 9 Microsoft Security Wiki that contains some nice code examples for common security programming tasks (in C# and VB.NET), such as generating cryptographically secure random numbers. Not only does it show the correct way to perform a task but also provides ‘how not to’ example code.