Monday, January 15, 2007

This link went around the office a few days ago about the rendering engine used to display HTML email messages in Outlook 2007. Evidently, the folks from Campaign Monitor are not impressed.

The issue is that Outlook 2007 uses Word to render the HTML email messages instead of Internet Explorer. This leads to some limitations on the HTML and CSS that authors can use in their message.

Zeyad Rajabi and Erika Ehrili wrote this document to help folks understand the rendering capabilities of the Outlook 2007 email client. Its well done and easy to understand.

It looks like a fair number of people are in a tizzy over this. If you make a large percentage of your revenue by designing complex email templates for your marketing clients, you're probably interested in how the email renders in the reader's email client program. Just thinking about the number of email client programs is startling. That's a lot of testing to do before you send out your mass e-mail message. Plus, you have to comply with the federal anti-spam laws. I suppose the marketing folks deserve a little bit of a hassle for all of their networking events and schmooze fests... :-)

I like a pretty e-mail as much as the next person, provided that its relevant to my interests. I don't like the crippling affects that I see when one is forwarded to me by the original recipient. It seems to me that the message needs to be short, with a clear call to action, and trackable. I'm fine with a details link to a web page.

These are some of the choice excerpts from the comments on the Campaign Monitor page:


jaw - floor.... Where is the frick'n sense in this? Is it 'cuz they didn't employ people who can understand CSS?? WTF??!!


Hey there... I guess this is attrubuted to Vista's. IE has been split from the windows shell thus meaning that if IE is not installed on the computer Internet Explorer cannot render the HTML. See when you are in XP if you type in a url in Explorer it will go to the page "inplace" however if you open up Vista and try to put in the URL windows will open up your default browser to open the page. :)


I like it. I've gotten emails from clients using the background images just b/c they look "pretty" and it ends up destroying the message formatting when I try to reply. Also, it's less junk taking up bandwidth. If you need graphical pretty things sent to specific people, find another way.


Hate to be a spoiler, but I long for the days when my email didn't look like a webpage.

Email should be fast and efficient.

Graphical email is not.


I'm no fan of using the Word rendering engine, but the real problem lies in the overuse of HTML mail. Anyone who doesn't use Outlook already has problems similar to the ones this switch will cause, and there are only two ways to ensure perfect rendering; Use plain text for emails, and use PDFs for pizazz.


I'm almost positive it has to do with the whole Anti-Trust issue. The answer that would make the most sense to me would be the word rendering engine is part of Office. IE is not and therefore instigate the issue that people are being forced to upgrade and use IE versus alternatives. I think its a step in the right direction but i believe that it has hindered the users experiance because of it. Only time will tell if they stick to their guns and give some resolution on it.


I think this is a great move. I'm sick and tired of html email and hopefully this will reduce the number of people that think its cool to put html, background images, and all that other crap in an email.


Currently using Vista and Office 2007 and I do not see these problems problems. I even make HTML based newsletters an I have do do not changes to the way i create them. It looks like FUD to me.


stop crying... BUY A MAC!!!


Hey, maybe now we can get email back to what it's supposed to be. Text-based. HTML email has always been problematic and you've never been really sure about what the other person would see depending on their email client.


Let's talk a little bit about spamminess, and why HTML might not be the way to go in email.

We run SpamAssassin, a requirement when each email account averages 150+ spam messages per day.

HTML is already suspicious and gets -10 -- -40 if HTML only. Since -50 is quarantine, your beautifully crafted HTML only message is precariously close to deletion already.


Monday, January 15, 2007 12:23:33 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Sunday, January 14, 2007

I had a need for a client services teammate to get their hands dirty with some XML. In this project, an XML file defines the hierarchy of pages in a web site. With a massive redesign under way, the team needed someone with familiarity of the existing pages to make the changes. With the hopes of giving my non-developer teammate a slick application to help them rearrange some angle brackets, I took a look at Xml Notepad 2007 and WCMHelp's XmlPad.

Xml Notepad 2007

The bits can be downloaded here and this document a nice explanation of the author's intent.

Xml Notepad 2007

The left window shows the tree. The red dots are attributes and the folder icons are elements. The right window shows the values of the attributes. There's an XSL tab for viewing transformations. You can point the application at an XSLT file and see the output too.

The part I like the best about this is application is its simplicity. I need my teammate to look at each node and make a determination. They might need to move it anywhere in the hierarchy. There are four buttons on the right side of the toolbar expressly for this purpose. If they feel a little more ambitious, they can click and drag the node to the new location in the left window.

WMHelp XMLPad 3

You can get the bits here. This application feels a little more powerful than the first application. It can create schemas and validate against them in a more flexible manner than XML Notepad.

WMHelp XMLPad

The attribute names and values appear in the lower left window of this application. There are different views of the XML available too. The picture above shows the source view. There are three other views (Grid, Table and Preview) in the bottom of the right window.

This application doesn't show the simple set of buttons in the toolbar for moving nodes, although they can be dragged around in the tree. I find that dragging can be a little unpredictable with a large node set. With all the on-the-spot decision making going on, I felt that the simple XML Notepad program was better suited for the specific task and user. However, if I'm the one doing XML work, I would probably choose XMLPad if VS.Net 2005 didn't do the trick for some reason.

At some point, I'd like to checkout XMLSpy. I've heard great things about it for years. I chose to examine these two because they were free and this was a one time gig. If I end up doing lots of work with my angle bracket hammer, then I probably will put in a request for the XMLSpy license.

Sunday, January 14, 2007 8:47:19 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [1]  | 
 Tuesday, January 02, 2007

Thanks Jim! Here I am wasting time on my first day back at work after the holiday break, and apparently, you are too. Here are 5 things you don't know about me.

  1. I played varsity basketball my freshman year in highschool, much to the delight of the upperclassmen, and I was the MVP my senior year.
  2. As a future software developer, I earned my obligatory black belt during college by training in Ryukyu Kempo karate with Bill Burch, good friends with George Dillman. I met some of the best friends I ever had.
  3. At my first 4-H show, I received a red ribbon for my two chickens. I think I was eight.
  4. I visited the Blue Hole in Belize with the charming woman I would later marry. We met about 50 sharks, between 6 to 10 feet in length, as they came out of the deep blue center to greet us at a depth of 140ft along the rim. She squeezed my hand very tightly and I knew it was love from then on.
  5. During the glorious late '90s I bought a red 1994 Corvette when I had absolutely no business doing so. My wife says she dated me in spite of that car. Boy, that car was sweet.

Here are my five victims of this game: Kelly, ScottHappy SteveLee, and Dave.

Tuesday, January 02, 2007 10:37:16 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Sunday, December 31, 2006

I just made my first trip to Costco Wholesale Corporation yesterday with The Wife. She's been going with her lady friends for quite a while and I've managed to dodge the bullet up until yesterday.

It was an enjoyable outing and my buddy Marc turned me on to the deal for a hotdog or polish sausage and a soda pop for $1.50 after making your purchases. Quite a deal! They even have these little boxes with a crank on one side. You hold your dog on the other side, turn the crank and either onions or relish come out the other side! Brilliant!!

So, I was meandering down an isle of wholesale goods with other shoppers when I laid eyes on the Rogaine.

Now, I've always said that when it comes time, I'll give it the ol' buzz cut instead of the comb-over, swirl over, or other means of denial. But this was Costco Wholesale Corporation and it was cheap! Like $10.00 cheap! Why pass up an opportunity for imortality?!?!

So on a lark, I was about to chuck a box in the cart until The Wife reads the side of the package and says "This isn't for you, dear." Turns out this Rogaine is for balding around the crown of your noggin' and not for the exceedingly high forehead, like mine. Alas, it'll be the clippers for me before too long. I wonder if I'd make a good Mr. Clean head like Doug Purdy or King Kong Bundy? It's not too smooth, but I do have a lot of "character" bumps.

Sunday, December 31, 2006 3:36:16 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, December 20, 2006

XPathmania
I caught the Barcelona episode of DotNetRocks. At the very end of the show they chatted with Don Xml and his recent open source contribution on CodePlex: XPathmania. Its a VS.Net 2005 add-in that helps developers test and validate XPath expressions.

It works like this:

  1. Launch VS.Net 2005
  2. Load up an XML document
  3. In the menu bar, click View > Other Windows > XPathmania
  4. Enter an XPath expression in the textbox and click the Query button
  5. See the XPath expression matches in the results table
  6. See the highlighted nodes in the source XML document

Brilliant! It also helps out with default namespaces, which have been huge headaches for me before.

Wednesday, December 20, 2006 10:21:05 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Friday, December 15, 2006

So the long awaited service pack was released yesterday. Here are the release notes. I downloaded the nearly half-gigabyte download and installed it. My laptop churned through it in about 40 minutes.

The experience would be a little better if all of the clicky parts of the install were way up front; then a very clear message could say, "Its OK to get a cup of coffee now; this is going to take a while." I wanted to walk away from the laptop and let it do its thing, but I was never quite sure if I would come back only to see a prompt that paused the installation.

I've been dodging the csproj files for ASP.Net 2.0 all this time, but now I guess its time to get back in there. I did it all the time in ASP.Net 1.x and I still get a good bit of joy out of just deploying a single .cs file to a web server. Now, its back to compiling all the code-behind pages for the site into a single assembly.

Among many other things, the ASP.NET Web Application template is included in SP1. I highlighted the new web application project template below. The temporary Web Project bits that were released a few months ago have to be uninstalled before SP1 is installed.

Here, I created a new project and there's the good ol' .csproj file keeping track of everything.

At least the ASP.Net compilation step will zoom now. It was a little pokey without the project file. Scott Guthrie had some workarounds, like configuring VS.Net to not compile code-behind pages, but that's all in the past now.

Friday, December 15, 2006 5:09:43 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Saturday, December 09, 2006

Last Thursday, The Wife was out with the car and it wouldn't start. The tow truck jumped it, so she could drive it home. He said the battery cable was loose so the diagnosis should start there.

I received this news late Thursday while out with my darts team for the division championship. We had just lost the very close game, so this was just about the perfect time. No need to bring on sour news when I'm feeling good; better to here about it when I'm already in the dumps.

My friend let me borrow his 2nd car that night so The Wife could drive to work on Friday. Just to put a little pizzazz into it, there was police activity smack dab in front of our house. When I rounded the corner to our street, a couple of police cars had pulled over a car and were searching it. I parked a few houses down and waited about 20 minutes. They hauled the guy off and a tow truck promptly took his car. I walked outside around 12:30am and drove my friends car into our driveway. Great.

Friday morning, I woke up and examined the car. The battery was way low; it wouldn't even turn the engine over. So, driving it to a mechanic was out of the question. Paying to have it towed made me grimace too. The battery cable was a weird kind of loose. Tight at first glance, but if you wiggled it just right, it would pop off the battery post with ease.

I went inside and searched online for the nearest Napa auto parts store (for no particular reason, I think that's what my Dad always went to back on the farm). I walked about 20 blocks to the shop and purchased one model "51R" car battery for about $80. As the fella brought the battery out of the stockroom he looked at me and said "so, this is going to be a lot of money". Who says that? This guy should go to marketing school or at least take the correspondence course. I had a good guess of what a battery costs; maybe he thought I was going to ask for a deal or something. I was dressed pretty scruffy after 6 hours of sleep and a tough night of beer & darts. It was easier walking there than it was walking back; its heavy after a few blocks.

I removed the old battery and installed the new battery easily enough. It really helped that I found the needle nose pliers, vice grips and adjustable wrench in the house. They're weren't put back in their proper locations in the garage. Grrrrr!

The car started right up and I felt a little bit of pride in a job well done. I considered that I had probably solved the problem and it was most likely caused by the loose connection; thus, the battery was not being charged properly by the alternator and it was slowing draining all its resources. After several days, the battery finally gave up. Yet, in the back of my mind, I thought what if its really something bigger? I am a farm kid, but I'm no mechanic.

The same friend who loaned me the car highly recommended Dan's Automotive. I drove the car over there this morning and recited the story to the guy (Dan I suppose) then walked over to a coffee shop. He called me back in about 90 minutes and said to come over. The car was perfect, nothing was drawing too much of a charge and he looked all over for any other suspicious problems.

Then, he looked at me warily and said, "so, is $20 fair?" I grinned widely and agreed. The confirmation of no problems would be a deal at twice the price. He had a couple of customers in the shop and already had some cars up on the blocks. I was glad he took me on such short notice. Looked like he was doing a fair business; but not swamped. He was super friendly; which is very high on my priority list. So, Dan's Automotive is now my favorite place to take my car too. If you need a mechanic in NE Portland, you should try the place too:

Dan's Automotive
5811 NE Sandy Blvd
Portland, OR 97213
(503) 281-7788

Saturday, December 09, 2006 11:19:34 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, December 06, 2006

The project team wanted to ajax-ify some parts of a web page we were building so I naturally reached for the ASP.Net AJAX tools. I needed to configure the autocomplete textbox feature that looks at the characters in the textbox as you're typing and suggests actual values through a listbox that appears below the textbox.

This all works though a background web service call to the server that filters the total results that match the current prefix in some way.

I downloaded the ASP.Net AJAX 1.0 Beta 2 bits and got the Update panel working nicely. Then, I was onto the autocomplete textbox. I couldn't find it anywhere. I installed the AJAX Control toolkit from CodePlex but it wasn't there either. I just wanted to find and use this control:

<asp:AutoCompleteExtender ID="AutoCompleteExtender1" TargetControlID="txtSearch"
runat="server" ServiceMethod="GetCompletionList" ServicePath="~/Search.asmx"
MinimumPrefixLength="1" />

It wasn't in any of the assemblies. Then, through some forum, I forget where, I saw a reference to the ASP.Net 2.0 AJAX Futures November CTP. Ack! There is was.

This "futures" CTP installs in the same folder as the ASP.Net AJAX 1.0 Beta 2 bits so I'm not sure what was overwritten; I'd like to come back to this some day.

C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025

The important assembly to get is:

Microsoft.Web.Preview.dll

It seems that they've moved the autocomplete feature out into this assembly for Beta 2. Hopefully this will save you some searching if you need the feature too.

Wednesday, December 06, 2006 11:19:53 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Thursday, November 30, 2006

You are hovering over bacon and eggs I've developed this phenomenal practice recently of rising early with The Wife (as a high school math teacher, she gets up wicked early) and donning my ratty old pair of Uggs, I make some bacon & eggs and a pot of coffee while I read the newspaper.

I usually come away with two or three great stories that I can use for conversation when I find myself in front of a non-developer.

Today, I came across this gem in The Oregonian:

Caught in a web of stupidity
In a recent Edge, we told you that the approximate time it would take you to visit every site on the Web if you spent one second at each one was 1 day, 9 hours, 46 minutes and 34 seconds. See, we were so busy visiting this one Web site (hey, we thought they meant TURKEY breasts!) that we left out a line. The actual figure is 3 years, 2 months, 1 day, 9 hours, 46 minutes and 34 seconds, according to The Chicago Sun-Times. Hey, Persnickety McPickypants, we were only off by 3 years and 2 months!

Huh... After thinking about it, I suppose they mean just the home page of every site. Even so, its easy to see how a large array of computers can successfully scan the entire web quickly. Then, it occurred to me the truly hard part was returning "the right" results quickly on a search result page.

Thursday, November 30, 2006 4:42:19 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  |