<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0"><channel><title>slimCODE, aka Martin Plante</title><link>http://www.slimcode.com/cs/blogs/martin/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/slimcode" type="application/rss+xml" /><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><comments>http://www.slimcode.com/cs/blogs/martin/comments/509.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=509</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=509</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=V20GoPNi2M8:NnucDfnyCdY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=V20GoPNi2M8:NnucDfnyCdY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=V20GoPNi2M8:NnucDfnyCdY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=V20GoPNi2M8:NnucDfnyCdY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=V20GoPNi2M8:NnucDfnyCdY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=V20GoPNi2M8:NnucDfnyCdY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/490.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=490</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=490</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=Qt2LzXuVpgs:LWtg4SwkC7E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=Qt2LzXuVpgs:LWtg4SwkC7E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=Qt2LzXuVpgs:LWtg4SwkC7E:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=Qt2LzXuVpgs:LWtg4SwkC7E:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=Qt2LzXuVpgs:LWtg4SwkC7E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=Qt2LzXuVpgs:LWtg4SwkC7E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/489.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=489</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=489</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=XZ01ghQu63g:Qsu9GEQBZco:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=XZ01ghQu63g:Qsu9GEQBZco:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=XZ01ghQu63g:Qsu9GEQBZco:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=XZ01ghQu63g:Qsu9GEQBZco:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=XZ01ghQu63g:Qsu9GEQBZco:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=XZ01ghQu63g:Qsu9GEQBZco:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/475.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=475</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=475</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=7ZLS7SjsMIU:JBfUt87wdw0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=7ZLS7SjsMIU:JBfUt87wdw0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=7ZLS7SjsMIU:JBfUt87wdw0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=7ZLS7SjsMIU:JBfUt87wdw0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=7ZLS7SjsMIU:JBfUt87wdw0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=7ZLS7SjsMIU:JBfUt87wdw0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/470.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=470</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=470</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=EQIpEhIAHY0:4CWY3Y-0SoM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=EQIpEhIAHY0:4CWY3Y-0SoM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=EQIpEhIAHY0:4CWY3Y-0SoM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=EQIpEhIAHY0:4CWY3Y-0SoM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=EQIpEhIAHY0:4CWY3Y-0SoM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=EQIpEhIAHY0:4CWY3Y-0SoM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/468.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=468</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=468</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=pWfl3__ubjw:UwfrojHPNl0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=pWfl3__ubjw:UwfrojHPNl0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=pWfl3__ubjw:UwfrojHPNl0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=pWfl3__ubjw:UwfrojHPNl0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=pWfl3__ubjw:UwfrojHPNl0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=pWfl3__ubjw:UwfrojHPNl0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/460.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=460</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=460</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=HVgyWhBACA4:C4WJBu_mSQM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=HVgyWhBACA4:C4WJBu_mSQM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=HVgyWhBACA4:C4WJBu_mSQM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=HVgyWhBACA4:C4WJBu_mSQM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=HVgyWhBACA4:C4WJBu_mSQM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=HVgyWhBACA4:C4WJBu_mSQM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/431.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=431</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=431</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=UtCX_jRs1E8:YzqRHgcXKeQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=UtCX_jRs1E8:YzqRHgcXKeQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=UtCX_jRs1E8:YzqRHgcXKeQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=UtCX_jRs1E8:YzqRHgcXKeQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=UtCX_jRs1E8:YzqRHgcXKeQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=UtCX_jRs1E8:YzqRHgcXKeQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/430.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=430</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=430</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=QbMm3Mv2Fxw:Sjbu39MJUhw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=QbMm3Mv2Fxw:Sjbu39MJUhw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=QbMm3Mv2Fxw:Sjbu39MJUhw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=QbMm3Mv2Fxw:Sjbu39MJUhw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=QbMm3Mv2Fxw:Sjbu39MJUhw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=QbMm3Mv2Fxw:Sjbu39MJUhw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/429.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=429</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=429</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=KINKTjIemGs:3ckaYVeegTw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=KINKTjIemGs:3ckaYVeegTw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=KINKTjIemGs:3ckaYVeegTw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=KINKTjIemGs:3ckaYVeegTw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=KINKTjIemGs:3ckaYVeegTw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=KINKTjIemGs:3ckaYVeegTw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/426.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=426</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=426</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=hTlGkWxnVDg:DFcvy1Q1N84:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=hTlGkWxnVDg:DFcvy1Q1N84:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=hTlGkWxnVDg:DFcvy1Q1N84:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=hTlGkWxnVDg:DFcvy1Q1N84:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=hTlGkWxnVDg:DFcvy1Q1N84:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=hTlGkWxnVDg:DFcvy1Q1N84:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/422.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=422</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=422</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=FST4TiogVg4:pCRiXfD8t_4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=FST4TiogVg4:pCRiXfD8t_4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=FST4TiogVg4:pCRiXfD8t_4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=FST4TiogVg4:pCRiXfD8t_4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=FST4TiogVg4:pCRiXfD8t_4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=FST4TiogVg4:pCRiXfD8t_4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/410.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=410</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=410</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=lCMgCDFZBFU:2Hg2B-cvCHc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=lCMgCDFZBFU:2Hg2B-cvCHc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=lCMgCDFZBFU:2Hg2B-cvCHc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=lCMgCDFZBFU:2Hg2B-cvCHc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=lCMgCDFZBFU:2Hg2B-cvCHc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=lCMgCDFZBFU:2Hg2B-cvCHc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/409.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=409</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=409</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=vAt45vYKTIs:0g2o9OhnUjI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=vAt45vYKTIs:0g2o9OhnUjI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=vAt45vYKTIs:0g2o9OhnUjI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=vAt45vYKTIs:0g2o9OhnUjI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=vAt45vYKTIs:0g2o9OhnUjI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=vAt45vYKTIs:0g2o9OhnUjI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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><comments>http://www.slimcode.com/cs/blogs/martin/comments/402.aspx</comments><wfw:commentRss>http://www.slimcode.com/cs/blogs/martin/commentrss.aspx?PostID=402</wfw:commentRss><wfw:comment>http://www.slimcode.com/cs/blogs/martin/rsscomments.aspx?PostID=402</wfw:comment><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;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=-OkJF2WGDh0:Wy3mOsokhFE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=-OkJF2WGDh0:Wy3mOsokhFE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=-OkJF2WGDh0:Wy3mOsokhFE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=-OkJF2WGDh0:Wy3mOsokhFE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/slimcode?a=-OkJF2WGDh0:Wy3mOsokhFE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/slimcode?i=-OkJF2WGDh0:Wy3mOsokhFE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&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>
