# Sunday, June 15, 2008
 #
 

Today is Father's Day here in America.  I spent the day with my two sons.  We went to church, then to lunch, then back home, where my sons hung out with their friends and I stayed in the background, content in knowing that they are safe and happy.

I look back on the difficulties of my life the last few years - an unwelcome separation, move, and divorce - and I realize that the one good, stabilizing thing in my life is the love of my boys.  I don't know how I would have made it without them.  I try to give them as much as I can and I hope that someday they recognize that.  But I know that they have given to me something that I could never receive from any other source - a reason to keep going; a reason to believe; a reason to hope for a better future. 

I know my boys will never doubt the fact that I love them with all my heart; but I doubt they realize the positive impact they have just by being in my life.  I've tried to communicate this but words fall short.

Nick and Timmy, if you are reading this, I love you more each day.

And to all the fathers out there, I wish for you the ability to express to your children the love you feel.  May they never spend one second doubting that their father loves them.

Sunday, June 15, 2008 11:52:27 AM (GMT Daylight Time, UTC+01:00)
# Thursday, May 22, 2008

Last night at the Southeast Michigan .Net User Group (http://www.migang.org/), I saw a great presentation on Microsoft Silverlight.  Jason Beres of Infragistics was the presenter. 

In the past six months, I've probably seen half a dozen presentations on the topic.  What set this one apart from the others was the amount of code that was shown.  While other presentations featured on showing off the eye candy (such as streaming video and rotating objects) that Silverlight supports, Jason stepped through the code in each of his demos. 

It made the process of writing Silverlight applications seem less intimidating and now I am resolved to explore this technology shortly.

Thursday, May 22, 2008 5:43:18 PM (GMT Daylight Time, UTC+01:00)
# Sunday, May 11, 2008

WM Day of .Net May 10, 2008 - I'll be there!

Yesterday I drove to Grand Rapids for the West Michigan Day of .Net.

I enjoyed the event, despite suffering from heartburn most of the day,

Here is a brief summary of the best sessions I saw

How to Architect Rich Internet Applications

Microsoft architect Josh Holmes gave an overview of what makes up a good rich internet application and when you should attempt to build one.

Getting Started with the ASP.Net MVC Framework
Tim Wingfield of Quick Solutions discussed the MVC framework.  This one had a lot of code samples.

A trip around the block with Rhino.Mocks
This session (led by Quick's Steve Hartman) was more like a roundtable discussion than a presentation.   Steve went through some definitions; stepped through a code sample; then started a discussion with the attendees about different Mock frameworks.

Reliable Messaging in WCF
James Bender of Quick Solutions gave this demo which also contained some good code samples.

A similar event is scheduled next Saturday in Cleveland.   I doubt I'll make that one, but I plan to attend the recently-announced Lansing Day of .Net scheduled June 21.

Lansing Day of .Net, 21 June 2008 - I'll be there!
Sunday, May 11, 2008 8:42:02 AM (GMT Daylight Time, UTC+01:00)
# Thursday, May 8, 2008

Edward Tufte has spent a lifetime turning data into pictures and studying the best way to do so.

In his first (self-published) book The Visual Display of Quantitative Information, he describes what makes an excellent graph or map. 

Not all data sets are good candidates for charts.  For small data sets with exact values, Tufte recommends using tables.  However to compare values or present many pieces of data simultaneously, a graph is far superior.  Graphs, Tufte asserts, are most useful when showing complex data and displaying trends or observations that are not immediately obvious when the data is displayed in tabular form.  An excellent graph is one that is clear, precise and efficient - that is it "gives to the viewer the greatest number of ideas in the shortest time with the least ink in the smallest space."

Tufte provides some advice to accomplish this graphical excellence.  He introduces the concept of "Data-Ink" ratio.  This is the amount of information conveyed by a chart, relative to the amount of ink required to print that chart.  Generally, a graph can be improved by increasing its Data-Ink Ratio.  This can be accomplished by erasing non-data ink, such as unnecessary gridlines and labels; by erasing redundant data; and by labeling data directly, rather than forcing users to look up information in a legend.

Related to the Data-Ink ratio is his push for high data density - graphics that have maximum data per page, maximum data per square inch, and maximum data per amount of ink used.  As long as a graphic does not appear confusing, cluttered or overwhelming, you should pack as much information as you can into it.

Tufte warns against "chartjunk", his term for irrelevant text, lines, pictures or other decorations that contain no actual information.  This is ink that can be erased from a chart without reducing the amount of information in the chart.  Many graphs contain pictures, 3D effects and colors that don’t relate to the data.  Rather than enhancing the user’s understanding of the data, this “junk” distracts the user’s attention from the data, making the graph harder to understand.  Erasing chartjunk increases the Data-Ink ratio, which should be the goal of every designer of data graphics.

I appreciate that the book provides numerous examples of both the right way and the wrong way to represent data visually and that most of these examples came from real-world publication.  Tufte pulls no punches in his criticism of those who do things the wrong way.  In describing one graph published in American Education magazine - a confusing 3D graph that shows only 5 pieces of data and uses 5 different colors that in no way relate to that data - he writes "This may well be the worst graphic ever to find its way into print."

This is an excellent book for anyone who needs to present data to an audience.  Business analysts, managers and software developers can all increase their effectiveness by implementing Tufte’s ideas.

Links:
EdwardTufte.com
This book on Amazon

Thursday, May 8, 2008 11:21:44 PM (GMT Daylight Time, UTC+01:00)
# Friday, May 2, 2008

Those of us living in the Detroit area got a real treat last night.

The Tigers 8-4 victory completed a 3-game sweep of the Yankees - their first sweep in The Bronx since 1956.

The Red Wings dominated an injury-riddled Colorado Avalanche 8-2 to sweep the second round of the NHL playoffs.  Johan "Mule" Franzen notched a hat trick (3 goals in one game) and is playing as well as anyone in the playoffs.

Meanwhile the Pistons advanced to the second round of the NBA playoffs with a 100-77 rout of the Philadelphia 76ers.  Just a few days ago, Detroit trailed 2-1 in the series following a one-sided Philadelphia victory.

All three victories completed a victorious series and each occurred on the road. 

Detroit sports fans have had much to cheer about over the years, but I don't recall a day like Thursday, when all 3 of the major professional sports teams had such big victories simultaneously.  (I understand that Detroit once boasted a professional football team but I can't find anyone here who remembers them.)

Friday, May 2, 2008 12:33:41 PM (GMT Daylight Time, UTC+01:00)
# Thursday, April 17, 2008

Today, I was approached by someone with a request that sounded very simple.  She had a large Word document and she wanted to create an Excel spreadsheet in which each cell contained the name of a section in the Word document.  A hyperlink in each cell should open the Word document and navigate the user to the corresponding section.

Years ago, I did something similar using Office 97 or Office 2000, so I knew it was possible.

I opened the Word document and inserted a bookmark at the top of each section.  Inserting bookmarks in Word is pretty straightforward:

  1. Select the first line of the section
  2. From the menu/ribbon, select Insert Bookmark
  3. In the Bookmark dialog, type a name for that bookmark.

 

I became confused when I tried creating the hyperlinks in Excel.  Inserting a hyperlink in Excel hasn't changed much through the versions:

  1. Type some text in a cell
  2. Select that cell
  3. From the menu/ribbon, select Insert | Hyperlink
  4. Find and select the file to which you want to link.

This is where I became confused.  The "Insert Hyperlink" dialog contains a big button labeled "Bookmark".  Naturally I clicked this button to specify the bookmark within the Word document.  Unfortunately, clicking the button displayed an error.  According to Excel, Word documents don't support bookmarks, although my personal experience and the on-line help says that they do.

 

The secret is that you should not click the bookmark button in order to link to a bookmarked location in a Word document.  Rather, you should append the filename with the pound symbol ("#"), followed by the name of the bookmark to which you wish to link.  For example, I wanted to link to a bookmark named "Section1" in a document named "BigWordDoc.docx", so I entered "BigWordDoc.docx#Section1", as shown below.

Apparently, the "Bookmark" button is used for cells and defined names within an Excel document.

  

I'm not sure if Excel's "Insert Hyperlink" dialog has changed in the last few versions, but this strikes me as a flaw in the user interface.  The visual clues don't help me accomplish this task - they actually took me in a different direction.

Here is a working demo of an Excel spreadsheet with links to sections of a Word document: OfficeLinkDemo.zip (17.92 KB)

Thursday, April 17, 2008 9:56:20 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, April 2, 2008
 #
 

A couple years ago, I had a chance to speak at a Day of .Net event in ann arbor, MI.  I enjoyed it so much that I signed up as an attendee at the same event last year.

Day of .Net is a single-day conference focused on Microsoft developer technologies.  It is free and takes place on a Saturday which makes it a lot easier to schedule for working professionals.  The speakers tend to be well-known technologists who live within a few hundred miles of the event.  I've been impressed with the lineup at the events I attended. 

The local flavor of the event also gives attendees a great chance to network with similar professionals in their geographic area. The focus tends to be on technology, rather than on strategy, so these things attract more hard-core developers and fewer CIOs and CTOs.

In the next few weeks, three Day of .Nets (or is it Days of .Net?) are scheduled within three hours of my home.  April 19 is the Central Ohio Day of .Net in Wilmington, OH (between Columbus and Dayton); May 10 is the West Michigan Day of .Net in Grand Rapids, MI; and May 17 is the Cleveland Day of .Net in Cleveland, OH.

Depending on my sons' basketball tournament schedules, I hope to attend two of these.  Click the links below for more information.

Central Ohio Day of .NET   WM Day of .Net May 10, 2008 - I'll be there!   Cleveland Day of .NET

Wednesday, April 2, 2008 12:41:48 PM (GMT Daylight Time, UTC+01:00)
# Tuesday, April 1, 2008
 #
 

Today is the first day of the fourth month, which means you should not believe anything you hear, read or see between now and midnight.

I found a great listing of the greatest April Fools pranks in history, based on cleverness and the number of people duped: http://www.museumofhoaxes.com/hoax/aprilfool/

Tuesday, April 1, 2008 11:05:14 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, March 26, 2008
 #
 

If you haven't yet seen Josh Holmes and Steve Loethen's Internet show Code To Live, I recommend doing so.  Josh and Steve (mostly Josh) travel around the country interviewing people who are passionate about the technology on which they are working.  The video production is sometimes a bit lacking but the viewer gets a feel for the excitement people have for the work they are doing and the interviews often provide brief overviews of new technologies.

You can view this show at www.codetolive.net or http://channel9.msdn.com/shows/code_to_live

Wednesday, March 26, 2008 7:43:24 PM (GMT Standard Time, UTC+00:00)
# Thursday, March 20, 2008
 #
 

The 'Heroes Happen Here' launch was well worth my time.  Not only did we get a chance to see demos of Microsoft's newest products, I also got a chance to meet up with many of the most energetic developers in the midwest.  About 50 of us headed to Greektown after the event for an after-event event.  You can view my photos of the day here.

At the end of the day, everyone walked off with (among other things) a copy of Visual Studio 2008.  I was excited because I had spent most of the day following the Developers Track, which outlined the features of the new Visual Studio.  I'll be installing it this weekend. 

I especially like the fact that I can install VS 2008 and work on applications using older .Net frameworks.  Framework versions 2.0, 3.0 and 3.5 are all available.  This mitigates the risk of upgrading and it means I don't need to install multiple versions of Visual Studio.  I can write code that targest .Net Framework 2.0 but still take advantage of the improvements in the IDE, such as client-side debugging, stylesheet troubleshooting, and built-in Ajax support.

My customer has decided to upgrade to Visual Studio 2008 but defer the decision to upgrade the framework on which we have built our applications.

Here is a list of new features in Visual Studio 2008:  http://msdotnetsupport.blogspot.com/2007/11/22-new-features-of-visual-studio-2008.html
      

Thursday, March 20, 2008 7:15:04 PM (GMT Standard Time, UTC+00:00)