<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>It's one thing to say &amp;quot;somebody should do this&amp;quot;, but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx</link><description>You forgot the "how".</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7222980</link><pubDate>Thu, 24 Jan 2008 18:07:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7222980</guid><dc:creator>Thom</dc:creator><description>&lt;p&gt;Programmers should have to pass a test to verify that they will not annoy Raymond. &amp;nbsp;Only then should they be allowed to write code which makes it into software that has the potential to annoy me.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7223508</link><pubDate>Thu, 24 Jan 2008 18:55:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7223508</guid><dc:creator>richard</dc:creator><description>&lt;p&gt;A possible corollary to this is the way code gets modified when an unexpected bug does arise. I find the tendency is to add tests, handling and diagnostics for that specific problem (usually the result of a subtle coding fault). Despite it having been an unexpected problem (granted, we could debate if the design was sufficiently complete if it failed to consider this error condition).&lt;/p&gt;
&lt;p&gt;I find this often adds complexity to the code, without adding benefit.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7223878</link><pubDate>Thu, 24 Jan 2008 19:27:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7223878</guid><dc:creator>Medinoc</dc:creator><description>&lt;p&gt;I think that rather than sending a fake WM_QUERYENDSESSION, testing the program calls DefWindowProc() could be more reliable by sending a message in the &amp;quot;registered&amp;quot; range.&lt;/p&gt;
&lt;p&gt;Registered using a MAC-based GUID for good measure.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7224535</link><pubDate>Thu, 24 Jan 2008 20:31:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7224535</guid><dc:creator>Mikkin</dc:creator><description>&lt;p&gt;Testing never proves the absence of bugs, only their presence.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7225416</link><pubDate>Thu, 24 Jan 2008 21:44:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7225416</guid><dc:creator>Ray Trent</dc:creator><description>&lt;p&gt;Hate to beat a dead horse, but once again the problem is insufficient foresight on the part of the designers of Windows.&lt;/p&gt;
&lt;p&gt;WindowProcs should *return* whether they handled a message or not, and the *system* should call DefWindowProc if they don't. This whole issue then would devolve to &amp;quot;the application lied to Windows, so it gets what it deserves&amp;quot;.&lt;/p&gt;
&lt;p&gt;If a message handler needs to return a value, it should do so by reference, *like any other sane event handler*. That allows for more flexibility in return types, but more importantly, the regular return value really wants to be an error code. Microsoft figured this out by the time COM came around, but it was too late.&lt;/p&gt;
&lt;p&gt;(note: People who might be inclined to put in a vote for using exception handling rather than an error code for this kind of thing should consider what the word &amp;quot;exception&amp;quot; means... but I generally think exceptions are a bad idea... if you *really* want to have transparent error handling (ugh), aspects are a more general and cleaner solution)&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7225467</link><pubDate>Thu, 24 Jan 2008 21:47:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7225467</guid><dc:creator>JenK</dc:creator><description>&lt;p&gt;&amp;lt;i&amp;gt;&amp;quot;Testing never proves the absence of bugs, only their presence.&amp;quot;&amp;lt;/i&amp;gt;&lt;/p&gt;
&lt;p&gt;Not to mention &lt;a rel="nofollow" target="_new" href="http://en.wikipedia.org/wiki/Halting_problem"&gt;http://en.wikipedia.org/wiki/Halting_problem&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7225863</link><pubDate>Thu, 24 Jan 2008 22:23:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7225863</guid><dc:creator>Joe Butler</dc:creator><description>&lt;p&gt;Ray Trent: &amp;quot;Hate to beat a dead horse, but once again the problem is insufficient foresight on the part of the designers of Windows.&amp;quot;&lt;/p&gt;
&lt;p&gt;The point was that a message had been mishandled. Your assertion that it would all be rosy if window procedures didn't work the way they do doesn't really follow on from that. &amp;nbsp;People would still be able to mishandle messages. &amp;nbsp;Take the 50% of programmers on the the left hand side of the normal distribution and they will undoubtebly demonstrate the consumate skills required to mess the simplest of things up.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7226064</link><pubDate>Thu, 24 Jan 2008 22:38:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7226064</guid><dc:creator>m0ff</dc:creator><description>&lt;p&gt;Yeah, I can't agree more with that comment on 'Halting Problem'. I tend to observe that writing a piece code can be quite challenging, but then writting a test for it is much more difficult. It involves some scripting, frameworks and all that jazz. This repeats on and on, no matter Windows, Linux, VxWorks or whatever. &lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7226950</link><pubDate>Thu, 24 Jan 2008 23:47:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7226950</guid><dc:creator>Nicholas</dc:creator><description>&lt;p&gt;Ray Trent writes: &amp;quot;WindowProcs should *return* whether they handled a message or not,&amp;quot;&lt;/p&gt;
&lt;p&gt;That doesn't solve anything. &amp;nbsp;It is only a lateral move. &amp;nbsp;The way it currently is and the way you suggest are both of the form &amp;quot;Windows is relying on the program to do something.&amp;quot; &amp;nbsp;In your case you want Windows to rely on the return value of the window procedure. &amp;nbsp;But, the return value may be incorrect. &amp;nbsp;How is an application that may return the wrong return value different from an application that may forget to call DefWindowProc?&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7227139</link><pubDate>Fri, 25 Jan 2008 00:03:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7227139</guid><dc:creator>Aaron</dc:creator><description>&lt;p&gt;Ray Trent: Technically speaking, isn't just about every problem imaginable caused by -somebody's- insufficient foresight? &amp;nbsp;That is why we have the expression, &amp;quot;the benefit of hindsight&amp;quot;.&lt;/p&gt;
&lt;p&gt;By Raymond's example, and using your logic, we wouldn't have world hunger if people in those starving countries had had the foresight to stop making babies and start growing crops. &amp;nbsp;It's a ridiculous and downright pompous assertion.&lt;/p&gt;
&lt;p&gt;Not to mention, your solution doesn't actually solve the non-trivial problem, but I'm sure you foresaw that too...&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7227450</link><pubDate>Fri, 25 Jan 2008 00:29:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7227450</guid><dc:creator>JCM</dc:creator><description>&lt;p&gt;On a related note, I've been working in the world of automated testing for the past couple of years. I very often have to tell colleagues around here that, &amp;quot;Everything is easy in English.&amp;quot;&lt;/p&gt;
&lt;p&gt;They usually look at me like I was speaking a foreign language.&lt;/p&gt;
&lt;p&gt;Although I wrote my first program back in 1982 when I was in the sixth grade, I am by education an electrical engineer. Most of my colleagues don't have the background that I do, and can't understand how much work there is behind their &amp;quot;just have it do x&amp;quot; requests.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7227607</link><pubDate>Fri, 25 Jan 2008 00:46:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7227607</guid><dc:creator>toomuchwin32</dc:creator><description>&lt;p&gt;Apart from agreeing vehemently with Aaron, Nicholas, Joe Butler and the others that Ray Trent's &amp;quot;brilliant&amp;quot; solution does not actually solve the problem at hand, I must point out that it, in fact, creates a new problem. There are cases where the programmer might want to call DefWindowProc for a message &amp;quot;first&amp;quot; and then do some processing later. As a random example, I might want pass the WM_SETCURSOR message to DefWindowProc, let it do it's thing (i.e. set the cursor based on the class cursor etc) and then do some post-processing. If Windows followed what Ray Trent suggests we would need a &amp;quot;Pre&amp;quot; and a &amp;quot;Post&amp;quot; message for every windows message.&lt;/p&gt;
&lt;p&gt;Criticising someone else's lack of foresight - aah such an easy thing to do.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7228188</link><pubDate>Fri, 25 Jan 2008 01:35:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7228188</guid><dc:creator>A Bad Coder</dc:creator><description>&lt;p&gt;You test for conditions that are unacceptable. &amp;nbsp;Something may be impossible to test because of the halting problem, but that does not mean there is no solution. &amp;nbsp;The solution is to remove the unacceptable conditions.&lt;/p&gt;
&lt;p&gt;In this case, each program implements their own GUI even if by calling a default implementation and if they fail to do so correctly the GUI fails -- windows don't move, or don't repaint, deadlock, or whatever.&lt;/p&gt;
&lt;p&gt;Immovable windows simply do not happen in X11 or OS X, so there is no need to test each program for correctness. &amp;nbsp;These do not occur because the design precludes such unacceptable conditions from happening. &amp;nbsp;When you are faced with a program that can not be tested, the problem is not one of testing but of design. &amp;nbsp;The problem is Windows.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7229347</link><pubDate>Fri, 25 Jan 2008 03:01:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7229347</guid><dc:creator>Dean Harding</dc:creator><description>&lt;p&gt;A Bad Coder: So how do you propose we go and change Windows 3.x then?&lt;/p&gt;
&lt;p&gt;In fact, the specific problem you mention has already been fixed in Vista with the DWM (and to a lesser extent in XP where the window manager will take over moving, maximizing and minimizing windows if it detects the window procedure is not responding) so you're complaining about a problem that was fixed maybe 5 or 6 years ago. Some of us have learnt to move on...&lt;/p&gt;
&lt;p&gt;But the *general* problem is not specific to Windows. The general problem being described here is one of programmers making mistakes (and expecting the framework to detect and correct the mistakes). I'd love to hear how OSX and X11 have solved *that* particular problem.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7229716</link><pubDate>Fri, 25 Jan 2008 03:26:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7229716</guid><dc:creator>harmony7</dc:creator><description>&lt;p&gt;People picking on Windows for not having an immune window message handling system don't realize that this is the aspect of Windows that really makes it powerful.&lt;/p&gt;
&lt;p&gt;An application gets to look at a window message sent to one of its windows and decide to process it itself, modify its parameters and pass it to the default window procedure, generate your own window messages in response (such as seen by DefWindowProc as well, such as by creating WM_CHAR messages in response to WM_KEY*), or even let the window outright ignore it completely--I'm sure there are legitimate cases for all of these cases, and you can even do any of these in combination. &amp;nbsp;Of course, it needs to be implemented correctly, but this is a computer, and it's just a machine that mindlessly performs a list of instructions you provide to it.&lt;/p&gt;
&lt;p&gt;The halting problem is mentioned above. &amp;nbsp;What if a program has an inadvertent while(true); in the window procedure somewhere? &amp;nbsp;How would a standardized test differentiate between that and a procedure that is just taking a very long time to complete? &amp;nbsp;(Test using a timeout? &amp;nbsp;But what if you set a timeout to 30 seconds and the window message ends up taking 31 seconds to complete, etc.)&lt;/p&gt;
&lt;p&gt;I really don't see what this argument is about. &amp;nbsp;When I buy any product, I have to hope that it has been built correctly, software or not.&lt;/p&gt;
&lt;p&gt;What are you going to ask for next, idiot-proof cars that know not to drive on the wrong side of the road? &amp;nbsp;And then one day a pedestrian jumps out of nowhere, and the car will prevent you from swerving to an empty lane to prevent the accident. &amp;nbsp;Not going to happen. &amp;nbsp;The driver is trusted to do the right thing.&lt;/p&gt;
&lt;p&gt;Let's also hope that your house is build to withstand earthquakes. &amp;nbsp;How is this any different than hoping that your program doesn't end in an endless loop?&lt;/p&gt;
&lt;p&gt;The problem is not about Windows --- it's not the OS's responsibility to prevent a thread from becoming unresponsive when it encounters a while(true); .&lt;/p&gt;
&lt;p&gt;Raymond is using WndProc/DefWindowProc as only an example of how some people say that certain things should be done without having any idea of how it should be done.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7230191</link><pubDate>Fri, 25 Jan 2008 04:07:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7230191</guid><dc:creator>Miral</dc:creator><description>&lt;p&gt;As Medinoc suggested, testing that in the general case a window procedure calls DefWindowProc for unknown messages is easy -- just obtain a message id that the program is guaranteed to not handle (eg. a registered message), hook DefWindowProc so you know whether it gets called, and then pass it the message.&lt;/p&gt;
&lt;p&gt;This at least is a reasonable test, even if it doesn't test that the app processes those messages it does want to process &amp;quot;correctly&amp;quot; -- since that is essentially impossible to test, as Raymond states.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7230794</link><pubDate>Fri, 25 Jan 2008 04:48:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7230794</guid><dc:creator>Dean Harding</dc:creator><description>&lt;p&gt;Miral: but to what end? Whether the application passes that particular test or not doesn't actually tell you anything useful.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7232682</link><pubDate>Fri, 25 Jan 2008 06:39:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7232682</guid><dc:creator>Triangle</dc:creator><description>&lt;p&gt;&amp;quot;But the *general* problem is not specific to Windows. The general problem being described here is one of programmers making mistakes (and expecting the framework to detect and correct the mistakes). I'd love to hear how OSX and X11 have solved *that* particular problem.&amp;quot;&lt;/p&gt;
&lt;p&gt;That depends on what your definition of Windows is. If you mean the win32 API, then I have to disagree with you. The win32 api is EXTREMELY subtle, the documention is sometimes lacking and/or inaccurate, and many things which Should Just Work work pretty poorly. I personally chalk it up to the fact Windows is an extension of an operating system designed to run in 320 KB of RAM, but say what you will. One thing that I'm sure of: It is the reason compatibility problems and workarounds plague Windows so much.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7240784</link><pubDate>Fri, 25 Jan 2008 17:29:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7240784</guid><dc:creator>Dave Harris</dc:creator><description>&lt;p&gt;Dean Martin: whether or not the application passes the test does tell you something interesting.&lt;/p&gt;
&lt;p&gt;Specifically, if it doesn't pass, then the application has a serious bug and should be refused certification (or whatever the consequences of failing are). The test won't find all bugs, but nobody sane expects it to. If the test filters out a few broken programmes, it will be useful.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7241270</link><pubDate>Fri, 25 Jan 2008 18:10:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7241270</guid><dc:creator>dave</dc:creator><description>&lt;p&gt;harmony7: &amp;quot;People picking on Windows for not having an immune window message handling system don't realize that this is the aspect of Windows that really makes it powerful.&amp;quot;&lt;/p&gt;
&lt;p&gt;Butbutbut, You Don't Get It. &amp;nbsp;People want a system that will allow applications to do everything they should do and forbid them from doing anything they shouldn't do.&lt;/p&gt;
&lt;p&gt;I mean, all we have to do is get everybody to agree on what goes into which category and then solve he halting problem, how hard can it be?&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7241858</link><pubDate>Fri, 25 Jan 2008 19:03:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7241858</guid><dc:creator>A Bad Coder</dc:creator><description>
&lt;p&gt;"A Bad Coder: So how do you propose we go and change Windows 3.x then?"&lt;/p&gt;

&lt;p&gt;One thing you can do is have a known-good library on top of it so applications prefer to use a different design (kind of like how .net solves some of these problems).&lt;/p&gt;

&lt;p&gt;"In fact, the specific problem you mention has already been fixed ... to a lesser extent in XP where the window manager will take over moving, maximizing and minimizing windows if it detects the window procedure is not responding"&lt;/p&gt;

&lt;p&gt;So in other words XP *tests* the program for correctness? &amp;nbsp;Which is exactly what this thread and theory says is not possible to do?&lt;/p&gt;

&lt;p&gt;"DWM ... Some of us have learnt to move on..."&lt;/p&gt;

&lt;p&gt;/sigh&lt;/p&gt;

&lt;p&gt;That is exactly my point, change the design don't try to test things which are untestable. EOT&lt;/p&gt;
&lt;div class="post"&gt;[&lt;i&gt;The window manager detects only the "program takes too long to give an answer" case. It doesn't detect the "program immediately returns the wrong answer" case. The problem with WM_DEVICEBROADCAST wasn't that programs were not responding to the message; it's that they were responding to the message incorrectly. How do you know that when a program says "No, I'm still using that device", it is telling the truth? -Raymond&lt;/i&gt;]&lt;/div&gt;</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7242150</link><pubDate>Fri, 25 Jan 2008 19:23:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7242150</guid><dc:creator>Anon</dc:creator><description>&lt;p&gt;I read that in Kernel Mode Windows 95 would send a message to VxDs that they couldn't possibly handle and checked that they said they couldn't handle it. &lt;/p&gt;
&lt;p&gt;IIRC in the checked build there was a message. But it could have refused to load them. Then again enforcement probably isn't an option for Windows user mode applications since there is probably a commercially important app that break every possible rule. &lt;/p&gt;
&lt;p&gt;In kernel mode if you enforce the rules from the start you can simplify things. In fact the NT kernel will bug check if a driver breaks a rule.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7243044</link><pubDate>Fri, 25 Jan 2008 20:30:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7243044</guid><dc:creator>Mikkin</dc:creator><description>&lt;p&gt;&amp;gt;&amp;gt; Something may be impossible to test because of the halting problem, but that does not mean there is no solution. &amp;nbsp;The solution is to remove the unacceptable conditions.&lt;/p&gt;
&lt;p&gt;So the great leap forward is to remove support for Turing-equivalent computation! Why didn't I think of that?&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7243894</link><pubDate>Fri, 25 Jan 2008 21:16:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7243894</guid><dc:creator>Jim</dc:creator><description>&lt;p&gt;I like Raymond's idea a lot, but I think he addresses the idea to wrong audience. Many users do not realize the &amp;quot;how&amp;quot; part when they ask for functionality, and when you deliver the things they want they immediately change their mind and try to blame on you!!&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7244079</link><pubDate>Fri, 25 Jan 2008 21:27:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7244079</guid><dc:creator>Triangle</dc:creator><description>&lt;p&gt;Friday, January 25, 2008 10:10 AM by dave&lt;/p&gt;
&lt;p&gt;&amp;quot;I mean, all we have to do is get everybody to agree on what goes into which category and then solve he halting problem, how hard can it be?&amp;quot;&lt;/p&gt;
&lt;p&gt;This is a misunderstanding alot of commenters seem to believe, so let me clarify: The halting problem *in general* is not solvable. There are specific cases that can be solved through specific means. It's not _the_ halting problem that needs to be solved, it's _a_ halting problem.&lt;/p&gt;
</description></item><item><title>re: It's one thing to say "somebody should do this", but doing it is another matter</title><link>http://blogs.msdn.com/oldnewthing/archive/2008/01/24/7213752.aspx#7310853</link><pubDate>Tue, 29 Jan 2008 21:44:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7310853</guid><dc:creator>Ian Boyd</dc:creator><description>&lt;p&gt;i'd be quite happy if a test tested whatever it could.&lt;/p&gt;
&lt;p&gt;i'd be quite happy with a test harness added to AppVerifier that injects fake messages during PeekMessage (a.l.a &amp;quot;Sure, we do that&amp;quot; &lt;a rel="nofollow" target="_new" href="http://blogs.msdn.com/oldnewthing/archive/2004/02/11/71307.aspx"&gt;http://blogs.msdn.com/oldnewthing/archive/2004/02/11/71307.aspx&lt;/a&gt;), and log if the message didn't pop out the bottom through DefWindowProc.&lt;/p&gt;
&lt;p&gt;If the developer has no idea that they are even supposed to call DefWindowProc, they'll be informed pretty quickly through their own testing with AppVerifier. And the more screens they test, the more problems they'll find.&lt;/p&gt;
&lt;p&gt;And it's better than nothing.&lt;/p&gt;
</description></item></channel></rss>