Tuesday, 30 October 2007

Training with Lynda.com

Some months ago I took out a subscription to Lynda.com, a site which offers literally hundreds of training courses, primarily based around design tools from Adobe.

Traditionally the site has centred on training the 'luvvies' with their Apple Macs, which I guess is why so few Microsoft .NET developers I know seem to be aware of it.

I stumbled across the site, which has apparently been going for years, only when a forum discussion highlighted the fact that it was offering the first (and, at the time, the only) training material for Microsoft's Expression Blend. This product (formerly code-named 'Sparkle') is Microsoft's designer-oriented tool for generating XAML files that can then be exported for use in WPF applications written by a developer using Visual Studio 2008. Expression Blend, which is now included in Microsoft's MSDN developer subscription package, offers a particularly neat way of training yourself up in understanding the underlying XAML without having to go the painful way of coding it all from scratch.

Rather cleverly Lynda.com actually offered the Expression Blend training for free, using it as an opportunity to advertise the fact that they had (literally) hundreds of other courses too - all included for a relatively low monthly price that works out at not much more than a tenner a month! At that price it's a complete steal!

With a plethora of excellent in-depth training material for Adobe Photoshop, taking out a premium subscription (which gives you access to download code used in the training material, as well as the streamed video training itself) wasn't too difficult a choice to make, particularly since the video streaming is flawless, fast and just works every time. If only all sites were like this!

Unfortunately, work commitments mean I've had little opportunity to use the site since I first took out my subscription, but I'm using it with a vengeance now, not least because it has some really excellent new material that is more focussed on the .NET developer working with AJAX.

Thanks to a timely Skype conversation tip-off from my friend Mat Guthrie I'm aware that there's some excellent 'best practices' training available for FREE from Yahoo, which should certainly be a necessary pre-req before rushing to code with libraries like Prototype and Script.aculo.us or Silverlight, but they are very much of the 'listen and learn' variety, whereas I'm definitely from the school of thought that says it's far better to 'learn by doing'.

What I'd nearly missed, in the deluge of Adobe and Dreamweaver-oriented material at Lynda.com, is the fact they have XHMTL, CSS, JavaScript, AJAX, and even some Microsoft-specific training in there too, all included in the one low, subscription price.

The site's CSS for Designers course (7.5 hours) from Andy Clarke and Molly E. Holzschlag has given me lots of ideas for the upcoming redesign of my new company web site. For a more formal approach to the technical aspects of CSS the site's course on CSS Web Site Design by Eric Meyer is the best material I've seen on the subject (and that includes way-too-many books I've purchased written by the same presenter).

The company also have training courses on all the Office 2007 products (including Visio), such that the only problem I have, even with taking a significant period of 'time out' from taking on new client work, is finding the hours in the day to use all the material they make available for frankly what is not so much a bargain price as a complete steal!

With the need for .NET developers to be much more proficient and up-to-speed on AJAX and Silverlight it's time for many of us to take a JavaScript refresher, and the site's JavaScript Essentials (2007) (7 hours) by Dori Smith is an excellent 'Back to basics' course if, like me, it's several years since you really did some JavaScript programming.

So, if you haven't checked Lynda.com out yet, now would be a good time to do so. All that's missing is the Silverlight training, and I suspect even that's probably on its way as I get emails detailing two or three new courses each and ever week!

Yesterday's Useful Links

I have so many links that I don't want to lose to post (information overload) so I'm going to have to dedicate a single post to them tomorrow - I don't have the time right now to post them because lunch is nearly over. Check back tomorrow for the usual daily link listing!

Friday, 26 October 2007

Visual Studio 2008 Beta 2 VPC Expires November 1st!!!!

I am way behind on my blogging (too much 'learning' to do!) but thought this was important enough to post quickly about....

It seems the Virtual PC editions of Visual Studio 2008 Beta 2 expire prematurely on November 1st. You can find the details here. Bottom line: They're working on getting new VPC images ready so we can all go through the pain of downloading more than 10GB data all over again (presumably mere days before the surely-long-overdue-by-now Release Candidate becomes available).

This sort of problem seems to be almost mandatory with Microsoft software. I remember the time it bit me most was with a new release of Office. I had an important presentation to give a client on a Monday morning and had foolishly used the new features in a beta release of Office which had gone on sale but which hadn't been made available to MSDN subscribers. The advertised expiry date of the beta arrived 2 months early, and several days before the RTM'ed software was actually made available for download on MSDN.

Luckily PC World are open on Sundays and the software HAD gone on sale. But it was an expensive lesson to learn about how MSDN subscribers get treated and Microsoft's quality control on expiry dates!

At least this time people have been told BEFORE they lose all their hard-written data (at least if they monitor the blogs!)

UPDATE Sunday, 28th October 2007: You can use an existing Windows 2003 Server license key to update the evaluation version and avoid losing all your data. Unfortunately the update process takes a couple of hours because you have to effectively partially reinstall the base OS. The details of this 'workaround' can be found here.

Recently Discovered Useful Links

ASP.NET: Get Rid of Regular buttons, Use Link buttons - Ryan Ternier makes a convincing argument for abandoning use of the regular ASP.NET button and using Link buttons (with some nice CSS) instead!

ASP.NET: Long Delay on First Request to an ASP.NET 2.0 Application - Seems there's a nasty bug in the ASP.NET 2.0 code. There's no HotFix yet, but The Striped Cat has all the details in the meantime.

ASP.NET: Understanding what PageRegisterRequiresPostBack Does - a good technical article on why this is needed and what it does. Essential reading if you're struggling to understand proper and correct use of ViewState.

ASP.NET: Scott Guthrie's latest links for ASP.NET, Visual Studio, AJAX, Silverlight and IIS 7 - Saves me having to type in another half-dozen essential links. Guthrie's the General Manager for all things ASP.NET so if you're not checking his blog on a daily basis you should be! Lots of good stuff in his latest link listing.

Data Access: Getting Started with the ADO.NET Entity Framework - if you're as confused as I am by the differences between the upcoming ADO.NET Entity Framework (so is it 'LINQ-to-Entities' or is it 'The ADO.NET Entity Framework') and LINQ itself these new 'Getting started' samples may help. Then again they may not!

Expression: Sign up for the Microsoft Expression newsletter - You can do so here, although since the confirmation screen says this will start in September 2007 then either this link has been around a long time or it took them longer than expected to launch!

.NET Utilities: Creating Zip Archives in .NET (without an external library like SharpZipLib) - It seems not everyone's happy with the (L)GPL license that comes with SharpZipLib. Jon Galloway looks at the options.

Powershell: Windows Powershell Cookbook - I haven't dug into Powershell yet, but when I do there are a ton of books covering it out there. This is a review of the O'Reilly 'Cookbook' which seems to think this is the book to get.

Security: Digital Identity for .NET Applications - A Technology Overview - David Chappell has updated his August 2007 MSDN article with information for .NET developers who have to work with identity (that'll be all of us then!)

Security: XSS Detect - public beta of a new Static Analysis plug-in tool for Visual Studio 2005 - Barry Dorans talks about the public beta and has the links for Microsoft's new Cross Site Scripting Detection tool.

Silverlight: Web Analytics for Silverlight - there's a ton of stuff on Silverlight on so many blogs, and I haven't dug into it yet, but this struck me as a link I'd want to refer to at some point in the future if I wanted to avoid some pain.

VS2008: title="link to Video demonstrating new CSS features in Visual Studio 2008">CSS Support in Visual Studio 2008 - Channel 9 video (16 minutes) giving nice overview of the new CSS functionality in Visual Studio 2008 from Daniel Moth.

VSTS 'Rosario': Visual Studio Team System Code Name 'Rosario' August CTP - Visual Studio 'Orcas' (aka 2008) isn't out of beta yet and already there's public CTP's of the NEXT version??!! Enough already! When do we get to sleep (or am I missing something important here)?

Windows Server 2008: Are you ready for Windows Server 2008? - If not, the Microsoft on ISVs site has links to a free pdf book and some elearning courses.

XBox: XBox 360 HD-DVD Drive Movie-Specific Known Issues - not really work-related but I read so many complaints about problems with different movies on the XBox 360 HD-DVD add-on that discovering this blog was a bit of a God-send. Be sure to follow the referenced link that gives an overview of problem diagnosis.

Thursday, 25 October 2007

Sandcastle September 2007 CTP Installation

Sandcastle is a great product for automatically generating documentation from .NET source code XML comments. Unfortunately, and somewhat ironically given that it's a product aimed at improving the quality of developer documentation, the documentation and instructions for using and installing this free offering are somewhat confusing and unclear.

As a result it seems many developers are ignoring it ("Life's too short"), a situation not helped by the fact that although Microsoft are using Sandcastle internally to produce MSDN-like documentation, it's been in CTP (Community Technology Preview) status rather than RTM (Release to Manufacturing ie ready for prime time) status
for what seems an eternity now (certainly more than a year!) It also lacks a nice user-friendly GUI (graphical user interface) out of the box, although thankfully several 'open source' options are available.

Sandcastle installation screenshot

Having used Sandcastle I really rate it, and it's useful not just for automating developer documentation but also assisting with code reviews. So here's the missing guide on how to install it, and most importantly the pre-reqs it needs and the order they should be installed in, so that you can quickly get up-and-running with writing code that generates appropriate documentation automatically

  1. Download and install the HTML Help 1.4 SDK. Annoyingly when you actually run the downloaded install program it identifies itself as version 1.3 but you can just ignore this Microsoft glitch.

  2. Download and install the Visual Studio 2005 SDK v4.0 (February 2007). This is needed to install HTML Help version 2.0. It also installs an early version of Sandcastle that we will replace. Some blogs talk about the need to uninstall this early version of Sandcastle before proceeding using the Add/Remove Programs feature of the Windows Control Panel, but I could find no such entry to be removed and had no problems installing the newer version of Sandcastle after this step had been completed.

  3. Download and install the Sandcastle September 2007 CTP itself. Remember that this only has a command line interface so isn't ideal for those of us that hate hacking our way around with the DOS command prompt.

  4. Download and install Sandcastle Help File Builder. Two downloads from this link are needed - the main installation itself and the Presentation File fixes which have to be applied on top of Sandcastle itself (instructions are given in the associated readme file that is downloaded with the files. Things get messy very quickly and you may choose to bypass this step but if you follow the instructions you will have help files that are better formatted than those you get by default because of poor coding in Sandcastle itself).

  5. Before running Sandcastle Help File Builder select Build Reflection Data from the Start menu using Start.Programs.Sandcastle Help File Builder. This is required before first use because the September CTP of Sandcastle does not contain any reflection data for the .NET framework. This step can take 30 minutes or more to run!

And (finally!) that's it. You need to allow at least half an hour for the Visual Studio 2005 SDK to install itself (and that MUST be done BEFORE you attempt installation of Sandcastle itself) and another half hour for the reflection data build script to run, but otherwise it's a pretty speedy process.

Sandcastle Help File Builder screenshot

Once you've installed everything you need to actually make sure you add the appropriate XML tags to your code. These are fully documented in the MSDN library entry for XML Comment Tags. The interface to actually generate the HTML help files from these comments is pretty straightforward, but the following quick walk through will hopefully get you started:

  1. Make sure your Visual Studio project has been enabled for Sandcastle. Select the project in Solution Explorer, right click to choose Properties and then select the Build tab on the resulting display. Make sure the XML Documentation File checkbox is ticked and that the name of the resulting XML file is specified in the section labelled Output.

  2. Start Sandcastle Help File Builder and choose New Project from Visual Studio Project. Select the solution file you wish to document and the assemblies which will form the output for the project will appear in the Assemblies to Document window. Alternatively you can select New Project within Sandcastle Help File Builder and then just add the individual assemblies you want to document.

  3. Individual namespaces can be selected or de-selected by clicking the Namespaces button on the main Sandcastle Help File Builder screen and then checking or unchecking the appropriate namespace.

  4. References to external dlls used by the project or assemblies must be added using the Build button of the property marked Dependencies. If you are using Enterprise Library you will need to add the appropriate dlls using the File Dependency button and browsing to the appropriate dlls. Note that the displayed Dependency dialogue has a GAC button which can be used to select any dlls that are resident in the GAC (Global Assembly Cache).

  5. Set other project properties as appropriate. For example, make sure you set the correct Framework Version, HtmlHelp1x if you want a .chm file, set the Help Title and HtmlHelpName appropriately and also the Language and the CSharp property to CSharp to exclude usage samples in languages other than C#

I'll be putting together a Step-by-step PDF document showing the whole installation process with screenshots some time over the next few days, but in the meantime I hope the above helps get you started with Sandcastle. It really IS worth spending the time on installing it.

Yesterday's Useful Links

CSS: BluePrintCSS 101 - Article on an interesting looking framework for CSS development.

C# 3.0: Deep Dive on Extension Methods - title says it all really: covers one of the new features in C# 3.0 in some depth (discovered via the C# Developer Centre, which I really should keep more of an eye on!)

LINQ/IIS7: Using LINQ with Microsoft.Web.Administration - simple code to easily work with IIS 7 using Microsoft LINQ.

.NET Utilities: UberUtils part 3: Strings - nice looking library of string utilities. Be sure to also follow the links on that blog to Parts 1 and 2 which both cover Cryptography.

Process: One year of SCRUM - Lessons Learnt - first in what looks like it will be an interesting series on lessons learnt after using SCRUM methodology for the best part of a year.

Silverlight: Silverlight Addict - yet another new Silverlight-oriented web site. Is there really that much work going on in this area (I reckon 1.1 - which is where things start to get interesting - is the best part of a year away, but I guess 1.0 is a great way to start getting into WPF) or is Silverlight just yet another 'flavour of the month' with the Web 2.0 luvvies?

Silverlight: How to Check if Silverlight is installed - hard to find info just in case you ARE writing Silverlight apps.

VISTA: Windows Vista Experience Guidelines - now that Vista really is being used in the mainstream a timely reminder that there are some guidelines out there that we developers should be following in the new (oh look! blue screens of death are back!) world of Vista.

Wednesday, 24 October 2007

Are you sitting comfortably?....

.. I am - thanks to the purchase of a new Aeron office chair.

The Aeron really is the Rolls Royce of office chairs - the sort of chair that if you need to ask what the price is you probably can't afford it!

Old overpriced, poorly made chair vs shiny new, but equally over-priced Aeron chair

A few years ago I decided to treat myself to an ergonomically designed chair, and went to an expensive specialist ergonomically designed office store behind Oxford Street to get advice. After an hour long indoctrination exercise, booked by appointment, I'd chosen my chair - a Plus 562 from a Swedish company called Hoganasmobler (with some funny accents over some of the characters!).

From memory, it cost not far off £1000 - presumably the cost of having a one hour 'consulting' session before purchasing, and to help cover the high rental charges of a large (but empty of customers) store in an upmarket area of town.

Alas by the time the wretched thing was delivered I couldn't remember how best to set it up, other than remembering that my upper legs needed to naturally sit parallel to the ground when my feet were flat firmly on the ground.

The flimsy leaflet that came with the chair wasn't much help in working out how to best set it up, and the chair was extremely uncomfortable to sit in - so much so that when I received a VAT inspection visit the inspector spent barely 5 seconds in it before jumping out and complaining 'I can't sit in that'. Heh, maybe my experiences with the chair have not all been bad, after all ;-))

Earlier this year I was suffering back pain which meant that in my down time
at home the last place I wanted to be was in my office doing stuff on the PC. I assumed this was a problem with my chair at work, but when I went to work in Ireland the problems miraculously went away - until, typically, the Sunday afternoons when I returned to the UK and spent the Sunday morning in my home office typing up emails and printing out invoices. Clearly it was the specially designed ergonomic chair that was the problem!

To add insult to injury the fabric on the main seat and both arms (I don't even use the arms!) quickly wore away, exposing nasty yellowy foam - I'd expected more from an office chair costing many hundreds of pounds. I guess the salesperson just saw me coming!

With several weeks of studying/working from home ahead I decided I needed to do something about my office furniture and previous experience with an Aeron chair at Ford Motor Company, together with recommendations from colleagues pointed to this being what was required.

Luckily in London, or at least within the M25, there is a service called Fast Aeron that will deliver the chair at a designated time and date within 48 hours, and set the chair up for you as well as instructing you in how to adjust and use it. Alas the main reason for using them (weekend deliveries) went sour (they accept the appointment, but then phone you to say they can't do those dates), but other than that the experience was very positive - as it should be given the exorbitant asking price. Don't get me wrong it's a great chair, but the cost of producing the chair bear no relation to the asking price. When you've got a niche, reputable product I guess you can get away with charging the earth.

So far I'm loving the chair, although time will tell how long the fabric on this one will last - the guarantee period is only 3 years so I'm nervous as to whether this will go the same way as its predecessor with regard to normal wear and tear. But, touch wood, using it's a pleasure compared to the painful chair I used to have to sit in.

Yesterday's Useful Links

Concurrency and the Impact on Reusable Libraries (aka 'The Lock Cookbook') by Joe Duffy (found via Mike Taulty's blog).

MIX UK Conference Sessions - videos from the technical conference in London which I attended a few weeks ago.

Project Codename 'Astoria' - Microsoft takes a REST - information on Microsoft's upcoming product to expose data as a data service that can be consumed by web clients (a web data access layer to your database!)

New LINQ to SQL labs from InnerWorkings - training labs (relatively cheap to purchase) from InnerWorkings on the new LINQ to SQL functionality coming with .NET 3.5 and Visual Studio 2008.

Tuesday, 23 October 2007

The Importance of Customer Service

Customer Service has been on my mind a lot lately. Not least because I've really been suffering from atrocious customer service over the last couple of days trying to get three basic things sorted out

  • An upgrade to Community Server installed

  • A Microsoft Certification exam booked

  • A watch strap repaired

In all three cases I've wasted far too much time trying to spend money with organisations that seem to have no concept of what customer service means.

Let's start with the first item on my list. Since I am currently taking a few weeks out to get to grips with some new Microsoft technologies (in parallel with updating my Microsoft .NET certifications) it seemed a good time to get my official company web site at irascian.com up to date, at least in the blogging area which is important because it appears on the main home page of the web site.

I think the fact that you're reading this post on a newly created free blog rather than the company web site tells you how quickly things unravelled when I attempted to update the site.

Community Server, the software on which the site is based, is a complex piece of code, and for some reason the blogging component wouldn't accept anything other than very short entries for new blog posts, giving a meaningless "There has been an unexpected problem. Please contact the site owner" screen whenever I tried to post (I AM the owner, dammit!)

Behind the scenes, via special 'Admin' functionality, all problems are supposed to be written to an error log which I can view using a 'Dashboard' web front-end that the software provides. The problem is the error log doesn't show any problems for the specific times I have tried to post new information and had the code fail on me.

Since the software was updated to a new-look 2007 version (along with three updates they've issued since first launched - uho!) and I'd paid up-front for 12 months of upgrades I figured I'd just upgrade the software to the 2007 version, re-customise it and start from scratch, rather than spend hours trying to find out why the wretched software was suddenly proving to be unreliable, where it had been fine before. Time-consuming but easy, or so I naively thought.

The software is written and sold by Telligent and they have an automated email system to quote for an upgrade. Since it's now 18 months since I purchased the software plus upgrades license I found I had to buy an upgrade license. But their online system doesn't show the 18 month old version I currently have so can't sell me an upgrade. It tells me it can email me the cost of an upgrade. More than a week later I'm still waiting for that email!

With no response from the email system I tried emailing the company direct. You can guess what happened! No response. End result: a very dissatisfied customer who has decided to spend no more money with the company, despite the time-consuming pain it will put him through designing a new company web site from scratch. Way to go Telligent!

My chasing up of Microsoft certification has opened up a whole new can of worms, which is the nightmare that is the second bullet-point on my list. The Microsoft certification exams are expensive at over £100 a throw when VAT is added into the mix, but there is currently a promotion on called Second Pass, which runs through to the end of January next year, and enables you to retake an exam free of charge if you fail.

I've never failed an exam yet, but this seemed an inducement to take time out and get on and take the exams, offering free insurance if I pre-registered for this 'Second Pass' offer before booking any exams.

There are various 'self-paced' training kits for these certification exams but I chose Microsoft Press over the other companies because they included a 15% exam discount voucher, included in the form of a scratch card, which is valid until 2011 and significantly reduces the cost of the training kit when compared with rival publishers.

On Friday I tried to book my first exam online and hit two problems.

  1. You can only use one promotion so the reward for purchasing a Microsoft Training Kit is that you can't re-take an exam free of charge. In effect if you choose the re-take option you are paying an increased 15% charge for the exam itself if you were stupid enough to buy the Microsoft Press training kit

  2. When I decided I'd rather save cash than take out the insurance cost of a free re-take I found I couldn't use my voucher because 'it is invalid or has already been used'. This is a voucher number I'd unscratched mere seconds before attempting to book the exam

Prometric who run the Microsoft training centres responded promptly to my queries on this. Microsoft impose the 'only one promotion' rules not them, they write evasively. They are also the people I need to contact about why my voucher number is not usable. Completely ignoring the fact that I'm booking an exam in the UK they advise that I can call a 'toll free number' which of course is only available in the USA. So I have a choice - ignore the 15% discount Microsoft falsely advertised, or run up international phone charges trying to get somebody in Microsoft to explain why a newly purchased book has a voucher that can't be used. Any bets as to whether the costs of calls to clueless individuals on help lines will end up costing more than the 15% discount promised? I've tried approaching those who work in certification via their blogs but needless to say comments are just ignored and I've had no response, even though I've had the satisfaction of posting to warn others that offers are not what they seem!

I won't bore you with the watch details, except to say that three trips into Oxford Street (apparently Seiko can't be telephoned at weekends or over two hour lunch breaks to find out likely costs) eventually culminated in the news that a strap repair for a watch that originally cost £400 will cost close to £150. Needless to say I now walk around without a watch on my arm, and when I do get around to buying a cheap alternative it won't be from H.Samuel jewellers and it won't bear the Seiko name.