The blog of Eric Sibly; focusing on mountain biking, .NET development for the Desktop, Smartphone and PocketPC.

Wednesday, September 28, 2005

Solution selling...

Earlier this week I had an epiphany, dunno if that is the right word for it but it will do for now, that was initiated by a Solutions Selling course I attended – this would have to be the best course that I have attended over the last couple of years (and it is not even technically focused!) This course really resonated with me, highlighting the areas in which we focus on mistakenly when selling, being the products/services of the selling organization versus the value-add for the customer that these contribute to. It is about repackaging the selling message that will more effectively resonate with the customer, assisting with identifying and solving their problems, all in a collaborative win-win fashion. The technical implementation details come later; most of us technologists are all guilty of thinking through the technical solution too quickly without fully understanding the customers’ issues – we need to be better proponents of Active Listening. Listen more, talk less!

What else did I get out of it? It really demystified the selling process for me, introducing a clear repeatable methodology to follow with a style of selling that I feel comfortable with. So am I about to be turned, do I want to be salesman – hell no! I just figure I can assist these folks from a pre-sales perspective more effectively now that I understand the “process”.

So what book am I reading now, “The New Solution Selling” by Keith M. Eades.

Also, check out this article as it provides a good overview.

Thursday, September 22, 2005

The old MsiExec 2103 error…

Had a problem today performing an installation of an MSI from a scheduler that was failing due to “Error 2103: Could not resolve path for shell folder 26”. What the? That is certainly one very helpful error message! So after a chunk of googling I did manage to find some info, the relevant stuff as follows:

By default, all MSI commands run via MSIEXEC will be attempted to be installed on a “per-user” basis. This means that if Sally uses an MSI application, Fred should also install it to ensure it’s properly installed for him. Instead, you can specify that the package be installed “per computer” so that anyone who uses the application won’t have to go through the motion of installing it again. To that end, the MSIEXEC command can also be garnished with an “ALLUSERS=1” or “ALLUSERS=2” command as seen here:

msiexec /i \\server\share\package.msi ALLUSERS=1

If ALLUSERS is set to 1, the package will be set to run as a per-computer installation. This is only valid if the person performing the MSIEXEC command has administrative privileges on the computer.

If the ALLUSERS property is set to 2, a per-computer installation is attempted. If the user doesn’t have administrative rights, MSIEXEC falls back and then tries to
install the application as the user.

Wednesday, September 21, 2005

Wanted WebApp.csproj.user…

Have you ever wondered where your user settings are kept for a web application when using Visual Studio? For a class library project they are stored in the same directory with the .csproj which is nice and simple. But oh no, this is not the case for a Web Application! As it turns out this file is stored in the %UserProfile%/VsWebCache under a further series of sub directories (MachineName\WebAppName). Thanks to Adam Friedman for pointing me in the right direction.

Poxy proxy...

Had an issue earlier today that Visual Studio was complaining that I did not have .NET Framework 1.1 installed when creating a Web project; I do damn it! Turns out it was related to my proxy settings, must "Bypass proxy server for local addresses". See very helpful link for details.

Monday, September 19, 2005

PDC Top of the Pops...

As a PDC voyeur here are my favourites, ordered by my excitement level whilst also tempering this with their availability:

  • WPF – The promise of really rich interfaces heralds a new era of the good, the bad, and the extremely ugly applications – let’s just hope it is all good. I look forward to applications that provide an immersive user experience where the 2D and 3D worlds meld (where they make sense) that can be leveraged by all developers regardless of whether they live in the managed or unmanaged worlds.
  • Sparkle – The designer tool for building WPF applications, built using WPF and WinFX – proof that Microsoft really believes managed code can be used for building complex rich applications. Have I mentioned how impressed I am by this application? And, will we finally see the convergence of designers and developers as a single development unit? Let’s hope so.
  • WWF – Workflow has been desperately missing as a core foundation of the operating system and I believe that with WWF we will finally see the rise of a single integrated workflow system within the Microsoft environment. The promise of complex application integration driven by business process will be finally realised – I just hope it effectively hooks into the workflow systems from the likes of SAP.
  • WCF – The communications foundation is important as it becomes the one shop stop for communication and inter-application/system integrations. It combines Remoting, Web Services, WSE, Sockets, etc. providing a simple, consistent and configurable interface so more time can once again be spent on building the applications themselves.
  • WPF/E – This is taking WPF and making it available “Everywhere” – well a subset at least – across multiple browsers and devices. Sounds exciting but I have seen little detail as to what exactly this means. It would be fantastic to be able to write similar code, use the same tools, and target generic browsers and rich Windows style applications.
  • VS2005 Team Systems – Finally Visual Studio will be fully integrated with a decent source control system, manage work tasks, enforce unit testing, FxCop, etc. This will be very welcomed in larger team and/or complex software developments. I am really looking forward to this and enforcing appropriate disciplines within the software development process versus expounding its virtues ;-)
  • Windows Vista – Obviously I am excited by a new operating system coming along, that will improve Security and add most of the above features natively. It is further down the list only because I lust the individual components and they are worth of lusting in their own right; plus importantly they are back-ported to Windows XP as well.
  • Office 12Fantastic UI, I think many will upgrade when released for this feature alone. Unfortunately not much else was really detailed so it will be interesting to see what comes out over the next few months – looking very promising.
  • WinFS – The new File System is back and we welcome it with open arms. An extensible schema, meta-data and file storage system – supported by a database-like query capability – cool. This will provide for some fantastic search style capability in the future as well that far exceeds what is available today.
  • C# 3.0 – The new features of implicitly typed local variables, extension methods, lambda expressions and anonymous types, etc. all sound wonderful. The problem is that we have not had C# 2.0 officially released so I can’t help but feel that we are getting a little ahead of ourselves.
  • LINQ – This will provide a means to perform data style queries within .NET that utilises the new features being introduced in C# 3.0; again, it is great that this solves a real world problem it just sounds too far off – we need this stuff now!
  • Atlas – For building whizzier browser based applications, this probably sounds exciting to the browser folks – ew ah! This is basically a Microsoft framework encapsulating existing technologies within the browser, specifically DHTML/AJAX. To me this sounds like an alternative to WPF/E previously mentioned, so why two? Wouldn’t it make more sense to focus on a single standard being WPF/E?

Robert Scoble promised a week of Shock and Awe – I think Microsoft delivered. I feel like a little kid in a candy store ;-)

Thursday, September 15, 2005

It Sparkles...

Now I am drooling – check out this demo video - WOW! Sparkle and WPF rock! I just want to play with this stuff in the worst way :-)

I really do feel we are at the beginning of an awesome new chapter of software development where the UI is only limited by a person’s imagination versus the underlying platform. Where any developer/designer is able to create fantastic user interfaces without a massive development effort in: building the UI bits, creating custom controls, let alone implementing complex animation and 3D. The significant time can now be spent building the actual functionality and we can pass on the design activities to a professional designer who really knows how to make a great looking UI.

In case you didn’t notice I am excited by this stuff – bring it on!

As an aside Sparkle has been fully developed in .NET and C# from the ground up – it is great to see Microsoft really dog-fooding their technology – now we can see that .NET is a serious platform for building serious applications.

WWF Smackdown…

About darn time! This is something that I have ranted about for a few years, that for Workflow to become really useful it needs to be a foundational service within the platform similar to the likes of message queuing (MSMQ). Look at how the different Microsoft products have even had different, non-compatible, workflow features – how confusing has that been for everyone. This just made it hard for application developers and customers to build/have a single workflow engine that everything flowed through. This is all about to change :-)

Windows Workflow Foundation is a new feature of WinFX that forms a platform service for managing/developing workflow.

Microsoft Windows Workflow Foundation (WWF) is an extensible framework for developing workflow solutions on the Windows platform. As part of the upcoming Microsoft WinFX, Windows Workflow Foundation provides both an API and tools for the development and execution of workflow-based applications. Windows Workflow Foundation provides a single, unified model to create end-to-end solutions that span categories of applications, including human workflow and system workflow.


Wednesday, September 14, 2005

Office 12 challenge...

Well it seems at PDC they have been showing of some of the enhancements to the User Interface in Office 12. Wow, wow, wow! What an improvement over the last version!

I was never really sold on the last version of colourising itself to match the Windows theme. It just made the Office menu, task pane, toolbars, etc. stand out like a pair of dogs balls – and meant that Office did not match the rest of the operating system from a general look and feel perspective. It really irks me how Microsoft provides a series of guidelines for the User Interface and then the Office team come along, then ignore and change the standard controls? There is a saying for this sort of thing, “putting lipstick on a pig”.

That is until now! Finally an Office innovation that looks like it will make a real / tangible difference to the user. Well done team!

The Office 12 challenge for Microsoft: I hope (they won’t) make these new ribbon (or whatever they are calling them) controls available to the masses to reuse, both internally and externally. These should now become part of the base operating system, to be used in other Microsoft applications where applicable; for example Acrylic, where there are toolbars splattered all over the show. They should also now become standard controls in WPF for all developers to use, as we would like to take advantage of these controls to provide equally excellent interfaces for our users - imitation is of course the highest form of flattery. This would provide a consistent interface metaphor across the platform regardless of the vendor, which surely is in the best interests of the end users - is it not?

What is LINQ...

LINQ is a codename for "a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations". But what does that mean? This document as authored by Don Box and Anders Hejlsberg describes in relative detail what is LINQ. Basically, with C# 3.0, developers will be able to write rich queries for accessing .NET Types, Database (DLinq) and XML (XLinq) using a consistent C# shorthand – this stuff looks really interesting. When will we see it for real (released); that is the unknown?

Tuesday, September 13, 2005

Microsoft integration options...

There are many options for integrating applications/systems on the Microsoft platform that at times it is difficult to know which to choose and more importantly which is best suited to a particular scenario. This article provides a very good high level summary to aid would-be integrators make the best choice (note that I said “best” not “right” – as we are typically constrained and all options are not always available to us). Choose wisely ;-)

Monday, September 12, 2005

Inane PDC chatter...

Just about every blog, primarily Microsoft related, at the moment is about going to / arriving at PDC. Not interesting content about the technologies at PDC; just the fact that they are about to leave, are at the airport, have arrived in LA, are in a toilet next to a guy also going to PDC, or heard about a friend of their sister in LA who drove past the convention centre and saw a geek going to the PDC! It would be nice if people could stick to the point and not blog the inane stuff – please!

You guessed it, I am just jealous as I am not going to PDC; I will just have to live vicariously through everyone else :-(

Friday, September 09, 2005

An alternative to hollywood...

Not sure how I discovered this, it has been open in my browser for the last couple of days. Have not looked at any of the content so I can not comment on quality. It seems this is a site for independent film distribution, that is free, over the web. Who knows there could be come real gems on this, or a whole lot of crap? Good luck ;-)

Monday, September 05, 2005


One of the issues with working with data on a CE device is the constraints with memory and performance. An area where this problem can really manifest itself is related to data – with respect to moving between application and database. I am not really a fan of DataSet’s on the Server or Desktop, and would go as far to suggest that their “bloatness” has absolutely no place in the mobile world. Seems Microsoft and others agree and with SQL Mobile and .NET Compact Framework 2.0 we have a solution; the SqlCeResultSet:

In previous versions of SQL Server CE, to bind controls to data you had to use a System.Data.DataSet. While a SqlCeDataReader provides better performance than a DataSet, it is a forward-only, non-updateable cursor. In SQL Server Mobile, the SqlCeResultSet provides a combination of functionality: the updateability and scrollability of the DataSet with performance similar to a SqlCeDataReader.

A very nice solution to solving a real technical challenge!

Near death experiences...

A friend of mine attempts to kill himself and I feel partially responsible – NOT!

A comedy of events for young Fabian where everything that could go wrong - does! Sleep was probably the best act of self preservation under the circumstances ;-)

Friday, September 02, 2005

C#/VB.NET syntax comparison...

Stumbled across this today; thought it might be useful to someone or in the future.

Thursday, September 01, 2005

When dogs attack...

My wife was out walking today and was attacked by a dog, ended up getting bitten on the hip – luckily the skin wasn’t broken, but some fairly nasty bruising is starting to come up. She was just walking along when all of a sudden the dog came sprinting out of the gate and leap at her and she was unable to make it stop until a man on the street chased the dog away. She was obviously really distressed and frightened, and when the owner came out to see if all was ok he offered for her to come in for a cup of tea – she naturally declined (yeah right go into the damn dog’s house!).

As it turns out another lady was attacked by the same dog last week, fortunately for her it did not bite her. The local council had been to see the owner and had instructed him to keep the dog locked up – clearly he didn’t listen. So the council man came around and we had to fill in a report, have photos taken of the injury, and the really funny thing was she had to look at dog mug shots to confirm it was the same dog. So anyway the council will be returning to see the owner and “encourage” him to keep his dog locked up.

I like dogs, but I can not understand their owners sometimes; why would you not lock up the dog after the first attack? So what should happen now; should he be fined, should the dog be taken away from the owner or should it be put down? I don’t know what the right answer is, but something clearly needs to be done.

Interesting to read that the Kelpie has a tendency for this type of behaviour, yet they are kept in city homes versus on the farm where they are intended.

With reference to aggressive behaviour, some breeds of dogs are recognised for being more reactive than others, that is they show higher motivation and a greater tendency to become aroused. From the above discussion of aggression in dogs in general, it shouldn't come as any surprise that breeds tending to display these qualities include working breeds which include guard-types such as German Shepherd, Rottweiler and Dobermann, hunting types such as terriers and herding types such as Kelpie, Cattle Dog, Corgi and Collie.

So in the meantime I would suggest bypassing upper Burnham Road, Bardon (Queensland, Australia for those out of towners).