<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.slimcode.com/cs/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>slimCODE</title><link>http://www.slimcode.com/cs/blogs/default.aspx</link><description>commUNITY</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Referencing a debug assembly in debug builds, and a release assembly in release builds</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2009/06/12/referencing-a-debug-assembly-in-debug-builds-and-a-release-assembly-in-release-builds.aspx</link><pubDate>Fri, 12 Jun 2009 05:29:41 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:509</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I have a few VS.NET 2008 projects that share usage of libraries I made for Windows Mobile. I used to include the libraries’ projects directly into each solution, but this is leading me to rebuilding those libraries each time, even if the sources do not change often. It also could cause two applications to look like they’re using the same build of those libraries, while they’re not actually the same bits.&lt;/p&gt;  &lt;p&gt;So I decided to move those libraries outside my solutions, and have a separate build for each. Now, I still wanted to reference the debug builds when building the debug versions of my applications, and the release builds when building in release. Turns out you can hack into your project files to accomplish exactly that.&lt;/p&gt;  &lt;p&gt;Open your .csproj files with a text editor and locate your references. They should look like this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;Reference Include=&amp;quot;slimCODE.slimCONTROLS, Version=1.0.9312.0, Culture=neutral, processorArchitecture=MSIL&amp;quot;&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;        &lt;br /&gt;&amp;#160; &amp;lt;HintPath&amp;gt;..\..\Binaries\Release\slimCODE.slimCONTROLS.dll&amp;lt;/HintPath&amp;gt;        &lt;br /&gt;&amp;lt;/Reference&amp;gt; &lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;There are two ways to make the above reference change target based on the active configuration.&lt;/p&gt;  &lt;h4&gt;Add a condition&lt;/h4&gt;  &lt;p&gt;You can add a “Condition” attribute to the &amp;lt;Reference&amp;gt; tag that will make that reference toggle based on that condition. It can be anything. In our case, it would look like this (important stuff in &lt;font color="#ff8080"&gt;&lt;strong&gt;red&lt;/strong&gt;&lt;/font&gt;):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;Reference Include=&amp;quot;slimCODE.slimCONTROLS, Version=1.0.9312.0, Culture=neutral, processorArchitecture=MSIL&amp;quot; &lt;strong&gt;&lt;font color="#ff8080"&gt;Condition=&amp;quot;'$(Configuration)' == 'Release'&amp;quot;&lt;/font&gt;&lt;/strong&gt;&amp;gt;        &lt;br /&gt;&amp;#160; &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;        &lt;br /&gt;&amp;#160; &amp;lt;HintPath&amp;gt;..\..\Binaries\&lt;strong&gt;&lt;font color="#ff8080"&gt;Release&lt;/font&gt;&lt;/strong&gt;\slimCODE.slimCONTROLS.dll&amp;lt;/HintPath&amp;gt;        &lt;br /&gt;&amp;lt;/Reference&amp;gt;        &lt;br /&gt;&amp;lt;Reference Include=&amp;quot;slimCODE.slimCONTROLS, Version=1.0.9312.0, Culture=neutral, processorArchitecture=MSIL&amp;quot; &lt;strong&gt;&lt;font color="#ff8080"&gt;Condition=&amp;quot;'$(Configuration)' == 'Debug'&amp;quot;&lt;/font&gt;&lt;/strong&gt;&amp;gt;        &lt;br /&gt;&amp;#160; &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;        &lt;br /&gt;&amp;#160; &amp;lt;HintPath&amp;gt;..\..\Binaries\&lt;strong&gt;&lt;font color="#ff8080"&gt;Debug&lt;/font&gt;&lt;/strong&gt;\slimCODE.slimCONTROLS.dll&amp;lt;/HintPath&amp;gt;        &lt;br /&gt;&amp;lt;/Reference&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Thus, for each reference you want conditional, you must add a second entry for each subsequent configuration name. Don’t forget to change the &amp;lt;HintPath&amp;gt; accordingly.&lt;/p&gt;  &lt;h4&gt;Cheat the hint&lt;/h4&gt;  &lt;p&gt;Turns out the &amp;lt;HintPath&amp;gt; can contain variables, like $(Configuration). That’s an easier way to redirect to the proper build, given your binaries are located in folders using the configuration names. That was my case.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;Reference Include=&amp;quot;slimCODE.slimFORMS, Version=1.0.9312.0, Culture=neutral, processorArchitecture=MSIL&amp;quot;&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;SpecificVersion&amp;gt;False&amp;lt;/SpecificVersion&amp;gt;        &lt;br /&gt;&amp;#160; &amp;lt;HintPath&amp;gt;..\..\Binaries\&lt;strong&gt;&lt;font color="#ff8080"&gt;$(Configuration)&lt;/font&gt;&lt;/strong&gt;\slimCODE.slimFORMS.dll&amp;lt;/HintPath&amp;gt;        &lt;br /&gt;&amp;lt;/Reference&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Though the first way looks more Kosher, the second way seems to behave correctly too, is simpler, and adapts automatically for each new configuration, given you use the correct folder names. Changing the active configuration does make the reference’s “Path” value in the “Properties” window change accordingly.&lt;/p&gt;  &lt;p&gt;I’ll try both and give you more feedback if one fails.&lt;/p&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=509" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>slimKEYS is now free - Why?</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2009/05/06/slimkeys-is-now-free-why.aspx</link><pubDate>Wed, 06 May 2009 13:49:52 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:490</guid><dc:creator>slimcode</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;In case you &lt;a href="http://www.slimcode.com/cs/blogs/martin/archive/2009/05/06/slimkeys-v1-4-9255-is-released.aspx"&gt;haven't heard yet&lt;/a&gt;, &lt;a href="http://www.slimcode.com/slimKEYS"&gt;slimKEYS&lt;/a&gt; is now free to use. Totally free. No catch, No ads, no malware, nothing.&lt;/p&gt;  &lt;h4&gt;&lt;em&gt;Why would someone earning money from a product decide to make it suddenly free?&lt;/em&gt;&lt;/h4&gt;  &lt;p&gt;Because I never made any money with slimKEYS.&lt;/p&gt;  &lt;p&gt;Now, you're probably thinking &amp;quot;&lt;em&gt;slimCODE decided to make slimKEYS free so they can stop putting energy on it&lt;/em&gt;&amp;quot;, right?&lt;/p&gt;  &lt;h4&gt;&lt;em&gt;Is this the end of slimKEYS?&lt;/em&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;No way!&lt;/strong&gt; For a simple reason: I'm the number one customer myself. I couldn't work on a computer without slimKEYS.&lt;/p&gt;  &lt;h4&gt;&lt;em&gt;Then, why not leave it at 15$?&lt;/em&gt;&lt;/h4&gt;  &lt;p&gt;Because I still dream of seeing slimKEYS becoming a successful product, and I realize my definition of &amp;quot;successful&amp;quot; isn't based on the amount of money I can bring in with slimKEYS, but more with the number of users I can gather. The equation is obvious:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;I'll never make a fortune with slimKEYS, never. &lt;/li&gt;    &lt;li&gt;I want to continue to work on slimKEYS. &lt;/li&gt;    &lt;li&gt;I need motivation in order to work on a product. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So my last attempt in keeping motivation is to make it used by more and more people. And for that, I'll need help from the current very loyal users. Spread the word! Blog it, tweet it! slimKEYS is free, and there's no catch.&lt;/p&gt;  &lt;p&gt;And if people still think it deserves money, it's always possible to &lt;a href="http://www.slimcode.com/shop/slimkeys.aspx"&gt;make donations&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;And besides, if I can't make money with it, why not drive traffic at least?&lt;/p&gt;  &lt;h4&gt;&lt;em&gt;But I paid for slimKEYS! That's not fair!&lt;/em&gt;&lt;/h4&gt;  &lt;p&gt;I agree, it's not fair for those who paid. If you really feel betrayed, you can ask a refund. If you really think that back then, slimKEYS was worth something, but now it doesn't, even some small donation, I'll gladly refund.&lt;/p&gt;  &lt;p&gt;Just &lt;a href="mailto:support@slimcode.com?subject=Refund"&gt;send me an email&lt;/a&gt; with your registration information.&lt;/p&gt;  &lt;h4&gt;&lt;em&gt;Why not make it open source?&lt;/em&gt;&lt;/h4&gt;  &lt;p&gt;The answer should now be obvious: I still want full control and ownership of the hard work I've put into slimKEYS. Else, motivation would drain away a little more. Starting an open source project is a logical pattern. Turning a 4+ years old project into open source is resignation.&lt;/p&gt;  &lt;p&gt;Maybe one day. Once the user base is strong enough? Maybe.&lt;/p&gt;  &lt;h4&gt;&lt;em&gt;How do you pay your bills, then?&lt;/em&gt;&lt;/h4&gt;  &lt;p&gt;I hope this does not surprise you, but slimKEYS is not my only professional activity. I do contracts for custom development, and I also work on other product ideas (too many, must focus!). I'm leaning toward mobile development. For example, I have slimPASSWORD for Windows Mobile coming soon, for opening your slimLAUNCH.Passwords file on your phone. I also have two other Windows Mobile apps in the oven.&lt;/p&gt;  &lt;p&gt;As for DutchTab for Windows Mobile, still at 5$, it will also become free in a few weeks, with a small update. I don't think my &lt;strong&gt;two&lt;/strong&gt; customers will mind.&lt;/p&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=490" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>slimKEYS v1.4.9255 is released!</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2009/05/06/slimkeys-v1-4-9255-is-released.aspx</link><pubDate>Wed, 06 May 2009 13:46:56 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:489</guid><dc:creator>slimcode</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;A &lt;a href="http://www.slimcode.com/slimkeys/History.aspx"&gt;new version&lt;/a&gt; of slimKEYS was &lt;a href="http://www.slimcode.com/slimKEYS/Downloads/slimKEYS.msi"&gt;released yesterday&lt;/a&gt;. The main two new features involve slimSIZE and slimVOLUME, in somewhat related features.&lt;/p&gt;  &lt;p&gt;New with version 1.4.9255, you can tell a slimSIZE hotkey to grow or shrink a window, instead of only forcing a specific size.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;border-top:0px;border-right:0px;" border="0" alt="My Ctrl-Win-Add hotkey" src="http://www.slimcode.com/cs/blogs/files/slimKEYSv1.4.9255isreleased_8936/image.png" width="325" height="327" /&gt; &lt;/p&gt;  &lt;p&gt;In a same thinking, but opposite result, you can now create slimVOLUME hotkeys that set the volume to a specific level, instead of just increasing or decreasing the level. For example, I created myself a Win-VolumeUp hotkey that fixes the volume level to 50%, and another Win-VolumeDown that fixes it to 5%.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;border-top:0px;border-right:0px;" border="0" alt="My Win-VolumeUp hotkey" src="http://www.slimcode.com/cs/blogs/files/slimKEYSv1.4.9255isreleased_8936/image_3.png" width="490" height="532" /&gt; &lt;/p&gt;  &lt;p&gt;Other than those two features, a small change to how the slimLAUNCH window behaves when you type alternate shortcuts. For example, when a FileSystem item is selected, you could press Ctrl-F to open its parent folder. According to my own SDK documentation, the implementation should have made the slimLAUNCH window close, but those were only words. Now it does close the window.&lt;/p&gt;  &lt;p&gt;Oh, and another small detail: &lt;strong&gt;slimKEYS is now free!!!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;(more on this in a following post)&lt;/p&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=489" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>I'm an HTC Touch Pro fan... but why a Pro2?</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2009/02/16/i-m-an-htc-touch-pro-fan-but-why-a-pro2.aspx</link><pubDate>Mon, 16 Feb 2009 14:28:54 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:475</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I'm an &lt;a href="http://www.htc.com/ca/product.aspx?id=52564" target="_blank"&gt;HTC P4000&lt;/a&gt; owner, and I really like having a phone with a sliding keyboard. I had my eyes on the new &lt;a href="http://www.htc.com/ca/product.aspx?id=77510" target="_blank"&gt;HTC Touch Pro&lt;/a&gt; for a couple weeks now, but I just noticed (via &lt;a href="http://twitter.com/wmdev" target="_blank"&gt;@wmdev&lt;/a&gt;) that HTC released a second generation Touch Pro, called &lt;a href="http://www.htc.com/www/product/touchpro2/overview.html" target="_blank"&gt;Touch Pro2&lt;/a&gt; (what did you expect for a name?). I have nothing against multiple generations, they are a sign a company is evolving and improving. The Touch Pro was available since only a couple months. Why release a Pro2 so early? Is the first gen buggy? Is there something we should know about it?&lt;/p&gt;  &lt;p&gt;Looking at the sales pitch for the Pro2, it looks like the only improvement is the conference call features. It's about the only thing they brag about. I decided to compare both specs to get a better glimpse at the differences.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The Pro is smaller in width and height (102 x 51 mm) than the Pro2 (116 x 59 mm), but is actually thicker (18 mm versus 17.25 mm), which is not apparent when looking at photos.&lt;/li&gt;    &lt;li&gt;The display screen is way bigger on the Pro2, at 3.6&amp;quot; instead of 2.8&amp;quot;. This enables a better resolution of 480x800 (WVGA) on the Pro2, versus the 480x640 (VGA) resolution for the Pro.&lt;/li&gt;    &lt;li&gt;The Pro2 is slightly heavier at 175 grams, only 10 more than the Pro at 165 grams. But with a bigger body and screen, that's expected.&lt;/li&gt;    &lt;li&gt;The Pro2's sliding screen can be tilt for better viewing.&lt;/li&gt;    &lt;li&gt;The battery in the Pro2 has a 1500 mAh capacity instead of 1340 mAh for the Pro, but with a WVGA resolution to drive, it shortens the Pro2's use time on WCDMA networks from 378 minutes to 270 minutes (that's a lot). Strangely, on GSM networks, it's the same for both devices (I don't get it).&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The rest is about the same. 512 MB ROM and 288 MB RAM, almost the same Qualcomm processor at 528 MHz (7200A for the Pro2, 7201A for the Pro).&lt;/p&gt;  &lt;p&gt;HTC should really push more the fact it has a bigger screen and better resolution. Those are far more important features for me than conference calls. I was preparing myself to buy a Touch Pro so that I could play with G-Sensor development. I think I'll wait for the Pro2!&lt;/p&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=475" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Non-technical/default.aspx">Non-technical</category></item><item><title>Fixing error code 29506 when trying to install SQL Management Studio Express</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2009/01/30/fixing-error-code-29506-when-trying-to-install-sql-management-studio-express.aspx</link><pubDate>Fri, 30 Jan 2009 18:15:00 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:470</guid><dc:creator>slimcode</dc:creator><slash:comments>7</slash:comments><description>&lt;P&gt;&lt;A href="http://search.yahoo.com/search?p=error+29506+sql+management+studio" target=_blank&gt;Like many others&lt;/A&gt;, I was getting an error code 29506 when trying to install SQL Server Management Studio Express 2005 on my Vista x64 machine. Searching for a fix kept sending me to posts talking about running the MSI as administrator from the beginning, but this didn't solve it for me, neither did it solve it for many other commenters out there.&lt;/P&gt;
&lt;P&gt;The good news is, I did find a solution! And I bet that if you end up reading this post because of a similar error, we have something in common: we downloaded the MSI using Internet Explorer 7 (or 8)! The file gets stamped as "coming from the net", thus has restricted privileges, even when running it as administrator.&lt;/P&gt;
&lt;P&gt;Simply right-click the file and select "Properties". At the bottom of the "General" tab, you should see a security message with an "Unblock" button:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;BORDER-TOP:0px;BORDER-RIGHT:0px;" border=0 alt=image src="http://www.slimcode.com/cs/blogs/files/Fixingerrorcode29506whentryingtoinstallS_BA62/image.png" width=419 height=513&gt; &lt;/P&gt;
&lt;P&gt;Pressing that "Unblock" button will remove metadata associated with that file. Running the MSI again should now work fine, even without running it from an administrator prompt, but I did ran it from an admin prompt just to make sure.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;: As many commenters mentioned, you still need to execute the MSI from an admin command prompt.&lt;/P&gt;
&lt;P&gt;Hope this helps!&lt;/P&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=470" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>Babies Know</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2009/01/28/babies-know.aspx</link><pubDate>Wed, 28 Jan 2009 13:30:28 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:468</guid><dc:creator>slimcode</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I got this by email yesterday. It was too good to leave as an email... And I'm against an email chains, so better start a Twitter chain! ;)&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="354" alt="image0011" src="http://www.slimcode.com/cs/blogs/files/BabiesKnow_775E/image0011.jpg" width="494" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="330" alt="image0022" src="http://www.slimcode.com/cs/blogs/files/BabiesKnow_775E/image0022.jpg" width="494" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="363" alt="image0033" src="http://www.slimcode.com/cs/blogs/files/BabiesKnow_775E/image0033.jpg" width="494" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="387" alt="image0044" src="http://www.slimcode.com/cs/blogs/files/BabiesKnow_775E/image0044.jpg" width="494" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="321" alt="image0055" src="http://www.slimcode.com/cs/blogs/files/BabiesKnow_775E/image0055.jpg" width="494" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="335" alt="image0066" src="http://www.slimcode.com/cs/blogs/files/BabiesKnow_775E/image0066.jpg" width="494" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="363" alt="image0077" src="http://www.slimcode.com/cs/blogs/files/BabiesKnow_775E/image0077.jpg" width="277" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="246" alt="image0088" src="http://www.slimcode.com/cs/blogs/files/BabiesKnow_775E/image0088.jpg" width="339" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="326" alt="image0099" src="http://www.slimcode.com/cs/blogs/files/BabiesKnow_775E/image0099.jpg" width="414" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="276" alt="image01010" src="http://www.slimcode.com/cs/blogs/files/BabiesKnow_775E/image01010.jpg" width="334" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="266" alt="image01111" src="http://www.slimcode.com/cs/blogs/files/BabiesKnow_775E/image01111.jpg" width="326" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;And&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="282" alt="image01212" src="http://www.slimcode.com/cs/blogs/files/BabiesKnow_775E/image01212.jpg" width="366" border="0" /&gt;&lt;/p&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=468" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Non-technical/default.aspx">Non-technical</category></item><item><title>Another slimKEYS release, v1.3.9063</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2009/01/14/another-slimkeys-release-v1-3-9063.aspx</link><pubDate>Wed, 14 Jan 2009 21:54:27 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:460</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;There's a &lt;a href="http://www.slimcode.com/slimKEYS/Downloads/slimKEYS.msi"&gt;new slimKEYS release&lt;/a&gt; around town, version 1.3.9063. Why the &amp;quot;3&amp;quot; in &amp;quot;1.3&amp;quot;? Simply because there was a minor change in the plug-in programming interface, and I'm a purist. But I'm not ashamed of increasing the minor version number, since there's also a new plug-in: &lt;a href="http://www.slimcode.com/slimKEYS/slimZOOM.aspx"&gt;slimZOOM&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.slimcode.com/images/slimZOOM.png" /&gt; &lt;/p&gt;  &lt;p&gt;The default hotkey is &lt;strong&gt;Win-A&lt;/strong&gt;. Move the mouse over the area you wish to zoom in, and press the hotkey. A zoom window will appear. You can press &lt;strong&gt;W&lt;/strong&gt; to toggle the window to use a full monitor or your whole display (yes, for single monitor systems, that's the same thing).&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.slimcode.com/images/slimZOOM-Help.png" /&gt; &lt;/p&gt;  &lt;p&gt;There are many other options, I'll let you play with it to learn more (or &lt;a href="http://www.slimcode.com/slimKEYS/slimZOOM.Demo.aspx"&gt;watch the demos&lt;/a&gt;). As usual, &lt;a href="http://www.slimcode.com/slimKEYS/History.aspx"&gt;many other small things&lt;/a&gt; have been fixed or improved, but one thing worth mentioning is the ability to rename hotkey descriptions to use your own.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="125" alt="Default description" src="http://www.slimcode.com/cs/blogs/files/AnotherslimKEYSreleasev1.3.9063_ED16/image.png" width="478" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="125" alt="Custom description" src="http://www.slimcode.com/cs/blogs/files/AnotherslimKEYSreleasev1.3.9063_ED16/image_3.png" width="478" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="100" alt="image" src="http://www.slimcode.com/cs/blogs/files/AnotherslimKEYSreleasev1.3.9063_ED16/image_4.png" width="578" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Have fun with this new release, and thank you all for the suggestions and bug reports. I'm listening, and I'll continue working on very nice suggestions received &lt;a href="http://www.slimcode.com/cs/forums/default.aspx?GroupID=4"&gt;on the forums&lt;/a&gt; and &lt;a&gt;by email&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=460" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>Souvenir of a PDC</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/11/03/souvenir-of-a-pdc.aspx</link><pubDate>Mon, 03 Nov 2008 15:11:33 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:431</guid><dc:creator>slimcode</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I’m back from &lt;a href="http://microsoftpdc.com/" target="_blank"&gt;PDC 2008&lt;/a&gt;, sitting at my computer, trying to apply in more concrete ways what I’ve learn there, and evaluating how this will affect my projects in the near future. Indeed, &lt;a href="http://azure.com" target="_blank"&gt;Windows Azure&lt;/a&gt; was a great announcement, and seems a great platform, though I haven’t worked with it yet. During the PDC, what seems a great product idea popped up in my mind, and Azure will be the target platform for that idea. But it’s only out off laziness that it won’t be implemented on Amazon or Google platforms. Again, Microsoft is making sure developers are comfortable, have a great - scratch that - an awesome development platform to work with, so they make their technologies de facto in the industry.&lt;/p&gt;  &lt;p&gt;But Azure was expected, written in the sky, the next logical move from Microsoft to address the concurrence of &lt;a href="http://aws.amazon.com/" target="_blank"&gt;Amazon Web Services&lt;/a&gt; and &lt;a href="http://www.google.com/apps/" target="_blank"&gt;Google Apps&lt;/a&gt;. It was even a platform they needed themselves for their web-page app offerings (e.g. &lt;a href="http://channel9.msdn.com/posts/PDCNews/First-Look-Office-14-for-Web/" target="_blank"&gt;Office 14 Web&lt;/a&gt;). I wasn’t going at the PDC to learn more about what was being that &lt;a href="http://mesh.com" target="_blank"&gt;Mesh&lt;/a&gt; thing, but to learn more about the two Windows 7 that they are cooking for us, the desktop and the mobile.&lt;/p&gt;  &lt;p&gt;The first one was a very early glimpse, with cool UI features, but we didn’t learn much of the inners. Ok, we’ll get touch APIs, that’s great. The “libraries” view is a good way to make us forget about one of the three pillars of Longhorn that was dropped after PDC 2003: WinFS. It’s a simple interface with a simple API, which will do the work for a while. But let me give you a good example why it’s still not enough: This morning, my wife needed a picture of Clément to upload to a web site. She doesn’t exactly know where our pictures are located. So opening the “Browse” button on that web site turned out to be quite an adventure for her. Once I told her pictures were in “K:\Photos”, she faced a second problem: She couldn’t browse pictures by tag or date like she’s used to in Windows Photo Gallery or Picasa. She had to open each folder one by one, change the view to see bigger thumbnails, remember paths of interesting pictures while she browsed other folders. Then I told her to open Windows Photo Gallery, find the correct picture, right click it and select “Open File Location”. Ok, great! She ends up in a folder containing 150 pictures, the correct one being selected. All filenames look the same (PICT####.jpg), but she can’t copy that file’s full path, only its folder path. Back to the web app, paste the folder path (which is already a power user action in my book), and search for that filename. Painful.&lt;/p&gt;  &lt;p&gt;This experience really made the cool “libraries” section in Windows 7 become much less cool in my mind. It’s still not enough. The normal computer users need an operating system that does not talk to them in terms of paths, but really in terms of properties. It was time for this shift in 2003, it’s even more pressing now.&lt;/p&gt;  &lt;p&gt;For the moment, Windows 7 is simply an improved Vista, which is not a bad thing. I like Vista, call me crazy if you want, but I live very well with the various UAC and warning prompts. Sure, having less of them will always be welcomed. But it’s still a necessary evil. Ubuntu has them, Mac OS X has them, Vista simply needs to reduce their occurrence. The simple fact that a file downloaded from the net causes two prompts is the single most important aspect the Windows 7 / Explorer / Internet Explorer teams must address. Then a few other Explorer annoyances, and the UAC subject will be almost closed. But Windows 7 wasn’t such a big news at this PDC.&lt;/p&gt;  &lt;p&gt;The other Windows 7 is one very important stone for Microsoft. They have addressed a “corporate developer” need in Windows Azure, but have neglected the &lt;a href="http://www.microsoft.com/windowsmobile/en-us/default.mspx" target="_blank"&gt;Windows Mobile&lt;/a&gt; platform (at least in our eyes, I’m sure that team is working hard). Why? Too “general user”? Wake up! The iPhone is a corporate success too. I saw more iPhones than Blackberrys at this PDC, in the hands of professional developers. And I saw more non-Windows Blackberrys than any Windows Mobile devices combined. Their smaller Windows 7 needs love too, but it’s not at this PDC that it received a hug. The foundations of Windows Mobile are strong. It is a serious operating system with a rich API, which is unfortunately often its biggest flaw. Developers don’t program well for this mobile platform. They use too many resources, apply practices learned from the desktop, do not behave well in this multitasking, application switching context, because they still don’t care about being the active application or not. Hey, it’s not important on Windows, why care about it on Windows Mobile?&lt;/p&gt;  &lt;p&gt;So, what is missing from Windows Mobile? A serious development platform, paradigm, framework. As of today, the Microsoft offering for developing for Windows Mobile can be resumed at two things: Normal Win32, or .NET WinForms applications. In the first case, you’re faced with the desktop way of developing. In the second case, you’re told to work with that obsolete technology that is not good enough for the desktop, and does not apply well to the mobile world anyway. WinForms is a “one form per screen” framework enforcing the notion of a main form. What happens on Windows Mobile when a form opens a child form? You see it twice when you switch between applications. I had to create my own framework based on UserControls to create something more appropriate to the device.&lt;/p&gt;  &lt;p&gt;Then comes what you put on those screens. Windows Mobile gives us the same old controls we have on the desktop, but uglier. The control set on Windows Mobile should be placed in a museum. It is useless when you want to create interfaces that work well with touch devices. Wake up, Microsoft! People can work really well on their iPhones without the need for a pen. I’ve seen people type on their iPhone faster than me on my HTC P4000, even if I have a sliding keyboard. You need to upgrade the user experience on Windows Mobile. And just like you do so good on the desktop, you need to make developers comfortable to develop for it, so their laziness becomes your number one weapon.&lt;/p&gt;  &lt;p&gt;I went to PDC 2008 with the naive intuition I was in for a great surprise about Windows Mobile. I spent 3200$ (PDC + Hotel + Plane) out of my own pockets to be there. What a mistake. The only thing I officially learned was that Silverlight would work on Windows Mobile. But I have no bits to work with yet, and no serious information of how (and if!) it will work as a stand-alone client-based solution. During the various keynotes, we kept seeing the same slide showing the three important areas for Microsoft: The desktop, the web and the phone. But we heard nothing, “nathing”, of that last piece of the equation. Then, on the Ask The Experts evening, when I finally found the Windows Mobile table (which was not where the plan said it was), I could not get any answers, the team clearly bound by a non-disclosure thing. I could only understand, by their smiles and shoulders, that something was coming, but my 2200$ PDC ticket was worth nothing when it was time to learn about it.&lt;/p&gt;  &lt;p&gt;So, this morning, I’m in front of my computer, wondering how I should spend my energies toward the Windows Mobile platform and my future projects, and I have no answer. 3200$ later, I’m at point A. Worse, anybody can watch all the sessions for free, just by visiting &lt;a href="http://channel9.msdn.com/" target="_blank"&gt;Channel 9&lt;/a&gt;. What a slap in the face! That Cocoa thing looks interesting. I heard their documentation is awesome. Maybe that was the price to pay to learn it the hard way?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:564b0630-33fc-41bc-a086-a1bfc5b11d9e" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/PDC+2008" rel="tag"&gt;PDC 2008&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure" rel="tag"&gt;Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+7" rel="tag"&gt;Windows 7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Mobile" rel="tag"&gt;Windows Mobile&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=431" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>PDC 2008 – Day 1</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/10/28/pdc-2008-day-1.aspx</link><pubDate>Tue, 28 Oct 2008 03:11:02 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:430</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;So day one of PDC 2008 is coming to an end, I’ll be going to the “Show Time” special session in a few minutes, then check if there’s a party around. What did that first PDC day bring me exactly? Well, I can now put a name on something obvious that had to come from Microsoft: &lt;a href="http://azure.com" target="_blank"&gt;Windows Azure&lt;/a&gt;. The cloud finally has a name… a better name, that is. I’m still wondering if they did tie the “Operating System” tag to Azure strongly enough. Because that’s what it really is. I kept saying that Live Mesh had to be more than just synching and remoting. Turns out it is only a part of the bigger Azure picture.&lt;/p&gt;  &lt;p&gt;Azure is a good thing for Microsoft. A very good thing, because Microsoft has the developer framework to succeed. They’ll end up doing much better than Amazon or Google, because devs feel very comfortable with the whole Visual Studio echo system.&lt;/p&gt;  &lt;p&gt;The down side is: that wasn’t a very exciting day. All this was expected news, obvious news, the normal path MS had to take to consolidate corporate developers they had a little neglected in the past years.&lt;/p&gt;  &lt;p&gt;Now, it doesn’t mean the “end user” developer must be neglected now. I’m very eager to see tomorrow if the &amp;quot;Other Windows 7” (Mobile) will have his period of fame. The future of Windows Mobile is &lt;strong&gt;much more&lt;/strong&gt; than simply running Silverlight stuff natively on mobile devices. The interface needs a facelift, and the developer community around Windows Mobile needs more support from Microsoft itself. The other reseller players in the industry are doing terrible damage to Windows Mobile’s image. They suck! It’s great to see more APIs, but Microsoft is not just an API company. Enough ingredients, let’s make some recipes. Let’s bring something like the Apple App Store to Windows Mobile. Only Microsoft can make this happen successfully.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:46b24099-f878-4240-8596-ee86d4754e89" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/pdc08" rel="tag"&gt;pdc08&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Azure" rel="tag"&gt;Azure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+7" rel="tag"&gt;Windows 7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Mobile" rel="tag"&gt;Windows Mobile&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=430" width="1" height="1"&gt;</description></item><item><title>Free slimKEYS license if you see me at PDC 2008</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/10/13/free-slimkeys-license-if-you-see-me-at-pdc-2008.aspx</link><pubDate>Mon, 13 Oct 2008 21:08:07 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:429</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I will use a special PDC badge instead.&lt;/p&gt;  &lt;p&gt;I’ve decided to give away &lt;a href="http://www.slimcode.com/slimKEYS/"&gt;slimKEYS&lt;/a&gt; licenses to anyone who recognizes me at the next &lt;a href="http://www.microsoftpdc.com/" target="_blank"&gt;PDC 2008&lt;/a&gt; in Los Angeles. That’s right, free as in beer. Just watch carefully for me and my &lt;a href="http://www.microsoftpdc.com/Social/" target="_blank"&gt;PDC Badge&lt;/a&gt;, in case it reads like this:&lt;/p&gt;  &lt;p&gt;&lt;img title="slimKEYS Free" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="138" alt="slimKEYS Free" src="http://www.slimcode.com/cs/blogs/martin/FreeslimKEYSlicenseifyouseemeatPDC2008_F0F1/slimKEYSFree.png" width="240" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Simply stop me and ask for your free slimKEYS license. If you’re curious, you can even ask me to show you what slimKEYS can do for you. &lt;/p&gt;  &lt;p&gt;But if you don’t see the badge above, no candy! ;-)&lt;/p&gt;  &lt;p&gt;(Maximum of 1 free license per person, no purchase necessary, only valid between October 26th and October 31st, this contest is NOT void in the province of Quebec &lt;a href="http://www.microsoftpdc.com/Social/Contest/ShowOffRules.aspx" target="_blank"&gt;(!)&lt;/a&gt;, participants must &lt;a href="http://www.youtube.com/watch?v=f2b1D5w82yU"&gt;sing this song&lt;/a&gt; in order to claim their price… just kidding!)&lt;/p&gt;  &lt;p&gt;See you at PDC 2008!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1b94f330-edf0-4c67-b8db-150ec66eb5f3" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/pdc08" rel="tag"&gt;pdc08&lt;/a&gt;,&lt;a href="http://technorati.com/tags/slimKEYS" rel="tag"&gt;slimKEYS&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=429" width="1" height="1"&gt;</description></item><item><title>FirstPen – For children to practice handwriting</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/10/08/firstpen-for-children-to-practice-handwriting.aspx</link><pubDate>Wed, 08 Oct 2008 14:54:44 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:426</guid><dc:creator>slimcode</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;My son Clément really likes computers and Pocket PC devices. More than pens and papers. I even gave him my old HP Jornada 545. He’s also having some difficulties with handwriting and precision. So I thought I’d use that attraction to my Windows Mobile phone to make him practice a little. I made an application, called FirstPen, for practicing handwriting.&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="326" alt="image" src="http://www.slimcode.com/cs/blogs/martin/FirstPenForchildrentopracticehandwriting_995B/image.png" width="246" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;The idea is simple. You must complete the gray outline the best you can, without drawing outside. After each letter, the application calculates how well you did it.&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="326" alt="image" src="http://www.slimcode.com/cs/blogs/martin/FirstPenForchildrentopracticehandwriting_995B/image_3.png" width="246" border="0" /&gt; &lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="326" alt="image" src="http://www.slimcode.com/cs/blogs/martin/FirstPenForchildrentopracticehandwriting_995B/image_4.png" width="246" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;This is a first draft, and I need feedback to make sure I’m on the right track. For example, a feature not yet implemented would be to make sure letters that must be done in a single or two strokes are made in a single or two strokes. Another one would be to make sure letters are started at the correct position.&lt;/p&gt;  &lt;p&gt;I’m also looking for fonts that best match how children learn to write at school. It seems every font I find has its flaws. Here are the fonts I’m currently supporting:&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="421" alt="image" src="http://www.slimcode.com/cs/blogs/martin/FirstPenForchildrentopracticehandwriting_995B/image_5.png" width="350" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;As you can see, some of them do not support accented chars, which is a problem for me, but isn’t for English users. Others have guiding lines. This can be very useful, but in order for my precision algo to successfully determine if a letter is well done or not, the letter to draw must be gray, and other decorations must be a lighter green or red. That’s why I must manually edit each letter to make those guiding lines green, like this:&lt;/p&gt;  &lt;p&gt;&lt;img title="a" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" height="206" alt="a" src="http://www.slimcode.com/cs/blogs/martin/FirstPenForchildrentopracticehandwriting_995B/a.png" width="206" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;This is a &lt;strong&gt;painful&lt;/strong&gt; task I’d really like to get rid another way, but since I like the idea, I’ve completed the “DR BY 2” font as a proof of concept. This also opens the door to green helpers, like arrows for direction.&lt;/p&gt;  &lt;p&gt;So, if you want to try this out yourself, &lt;a href="http://www.slimcode.com/FirstPen/Downloads/FirstPen.CAB"&gt;upload this CAB file&lt;/a&gt; to your Windows Mobile device, install it, and give me your impressions. I do not intend of charging for this app. If it grows better with your feedback, everybody will benefit from it, for free.&lt;/p&gt;  &lt;p&gt;By the way, the CAB file is 3 megs because of the embedded images, but I haven’t run PNGCrush on them yet. It should get smaller. Please note that it also requires the .NET 2.0 Compact Framework. It should work on Pocket PC 2003 devices, and Windows Mobile 5 and 6.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:57693fec-9431-4000-97cc-da52cb0015b8" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/FirstPen" rel="tag"&gt;FirstPen&lt;/a&gt;,&lt;a href="http://technorati.com/tags/handwriting" rel="tag"&gt;handwriting&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=426" width="1" height="1"&gt;</description></item><item><title>slimKEYS v1.2.8479</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/10/02/slimkeys-v1-2-8479.aspx</link><pubDate>Thu, 02 Oct 2008 21:15:04 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:422</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Today, I released a minor update to slimKEYS, &lt;a href="http://www.slimcode.com/slimKEYS/Downloads/slimKEYS.msi"&gt;version 1.2.8479&lt;/a&gt;. The three most important new features are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;slimSEARCH: You can configure any web search entry to replace spaces by a specific character instead of the default “+”.      &lt;br /&gt;&lt;img title="image" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;margin:5px 0px;border-right-width:0px;" height="197" alt="image" src="http://www.slimcode.com/cs/blogs/martin/slimKEYSv1.2.8479_F251/image.png" width="422" border="0" /&gt;&amp;#160; &lt;br /&gt;This is particularly useful for Wikipedia and Wiktionary searches, since those web sites require spaces to be replaced by an underline (“_”). As a matter of fact, the first time you run this new build, slimKEYS will automatically set this option “on” for entries pointing to “wikipedia.org” or “wiktionary.org”. If you have similar issues with other search targets, you’ll have to manually change them. &lt;/li&gt;    &lt;li&gt;slimLAUNCH.Passwords: When managing password stores, you can rename categories and entries right from the tree view, and even drag and drop entries from one category to another.      &lt;br /&gt;&lt;img title="image" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;margin:5px 0px;border-right-width:0px;" height="54" alt="image" src="http://www.slimcode.com/cs/blogs/martin/slimKEYSv1.2.8479_F251/image_3.png" width="307" border="0" /&gt; &lt;/li&gt;    &lt;li&gt;slimSMOKE: You can tell the hotkey handler to cycle through all combinations of dimming/blurring/off, instead of simply turning it on and off. Thus, when enabling this option, pressing Ctrl+Win+M actually changes the slimSMOKE status to:      &lt;ul&gt;       &lt;li&gt;Dimming + Blurring &lt;/li&gt;        &lt;li&gt;Just dimming &lt;/li&gt;        &lt;li&gt;Just blurring &lt;/li&gt;        &lt;li&gt;Off &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Another important change is regarding the trial message. Before, a notification pop-up appeared every 15 hotkeys you pressed. Now, every window will show a small clickable message at their bottom.&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="66" alt="image" src="http://www.slimcode.com/cs/blogs/martin/slimKEYSv1.2.8479_F251/image_4.png" width="456" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Rest assured, there is no time bomb in slimKEYS, and there will never be. If you like slimKEYS, but do not think it is worth 15$, you just have to tolerate this red message and ignore the end user license agreement… but don’t tell me! q;-)&lt;/p&gt;  &lt;p&gt;For the rest of the changes, take a look at the &lt;a href="http://www.slimcode.com/slimKEYS/History.aspx"&gt;complete history&lt;/a&gt;. By the way, how do you like the new web site look?&lt;/p&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=422" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>DutchTab is out of beta!</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/08/04/dutchtab-is-out-of-beta.aspx</link><pubDate>Mon, 04 Aug 2008 20:28:45 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:410</guid><dc:creator>slimcode</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;img style="margin:0px 0px 5px 5px;" src="http://www.slimcode.com/dutchtab/shot.png" align="right" /&gt; DutchTab for Windows Mobile is out of beta, and now &lt;a href="http://www.slimcode.com/DutchTab/Downloads.aspx"&gt;officially supports&lt;/a&gt; both Pocket PC and Smartphone devices running Windows Mobile 5 or 6. This application is a &lt;a href="http://www.dutchtab.com"&gt;joined venture&lt;/a&gt; with &lt;a href="http://www.polkapps.com/blog/"&gt;my friend Pascal&lt;/a&gt; who made an &lt;a href="http://www.polkapps.com/dutchtab/"&gt;iPhone version&lt;/a&gt; of DutchTab at the same time I was working on my Windows Mobile version.&lt;/p&gt;  &lt;p&gt;This application is a bill-splitting tool, but does not limit itself to making simple divisions. It automatically calculates who owes who depending on everybody’s contribution at the moment of paying the bill, and also the cost of their purchase. For example, your team is ordering lunch at the office, but the delivery guy comes in with a single bill. It adds up to 53.34$, Steve gives 35$ and John gives 25$. Mike and Lisa didn’t have cash. Now who owes who? You think it’s as simple as dividing 60$ by 4? But Mike took the expensive ribs, while John went for a simple salad. It wouldn’t be fair. Now, how do you split the tip? And when comparing the meal prices with the total amount paid, you also have to consider the taxes.&lt;/p&gt;  &lt;p&gt;No problems. Steve is a wise man. He kept a copy of the bill, and uses DutchTab to enter that bill. He creates a new bill:&lt;/p&gt;  &lt;p&gt;&lt;img title="blog-newbill" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="320" alt="blog-newbill" src="http://www.slimcode.com/cs/blogs/martin/DutchTabisoutofbeta_E7AD/blognewbill.png" width="240" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;The bill is new and empty. It’s time to add partakers:&lt;/p&gt;  &lt;p&gt;&lt;img title="blog-emptybill" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="320" alt="blog-emptybill" src="http://www.slimcode.com/cs/blogs/martin/DutchTabisoutofbeta_E7AD/blogemptybill.png" width="240" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;DutchTab will show you all previous partakers, and lets you either add new entries manually, of quickly import them from your Outlook contacts:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img title="blog-selectperson" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="320" alt="blog-selectperson" src="http://www.slimcode.com/cs/blogs/martin/DutchTabisoutofbeta_E7AD/blogselectperson.png" width="240" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Steve paid 35$, and took the chicken and a Sprite:&lt;/p&gt;  &lt;p&gt;&lt;img title="blog-steve" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="320" alt="blog-steve" src="http://www.slimcode.com/cs/blogs/martin/DutchTabisoutofbeta_E7AD/blogsteve.png" width="240" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Lisa went for the finger-licking chicken fingers (with the honey-mustard sauce):&lt;/p&gt;  &lt;p&gt;&lt;img title="blog-lisa" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="320" alt="blog-lisa" src="http://www.slimcode.com/cs/blogs/martin/DutchTabisoutofbeta_E7AD/bloglisa.png" width="240" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;John paid 25$, took a salad for his line… and a Coke because a salad is not enough:&lt;/p&gt;  &lt;p&gt;&lt;img title="blog-john" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="320" alt="blog-john" src="http://www.slimcode.com/cs/blogs/martin/DutchTabisoutofbeta_E7AD/blogjohn.png" width="240" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Finally, Mike got the famous ribs and a Coke, nobody’s complaining about his line… yet!&lt;/p&gt;  &lt;p&gt;&lt;img title="blog-mike" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="320" alt="blog-mike" src="http://www.slimcode.com/cs/blogs/martin/DutchTabisoutofbeta_E7AD/blogmike.png" width="240" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Now, on the bill’s summary, we can see that the total before taxes and tip is 49.85$. Steve entered the prices as they appear on the bill. No need to add the taxes, DutchTab will take care of distributing the taxes and tip proportionally.&lt;/p&gt;  &lt;p&gt;&lt;img title="blog-fullbill" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="320" alt="blog-fullbill" src="http://www.slimcode.com/cs/blogs/martin/DutchTabisoutofbeta_E7AD/blogfullbill.png" width="240" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;DutchTab determines that Mike’s meal, with taxes and tip, was worth 20$. Since he paid nothing, the application tells him he should give Steve 20$. As for Lisa, her meal’s total price was 13$. She owes John 12$ and Steve 1$. Steve can now click on “Send email” to send everybody a nice reminder.&lt;/p&gt;  &lt;p&gt;&lt;img title="blog-balances" style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="320" alt="blog-balances" src="http://www.slimcode.com/cs/blogs/martin/DutchTabisoutofbeta_E7AD/blogbalances.png" width="240" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I hope this gives you a good idea of how useful DutchTab is.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e258747c-e642-4fbc-b408-1eee4de276e4" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DutchTab" rel="tag"&gt;DutchTab&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=410" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>DutchTab is now available</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/07/12/dutchtab-is-now-available.aspx</link><pubDate>Sat, 12 Jul 2008 21:05:19 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:409</guid><dc:creator>slimcode</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;a href="http://www.dutchtab.com"&gt;&lt;img title="balances-wm-diamond" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="240" alt="balances-wm-diamond" src="http://www.slimcode.com/cs/blogs/martin/DutchTabisnowavailable_ED70/balanceswmdiamond.png" width="129" align="right" border="0" /&gt;&lt;/a&gt; What is &lt;a href="http://www.dutchtab.com"&gt;DutchTab&lt;/a&gt;? It’s a Windows Mobile application I’ve been working on for the past weeks. My friend &lt;a href="http://www.polkapps.com/blog/"&gt;Pascal Bourque&lt;/a&gt; convinced me (pretty easily) to migrate an application I made years ago for splitting lunch bills at &lt;a href="http://xceed.com"&gt;Xceed&lt;/a&gt;. We decided to make that a shared adventure, him making an iPhone version, and me the Windows Mobile version.&lt;/p&gt;  &lt;p&gt;The idea behind the software is very simple: You enter how much each person actually paid, and also the cost of what they bought. The software automatically calculates who paid too much and who didn’t, and optimally determines who owes who.&lt;/p&gt;  &lt;p&gt;The number one challenge was that we didn’t share design, only the name. We headed in our own direction and waited only a few days before release before sharing a few screenshots and screencasts. We did make some adjustments, mostly wording, but kept each application’s personality. I really think this was a wise decision. Both platforms have their own design guidelines, and both devices have their own input methods. I’ll add that Pascal had the easiest part, since the iPhone does not have zillions of buttons. He could concentrate on touch gestures and actions, while I wanted to support buttons and touch screens. My goal is to run on both PocketPC and SmartPhone devices, but the current beta release fails on SmartPhones because I’m using an unsupported feature with combo boxes (dah).&lt;/p&gt;  &lt;p&gt;You can learn more about the Windows Mobile version of DutchTab &lt;a href="http://www.slimcode.com/DutchTab/"&gt;here&lt;/a&gt;. This initial release is a beta version, and I’ll be offering those who &lt;a href="http://www.slimcode.com/cs/forums/default.aspx?GroupID=12"&gt;submit meaningful comments&lt;/a&gt; a free license once I release the official version.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3d02d787-a1e5-410c-b0f6-e91d0da4d18e" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DutchTab" rel="tag"&gt;DutchTab&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=409" width="1" height="1"&gt;</description></item><item><title>slimKEYS 1.2.8310 now available</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/06/10/slimkeys-1-2-8310-now-available.aspx</link><pubDate>Tue, 10 Jun 2008 14:26:47 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:402</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://www.slimcode.com/cs/blogs/martin/slimKEYS1.2.8310nowavailable_149C2/image.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px 0px 10px 10px;border-right-width:0px;" height="309" alt="slimKEYS Main Window, in French" src="http://www.slimcode.com/cs/blogs/martin/slimKEYS1.2.8310nowavailable_149C2/image_thumb.png" width="328" align="right" border="0"&gt;&lt;/a&gt;A &lt;a title="slimKEYS History" href="http://www.slimcode.com/slimKEYS/History.aspx" target="_blank"&gt;new version of slimKEYS&lt;/a&gt; is &lt;a title="Download slimKEYS" href="http://www.slimcode.com/slimKEYS/Downloads/slimKEYS.msi" target="_blank"&gt;now available&lt;/a&gt;. Though the list of new features is slim, it took me more than just a few hours to get through translation of the interface to French, and to finally make slimVOLUME support 64-bit Vista systems.&lt;/p&gt; &lt;p&gt;In the first case, it was a long and tedious job of moving every string to a resource file, translate each one, localize each form and repeat the translation for each label. It was simply long, and boring.&lt;/p&gt; &lt;p&gt;In the second case, I had a problem. Taking apart the numerous p-invokes throughout the code (but mostly in slimSIZE), slimKEYS is a fully managed C#-made application, except for one tiny portion of code used by slimVOLUME. The slimCODE.slimVOLUME.Vista.dll file is a mixed assembly made in C++. Normally, .NET applications don't have to care about the address space size. 32-bit or 64-bit systems don't matter, as long as the CLR implementation on both platforms is equivalent, and that your p-invoke signatures are correct. But in the case of slimKEYS, when the 64-bit implementation of the CLR was trying to load this mixed assembly, it caused a load error. An unmanaged 32-bit application can run flawlessly on 64-bit systems, but a 32-bit DLL cannot get loaded in a 64-bit CLR domain.&lt;/p&gt; &lt;p&gt;Usually, unmanaged applications that wish to natively support both 32-bit and 64-bit systems offer two packages, each built exclusively for each platform. But that's totally against the logic behind managed applications. At least that's what I thought. It was easy for me to build two versions of my C++ DLL, but how could I use them from a single managed application? How could I keep offering a single and consistent package?&lt;/p&gt; &lt;p&gt;After investigating, asking questions without getting precise answers and doing some trial and error, I chose a solution that isn't guaranteed, but seems to work well. My C++ DLL implemented a single class, called VistaVolumeControlsBridge. The managed plug-in declared a base class named VolumeControls, with two derivatives VistaVolumeControls and WmmVolumeControls. So there was already a level of indirection, where the VistaVolumeControls class was instantiated based on the platform, and using an instance of VistaVolumeControlsBridge under the hood. What I did is create a 64-bit version of the C++ DLL which implemented class Vista64VolumeControlsBridge, and its Vista64VolumeControls counterpart on the managed side. Now, the decision between creating a WmmVolumeControls or a VistaVolumeControls based on Environment.OSVersion had become a three dancers decision that looks like this:&lt;/p&gt;&lt;pre class="csharpcode"&gt;      &lt;span class="kwrd"&gt;if&lt;/span&gt;( Environment.OSVersion.Version.Major &amp;gt;= 6 )
      {
        &lt;span class="kwrd"&gt;if&lt;/span&gt;( IntPtr.Size == 8 )
        {
          m_volumeControls = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vista64VolumeControls();
        }
        &lt;span class="kwrd"&gt;else&lt;/span&gt;
        {
          m_volumeControls = &lt;span class="kwrd"&gt;new&lt;/span&gt; VistaVolumeControls();
        }
      }
      &lt;span class="kwrd"&gt;else&lt;/span&gt;
      {
        m_volumeControls = &lt;span class="kwrd"&gt;new&lt;/span&gt; WmmVolumeControls();
      }
&lt;/pre&gt;
&lt;p&gt;Since VistaVolumeControls and Vista64VolumeControls are themselves managed classes, this doesn't seem to trigger loading of the 64-bit type on 32-bit systems by the JIT, and vice-versa. I could not find any reference if I could assume that a type that is never instantiated will never require its containing assembly from being loaded. But I'm ready to take the risk, and wait for your feedback if it breaks.&lt;/p&gt;
&lt;p&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px 0px 10px 10px;border-right-width:0px;" height="185" alt="image" src="http://www.slimcode.com/cs/blogs/martin/slimKEYS1.2.8310nowavailable_149C2/image_3.png" width="305" align="right" border="0"&gt; Another neat feature with slimVOLUME on Vista is that you can now change which playback device's volume you are controlling. I also wanted to change the default playback device with a hotkey, but Microsoft doesn't want this to happen. They think device manufacturers would abuse of such an API to make their hardware stay always as the default device. And I'm not making this up, I read it on their forums (&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1015748&amp;amp;SiteID=1" target="_blank"&gt;here&lt;/a&gt;, &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3105844&amp;amp;SiteID=1" target="_blank"&gt;here&lt;/a&gt;, &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1569827&amp;amp;SiteID=1" target="_blank"&gt;here&lt;/a&gt; and &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1494424&amp;amp;SiteID=1" target="_blank"&gt;here&lt;/a&gt;), and asked &lt;a title="Larry Osterman's WebLog" href="http://blogs.msdn.com/larryosterman/default.aspx" target="_blank"&gt;Larry Osterman&lt;/a&gt; myself:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We've gone around and around on this one, and while at some level it would be nice to allow developers the ability to change the default audio device, there is no way that we can. The problem is that audio vendors would abuse the functionality to attempt to force THEIR hardware to be default device even if the user didn't want it to be (we've seen evidence of vendors doing this in the past).&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;We used to say something at &lt;a title="Xceed" href="http://xceed.com/" target="_blank"&gt;Xceed&lt;/a&gt; about those situations: Two wrongs don't make a right! This is a very good example. Creating a problem to avoid another one. I really think it was a stupid decision. Changing the output device on Vista requires 4 steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Right-click the speaker tray icon.&lt;br&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="134" alt="" src="http://www.slimcode.com/cs/blogs/martin/slimKEYS1.2.8310nowavailable_149C2/image_4.png" width="287" border="0"&gt; 
&lt;li&gt;Click "Playback Devices".&lt;br&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="463" alt="" src="http://www.slimcode.com/cs/blogs/martin/slimKEYS1.2.8310nowavailable_149C2/image_5.png" width="418" border="0"&gt; 
&lt;li&gt;Right-click the device.&lt;br&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="191" alt="" src="http://www.slimcode.com/cs/blogs/martin/slimKEYS1.2.8310nowavailable_149C2/image_6.png" width="329" border="0"&gt; 
&lt;li&gt;Click "Set as Default Device".&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Failed.&lt;/p&gt;
&lt;p&gt;I'd be really happy to see an API for this in Windows 7. But if there are hackers reading this, can someone tell me what is called under that "Set as Default Device"? The API already exists, it's just not documented.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ce7a9455-de20-4763-9e87-d1c1a253ea2c" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Tags: &lt;a href="http://technorati.com/tags/slimKEYS" rel="tag"&gt;slimKEYS&lt;/a&gt;, &lt;a href="http://technorati.com/tags/slimVOLUME" rel="tag"&gt;slimVOLUME&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=402" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>What files?</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/06/10/what-files.aspx</link><pubDate>Tue, 10 Jun 2008 14:15:42 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:401</guid><dc:creator>slimcode</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I wanted to upgrade my &lt;a href="http://www.smartftp.com/" target="_blank"&gt;SmartFTP&lt;/a&gt; 2.5 to version 3.0 to overcome many crashes I get on Vista. Not only did the setup told me my maintenance was expired and had to renew it in order to use the upgrade, it told me the following applications were using files it had to upgrade:&lt;/p&gt; &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="406" alt="image" src="http://www.slimcode.com/cs/blogs/martin/Whatfiles_88BC/image.png" width="519" border="0"&gt; &lt;/p&gt; &lt;p&gt;You need to upgrade files in use by &lt;a href="http://www.slimcode.com/slimKEYS/" target="_blank"&gt;slimKEYS&lt;/a&gt;? Or by &lt;a href="http://zabkat.com/" target="_blank"&gt;xplorer2&lt;/a&gt;? I ... don't ... think ... so!&lt;/p&gt; &lt;p&gt;It would be great if advanced users could see the actual list of files the setup needs to update. Something else missing on that dialog (but that's Vista Restart Manager's fault) is a Retry button. You can't refresh the list after closing apps manually.&lt;/p&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=401" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Non-technical/default.aspx">Non-technical</category></item><item><title>The book critique that never came</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/05/30/the-book-critique-that-never-came.aspx</link><pubDate>Fri, 30 May 2008 14:14:06 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:400</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I &lt;a title="Do Not Buy This Book" href="http://www.codinghorror.com/blog/archives/000971.html" target="_blank"&gt;had an agreement&lt;/a&gt;. I gave my word. In order to win the book, I had to make a critique of it. I read it. I took notes. I enjoyed many topics, considering the book as a very good read for someone like me who's starting with web development and ASP.NET. But the critique never came.&lt;/p&gt; &lt;p&gt;With my current time employment, it fell very low in my priorities. It could wait. Then I realized why it wasn't a priority: it isn't a great book. I would have written much earlier would I have been excited about it. On the other hand, I would have written earlier too if I thought it was that bad. It's average.&lt;/p&gt; &lt;p&gt;The problem is, I have no idea who that book is intended for. What I initially though was a reference book for average ASP.NET developers, then transformed, while reading it, into a "one read" book for new ASP.NET developers who don't want to hit dead ends, and finally upon completion and working on a critique ended up in my mind as a clumsy agglomeration of unequal articles. And don't put to much importance on words like "clumsy" or "unequal", as the real keyword here is "article". In the real world, I only put forth a single suggestion coming from that book. Does this mean the rest is useless? Not at all, it's just not relevant for me right now.&lt;/p&gt; &lt;p&gt;I have to agree with Jeff, or at least agree with its questioning. Books like "&lt;a href="http://www.amazon.com/ASP-NET-2-0-Anthology-Essential-Tricks/dp/098028581X/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1212156534&amp;amp;sr=1-1" target="_blank"&gt;The ASP.NET 2.0 Anthology: 101 Essential Tips, Tricks &amp;amp; Hacks&lt;/a&gt;" aren't meant for paper. We should be able to find those articles quickly and easily, when needed or reading them as they come, from our main working tool: the computer. They're articles.&lt;/p&gt; &lt;p&gt;Can't stop thinking that &lt;a title="Coding Horror - Jeff Atwood" href="http://www.codinghorror.com/blog/" target="_blank"&gt;Jeff&lt;/a&gt;'s initial thoughts on &lt;a title="stackoverflow.com" href="http://stackoverflow.com/" target="_blank"&gt;stackoverflow.com&lt;/a&gt; came from working on that book, as almost everything in that book would fit very well on that upcoming site.&lt;/p&gt; &lt;p&gt;Best of luck, Jeff, and thanks again for the book.&lt;/p&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=400" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>Someone copied my company's logo!</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/04/07/someone-copied-my-company-s-logo.aspx</link><pubDate>Sun, 06 Apr 2008 23:17:29 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:390</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This morning, my Google alerts pointed me to &lt;a title="SLIMCODE book" href="http://www.divo-shop.ru/%D0%BA%D0%B0%D0%BF%D1%81%D1%83%D0%BB%D1%8B-slimcode-slim-code-%D1%81%D0%BB%D0%B8%D0%BC%D0%BA%D0%BE%D0%B4-%D1%81%D0%BB%D0%B8%D0%BC-%D0%BA%D0%BE%D0%B4-%E2%84%9660" target="_blank"&gt;this page&lt;/a&gt;, a Russian web site talking about a product called SLIMCODE. Google Translate tells me it's a box of capsules for a weight loss program. I'm fine with that. It's normal, on this planet, to have some name collisions, as long as the domains of business are different.&lt;/p&gt; &lt;p&gt;Where it hurts a little is the logo on that box:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.slimcode.com/cs/blogs/martin/Someonecopiedmycompanyslogo_A55A/image.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="173" alt="image" src="http://www.slimcode.com/cs/blogs/martin/Someonecopiedmycompanyslogo_A55A/image_thumb.png" width="133" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;"SLIM" is in a normal weight, "CODE" is in bold and uppercase. The only difference with my logo is "slim" in lowercase for mine. But the concept of "slim" versus "bold" is the same.&lt;/p&gt; &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="74" alt="slimCODE_OpenDNS" src="http://www.slimcode.com/cs/blogs/martin/Someonecopiedmycompanyslogo_A55A/slimCODE_OpenDNS.png" width="129" border="0"&gt; &lt;/p&gt; &lt;p&gt;But don't worry. I may look mad, but I'm laughing about this. I'm sure the person who made that logo had no idea a software company existed with that name and similar logo, right? Right? Am I naïve?&lt;/p&gt; &lt;p&gt;At least I'm complaining about something more obvious than &lt;a href="http://cityroom.blogs.nytimes.com/2008/04/04/its-like-comparing-apples-to-apples/?hp" target="_blank"&gt;Apple vs GreeNYC&lt;/a&gt;!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:578d15a7-ee03-437a-b86e-ce749a86af63" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Tags: &lt;a href="http://technorati.com/tags/slimCODE" rel="tag"&gt;slimCODE&lt;/a&gt;, &lt;a href="http://technorati.com/tags/logos" rel="tag"&gt;logos&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=390" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Non-technical/default.aspx">Non-technical</category></item><item><title>Cannot run built-in apps as administrator anymore?</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/03/15/cannot-run-built-in-apps-as-administrator-anymore.aspx</link><pubDate>Sat, 15 Mar 2008 18:21:28 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:388</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I'm getting crazy. Totally. I'm now convinced aliens kidnapped me in my sleep and changed my Vista installation.&lt;/p&gt; &lt;p&gt;This morning, I tried to open a Command Prompt as administrator. I pressed Win-Z, typed "cmd", pressed Ctrl-Enter to get to the slimKEYS extended options, made sure the verb was "runas" and pressed Enter to launch the app as admin... But nothing. No UAC prompt, no Command Prompt, nothing.&lt;/p&gt; &lt;p&gt;So I pressed the Win key, typed "Command" to highlight "Command Prompt" in Vista's start menu, pressed the context menu key, and selected "Run as administrator"... Nothing more. I could hear my fish breath.&lt;/p&gt; &lt;p&gt;I went back to slimKEYS and tried launching "Notepad2" (my Notepad replacement) as admin, and it worked. I tried Windows' own Notepad, and it failed. Hun? Tried again with the Vista start menu, failed too.&lt;/p&gt; &lt;p&gt;I decided to try checking the "run this program as an administrator" option and see what happened, but something I'd never seen before prevented me of doing so:&lt;/p&gt; &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="531" alt="image" src="http://www.slimcode.com/cs/blogs/martin/Cannotrunbuiltinappsasadministratoranymo_C5E0/image.png" width="377" border="0"&gt; &lt;/p&gt; &lt;p&gt;"Compatibility modes cannot be set on this program because it is part of this version of Windows". What? When did that "new feature" (!) appeared? I have ran Command Prompt and Notepad as admin in the past, I know this is new. But since when? And how the hell am I suppose to run a Command Prompt as admin now? What did I do to enable that counter-productive and stupid feature? Did I mess with something or did a Windows Update change that behavior?&lt;/p&gt; &lt;p&gt;I tried looking for answers on the net, but either I'm not using the correct keywords, or it's a new problem nobody had before.&lt;/p&gt; &lt;p&gt;What is happening to my Vista?&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2c86bb92-e803-4f42-848c-5d43bb9ff095" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Tags: &lt;a href="http://technorati.com/tags/Vista" rel="tag"&gt;Vista&lt;/a&gt;, &lt;a href="http://technorati.com/tags/UAC" rel="tag"&gt;UAC&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Run%20as%20administrator" rel="tag"&gt;Run as administrator&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=388" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>Disabling Data Connection on an HTC P4000 device</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/03/13/disabling-data-connection-on-an-htc-p4000-device.aspx</link><pubDate>Thu, 13 Mar 2008 02:34:53 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:387</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://www.slimcode.com/cs/blogs/martin/DisablingDataConnectiononanHTCP4000devic_137DE/image.png" target="_blank"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="206" alt="image" src="http://www.slimcode.com/cs/blogs/martin/DisablingDataConnectiononanHTCP4000devic_137DE/image_thumb.png" width="240" align="left" border="0"&gt;&lt;/a&gt; I bought myself a nice gadget lately; an &lt;a href="http://www.telusmobility.com/on/pcs/handset_htc_p4000.shtml" target="_blank"&gt;HTC P4000 mobile phone&lt;/a&gt;. While everybody is getting all excited (for good reasons, I admit) about the iPhone SDK, I decided to stick with Windows Mobile, a platform I was used to (both using and developing for).&lt;/p&gt; &lt;p&gt;My phone has both a touch screen and sliding keyboard, two features that were important for me. I'm eager to try &lt;a href="http://www.opera.com/products/mobile/" target="_blank"&gt;Opera Mobile 9.5&lt;/a&gt;, probably the closest thing to Safari on the iPhone, even though my device isn't multi-touch.&lt;/p&gt; &lt;p&gt;I had to move to a monthly plan with a 3 year contract in order to get a rebate on the phone, but didn't go for the full rebate and data plan. Instead, I paid the phone a little more, but I have the smallest available plan, without a data plan. For the moment, that's enough for me, as I have Wifi access everywhere I need.&lt;/p&gt; &lt;p&gt;The one single thing that kept bugging me, though, is that every time I ran an application that tried a network connection while Wifi wasn't available, a data connection was established. Without a plan, it would cost me 15$ a meg! Though I was always quick enough to click the Cancel button on the connection notification, it scared me. So I walked through the registry and found this key:&lt;/p&gt; &lt;p&gt;HKLM\Comm\ConnMgr\Providers\{7c4b7a38-5ff7-4bc1-80f6-5da7870bb1aa}\Connections\CDMA1X\Enabled&lt;/p&gt; &lt;p&gt;As expected, it was "1" by default. I changed it to "0", rebooted, and voilà!!! No more data connection in my way. Wifi or nothing, just what I needed.&lt;/p&gt; &lt;p&gt;Now, if you'll excuse me, I have an application for Windows Mobile to work on. Can you guess what it is? slimKEYS Mobile anyone? If you already have suggestions, shoot!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:23a4381e-2ea7-422a-a312-a0d81a436fb7" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Tags: &lt;a href="http://technorati.com/tags/HTC%20P4000" rel="tag"&gt;HTC P4000&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Windows%20Mobile" rel="tag"&gt;Windows Mobile&lt;/a&gt;, &lt;a href="http://technorati.com/tags/slimKEYS%20Mobile" rel="tag"&gt;slimKEYS Mobile&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=387" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>My coding fonts and colors - Revisited</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/02/08/my-coding-fonts-and-colors-revisited.aspx</link><pubDate>Fri, 08 Feb 2008 15:43:25 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:384</guid><dc:creator>slimcode</dc:creator><slash:comments>8</slash:comments><description>&lt;p&gt;With Scott's &lt;a href="http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx" target="_blank"&gt;Visual Studio's theme rundown&lt;/a&gt;, I'm getting requests for my VS Settings file &lt;a href="http://www.slimcode.com/cs/blogs/martin/archive/2006/11/26/My-Coding-Font-and-Colors.aspx" target="_blank"&gt;for my older example&lt;/a&gt;. I can't give you the exact same colors, as I've tweaked them a little. Fear not, the look is almost the same, but I did change the font. Here's the rationale: With a bigger LCD screen, I do benefit from ClearType. Then &lt;a href="http://www.proggyfonts.com/index.php?menu=download" target="_blank"&gt;ProggySquare&lt;/a&gt; becomes useless, since it's a fixed size (12) bitmap font. That's why I switched back to Lucida Console. I don't have the slashed or dotted zero, but it doesn't seem to bother me. I do like Consolas, except for that weird "g". And the ClearType effect is not as great as with Lucida Console, probably because I tweaked it with their Verdana example, I don't know.&lt;/p&gt; &lt;p&gt;But when working on my 15" laptop, Lucida Console and Consolas just don't cut it for me. ProggySquare becomes way better! I don't have TrueBright on my Dell laptop. Maybe that's why I need a crisp font without anti-aliasing effects... go figure.&lt;/p&gt; &lt;p&gt;So here's the latest screenshot on my desktop:&lt;/p&gt; &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="424" alt="slimCODE IDE Settings - Desktop" src="http://www.slimcode.com/cs/blogs/martin/MycodingfontsandcolorsRevisited_8934/slimCODEIDESettings.png" width="737" border="0"&gt; &lt;/p&gt; &lt;p&gt;And that's how it looks on my laptop:&lt;/p&gt; &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="366" alt="slimCODE IDE Settings - Laptop" src="http://www.slimcode.com/cs/blogs/martin/MycodingfontsandcolorsRevisited_8934/ide.png" width="641" border="0"&gt; &lt;/p&gt; &lt;p&gt;And finally, you can &lt;a href="http://www.slimcode.com/downloads/slimCODE.vssettings.zip" target="_blank"&gt;download my VSSETTINGS file&lt;/a&gt; with the Lucida Console font.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:71da28a8-1376-438e-8000-f07c83f7f0c6" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Tags: &lt;a href="http://technorati.com/tags/IDE" rel="tag"&gt;IDE&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Programming%20Font" rel="tag"&gt;Programming Font&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Programming%20Colors" rel="tag"&gt;Programming Colors&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=384" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>MSDN Coding Awards - Vote now!</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/02/06/msdn-coding-awards-vote-now.aspx</link><pubDate>Wed, 06 Feb 2008 20:17:16 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:378</guid><dc:creator>slimcode</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;img style="border-right:0px;border-top:0px;margin:0px 0px 5px 5px;border-left:0px;border-bottom:0px;" height="136" alt="Pascal Bourque" src="http://www.slimcode.com/cs/blogs/martin/MSDNCodingAwardsVotenow_D2C3/image.png" width="204" align="right" border="0"&gt; My very good friend Pascal Bourque is one of the &lt;a title="MSDN Coding Awards - Individual Developer" href="http://www.microsoft.com/canada/msdn/codeawards/#1" target="_blank"&gt;lucky 5 nominees&lt;/a&gt; for the &lt;a title="MSDN Canada Code Awards 2008" href="http://msdn2.microsoft.com/en-ca/codeawards/default.aspx" target="_blank"&gt;MSDN Canada Code Awards 2008&lt;/a&gt;, for his key role in the creation of the &lt;a title="Xceed DataGrid for WPF" href="http://xceed.com/Grid_WPF_Intro.html" target="_blank"&gt;Xceed DataGrid for WPF&lt;/a&gt;. I often compare Pascal's technical skills with &lt;a title="Scott Guthrie's blog" href="http://weblogs.asp.net/scottgu/" target="_blank"&gt;Scott Guthrie&lt;/a&gt;, who I happen to admire a lot too.&lt;/p&gt; &lt;p&gt;The five nominations were made by Microsoft members upon submission, but one of those five developers will win the grand price, and this will be decided by popular votes. If you are an Xceed DataGrid for WPF fan, or any of the following products, I encourage you to &lt;a title="Vote for Pascal Bourque" href="http://msdn2.microsoft.com/en-ca/codeawards/cc182232.aspx" target="_blank"&gt;go vote for Pascal&lt;/a&gt;, since he played a key role in designing and developing those products over the last 10 years at Xceed.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Xceed Zip&lt;/li&gt; &lt;li&gt;Xceed Backup&lt;/li&gt; &lt;li&gt;Xceed Winsock&lt;/li&gt; &lt;li&gt;Xceed FTP&lt;/li&gt; &lt;li&gt;Xceed Zip for .NET&lt;/li&gt; &lt;li&gt;Xceed Grid for .NET&lt;/li&gt; &lt;li&gt;Xceed Docking Windows for .NET&lt;/li&gt; &lt;li&gt;Xceed DataGrid for .NET&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Congratulations Pascal! You deserve the spotlights!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5c76a614-a5ed-4946-8917-c5a3d753943b" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Tags: &lt;a href="http://technorati.com/tags/MSDN%20Code%20Awards" rel="tag"&gt;MSDN Code Awards&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=378" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Non-technical/default.aspx">Non-technical</category></item><item><title>A new version of slimKEYS is available, build 8069</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2008/01/23/a-new-version-of-slimkeys-is-available-build-8069.aspx</link><pubDate>Wed, 23 Jan 2008 05:54:08 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:373</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I just updated the web site and &lt;a href="http://www.slimcode.com/slimKEYS/Downloads/slimKEYS.msi" target="_blank"&gt;slimKEYS package&lt;/a&gt; for the newly released version 1.2.8069... 8069 you say? What's that? It's my new version numbering. Well, not that new, I stole the idea from &lt;a href="http://www.xceed.com" target="_blank"&gt;Xceed&lt;/a&gt;, but it's &lt;a href="http://rds.yahoo.com/_ylt=A0geu4200pZH4T4BOf1XNyoA;_ylu=X3oDMTE4YXQwbWozBHNlYwNzcgRwb3MDMwRjb2xvA2FjMgR2dGlkA0Y3NTVfNzMEbANXUzE-/SIG=13fd7l02o/EXP=1201153076/**http%3a//blogs.xceedsoft.com/plantem/PermaLink,guid,0e2bbcd8-f941-43e4-859b-802745969f60.aspx" target="_blank"&gt;partly my fault&lt;/a&gt; anyway if they use such a number. I even have a Vista widget, err, gadget displaying the current day's version number:&lt;/p&gt; &lt;p&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="85" alt="image" src="http://www.slimcode.com/cs/blogs/martin/AnewversionofslimKEYSisavailable_75A/image.png" width="139" border="0"&gt; &lt;/p&gt; &lt;p&gt;I've decided to use a version number I can change every day, so I can release alpha and beta versions of slimKEYS that have their own version number. No more beta 1, 2, 3...&lt;/p&gt; &lt;p&gt;I really hope the new slimSMOKE plug-in finds some lovers, as I've grown to depend on it myself. I always know which window has the focus. Look at my current desktop:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.slimcode.com/cs/blogs/martin/AnewversionofslimKEYSisavailable_75A/image_3.png" target="_blank"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="167" alt="image" src="http://www.slimcode.com/cs/blogs/martin/AnewversionofslimKEYSisavailable_75A/image_thumb.png" width="524" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;There are &lt;a href="http://www.slimcode.com/slimKEYS/History.aspx" target="_blank"&gt;many other improvements&lt;/a&gt;, I'll let you check for yourself. This new release also coincides with a price increase. It was absurd for me to continue selling slimKEYS lifetime licenses for only 10$. It's now 20$, but it's the last 20$ you'll spend on slimKEYS. And if you don't think it's worth 20 bucks, I hope you'll take the time to write me and tell me what I need to change. I'm listening!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:679c4a46-78b7-49b8-9b6c-19dd6107525c" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Tags: &lt;a href="http://technorati.com/tags/slimKEYS" rel="tag"&gt;slimKEYS&lt;/a&gt;, &lt;a href="http://technorati.com/tags/slimSMOKE" rel="tag"&gt;slimSMOKE&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=373" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item><item><title>Reading signals</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/12/10/reading-signals.aspx</link><pubDate>Mon, 10 Dec 2007 14:51:02 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:368</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I just did something really stupid. I don't know where my mind was. I have to say I'm loaded with work because I accepted two contracts, and I'm a part-time daddy at home since my son is only attending kindergarten 3 mornings a week. I even had to postpone &lt;a title="The book I must review" href="http://www.codinghorror.com/blog/archives/000971.html" target="_blank"&gt;some promises&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;I was in my office and heard a "pshit" sound. It took me a fraction of a second to realize what it was, much faster than the actual mistake that led to this sound. Yesterday evening, I put non-rechargeable batteries in the charger! Thank God nothing bad happened in the night. I threw the batteries away, but I'll try to recover the charger. It doesn't look damaged, I only had to wipe the liquid.&lt;/p&gt; &lt;p&gt;Should I interpret this event as a signal?&lt;/p&gt; &lt;p&gt;...&lt;/p&gt; &lt;p&gt;Nah, too much work to do.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:62ce4772-c042-499d-8026-41565a5cda32" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Tags: &lt;a href="http://technorati.com/tags/Batteries" rel="tag"&gt;Batteries&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Signals" rel="tag"&gt;Signals&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=368" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Non-technical/default.aspx">Non-technical</category></item><item><title>I need Vista testers!</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/11/17/i-need-vista-testers.aspx</link><pubDate>Sat, 17 Nov 2007 21:27:42 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:367</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The second beta of slimKEYS 1.1.3 is now &lt;a href="http://www.slimcode.com/cs/files/folders/362/download.aspx"&gt;available for download&lt;/a&gt;. With this last beta before the release, I urgently need Vista testers. If you look at the &lt;a href="http://www.slimcode.com/cs/files/folders/slimkeys/entry362.aspx" target="_blank"&gt;list of changes&lt;/a&gt;, you can see a few pending or new Vista features.&lt;/p&gt; &lt;h4&gt;slimVOLUME&lt;/h4&gt; &lt;p&gt;Two main things have changed with the slimVOLUME plug-in. First, the window display was redone completely, to use a true transparent window. The previous version copied an image of what was underneath the volume window, and drew on that image. Less than beautiful when you happened to Alt-Tab while the volume was still displayed or when the content was changing (ex: watching a video or movie). If you play games not in full screen mode, this new display will also work correctly. The "label style" is not implemented yet, so you'll get TV-like bars in both settings.&lt;/p&gt; &lt;p&gt;The second big change is the use of the new Vista API for changing the main volume control. The previous version did not work on Vista, since all it did was change the volume of the sounds slimKEYS played... which is none! This needs to be tested more thoroughly by Vista users. For example, there is one known issue: if you change the output device, for example by plugging-in your USB headset, slimVOLUME won't notice, and will continue to change the previous device's volume. That will be fixed in the official release, I'm just waiting for some final information.&lt;/p&gt; &lt;p&gt;So, &lt;strong&gt;&lt;u&gt;mandate #1&lt;/u&gt;&lt;/strong&gt;: Test slimVOLUME on Vista.&lt;/p&gt; &lt;h4&gt;slimSIZE&lt;/h4&gt; &lt;p&gt;If you are using slimSIZE on Vista, you already know it cannot move windows that belong to either isolated or elevated applications. Maybe you did not know what was the reason it could not move all windows. Now you know! This a Vista security feature. Applications like Internet Explorer 7, run in a special isolated mode, which prevents it from accessing all Windows features, and as a side effect, prevents other applications from accessing the IE7 process as much as they'd like. Other example, if you are a Visual Studio .NET 2005 user under Vista, you must be running it as administrator. Such applications and their windows cannot be the target of window APIs either.&lt;/p&gt; &lt;p&gt;Fortunately, this Vista security feature can be "safely" circumvented. The recipe isn't obvious, but it works (except&lt;strong&gt;*&lt;/strong&gt;). If your application embeds a specially crafted manifest that includes a "uiAccess=true" entry, is digitally signed, and runs from the "Program Files" folder, it can target windows that belong to isolated or elevated processes. If it does not run from the "Program Files" folder, it can still target isolated applications, but not elevated ones.&lt;/p&gt; &lt;p&gt;(&lt;strong&gt;*&lt;/strong&gt;): With Microsoft, it could not be that easy. This miracle recipe is giving me one small headache: When slimKEYS is started from a StartUp shortcut (as it's the case almost 100% of the time), launching URLs takes an eternity when either FireFox or Opera is your default browser&lt;strong&gt;**&lt;/strong&gt;. If launching other applications, those apps become sluggish and slow. At least, that's what I am experiencing on my machine. I made a small WinForms application with a similar manifest, strong name and digital signature, and a simple button that calls System.Diagnostics.Process.Start with an URL. If that application is started from a StartUp shortcut, clicking on the button takes 10 seconds for FireFox to open, and more than 2 minutes for Opera to open. But the same application, launched from the Windows Explorer, works perfectly, as does slimKEYS. If I remove the manifest, the problem also disappears (but you can't target isolated or elevated apps anymore).&lt;/p&gt; &lt;p&gt;I have posted on the MSDN forums and Microsoft newsgroups, but I am getting no answer. That's where more testers are required. If I can get more information about this, I'll be able to challenge MS better. If I get enough feedback, I may also choose to spend money on opening an MS support case. For the moment, I officially can't since I'm using an OEM license of Vista, and I'm not an MSDN subscriber.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Mandate #2&lt;/u&gt;&lt;/strong&gt;: Tell me if slimSEARCH or slimLAUNCH.Delicious are slow to open web pages.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Mandate #3&lt;/u&gt;&lt;/strong&gt;: Tell me if applications open from slimLAUNCH look more sluggish or slower than usual, or if they happen to open web addresses themselves, cause the same problem as mandate #2.&lt;/p&gt; &lt;p&gt;(&lt;strong&gt;**&lt;/strong&gt;): I'll give a free slimKEYS license to the first person who can explain within a week from now why there is no delay when Internet Explorer 7 is your default browser. I'll give the answer later.&lt;/p&gt; &lt;h4&gt;slimLAUNCH&lt;/h4&gt; &lt;p&gt;A limited implementation of verb support is now available in slimLAUNCH. If you browse for an application or document to open, and press Ctrl-Enter to open the extended launch options, you will see a new "Verb" field at the bottom. Default verbs for the selected application are available in the drop-down list, and you can type in the verb of your choice. For example, typing "runas" will open that application as administrator. The last verb is remembered, but only used when pressing Ctrl-Enter.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Mandate #4&lt;/u&gt;&lt;/strong&gt;: Test a few verbs, test the "runas" verb, give comments about how this can be improved.&lt;/p&gt; &lt;h4&gt;slimSMOKE&lt;/h4&gt; &lt;p&gt;The rest of the changes are fixes or featurettes, except for the new slimSMOKE plug-in. I'm using that plug-in full-time now, and have been enjoining it a lot. But I'm still waiting for other users' feedback. This second beta can also highlight not only the active window, but also all top-level windows which belong to the same process. Here are a few screenshots of (a part of) my desktop with slimSMOKE active. You can see the active application much easily.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.slimcode.com/cs/blogs/martin/IneedVistatesters_CF5C/slimSMOKE1.png" target="_blank"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="266" alt="FireFox is active" src="http://www.slimcode.com/cs/blogs/martin/IneedVistatesters_CF5C/slimSMOKE1_thumb.png" width="424" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.slimcode.com/cs/blogs/martin/IneedVistatesters_CF5C/slimSMOKE2.png" target="_blank"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="266" alt="Windows Live Writer is active" src="http://www.slimcode.com/cs/blogs/martin/IneedVistatesters_CF5C/slimSMOKE2_thumb_3.png" width="424" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.slimcode.com/cs/blogs/martin/IneedVistatesters_CF5C/slimSMOKE3.png" target="_blank"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="266" alt="Notepad2 is active" src="http://www.slimcode.com/cs/blogs/martin/IneedVistatesters_CF5C/slimSMOKE3_thumb.png" width="424" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You think you could like this? &lt;strong&gt;&lt;u&gt;Mandate #5&lt;/u&gt;&lt;/strong&gt;: Test slimSMOKE and give me your impressions!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f54f3f59-22ef-4398-8728-23d81ef6bf4f" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Tags: &lt;a href="http://technorati.com/tags/slimKEYS" rel="tag"&gt;slimKEYS&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Beta" rel="tag"&gt;Beta&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Vista" rel="tag"&gt;Vista&lt;/a&gt;, &lt;a href="http://technorati.com/tags/slimLAUNCH" rel="tag"&gt;slimLAUNCH&lt;/a&gt;, &lt;a href="http://technorati.com/tags/slimSIZE" rel="tag"&gt;slimSIZE&lt;/a&gt;, &lt;a href="http://technorati.com/tags/slimSEARCH" rel="tag"&gt;slimSEARCH&lt;/a&gt;, &lt;a href="http://technorati.com/tags/slimVOLUME" rel="tag"&gt;slimVOLUME&lt;/a&gt;, &lt;a href="http://technorati.com/tags/slimSMOKE" rel="tag"&gt;slimSMOKE&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=367" width="1" height="1"&gt;</description><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/English/default.aspx">English</category><category domain="http://www.slimcode.com/cs/blogs/martin/archive/tags/Technical/default.aspx">Technical</category></item></channel></rss>