<?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 commUNITY</title><link>http://www.slimcode.com/cs/blogs/default.aspx</link><description>Getting to know each other</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><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>0</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>0</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>4</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><item><title>help.live.com tells me to check my Internet connection</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/10/28/help-live-com-tells-me-to-check-my-internet-connection.aspx</link><pubDate>Sun, 28 Oct 2007 14:59:56 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:364</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I'm beta testing Windows Live OneCare 2, and this morning, the automatic update failed, with a message redirecting me to this web page:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.slimcode.com/cs/blogs/martin/hel.comtellsmetocheckmyInternetconnectio_991A/image.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="174" alt="Verify that you can connect to the Internet" src="http://www.slimcode.com/cs/blogs/martin/hel.comtellsmetocheckmyInternetconnectio_991A/image_thumb.png" width="484" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Hello? Who's telling me this? A web page!!! If you decide to move your help and documentation online, at least tell your technical writers about it!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d117528f-4f2b-41a0-9c3b-119be316dfad" 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/OneCare" rel="tag"&gt;OneCare&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Online%20Help" rel="tag"&gt;Online Help&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=364" 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>holy SMOKE? No, slimSMOKE!</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/10/19/holy-smoke-no-slimsmoke.aspx</link><pubDate>Fri, 19 Oct 2007 20:40:22 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:363</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I did it again. It's &lt;a title="My XceedBox .NET, a managed and expandable command prompt, before PowerShell" href="http://blogs.xceedsoft.com/plantem/PermaLink,guid,3499ec57-b919-494a-bd6a-75b087969ee2.aspx" target="_blank"&gt;not the first time&lt;/a&gt;. I created something that looks very interesting, but I have yet to decide if it's useful in the first place. I called it slimSMOKE, and you probably guessed by its name that it's a slimKEYS plug-in.&lt;/p&gt; &lt;p&gt;Does it happen often you work on your computer and start typing just to realize the active application is not the one you thought? It can get you in trouble if what you type has some matching actions in that other application. slimSMOKE dims inactive applications*, so the active window jumps out of the crowd.&lt;/p&gt; &lt;p&gt;My initial feeling working with slimSMOKE is "cool", but I need feedback. If you like to test beta software, go &lt;a title="slimKEYS v1.1.3 Beta 1" href="http://www.slimcode.com/cs/files/folders/slimkeys/entry362.aspx"&gt;get beta 1.1.3&lt;/a&gt; and tell me your thoughts. The color, opacity and refresh rate are all configurable. You can toggle slimSMOKE on and off by pressing Win-M.&lt;/p&gt; &lt;p&gt;If you try this new beta version on Vista, you'll also get the chance of testing Vista support for slimVOLUME (finally). I'll have more to say about this later, I have someone to thank about this, but he doesn't know.&lt;/p&gt; &lt;p&gt;Have fun!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;* (Actually, it dims everything except the active application. This means the desktop is also dimmed. I could have dimmed only top-level windows, but this extra processing is making slimSMOKE use too much resources for my taste, and the desktop itself can be "selected".)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5bc09a7a-a1cc-41a8-b3e1-c682f7c83afa" 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;a href="http://technorati.com/tags/slimVOLUME" rel="tag"&gt;slimVOLUME&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Vista" rel="tag"&gt;Vista&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=363" 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>Ode to FileForum from BetaNews</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/10/13/ode-to-fileforum-from-betanews.aspx</link><pubDate>Sat, 13 Oct 2007 15:46:37 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:359</guid><dc:creator>slimcode</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;A few weeks ago, for the release of slimKEYS version 1.1.0 (which quickly &lt;a href="http://www.slimcode.com/cs/blogs/martin/archive/2007/09/06/implementing-something-you-don-t-call.aspx"&gt;became v1.1.1&lt;/a&gt;), I decided to try &lt;a href="http://submit-everywhere.com/" target="_blank"&gt;submit-everywhere.com&lt;/a&gt;, to see if it could drive some more traffic. Before submitting, you must provide your existing download site credentials, or opt-out of their service for particular sites. I only had one account I wanted to handle myself, which was &lt;a href="http://www.download.com/" target="_blank"&gt;download.com&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Once their submission process was rolling, they contacted me about not having my &lt;a href="http://fileforum.betanews.com/" target="_blank"&gt;FileForum.BetaNews.com&lt;/a&gt; credentials, since they saw the previous version was already visible and well documented. Well, I don't have those credentials. I never had. But FileForum has always displayed my latest version, diligently, accurately, without myself having to lift a finger. My initial release of 0.9.5 quickly showed up there, after I submitted my software to &lt;a href="http://neowin.net/" target="_blank"&gt;neowin.net&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Thursday, I rolled out a new build of slimKEYS v1.1.2, addressing &lt;a href="http://www.slimcode.com/slimKEYS/History.aspx"&gt;a few bugs&lt;/a&gt; and &lt;a href="http://www.slimcode.com:80/cs/forums/thread/350.aspx"&gt;limitations&lt;/a&gt;, but forgot to update the PAD file on my server. This morning, while looking at my referrer logs, I saw the usual FileForum entry for slimKEYS, and followed the link, and got a very pleasant surprise: version 1.1.2 was &lt;a href="http://fileforum.betanews.com/detail/slimKEYS/1156257295/1" target="_blank"&gt;already displayed&lt;/a&gt;, with the correct list of changes. How do they do this? Are they monitoring specific web pages? Or the download section RSS feed?&lt;/p&gt; &lt;p&gt;Anyway, FileForum, I give you 5/5!&lt;/p&gt; &lt;p&gt;As for download.com... well... I'm still waiting for them to show version 1.1.1. The submission is so painful I never updated it since v1.0.3. Their estimated publish date says September 22nd! I decided not to wait, and pushed v1.1.2. This will delay my submission even more. In French, we say "tant pis pour eux". I can't find a correct English translation, but it's a polite way to say "screw them"!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e4a1fb70-fd90-43ec-a500-8441323a7621" 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/FileForum" rel="tag"&gt;FileForum&lt;/a&gt;, &lt;a href="http://technorati.com/tags/download.com" rel="tag"&gt;download.com&lt;/a&gt;, &lt;a href="http://technorati.com/tags/submit-everywhere" rel="tag"&gt;submit-everywhere&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=359" 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>Submitting a crash ticket crashes the system!</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/10/12/submitting-a-crash-ticket-crashes-the-system.aspx</link><pubDate>Fri, 12 Oct 2007 03:00:20 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:356</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;While submitting a ticket to &lt;a href="http://www.roxio.com" target="_blank"&gt;Roxio&lt;/a&gt; about a crash I can reproduce with Easy Media Creator 10 and its MyDVD component, bad luck continued to hit:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.slimcode.com/cs/blogs/martin/Submittingacrashticketcrashesthesystem_14349/image.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="279" alt="Roxio Support needs support" src="http://www.slimcode.com/cs/blogs/martin/Submittingacrashticketcrashesthesystem_14349/image_thumb.png" width="484" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Do you think I should open a ticket about this? q;-)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d9ff0d2e-74af-4b48-8314-05f326a607d9" 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/Roxio" rel="tag"&gt;Roxio&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Support" rel="tag"&gt;Support&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=356" 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>Convert ICO to PNG</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/09/28/convert-ico-to-png.aspx</link><pubDate>Fri, 28 Sep 2007 17:39:00 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:355</guid><dc:creator>slimcode</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;I was looking for a free and simple application to convert icon files containing multiple resolutions, to multiple PNG files. I'm sure there must be such an application out there, but the few I checked were too complicated for my needs. I did what too many programmers do: I reinvented the wheel. Turns out it was very simple. I did a minimally featured console application, who's code looks like this:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Drawing;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;

&lt;span class="kwrd"&gt;namespace&lt;/span&gt; ConvertIcons
{
  &lt;span class="kwrd"&gt;class&lt;/span&gt; Program
  {
    &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main( &lt;span class="kwrd"&gt;string&lt;/span&gt;[] arguments )
    {
      &lt;span class="kwrd"&gt;try&lt;/span&gt;
      {
        &lt;span class="kwrd"&gt;if&lt;/span&gt;( arguments.Length == 0 )
          &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentException( &lt;span class="str"&gt;"No icon filename provided."&lt;/span&gt; );

        &lt;span class="rem"&gt;// Default values&lt;/span&gt;
        &lt;span class="kwrd"&gt;int&lt;/span&gt; minSize = 1;
        &lt;span class="kwrd"&gt;int&lt;/span&gt; maxSize = 256;
        &lt;span class="kwrd"&gt;int&lt;/span&gt; stepSize = 1;
        &lt;span class="kwrd"&gt;string&lt;/span&gt; filename = &lt;span class="kwrd"&gt;null&lt;/span&gt;;

        &lt;span class="kwrd"&gt;foreach&lt;/span&gt;( &lt;span class="kwrd"&gt;string&lt;/span&gt; argument &lt;span class="kwrd"&gt;in&lt;/span&gt; arguments )
        {
          &lt;span class="kwrd"&gt;if&lt;/span&gt;( argument.StartsWith( &lt;span class="str"&gt;"-min"&lt;/span&gt;, StringComparison.InvariantCultureIgnoreCase ) )
          {
            &lt;span class="kwrd"&gt;if&lt;/span&gt;( !&lt;span class="kwrd"&gt;int&lt;/span&gt;.TryParse( argument.Substring( 2 ), &lt;span class="kwrd"&gt;out&lt;/span&gt; minSize ) )
              &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentException( &lt;span class="str"&gt;"Invalid minimum size argument."&lt;/span&gt; );

            &lt;span class="kwrd"&gt;if&lt;/span&gt;( ( minSize &amp;lt; 1 ) || ( minSize &amp;gt; 512 ) )
              &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentException( &lt;span class="str"&gt;"The minimum size must be a value from 1 to 512."&lt;/span&gt; );
          }
          &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt;( argument.StartsWith( &lt;span class="str"&gt;"-max"&lt;/span&gt;, StringComparison.InvariantCultureIgnoreCase ) )
          {
            &lt;span class="kwrd"&gt;if&lt;/span&gt;( !&lt;span class="kwrd"&gt;int&lt;/span&gt;.TryParse( argument.Substring( 2 ), &lt;span class="kwrd"&gt;out&lt;/span&gt; maxSize ) )
              &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentException( &lt;span class="str"&gt;"Invalid maximum size argument."&lt;/span&gt; );

            &lt;span class="kwrd"&gt;if&lt;/span&gt;( ( maxSize &amp;lt; 1 ) || ( maxSize &amp;gt; 512 ) )
              &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentException( &lt;span class="str"&gt;"The maximum size must be a value from 1 to 512."&lt;/span&gt; );
          }
          &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt;( argument.StartsWith( &lt;span class="str"&gt;"-step"&lt;/span&gt;, StringComparison.InvariantCultureIgnoreCase ) )
          {
            &lt;span class="kwrd"&gt;if&lt;/span&gt;( !&lt;span class="kwrd"&gt;int&lt;/span&gt;.TryParse( argument.Substring( 2 ), &lt;span class="kwrd"&gt;out&lt;/span&gt; stepSize ) )
              &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentException( &lt;span class="str"&gt;"Invalid step size argument."&lt;/span&gt; );

            &lt;span class="kwrd"&gt;if&lt;/span&gt;( ( stepSize &amp;lt; 1 ) || ( stepSize &amp;gt; 512 ) )
              &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentException( &lt;span class="str"&gt;"The step size must be a value from 1 to the maximum size."&lt;/span&gt; );
          }
          &lt;span class="kwrd"&gt;else&lt;/span&gt;
          {
            &lt;span class="kwrd"&gt;if&lt;/span&gt;( filename != &lt;span class="kwrd"&gt;null&lt;/span&gt; )
              &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentException( &lt;span class="str"&gt;"Too many parameters."&lt;/span&gt; );

            filename = argument;
          }
        }

        &lt;span class="kwrd"&gt;if&lt;/span&gt;( minSize &amp;gt; maxSize )
          &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentException( &lt;span class="str"&gt;"The minimum size cannot be greater than the maximum size."&lt;/span&gt; );

        &lt;span class="kwrd"&gt;if&lt;/span&gt;( filename == &lt;span class="kwrd"&gt;null&lt;/span&gt; )
          &lt;span class="kwrd"&gt;throw&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; ArgumentException( &lt;span class="str"&gt;"No icon filename provided."&lt;/span&gt; );

        Program.GenerateImages( minSize, maxSize, stepSize, filename );
      }
      &lt;span class="kwrd"&gt;catch&lt;/span&gt;( ArgumentException except )
      {
        Console.WriteLine( except.Message );
        Program.DisplayUsage();
      }
      &lt;span class="kwrd"&gt;catch&lt;/span&gt;( Exception except )
      {
        Console.WriteLine( except.Message );
      }
    }

    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; DisplayUsage()
    {
      Console.WriteLine( &lt;span class="str"&gt;"ConvertIcons [-min###] [-max###] [-step###] icon_filename"&lt;/span&gt; );
      Console.WriteLine( &lt;span class="str"&gt;"  where -min indicates the minimum image size to generate (default = 1)"&lt;/span&gt; );
      Console.WriteLine( &lt;span class="str"&gt;"        -max indicates the maximum image size to generate (default = 256)"&lt;/span&gt; );
      Console.WriteLine( &lt;span class="str"&gt;"        -step indicates the step of each size to generate (default = 1)"&lt;/span&gt; );
      Console.WriteLine();
      Console.WriteLine( &lt;span class="str"&gt;"This application extracts multiple icons from a single icon file, and generates multiple PNG files."&lt;/span&gt; );
      Console.WriteLine();
      Console.WriteLine( &lt;span class="str"&gt;"For example, to extract the 16x16, 32x32 and 48x48 icons from file 'foo.ico', use:"&lt;/span&gt; );
      Console.WriteLine( &lt;span class="str"&gt;"ConvertIcons -min16 -max48 -step16 foo.ico"&lt;/span&gt; );
      Console.WriteLine();
      Console.WriteLine( &lt;span class="str"&gt;"This will generate files foo16.png, foo32.png and foo48.png, if those resolutions are found."&lt;/span&gt; );
    }

    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GenerateImages( &lt;span class="kwrd"&gt;int&lt;/span&gt; minSize, &lt;span class="kwrd"&gt;int&lt;/span&gt; maxSize, &lt;span class="kwrd"&gt;int&lt;/span&gt; stepSize, &lt;span class="kwrd"&gt;string&lt;/span&gt; filename )
    {
      &lt;span class="kwrd"&gt;string&lt;/span&gt; baseFilename = System.IO.Path.Combine(
        System.IO.Path.GetDirectoryName( filename ),
        System.IO.Path.GetFileNameWithoutExtension( filename ) );

      &lt;span class="kwrd"&gt;for&lt;/span&gt;( &lt;span class="kwrd"&gt;int&lt;/span&gt; size = minSize; size &amp;lt;= maxSize; size += stepSize )
      {
        &lt;span class="kwrd"&gt;try&lt;/span&gt;
        {
          Icon icon = &lt;span class="kwrd"&gt;new&lt;/span&gt; Icon( filename, &lt;span class="kwrd"&gt;new&lt;/span&gt; Size( size, size ) );

          &lt;span class="kwrd"&gt;if&lt;/span&gt;( ( icon.Width == size ) &amp;amp;&amp;amp; ( icon.Height == size ) )
          {
            Bitmap bitmap = icon.ToBitmap();
            &lt;span class="kwrd"&gt;string&lt;/span&gt; newFilename = baseFilename + size.ToString() + &lt;span class="str"&gt;".png"&lt;/span&gt;;

            bitmap.Save( newFilename );

            Console.WriteLine( &lt;span class="str"&gt;"Generated {0}x{0} image named {1}"&lt;/span&gt;, size, newFilename );
          }
        }
        &lt;span class="kwrd"&gt;catch&lt;/span&gt;( Exception except )
        {
          Console.WriteLine( &lt;span class="str"&gt;"Error generating {0}x{0} image: {1}"&lt;/span&gt;, size, except.Message );
        }
      }
    }
  }
}
&lt;/pre&gt;
&lt;p&gt;Should I build a binary?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2089b5c3-b5c7-47c8-abb6-78ed18ffdef8" 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/Icon" rel="tag"&gt;Icon&lt;/a&gt;, &lt;a href="http://technorati.com/tags/ICO" rel="tag"&gt;ICO&lt;/a&gt;, &lt;a href="http://technorati.com/tags/PNG" rel="tag"&gt;PNG&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=355" 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>Strange Yahoo! search results</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/09/26/strange-yahoo-search-results.aspx</link><pubDate>Wed, 26 Sep 2007 15:36:00 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:351</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Something very strange just happened to me while searching on Yahoo!. First, a prelude: Half an hour ago, while performing a search on Yahoo!, I got an empty result, with a message telling me there was a problem, and that I should retry. I did not capture that screen. Retrying the search finally succeeded.&lt;/P&gt;&lt;P&gt;Now, a few minutes ago, while performing another search on Yahoo! for "print single page outlook 2007", I got the following results:&lt;/P&gt;&lt;P&gt;&lt;IMG style="border-right-width:0px;border-right-style:none;border-top-color:#000000;border-top-width:0px;border-top-style:none;border-left-color:#000000;border-left-width:0px;border-left-style:none;border-bottom-color:#000000;border-bottom-width:0px;border-bottom-style:none';" height="859" alt="image" src="http://www.slimcode.com/cs/blogs/martin/StrangeYahoosearchresults_A1B3/image.png" width="585" border="0"&gt; &lt;/P&gt;&lt;P&gt;As you can see, the advertising matches my search, but the results seems to indicate a search for "Pastor John Stirling Blog" (terms in bold), or something like that. That's scary. Very scary. Imagine my son searching for a child TV program, and ending on something for older eyes. Or it could simply make people think there's nothing about one subject while there should have been.&lt;/P&gt;&lt;P&gt;Here's the full window, if you're curious.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.slimcode.com/cs/blogs/martin/StrangeYahoosearchresults_A1B3/image_3.png"&gt;&lt;IMG style="border-right-width:0px;border-right-style:none;border-top-color:#000000;border-top-width:0px;border-top-style:none;border-left-color:#000000;border-left-width:0px;border-left-style:none;border-bottom-color:#000000;border-bottom-width:0px;border-bottom-style:none';" height="244" alt="image" src="http://www.slimcode.com/cs/blogs/martin/StrangeYahoosearchresults_A1B3/image_thumb.png" width="244" border="0"&gt;&lt;/A&gt; &lt;/P&gt;&lt;P&gt;P.S.: Repeating the same search did give me the correct results.&lt;/P&gt;&lt;DIV class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:882ec8d9-1256-4df6-bd0a-54893b2074a5" style="display:inline;padding-left:0px;padding-bottom:0px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px';"&gt;&lt;BR&gt;Tags: &lt;A href="http://technorati.com/tags/Yahoo!" rel="tag"&gt;Yahoo!&lt;/A&gt;&lt;/DIV&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=351" 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>Giving Opera a real chance</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/09/25/giving-opera-a-real-chance.aspx</link><pubDate>Tue, 25 Sep 2007 13:55:48 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:346</guid><dc:creator>slimcode</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;I've been a &lt;a href="http://www.mozilla.com/en-US/firefox/" target="_blank"&gt;FireFox&lt;/a&gt; user since version 0.8 or something. What drove me to FireFox was add-ins. The huge amount of tools I could add was calling me, and the tabbed interface was for me a great advance.&lt;/p&gt; &lt;p&gt;It wasn't speed. Back then, browsers were fast enough, maybe because web pages were lean enough. I don't know if it's really page sizes that is now killing me, but web surfing is painful, both in FireFox and Internet Explorer 7. I used both equally as my default browser on Vista since February, and they really feel sluggish. The worse part is opening a new instance. I don't keep my browser open. Why would I? Tabs are fun, but if you're done with all pages, why keep the browser open? It's only one more useless icon to go through when you switch between applications.&lt;/p&gt; &lt;p&gt;In the past 4 years, I've been trying &lt;a href="http://www.opera.com/" target="_blank"&gt;Opera&lt;/a&gt; from time to time, without committing to setting it as my default browser. &lt;u&gt;Every time&lt;/u&gt;, it felt much faster, much better for browsing. But the same problem kept killing its chances: where are my add-ons? So it usually got uninstalled after a few days. Thanks Opera for the great browser implementation, but no thanks.&lt;/p&gt; &lt;p&gt;Today, mark the date, September 25th 2007, I'm giving Opera a real chance. It will be my default browser for at least a month. At the end of October, I'll share with you my thoughts about it. I've added the &lt;a href="http://del.icio.us/help/buttons" target="_blank"&gt;del.icio.us buttons&lt;/a&gt;, which don't work like I would them to work, and the &lt;a href="http://dev.opera.com/tools/" target="_blank"&gt;developer buttons&lt;/a&gt;, which gives me only a percent of what the &lt;a href="http://chrispederick.com/work/web-developer/" target="_blank"&gt;FireFox Web Developer toolbar&lt;/a&gt; had. I'll search for better tools, but will live with those in the meantime. But this time, speed has become more important than tools.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:abf7c44b-16d5-47a0-a972-2b153c972875" 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/Opera" rel="tag"&gt;Opera&lt;/a&gt;, &lt;a href="http://technorati.com/tags/FireFox" rel="tag"&gt;FireFox&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Internet%20Explorer" rel="tag"&gt;Internet Explorer&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=346" 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>PostsPerMonth Web Control</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/09/25/postspermonth-web-control.aspx</link><pubDate>Tue, 25 Sep 2007 04:01:00 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:345</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>
&lt;p&gt;Scott's post about &lt;a href="http://www.hanselman.com/blog/ABlogsHeartbeat.aspx" target="_blank"&gt;a blog's heartbeat&lt;/a&gt;, and his &lt;a href="http://www.getpaint.net/" target="_blank"&gt;Paint.NET&lt;/a&gt; template to create your own heartbeat image tag gave me the idea to try creating my own custom web control. For a non-web developer like me, that was fun. The following zip file contains the control, sources, and sample web page for testing.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="http://www.slimcode.com/cs/files/folders/344/download.aspx"&gt;PostsPerMonth.zip&lt;/a&gt;&lt;/p&gt;
 
&lt;p&gt;Feel free to play with it! Don't forget to clean up the "ppm" subfolder when you change the image rendering function. This folder must be writable by the ASPNET user.&lt;/p&gt;
 
&lt;p&gt;To use it in your page, register the control:&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;%@ Register TagPrefix=&lt;span class="str"&gt;"slim"&lt;/span&gt; Namespace=&lt;span class="str"&gt;"SlimCode.Web.Controls"&lt;/span&gt; &lt;br&gt;    Assembly=&lt;span class="str"&gt;"SlimCode.Web.Controls.PostsPerMonth"&lt;/span&gt; %&amp;gt;&lt;/pre&gt;

&lt;p&gt;And declare your instance:&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;slim:PostsPerMonthImage runat=&lt;span class="str"&gt;"server"&lt;/span&gt; Text=&lt;span class="str"&gt;"martinplante.com"&lt;/span&gt; &lt;br&gt;                         PostsPerMonth=&lt;span class="str"&gt;"10"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;It will generate an image in the "ppm" subfolder, if this image is not already there.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.slimcode.com/cs/blogs/martin/PostsPerMonthWebControl_148E8/6ppm.png" style="border:0px none;" alt="6ppm" border="0" height="196" width="200"&gt; &lt;/p&gt;

&lt;p&gt;Have fun!&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:091776b7-2b71-40a8-938c-60c17f2fe12a" style="margin:0px;padding:0px;display:inline;"&gt;Tags: &lt;a href="http://technorati.com/tags/PostsPerMonth" rel="tag"&gt;PostsPerMonth&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=345" 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 SDK updated</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/09/13/slimkeys-sdk-updated.aspx</link><pubDate>Thu, 13 Sep 2007 18:03:44 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:342</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;For those interested in &lt;a href="http://www.slimcode.com/slimKEYS/Developers.aspx"&gt;developing plug-ins for slimKEYS&lt;/a&gt;, I've updated the &lt;a href="http://www.slimcode.com/slimKEYS/downloads/slimKEYSsdk.msi"&gt;slimKEYS SDK&lt;/a&gt; to match the latest version. I added a slimSEARCH sample, which performs arithmetic operations when you enter something like "=pi*2" as the search term. This sample uses the free &lt;a href="http://www.lundin.info/mathparser.aspx" target="_blank"&gt;info.lundin.Math library&lt;/a&gt;, created by Patrik Lundin.&lt;/p&gt; &lt;p&gt;Another new slimSEARCH sample is the &lt;a href="http://www.fogcreek.com/FogBugz/" target="_blank"&gt;FogBugz&lt;/a&gt; extension &lt;a href="http://www.slimcode.com/cs/blogs/martin/archive/2007/07/30/sample-fogbugz-slimsearch-extension.aspx"&gt;I've previously talked about&lt;/a&gt;, for searching case numbers. Those two samples could well become built-in samples one day. What do you think?&lt;/p&gt; &lt;p&gt;You'll also find the other samples and full sources to the slimLAUNCH.Passwords plug-in that already comes with slimKEYS.&lt;/p&gt; &lt;p&gt;The SDK also contains the developer document, but you can also take a look at it &lt;a href="http://www.slimcode.com/slimKEYS/downloads/slimCODE.slimKEYS.Common.chm"&gt;right here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:607373ab-bfea-478c-99a9-8e5e65505434" 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/slimKEYS%20SDK" rel="tag"&gt;slimKEYS SDK&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Math" rel="tag"&gt;Math&lt;/a&gt;, &lt;a href="http://technorati.com/tags/FogBugz" rel="tag"&gt;FogBugz&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=342" 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>Searching for recent stuff</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/09/12/searching-for-recent-stuff.aspx</link><pubDate>Wed, 12 Sep 2007 04:15:13 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:341</guid><dc:creator>slimcode</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Just found out that Google allows you to search for pages that appeared either the past day, week, month and more. For example, you can search for "slimKEYS" only in the past day using this URL:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.google.com/search?as_q=%22slimKEYS%22&amp;amp;as_qdr=d" href="http://www.google.com/search?as_q=slimKEYS&amp;amp;as_qdr=d"&gt;http://www.google.com/search?as_q=slimKEYS&amp;amp;as_qdr=d&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Or the past week using this URL:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.google.com/search?as_q=%22slimKEYS%22&amp;amp;as_qdr=w" href="http://www.google.com/search?as_q=slimKEYS&amp;amp;as_qdr=w"&gt;http://www.google.com/search?as_q=slimKEYS&amp;amp;as_qdr=w&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I've added an entry in my slimSEARCH config. If you want to do the same, here's how:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Open the slimKEYS hotkey window (Win-K).&lt;/li&gt; &lt;li&gt;Select your slimSEARCH hotkey and press Enter (or double-click).&lt;/li&gt; &lt;li&gt;Press the "Add a new search entry" button (&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="14" alt="image" src="http://www.slimcode.com/cs/blogs/martin/Searchingforrecentstuff_15074/image.png" width="15" border="0"&gt; ).&lt;/li&gt; &lt;li&gt;Select the "Custom Web Search" entry type.&lt;/li&gt; &lt;li&gt;Change the Search Access options as you wish. I've used this:&lt;br&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="127" alt="image" src="http://www.slimcode.com/cs/blogs/martin/Searchingforrecentstuff_15074/image_3.png" width="337" border="0"&gt;&lt;/li&gt; &lt;li&gt;Use the following Search Pattern:&lt;br&gt; http://www.google.com/search?as_q={keywords}&amp;amp;as_qdr=w&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Now, I can search in the last 7 days by either pressing Alt-7 after my keywords, or preceding them by "g7 ". Cool!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:22964ab9-a8de-4f7d-8280-783fdd60b041" 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/Google" rel="tag"&gt;Google&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Recent%20Search" rel="tag"&gt;Recent Search&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/slimKEYS" rel="tag"&gt;slimKEYS&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=341" 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>Implementing something you don't call...</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/09/06/implementing-something-you-don-t-call.aspx</link><pubDate>Thu, 06 Sep 2007 20:25:30 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:338</guid><dc:creator>slimcode</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I've said it in the past; &lt;a href="http://www.slimcode.com/cs/blogs/martin/archive/2007/02/08/being-a-humble-developer.aspx" target="_blank"&gt;developers must stay humble&lt;/a&gt;. Humility just hit me again.&lt;/p&gt; &lt;p&gt;Have you heard the news? slimKEYS 1.1.0 is out! You're already using slimKEYS? So you may already know it uses an auto-updater to periodically check for updates. If you knew that, you're probably waiting for the updater to find the update, right?&lt;/p&gt; &lt;p&gt;Wait no more... It won't happen... (blush)...&lt;/p&gt; &lt;p&gt;You see, I'm using &lt;a href="http://www.advancedinstaller.com/" target="_blank"&gt;Advanced Installer&lt;/a&gt;'s auto-updater application. When building my package, it creates a small executable named "slimCODE.slimKEYS.AutoUpdate.exe" with a sibling INI file with settings. My application has to call this executable from time to time to perform all the auto-updating stuff... (cough)...&lt;/p&gt; &lt;p&gt;Where did I put the code to call this executable? In the timer callback that closes the splash screen. What happened with the splash screen since version 1.0.4? It's gone!&lt;/p&gt; &lt;p&gt;Argh!&lt;/p&gt; &lt;p&gt;By killing the splash screen, I've killed auto-updates. Quite a bad implementation, my friends. Not only does this mean many of you won't see version 1.1.0 until you discover it's out, but you were running 1.0.4 instead of 1.0.5 for quite some time now.&lt;/p&gt; &lt;p&gt;What amuses me the most about the situation (hey, gotta laugh about this) is that auto-updating from 1.0.3 to 1.0.4 killed the feature. Ironic.&lt;/p&gt; &lt;p&gt;What amuses me less is that I saw the signs, but did not catch them. My logs for the file that is checked by this auto-updater were strange. Only a couple of accesses per day. I should have figured out there was a problem. And no, auto-updating wasn't part of my pre-release tests. Now it will be.&lt;/p&gt; &lt;p&gt;I've now fixed this issue and &lt;a href="http://www.slimcode.com/slimKEYS/Downloads/slimKEYS.msi"&gt;updated the package&lt;/a&gt; to version 1.1.1.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:71a8edac-4c40-43e7-91a1-ea81cb936bf0" 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/auto-update" rel="tag"&gt;auto-update&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Advanced%20Installer" rel="tag"&gt;Advanced Installer&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Humility" rel="tag"&gt;Humility&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=338" 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>Computerrrr? Computerrrr?</title><link>http://www.slimcode.com/cs/blogs/martin/archive/2007/09/06/computerrrr-computerrrr.aspx</link><pubDate>Thu, 06 Sep 2007 15:25:36 GMT</pubDate><guid isPermaLink="false">ccca17bc-cc72-4bae-972f-7bd738c168c1:337</guid><dc:creator>slimcode</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Since Scott is &lt;a href="http://www.hanselman.com/blog/WindowsUpdateShouldHideHResults.aspx" target="_blank"&gt;writing his blog posts using speech recognition&lt;/a&gt;, I decided it was time for me to try this out.&amp;nbsp; I even bought myself a new USB head phone with a microphone.&amp;nbsp; I must admit I'm having a lot of difficulty with it.&amp;nbsp; The first time I was with my son, but he did a lot of noise.&amp;nbsp; This time I'm all alone, &lt;/p&gt; &lt;p&gt;&lt;em&gt;&amp;lt;end of dictation&amp;gt; &amp;lt;good old keyboard&amp;gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Boy, I'm not ready for speech recognition. Dictating the above paragraph was a complete nightmare. First, it seems Windows Speech Recognition is having a hard time with my accent. The first time I ran the tutorial, it had a lot of trouble with the word "PERIOD". Even after running the training, it could not insert a period.&lt;/p&gt; &lt;p&gt;I ran the tutorial a second time this morning, and it went very well. But when I returned to Windows Live Writer, I could not undo nor select anything. Saying "undo" or "undo that" displayed "undoing last action" in the speech recognition monitor, but actually undid nothing. Trying to select or correct something was useless, the selection would not change. I even got a bug, where the "Select a number" popup showed, I dictated the number and said "OK" and my change was made, but the popup stayed visible. Pressing or saying "Cancel" or "OK" or even "Close that" did nothing, so I had to click on the close button.&lt;/p&gt; &lt;p&gt;I suspect it's a problem with Windows Live Writer. Let's try writing the next paragraph in Notepad, then paste it here.&lt;/p&gt; &lt;p&gt;&lt;em&gt;&amp;lt;end of keyboard&amp;gt; &amp;lt;start of dictation&amp;gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;I even tried speech recognition with slimKEYS.&amp;nbsp; I told windows to press the window K keyboard shortcut, and the slimKEYS window appeared.&amp;nbsp; Then I tried to select hotkeys by their names.&amp;nbsp; It went pretty well.&amp;nbsp; I could select the Win letters combinations, but had difficulty with the Browserstop Hotkey.&lt;/p&gt; &lt;p&gt;&lt;em&gt;&amp;lt;end of dictation&amp;gt; &amp;lt;good old keyboard&amp;gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;I'm gonna cry... It was awful, terrible, excruciating, so painful I feel like jumping out of the window. Sure, corrections and selections worked this time, but I could have typed all this in a fraction of the time and energy I took for the above paragraph.&lt;/p&gt; &lt;p&gt;My conclusion? As long as speech recognition will require the mere mortal to train his computer (and himself) for weeks before getting things done, it will remain a geek gadget and a lost of time.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:216ac601-944d-4e6c-b3b6-9b3e017f30bf" 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/Speech%20Recognition" rel="tag"&gt;Speech Recognition&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.slimcode.com/cs/aggbug.aspx?PostID=337" 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>