<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://inertwall.spaces.live.com/mmm2008-05-17_13.22/rsspretty.aspx?rssquery=en-US;http%3a%2f%2finertwall.spaces.live.com%2fcategory%2fProgramming%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Everyone else is doing it: Programming</title><description /><link>http://inertwall.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catProgramming</link><language>en-US</language><pubDate>Thu, 22 May 2008 08:09:05 GMT</pubDate><lastBuildDate>Thu, 22 May 2008 08:09:05 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://inertwall.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-3318158863235352075</live:id><live:alias>inertwall</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>Is this the worst program ever made?</title><link>http://inertwall.spaces.live.com/Blog/cns!D1F38818208AF9F5!456.entry</link><description>&lt;p&gt;Quite possibly.
&lt;p&gt;Ok, so SpectateSwamp has been annoying me with his trolling on Channel9 - and his ludicrous search app - so when he finally challenged the Windows Desktop Search team to a comparison I had to do it. (Note, I'm nothing at all to do with the WDS team, I though it'd be funny.)
&lt;h2&gt;Installation experience:&lt;/h2&gt;
&lt;h3&gt;SpectateSwampSuperCrappySearch (SSSCS):&lt;/h3&gt;
&lt;p&gt;Actually, this is pretty simple, in the same way that &amp;quot;installing&amp;quot; a text file might be simple. It's a single EXE so put it somewhere and run it.
&lt;h3&gt;WDS:&lt;/h3&gt;
&lt;p&gt;Fairly standard installation process, nothing good nor bad to say really. It did require being restarted when I moved the index files, but that's just me.
&lt;h2&gt;User experience:&lt;/h2&gt;
&lt;h3&gt;SSSCS:&lt;/h3&gt;
&lt;p&gt;Three little letters - WTF? No, seriously how the hell does it work. Here's a screenshot of the horrendous thing in action:&lt;a href="http://photobucket.com/"&gt;&lt;img style="width:351px;height:359px" height=435 alt="Photobucket - Video and Image Hosting" src="http://i141.photobucket.com/albums/r76/inert_wall/crapsearch.png" width=422 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Does anyone know how this works? Anyone???
&lt;p&gt;ANYONE? 
&lt;p&gt;Ok, no problem it says HELP, so I'm guessing I can type HELP and get some help.
&lt;p&gt;Right...
&lt;p&gt;Well, you can type HELP and you get something - I don't know what it is, but it's something.  &lt;a href="http://photobucket.com/"&gt;&lt;img style="width:360px;height:326px" height=399 alt="Photobucket - Video and Image Hosting" src="http://i141.photobucket.com/albums/r76/inert_wall/helpful.png" width=428 border=0&gt;&lt;/a&gt; 
&lt;p&gt;Does anyone know what it is?
&lt;p&gt;Right, so I try a few &amp;quot;commands&amp;quot; out - can't get it to do anything, I do get it to open a text file. Notepad can do that though.
&lt;p&gt; 
&lt;h3&gt;WDS:&lt;/h3&gt;
&lt;p&gt;Simple case (which I failed dismally to achieve on Spectate Search) let's find a document, any document. Here's how it's done in WDS - you see that little box on the taskbar - type something.
&lt;p&gt;And this is what you get:&lt;a href="http://photobucket.com/"&gt;&lt;img height=393 alt="Photobucket - Video and Image Hosting" src="http://i141.photobucket.com/albums/r76/inert_wall/WDS.png" width=372 border=0&gt;&lt;/a&gt; 
&lt;p&gt;The immediate differences from SSSCS should be obvious, firstly you have some results. These results contain the words you were looking for.
&lt;p&gt;I'm not even going to go into the advanced search syntax stuff - I'll leave that to someone who knows something. The second difference is that this program wasn't written by a loony on acid. Look, it has useful labels on stuff so you know what it does, and you don't have to type in P to get to a list of god-knows-what (I think it was a list of stuff I typed in, at least some of it looked familiar.)
&lt;h2&gt;Conclusion:&lt;/h2&gt;
&lt;p&gt;Well, SSSCS gets +1 on the installation over WDS, then it promptly loses about a million points for being utterly unusable and clearly written using squirrels.
&lt;p&gt;WDS on the other hand is quite nice, useful and simple to understand.
&lt;p&gt;Well, that was fun - let's delete the thing now after having awarded it &amp;quot;worst program I have ever seen including the one I wrote which was supposed to print a message but restarted the PC.&amp;quot; At least that program was consistent and could have been used for something. &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3318158863235352075&amp;page=RSS%3a+Is+this+the+worst+program+ever+made%3f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=inertwall.spaces.live.com&amp;amp;GT1=inertwall"&gt;</description><comments>http://inertwall.spaces.live.com/Blog/cns!D1F38818208AF9F5!456.entry#comment</comments><guid isPermaLink="true">http://inertwall.spaces.live.com/Blog/cns!D1F38818208AF9F5!456.entry</guid><pubDate>Thu, 09 Nov 2006 13:45:51 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://inertwall.spaces.live.com/blog/cns!D1F38818208AF9F5!456/comments/feed.rss</wfw:commentRss><wfw:comment>http://inertwall.spaces.live.com/Blog/cns!D1F38818208AF9F5!456.entry#comment</wfw:comment><dcterms:modified>2006-11-09T13:45:51Z</dcterms:modified></item><item><title>When Syntax attacks - 2</title><link>http://inertwall.spaces.live.com/Blog/cns!D1F38818208AF9F5!314.entry</link><description>&lt;div&gt;I found a neatish solution to the problem I was having before. It relies on overriding the () operator - and hence creating a &amp;quot;function object&amp;quot; - of functor if you're into ridiculous shortened words.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Which essentially turns your pointer to your object into a function pointer - without the need to store the object anywhere.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Which is marvellous. (Except you can only have one function per object this way.)&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;If you're into template metaprogramming you can create a template for a Delegate like a .NET delegate this way. Which solves many problems and is lovely.&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3318158863235352075&amp;page=RSS%3a+When+Syntax+attacks+-+2&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=inertwall.spaces.live.com&amp;amp;GT1=inertwall"&gt;</description><comments>http://inertwall.spaces.live.com/Blog/cns!D1F38818208AF9F5!314.entry#comment</comments><guid isPermaLink="true">http://inertwall.spaces.live.com/Blog/cns!D1F38818208AF9F5!314.entry</guid><pubDate>Sun, 07 May 2006 17:31:17 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://inertwall.spaces.live.com/blog/cns!D1F38818208AF9F5!314/comments/feed.rss</wfw:commentRss><wfw:comment>http://inertwall.spaces.live.com/Blog/cns!D1F38818208AF9F5!314.entry#comment</wfw:comment><dcterms:modified>2006-05-07T17:31:17Z</dcterms:modified></item><item><title>When Syntax attacks.</title><link>http://inertwall.spaces.live.com/Blog/cns!D1F38818208AF9F5!312.entry</link><description>&lt;div&gt;Ok, so I've got a bizarre situation in C++, whereby two objects on two different threads want to run methods on each other.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;My solution is to have a public interface which packages up the details of the function call in a struct and sends a message to the thread asking to invoke the function.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;So I've got a nice struct with a function pointer in and all the arguments in. I wanted to have a vector or a queue or some-such so that I could have a generic container and put the function pointer in first and the arguments in in order - but C++ doesn't like so many different types in an array so I've got a struct for each combination of arguments. Fortunately they're all void func(void) functions so no worries.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;However, calling the function at the other end is a marvellous example of syntax gone mad. Here's the call. The pointer to the Invocation object has to be passed as an LPARAM, as windows messages suck.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;(&lt;font color="#0000ff"&gt;this&lt;/font&gt;-&amp;gt;*((Invocation*)pL)-&amp;gt;pFunc)();&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;I ended up almost moving brackets and asterisks around at random to get the correct line. I had assumed it would be:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;(*(&lt;font color="#0000ff"&gt;this&lt;/font&gt;-&amp;gt;((Invocation*)pL)-&amp;gt;pFunc))();&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;But that didn't seem to work. Sigh…&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;And for the curious, can you tell me why this won't work if it's ported to windows x64 (it'll work on Win64 as it is though).&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-3318158863235352075&amp;page=RSS%3a+When+Syntax+attacks.&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=inertwall.spaces.live.com&amp;amp;GT1=inertwall"&gt;</description><comments>http://inertwall.spaces.live.com/Blog/cns!D1F38818208AF9F5!312.entry#comment</comments><guid isPermaLink="true">http://inertwall.spaces.live.com/Blog/cns!D1F38818208AF9F5!312.entry</guid><pubDate>Tue, 18 Apr 2006 14:01:41 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://inertwall.spaces.live.com/blog/cns!D1F38818208AF9F5!312/comments/feed.rss</wfw:commentRss><wfw:comment>http://inertwall.spaces.live.com/Blog/cns!D1F38818208AF9F5!312.entry#comment</wfw:comment><dcterms:modified>2006-04-18T14:01:41Z</dcterms:modified></item></channel></rss>