|
|
-
This morning, my Google alerts pointed me to this page, 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. Where it hurts a little is the logo on that box: "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. 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? At least I'm complaining about something more obvious than Apple vs GreeNYC!
|
-
I'm getting crazy. Totally. I'm now convinced aliens kidnapped me in my sleep and changed my Vista installation. 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. 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. 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. 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: "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? 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. What is happening to my Vista?
|
-
I bought myself a nice gadget lately; an HTC P4000 mobile phone. 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). My phone has both a touch screen and sliding keyboard, two features that were important for me. I'm eager to try Opera Mobile 9.5, probably the closest thing to Safari on the iPhone, even though my device isn't multi-touch. 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. 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: HKLM\Comm\ConnMgr\Providers\{7c4b7a38-5ff7-4bc1-80f6-5da7870bb1aa}\Connections\CDMA1X\Enabled 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. 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!
|
-
With Scott's Visual Studio's theme rundown, I'm getting requests for my VS Settings file for my older example. 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 ProggySquare 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. 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. So here's the latest screenshot on my desktop: And that's how it looks on my laptop: And finally, you can download my VSSETTINGS file with the Lucida Console font.
|
-
My very good friend Pascal Bourque is one of the lucky 5 nominees for the MSDN Canada Code Awards 2008, for his key role in the creation of the Xceed DataGrid for WPF. I often compare Pascal's technical skills with Scott Guthrie, who I happen to admire a lot too. 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 go vote for Pascal, since he played a key role in designing and developing those products over the last 10 years at Xceed. - Xceed Zip
- Xceed Backup
- Xceed Winsock
- Xceed FTP
- Xceed Zip for .NET
- Xceed Grid for .NET
- Xceed Docking Windows for .NET
- Xceed DataGrid for .NET
Congratulations Pascal! You deserve the spotlights!
|
-
I just updated the web site and slimKEYS package 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 Xceed, but it's partly my fault anyway if they use such a number. I even have a Vista widget, err, gadget displaying the current day's version number: 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... 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: There are many other improvements, 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!
|
-
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 some promises. 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. Should I interpret this event as a signal? ... Nah, too much work to do.
|
-
The second beta of slimKEYS 1.1.3 is now available for download. With this last beta before the release, I urgently need Vista testers. If you look at the list of changes, you can see a few pending or new Vista features. slimVOLUME 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. 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. So, mandate #1: Test slimVOLUME on Vista. slimSIZE 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. Fortunately, this Vista security feature can be "safely" circumvented. The recipe isn't obvious, but it works (except*). 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. (*): 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**. 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). 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. Mandate #2: Tell me if slimSEARCH or slimLAUNCH.Delicious are slow to open web pages. Mandate #3: 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. (**): 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. slimLAUNCH 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. Mandate #4: Test a few verbs, test the "runas" verb, give comments about how this can be improved. slimSMOKE 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.  You think you could like this? Mandate #5: Test slimSMOKE and give me your impressions!
|
-
I'm beta testing Windows Live OneCare 2, and this morning, the automatic update failed, with a message redirecting me to this web page: 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!
|
-
I did it again. It's not the first time. 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. 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. My initial feeling working with slimSMOKE is "cool", but I need feedback. If you like to test beta software, go get beta 1.1.3 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. 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. Have fun! * (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".)
|
-
A few weeks ago, for the release of slimKEYS version 1.1.0 (which quickly became v1.1.1), I decided to try submit-everywhere.com, 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 download.com. Once their submission process was rolling, they contacted me about not having my FileForum.BetaNews.com 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 neowin.net. Thursday, I rolled out a new build of slimKEYS v1.1.2, addressing a few bugs and limitations, 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 already displayed, with the correct list of changes. How do they do this? Are they monitoring specific web pages? Or the download section RSS feed? Anyway, FileForum, I give you 5/5! 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"!
|
-
While submitting a ticket to Roxio about a crash I can reproduce with Easy Media Creator 10 and its MyDVD component, bad luck continued to hit: Do you think I should open a ticket about this? q;-)
|
-
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: using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
namespace ConvertIcons
{
class Program
{
static void Main( string[] arguments )
{
try
{
if( arguments.Length == 0 )
throw new ArgumentException( "No icon filename provided." );
// Default values
int minSize = 1;
int maxSize = 256;
int stepSize = 1;
string filename = null;
foreach( string argument in arguments )
{
if( argument.StartsWith( "-min", StringComparison.InvariantCultureIgnoreCase ) )
{
if( !int.TryParse( argument.Substring( 2 ), out minSize ) )
throw new ArgumentException( "Invalid minimum size argument." );
if( ( minSize < 1 ) || ( minSize > 512 ) )
throw new ArgumentException( "The minimum size must be a value from 1 to 512." );
}
else if( argument.StartsWith( "-max", StringComparison.InvariantCultureIgnoreCase ) )
{
if( !int.TryParse( argument.Substring( 2 ), out maxSize ) )
throw new ArgumentException( "Invalid maximum size argument." );
if( ( maxSize < 1 ) || ( maxSize > 512 ) )
throw new ArgumentException( "The maximum size must be a value from 1 to 512." );
}
else if( argument.StartsWith( "-step", StringComparison.InvariantCultureIgnoreCase ) )
{
if( !int.TryParse( argument.Substring( 2 ), out stepSize ) )
throw new ArgumentException( "Invalid step size argument." );
if( ( stepSize < 1 ) || ( stepSize > 512 ) )
throw new ArgumentException( "The step size must be a value from 1 to the maximum size." );
}
else
{
if( filename != null )
throw new ArgumentException( "Too many parameters." );
filename = argument;
}
}
if( minSize > maxSize )
throw new ArgumentException( "The minimum size cannot be greater than the maximum size." );
if( filename == null )
throw new ArgumentException( "No icon filename provided." );
Program.GenerateImages( minSize, maxSize, stepSize, filename );
}
catch( ArgumentException except )
{
Console.WriteLine( except.Message );
Program.DisplayUsage();
}
catch( Exception except )
{
Console.WriteLine( except.Message );
}
}
private static void DisplayUsage()
{
Console.WriteLine( "ConvertIcons [-min###] [-max###] [-step###] icon_filename" );
Console.WriteLine( " where -min indicates the minimum image size to generate (default = 1)" );
Console.WriteLine( " -max indicates the maximum image size to generate (default = 256)" );
Console.WriteLine( " -step indicates the step of each size to generate (default = 1)" );
Console.WriteLine();
Console.WriteLine( "This application extracts multiple icons from a single icon file, and generates multiple PNG files." );
Console.WriteLine();
Console.WriteLine( "For example, to extract the 16x16, 32x32 and 48x48 icons from file 'foo.ico', use:" );
Console.WriteLine( "ConvertIcons -min16 -max48 -step16 foo.ico" );
Console.WriteLine();
Console.WriteLine( "This will generate files foo16.png, foo32.png and foo48.png, if those resolutions are found." );
}
private static void GenerateImages( int minSize, int maxSize, int stepSize, string filename )
{
string baseFilename = System.IO.Path.Combine(
System.IO.Path.GetDirectoryName( filename ),
System.IO.Path.GetFileNameWithoutExtension( filename ) );
for( int size = minSize; size <= maxSize; size += stepSize )
{
try
{
Icon icon = new Icon( filename, new Size( size, size ) );
if( ( icon.Width == size ) && ( icon.Height == size ) )
{
Bitmap bitmap = icon.ToBitmap();
string newFilename = baseFilename + size.ToString() + ".png";
bitmap.Save( newFilename );
Console.WriteLine( "Generated {0}x{0} image named {1}", size, newFilename );
}
}
catch( Exception except )
{
Console.WriteLine( "Error generating {0}x{0} image: {1}", size, except.Message );
}
}
}
}
}
Should I build a binary?
|
-
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. Now, a few minutes ago, while performing another search on Yahoo! for "print single page outlook 2007", I got the following results:
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. Here's the full window, if you're curious.
P.S.: Repeating the same search did give me the correct results.
|
-
I've been a FireFox 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. 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. In the past 4 years, I've been trying Opera from time to time, without committing to setting it as my default browser. Every time, 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. 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 del.icio.us buttons, which don't work like I would them to work, and the developer buttons, which gives me only a percent of what the FireFox Web Developer toolbar 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.
|
|
|
|