Main

January 23, 2008

Making it easier to deploy a web site or application on IIS6 or IIS7

Have you struggled to deploy a Microsoft hosted ASP.NET web site from one machine to another? Or have you wanted to easily archive the settings/files/etc. so that you can roll back changes later if needed (could be very useful for testing an update for example)?

Check out the new Microsoft Web Deployment Team announcement here on their new blog.

They just announced a new deployment tool that supports moving configuration, content, SSL certificates and the other types of data that is associated with a web server. It's command-line driven for now (and with the output being very configurable, including XML), it would be easy enough to put a GUI front-end on the tool if one were so inclined.

It's a tech preview right now and a handful of walkthroughs are available for download.

January 12, 2008

Chumby Photo Viewer Source code

I mentioned I created some software for the Chumby recently. I'm releasing portions of it for public consumption here. I'm not including the automatic e-mail uploader as that requires a custom component I'm not able to distribute. The php code just expects the images to be stored in a particular directory. It doesn't matter how they get there.

image

Chumby rule #1 though is that you must use non-progressive JPEG images. If you use progressive images, expect that the Chumby won't show them.

Chumby rule #2 is to keep the images small. I reduce the images to 640x480 (although the screen is 320x240) and compress them to 60% quality and am very happy with the images. You can play with the settings -- but you'll want to keep the images small so they download quickly. One of the settings (hard-coded in the Flash ActionScript) is the length of time between photos. Adjust that to suit your needs. It's eight seconds in the code I released.

The zipped package is here.

There's a key that is sent with every request to the server. The Flash ActionScript is hard-coded to the key ... just change it to whatever you want:

var apikey:String = escape("websitepassword"); // your web site password (must match what the web server expects)

The PHP has the same key and they must match.

If you don't want people to browse your photos directly, make sure you set up folder/directory permissions to prevent direct web browsing (through htaccess on an Apache web site for example).

Some snippets of the code I used follow.

var getImagesXMLComplete:Boolean = false; 

function getImages() {
getImagesXMLComplete = false;

txtStatus.text = "retrieving image list...";
this.getImagesXML = new XML();
this.getImagesXML.target = this;
this.getImagesXML.ignoreWhite = true;

this.getImagesXML.onLoad = function(success:Boolean) {
if (success) {
txtStatus.text = "success: " + this.firstChild.toString();
processImages(this);
}
getImagesXMLComplete = true;
}
this.getImagesXML.load(baseurl + "/getImages.php?" +
"startatfilename=" + lastfilename);
}



I parse the Xml this way (by grabbing the key data from the Xml file returned.)


function processImages(xml:XML) { 
var images:Array = XPathAPI.selectNodeList(xml.firstChild,
"/images/image");
if (images == null) { return; }

for(var i:Number = images.length - 1; i >= 0; i--) {
var photo:Object = new Object();
try {
photo.imageUrl = images[i].attributes.id;
photo.imageIndex = images[i].attributes.index;
trace("image: " + photo.imageUrl);
lastfilename = photo.imageUrl;
} catch(ex) {
txtStatus.text = ex.toString();
}
_photos.push(photo);
}
// trim if we've got too many photos collected
if (_photos.length > 200) {
_photos = _photos.slice(0, 200);
// reset if we've gone too far!
if (index > _photos.length) { index = 0; }
}

randomizePhotoList();
}



I added a debug mode to my chumby application:


var isDebugMode:Boolean = false; 
clipReminder.onMouseDown = function()
{
isDebugMode = true;
txtStatus._visible = true;
clipReminder._visible = false;
}

If the user touches the screen while the initialization is occurring, it puts the widget into a debug mode. The debug mode greatly helped me figure out what was going on as the emulator often worked when the Chumby did not. The debug mode shrinks the image to a small size and puts tracing text that I've scattered throughout the application on the Chumby's screen.


I randomize the list in place to keep memory use as low as possible:


function randomizePhotoList():Void { 
var i:Number = 0;
trace("randomizing");
for(i = _photos.length; i > 0 ; i--)
{
var rnd:Number = Math.round(Math.random() * i);
rnd = (rnd > i ? i : rnd);
var url:Object = _photos[i];
trace("swapping " + i.toString() + " with " +
rnd.toString());
_photos[i] = _photos[rnd];
_photos[rnd] = url;
}
}

If you have questions, feel free to email or post a comment.

January 6, 2008

Do you secure your laptop's data?

Bruce Schneier secures his laptop's data using PGP Disk's Whole Disk Encryption tool (read about his security measures here).

I do use one of his suggestions though: don't keep important information on a laptop.

Given he's the author of a number of popular cryptography and security related books, I can see him being more paranoid than me. Some of you however should consider the security of the data on your laptop ... (even if you don't go as far as Bruce); what if the data on your laptop was suddenly made available on the Internet?

My favorite book from Bruce is definitely Applied Cryptography. (I admit it puts me to sleep reading it, but I still enjoy the math and the code -- even if some of it zings right over my head!).

image

(Yikes, the PGP Whole Disk Encryption tool is expensive at $149 US. Security certainly does come at a cost! I thought they had reasonably priced stuff for home use ... but I don't see anything reasonably priced -- PGP Desktop Home 9.7 is $99 US).

January 4, 2008

Improving the Presentation of your Ideas

I'm reading a new book, Presentation Zen, by Garr Reynolds. (I'm about half way through.)

image

It's a very good book, especially if you consider the bigger picture of "presentation" as it factors into the many things you may do. Software development and user interface development is all about presentation. I know I fall into the same rut some days as other people -- your design tool is the development environment, rather than stepping back and using a white board, a sheet of paper, or even the back of a napkin! The fields and data, and the visualizations you add to an application all tell a story and communicate emotions to the end user. Stark gray forms may communicate dull, boring, or even simple. Crazy colors and fonts may communicate pain and suffering (AKA headaches!). Presentation.

A few sentences have struck me so far though:

"Decoration, for better or worse, is noticeable--sometimes enjoyable, sometimes irritating, but it is unmistakably there. However, the best designs are so well done that "the design" is never even noticed consciously by the observer/user, such as the design of a book or the signage in an airport."

One company that most everyone who's reading this blog is familiar with is Apple. They get this (with the exception of ITunes on Windows!).

Back to the book --it's a beautiful, full color book. "Airy" (lots of white space). Easy to read (not dry).

I've done more minimal presentations in the last few years (with no more than 6-8 words on a slide) - and they've gone very well. But, it's taken quite a few years to overcome the PowerPoint-effect which is instilled in us by watching other dry, boring slideware.

I'll post more as I get through it, but I'd definitely recommend you check it out if you do many presentations (both in the actual literal sense, or want to consider "presentation" as a larger art). It's around $18 US right now at Amazon.

January 3, 2008

Chumby Chumby chumby!

You may have heard of this oddly named little device called the Chumby.

image

What is it? Well, it's a bit hard to describe as it can be a lot of things! Here's what the chumby web site says:

Why would I want one?

It's just pure 24/7 gratification to be able to have the Internet on tap. Sure, you can get the same information on your computer, but why be stuck behind a keyboard to enjoy your internet addictions? Here are just a few of the things you can do:

  • Catch the latest news headlines, sports, weather, stock prices.
  • Play your iPod® mp3 files through built in speakers. Charge it too.
  • Enjoy your Flickr and Facebook photos as a digital picture frame.
  • Stay updated on new Netflix releases or view your movie queue.
  • Make and share e-greetings, photo mash-ups, goofy animations.
  • Wake up to the multi-tone alarm clock.
  • Track any eBay auction or Craigslist item.
  • Monitor incoming email on any POP3 account.
What are the features of the chumby?

    Wi-fi connectivity • access to the free Chumby Network • 3.5" LCD color touchscreen • two external USB 2.0 full-speed ports • 350 MHz ARM processor • 64 MB SDRAM • 64 MB NAND flash ROM • stereo 2W speakers • headphone output • squeeze sensor • accelerometer (motion sensor) • leather casing • AC adapter included

 

I bought one of the little guys for Christmas as a gift for my father. I could have given him just the Chumby and that would have been enjoyable; however, I wanted to kick it up a notch and make it more fun.

What I was originally looking for was a digital photo frame, with no subscription fees, that would allow me, their friends, and relatives to send them e-mails with attached photos and have them show up and randomly displayed on the chumby -- yet keeping it all private.

I couldn't find anything -- and then stumbled across the Chumby, which is far more than just a digital photo frame.

So, I wrote 3 separate pieces of software to make that possible to do what I wanted.

  1. A Windows application (as a service), that checks e-mails every 15 minutes to a specific e-mail account. When an e-mail arrives, it's checked for validity (to make sure the sender is trusted), then all of the attached images are compressed, shrunk, and uploaded to a web site. This was written in C# (.NET 3.5).
  2. A website portion written in PHP which provides an XML document with the 75 most recent photos that were uploaded sorted.
  3. A small Flash widget which connects to the web site, queries for the list of photos, randomizes it, and then shows each photo for a specified length of time.

My father and mother really enjoy the gift. I've got a young nephew who is the star of many photos -- and they love seeing new photos of him show up (they may be less excited to see silly pictures of our cat).

IMG_1511

(Our cat and a gift my wife gave me ... a marionette of Frank Lloyd Wright).

I had considered several pay services for hosting my photos, but there are a few restrictions that you need to be aware of. The most important is that the Chumby does not use a full version of Flash. It uses the embedded version (Flash Lite 3). It cannot show Progressive JPEG files. So, my first choice for image storage (where I store personal photos today and I would definitely recommend) is SmugMug. However, they only serve up progressive JPEGs (great for computers, but not so great for the Chumby). Too bad.

I experimented with a few other pay options, but decided that the best way to secure the photos in a way that was easily accessible to me was to build it myself. It took far more time than I had expected (I was new to flash, and the complexities of doing debugging on an external device ...). However, the end result was well worth it. (Some photo storage sites have NO API access whatsoever. Lame. Shame on you! And a few are over designed. I looked at a lot of them!)

The Chumby is still in 'early adopter' mode right now, but I believe you can still pick one up. The hardware won't change before the final release. Only the software (which is fully upgradeable by Chumby). If you like gadgets, it's something you should check out. It's fun. Currently, it comes in very fun packaging as well (sort of grain-bag/knapsack bags).

XamlPad is (mostly) dead. Long live Kaxaml!

If you've used XamlPad from Microsoft ... you probably have a love-hate relationship with it. You love it because it's reasonably quick at doing a proof of concept or test of a WPF feature. You love it because it's simple. You hate it because it has a bunch of odd quirks with the text editor, the fact that it really has only a few useful features ...

Kaxaml is a better XamlPad in many respects. It's got a bunch of nice little features including:

  • Intellisense!
  • A color picker (that is better than the one in Expression!)
  • a scrubber:
  • image
  • You can paste images into the editor!
  • It can have multiple files open at one time
  • Did I mention intellisense (and a color picker!)

 

The full announcement is here.

 

Pay attention to the default install -- it may change your default file handlers for Xaml files in a way that isn't to your liking:

image 

A definite recommended add to your WPF/Xaml editing toolbox.

My new favorite free Vista compatible Icon Editor

I routinely want to convert a PNG file I've created in Adobe Illustrator or Photoshop to a Windows compatible icon file (ico). I stumbled across IcoFX yesterday and found it to be fast, effective, and simple to use. The price was also right: $0.00.

I was working on this icon for someone else and in less than a minute had a complete icon set with all the sizes and colors I wanted.

image

Every Windows application needs an icon -- even a WPF application. If you're creating an application, why not throw together an icon that is more memorable than the default icon that is assigned when you create the development project in most IDEs? :-)

Microsoft SharedView

Still in beta (beta 2), but I'm very interested in this -- if for no other reason than making remote support easier. I've never had luck with Remote Assistance and my father's computer. It always disconnects after a few seconds. So, anything that is free and allows me to actually view his desktop live would be a welcome addition to my toolbox. I can also see it being useful for more adhoc meetings and such where products like WebEx or Live Meeting aren't practical or available.

More information here.

image

Requirements:

  • A computer with a 700 MHz processor or higher that meets the following requirements:

    • Operating system : Microsoft Windows XP Service Pack 2 (SP2) or Windows Vista

    • Memory: Minimum 256 MB of RAM (512 MB recommended)

    • Hard disk: 10 MB of free hard disk space

    • Display: Minimum 800 × 600 screen resolution (1024 × 768 recommended)

    • Applications: DirectX 8.0 or higher installed on your computer.

  • No 64 bit support.

    December 30, 2007

    Astaro Security Gateway and Microsoft Virtual Server --- I'm stuck.

    I recently installed Microsoft's Virtual Server 2005 R2 on my Windows 2003 Server. After adding an additional 2GB of RAM (for a total of 3GB), my Virtual Server was ready to host! (My server is only a single processor Intel Celeron, but it's got spare capacity most of the time).

    image

    (Yes, I've also installed Windows Home Server in a Virtual Machine ... I missed one feature -- the "free" dynamic IP to host name system.)

    One nice feature of Virtual Server that is absent on VMware's free server virtualization product is the ability to specify the amount of CPU resources that are allocated to a specific virtual machine. (Another nice feature is that the web management tools are very snappy in comparison to the new beta tools for VMware Server 2.0 Beta).

    Since my server is performing other tasks (like monitoring security cameras), I wanted to limit the impact the virtual servers have on the machine.

    image

    To setup Astaro, you'll need to register for a free account. I used a link provided by the SecurityNow podcast, http://www.astaro.com/security.now. Once you have a free account, you can download the ISO and burn it to a CD or install it in a virtual machine. Later you can request your non-commercial, home-only license.

    You'll need to have two network cards or virtual adapters setup. I allocated 512MB of RAM, the documentation recommends a minimum of 256MB.

    After a number of installation steps ... the lengthy installation progresses:

    image

    It took about 50 minutes to get through the installation (with a limited CPU):

    image

    Rebooted:

    image

    Pressed F2 for kicks...

    image

    No USB support under Virtual Server, so one failure ...

    image

    Interesting to see some of the services it uses, like MySQL:

    image

    And then nothing ... I couldn't login at all. I tried the default IP address and the one I had (thought) changed it to, and all interaction was met with the usual no web site error in IE. So, although Astaro looked interesting, I can't seem to get it to work on my Virtual Server.

    It's using a surprising amount of CPU considering it's not doing anything useful for my network:

    image

    It's paused for now until I can figure it out. I was looking forward to trying some of the security and remote access (VPN) functionality.

    I'll look around to see what other Linux distributions might be interesting to have in a Virtual Machine. Any suggestions?

    December 5, 2007

    Why I ditched Microsoft's Windows Media Center (2005 + Vista)

    I was scolded the other day by a coworker for complaining so verbally about Windows Media Center on my blog (in my last blog post about my experiences with Windows Home Server). I pointed out to him that it was my blog, and I could write about it if I felt like it. Adamant, he suggested that I was being overly harsh and that my experiences weren't the norm.

    That may be the case, but I can still vent my frustration and maybe my venting will give someone else either a moment of pause when they are making a decision to use the Media Center software (or at least a shoulder to cry on).

    Just to give a bit of background -- I had a first generation Panasonic ReplayTV back in 2000. So, I've been using DVR technology for many years! (We later bought a newer ReplayTV (the one with built-in commercial skip, BEST FEATURE EVER -- but it died an early death unfortunately.)

    There are plenty of things to like about the Windows Media Center. Heck, I bought it soon after 2005 was made selling (OEM). I custom built a PC, dedicated just for this one purpose as I knew I'd never like sharing CPU/disk/etc. with the Windows Media Center functionality (WMC).

    The custom PC was installed on a shelf in a basement, connected to our whole-house IR system, and in turn connected to a video-multiplexor, giving us the ability to turn on any TV in the house and remotely control the Media Center. The setup worked well enough generally speaking.

    Some of the problems stemmed from the fact that we live out in the country (wired prairie, get it?), so we don't have access to cable TV. Instead, we were subscribing to DirectTV. I had dual tuners with dual satellite receivers. Most of the time, the shows recorded as desired. Occasionally, the channel wouldn't change successfully; we'd start watching a recorded program, to find out instead of channel 232, it had recorded channel 23. Wonderful. I experimented with various settings for adjusting the speed of how the IR signals would be sent to the receivers (even some low level tweaks to the registry). Still, I'd say about once or twice a month, it would record the wrong show. Frustrating, but not the end of the world.

    (We had used DirectTv Tivo units for a couple of years at first, but they were so slow and kept recording such oddities that we wanted more control over programming -- the way ReplayTV and WMC work).

    I drank the Kool-Aid: I bought a Linksys Extender. Wow, that could have been a more terrible product!

    Later, I bought an Xbox 360 to extend the media center experience when those became available. Certainly, that was a better extender than the Linksys box. I think we must have used the Linksys about 5 times. Yeah. It was $300. What a waste! It taught me an expensive lesson (and to be wary of Microsoft's commitment to hardware platforms).

    When Vista came out, we decided to buy a new dedicated PC as we wanted to continue with WMC. The HP came with tuners, both low and high-def. We had decided a while back to switch to Dish Network.

    Vista wasn't any better at IR blasting than 2005. I'm sure it's a function of the receivers, the PC, sunspots, etc., but it actually got worse. Probably 2-3 times a month, the wrong show would be recorded. Often, on Sunday mornings for some reason. I even had setup some dummy manual programs to force shows to record early in the morning (when it seemed to happen most often), but it still happened.

    I had some new things with Vista that weren't happening as frequently in 2005: crashes. I had to restart the machine at least once a month manually. The display would get corrupted, and the wonderful Nvidia drivers would often get confused about the display and start sending the video to the wrong display (the video card had dual output -- it was set in a mirror mode so that it would go to our multiplexor and to a local attached monitor in the basement). Sometimes, randomly, Nvidia would declare: "Mirror mode -- you don't need that!"

    Also -- we initially had some problems with the network -- 'congestion' it called it -- yet it was connected to a gigabit LAN and network card and nothing else was happening on the network. Some flaw in the network card driver supposedly could cause it, so a few tweaks later, that problem seemed to resolve itself (after a lot of hair pulling!).

    Then, the Xbox 360, during the middle of a show, would play audio, but no video after about 15 minutes of watching the show without pressing any buttons (it was like a screen saver in behavior!). (It didn't matter if it was low or high def content).

    The crashes continued. The lock-ups continued. The shows not recording properly continued. The Xbox 360 taking so blasted long to connect continued. The 'screen saver' feature of the Xbox MC experience continued.

    If I used the WMC PC for other things, I'd would expect some problems -- but this PC was DEDICATED to only running Media Center 24x7.

    We're now using a HD DVR 722 receiver from Dish Network. It's got the stupidest UI I've ever seen in a DVR-- but in line with all their other terrible UI mistakes in other receivers that I've seen. (Dish? Do you need some help with UI? I'd love to help!) However, with the exception of the nice movie finder feature that my wife liked, it has all the features we were using on the WMC.

    We can watch 2 shows at once, and depending on setup, can record 3 shows (1 HD, 1 LD, and 1 HD antenna). It's instant-on (as it's in standby usually). It's fast. It has 30 second skip. It has a 300+GB HD.  I haven't had to reboot it. Nor install any security patches, or device driver updates, or tweak the network card.

    My wife continues to use the WMC movie finder in Vista even though she can't hit 'record'. She just writes down the names of the movies and finds them on the Dish DVR. Supposedly, in the Spring, Dish is releasing some new online services for remote scheduling, etc., that will be welcome additions.

    I bought a Slingbox SOLO, so I can now watch "HD" content in my den from the Dish DVR. (I don't have a TV in my den). (Slingbox -- SLICK!).

     

    So, summary:

    When the WMC can be 99.999% stable, like other pieces of home electronics (like a DVD player for example), record 99.999% of the time satellite content we want, can interact with an extender 100% of the time, then I'll consider going back. Until that time, I'm going to stick with a single purpose box, even if it's not as polished in some areas.

     

    I'm tired of dealing with technology. I don't want to troubleshoot other people's software or technology in my house. I just want it to work!

    December 1, 2007

    Why you should avoid a Windows Home Server

    I've used a Windows Home Server for about 6 months, from betas to Release Candidates to the final shipping version. I used it quite heavily, with multiple PC backups to storing 50GB of music and about 40GB of digital photos and thousands of other random files (including a subversion repository).

    Last weekend, I took Windows Home Server (WHS) out back of our house and put it down. Permanently. BOOM! I couldn't stand it anymore.

    Here's why (this is my review of Windows Home Server version 1):

    1. Automatic backups. A brilliant idea so poorly executed. Nearly every morning I would head into my den to check e-mail, and one of the best features of WHS had been at work ... the backup. Except it could turn my computer on automatically every night, yet it couldn't turn it back off after completing the backup. It didn't matter what software was running on my PC -- most every day it was on. I adjusted the schedule for backups so my PC would be ideally finishing the backup when I'd arrive in my den on an average morning to minimize the amount of unnecessary time my computer was running.
    2. When a hard drive dies, so does the WHS. Or so it would seem. Supposedly, WHS will warn you a hard drive is about to die, and give you time to make some adjustments and properly remove it from the system. If you're lucky that is and happen to be around in the hour before the drive fails. What a MESS it made when I had to remove the drive without going through proper procedures! It took HOURS of manual editing and tweaking (using Remote Desktop to get access to the raw file systems) to get things back to barely working order.
    3. The performance of basic file operations SUCKS on average. Having used Windows 2003 Server as a networked file system at home, I could definitely see/feel the difference. From sluggish file copies to even more sluggish file writes.
    4. Odd interactions with software -- my wife couldn't save Microsoft Money files safely on the network without errors. I saw that there were some reports of that problem ... but if that was a problem, what other problems are there?
    5. File corruption. I'm about 80% certain a handful of music files (80-100?!), by ripping directly to the WHS, were corrupted at some point by the file server. I'm re-ripping them tonight. Yeah, that's fun.
    6. WHS Console software. Neat, but inconsistent. It would report that my password was out of sync consistently and offer to fix it. Well, it did fix it -- yet it continued to insist that it wasn't consistent. This same problem continued to happen on other PCs as well. It was also strange how the console would warn everyone about network problems ... even though most only ran the connector software for backups.
    7. No Mac backup support. Not shocked by this ... just disappointing.
    8. Expensive -- even as an OEM license. Much too expensive to grow the early adopter market. Microsoft blew it on that one.
    9. No cool Media Center integration support. (Not that it matters to me -- I ditched that product 2 months ago in favor of a Dish 722 DVR).

    All of these boil down to one problem: my lack of trust in WHS. The lack of trust went so far as I had setup a scheduled task to copy files from the shares to an attached external hard drive once a day.

    Since this software is all about trust, I finally decided it was time to go. I had a licensed copy of Windows 2003 Server which I installed, made a few drive shares, and setup a script that copies all the files via robocopy every 90 minutes to a secondary drive. It's of course not up to the minute accurate, but it's good enough for me.

    Of course, I don't have the remote access feature of WHS (never used it, didn't trust it anyway). And, I don't have a daily backup strategy that is as good anymore -- but I'm setting something up that will be decent. We put most of our important stuff on the network drive anyway.

    I wouldn't recommend Windows Home Server to anyone at this time. I think there are better and cheaper options out there that will give you the peace of mind and few features that most people need for less money (or at least less up-front money). It's a neat idea that isn't ready for the masses.

    October 13, 2007

    RIA: Rich INTERNET or INTERACTIVE Application?

    There's a small debate going on right now ... what should the acronym RIA actually represent? There are 2 proposals:

    • Rich Internet Application
    • Rich Interactive Application

    Adobe employees, such as Ryan Stewart, push Rich Internet Application, as that's what it was originally for. But Scott Barnes is declaring that it really should mean Interactive.

    Scott's (Microsoft) point:

    Internet for me isn't the right word, it's semantically incorrect and out of touch with today's actual "RIA" (Rich Interactive Applications) solutions. Typically, hardware vendors are looking at Rich Interactive Applications with new found respect, and monitoring both Microsoft and Adobe movements in this space.

    When you couple hardware vendors along side most internal facing solutions, the word Internet starts to have a confusing message/meaning, as well.... Internet isn't really being used?

    Ryan (Adobe) counters:

    For some reason nothing gets under my skin more than this whole rich interactive application versus rich Internet application fight (and this bugged me before I joined Adobe). I just think it’s kind of dumb and petty. RIA stands for rich internet application. Everyone calls it that, everyone knows what it means (well as much as anyone can define RIAs) and that’s that.

    I agree with Ryan (although it doesn't get under my skin as much). I think Scott is missing the target here. "Internet" may not always be the right word given the delivery may be over the "intranet", but Interactive is hardly an improvement. Interactive is so vague (is it a installed application, a smart-client application -- oh don't get me started on how much I hate that term -- is it a web application with cool DHTML, does it use Flash or Silverlight?). Microsoft Money is a Rich Interactive Application, and for that matter, so is Word 2007.

    Rich implies to me fancy -- and the 99% of applications that matter to end users are interactive. Those that aren't interactive are not typically rich (even widgets on the desktop of your favorite operating system are interactive to some degree). How many Rich applications are there that you don't interact with in at least some way?

    So, my suggestion would be to Scott since he's a bit frustrated by "Internet" is to drop the "I".

    Rich Application.

    But then, I think that's missing the whole point of the delivery mechanism being the key to why this acronym exists at all.

    And if the whole point of this acronym really is to identify the source of the rich application, then it seems like it should stay. Unfortunately, few acronyms that might identify more precisely the network don't roll off the tongue so well. (Rich Network-Delivered Application?)

    Of course, Scott is entitled to call it rich interactive application of course, but Rich Internet Application works just as well for a large percentage of applications that are delivered over the Internet, so that should stay as well. I love overloaded acronyms!

    May 30, 2007

    Glass Button Tutorial for Expression Design

    Here's a brief tutorial on how to create a simple glassy button using Microsoft Expression Design.

    First create a square document of whatever size you need. It's usually easier to start a bit bigger than you need and scale down than the other way. But, when you're using vectors, it doesn't matter as much (except for borders ... those always matter...).

    I started with a 400x400 document:

    image

     I selected the Ellipse off the toolbar (press L as a shortcut).

    image

    Start in the upper left corner of the document and holding shift down, press the left mouse button. Then, drag a circle down and to the right corner. You'll see how Design automatically snaps to the borders for you making it very easy to do a circle that fills the space.

    image

    Next, select the border and make sure it's black (or your favorite border color). Click on the second tab in the appearance palette, then pick a color by selecting it from the quick list at the top, from the color palette below, or typing in the RGB hex value of #000000 directly.

    image

    Next, set the width of the border to 10px. You'll want a smaller number if you plan on using this as a vector drawing and resizing it smaller -- the border won't shrink even though the graphic does. 

    image

    Now, select the fill color which is the first tab:

    image

    You'll then need to select the gradient option which is highlighted above with the orange arrow. It might look different on your screen depending on what gradients you have recently used.

    Next, select the radial gradient, which is the

    image

    Now you'll need to set the actual colors of the gradient. It's not a science -- so just pick three red colors similar to the ones I selected below. I used, from left to right: #EF8C8C, #A40808, & #DB0000.

    image

    Make sure the ellipse is still selected and select Copy from the edit menu (or CTRL+C). Then select Paste in Front from the Edit menu (CTRL+F):

    image

    That pastes a duplicate exactly on top of the original. A normal copy just places it on the document offset to the original. 

    Grab the selection rectangle and resize the image down to about here:

    image

    Turn off the border by clicking on the border tab, then selecting the 'empty' color which is the first button on the left on the top (a box with a line through it).

    image

    Now -- change the gradient fill. Delete one of the reds. Then change both colors to white and set the opacity to 20% on the left most color and 50% on the other.

    image

    You'll need to rotate the circle:

    image

    Move mouse to the lower right corner. The mouse cursor will change to the "Rotate cursor". Holding down SHIFT, drag the circle in 45 degree increments until gradient looks like the one above. The SHIFT key forces the drag to happen in 45 degree increments.

    Drag the image up and hold down shift to help prevent slight drift in the location side to side.

    Hold down ALT and drag one of the sides to look like this:

    image

    It will stretch the circle into a slight oval.

    image

    You're done!

    And finally -- using other techniques and a tiny tweak, you can change the look easily and quickly.

    image

    The XAML isn't too bad either ... :)

     

    <?xml version="1.0" encoding="utf-8"?>
    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      <DrawingBrush x:Key="UnnamedObject0">
        <DrawingBrush.Drawing>
          <DrawingGroup>
            <DrawingGroup.Children>
              <GeometryDrawing Geometry="F1 M 200,0C 310.457,0 400,89.5431 400,200C 400,310.457 310.457,400 200,400C 89.5431,400 0,310.457 0,200C 0,89.5431 89.5431,0 200,0 Z ">
                <GeometryDrawing.Pen>
                  <Pen Thickness="10" LineJoin="Round" Brush="#FF000000"/>
                </GeometryDrawing.Pen>
                <GeometryDrawing.Brush>
                  <RadialGradientBrush RadiusX="0.5" RadiusY="0.5" Center="0.5,0.5" GradientOrigin="0.5,0.5">
                    <RadialGradientBrush.GradientStops>
                      <GradientStop Color="#FF8CA0EF" Offset="0"/>
                      <GradientStop Color="#FF083DA4" Offset="0.898305"/>
                      <GradientStop Color="#FF0068DB" Offset="1"/>
                    </RadialGradientBrush.GradientStops>
                    <RadialGradientBrush.RelativeTransform>
                      <TransformGroup/>
                    </RadialGradientBrush.RelativeTransform>
                  </RadialGradientBrush>
                </GeometryDrawing.Brush>
              </GeometryDrawing>
            </DrawingGroup.Children>
          </DrawingGroup>
        </DrawingBrush.Drawing>
      </DrawingBrush>
      <DrawingBrush x:Key="UnnamedObject1">
        <DrawingBrush.Drawing>
          <DrawingGroup>
            <DrawingGroup.Children>
              <GeometryDrawing Geometry="F1 M 17.5556,171.981C 17.5556,78.6553 98.7413,3 198.889,3C 299.037,3 380.222,78.6552 380.222,171.981C 380.222,265.306 299.037,340.962 198.889,340.962C 98.7413,340.962 17.5556,265.306 17.5556,171.981 Z ">
                <GeometryDrawing.Brush>
                  <LinearGradientBrush StartPoint="0.5,1.0125" EndPoint="0.5,-0.0125">
                    <LinearGradientBrush.GradientStops>
                      <GradientStop Color="#00FFFFFF" Offset="0.444915"/>
                      <GradientStop Color="#7FFFFFFF" Offset="0.995763"/>
                    </LinearGradientBrush.GradientStops>
                  </LinearGradientBrush>
                </GeometryDrawing.Brush>
              </GeometryDrawing>
            </DrawingGroup.Children>
          </DrawingGroup>
        </DrawingBrush.Drawing>
      </DrawingBrush>
      <DrawingBrush x:Key="UnnamedObject2">
        <DrawingBrush.Drawing>
          <DrawingGroup>
            <DrawingGroup.Children>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 101.827,100.036L 107.564,100.036L 117.907,128.641L 128.234,100.036L 133.987,100.036L 133.987,135.556L 130.627,135.556L 130.627,103.246L 118.964,135.556L 116.872,135.556L 105.187,103.246L 105.187,135.556L 101.827,135.556L 101.827,100.036 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 143.587,100.036L 146.947,100.036L 146.947,103.876L 143.587,103.876L 143.587,100.036 Z M 143.587,110.116L 146.947,110.116L 146.947,135.556L 143.587,135.556L 143.587,110.116 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 175.747,129.511C 174.592,131.526 173.324,133.033 171.944,134.033C 170.109,135.368 168.042,136.036 165.742,136.036C 163.747,136.036 161.874,135.501 160.124,134.431C 158.374,133.361 157.021,131.812 156.063,129.784C 155.106,127.757 154.627,125.428 154.627,122.798C 154.627,118.758 155.716,115.554 157.893,113.187C 160.071,110.819 162.697,109.636 165.772,109.636C 167.847,109.636 169.731,110.181 171.423,111.271C 173.116,112.361 174.557,113.996 175.747,116.176L 172.867,117.796C 171.887,116.021 170.826,114.697 169.683,113.824C 168.541,112.952 167.229,112.516 165.749,112.516C 163.644,112.516 161.824,113.402 160.289,115.174C 158.754,116.947 157.987,119.588 157.987,123.098C 157.987,126.198 158.763,128.649 160.316,130.452C 161.868,132.254 163.649,133.156 165.659,133.156C 168.694,133.156 171.097,131.396 172.867,127.876L 175.747,129.511 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 185.347,115.501C 186.747,113.471 188.212,111.986 189.742,111.046C 191.272,110.106 193.017,109.636 194.977,109.636C 195.192,109.636 195.502,109.636 195.907,109.636L 194.947,112.996L 193.769,112.996C 192.909,112.996 191.946,113.239 190.878,113.727C 189.811,114.214 188.859,114.984 188.024,116.037C 187.189,117.089 186.534,118.398 186.059,119.963C 185.584,121.528 185.347,122.911 185.347,124.111L 185.347,135.556L 181.987,135.556L 181.987,110.116L 185.347,110.116L 185.347,115.501 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 211.357,136.036C 208.082,136.036 205.328,134.848 203.096,132.473C 200.863,130.098 199.747,126.906 199.747,122.896C 199.747,120.221 200.242,117.849 201.232,115.782C 202.222,113.714 203.603,112.173 205.376,111.158C 207.148,110.143 209.032,109.636 211.027,109.636C 212.957,109.636 214.804,110.158 216.569,111.203C 218.334,112.248 219.732,113.829 220.762,115.947C 221.792,118.064 222.307,120.428 222.307,123.038C 222.307,127.018 221.222,130.179 219.052,132.522C 216.882,134.864 214.317,136.036 211.357,136.036 Z M 211.087,133.156C 213.202,133.156 215.041,132.256 216.603,130.456C 218.166,128.656 218.947,126.073 218.947,122.708C 218.947,119.388 218.186,116.859 216.663,115.122C 215.141,113.384 213.307,112.516 211.162,112.516C 208.887,112.516 206.976,113.401 205.428,115.171C 203.881,116.941 203.107,119.468 203.107,122.753C 203.107,126.118 203.884,128.693 205.439,130.478C 206.994,132.263 208.877,133.156 211.087,133.156 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 229.897,120.818C 228.677,119.513 228.067,118.058 228.067,116.453C 228.067,114.598 228.823,112.998 230.336,111.653C 231.848,110.308 233.954,109.636 236.654,109.636C 238.449,109.636 240.146,109.979 241.743,110.667C 243.341,111.354 244.702,112.371 245.827,113.716L 243.187,115.876C 242.217,114.726 241.216,113.878 240.183,113.333C 239.151,112.788 237.969,112.516 236.639,112.516C 234.934,112.516 233.639,112.887 232.754,113.629C 231.869,114.372 231.427,115.236 231.427,116.221C 231.427,117.056 231.767,117.806 232.447,118.471C 233.107,119.136 234.667,119.796 237.127,120.451C 240.912,121.456 243.469,122.661 244.799,124.066C 246.124,125.471 246.787,127.016 246.787,128.701C 246.787,130.716 245.996,132.442 244.413,133.879C 242.831,135.317 240.677,136.036 237.952,136.036C 235.957,136.036 234.118,135.648 232.436,134.873C 230.753,134.098 228.977,132.806 227.107,130.996L 230.227,128.836C 231.612,130.386 232.913,131.493 234.131,132.158C 235.348,132.823 236.637,133.156 237.997,133.156C 239.722,133.156 241.058,132.727 242.006,131.869C 242.953,131.012 243.427,130.003 243.427,128.843C 243.427,127.883 243.072,127.058 242.362,126.368C 241.357,125.388 239.337,124.498 236.302,123.698C 234.432,123.193 232.877,122.633 231.637,122.018C 231.022,121.723 230.442,121.323 229.897,120.818 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 263.197,136.036C 259.922,136.036 257.168,134.848 254.936,132.473C 252.703,130.098 251.587,126.906 251.587,122.896C 251.587,120.221 252.082,117.849 253.072,115.782C 254.062,113.714 255.443,112.173 257.216,111.158C 258.988,110.143 260.872,109.636 262.867,109.636C 264.797,109.636 266.644,110.158 268.409,111.203C 270.174,112.248 271.572,113.829 272.602,115.947C 273.632,118.064 274.147,120.428 274.147,123.038C 274.147,127.018 273.062,130.179 270.892,132.522C 268.722,134.864 266.157,136.036 263.197,136.036 Z M 262.927,133.156C 265.042,133.156 266.881,132.256 268.443,130.456C 270.006,128.656 270.787,126.073 270.787,122.708C 270.787,119.388 270.026,116.859 268.503,115.122C 266.981,113.384 265.147,112.516 263.002,112.516C 260.727,112.516 258.816,113.401 257.268,115.171C 255.721,116.941 254.947,119.468 254.947,122.753C 254.947,126.118 255.724,128.693 257.279,130.478C 258.834,132.263 260.717,133.156 262.927,133.156 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 281.827,110.116L 281.827,106.276C 281.827,104.386 282.432,102.873 283.642,101.738C 284.852,100.603 286.544,100.036 288.719,100.036C 289.204,100.036 289.787,100.036 290.467,100.036L 290.467,102.916C 289.812,102.916 289.274,102.916 288.854,102.916C 287.664,102.916 286.756,103.237 286.128,103.879C 285.501,104.522 285.187,105.386 285.187,106.471L 285.187,110.116L 290.467,110.116L 290.467,112.996L 285.187,112.996L 285.187,135.556L 281.827,135.556L 281.827,112.996L 277.507,112.996L 277.507,110.116L 281.827,110.116 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 297.187,100.996L 300.547,100.996L 300.547,110.116L 306.787,110.116L 306.787,112.996L 300.547,112.996L 300.547,128.948C 300.547,130.273 300.889,131.306 301.574,132.046C 302.259,132.786 303.179,133.156 304.334,133.156C 304.954,133.156 305.772,133.156 306.787,133.156L 306.787,136.036C 305.617,136.036 304.637,136.036 303.847,136.036C 301.447,136.036 299.737,135.528 298.717,134.513C 297.697,133.498 297.187,131.831 297.187,129.511L 297.187,112.996L 292.867,112.996L 292.867,110.116L 297.187,110.116L 297.187,100.996 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 85.1469,157.636L 106.267,157.636L 106.267,160.996L 88.5069,160.996L 88.5069,172.516L 102.427,172.516L 102.427,175.876L 88.5069,175.876L 88.5069,189.796L 107.707,189.796L 107.707,193.156L 85.1469,193.156L 85.1469,157.636 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 111.787,167.716L 115.747,167.716L 122.107,177.143L 128.467,167.716L 132.427,167.716L 124.087,180.076L 132.907,193.156L 128.954,193.156L 122.107,183.008L 115.259,193.156L 111.307,193.156L 120.127,180.076L 111.787,167.716 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 141.787,170.858C 143.172,169.648 144.583,168.742 146.021,168.139C 147.458,167.537 148.924,167.236 150.419,167.236C 152.289,167.236 154.069,167.771 155.759,168.841C 157.449,169.911 158.743,171.492 159.641,173.584C 160.538,175.677 160.987,177.973 160.987,180.473C 160.987,183.098 160.523,185.437 159.596,187.489C 158.668,189.542 157.359,191.079 155.669,192.102C 153.979,193.124 152.229,193.636 150.419,193.636C 148.924,193.636 147.458,193.336 146.021,192.736C 144.583,192.136 143.172,191.243 141.787,190.058L 141.787,202.756L 138.427,202.756L 138.427,167.716L 141.787,167.716L 141.787,170.858 Z M 141.787,187.006C 143.287,188.256 144.739,189.193 146.144,189.818C 147.549,190.443 148.914,190.756 150.239,190.756C 152.244,190.756 153.977,189.882 155.437,188.134C 156.897,186.387 157.627,183.773 157.627,180.293C 157.627,176.958 156.881,174.428 155.388,172.703C 153.896,170.978 152.092,170.116 149.977,170.116C 148.732,170.116 147.427,170.432 146.062,171.064C 144.697,171.697 143.272,172.656 141.787,173.941L 141.787,187.006 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 171.067,173.101C 172.467,171.071 173.932,169.586 175.462,168.646C 176.992,167.706 178.737,167.236 180.697,167.236C 180.912,167.236 181.222,167.236 181.627,167.236L 180.667,170.596L 179.489,170.596C 178.629,170.596 177.666,170.839 176.598,171.327C 175.531,171.814 174.579,172.584 173.744,173.637C 172.909,174.689 172.254,175.998 171.779,177.563C 171.304,179.128 171.067,180.511 171.067,181.711L 171.067,193.156L 167.707,193.156L 167.707,167.716L 171.067,167.716L 171.067,173.101 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 205.387,187.456C 203.847,189.541 202.206,191.092 200.463,192.109C 198.721,193.127 196.917,193.636 195.052,193.636C 192.092,193.636 189.554,192.459 187.439,190.107C 185.324,187.754 184.267,184.481 184.267,180.286C 184.267,176.241 185.313,173.054 187.406,170.727C 189.498,168.399 191.944,167.236 194.744,167.236C 196.614,167.236 198.412,167.787 200.137,168.889C 201.862,169.992 203.157,171.482 204.022,173.359C 204.887,175.237 205.342,177.676 205.387,180.676L 187.627,180.676C 187.707,182.741 188.012,184.433 188.542,185.753C 189.242,187.493 190.184,188.762 191.369,189.559C 192.554,190.357 193.702,190.756 194.812,190.756C 197.587,190.756 200.184,188.998 202.604,185.483L 205.387,187.456 Z M 202.027,177.796C 201.772,175.401 200.946,173.522 199.548,172.159C 198.151,170.797 196.572,170.116 194.812,170.116C 192.672,170.116 190.959,170.923 189.674,172.538C 188.389,174.153 187.707,175.906 187.627,177.796L 202.027,177.796 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 212.977,178.418C 211.757,177.113 211.147,175.658 211.147,174.053C 211.147,172.198 211.903,170.598 213.416,169.253C 214.928,167.908 217.034,167.236 219.734,167.236C 221.529,167.236 223.226,167.579 224.823,168.267C 226.421,168.954 227.782,169.971 228.907,171.316L 226.267,173.476C 225.297,172.326 224.296,171.478 223.263,170.933C 222.231,170.388 221.049,170.116 219.719,170.116C 218.014,170.116 216.719,170.487 215.834,171.229C 214.949,171.972 214.507,172.836 214.507,173.821C 214.507,174.656 214.847,175.406 215.527,176.071C 216.187,176.736 217.747,177.396 220.207,178.051C 223.992,179.056 226.549,180.261 227.879,181.666C 229.204,183.071 229.867,184.616 229.867,186.301C 229.867,188.316 229.076,190.042 227.493,191.479C 225.911,192.917 223.757,193.636 221.032,193.636C 219.037,193.636 217.198,193.248 215.516,192.473C 213.833,191.698 212.057,190.406 210.187,188.596L 213.307,186.436C 214.692,187.986 215.993,189.093 217.211,189.758C 218.428,190.423 219.717,190.756 221.077,190.756C 222.802,190.756 224.138,190.327 225.086,189.469C 226.033,188.612 226.507,187.603 226.507,186.443C 226.507,185.483 226.152,184.658 225.442,183.968C 224.437,182.988 222.417,182.098 219.382,181.298C 217.512,180.793 215.957,180.233 214.717,179.618C 214.102,179.323 213.522,178.923 212.977,178.418 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 237.457,178.418C 236.237,177.113 235.627,175.658 235.627,174.053C 235.627,172.198 236.383,170.598 237.896,169.253C 239.408,167.908 241.514,167.236 244.214,167.236C 246.009,167.236 247.706,167.579 249.303,168.267C 250.901,168.954 252.262,169.971 253.387,171.316L 250.747,173.476C 249.777,172.326 248.776,171.478 247.743,170.933C 246.711,170.388 245.529,170.116 244.199,170.116C 242.494,170.116 241.199,170.487 240.314,171.229C 239.429,171.972 238.987,172.836 238.987,173.821C 238.987,174.656 239.327,175.406 240.007,176.071C 240.667,176.736 242.227,177.396 244.687,178.051C 248.472,179.056 251.029,180.261 252.359,181.666C 253.684,183.071 254.347,184.616 254.347,186.301C 254.347,188.316 253.556,190.042 251.973,191.479C 250.391,192.917 248.237,193.636 245.512,193.636C 243.517,193.636 241.678,193.248 239.996,192.473C 238.313,191.698 236.537,190.406 234.667,188.596L 237.787,186.436C 239.172,187.986 240.473,189.093 241.691,189.758C 242.908,190.423 244.197,190.756 245.557,190.756C 247.282,190.756 248.618,190.327 249.566,189.469C 250.513,188.612 250.987,187.603 250.987,186.443C 250.987,185.483 250.632,184.658 249.922,183.968C 248.917,182.988 246.897,182.098 243.862,181.298C 241.992,180.793 240.437,180.233 239.197,179.618C 238.582,179.323 238.002,178.923 237.457,178.418 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 261.547,157.636L 264.907,157.636L 264.907,161.476L 261.547,161.476L 261.547,157.636 Z M 261.547,167.716L 264.907,167.716L 264.907,193.156L 261.547,193.156L 261.547,167.716 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 284.197,193.636C 280.922,193.636 278.168,192.448 275.936,190.073C 273.703,187.698 272.587,184.506 272.587,180.496C 272.587,177.821 273.082,175.449 274.072,173.382C 275.062,171.314 276.443,169.773 278.216,168.758C 279.988,167.743 281.872,167.236 283.867,167.236C 285.797,167.236 287.645,167.758 289.409,168.803C 291.174,169.848 292.572,171.429 293.602,173.547C 294.632,175.664 295.147,178.028 295.147,180.638C 295.147,184.618 294.062,187.779 291.892,190.122C 289.722,192.464 287.157,193.636 284.197,193.636 Z M 283.927,190.756C 286.042,190.756 287.881,189.856 289.443,188.056C 291.006,186.256 291.787,183.673 291.787,180.308C 291.787,176.988 291.026,174.459 289.503,172.722C 287.981,170.984 286.147,170.116 284.002,170.116C 281.727,170.116 279.816,171.001 278.268,172.771C 276.721,174.541 275.947,177.068 275.947,180.353C 275.947,183.718 276.724,186.293 278.279,188.078C 279.835,189.863 281.717,190.756 283.927,190.756 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 305.227,170.401C 307.082,169.391 308.879,168.611 310.619,168.061C 312.359,167.511 313.772,167.236 314.857,167.236C 316.067,167.236 317.187,167.492 318.217,168.004C 319.247,168.517 320.139,169.399 320.894,170.652C 321.649,171.904 322.027,173.458 322.027,175.313L 322.027,193.156L 318.667,193.156L 318.667,175.358C 318.667,173.588 318.279,172.272 317.504,171.409C 316.729,170.547 315.677,170.116 314.347,170.116C 313.127,170.116 311.757,170.379 310.237,170.907C 308.717,171.434 307.047,172.231 305.227,173.296L 305.227,193.156L 301.867,193.156L 301.867,167.716L 305.227,167.716L 305.227,170.401 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 124.387,211.636L 134.362,211.636C 139.427,211.636 143.431,213.174 146.373,216.252C 149.316,219.329 150.787,223.601 150.787,229.066C 150.787,231.861 150.427,234.431 149.707,236.776C 149.172,238.541 148.416,240.063 147.438,241.343C 146.461,242.623 145.352,243.693 144.112,244.553C 143.212,245.163 142.142,245.688 140.902,246.128C 138.882,246.813 136.304,247.156 133.169,247.156L 124.387,247.156L 124.387,211.636 Z M 127.747,214.516L 127.747,244.276L 135.269,244.276C 138.234,244.276 140.849,243.308 143.114,241.373C 145.989,238.943 147.427,234.966 147.427,229.441C 147.427,223.806 145.952,219.751 143.002,217.276C 140.812,215.436 138.054,214.516 134.729,214.516L 127.747,214.516 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 177.187,241.456C 175.647,243.541 174.006,245.092 172.263,246.109C 170.521,247.127 168.717,247.636 166.852,247.636C 163.892,247.636 161.354,246.459 159.239,244.107C 157.124,241.754 156.067,238.481 156.067,234.286C 156.067,230.241 157.113,227.054 159.206,224.727C 161.298,222.399 163.744,221.236 166.544,221.236C 168.414,221.236 170.212,221.787 171.937,222.889C 173.662,223.992 174.957,225.482 175.822,227.359C 176.687,229.237 177.142,231.676 177.187,234.676L 159.427,234.676C 159.507,236.741 159.812,238.433 160.342,239.753C 161.042,241.493 161.984,242.762 163.169,243.559C 164.354,244.357 165.502,244.756 166.612,244.756C 169.387,244.756 171.984,242.998 174.404,239.483L 177.187,241.456 Z M 173.827,231.796C 173.572,229.401 172.746,227.522 171.348,226.159C 169.951,224.797 168.372,224.116 166.612,224.116C 164.472,224.116 162.759,224.923 161.474,226.538C 160.189,228.153 159.507,229.906 159.427,231.796L 173.827,231.796 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 184.777,232.418C 183.557,231.113 182.947,229.658 182.947,228.053C 182.947,226.198 183.703,224.598 185.216,223.253C 186.728,221.908 188.834,221.236 191.534,221.236C 193.329,221.236 195.026,221.579 196.623,222.267C 198.221,222.954 199.582,223.971 200.707,225.316L 198.067,227.476C 197.097,226.326 196.096,225.478 195.063,224.933C 194.031,224.388 192.849,224.116 191.519,224.116C 189.814,224.116 188.519,224.487 187.634,225.229C 186.749,225.972 186.307,226.836 186.307,227.821C 186.307,228.656 186.647,229.406 187.327,230.071C 187.987,230.736 189.547,231.396 192.007,232.051C 195.792,233.056 198.349,234.261 199.679,235.666C 201.004,237.071 201.667,238.616 201.667,240.301C 201.667,242.316 200.876,244.042 199.293,245.479C 197.711,246.917 195.557,247.636 192.832,247.636C 190.837,247.636 188.998,247.248 187.316,246.473C 185.633,245.698 183.857,244.406 181.987,242.596L 185.107,240.436C 186.492,241.986 187.793,243.093 189.011,243.758C 190.228,244.423 191.517,244.756 192.877,244.756C 194.602,244.756 195.938,244.327 196.886,243.469C 197.833,242.612 198.307,241.603 198.307,240.443C 198.307,239.483 197.952,238.658 197.242,237.968C 196.237,236.988 194.217,236.098 191.182,235.298C 189.312,234.793 187.757,234.233 186.517,233.618C 185.902,233.323 185.322,232.923 184.777,232.418 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 208.867,211.636L 212.227,211.636L 212.227,215.476L 208.867,215.476L 208.867,211.636 Z M 208.867,221.716L 212.227,221.716L 212.227,247.156L 208.867,247.156L 208.867,221.716 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 223.552,237.068C 222.442,236.088 221.637,235.077 221.137,234.034C 220.637,232.992 220.387,231.766 220.387,230.356C 220.387,227.736 221.306,225.561 223.143,223.831C 224.981,222.101 227.474,221.236 230.624,221.236C 231.919,221.236 233.147,221.424 234.307,221.802C 235.467,222.179 236.554,222.756 237.569,223.531C 239.239,222.376 241.352,221.771 243.907,221.716L 243.907,224.626L 242.707,224.596C 241.257,224.596 240.124,224.896 239.309,225.496C 240.134,226.911 240.547,228.476 240.547,230.191C 240.547,232.861 239.629,235.076 237.794,236.836C 235.959,238.596 233.467,239.476 230.317,239.476C 229.347,239.476 228.219,239.366 226.934,239.146C 226.324,239.036 225.877,238.981 225.592,238.981C 224.872,238.981 224.304,239.161 223.889,239.521C 223.474,239.881 223.267,240.301 223.267,240.781C 223.267,241.356 223.617,241.823 224.317,242.183C 224.642,242.338 225.647,242.396 227.332,242.356C 231.417,242.561 234.532,242.999 236.677,243.672C 238.822,244.344 240.323,245.251 241.181,246.391C 242.038,247.531 242.467,248.771 242.467,250.111C 242.467,251.471 242.024,252.713 241.139,253.838C 240.254,254.963 238.939,255.811 237.194,256.381C 235.449,256.951 233.607,257.236 231.667,257.236C 228.962,257.236 226.489,256.871 224.249,256.141C 222.544,255.566 221.234,254.707 220.319,253.564C 219.404,252.422 218.947,251.228 218.947,249.983C 218.947,249.023 219.204,248.104 219.719,247.227C 220.234,246.349 221.004,245.506 222.029,244.696C 221.229,244.161 220.676,243.644 220.368,243.147C 220.061,242.649 219.907,242.083 219.907,241.448C 219.907,240.613 220.194,239.843 220.769,239.138C 221.344,238.433 222.272,237.743 223.552,237.068 Z M 230.422,236.596C 232.467,236.596 234.106,235.958 235.338,234.683C 236.571,233.408 237.187,231.901 237.187,230.161C 237.187,228.501 236.608,227.078 235.451,225.893C 234.293,224.708 232.677,224.116 230.602,224.116C 228.407,224.116 226.716,224.703 225.528,225.878C 224.341,227.053 223.747,228.528 223.747,230.303C 223.747,232.083 224.352,233.577 225.562,234.784C 226.772,235.992 228.392,236.596 230.422,236.596 Z M 224.947,245.716C 223.907,246.346 223.127,247.007 222.607,247.699C 222.087,248.392 221.827,249.111 221.827,249.856C 221.827,250.871 222.379,251.766 223.484,252.541C 225.184,253.751 227.632,254.356 230.827,254.356C 234.017,254.356 236.294,253.866 237.659,252.886C 238.624,252.196 239.107,251.313 239.107,250.238C 239.107,248.953 238.191,247.961 236.358,247.261C 234.526,246.561 230.722,246.046 224.947,245.716 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 252.547,224.401C 254.402,223.391 256.199,222.611 257.939,222.061C 259.679,221.511 261.092,221.236 262.177,221.236C 263.387,221.236 264.507,221.492 265.537,222.004C 266.567,222.517 267.459,223.399 268.214,224.652C 268.969,225.904 269.347,227.458 269.347,229.313L 269.347,247.156L 265.987,247.156L 265.987,229.358C 265.987,227.588 265.599,226.272 264.824,225.409C 264.049,224.547 262.997,224.116 261.667,224.116C 260.447,224.116 259.077,224.379 257.557,224.907C 256.037,225.434 254.367,226.231 252.547,227.296L 252.547,247.156L 249.187,247.156L 249.187,221.716L 252.547,221.716L 252.547,224.401 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 112.147,303.556L 112.147,268.996L 126.614,268.996C 130.249,268.996 132.892,269.306 134.542,269.926C 136.192,270.546 137.512,271.649 138.502,273.237C 139.492,274.824 139.987,276.638 139.987,278.678C 139.987,281.273 139.276,283.414 137.853,285.102C 136.431,286.789 134.304,287.853 131.474,288.293C 132.884,289.173 134.047,290.141 134.962,291.196C 135.877,292.251 137.112,294.121 138.667,296.806L 142.867,303.556L 135.022,303.556L 130.109,295.718C 128.229,293.163 126.942,291.554 126.247,290.892C 125.552,290.229 124.817,289.774 124.042,289.527C 123.267,289.279 122.037,289.156 120.352,289.156L 118.867,289.156L 118.867,303.556L 112.147,303.556 Z M 118.867,283.396L 124.139,283.396C 127.559,283.396 129.694,283.257 130.544,282.979C 131.394,282.702 132.061,282.222 132.543,281.539C 133.026,280.857 133.267,280.006 133.267,278.986C 133.267,277.836 132.949,276.909 132.314,276.207C 131.679,275.504 130.784,275.058 129.629,274.868C 129.054,274.793 127.322,274.756 124.432,274.756L 118.867,274.756L 118.867,283.396 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 145.267,286.486C 145.267,282.986 145.794,280.048 146.849,277.673C 147.639,275.928 148.716,274.361 150.078,272.971C 151.441,271.581 152.932,270.548 154.552,269.873C 156.712,268.968 159.202,268.516 162.022,268.516C 167.122,268.516 171.204,270.086 174.269,273.226C 177.334,276.366 178.867,280.731 178.867,286.321C 178.867,291.866 177.347,296.204 174.307,299.337C 171.267,302.469 167.202,304.036 162.112,304.036C 156.962,304.036 152.867,302.478 149.827,299.363C 146.787,296.248 145.267,291.956 145.267,286.486 Z M 151.987,286.253C 151.987,290.198 152.939,293.188 154.844,295.223C 156.749,297.258 159.169,298.276 162.104,298.276C 165.039,298.276 167.447,297.266 169.327,295.246C 171.207,293.226 172.147,290.196 172.147,286.156C 172.147,282.166 171.232,279.188 169.402,277.223C 167.572,275.258 165.139,274.276 162.104,274.276C 159.069,274.276 156.624,275.269 154.769,277.257C 152.914,279.244 151.987,282.243 151.987,286.253 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 206.227,290.596L 212.947,292.516C 211.907,296.251 210.174,299.024 207.749,300.837C 205.324,302.649 202.249,303.556 198.524,303.556C 193.914,303.556 190.126,302.018 187.158,298.943C 184.191,295.868 182.707,291.666 182.707,286.336C 182.707,280.696 184.179,276.316 187.124,273.196C 190.069,270.076 193.942,268.516 198.742,268.516C 202.937,268.516 206.342,269.761 208.957,272.251C 210.517,273.726 211.687,275.841 212.467,278.596L 205.747,280.036C 205.327,278.256 204.452,276.851 203.122,275.821C 201.792,274.791 200.177,274.276 198.277,274.276C 195.647,274.276 193.514,275.184 191.879,277.002C 190.244,278.819 189.427,281.761 189.427,285.826C 189.427,290.141 190.244,293.214 191.879,295.047C 193.514,296.879 195.639,297.796 198.254,297.796C 200.184,297.796 201.844,297.217 203.234,296.059C 204.624,294.902 205.622,293.081 206.227,290.596 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 218.707,303.556L 218.707,268.996L 225.427,268.996L 225.427,284.498L 239.969,268.996L 249.187,268.996L 236.077,282.361L 249.667,303.556L 240.644,303.556L 230.962,287.573L 225.427,293.221L 225.427,303.556L 218.707,303.556 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 251.827,292.516L 258.547,292.036C 258.957,294.181 259.789,295.757 261.044,296.764C 262.299,297.772 263.994,298.276 266.129,298.276C 268.384,298.276 270.084,297.818 271.229,296.903C 272.374,295.988 272.947,294.918 272.947,293.693C 272.947,292.908 272.709,292.241 272.234,291.691C 271.759,291.141 270.932,290.661 269.752,290.251C 268.942,289.956 267.097,289.433 264.217,288.683C 260.512,287.718 257.912,286.556 256.417,285.196C 254.317,283.286 253.267,280.956 253.267,278.206C 253.267,276.436 253.748,274.781 254.711,273.241C 255.673,271.701 257.061,270.528 258.873,269.723C 260.686,268.918 262.874,268.516 265.439,268.516C 269.624,268.516 272.776,269.432 274.893,271.264C 277.011,273.097 278.122,275.541 278.227,278.596L 271.507,279.076C 271.227,277.371 270.623,276.144 269.696,275.397C 268.768,274.649 267.377,274.276 265.522,274.276C 263.612,274.276 262.114,274.683 261.029,275.498C 260.334,276.023 259.987,276.723 259.987,277.598C 259.987,278.398 260.324,279.083 260.999,279.653C 261.859,280.378 263.944,281.157 267.254,281.989C 270.564,282.822 273.012,283.663 274.597,284.513C 276.182,285.363 277.423,286.523 278.321,287.993C 279.218,289.463 279.667,291.283 279.667,293.453C 279.667,295.413 279.122,297.251 278.032,298.966C 276.942,300.681 275.401,301.954 273.408,302.787C 271.416,303.619 268.932,304.036 265.957,304.036C 261.627,304.036 258.302,303.054 255.982,301.092C 253.662,299.129 252.277,296.271 251.827,292.516 Z "/>
              <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 287.999,294.436L 286.387,277.036L 286.387,268.996L 293.107,268.996L 293.107,277.036L 291.517,294.436L 287.999,294.436 Z M 286.387,303.556L 286.387,296.836L 293.107,296.836L 293.107,303.556L 286.387,303.556 Z "/>
            </DrawingGroup.Children>
          </DrawingGroup>
        </DrawingBrush.Drawing>
      </DrawingBrush>
      <DrawingBrush x:Key="UnnamedObject34">
        <DrawingBrush.Drawing>
          <DrawingGroup>
            <DrawingGroup.Children>
              <GeometryDrawing Geometry="F1 M 384.222,236.471C 384.222,323.55 302.738,394.141 202.222,394.141C 101.706,394.141 20.2223,323.55 20.2223,236.471C 20.2223,149.393 101.706,78.8015 202.222,78.8015C 302.738,78.8015 384.222,149.393 384.222,236.471 Z ">
                <GeometryDrawing.Brush>
                  <LinearGradientBrush StartPoint="0.5,-0.0125" EndPoint="0.5,1.0125">
                    <LinearGradientBrush.GradientStops>
                      <GradientStop Color="#00FFFFFF" Offset="0.444915"/>
                      <GradientStop Color="#7F000000" Offset="0.995763"/>
                    </LinearGradientBrush.GradientStops>
                  </LinearGradientBrush>
                </GeometryDrawing.Brush>
              </GeometryDrawing>
            </DrawingGroup.Children>
          </DrawingGroup>
        </DrawingBrush.Drawing>
      </DrawingBrush>
    </ResourceDictionary>
    

    New Windows Live Writer Beta available

    Still in beta, but better. Windows Live Writer Beta 2 is available for download:

    http://writer.live.com/ [download]

    http://windowslivewriter.spaces.live.com/ [blog]

    A slightly refined look:

    image

    It finally has a way of saving the image settings from paste to paste:

    image

    Ahh. I was so tired of the defaults.

    I like the program generally. Priced right: $0.00. Fast. Stable. Works.

    I don't care for the glossy toolbar and buttons in the new version. Too much gloss for my tastes. :)

    May 19, 2007

    Death of the Desktop with Aza Raskin

    Aza Raskin, President of Humanized, (& son of the late Jef Raskin) gave a talk recently at Google about the Death of the Desktop. Long at 1:26, but interesting to watch.

    What's needed is a universal method of accessing functionality: a way of harnessing the power of services without the need for application developers to explicitly support them. I'll be demonstrating such a method.

    The talk demonstrates that a ZUI plus a universal method of accessing functionality spells the death of the application-centric computing model and the desktop-design paradigms.

    Enso, an application that Humanized produces is a "new" command-line driven application that takes advantage

    I like the spirit of the command/service idea for geeks like me, but I'm not convinced the masses would want it. That's not to say that one couldn't make a ton of money off the small segment of the population that would buy the software.

    I don't want to become a slave to the command-line. I don't want to remember lots of 'commands'. The trick is how to not make me think about commands, yet give me the power of commands, or services as Aza calls them.

    Jump to 1:05:07 to see an interesting demo with zoom. WPF anybody?

    February 20, 2007

    VirtualPC 2007 Released – Free!

    Microsoft just released Virtual PC 2007 32 & 64 bit. Download is available here. It's still free. It runs on Vista. It runs Vista (without Aero glass of course). No complaints from me given the price. It's outpaced by rival VMware, but most will only need the functionality provided by Virtual PC 2007.

    January 29, 2007

    Adobe Lightroom 1.0 - $199 US till April 30, 2007

    If you use Windows and wanted a version of Apple's Aperture for Windows ... well, you can't have that. Instead, you might be interested in Adobe's Lightroom product.

    Adobe announced today a mid-February release of Adobe Photoshop Lightroom 1.0 (yes, they had to throw Photoshop in there!). Until April 30, 2007, there's a $100 discount. The odd wording though:

    Special Introductory offer is available for the new product Adobe Photoshop Lightroom, which has not previously been sold. Special Introductory Offer valid in US, Canada and Mexico only. Offer valid until April 30, 2007, thereafter Adobe Store full retail price shall apply. Special Offer is $100 US off the expected Adobe Store full retail price of $299 US. Special introductory pricing excludes all taxes and shipping. Offer subject to change without notice. Void where prohibited.

    Emphasis mine. Are they planning on changing the price still?

    December 27, 2006

    Inline search bar for IE

    Ever want Firefox's inline search bar in IE (rather than the pop-up dialog offered in IE?) Here you go:

    From IEForge, comes InlineSearch. Download from the product home page here.

    CTRL+F to open or close the search bar. (And F3 / Shift+F3 to find the next occurrence.)

    It's not a complete replacement, but it is absolutely nicer than the one built into IE 7.

    November 8, 2006

    Virtual Earth 3D - Las Vegas Edition ...

    Inspired by a visit to Vegas, I just checked out Virtual Earth 3D ... very cool! It's a bit slow on my laptop (not sure if it's the laptop or my dismal "high-speed" Internet available at the hotel -- but the wait was worth it:

    The view is 3D -- with the ability to select the angle of view and the rotation by holding down the CTRL key.

    It does require an install -- but it's relatively small. Make sure you look for the 3D option:

    (I don't know what cities have the 3D data though -- I probably lucked out by selecting Vegas).

    November 2, 2006

    Zune/Vista-style Theme for XP

    Want a new theme for your XP PC? Try the new "Zune" theme (download):

    click to enlarge:

    You don't need to use the Zune background. I'm calling it a Vista-style theme for XP as it reminds me of the look Vista has -- (yet of course doesn't have any of the cool glass effects, or glowing, or any of the other eye-candy for that matter). Enjoy!

    November 1, 2006

    Microsoft Max is Dead

    The news is here.

    Can't say that I'm shocked. I'd still reiterate my suggestion to release the source code for Max rather than just killing it entirely. Given the project, I find it hard to believe that there's much in there that could be considered "secret."

    I know it's tough to have your project/product killed at Microsoft (been there, done that), so I hope that everyone involved on the Max team can find new positions and have an easy transitions to a new team.

    October 14, 2006

    Defcon from Introversion Software (UK)

    It was suggested that I take a look at a new game Defcon from Introversion Software by a friend from work. I've played it once against the AI and lost miserably.

    That being said, it is an interesting (albeit extremely morbid) game. The controls, while a bit touchy, are easy enough to learn and there aren't thousands of keyboard combinations that must be memorized in order to be even mildly proficient (and there is no "resource management" as is common in many real time strategy games). On my 1900x1200 screen, the game looks amazing (maybe even astonishing). The style is so simple, yet effective:

    The game is set during the cold war. The premise, well, kill everyone else with nuclear weapons before they kill you. As I said, a bit morbid. A haunting music plays in the background setting the tone for a drama that can only end badly. The clock ticks down, stepping through the various Defcon states (ironically, Defcon is a United States term yet a UK company created the product!), various rules of engagement take place, from being able to place missle sites, airbases, to deploying military ships. As Defcon 1 approaches, signifying the ability to launch nuclear weapons, ships begin to skirmish, and submarines move stealthily into position. Defcon 1 hits and launches of nuclear weapons are detected:

    Surface to air missles can destroy many incoming warheads, but some may penetrate the defenses. Reports of the number of causalties are displayed (along with updates to the score). There are no mobile nuclear missle trucks to manage in this game. Although they would be an interesting addition to the game, they aren't necessary as the game is still interesting. Defcon plays at either "real time" or accelerated time. I noticed I played it at 2-times normal and felt comfortable with the speed of the game (maybe I would have done better if I slowed it down though!).

    As I said, the first game I played, after going through the tutorial, I lost. But I think the computer cheated at least once:

    Note the location of the battleship. Normally, ships don't travel on land.... Could it be that there are some bugs in Defcon?

    If you're curious as to what the full screen looks like (at HIGH resolution), I've included a couple full screen images (click on the image for a full size image):

    I'll likely try it a couple of more times before it either gets shelved or purchased. If Introversion Software creates some 'mods' for it, I might be slightly more inclined to buy (other planets, space aliens, etc.).

    You can download the 59MB demo here. It's $17.50 in the US for a direct download.

    October 2, 2006

    How to know when your Animation completes and ...

    The AnimationTimeline classes in the Windows Presentation Foundation such as DoubleAnimation and ColorAnimation all have a common event Completed. I often use completed to know when an animation I have started in code has finished. If there's only one animation which is often the case, I can easily map the animation Completed event to the animated UIElement logically. However, if I start multiple animations using BeginAnimation, the Completed event unfortunately does not provide any information as to the control that was animated. (Bummer!)

    Instead, the Completed event's "sender" is the timeline's Clock. The second parameter to the event is EventArgs, which of course doesn't contain any useful data. So, how might you connect the Clock to the actual target UIElement? There are a couple of ways actually, and I'll present one of them here.

    My example uses a DoubleAnimation. Here's the code before:

    DoubleAnimation anim = new DoubleAnimation();
    anim.Duration = new Duration(TimeSpan.FromSeconds(0.5));
    anim.To = 0.1;
    anim.FillBehavior = FillBehavior.Stop;
    anim.Completed += new EventHandler(AnimationCompleted);

    myControl.BeginAnimation(UIElement.OpacityProperty, anim);

    Unfortunately, there's no way to tie the PointAnimation instance (anim) to the UIElement, myControl. So, in a typical simple object oriented solution, I created a new derived class, PointAnimationPlus:

    DoubleAnimationPlus anim = new DoubleAnimationPlus();
    anim.Duration = new Duration(TimeSpan.FromSeconds(0.5));
    anim.To = 0.1;
    anim.FillBehavior = FillBehavior.Stop;
    anim.Completed += new EventHandler(AnimationCompleted);
    anim.TargetElement = myControl;

    myControl.BeginAnimation(UIElement.OpacityProperty, anim);

    Here's my implementation of DoubleAnimationPlus:

    internal class DoubleAnimationPlus : DoubleAnimation
    {
    private UIElement _target;

    public UIElement TargetElement
    {
    get { return _target; }
    set { _target = value; }
    }

    protected override Freezable CreateInstanceCore()
    {
    DoubleAnimationPlus p = new DoubleAnimationPlus();
    p.TargetElement = this.TargetElement;
    return p;
    }
    }

    static void AnimationCompleted(object sender, EventArgs e)
    {
    Clock c = sender as Clock;
    DoubleAnimationPlus anim = c.Timeline as DoubleAnimationPlus;

    if (anim != null)
    {
    if (anim.TargetElement != null)
    {
    Console.WriteLine("DoubleAnimation TargetElement is set!");
    }
    }
    }

    As you can see, very simple. The only real trick is that you must override the method CreateInstanceCore. Since an animation is a Freezable object, when the animation completes, a Clone (or CloneCurrentValue) is made (which eventually creates a new instance of the DoubleAnimationPlus class). In my simple implementation, my code creates a new instance of the DoubleAnimationPlus class and then copies the reference to the TargetElement. If you try this code and neglect to override the CreateInstanceCore, you'll immediately note that TargetElement property isn't set in the Completed event -- that's because you didn't actually create an instance properly (and copy the new values).

    That's all there is. The other method I considered was to use dependency properties -- but I wanted the explicitness of this technique for now.

    September 13, 2006

    WPF Decorators - Build your own "Chrome!"

    If you've taken a deep look at how some of the base controls in WPF are constructed, you'll likely have encountered a mysterious element/UIElement at some point, "Chrome." Chrome is a tad confusing when you first encounter it as it seems so magical. Many controls are rendered nearly entirely using these "Chrome" elements (like a Button for example).

    One of the first "Chromes" I encountered was actually a Chrome designed for the standard WPF Buttons (ChromeButton). The actual implementation of the "Chrome" for a button may be found in the Microsoft.Windows.Themes namespace. The somewhat interesting part about the Chrome class is that depending on the current user interface style of Windows that is running, a different and unique Chrome assembly is loaded. For example, there's a Chrome library for the Luna (blue XP) theme named PresentationFramework.Luna. There's another for the Vista Aero style named PresentationFramework.Aero.

    On my system, the standard WPF button using the Silver XP theme looks like this:

    Plain and simple. The button though has some annoying features that make it hard to style any further.

    Let's imagine that instead of the standard Silver button, I'd like to make it Green to represent an OK button:

    Not too bad so far. The button is green. What about when I actually try to use it ...

    Interesting. When I move my mouse over the Button, it reverts back to the original colors. Bummer. What about if I were to click the button ...

    Still no green! To say the least, that's a bit annoying. Why Microsoft made the button work this way, I can't answer. I can however provide you with some alternatives.

    One solution is to roll your own control template, use the right combination of Borders, rectangles, etc. The sky's the limit. So is, unfortunately, the number of UIElements more than likely. In the first version of WPF that is to be released, UIElements represent an expensive and limited resource in the system, worse in some ways than the old GDI limits, but different in others. Still, it doesn't hurt to conserve, so Microsoft provided another way -- a way to custom render a button like this in a nice reusable pattern. That's exactly what the "Chrome" objects represent in WPF. A fast and lightweight method for rendering a potentially complicated visual. Be warned though that this isn't something that a non-developer would normally do. It's relatively straightforward but certainly outside of the typical non-coder realm. The great thing though is that once developed, it's easy to reference the control either using Expression Interactive Designer or Visual Studio 2005 and use it without understanding how it was built!

    My experience has been that it can be EXTREMELY challenging to make some types of "looks" using strictly the UI elements and associated geometries that exist in WPF. Sometimes it seems impossible.

    I had a need for a better button. One that would allow me to set different colors AND respect the color in the various typical states (although I have ignored disabled for right now as I had no need. Easy to add though...). The standard button also doesn't provide for a method for changing the border thickness, so I've also provided that functionality.

    Here's are the basic steps to creating the Decorator and using it ... (see the attached C# solution with the SmartBorder control and a simple test project that reproduces the screen shot below).

    I created a new class library assembly and referenced the PresentationCore/Framework assemblies.

    Next, I added a class to the project, deriving from the Decorator base class:

    public class SmartBorder : Decorator

    To the SmartBorder class, I added a series of DependencyProperty instances for the various necessary properties. For example, here's the CornerRadiusProperty.

    public static readonly DependencyProperty CornerRadiusProperty =

    DependencyProperty.Register("CornerRadius", typeof(double), typeof(SmartBorder), new FrameworkPropertyMetadata(8.0, FrameworkPropertyMetadataOptions.AffectsRender));

    There are two very important steps that must be done to make the new decorator useful: 1) Draw the control, and 2) Measure the control.

    The first is accomplished by overriding the OnRender method of the Decorator. Here you're given free access to the DrawingContext (think of this as the place where you draw the series of commands that make up your user interface look). In my decorator, I've used some basic things like the ability to draw a rounded rectangle (see the source code for the other commands I used):

    dc.DrawRoundedRectangle(backBrush, borderPen, rc, cornerRadiusCache, cornerRadiusCache);

    dc.DrawRoundedRectangle(gradientOverlay, borderPen, rc, cornerRadiusCache, cornerRadiusCache);

    Additionally, I wanted to do some drawing which might have occasionally drawn outside of the normal decorator bounds. I didn't want that to happen so I used the clip functionality:

    dc.PushClip(new RectangleGeometry(rc, cornerRadiusCache, cornerRadiusCache));

    This (and the corresponding dc.Pop) will Clip any drawing commands to the specified shape or rectangle. In this case, I specified a rounded rectangle which mirrors the shape of the button based on the corner radius).

    In the override of MeasureOverride, it's the responsibility of the control to respond with the overall desired size of the control. My code simply takes into account the size of the border and adjusts based on the child and returns the overal size. Nothing too complicated.

    Additionally, in order to actually use the new SmartBorder, I created a new Control Template:

    <ControlTemplate TargetType="{x:Type Button}" x:Key="ShinyButtonTemplate">
    <WPD:SmartBorder RenderIsPressed="{TemplateBinding IsPressed}" Background="{TemplateBinding Background}" RenderIsMouseOver="{TemplateBinding IsMouseOver}"
    CornerRadius="4"
    OuterGlowBrush="{DynamicResource OuterGlowBrush}">
    <ContentPresenter
    x:Name="ContentPresenter"
    HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
    VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
    Content="{TemplateBinding Content}"
    ContentTemplate="{TemplateBinding ContentTemplate}"
    ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"
    Margin="{TemplateBinding Padding}"
    />
    </WPD:SmartBorder>
    </ControlTemplate>

    The SmartBorder is part of the WPD namespace which was declared in the root element of the host:

    xmlns:WPD="clr-namespace:WiredPrairie.Decorators;assembly=WiredPrairie.Decorators"

    Since my ControlTemplate specifies that all buttons should use the specified control template, it's easy to see the results (actually, only those buttons that don't override the default by using a new style or control template combination):

    <Button Background="Aqua">
    <StackPanel HorizontalAlignment="Left">
    <Label>Big Label</Label>
    <Label Style="{DynamicResource ShinyButtonMiniLabelStyle}">Small Label</Label>
    </StackPanel>
    </Button>

    If you have any questions please e-mail. The source code for the sample project and the smart border control is attached (tested only with RC1 of .NET 3.0). If you happen to use the code somewhere / in something, I'd love to know!

    WPSmartBorder.zip (41 KB)

    If you use VB.NET, just compile the solution and use the WiredPrairie.Decorators.dll in your VB projects by referencing it.

    Enjoy.

    September 11, 2006

    Microsoft Max - The WPF Functional Demo

    If you want to see some cool demos of what WPF (AKA Avalon) can do in .NET 3.0, download the WPF functionality demo Microsoft Max. Don't yet bother though if you're not running XP SP2. It won't install on any other version of Windows (yeah, not even Vista RC1). It's a 'smart' download and downloads the pieces that you need (which may include the .NET Framework 3.0 RC1 beta). If you're not comfortable with beta software, I'd suggest staying away for now anyway.

    Here's my screen shots of the experience of using Max (the application looks very nice even though it's usefulness is very questionable):

    Click the thumbnails for a larger view.

    Installation

    Splash screen (somewhat slow to load)

    First welcome screen.

    You'll need a Windows Live/Passport ID to use Max.

    The opening screen. Full of graphics and no actual direction as to what I should do next.

    News reader (yeah, can't have enough of those installed!)

    Added a feed to WiredPrairie. Very nice / interesting layout with automatic graphic reduction to fit the proper space.

    Some more news articles:

    Here's a picture browser:

    Added some pictures to a list (for later sharing I guess, although the software doesn't actually indicate what I'd want to do at any point):

    Another view. Interesting, but I couldn't see any reason why anyone would actually want to use this view. Each of the photos/images were individually accessible by clicking on them with the mouse.

    Images can be annotated and maybe there was a way to add a caption, but it wasn't obvious. (Hello? I can draw on a photo but not add a caption?)

    The photo sharing feature. I wonder if it's using WCF?

    Other people's lists (of photos I'd guess). Having no one else that is using this, I didn't have an opportunity to try this (and honestly, by this point, I was already tired of the application).

    Summary: Wait till it's released. Maybe it will be something that's worth downloading. But -- I doubt it. The best thing they could do for the WPF community would be to release the source code to this and make it open / shared source. Because as an application, it's entering an extremely crowded market -- a market that doesn't need the odd combo of photo sharing software and a RSS feed reader.

    August 22, 2006

    PhotoShrinker update

    I just updated my PhotoShrinker application to save settings from one session to the next and also copy EXIF photo information from the original image to the shrunk image. Enjoy!

    August 15, 2006

    Windows Live Writer Beta available for download

    I'm trying Microsoft's new "Windows Live Writer (beta)" this evening. I see a number of complaints already -- but considering it's beta and free -- PEOPLE! Stop. The editor is decent. Has basic formatting, spell checking, and image uploading:

    Screenshot of Windows Live Writer Beta

    The image uploading features are nice including thumbnailing, borders (such as 3D and the "photo style" shown above), size control, and even effects such as watermarking. (Oddly, the application doesn't yet support PNGs?)

    Update: Apparently, there are some issues with image uploading in the beta -- at least on my MovableType configuration (I'm running in a subdirectory under the web application, and that's caused confusion in blog editors before when uploading images)

    The application behaves similarly to Blogjet by opening a new window for each post.

    Additionally, it works with quite a few of the major blogging engines, such as Blogger, LiveJournal, TypePad (Movable Type), Wordpress, and more. Given all of the problems that I continue to have with RocketPost, I'm going to keep watching this application.

    It uses .NET WindowsForms by the way for the user interface.

    August 8, 2006

    Mac OSX Leopard - Yawn?

    Apple usually wows the audience when they announce new versions of any product, but Leopard ..., ah, yawn? Hello?

    Paul Thurrott sums up the announcement nicely here. There's a bunch of chatter on the web about it.

    According to this editorial, Jobs claimed he held some things back to prevent Microsoft from copying them. It hasn't really stopped him in the past, so I'm not really sure I believe him. Has your OS started to grow stagnant Steve? It's clear that innovating is hard -- and even Apple must stoop to copying competitors from time to time (check out the feature list for Leopard if you have any doubts).

    August 6, 2006

    WPF: Too long, too late?

    I couldn't agree more.

    July 29, 2006

    Neat Photo tricks coming from Microsoft

    Photosynth, from Microsoft Live labs. Only screen shots available for now ...

    "Photosynth is an amazing new technology from Microsoft Live Labs that will change the way you think about digital photos forever."

    July 19, 2006

    Adobe Lightroom Beta for Windows

    I haven't tried it yet, but the Adobe Lightroom Beta is now available for both Mac and Windows here. Anyone seen any indication of final price?

    (OS X Lightroom screen shots)

    July 12, 2006

    Virtual PC 2004 SP 1 is free...

    Virtual PC 2004 SP 1 is free, download it here. Virtual PC 2007 will also be free (and support Windows Vista).

    July 10, 2006

    New version of Paint.NET available

    Paint.NET v2.64

    New

    v2.64 Released: July 8th, 2006
    This small updates fixes a few minor bugs, and improves Windows Vista compatibility. As a bonus, it also adds much better GIF save quality.

    • Improved GIF save quality by implementing Floyd-Steinburg error diffusion algorithm
    • Printing now works in Windows Vista
    • Fixed a startup performance problem on some systems that was an artifact of the way the .NET Framework was verifying Authenticode signatures as part of its assembly loading process
    • Executable files now have UAC manifests to ensure proper execution privilege and to disable file and registry virtualization in Windows Vista

    v2.63 Released: June 4th, 2006
    This small update fixes some more relatively minor bugs, and makes the built-in updater much more convenient in Windows Vista.

    • Built-in updater now works in Vista without having to use "Run as Administrator" beforehand (UAC permission is still required to install updates)
    • Fixed a color intensity calculation that had Red and Blue swapped (affects Brightness/Contrast adjustment, and some plugins)
    • Fixed .PDN images with transparency having a black background in their Explorer thumbnail
    • Fixed crash when an image has bizarre DPI settings (such as 6 billion DPI)
    • Fixed crash when an image has an invalid resolution unit specified (neither pixels, inches, nor centimeters)
    • Fixed a few rare race conditions which resulted in crashes
    • Fixed a rare crash with the history
    • Fixed crashlog being created when the updates dialog appears over another modal dialog
    • Fixed crashlog not reporting application version with certain damaged installations
    • Placed a clickable Windows Live OneCare ad in the Setup wizard

    July 4, 2006

    Beautiful OSX apps ... where's a list for Windows?

    Phill Ryu's blog, "The top ten most beautiful OS X apps."

    What would you nominate for the PC? I wouldn't put anything on the list for the PC that requires a non-default skin, etc.

    Or, what are some of the ugliest? Freeware not included?

    I can't find a single PC application installed on my workstation which I'd say was beautiful. Some cleaner than others, but nothing noteworthy.

    June 28, 2006

    Adobe Flex 2 Released

    Adobe announced the final release and availability of Flex 2 today.

    There's a new web site, flex.org, a new blog from the team, a final release of Flex Builder, the Eclipse based IDE ($499 US), and of course the free SDK available for download.

    A new version of the Adobe Flash player is needed to use Flex content, version 9 is available here. (They're bundling the Yahoo toolbar in with the download by default, so uncheck that if you don't want it -- Adobe! Make it an OPT-IN, not OPT-OUT installation).

    I'd heard rumors about the IDE being around $1000 US, so it's great that they priced it more reasonable. I'm sure it's a competitive price to other IDEs, but with hobbyist interests in Flex, I'd like a $49 edition ... (or free like Microsoft has done with Visual Studio Express editions).

    June 26, 2006

    Insufficient System Resources Exist to Complete the API HOTFIX

    A hotfix for a common error that occurs when trying to hibernate your Windows XP based PC, "Insufficient system resources exists to complete the API" has been released. I've been plagued by this error since upgrading to my new PC with 2GB of RAM.

    Unfortunately, you need to contact Microsoft Product Support Services to obtain the hotfix.

    Anyone else try this?

    June 22, 2006

    BumpTop Video

    Check out bumptop -- the video is available on lifehacker, here. It's a virtual desktop that emulates many characteristics of real desktops -- adding many techniques/features that only a computer could do. It's clearly in a demo stage, and a handful of people are quick to criticize, but what they (the dynamic graphics project from the university of Toronto Canada) have is very impressive.

    June 21, 2006

    Opera 9 released

    Opera 9 was released. Download it here.

    There's a flash video of a "party" currently on the Opera home page. I don't understand it really but I just had to grab this image which is part of the party:

    There are others, such as:

    They just aren't so ... well ... nevermind.

    You'll definitely need a broadband connection to experience the party.

    June 20, 2006

    Visual Studio 2005 C# Slowness problem

    If Visual Studio 2005 seems sluggish or slow while editing C# source code, try turning off the Navigation bar (Tools / Options / Text Editor / C#). In a reasonably sized project, I went from being able to type 1 or 2 characters a second to full speed. Intellisense was just as sluggish. You might miss the Navigation bar though. I certainly hope Microsoft will vastly improve the speed and performance of VS 2005 in SP1. The quality of VS 2005 just isn't where it needs to be.

    June 19, 2006

    Outlook 2003 Error Update

    Scott posted in a comment today that if you're suffering from the Outlook 2003 error: "The messaging interface has returned an unknown error. If the problem persists, restart Outlook" consistently and a restart doesn't help, he found that deleting the Outlook user profile/account and recreating it solved the problem (at least his form of the problem).

    Adobe Lightroom for OSX

    I've experimented with Adobe's most recent Lightroom beta (3) and all I can say right now is ... interesting. I'll reserve judgement and comment until later. Here are some nice screen grabs though if you hadn't see it. Word from Adobe is to expect a Windows version (at some point). It's a very attractive/sharp application ... (all the screen grabs below are thumbnails ... click on the image to see a larger version).

    June 14, 2006

    Flock

    It's all the latest ... and I'm sure if you're keeping track of things better than me, you'll have heard that the latest "everything" browser, Flock, is now available for download at www.flock.com.

    It has a mini-blogging tool built in. Nothing too fancy though. No cool auto uploading of images which is a feature I need or I'll stop including any images ... :)

    In any case, I'm using Flock to blog this post. For some reason, the font is italic, although I never set it. I like the browser -- it's using the same Gecko engine used by Firefox, but with an arguably more refined shell than is used in Firefox. I like the tabs better -- as the close 'x' is right on the tab! (On my 24" wide screen monitor, it makes a big difference that the Firefox close button is only on the right side of the browser.

    Flock is in beta, and only for Windows. It's still rough, but has good promise.



    Blogged with Flock

    May 25, 2006

    We need another image file format...?

    According to Microsoft, it's about time we replace JPEGs with the new Windows Media Photo format.

    More details on ZDNet.

    Somehow, I'm sure Microsoft hopes to make some money on this new format (licensing?). If they weren't, they wouldn't have given it such a dumb name.

    Microsoft still doesn't understand how to play nice in the industry; if it were the "Open Media Photo" format and it was free of licensing, it might be adopted much more quickly. I guess we'll have to wait and see.

    May 17, 2006

    Microsoft Expression Web Designer CTP 1 Screenshots

    I don't have time to write up much of a review this evening (nor have I explored much), but I thought I'd post some screen shots.

    My first impression is that it is a better Frontpage. It knows about styles a LOT more than Frontpage though and makes them a first class citizen. Additionally, it's taken the approach of a development tool with a by-default on-screen property editor for HTML elements (and styles).

    Uh .. this wasn't a good start though ... (click on the screen shots for a larger view)

    Excuse me, a reboot?

    After rebooting, the application starts with a clean slate:

    Easy enough to edit. The selected element has a little marker on the upper left corner for easy access to the properties, etc.

    Reasonable style editor -- nothing too fancy. The needed attributes are all there:

    Standard color picker -- HTML colors only from this dialog:

    Inline styles are easy to build. I just set a few properties in the CSS Properties panel. The inline style feature reminds me of Word 2003's ability to show document styles:

    I copied and applied the inline style to a named style, "alert":

    In looking a bit more at the style editor -- they have a nice explanation of the CSS box model using an image:

    There are built in accessibility checks:

    ... and also browser compatibility checks. Only flavors of IE and XHTML are listed:

    Nice table formatting features (this pane is available when editing a table):

    There's a whole set of Data related menu options and tasks panes that aren't immediately obvious (so non-obvious that they remain disabled -- I don't see any easy way of activating them.)

    All for now.

    Microsoft Expression Web Designer Community Tech Preview 1 [Whew!]

    Microsoft just released a technical preview of their Frontpage replacement product, Microsoft Expression Web Designer.

    Guided download

    Download (you will need a Passport and you will need to register)

    It's > 200 MB, so be prepared for a long download.

    I'll upload some screen shots, etc. when I get it installed.

    May 7, 2006

    Consolas, a new font for Visual Studio 2005

    My last font change in a code editor was to ProggyCleanTT. However, Microsoft recently made available a new font, Consolas, available for licensed users of Visual Studio 2005 (found on "Only Passionate People Win"). Consolas is a significant improvement over "Courier New" and is better than Proggy Clean. Here are some examples:

    Courier New (10 pt):

    Proggy Clean (12 pt):

    Consolas (10 pt):

    Here are some more examples, this time real code (C++) (thumbnailed each one so you can open them in a new browser tab for comparison):

    Courier:

    Proggy Clean:

    Consolas:

    If you compare Consolas and Proggy Clean, you'll see how the kerning is better in Consolas which helps readability. It's not a major improvement from Proggy Clean, but if you're a licensed user of Visual Studio, and you're tired of Courier, download Consolas setup (4.3 MB) and give it a whirl. It automatically changes the Visual Studio editor font during the installation. It's free!

    Announcing HTMLGrabber v2

    I've updated my HTMLGrabber this weekend with several new features:

    1. Now can recursively follow nested framesets.
    2. Syntax highlighting (it's not perfect, but it does reasonably well in most situations)
    3. CTRL+A now works when the edit field has focus!

    Before capture:

    Capturing ...

    After grab:

    Download it from here:

    WiredPrairieHTMLGrabber.zip (65 KB)

    Or here.

    Just unzip and run the executable. No install needed. If you encounter a web page that doesn't work please leave me a message with the details.

    April 24, 2006

    Competing with Vista

    As a former Microsoft employee myself, I think Scott is right on for the most part regarding the issues surrounding Vista (and its delays). I'm not however convinced there's a door open for competitors (besides Apple) which is wide enough, and will remain open long enough, for most competitors. From Scott's blog:

    However, the door is open for competitors . The bad Vista PR over the last year has made a window - Linux, Firefox and Red Hat should be doing something: a viral ad, a marketing campaign, anything. But they've been awfully quiet and I don't understand why. I think this is the more interesting story than what's going on in Redmond. The MSFT Windows multi-slip ship cycle is an old (perhaps sad) story, but the silence on the battlefront deserves more attention.

    Most Microsoft competitors are plagued by several factors:

    • no budget (open source doesn't generate much revenue -- certainly not enough to make a dent even in the US market place)
    • not compelling (Linux is still trying to be a clone of Windows)
    • not better (it's not measurably better than Windows in really any way)
    • no one really cares really (Example: my parents don't care what operating system is on their computer any more than they care about the specifics of the engine in their car. Both get them where they want to go. And, as long as I'm official tech-support, I'm going to put something I'm most comfortable with and the platform that offers the most support). (And the same is true of Firefox vs. IE -- they rarely need to have more than a single web browser open at a time).
    • and did I mention no budget?

    What are your thoughts?

    April 13, 2006

    Google Calendar Quick Add is Cool

    There's a buzz about Google calendar on the web. Although I need an online calendar as much as I need yet another portal web site, I was impressed by two things in particular:

    1. Quick add functionality
    2. General rich client feel (dragging appointments, etc.)

    The function I wanted to highlight is the quick add feature. Easiest to show a few snaps:

    In the upper left corner of the calendar is a "Quick Add" link. Click it and you'll get a field similar to the one above (without the "meet harry" part of course). I bet you can guess where this is going:

    Slick. Simple. Very cool. No pop up dialogs with a bunch of fields to fill out. Only a simple sentence. I admit it wasn't 100% on the few that I tried, but I was experiementing with how varied I could get the text to be before it put the appointment somewhere unexpected. My findings were that if you kept it a little less "human" and a bit more "computer speak", the better it worked.

    I want that in my day to day scheduling software please (especially if it were smart enough to recognize that "Harry" meant someone in my list of contacts (I'd be happy to provide a more unique name if that helped). Microsoft Outlook team? Please.

    If you have a gmail account, it's a two click sign-in.

    April 6, 2006

    Copernic Desktop Search 2.0 Beta Review

    Copernic Desktop Search 2.0 Beta is now available here.

    Here's my one sentence review:

    I would highly recommend it -- if you need a desktop search tool.

    Some details about why below.

    I posted recently about how I was using an earlier version of their desktop search product here .. and they've addressed most of the dislikes I had about the first version. (Still some to go though ... )

    I like the combined search results quite a lot (there's still the old method of selecting a particular type of search, such as e-mails, files, etc.). It's blazingly fast even with a TON of e-mails and content to search (I include in the index a shared network music and photo drive and still find it's fast). I love the built in preview window with the search word highlighting (and the fast method of jumping from one result to the next by clicking the search word). (Yes, I know it isn't original at all, but I still find that feature very handy). It works well on the file types I typically need, such as Microsoft Office documents, PDFs, source code files, etc. (I don't know if there's a list of file types anywhere).

    On my wide screen, I have it set to show the preview on the right side rather than the default bottom.

    It's still a larger application experience (a full screen experience would probably be common), but you can use the included deskbar to quickly search for keywords as well.

    It searches source code files -- anything you want. The one gotcha you might encounter is if you're searching for words (or programming language constants) which contain an underscore. If you search for WM_LBUTTONDOWN for example, Copernic treats that as two words: WM and LBUTTONDOWN. Add quotes to search it as if it's a single word.

    In a funny irony -- I went to their Search Help Zone (accessed via the Help menu) to find the list of file types that can be previewed/searched. I couldn't find it -- they don't have a search feature in their online help system!

    April 5, 2006

    Apple's Boot Camp - Install Windows on your Intel Mac!

    From Apple:

    More and more people are buying and loving Macs. To make this choice simply irresistible, Apple will include technology in the next major release of Mac OS X, Leopard, that lets you install and run the Windows XP operating system on your Mac. Called Boot Camp (for now), you can download a public beta today.

    Boot Camp

    April 3, 2006

    A bug in a OSX calculator?

    If you haven't noticed, there's a new 60+MB update available if you're a Mac OS X owner.

    Details

    One of the more humorous fixes though:

    Updates Calculator so that the percentage button ("%") will no longer divide, under certain circumstances, when you expect it to calculate percentage -- this could happen in Mac OS X 10.4.3 through 10.4.5.

    Eh?!

    Microsoft Virtual Server 2005 R2: FREE!

    Microsoft announced today that Virtual Server 2005 R2 is now available as a free download! Additionally, A handful of Linux distributions (RedHat and SUSE) are also supported more formally by a new release of Virtual Machine Additions for Linux guests.

    More information here.

    Get it here.

    March 26, 2006

    RocketPost Review

    Here's a brief review of RocketPost if you're considering purchasing the software from Anconia:

    Don't buy it.

    It's bloat-ware that frequently crashes (here, here ). The company doesn't respond to requests for help any more. It gets more unstable over time. They push out releases far too quickly and with limited (or any?) testing.

    I'm not even using RocketPost to post this as I don't trust it anymore (I just tried posting something and it crashed twice when I tried to add a single hyperlink!). Please don't buy RocketPost. It's a waste of your money.

    When they respond to these issues, I'll be happy to update or even remove this post, but until then, I want to warn as many users as possible.

    March 20, 2006

    Windows Live Image Search

    If you haven't checked out Windows Live Image Search (beta), you should (if you like cool DHTML web sites).

    For example, I did a search on XAML. Hover over one of the images:

    It grows nicely and enlarges the thumbnail. Very slick.

    Two odd things though. I can't seem to find a way to actually jump right to image searching (if I know that I want to search for an image). Am I missing something? Dumb error though that you can encounter. Go to Live.com and hit the search button without putting in any text.

    You'll be thanked for your click:

    Please. Fix that Live.com team. Even the capitalization is strange. MSN search at least suggests typing in a phrase if you just hit their search button.

    Don't let the user screw up.

    March 11, 2006

    RocketPost ... new features and new bugs ...

    I continue to use RocketPost. A new set of bloat, I mean features, comes out quite frequently. The quality of the software hasn't improved much. I laughed when I saw this tonight in the latest build:

    A set of double scroll bars on the list of blogs! No, it's not a feature, it's a bug. When I size the top list area, the scroll bar on the left will disappear, if t the size of the list is just right.

    For a while, Manish and company were making good strides at fixing things up, but ...?

    Here's some other nice fit and finish:

    For a while, I seemed to have Manish's ear so to speak (as I reported quite a few bugs), but since he doesn't respond any more to my e-mails, I'll start posting my issues here again for all to see in hope that either they notice or others shy away from buying until the problems are resolved.

    March 10, 2006

    Trying StikiPad...

    I'm trying a new web service/application this morning from Stikipad. The web site and application itself has at least at first glance, the style of 37signals products. It's not much more than skin deep though.

    After signing up for a free account, this web page was shown:

    I noted some interesting usability issues on the welcome page:

    There is no "Edit link" specifically on the screen. There is this little bar in the lower left corner:

    No links though. Web users understand links. By default, they're blue and underlined. Sometimes just blue. But a gray bar with gray text with an underlined E is not a link. Moving my mouse over the Edit Page button does underline it, but only then does it seem to act like a link. It's only a link to a developer.

    Next up, the second paragraph.

    If you click the thumbnail to see the entire welcome screen, see if you can find the "configure" link anywhere on the screen. I couldn't. I'm not really sure what it's referring to at all. OK, I found the configure link after one of the co-founders of Stikipad wrote me an e-mail this morning. It's in the far upper corner of the screen. On my 24" monitor, I missed it completely. It's WAAAAY off to the side, not centered on any of the other features or content. I'd move it somewhere more obvious to new users (like me).

    Next is the "Created" stamp (below the last paragraph, but above the button bar):

    How many users care about the IP address? How many know their computer's IP address? I don't know mine -- and I don't care. More importantly, I'm sure the loop back adapter IP address of 127.0.0.1 is not my IP address.

    Clicking the Edit Page button take me to a plain simple text editor where although the web site claims I should have WYSIWYG editing, I do not. It's just a big text field. I've tried IE and Firefox on a PC -- neither work. The blog says it the feature was just added for all account types from free to paid, but it's not yet available to me. The rich editing won't work on Safari at all as Safari doesn't include the necessary support built into the browser to provide a rich editing experience.

    The current pricing runs from free for a limited account to US $149 for a year of use. If you're really only interested in a wiki and don't mind getting your own host (pick a web host with automated installs of common software), you'll be able to get a better deal and likely have less limitations on bandwidth and usage (and you'll have your own domain name!), instead of just a subdomain. Even $49 for a personal wiki seems way too expensive for a simple service like this. They're ripe to be squashed by competitors.

    March 8, 2006

    Live.com improvements

    Via Scott's Site Experts Place, Live.com has undergone some dramatic changes. The most interesting thing I hit right away is the live "infinite" scrolling search. Try a search and check it out. Although the unusual scroll bar takes a bit getting used to, the scroll wheel works fine. Very neat. It's coming along ... soon I might choose to make it my default home page.

    Overview:

    Search:

    March 4, 2006

    Windows Live Messenger Beta Update

    I hadn't signed into Windows Messenger beta recently. They changed the look (again!). It's clearly taken on more of the live.com look that Microsoft has been pushing to many of its consumer web properties (like the new search.msn.com). Very clean/sharp. Such a change from last versions. It may be lacking though in personality. The minimalistic style lacks character and a strong brand image. Since there aren't very many instant messaging clients overall (compared to the number of web pages for example), maybe its OK.

    It's got some bugs ... note how my Angry Beaver (a canceled cartoon) image wasn't carried to the actual signed in screen. It's chess figures below.

    Copernic Desktop Search, Revisited

    A long time ago on a blog far far away, I mentioned that I was trying Copernic, and liking it. Since that time, I've used a variety of desktop search tools. I've stayed away from Google's and used mostly the Microsoft Windows Desktop search toolbar (and had deinstalled Copernic). Microsoft's is fast and reasonably easy to use, but has trouble formatting some documents -- especially code.

    The other day something inspired me to try Copernic again. It's close to what I want after a few overall tweaks. The thing that is missing really is a combined search. It thinks in terms of files or e-mails or .... I just want to search my desktop. Group the types of results, but don't make me pre-decide. It's still extremely fast. The search results are highlighted nicely in an inline document view pane. Even better, you can skip between the matches within a document easily and quickly. Windows Desktop search offers no similar features.

    It's a big window/application though -- if they could tighten up the display into a more MSN/Google style experience without the "refine" and "other search results" panes being visible by default, the application would be a bit more tidy (and moving the search text box above the other two panes). The "web" button in the application launches a web browser to the Copernic web search instead of being inline. I'd prefer a built in browser experience, even if they want to default to their web site. If I want to do a web search, I'll pop open a browser and pick my favorite search engine.

    Still, overall, recommended. Price is right: free.

    March 3, 2006

    VPN Made Easy?

    From ExtremeTech ... Secure Surfing to Go: VPN Made Easy.

    The article is about establishing a virtual private network with two or more computers on the Internet, using beta software from hamachi.

    It looks interesting, but I honeslty haven't tried it -- I have VPN-like functionality using WinSSHD from Bitvise. I'm very happy with it and have had great success using it. Only trouble I've had really is that a Windows account associated with WinSSHD had it's password expire one time when I was on a trip. (That was a fun phone call home trying to explain to my wife how to log into our Windows 2003 Server, open the software ... ).

    Switching from WebHost4Life

    I just finished moving most of the existing functionality of WiredPrairie from WebHost4Life. Finally! I waited till it was time to renew my account and switched. I won't talk too much about my new host yet, until I've given them the 'shake-down.' So far though, I can tell my web site is faster and the response time for service requests has been much quicker than WebHost4Life.

    Why did I switch? Here's a brief summary/review of why:

    WebHost4Life review:

    Consistently poor speed on my shared hosting web site. Not until my web site had been down for several days did they offer to transfer me to a new machine. They claimed I wouldn't have any troubles after transferring, yet oddly, I spent days trying to get things back to normal. (security was wrong, etc.) RocketPost hasn't worked properly since the move (although I don't know if that was a coincidence or not). My e-mail has been down on multiple occasions for hours and days. My second move resulted in a slightly faster web site, yet still I noticed in the last month that it was down for several days at a time (it just happened to be during a blog-free period).

    Their control panel, which must be custom written (I can only hope), suffers greatly from usability issues. Everything is scattered about with a variety of different techniques for getting the job done. I've been very pleased with the change at my new web host - very slick and efficient generally. I can find things quickly, unlike WebHost4Life, which is more of a 'hunt and peck' operation. Webmail is decent with WebHost4Life -- better than others I've seen.

    Although they offer 'unlimited' bandwidth use for a web site, it's clear that you'd really need to work their system and servers extremely hard to approach any sort of unreasonable and unlimited bandwidth-usage amount.

    The only pros I can see is that they offer Windows 2003 and SQL Server 2005 (upon request) hosting at a reasonable price. Other than that, they've got nothing special going for them.

    Out of 5, I'd give them a 2.

    February 26, 2006

    Paint.NET 2.6

    Paint.NET 2.6 final was just made available for download. If you're currently using Paint.NET and it's stable enough for day to day use, you might want to wait (or at least save the install for the build you're using). It's crashing quite a lot for me right now, doing basic things like trying to paste screen shots. Not sure why. From the crash log:


    Exception details:
    System.ApplicationException: Traced code path: 1 2 6 8 9 10 11 12 13 14 ---> System.NullReferenceException: Object reference not set to an instance of an object.
    at PaintDotNet.MainForm.menuFileNew_Click(Object sender, EventArgs e)
    --- End of inner exception stack trace ---
    at PaintDotNet.MainForm.menuFileNew_Click(Object sender, EventArgs e)
    at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
    at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
    at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
    at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
    at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
    at System.Windows.Forms.ToolStripMenuItem.ProcessMnemonic(Char charCode)
    at System.Windows.Forms.ToolStrip.ProcessMnemonicInternal(Char charCode)
    at System.Windows.Forms.ToolStrip.ProcessMnemonic(Char charCode)
    at System.Windows.Forms.ToolStripDropDown.ProcessMnemonic(Char charCode)
    at System.Windows.Forms.ToolStripDropDown.ProcessDialogChar(Char charCode)
    at System.Windows.Forms.Control.PreProcessMessage(Message& msg)
    at System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg)
    at System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)
    ------------------------------------------------------------------------------
    Crash log for Paint.NET v2.6 (Final Release build 2.6.2244.18680)
    Time of crash: 2/26/2006 8:44:56 AM
    OS version: 5.1.2600.131072 Service Pack 2 Workstation x86
    .NET Framework version: 2.0.50727.42 x86
    Processor count: 1
    Physical memory: 383 MB

    Exception details:
    System.InvalidOperationException: BufferedGraphicsContext cannot be disposed of because a buffer operation is currently in progress.
    at System.Drawing.BufferedGraphicsContext.Dispose(Boolean disposing)
    at System.Drawing.BufferedGraphicsContext.Dispose()
    at System.Drawing.BufferedGraphicsContext.AllocBufferInTempManager(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle)
    at System.Drawing.BufferedGraphicsContext.Allocate(IntPtr targetDC, Rectangle targetRectangle)
    at System.Windows.Forms.Control.WmPaint(Message& m)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at PaintDotNet.ControlShadow.WndProc(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    February 23, 2006

    WPF and Microsoft Expression Interaction Designer blog

    Another new blog from Unni Ravindranathan for developers interested in WPF and the Microsoft Expression Interaction Designer. Lots of interesting demonstration projects. Recommended.

    February 17, 2006

    Aerial Photos via ImageAtlas

    Since we have a reasonably new house, I've always been curious to see an aerial view of it. I found GlobeXplorer ImageAtlas this evening and was in luck! Images from the area of our home were taken Aug 2005! The browsing is free but the images are watermarked. Non-watermarked images may be purchased as prints or available as a download. If you couldn't find your house on Google or MSN, maybe you'll have more luck with this application.

    ImageAtlas

    February 16, 2006

    Anyone know of a good encrypted IM product?

    Anyone know of a free instant messaging product which supports P2P encryption of at least the chat (if not other things, like exchanging files, etc.)?

    February 8, 2006

    Buggy RAM stealing software

    Why should an average consumer put up with this? I'm running some common applications on my machine.

    • Adobe Photoshop CS (496MB)
    • Firefox (260 MB)
    • Harmony Remote control software (233 MB)
    • Visual Studio 2005 (157 MB)
    • Adobe Illustrator (70 MB)
    • Microsoft Outlook (53 MB)

    Walking through the top RAM consumers on my PC, we start with Photoshop. I have 3 basic documents open, with very few entries in the history and only a handful of layers. I routinely find I need to shut down Photoshop to eliminate a general ever growing application footprint. Next up Firefox. I have 16 active tabs. Why do 16 separate web pages require over 256 MB of RAM? My guess is there's a set of nasty bugs leaking memory. It's the latest build. Next up, and the absolute worst offender overall is the HarmonyClient. This is the software that Logitech installs to manage the Harmony remote control I own. Most annoyingly, I don't have the remote plugged in! It's just sitting there, ever growing. (To add insult to that, the HarmonyClient software is a terrible piece of software from a usability perspective). Visual Studio is up next -- I think it too has a problem -- it seems to grow and grow and grow. It's not uncommon that I need to restart it to free some memory on my machine at work. Illustrator is suprisingly low actually given that I do have some open documents and have been working with it. Outlook at 53 MB doesn't shock me given how many messages I have open and the total size of my e-mail store.

    The only reason I went to look is that Photoshop complained there was insufficent memory to complete an operation. That's unusual on my machine as I have 2 GB of RAM installed.

    What's the average consumer to do? Demand better! Post bugs/complaints in forums. Don't settle for buggy software. You shouldn't have to. Take your money elsewhere. Open source clearly isn't any better than purchased software.

    Developers: Assume that users will leave your software running far longer than you expect. So that little nagging memory leak that you know about can turn into a massive leak over the course of several weeks. I hardly ever shut my computer down -- when I'm not using it, I leave it in standby or hibernate (if the latter happens to work).

    February 7, 2006

    Windows Vista Feature Overview

    If you're interested in a marketing-spin on the features that are planned for the next version of Windows, Vista, check this site out from Microsoft. Lots of screen shots and things to read about. Very well done for a product that has no official ship date. :)

    Cingular Billing Technology

    If you're considering designing an account status or summary for a web site, there are a couple of basic features that users are likely to want:

    1. Security - a method by which a user may sign in to the web site to retrieve private information regarding an account
    2. Accuracy - The account summary should be up to date as possible -- the reason users are using the account summary is to view a near-live summary generally (or review of previous periods).

    Last week, I signed up for a new Cingular wireless plan (and bought a new phone as well after having a Motorolla for the last 3.5 years). I wanted to see how many minutes I was using, how the billing for the Internet plan I signed up for worked and more.

    I signed in and here's the information I was provided:

    Due to the recent change in your rate plan, we are unable to display usage information until after your next billing cycle begins on 2/14/06

    Useful. For some reason, they don't have the ability to show me any useful data until the next billing cycle starts. Excuse me? In what functional design document was that acceptable? [SLAP!]

    Wireless/mobile plans are hard enough to understand as it is, so why does the industry treat us like that and charge us an arm and a leg for questionable service? When I was in the Cingular store last week, a 20-something year old man was in the store wondering why his bill was so high. He couldn't make any sense out of it. I could see that the bill was over $120 -- which for me would be reason to be in the store as well if I couldn't figure it out. Turned out there were some "fees" and misleading charges for some new service he had gotten and the billing cycle, blah blah blah. [SLAP!]

    Oh -- to top it off -- I've been a Cingular customer for 3.5 years now. I upgraded my phone. I upgraded my plan. As a reward, they knocked 50% off the fee for signing up for new service (down to $18). [SLAP!]

    February 6, 2006

    VMware server is Free

    Confirmed the rumor/news. VMware Server is available for free. Read more about this product in the FAQ. Oddly though, it's still in beta, so you might want to wait. Support is priced at $350-$400 US a year if you're in need of product support.

    February 5, 2006

    VMware GSX Server for free?

    According to CNET, VMware is to announce on February 6, 2006 that GSX server will be available for free. Previously, this product was priced at $1400! Clearly, it's to combat Microsoft's announced pricing on Virtual Server.

    I'm experimenting with some SQL Server 2005...

    I'm experimenting with some SQL Server 2005 Express edition features on a web page and hitting all sorts of issues. This article on MSDN helps explain some of the issues I'm having (especially around the User Instance=True connection string attribute). Unless I'm missing something simple (which is possible), this is an odd system -- and I hate the fact that I need to switch the True to False when I deploy my web application to a web server. The convenience of having a private local SQL Express database is lessened by the need to make configuration file changes to make it work properly.

    February 1, 2006

    Microsoft Expression Blog

    I’m blog challenged. I can’t keep up with all the new blogs appearing.

    I stumbled upon “The Expression Designers: Graphic, Interactive, Web” blog earlier. It’s written by the teams that create the various Expression products at Microsoft. You haven’t missed much if you start reading now, as the first post is dated the 24th of January 2006.

    January 27, 2006

    IE 7 SELECT ELEMENT

    I see that the IE team announced that the SELECT element (dropdown) will finally be rendered as a native MSHTML control rather than being a Windowed control after all these years in the next version of IE (7). That means it will finally respect z-index for example. It's taken long enough.

    January 18, 2006

    Cell Phone Towers Web page

    I haven't encountered too many uses of Google maps in other web pages. If you're interested in where cell towers in your area are, here's an interesting site that has that data and shows it visually using Google Maps.

    The coverage and dead spots portions of the web site don't see all that useful as they rely on user comments (I couldn't see that there was a good filtering search system that worked very well). Some of the comments included: "I didn't get any reception on the second story of my office building" and "my city has terrible coverage with no end in sight ... I'm finally going to switch carriers after five years." Yeah, that helps.

    January 15, 2006

    Media Center Streaming coming?

    From BetaNews, a report that Microsoft is testing a software add-on to the Media Center to allow streaming of programming to mobile devices and laptops.

    If it can watch copy protected material -- that would rock. Otherwise, this is marginally better than the file share technique I use now from other PCs in the house. I don't have a mobile phone which would play any content like this (nor any time to play it), so that feature isn't useful for me. I'm sure other people might find that useful ....

    January 8, 2006

    Windows Live Messenger

    It's been quite a while since I last used an instant messaging application of any sort. I installed Google Talk, but I didn't know anyone using it so I haven't tried it.

    I'm trying out Windows Live Messenger now. It's quite a dramatic change from previous versions of MSN Messenger (and others). More clean lines than in the past, with fewer distractions. Large 'bold' advertisements which don't fit well with the style of the application.

    An option for a 'video carousel'

    You can see how the videos match with my interests. Not.

    There's a file syncronization option that I gather is new -- allowing users to share files/folders with other users and keep them synchronized automatically. I haven't had a chance to try it and can't think of any reason for me to use it normally.

    Although I like the style of the application, it lacks personality, something older versions of the software had too much of. The color at the top of the application is configurable:

    I've got a limited number of invities to the program if you're interested. Contact me using e-mail in About if you're interested. No promises.

    More information about Windows Live Messenger on the team's blog.

    Please no comments requesting invites. I'll ignore/delete those.

    January 7, 2006

    Vista UI - Is that it?

    I've been looking around the newly available Windows Vista build, 5270, some this morning. It's starting to come together clearly, but I'm concerned about the lack of style of the operating system. Because I run in VMware, I cannot enable the glass effect so some of the UI flashiness is not there. However, there's more to an operating system than special effects.

    I understand Microsoft has a lot of users to keep happy, and I'm one of many hundreds of millions of users, so my opinion may be in the minority.

    What the current build lacks is style. What shocks me the most is that for the past 2-3 years, Microsoft Longhorn and Vista evangelists have talked about the styling of the system and how important that would be, not only to Microsoft, but to third party ISVs. Finally, the operating system could really be styled by graphic designers in the way they wanted using tools built for designers, not developers. No more hand-offs of bitmaps to developers who would do their best to emulate what the bitmap and functional or graphical specification asked for.

    I'm sure Microsoft developers and designers are working feverishly to come up with a long lasting pleasent user interface. Right now though, all I have to go on is the recent December CTP build of Vista (5270).

    Here's what looks like the new start menu for example. Except for Apple's OS X, it is nearly universal that the "Start Menu" equivalent in most operating systems is located in the lower left corner of the main screen. Most Linux distributions have copied it.

    Maybe it looks better with a high end system and graphics card.

    It's falling prey to a common style trend of reflective glossy buttons though that Apple started (or at least made popular). Why not try to innovate something new? Although I've seen no documented proof of this, I'd bet that Microsoft is working on other colorized versions of the menu. For now though - black makes me think "designer", not consumer or professional office user. OS X has a pleasent welcoming feeling, whereas this design is more brooding and depressing. I've seen that there supposedly is some way to configure the specific color (like black here) used in the system. However, it's only available on higher end video cards (found in Appearance and Personalization > Personalization > Change your color scheme):

    More dark ...

    As you can see, even more black when the Start button is clicked. (In the screen shot above, Vista is the machine name I believe). Nothing really too innovative about this new Start menu. I've clicked the "Power" button in the lower right corner expecting power options such as shutdown/stand-by/hibernate many times -- I bet I'm not the only one. Those options have moved:

    They'd make more sense under the power button (with a similar style button).

    On a positive note, I do like the non-cascading menu "All Programs" behavior now. For example. If I click on the "All Programs" option above Start Search, this is what is shown:

    Clicking on "Accessories"...

    Instead of menus and menus with pop-up menus ... it's in place. Actually, it behaves like a tree:

    Clean. Simple.

    One thing that hasn't changed in far too many years:

    Still modeled exactly after a basic calculator, not taking advantage of any WinFX features or moderization that could be possible. It's not sizable, nor are the buttons labeled more clearly (M+? MS? MR? Why did they spell out Backspace fully though?). Maybe it will change. (Please!)

    There are trends to make the system easier to use. The most obvious is the right click options on the desktop:

    "Choose Desktop Background". Halleluiah! Finally a more obvious method for changing the desktop background! (I knew how to do it the other way of course, but it just wasn't obvious).

    Here are just a few simple things that Microsoft should do:

    Add some new pictures for assocating with an account! It's the little things like this that can make people smile and make the experience better.

    In the date/time applet that shows up by clicking in the clock, it's great that I can look at the calendar without actually making changes to the actual system clock. Why not though make this sizable so I can see multiple months or allow a bigger view? All that effor to make a clock that I don't care about (why would I click on the time to show this to see an analog clock?). It's also so gray. Make it so the text is more readable.

    In the Control Panel > Performance and Maintenance > Performance Center > Rate and Improve ...

    If I had any misconceptions about the speed of Vista in a VMware instance, this clarifies the issue nicely:

    In any case, I hope this isn't it. I realize Vista isn't done yet, but it's got to be better than this when it releases from a visual perspective. It's an improvement from XP, but nothing earth-shattering or even ground breaking. Just iterative improvement. Apple's OS X still looks better out the of box as an OS.

    January 2, 2006

    Adobe Crash.

    In an somewhat unusal coincidence, I had earlier read this blog post about Adobe Acrobat Reader crashing on FurryGoat. It's about how people are taking interest in FoxIt Reader because of the instability of Adobe Acrobat Reader. About 5 minutes ago, Reader crashed on me trying to open a technical document from Intel. I had looked at the FoxIt Reader product briefly (before the crash) and am not interested -- even after the crash. For one thing, it's not free for commercial users. That's a big deal for me as I would be using it at work as well as home ($39).

    After the crash, the Microsoft Crash Analysis page popped up with this:

    Solution found: install the latest version of Adobe Acrobat Reader / Adobe Reader

    Thank you for submitting an error report.

    Problem description

    The error was likely caused by:

    Adobe Acrobat Reader / Adobe Reader

    Solution

    Adobe Acrobat Reader / Adobe Reader was created by Adobe Systems Incorporated. We have detected that you are running an older version of Adobe Acrobat Reader / Adobe Reader. To prevent this problem from recurring, follow these steps:

    Remove the old version of Adobe Acrobat Reader / Adobe Reader using the Add/Remove Programs feature in the Control Panel.

    Go to the Adobe Systems Incorporated website at Adobe Systems Incorporated and install the latest version of Adobe Acrobat Reader / Adobe Reader.

    Note: Installing the latest version over the older version will not solve the problem; you must perform remove the older version before you install the newer version. If the problem persists, please contact Adobe Systems Incorporated and alert them of the problem.

    Interesting. Just upgrading won't fix the issue. As a bonus, the text also includes a gramatical mistake: "you must perform remove the older version...." Eh?

    As a side note, how many times have you waited for a PDF file to load, wondering why it's so slow, to find buried a "Update found" or "Check for updates?" dialog box buried somewhere on your desktop? Arrgh.

    Anyway -- uninstalling, downloading the new version, and trying the exact same PDF now works fine.

    December 29, 2005

    Making music with GarageBand is easy ...

    It's certainly easy to make something some might label as music with Apple's GarageBand and a reasonably priced USB music keyboard from M-Audio (Keystation 49e).

    Here's my first real attempt: Wired Nights I.mp3 (5 MB). It's about 4 minutes long.

    This would be classified as "New Age" music I would guess.

    The keyboard comes with some software for the PC, Ableton Live Lite 4, but I haven't installed it yet. GarageBand is fun out the box.

    December 22, 2005

    Photoshop and Illustrator WERE slow ...

    For too long now, I've noticed lots of long pauses and unexplained performance annoyances (slowness!) on my laptop with Photoshop CS2 and Illustrator CS2 that I just couldn't figure out. Having looked at various forums and web sites, I couldn't find any obvious connection to the problems I was having. I'm not running a powerhouse laptop, but it still was too slow. For some reason, I was just inspired to do a bit of investigation rather than just accept the fact that it's slow. Opening a simple GIF file off my desktop was taking 10 seconds. Just opening it!

    I downloaded two tools, not sure if either might help best explain the issue I was experiencing.

    First was RegMon from SysInternals. Fired it up and followed the steps that I normally do when opening a file in Photoshop. Hit CTRL+E to stop recording, then hit the filter button () to reduce the number of entries to something more manageable:

    My theory, based on no real scientific evidence, was that it had something to do with the network. The pauses never spiked the CPU, yet they completely blocked the application from continuing. So, it seemed like it was waiting for a response ... maybe for something it couldn't find. I looked through the entires, in particular for any file path references that weren't local. Nothing showed up.

    Next up, FileMon from SysInternals. Same process as before.

    This time however I spotted some requests I found to be more unusual:

    FileMon showed that Photoshop was referring to files in this path: C:\WINDOWS\system32\spool\drivers\w32x86\3. A printer driver. Interesting. I might be on to something here. I went to that directory to double check the printer manufacturer before I took any other actions. I have an OKI Data Laser printer at home, but at the time I was doing this, I wasn't a network where the printer would have been accessible. More interesting, and maybe part of the cause is that I have configured the printer to use HTTP access. I could have taken the next step to look at the requests (and timeouts) that the printer driver was likely getting for it's requests -- but seeing them wouldn't help me fix the problem easily. The printer driver files in that directory indeed belonged to my OKI laser printer.

    I went to Printers and Faxes in the control panel and deleted the printer.

    In Photoshop, I redid the same test. Kazoom! The file opened immediately without any unexpected delays. I'll need to still find a work-around, as I do occasionally like to print. Maybe non-HTTP IPP access would be better?

    Test test test ...

    I was trying to check on the status of an order at Dell this morning. When clicking on the details for the order (which for some reason isn't properly associated with my account, but that's another story), instead of any details about my order, I was given another, less helpful set of details:

    If I wasn't clear on what technology they're using, I am now. ASP.NET.

    It would also seem that they've never gotten this error before, or never bothered to setup a proper crash redirection page. Sigh. It's not like the crash page doesn't indicate how to fix the redirect at least.

    Please -- if you want to look like a professional web developer, test test test. I know that bugs slip by though -- so in absence of complete and perfect testing, configure the web site to more gracefully degrade and present the user with a better experience. This is like getting punched in the stomach, if they had a custom redirection page, it would have been more like a slap in the face. If it was your personal web site that crashed, that's forgivable, but if you write applications for companies, big or small, make them robust. Don't punch your customers in the stomach.

    More about what I bought after it arrives. It was scheduled to ship in 5-7 business days when I ordered it yesterday. It shipped yesterday.

    December 19, 2005

    Windows NT and Windows 95?

    I was just browsing my web site statistics for operating systems and was interested in the Windows operating systems results in particular:

    Windows XP 26,235
    Windows ME 73
    Windows Codename Longhorn 87
    Windows 98 152
    Windows 95 6
    Windows 2003 873
    Windows 2000 3,256
    Windows NT 359

    Wow! Windows NT with 359 hits and Windows 95 with 6! I'm not sure which one shocks me more ... NT maybe a little more.

    Dr. Divx is back and free!

    If you want to convert your various videos to Divx, you might want to consider Dr. Divx. I'll wait till the beta is over. It was a decent program when it was shareware (I actually owned a copy), so I expect it will be decent as open source and fee. If you tried it and and have a moment, tell me how it's working for you.

    ReplayTV for PCs

    Interesting ... ReplayTV to sell software for PCs. Press release here. I always liked our ReplayTV better than the Tivo. I'll be interested to see how their product compares to the Windows Media Center. (Although it will be hard to compete with the Xbox 360 extender functionality).

    Maybe it will finally put the nail in the coffin for Beyond TV from SnapStream -- who still hasn't come up with a decent user interface after 4 versions. (I still wonder if they've ever really studied what people like about Tivos and ReplayTV for example).

    December 16, 2005

    It’s good to see that even the...

    It's comforting to see that even Apple hasn't figured out the problem of needing to reboot occasionally to install a security update.

    Speaking of that ... when I first updated my new Mac mini, I believe I had to download nearly 250 MB of updates. Some of the security, others application fixes, etc. Windows PCs aren't the only computers that need to be updated.

    December 10, 2005

    Wow is that ugly: WindowsBlinds 5 Review and Skins

    I just installed WindowsBlinds 5. During the installation process, I was shown the very standard "welcome" setup screen:

    Notice something odd about one of the buttons? Hello?! Why is the Cancel button disabled? I've seen some terrible installers, but that is one of the worst things you can do is to not provide an "out" for the end-user. Especially when the standard install text suggests canceling the install and quitting any running applications.

    I clicked on the Close button and then clicked next and I think that it canceled successfully ... although I'm not exactly sure if that was the pattern that actually worked to stop the installation.

    In any case, I quickly created a system restore point before continuing the installation. The remainder of the installation went without incident, and after rebooting I launched the configuration tool.

    After paging though the installed skins I tried several. Yuck. Yuck. Yuck. Yuck. Interesting, but yuck. Not too promising as you'd think Stardock would include some awesome skins with the product to show it off.

    I went to their skin site, WinCustomize, to search for some more skins. I downloaded a handful that looked promising. Yuck. Yuck. Weird and yuck.

    Shortly later, I uninstalled it. If some nice, throughly tested skins were released, I'd probably try it again. Too many of the skins were busy and noisy, or "mechanical" and dark. A few original ones, but nothing outstanding. I couldn't imagine actually trying to get work done with most of them installed. A couple of the more interesting ones required the registered version. No thanks.

    For some brief amusement, check this out:

    Do you think it's pobbible that they didn't even proofread the text on the dialogs?

    Software ease of use and Bitvise WinSSHD

    I'm having an interesting comment conversation with Denis from Bitvise on two of my recent posts about WinSSHD (Customer of Bitvise and Who needs a VPN). We're discussing usability of the WinSSHD software right now and security and ... (some excerpts below)

    I'm thinking of ways to make, in a future version, access denied by default, while still making it easy for people to get WinSSHD up and running while getting acquainted with the configuration. For example, perhaps there could be something like tooltip balloons that would guide the first-time user through what needs to be done in the configuration... (Denis)

    and then my response ...

    My suggestion/idea is to have an initial configuration wizard AFTER the installation has completed where you ask the handful of simple questions that could guide the user through choices like you're describing above. By default, if they take the defaults which should be "No", the system would be secure and essentially unchanged from however it behaved and was secured prior to installation. (Me)

    Denis responded ...

    The problem with wizards is that they hide the actual structure of the program. They create a chasm between beginner users and intermediate users and make it difficult from someone to graduate from the beginner level up.

    The problem is that, as soon as the user is confronted with the program, they start learning, and if their first exposure is to a wizard, they will learn a fake interface that's very shallow and very useless for any kind of intermediate or advanced configuring.

    I'd recommend you go read the full comments as they're very interesting, especially if you'd like to pipe in about the usability of Bitvise products or even have an opinion on how challenging it is to make a good user interface like that for a large audience with a variety of skills.

    December 9, 2005

    RocketPost ...

    I continue to use RocketPost as the developers at Anconia seem to be constantly turning out new versions at almost a frightening speed!

    One feature I've not seen that I would LOVE if they added would be the ability to paste an image from the clipboard directly into a post without needing to save it locally as a file. Now that would rock! I wouldn't mind if a simple UI popped up even asking for a name for the file and preferred type / size (much like the existing UI that is displayed). That would be fine. I like adding images to my posts and would do it more ... that feature would go a long way to making it more like a traditional word processor. Right now, it's more like an HTML editor with some smarts.

    Free alternative to Google Analytics

    From Adaptive Path, LLC, comes Measure Map:

    Measure Map helps you understand what people do at your blog, and what influence you are having on the world.

    • Easily navigate the numbers that matter
    • Track links to see who sends you traffic
    • Find out what people do at your site
    • Setup is a breeze -- it only takes a minute

    It's in beta right now and via invitation only though so you'll need to sign up. There's some buzz about the web application, but not much in the way of information that I could easily find.

    December 7, 2005

    Update on RocketPost

    I received word from Manish at Anconia regarding my recent experience with RocketPost suggesting that all of the bugs I had documented except for custom directory uploading were just fixed in a new build.

    The fit and finish issues seem to be getting a lot better. Manish said that the developers were running large fonts and hadn't tested with small fonts. (Oh please Avalon/WPF, take us away from these font issues! )

    Here's an example.

    It's the little things.... notice the gap between the "type" field and the "login" field.

    A new bug was introduced however now. Images disappear as I type! The pattern is when I add a picture by dragging from a local folder onto the edit area and then start editing the text directly above the image. Suddenly and without logical explanation, the image disappears (not right away either which would be easier to understand).

    On a positive note, I'm happy that Anconia is responding quickly to bug notices and that they have contacted me personally. That's the only reason I haven't tried to return their product (they 'clarified' their return policy).

    December 6, 2005

    I am a new customer of Bitvise...

    I just registered my copy of Bitvise WinSSHD. I don't have much to add to my previous post/review, but to say it's an excellent product with great home pricing ($39 US). Other than being a semi-complicated product, it's run for 10 days without issue and I've used it many times without any problems. There probably are some pieces that they could improve to make it easier, but it is a complex and very functional product. If they dumb it down too much, it likely won't be very functional!

    If you need a VPN, but don't want the headaches of configuration, ports, etc., definitely try it.

    December 5, 2005

    You like Fonts?

    A recent new blog from the Microsoft typography group, fontblog. Excellent!

    I particularly enjoyed the myth-debunking in the post, Rsheearch Shmecsearch.

    Have you ever purchased a font? What was the last font you purchased (and when)? Mine was P22 Eaglefeather in early 99 I think for some "Frank Lloyd Wright"-esque work I was doing.

    RocketPost: NOT SO GOOD!

    OK. I just purchased RocketPost. I downloaded the newer version and installed it on a PC that never had RocketPost installed.

    RocketPost crashes.

    It can't successfully upload a picture into the correct directory on my blog and point to it (the pictures refer to the right location, but they get uploaded to the wrong location!). I want images to upload to an image subdirectory ..., not to the root of the blog.

    I'm greeted by this dialog when I tried right clicking on an image that I had already posted:

    Less features! More testing!

    Manish from Anconia just wrote to tell me that they had clarified their policy on refunds. For downloadable products, the entire amount will be returned with no "restocking" fee.

    For a laugh, look at their 30 day money-back guarantee.

    For non-defective products, you will be refunded the purchase price minus a processing charge of 15% or $15, whichever is greater.

    I paid $37 US, so I'd get back $22 US if I wanted a refund right now - literally 30 minutes after buying the buggy software. Unfortunately, the earlier version that I was testing with did not crash, so this is new and very unwelcome behavior.

    RocketPost is NOT recommended until they get these types of issues sorted out.

    For those who care (and wondering if it might be my machine), I'm running on XP SP2 with all security patches, etc, and no beta software installed.

    Purchased RocketPost

    I finally purchased RocketPost ($37 US). My trial period had expired. It seems to be continually updated (and tested?) so I hope it was money well spent. It still has some rough edges like this:

    ... but it's getting better. Drag and drop image support seems to be a bit flaky now. When I dragged the image into the location above, it was inserted at the beginning of the post. (I had already typed "but it's..." portion). It now supports easy uploads of any files, which I'm sure I'll use.

    It has poor-bloggers trackback support:

    December 4, 2005

    3D Fun with Maya 7.0

    I was experimenting with Alias Maya 7.0 this weekend. Since I'm still in the early learning stage of the application, I wanted to try something other than one of the tutorials I've purchased from Digital Tutors. For some reason, I was inspired to try creating a former TV cartoon character:

    Click on the images to see a larger version if you're interested.

    Wireframe:

    Rendered, no background:

    Proof...

    And finally, a bit of lighting and environment ...

    More to come ...

    December 1, 2005

    Who needs a VPN?

    I've been looking for an effective VPN solution for my home for so many months I've lost track. My goals were simple. From work and anywhere else with an Internet connection, I wanted to access various resources on my home network occasionally: securely, easily, quickly, and without a lot of fuss.

    I tried setting up a VPN using Windows 2003. After pulling out far too much hair, I gave up for a couple of reasons:

    1. It wasn't easy to configure. Given I wasn't patient enough to read through every best practice document, etc., I considered my implementation fragile at best.
    2. It didn't function when trying to connect from work. Probably some firewall was getting in my way
    3. It didn't work well with my Linksys wireless router consistently (blamed on the router, not Windows)

    I looked for hardware options. Oh, there are plenty. Especially if you have a lot of money. The best options were many hundreds of dollars. The best option I encountered came from US Robotics actually, the USR8200. It was extremely capable, but averaged around $300 retail. It was however available at Sam's online which almost pushed me over the edge (as they have a buy online, return to a store policy).

    I couldn't find any other decent options that were reliable and inexpensive. I gave up. Several times.

    One day I stumbled across WinSSHD however from Bitvise. I downloaded a copy after reading quite a lot both in the forums and the various FAQs. It seemed to offer everything I wanted. This is a brief review and overview of the functionality. Check out their website for more information though as I try to capture just the basics of what got me interested and excited about their product.

    1. Inexpensive: $39 for home users
    2. Easy to set up.
    3. Secure
    4. Little fuss

    WinSSHD runs as a Windows service, so it's always available. It's configured from their control panel (shown above).

    I said that WinSSHD is easy. That's not entirely true. It's easy to get it running, but there are many many options that you'll likely want to configure that it can quickly become overwhelming. I started by installing it in a virtual machine so as to not mess up my primary 2003 server. One thing that I would warn you about: it's not configured "secure" by default. It seems to default to a mode where any authenticated Windows user can connect to the software, which I was unhappy with and immediately deactivated. By default, the software shouldn't allow anyone to connect without specifically making that choice. Bitvise can make that an easy wizard step after installation, but I believe it should be a conscious choice on the part of the user. Default secure.

    The WinSSHD settings interface can be intimidating.

    WinSSHD allows the administrator to use either Windows accounts and groups or 'virtual' users and groups. I opted for the latter in my installation.

    In addition to standard user-name/password authentication, WinSSHD can be configured to require a specific certificate in order to logon to the system. I too am using that feature, which further secures the system. I've imported the a public key from my laptop into the local WinSSHD server and require that it be presented, along with the user name and password I've assigned before allowing any user to make a connection. This is very similar to what I wanted from a VPN connection.

    The system can also be configured to refuse IP addresses after a set number of failed attempts.

    Through port mapping and tunneling (which often is done through their free corresponding client application, Tunnelier), I can use a variety of services on my home network from anywhere! Through a single port (often port 22), virtually an unlimted number of 'virtual' ports can be established to remote servers and services all securely! As an example, I was on a business trip recently connected back to my home network, remote desktoped to one of my machines downloading some files I wanted to have available when I returned today (as my connection at the hotel was slower than the connection I have at home). Along with an easy one click remote desktop button (it connects easily to the machine hosting WinSSHD, but through port mapping any machine can be a target for remote desktop), the software also has a nice file browser for uploading and downloading files securely.

    Although the server can prevent tunneling, the actual tunneling configuration happens on the client. It's a bit weird at first, but after getting one working, it's easy to get many services running. The weird part is that to remote desktop to a remote client machine on your private network accessed by WinSSHD and Tunnelier, you'll end up connecting to localhost (127.0.0.1 and some port you choose). Tunnelier maps that port and redirects the traffic down to the WinSSHD .server, which in turn sends it to the final destination (which doesn't necessarily need to be the same machine as is hosting WinSSHD. I've setup a connection using VNC to my Mac mini for example.

    I usually don't find too much shareware that I want to buy, but this is a must buy for me. Once the trial runs it's course, I'm definitely buying a copy of WinSSHD. I'm glad I can stop looking for a VPN solution for Windows.

    Mac OS X “Tiger” vs. Vista Beta 1

    An interesting if slightly pointless comparison between Windows Vista Beta 1 and Mac OS X "Tiger" from Paul Thurrott.

    Part 1 - Look and feel, desktop search, data visualization and organization

    Part 2 - Security, networking, power management

    It's interesting as a feature comparison, but Paul, it's a beta man! Things will definitely change.

    November 26, 2005

    VMware 5.5 now available (and Coupon)

    VMware workstation 5.5 is now available for download. The new features are documented in the release notes. If you've purchased 5.0 you're entitled to a free upgrade (as you have a 18 month upgrade period from the date of purchase).

    If you're looking to buy VMware Workstation 5, you can save 5% off your purchase price (I wish I had known about this before I just purchased!). Just use this referral code when you make your purchase (AKA a coupon or discount):

    VMRC-AARCOR806

    Some useful links: product overview, screen shots, evaulation download, and upgrade FAQ.

    The VMware coupon works for any software inlcuding ESX server, GSX server, etc.

    November 21, 2005

    Windows Live Custom Domains

    I don't have an extra domain that I want to experiment with, but I'm very curious about this new Microsoft offering: Windows Live Custom Domains. It's in beta, but it would be interesting to check out. Essentially, Microsoft hosts your e-mail and IM accounts in a domain you own with 250MB of space for each e-mail account. There's a FAQ here. If you've tried it, post a comment here or a link. I haven't seen any real chatter in the blog-o-sphere about it (yet).

    Software I always install

    What software do you always install on nearly every Windows computer or OS X Mac that you own? What are your top ten?

    I've compiled my starter list of things I could think of, but will continually update it. I'm probably missing out. I don't usually go too nuts with lots of little one-off developer tools and such, but I'm interested in hearing if there are some things I should definitely consider adding to my "must install" list. Leave a comment with your ideas.

    Here's my must install list. I've started with Windows, as that's what I know. I haven't installed too much on my Mac yet that I'd consider "must have." But I'm learning and looking.

    November 17, 2005

    Microsoft Virtual Server Price Drops to $99!

    Wow! The Virtual Server 2005 R2 is priced to move at $99 for the standard license and $199 for the enterprise license. Most excellent.

    November 15, 2005

    WindowShade X for Mac OS X

    Very cool product for Mac OS X, WindowShade X. The two features I like: "Make Window Transparent" and the "Minimize-In-Place."

    So, does anyone know of a software application with those features, in particular the minimze feature for Windows XP?

    Thanks to Dug for pointing me at this application.

    Any reviews of Google Analytics available?

    Anyone using or seen any good reviews of Google Analytics? A tiny bit of javascript must be present on all tracked pages.

    November 2, 2005

    Outlook Error Revisited

    I was looking at some of the "search" key phrases that my web site is getting briefly this morning. A while back, I posted about this useless error that Outlook was giving me.

    "the messaging interface has returned an unknown error"

    After posting, a commenter believed that it was simple enough and that restarting Outlook would solve the problem. I find it interesting that I'm getting a number of hits on the page -- more than likely looking for help, not because they want to see my imaginary witty banter. Well, I could hope.

    They're likely searching for help that Microsoft did not provide when the error dialog is shown. Solution is still simple: (File -> Exit, then restart outlook from your Start menu). Sorry, but I don't know what specifically causes the problem. Network glitch, sun-spots, static discharge, etc. It doesn't tell me either.

    OSX Finder Messed up?

    Did I do something to cause this?

    The icons are overlapping now. I installed the 10.4.3 update the other night and now this is happening.

    Finder ? View ? Clean Up seems to fix it. But I'd like to know what caused it.

    October 30, 2005

    Photo Shrinker

    My wife wanted a simple application which would take some of our digital photos and images and shrink or resize them down to the very small size of the screen of her digital media player, the iRiver H10 20GB. Although there must be a decent free application out there that can do that for Windows, I couldn't find one. So, I created one for her, and you! (I'm aware of the power toy, but it's not what she was looking for). By downloading it and installing it, you're agreeing to the legal text at the end of this post.

    The installation is here (Zip with Setup/msi).

    Requirements: .NET 2.0 Framework.

    After installation, the application is installed in All Programs > WiredPrairie.us Applications > Photo Shrinker.

    There are several ways to add photos: Click the Add button at the bottom of the application or drag photos (from Windows Explorer for example) onto the application. Only JPEGs (JPGs) are supported at this time.

    Once added, the application shows thumbnails of the photos:

    If your camera supports the orientation EXIF setting, the photos are automatically rotated.

    The arrow on the right indicates the photo has been rotated. You can also rotate photos by using the rotate feature:

    Click on an image and then click the Rotate 90 button. To select multiple images, hold down the CTRL key when you click or use SHIFT and click to select a range of photos.

    After rotation:

    The moose above was rotated. You can also right click on an image and rotate either clockwise or counter clockwise.No changes are made to the original images in either case.

    Once you're ready to resize your images, click the Resize All button. The resize options are displayed:

    You can adjust the size of the images to a size you specify or one of the predefined sizes:

    You must provide the name of a directory where you want to save the resized images. The directory is created automatically if it doesn't exist.

    If you want to rename the resized images with a common prefix, check the Rename images... box and in the Starts with field provide the prefix for the file names. For example, you might type Vacation. The photos are automatically numbered starting with 1. When you're ready to save the resized images, click the Start button. The various adjustments you made are automatically saved so that the next time you use the application, it's easy to apply the same resizing choices you made last time.

    That's all there is to it. If you want to create other sizes, just repeat the resize process. At no point will the application overwrite a file that already exists. So, you may need to delete files occasionally if you want to try a different size or quality. And, it never changes the original file, even if you rotate it within the software.

    Update (August, 2006): The PhotoShrinker now copies all of the source image's EXIF information to the new file.

    If you have any comments or questions, e-mail me at my contact info on the about page.

    Enjoy!


    License Agreement

    Copyright (C) 2005-2006 WiredPrairie.us (http://www.wiredprairie.us)

    Redistribution and use binary forms without modification, are permitted provided that the following conditions are met:

    1. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    2. The name of the author and/or web site may not be used to endorse or promote products derived from this software without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    October 27, 2005

    FeedDemon on the Mac or NetNewsWire on Windows...?

    I just read this guest post on Brent Simmons' blog written by Nick Bradbury, author of FeedDemon (and the corresponding post from Nick here). Now that NetNewsWire and FeedDemon are owned by newsgator, it's obvious that the two applications can align more closely.

    From Nick:

    Following my brief experience with OS X, I decided I could learn a lot from Mac applications, many of which are more elegant and simpler to use than their Windows counterparts. And NetNewsWire is the one I've learned from the most - it packs an awful lot of power into a deceptively simple UI.

    The reason I mention this is that both authors are asking questions about how to make their applications better. I want to learn why people like the Mac so much and see if that essence is particular to the Mac and OS X, or something else that we can all benefit from on all operating systems. Ignore stability claims/viruses, etc. as I don't want to talk about drivers or anything of the such. What is your favorite Mac application? What is your favorite Windows application? Why?

    Trying RocketPost ...

    I'm trying Rocketpost. Yes, a while back, I said I would never do that as it cost way more than I was willing to spend. Manish just posted though on my web site in a comment that they dropped the price to $37 for a single user version. So, I jumped at the chance to try it as I still am not sold on Blogjet.

    I installed it into the default path and started it immediately. Unfortunately, here's what I encountered right away:

    I don't have any odd font settings, so it was weird to see the dialog cut off.

    I went through the connection wizard. Not bad, some minor issues and confusion over what I should type in the various fields (especially the path to my MovableType installation).

    Some minor issues with things being lined up. I'm beginning to worry a bit about the "fit and finish" of the application.

    Once I got through the wizard, I selected new post and began typing. One of the important features I wanted is the ability to easily add images. So, to add the first screen shot, I selected, Insert, then Picture... Selected the image from my local drive and:

    The path is covered by the image! Luckily, the Path field really isn't necessary.

    From my recent post about blogging software features I want, it has everything except clickable thumbnail creation (like BlogJet). I'll continue to use it and see how it works out. I remain optimistic. I do certainly appreciate Manish/Anconia dropping the price to a more reasonable and affordable price.

    Edit: It may have thumbnail creation. But in some experiments, it's been buggy and not uploaded the images for some reason.

    October 19, 2005

    Flash and Firefox not working ...

    If you’re having trouble with Firefox and Flash after a recent update, you may have the same problem I had. If you’re using Adblock, a popular Firefox extension, the Macromedia home page might look like this:

    MacromediaAndAdblock

    The solution that worked for me was to change the Adblock settings. Here’s how:

    In Firefox, in the Tools menu, select Adblock and then Preferences (or Ctrl+Shift+P).

    FixingAdblockProblem

    Click on the Adblock Options button at the top of the dialog. The drop down should look similar to this:

    FixingAdblockProblem2

    Note that the Obj-Tabs option is currently checked. Click that option to deactivate the Obj-Tabs feature.

    FixingAdblockProblem3

    Click the Done button, and click Refresh on the browser.

    FixingAdblockProblemFixed

    The small Obj-Tabs are gone, but Flash content has returned! Activating this option does make it more challenging to block Flash content on web pages. As it is right now though, with them enabled, all Flash content is being disabled.

     

    October 10, 2005

    Google RSS Reader

    Has anyone tried Google Reader? There was quite a bit of buzz about it for a week or so, but I haven’t heard much since. I just tried it briefly. I know it’s a “lab”/beta product, but it’s definitely still quite rough around the edges, especially for a Google product. Someone at work had mentioned trying it with my web feed, but he was interrupted and I never heard the end of the story.

    Thought I’d give it a spin for my self tonight. Here was the general experience (as always, click on most images to get a larger version):

    After signing in (you’ll need a Google account, probably an gmail account), you’ll be greeted by a screen similar to the following:

    GoogleWelcomeIntro

    First reactions:

    • Cluttered. Too much going on.
    • Too much text to read just to get started.

     

    I went for the “enter the feed URL” link right away. Maybe there’s a better way, but that’s what I found first.

    You’ll get something like this (although the technique seemed to change, so your experience may vary slightly):

    GoogleAddProblem

     

    I typed in the address of my web feed. This was a bit confusing however.

    Preview? No. I just want to add it.

    I’ve gone to the trouble of typing it in, am I likely to want to preview the feed? My 80% answer would definitely be just add it. Given that I only had 2 choices and Cancel seemed counter-productive, I went for the Preview button. Note the display issues it’s having in the screen shot above. CSS issues (as I’ll show in just a moment).

    The terminology is a bit confusing for the average Google user. Unnecessarily so. Instead of sticking with “Subscriptions” and just “Add”, they throw in “feed” and for good measure, OPML. Not sure if those need to be so prominent right away. Feed I could live with, but hide away the OPML reference or put it somewhere else (like under More Actions).

    I had to try this several times. I was greeted with this once:

    GoogleError1

    I was greeted with the un-styled version once:

    GoogleProblem3

    Finally, after repeated attempts:

    GoogleAddedFeed

    Up it pops.The side bar on the left is a scrolling fly-out thingy … I don’t know how to describe it exactly. The bar stays in place while the list scrolls underneath. It’s odd. Since the bar is fixed, if you scroll to the bottom of the list, you actually end up with two entries showing, even though there’s room for about 7. It’s nice that the buttons above the list stay fixed, it makes it easy to navigate through the list.

    That being said, this is a very slow way to browse blog entries. Click. Click. Click. Click. A newspaper style scrolling display is far easier to read and Google knows that. They do it every where else (all of their search listings for example require only use of the scroll bar to see and read results). So, I can only hope that this is just an experimental user interface.

    GoogleProblem2

    I’m not going to spend too much time on this as I have no plans on being a RSS reading web convert any time soon. I spend too much time still off line that I don’t want to have all my RSS content unavailable or locked up within Google. It’s of course handy that I could read it anywhere, but there’s nothing new about Google’s play in the market that I can see (and there are a lot of other more mature options available for web only reading).

    Oh, after some further playing around, I finally saw the “subscribe” button that you use after previewing the feed. Instead of a link (like the Add, it’s a button). I was totally overlooking it — but then again, it wasn’t obvious. (I didn’t even notice it until I pasted the image in above).

    Try it out for yourself if you’re interested, but don’t expect to move all of your RSS reading to Google anytime soon.

    October 8, 2005

    What do you use for blog publishing software on Windows?

    If you maintain a blog, what software do you use to publish to your blog? I’m looking around. My current favorite is BlogJet as it’s clean and simple and has the minimal feature set I need:

    • Windows XP compatible
    • Spell checking
    • Automatic image uploading and thumbnail creation
    • WYSIWYG (or close enough). I don’t need it to be exact, I just want to see the basic format of the text and not have to use raw HTML.
    • Edit a/any post
    • See and modify the raw HTML (only when necessary).
    • Recently updated/maintained (nothing where the last software update was in 2004 for example)

    The only reason I haven’t jumped and purchased it is because of its current price, $39.95. It’s above that maximum impulse shareware purchase price of $19.95 that I mentally have in place.

    I’ve tried a handful of options, but few of them so far can do the short list above. I’m not willing to shorten/eliminate any of the items either.

    Maybe “flock” will fit the bill when it’s released.

    Anyone buy RocketPost?

    Does anyone use and paid for RocketPost from Anconia? It’s normally $149 US (I’ve seen coupons for $50 off occasionally). I can’t imagine paying that much for a blog publishing tool. So, I’m curious if others have found it useful. I believe the developer, “Manish” has been posting a couple of comments on another entry at my site (here) and I mentioned that I wouldn’t consider it given the expense.

    Don’t get me wrong, I’m still not. I suggested that they provide a more limited version (more similar to BlogJet) for less.

    Post a comment if you’ve bought RocketPost. Bonus if you indicate why!

    And, no I am not attempting to make money through their referral program by including a link to their web site, I went so far as to include the rel=nofollow HREF attribute value on the link above.

    Novell Linux 9 on VMWare

    If you’ve downloaded the most recent Novell Linux 9 installed VMWare image trial —what a mouthful—directly from Novell you may encounter some video display issues during the first boot. Essentially X Windows won’t start. Worse, at least on my machine, the display was nearly completely garbled to the point of hopelessness. To add insult to injury, you likely will be able to read that X Windows won’t start and that you’ll need the undocumented root password to make changes.

    Once you realize that the password for the root account in the trial VM image is “novell”, you at least have a fighting chance. The full solution is here (even though it’s not clear that this solution would work, it does).

    Here are the steps:

    Log in as root and do the following:

    init 3
    sax2 -r
    say 'ok' to the new sax configuration.
    init 5

    Once you start sax2, you’ll need to adjust the resolution of the display (unless you want to run at the default 640x480).

    After getting X-Windows and Novell Linux 9 up and running, I updated to the latest versions of Mono and its dependencies using these commands, logged in as root:

    rug sa http://go-mono.com/download
    rug sub mono-1.1-official
    rug sub gtk-sharp-official
    rug in mono-complete gtk-sharp

    Updating to the latest version the VMWare tools with this downloaded VM image didn’t work. There’s an older version already installed that functions well enough.

    Novell Image, with Remote Desktop Active

    click to enlarge

    One minor issue right away I noticed …

    Novell2

    Given that this is commercial software, I’m surprised to encounter messages like “NOT IMPLEMENTED; System pointer message 0x7f00.” It seems harmless enough as the remote desktop connection I made seemed quite functional while I used it for a couple of minutes.

    I understand the warning (although I don’t know why anyone would really care that the server limited the color depth), but the second happens every time I used RDP at any color depth (both with defaults and manually set).

    (I’m amazed by how much the Terminal Server Client UI was completely stolen from the Microsoft Windows Remote Desktop application though!).

    October 1, 2005

    Another attempt at the RSS Bandit Logo

    Another attempt at an RSS Bandit logo idea. I was trying to get away from the currently popular newspaper style as a newspaper reminds me of a news reader, not an RSS reader. I can see that my comments of the “pirate” had some impact, which was my goal last time I submitted.

    RSSBanditProp4

    Feel free to comment.

    September 24, 2005

    Firefox must be innovative .. or die.

    Firefox must be significantly better than IE 7 to win the browser wars.

    In nearly all aspects/areas Firefox must be better than IE7.

    I’ve heard Firefox 1.5 is somewhat better — but they’ll have lost the war if they don’t do better than that. They’ll need more than tabs and “CSS” compliance. (Excluding geeks and web developers, I’d bet at least 95% of Internet users don’t care at ALL whether a page is CSS compliant.) I’m a developer, a geek, and do a lot of web stuff, and I don’t care how Amazon is built, or any other web page that I didn’t write. As long as it works, I’m good to go! Yes, I can appreciate the need for better accessibility in all web applications—section 508–and that’s a good reason to pursue standards, but most others are more of a political/religious debate than a practical issue for the end user. My example: Do you care what software programming language Firefox was written in? Why not? Does it affect your willingness to use it? Is it maybe irrational that it does? (with the exception of programming languages that require large downloads to make applications work).

    Here’s my official announcement:

    Unless Firefox changes, when IE 7 is released for XP SP2, I’ll stop using Firefox Day 1. Period.

    How many others feel the same way? If IE 7 is good enough, there won’t be any reason for average PC user to download Firefox — which is the only reason today people really are downloading it. It has a few things IE 6 doesn’t have.

    If you just want to “fight the system” and are against Microsoft, fine. Stick with Firefox.

    Recommendation to Firefox developers and designers: Innovate. Innovate. Innovate. Innovate hard. Innovate often.

    Firefox ... More useless errors

    Firefox alerted me that a critical update was available:

    Firefox Critical Alert Icon

    Yes, this is a indicator of a critical update. Of course. (Don’t miss the heavy dose of sarcasm there!) A red button like thing with an up arrow … or something. Personally I would spell it out in a little more if it’s that important. There’s plenty of space available in the average Firefox installation window. [Critical Update Available. More…]

    I started to go through the process and got to here:

    FirefoxError1

    (click image for larger size)

    Firefox encountered problems when updating your software, and as a result not all components could be updated.

    For extra pain, I clicked details. I am particularly fond of the details that get truncated so that the actual detail isn’t available: “Not a valid i…”. The dialog isn’t resizable in case you were wondering.

    How did I fix the problem? I clicked the [< Back] button, and Firefox started the download. Go figure.

    What should the software developer do in this case? Again, I’d suggest giving the user appropriate behaviors when this occurs. Retry. Cancel, Send Error, Support Forums, etc. If the users chooses to see the details, make it possible to actually see the details and copy them into an e-mail or to submit them to a bug clearing house minimally.

    Another useless Error Dialog

    Outlook 2003 (and older versions) has some wonderfully annoying errors that display occasionally (likely caused by bugs in various components). Many of them seem to happen when using the built-in Hotmail HTTP support.

    Here’s one that I just had happen:

    The messaging interface has returned an unknown error. If the problem persists, restart Outlook.

    “The messaging interface has returned an unknown error. If the problem persists, restart Outlook.”

    Let’s walk-through the typical user experience leading up to this event:

    User: I wonder if any one sent me any e-mail today? I’ll just click down here …

    Software: [BLING!]

    User: Uh?

    Software: [OK?!]

    User: Uh?

    Software: [OK?!]

    User: A messaging whats-it? What problem? Restart? I’m in the middle of writing some e-mail!

    Software: [OK?!]

    User: Fine. OK this %^#@!*& Outlook! [CLICK!]

    User: I’ll just try that aga…

    Software: [BLING!]

    User: Arrgh!

    Clearly, the user wasn’t at fault here, yet the software suggests that the user must take some unknown action to try to resolve the error, or restart the application, hoping that things might get better. This is not the ideal experience. Some software developer likely thought this error was infrequent so the decision was to not worry about the messaging or end-user experience if it should occur.

    Here are a handful of ways that this could have been handled that would have been better:

    • Try to internally restart/reload the necessary components rather than asking the user to restart the entire application. In this case, the Hotmail subsystem needs to be reloaded. Only after a complete restart of the likely broken subsystem should the user be potentially be alerted that there’s an error of unknown importance….
    • Present the user with some options: Restart Outlook. Report Error. Help. Microsoft support web site (which points to a page describing the error).
    • Explain why this is such a serious problem that warranted interrupting the user with a modal dialog and displaying the dreaded red X. What does it mean to the user? What might they still be able to do? Did they loose work they’ve done? Is Outlook unstable?
    • Reword it to seem directed at average computer users, not technical people. There is no “Restart” button in Outlook last time I checked for example. If you expect the user to read the text, make it worth their time. Respect their time.

    In the end, I restarted Outlook and everything worked fine again. Phhpt.

     

    September 20, 2005

    Opera Text-Double click

    A double click of some text in the Opera 8.5 web browser automatically shows this menu.

    OperaDoubleClickText

    Very cool. (I know recent Adobe reader versions do something somewhat like this, but it’s not as comprehensive as Opera’s). A software designer of course came up with the most likely reasons someone might double click text in the browser and put those options immediately in front of the user. Excellent.

     

    Opera 8.5 Free and a Clean Design

    The Opera 8.5 browser is now free — free of cost and free of ads.

    Download it from their web site here. The reason I posted this however wasn’t really to mention that it’s totally free now. That’s a nice upgrade from the ad supported version certainly, but likely still not enough reason that I’d recommend anyone download it and use it as their daily browser.

    Instead, I really liked their clean “splash” page. The horizontal and vertical lines, the use of white space (and gray space), a nice amount of color with a not so original, yet definitely appropriate image.  Click below for a large image.

    OperaHomePageFree

     

    Wonderful Error from Adobe Illustrator CS 2

    Nice error message.

    “Could not complete the requested operation.”

    Could not complete the requested operation.

    All I did was start Illustrator.

    It’s clear what I’m supposed to do. The fact that it doesn’t have any actions (such as a button) is an extra bonus (and/or a slap in the face).

    I’ve tried to start it 3 times, the button shows up sometimes … just an OK button though! Hitting the OK button just forces Illustrator to exit immediately. I’ll try rebooting in a while to see if that magically solves this new issue.

    Usability rule: If you decide you must show an error dialog, provide some useful information that allows either the end user or the software manufacturer/author to assist with troubleshooting. As I mentioned before, displaying such a useless dialog to me is like slapping me in the face and saying I don’t matter.

     

    September 19, 2005

    Symphony Operating System

    I frequently download Linux distros, from Fedora to Linspire. There’s yet another on the block though, Symphony. The reason that I’m highlighting this distribution however is the very unique approach it is taking to potentially improve the end user experience.

    Symphony OS

    There are 3 major parts to the Symphony OS.

     Mezzo – a desktop system built for Symphony. It’s hard to easily describe easily, but suffice to say that the “Start” menu and its clones are definitely not present. One of the developers, Jason Spisak, has provided the Mezzo Slideshow. It harkens to an early test version of Windows that I recall (anyone remember what it was code-named?), but I don’t remember the time frame. The idea is that everything is on the desktop in easy to find and use places.

    Orchestra –  the application environment. It’s the development platform rendered and programmed with a variety of options, including Javascript, Perl, Flash and more.

    Operating System — based on Debian GNU/Linux and Knoppix GNU/Linux. Some basic applications such as a web browser and office suite are included.

    If you’re interested in more detail about the design principles, they’re here. Some of the more interesting topics he considers (and hopes to solve):

    Configuration gluttony must be stopped. I applaud this idea — but it is a challenge to follow. Too many users want too many options and it’s difficult to say no to them all. Before you know it, you have the same number of options as the next application! The more compelling the application, the less need there may be for configuration, but you often leave out power users — who want to tweak the software all day long until it is just right. He comments that the configuration should be simple — just like their TV. It’s a generally good metaphor as most TVs come reasonably well configured for out of the box use. I’m sure that is what Jason is targeting. However, honestly, my larger screen TV has a ton of menus and options! In the end though, I’d prefer a button that I could click on my TV: “Just make the picture good, right now.”

    Consistency plus relationship wins over “put it in thee [sic] places, and they’ll find it when they need it.” Jason’s general idea here should be followed by many software developers and designers. Having more than one or two ways to accomplish a task is likely to confuse and clutter. Is having yet another way to do the same task for the super power user good for the average user? You’ll only have a small group of super-users, but your general audience will be huge. Is having a feature specifically for a very small group of users good for all? Think about your users as a group and design for them. (And strongly resist the temptation to add in a “switch” for just the power user as it requires extra development time, extra testing, and extra maintenance over the life of your software application).

    It’s still an Alpha product (download) and has a long way to go, but until its complete, I’d recommend you read and consider Jason’s complete Mezzo document or his summarized “Laws of Interface Design.” I’m in particular interested to hear what you agree/disagree with. What aspects would you want to apply to software you write or design?

    September 18, 2005

    More PDC Instructions

    Rob has also posted a helpful set of instructions on how to make a working system from all of the PDC DVDs ….

    Microsoft Internet Explorer Developer ToolBar

    From Microsoft, currently in beta, is the Internet Explorer Developer Toolbar.

    IEDevBar1

    Several outstanding features: an on screen ruler (you can see it in the screen shot above) with some useful switches:

    IEDevBar2

    Also included is the DOM Explorer (more below about that), find an element by clicking feature, validation, cache and cooking clearing and much more!

    In the first screen shot, I have the toolbar configured to show DIV element outlines along with the CLASS and ID information for each element.

    IEDevBar3

    There’s a very slick DOM Explorer toolbar also available:

    IEDOMExplorer1

    You can walk the DOM tree and explore the structure of the document and the styles that are applied to any given element. VERY handy. The toolbar also will “unpin” if you don’t want it attached to the browser window.

    I’m not going to list all of the features here … that’s on the download page.

    I’ve used the one built into Firefox and been happy with that … this seems to be at least a clone, if not better!

    My hats off to the Microsoft developers for this great new IE toolbar.

    Warning: According to reports, this will not currently work in Windows Vista as of Sept 2005.

     

    Excellent Freeware Screen Capture Software

    If you’re interested in a nice freeware screen capture software application for Windows, check out Gadwin Systems, Inc PrintScreen. It supports all of the common things you’d want from a fast and efficient screen capture application:

    • Hotkey selection
    • Selection of entire screen, application and a specific rectangle (with a zoom window!)
    • Many different file formats
    • Automatic file naming
    • Optional previewing
    • Much more!

    ScreenShot001

    I grabbed the screen above using the rectangular PrintScreen selection feature, saved it as a PNG, and then used BlogJet to resize it. PrintScreen will automatically resize an image though if that is what you want:

    Saveoptions1

    Not that it probably matters, but the application deactivates its features when the settings dialog is shown. (I had to resort to old school screen capture to provide the previous image).

    Download it here.

    September 17, 2005

    PDC - PDC Goods Tips and Tricks

    From Tim Sneath, here’s a decent set of instructions for actually getting the various DVDs they provided to work together.

    To get the PDC build of Windows Vista (5219) running on VMWare (or any recent build including beta 1), I’d suggest from my experiementation that instead of using the default SCSI disk, create an IDE drive instead (I’ve had some odd driver issues with SCSI) and remove the SCSI disk.

    The only trick with IDE is that the install appears to not get by the initial disk configuration stage. To get by that, just select the Advanced button on the disk configuration page, create a new partition and then format it. Then, shut down the setup program and reboot. Next time in, every thing should go as planned.

    For reasonable graphics (beyond 4 bits!) and mouse support, install the VMWare tools (VM / Install VMWare Tools). Once that is finished, reboot. To install the network driver, start the Device Manager, and right click on Ethernet Controller and select “Update Driver”.

    Device Manager

    Answer “No, not at this time” to whether Windows should connect to Windows Update and hit [Next]. Select “Install from a list or a specific location” and click [Next]. Make certain that the “Search removable media” option is checked. Now, on the VMWare VM menu, again select “Install VMWare tools.” This mounts a virtual CD which contains the necessary ethernet controller drivers. Wait a few moments for that to complete (if it pops up an installation dialog again, just hit cancel). You can verify it has completed by using Windows Explorer … it should have a CD called “VMWare Tools”, very likely the “D” drive. Hit [Next] and the ethernet drivers should load without further issue.

    The “glass” look of course won’t be there as you can see in the image above (given the fact that it requires LDDM drivers and sophisticated Direct3D 9 with shaders 2.0 to properly work).

     

    September 14, 2005

    Microsoft Sparkle First Impressions

    Microsoft finally demonstrated publicly a new application, part of the Microsoft Expression “suite”, which is targeted at designers to create rich Windows Presentation Foundation applications (FKA, Avalon). The new designer tool, code named Sparkle, is remarkably full featured considering its still somewhat preliminary state.

    Sparkle has been labeled as the “interactive designer.” The current plan is that Sparkle will become part of the typical software development workflow, but it will be on the designer’s desktop, not the developers. Sparkle understands MSBUILD scripts and CSPROJs from Visual Studio natively so that a designer can directly interact with a development project (of course, this is good and bad, but it’s definitely something that is important to support).

    I had an opportunity to experiment with Sparkle during a hands-on lab and talk briefly with some of the testers and program managers about the project. First off, it’s not available today (as of Sept 2005), and the release schedule isn’t public. No betas on the schedule, but they definitely will be coming.

    The UI is sort of a mix between Visual Studio and Adobe Illustrator (maybe some Macromedia products as well, but …). It should be relatively easy for a designer to jump in and understand the basics of doing design with the tool. Sparkle was full of many useful modules which made doing data-binding and common tasks very easy. The UI did seem ‘washed-out’ though … too white. Maybe they’ll support skins (they should — the tool is natively written in C# and XAML!).

    I followed a script, and didn’t have an opportunity to explore outside of the script, so my experience was limited to only things that Microsoft wanted me to see and try.

    What I saw and tried though was very impressive. With only a couple of clicks, I was able to data bind an XML document to a UI, automatically create a list (box), and show the title field in the list without any complicated set of steps. Even cooler was how easy it was to databind a “detail” pane for the items in the list. My XAML skills have grown weak over the past months … but the tool made it possible to not know the details of XAML. Unlike Acrylic (another member of the Expressions product suite), Sparkle natively understands how to do animations and not just static displays. Arcylic is all about creating static images and pages. Sparkle is all about creating the application experience.

    Sparkle seems to be reasonably well designed. Certainly it will be possible to create simple XAML-based user interfaces very quickly, but more complicated applications are likely to require some training, especially for non-technical designers — especially as it relates to how to work with the developers to produce a fully functional XAML application with minimal time and effort. I’m sure for most designers they welcome this change, but it will take some time. There’s probably an opportunity for some good books and training for designers so that they can get up to speed on this new tool and how to use the more powerful features of XAML within Sparkle.

    All in all, Sparkle is a very welcome (and necessary) addition to the Windows Presentation Foundation tool set. XAMLPad (and relatives), Notepad, and XML schema-based Visual Studio intellisense just don’t cut it any more.

    Demos (although as of this writing, there isn’t one for Sparkle).

    I do hope this “sparks” some competition though. The only products shouldn’t come from Microsoft.

    Update: Video from Channel 9. (I haven’t seen it, bandwidth starved here at the PDC).

    September 12, 2005

    Windows Vista UX Guidelines available for download (preliminary)

    The Windows Vista UX Guidelines are available for download here. Very oddly, the ideal install requires use of a web server (and some further steps to get the index working)! Hello?! Microsoft? Have you ever heard of compiled help files, or for that matter, a Word document?

    To further add insult, the document itself is a bit hard to read (at least in Firefox).

    Some of the more interesting pieces I extracted this morning:

    Icons – Look and feel

    To obtain the modern Windows Vista look, you must redesign your program’s most prominent icons to use the Aero style. Be sure to redesign any icons that are displayed in the Start Menu or Explorer (such as file type icons). Don’t use any Windows 9x or older style icons in Windows Vista programs.

    Aero-style icons have the following characteristics:

    • Style Realistic, symbolic, not photorealistic or illustrative.
    • Perspective Use isometric icons for program icons and objects with 3-D volume. Use flat icons for files, flat objects, and 16 x 16 icons.
    • Sizes Required sizes are 256 x 256, 32 x 32, and 16 x 16. Optional supported sizes are 128 x 128, 96 x 96, 48 x 48, and 24 x 24. Windows Vista icons scale smoothly between 256 x 256 and 32 x 32. The 256 x 256 icon size is required to support high-resolution monitors.
    • Color 32-bit color (24-bit color plus 8-bit alpha channel.)
    • Format .ico file format.

    Long live the pixel (rather than using a vector-based icon format, they’ve continued with the ICO file format)! Notice the bump in required resolutions though (256 x 256!).

    On a positive note, they included a section entitled “Text and Tone” which suggest how to improve the software user experience by careful choice of wording within a software application. It’s a great start. Suggestion: Add lots of examples of good “text and tone” to make it simple for developers to follow the guidelines, as many developers follow the pattern of “find MSDN reference sample code, copy, paste, tweak for specific instance….”

    September 11, 2005

    Useless Error Dialog

    Apple is so often praised for their human centered design and software, so it amazes me to no end how often Apple’s software is absolutely un-friendly. Here’s a classic example that I encountered today:

     ITunes Useless Error

    (Click to see it enlarged).

    “An older version of QuickTime Pro was detected on this machine. If you proceed with this installation you must purchase a new QuickTime Pro key to regain QuickTime Pro functionality.”

    [Yes] [No]

    This is wrong in so many ways:

    • It doesn’t provide any detail of what version it detected, and what version it wants to install.
    • There is not any help available regarding this problem (to either a web site or embedded help).
    • It isn’t asking a question, yet it prompts for a “yes or no” answer (the dialog is titled “Question”, so maybe that will clear things up!)
    • There’s no information as to the cost or benefits. If this isn’t a place for a real advertisement that actually gave some information I don’t know what is!
    • It’s not clear if it will uninstall the old version, disable it or….?
    • It’s ugly (but most dialogs in Apple’s Windows’ software are ugly and non-standard).

    Don’t do this to your customers. Think about the experience of your software. Make sure the user is confident and understands the choices presented, especially when this type of information is presented.

    What did I do as a result of seeing this confusing dialog? Hit “No.”

    MoveableType 3.2 on Windows 2003 Server

    If you install MoveableType 3.2 on a Windows 2003 Server, here’s the error you’re likely to be greeted with:

    CGI Error
    The specified CGI application misbehaved by not returning a complete set of HTTP headers.

    Ah. Very helpful.

    For some reason that I haven’t figured out (and haven’t the time), on Windows 2003 Server with recent builds of Perl, paths are not working the way that is needed for MoveableType.

    Here’s what I did to get it to work.

    Open mt.cgi (it’s in the root directory of your MoveableType installation).

    It should contain something like this:

    use strict;
    use lib 'lib';
    use MT::Bootstrap App => 'MT::App::CMS';

    Replace the ‘lib’ with the absolute path to the MoveableType lib directory, such as

    use lib 'c:\inetpub\wwwroot\wiredprairie\mt\lib';

    You’ll need to do this for lib and extlib in all of the CGI files, not just mt.cgi. Doing a search and replace works well using your favorite editor in that directory and subdirectories (just look for the use lib …). You may need to replace it slightly differently if you install any new plugins (as they may have their own ‘lib’ directories).

    Once you get by that and configure everything per the instructions, everything should work.

    October 16, 2004

    Copernic Desktop Search

    Google Desktop Search ... some neat integration, but not yet complete for my needs (maybe it will get better since it is a beta). If you're in the market for a tool that can quickly search your documents, e-mails, etc., you might want to try Copernic Desktop Search. It offers nearly the same feature set as the Google Desktop Search, yet is much more configurable (it doesn't try to integrate into WinInet though and listen to all the traffic that's happening). For example, I just added all of my primary development files to the file search folders (including the Visual Studio include directories). That way, I can quickly find constants (#DEFINE) for the variety of Win32API calls that I still use frequently in my C# development. Searching through my old code to find examples also works well -- and is much faster than using the built in Visual Studio find feature (especially on my slower laptop hard drive).

    For fun, I just searched for "new Form1" in all files. It easily took less than a second and returned 36 matches from the 28,000+ files that have currently been indexed on my laptop. Google Desktop Search also took less than a second, and returned 0 matches.

    As with any software or web application you use (including Google Desktop), make sure you read the privacy agreement, etc. I didn't spot anything, but I'm no lawyer. Currently, the product is ad-driven (tiny little space reserved for ads in the application).

    May 11, 2004

    Backups

    Scott asked what others do for backups.

    My current strategy isn't perfect by any means, but reliable enough for me now. I'm not overly paranoid about these things -- if I lose something, I'll accept it and move on. Accidents happen -- with physical photos, CDs, DVDs, VCR tapes, etc. Without easy ways of transferring one media format to another, we'll always have this problem; I'm thankful that "digital bits" are easier to move around as it makes my job of preserving memories easier (although with digital rights management, DRM, I'm often thwarted by the legalities of preserving some of the "bits" I have purchased).

    Music

    We have a large number of CDs that we have stored as Windows Media Format on a centralized server (around 35 GB at 160Kbps). As new CDs are acquired, copies of the new files are stored on two additional IEEE1394-Firewire/USB 2.0 drives which are located offsite (conveniently, in my and my wife's offices, connected to our workstations so that we can access our music at work without bringing in hundreds of CDs). About once a year, I make a complete archival backup of all of the files to a series of DVD-Rs. This is probably not necessary given the redundant copies we have, but it brings a small amount of 'peace of mind' knowing that I won't need to insert hundreds of CDs into my PC waiting minutes for each to copy for a LONG time (until some significantly improved audio format comes along).

    Images/Photos

    Very similar strategy to music, with the additional step that I also frequently copy the directory structure to my laptop. I may need to change this as the collection is growing significantly, but for now it works. I make CD-R backups of the images every couple of months and take the CD-Rs offsite. Soon I'm going to add an external drive to the main storage drive and mirror it daily (robocopy). Once the collection grows beyond what I want on my laptop, I'll switch to copying only the recent images to my laptop (which is generally what I want to look at anyway), and archiving the remainder in the same way.

    Video

    This is the one I've struggled with the most. Here's what I do. For new important video (from a camcorder, from the ReplayTV, or whatever), regardless of the size, I find at least one external drive where I can mirror the content while I'm working with the video (making DVDs, etc.). Once the editing has completed, I burn DVDs as necessary. Depending on the size of the files, I may also burn a "source" DVD containing the original files. If the files are too large, I'll batch encode the files to a more compressed format (I usually pick a high quality Windows Media Video Format) and burn these to DVD-Rs. This reduces the file sizes significantly.

    I remove the originals from their primary storage location, but keep them on the mirrored external drive. If I run out of space on the mirrored drive (which definitely happens), I am then forced to choose between the content and available space. In almost all cases, I'll delete the older originals, and keep the high quality compressed video files (on DVD). If I really need to make a new video from the files, the archived version should suffice (admittedly at a slightly lower quality, yet still very good). Depending on the importance of the video, I may make extra backups of the DVDs in both final rendered format and the compressed versions.

    I have occasionally kept the original source material on "tape", but infrequently. The raw footage is sometimes too raw to bother keeping. I have copied back the edited footage to the tape and saved that. But again, rare.

    Personal Files/Documents

    Backed up frequently to secondary disc in primary computer, with a copy also made to network storage. Monthly, I make a CD-R of the directory which is generally taken offsite (to work). With the new Winzip 9.0 encryption features, I've considered encrypting the content as well (with the slight worry that I may not be able to access the content due to key management problems on my part). (My wife makes a copy of the Microsoft Money data file to a floppy disk after every update still.)..

    Given what I've been reading recently about the potentially limited lifespan of CDs and DVDs, I may need to make duplicates of the back-up CDs and DVDs every couple of years. As new media types (such as the blue-ray DVD drive/disc) become available, I'll transfer the content once it becomes "mainstream" and reasonable priced. The prices of extremely large tape drives are too high for my budget and with my "bits" all around the network on various computers and drives, developing a back-up strategy would be a frustrating experience for me.

    Warning

    The most important advice I can give though, given my experience: make sure that what you want to backup is in fact being backed up! It's easy to become complacent that your script/utility/etc. is doing the right thing -- computers don't ever make mistakes or have problems, right? Wrong: in the last 6 months I lost of ton of older development projects because of a hard-drive reformat. I thought I had them all backed up in several spots ... turned out my script had a problem and the directory wasn't being copied correctly. Verify that your backups are working.

    Summary

    • Make copies of your data as frequently as is important to you.
    • Take some offsite to help in disaster recovery (fire, flood, theft, pet, etc.).
    • Use your favorite calendar software to setup reminders to do any manual backup processes you may have (and don't keep clicking the "remind me in 1 week button").