Nashville Parent Magazine Features Childhood Cancer


In the spring of this year, my wife Tiffany contacted the Nashville Parent magazine to try to get them to do something during September (National Childhood Cancer Awareness Month). The editor, Susan Day, got back in touch with her quite some time later, about doing it in November instead and having Tiffany write the feature article. I just got a copy of the magazine yesterday. I will share a link when they put it up on the website.

The cover is a black and white picture of Miranda, taken by Vanderbilt photographer Tim Campbell. The only noticeable color on the cover is a gold ribbon for childhood  cancer and the words “Mama It’s Going to Be All Right” facing childhood cancer (also in gold). The cover stands out, as the Nashville Parent is normally a very colorful magazine. It also stands out since Miranda, in the picture, has wisps of hair on her head, no eyebrows and only two or three eyelashes.

The feature details our saga, also featured on Miranda’s Caring Bridge site if you have a lot of time to read through the journal. There are also sidebars from three parents of cancer kids: Kambryn Lowery, Lily Henseik*, and Chase Donnell* (NOTE: The site with asterisks require registration to access). I have never met Lily, but we have contact with the Lowery’s from time to time, and we last saw Chase on February 28, 2009; he looked great at the time, but a few days later they found the cancer had returned and Chase earned his angel wings on March 10, 2008, less than 2 weeks after the last time we saw him being wheeled around the halls hopeful he was going home soon.

Some may remember Chase, as he gained notoriety as the boy who gave away his wish (you can also see the story on You Tube). Unfortunately, Chase passed away a few days before the fulfillment of his wish (to fix his school’s gym). Eric Yutzy, who covered the story for news channel 5, was so moved by Chase’s story that he campaigned to raise money for the Leukemia & Lymphoma Society and earned their man of the year in 2009. Eric raised more than $50,000, which was enough to have a research grant named in Chase’s honor (this is on the Nashville Predator’s site, who had a special night for Chase (unfortunately after his passing)). You can see pictures of the gym here, which also features the #37 car that ran in the 2008 Sprint cup race in Bristol (here is the full story about the gym dedication on the same site).

Tiffany is in full swing with preparations for next September. She is getting 45 other women together to shave their heads for St Baldricks, hopefully on national television. The number 46 has been chosen as that is the number of children some stats state are diagnosed with cancer every day in the United States. Unfortunately, accurate stats are hard to come by (should not be, but they are). I will post a link to the St Baldricks fundraising page as soon as she can get past the computer gremlins on their site.

Peace and Grace,
Greg

Want the Visual Studio 2010 beta? You can have it


The Visual Studio 2010 beta is now available to the general public, so you now longer need to have an MSDN sub to get a copy. Here are the links (primarily ISO images):

      VISUAL STUDIO 2010 PRODUCTS

There is also a training kit, which you should download to get a head start, as well as WCF and WF samples for .NET 4.0. You should also check out the Visual Studio Developer Center page for Visual Studio 2010.

Visual Studio 2010 and .NET 4.0 are “Go Live”. Per Jeff Beehler’s Blog, this means:

  • We are committed to providing a smooth upgrade path from Beta 2 to the final release (“RTM”) of Visual Studio 2010 and the .NET Framework 4. For Team Foundation Server, this means moving data from Team Foundation Server 2008 to Team Foundation Server 2010 Beta 2 and then eventually to Team Foundation Server 2010 RTM. Most importantly this means source code, work items, tests, builds and the warehouse.
  • We give you permission to use Beta 2 to create applications using runtimes which are “go live.” For example, the .NET Framework 4 is “go live” for beta2 and you can create applications both for internal use and external use. See the license terms for more details, including pre-release notifications and other details for distribution.
  • Our Support team is staffed to help support Beta 2 if you encounter problems. If you plan to use Beta 2 for “go live” please send email to vsgolive@microsoft.com so that we can register you for support.
  • Another option for requesting assistance is to visit MSDN Forums. The MSDN Forums are frequented by Microsoft MVP’s and members of the product group, and are a great place to search for issues submitted by others which might match problems you encounter.
  • You should take adequate measures to back up and protect your data prior to upgrading to Beta 2. You should also have an ongoing data backup and protection plan in place during your use of Beta 2.

Peace and Grace,
Greg

Twitter: @gbworld

Visual Studio 2010 beta 2 released


I just checked the MSDN site and the beta 2 release of Visual Studio 2010 is available on the site now. It also looks like there might be a date for RTM, being March 22, 2010, if the magazines out there have it right (this is from PC Mag). EWeek has even more information.

There will be four SKUs going forward:

Ultimate MSDN – for current full team Suite recipients
Premium MSDN – for those with other Team SKUs
Professional MSDN – Current Visual Studio Professional Users with MSDN
Professional – Non-MSDN versions (Professional and Standard)

peace and grace,
Greg

Twitter: @gbworld
Crazy Cancer Tour: www.crazycancertour.com

“DLL Hell” in .NET


I was looking at the SharePoint Services 3 video cast lately, as I need to get better versed with SharePoint 2007 and WSS 3.0. To date, I am much better versed with earlier SharePoint and some with the new SharePoint tools in Visual Studio 2010. This is really an aside to “DLL Hell”, however.

In one of the videos “Creating and Using Event Handlers in Windows SharePoint Services 3.0”, the assembly is placed in the GAC. It is here I noticed something that reminded me of one form of DLL hell in .NET. Here is the image, so you can see what I viewed:

DLLHell

Since this is the GAC, this is not really DLL Hell in the traditional sense. I will explain with a story.

In the old COM days, we had a developer that created a VB COM component that we installed in MTS (name witheld to protect the “guilty” ;->). One thing he failed to do was set the GUID for the COM component so it would regenerate under the same GUID. As the new version was dragged and dropped into MTS, a new registry entry was created with a new GUID. This worked for a few weeks until a GUID was created that came up later in the search order than the GUID he had previously created. Essentially, the highest GUID is picked and one with a lower number was created. If this does not make sense, GUIDs are not sequential by nature.

The application then failed and I found all the entries for the same COM component and deleted all but the correct GUID. I then showed him how to set the GUID in properties so it would not happen again. That is one form of traditional DLL hell. Other forms came from breaking interfaces, but that is outside of this story.

What I see here is Pattison has created three versions of LitwareFeature1 (a SharePoint feature assembly). Now, this really is not DLL Hell, in the traditional sense, as you will use four part naming in your config file (or Feature.xml, as it is set up here). You can, conceivably, use single point naming in a web.config file and end up with a bit of hell here. It does not work from the GAC, however.

Here is how the feature is named:

<Feature
    Id="32A33E3A-543F-4d69-BC87-4E1BD6EFC0A"
    Title="LitwareFeature1"
    Description="Blah blah blah"
    Scope="Web"
    Hidden="FALSE"
    ReceiverClass="LitwareFeature1.LitwareFeatureReceiver"
    ReceiverAssembly="LitwareFeature1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7ef87442c23fea66"
    xmlns="http://schemas.microsoft.com/sharepoint/"&gt;
<ElementManifests>
    <ElementManifest Location="Elements.xml" />
</ElementManifests>
</Feature>

Notice the receiver assembly. The more likely “DLL Hell” scenario here is naming the incorrect PublicKeyToken and ending up using the wrong version of the assembly.

You can alleviate this hell by keeping a single strongly named key for your organization (or at least for this project) and using it for every compile. This can lead to another form of hell, which is not incrementing the version when you stick out a newer version and having an app dependent on the old version die. If you properly version the assembly, you can end up in a different hell, which is not getting the newer version of the assembly.

In short, if you use the GAC, keep the same strong key and version when necessary. It is useful to have a list of all applications that use a particular assembly and versioning when only one application is ready for a new version of the code. If you use contract first type of development, you can avoid a lot of headaches, as you cement interfaces up front. To be safe, you should also adopt the practice of only adding to interfaces and not changing signatures of methods. This has been a rule since the COM days, so experienced developers are likely to adhere to this “rule” religiously.

Let’s sum up these rules:

  1. Determine contracts first. This not only avoids many of the hells of the changing interface, but also helps getting all teams started at the same time, as each team can write to contract.
  2. If a contract must change, make sure all teams are aware of the changes. Publish them and alert people.
  3. If a signature must change, make sure you add a new overload and keep the old version until every client using the old version is off. Mark the old version as deprecated. If this is a publicly available library, leave the deprecated version in for a few versions to ensure everyone gets off the deprecated version.
  4. Keep a single strong key for a project (whatever that means to you) and possibly only one key for the entire organization. The decision point here is whether or not part of the “business” can be sold off. In a company that does custom software, a single key shared can work. For a company that shrink wraps products, keys per product may be best so you can sell of the product or product line without selling off your key.
  5. Settle on the key for the product early and use it over and over again. Note that Pattison is doing this as a demo, so he ends up having to create multiple versions as he tours and does sessions. For your team, you should not end up with three versions of the same code base with different keys.
  6. When you come up with a new version, rather than a fix, change the version number. This will allow older apps that use four part naming to continue to use the older version even when the new version is put into the GAC.
  7. If it is not a new version, just a fix, keep the same version number. This avoids breakage and allows your apps to take advantage of the bug fixes without changing config files.

Peace and Grace,
Greg

Twitter: @gbworld
Childhood Cancer Site: http://www.crazycancertour.com

Childhood Cancer Non-Awareness?


We are only 5 days into Breast Cancer Awareness Month and a Google News search shows 2,145 articles acknowledging the month. Comparing this to stats for breast cancer (estimated 192,370 new cases and 40,170 estimated deaths – in 2009), this means 1 article for every 89 diagnoses and 1 for every 18 deaths. If you remove the word “month” and search on “breast cancer” alone, there are 18,299 articles indexed thus far (1 per 10 diagnoses or 2 deaths).

Childhood Cancer Awareness Month (September) has passed, with a whopping 89 articles published in our nation’s news. This equates to 1 article for every 150 diagnoses and 1 for every 30 deaths. If we search just “childhood cancer”, there are 393 articles (1 for every 31 diagnoses or 6 deaths).

Admittedly, childhood cancer is less prevalent than breast cancer, but our interest in childhood cancer during September was fairly low. There are more than 4,500 news sources indexed by Google news. If the searches represent unique sources, about 50% have already chimed in about Breast Cancer Awareness month, while less than 2% chimed in about Childhood Cancer Awareness month.

In Nashville, there were 4 mentions of Childhood Cancer Awareness Month amongst all of the media. One of these was a letter to the editor, another in a county only section, amongst the briefs (1 paragraph “article”. One local television station mentioned it twice, but also mentioned Breast Cancer Awareness Month 27 times in the first 5 days of the month (through today). There are currently 64 mentions of breast cancer awareness month total in Nashville.

UPDATE: Just checked Alex’s Lemonade Stand (36 mentions on Google news), St Baldricks (45 mentions), People Against Childhood Cancer (1 mention) and CureSearch (26 mentions). Compare this to Susan G. Komen, which has 2382 mentions. Quite a disparity.

Peace and Grace,
Greg

Twitter: @gbworld
Childhood Cancer Site: http://www.crazycancertour.com