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

Wednesday, October 29, 2008

PDC2008 - Day 2...

An improvement over Day 1. The Keynote was much more about the UX today. It kicked off with Windows 7 which was much more incremental versus radical in terms of change - possibly a good thing. The main UI change demonstrated was around the Start/Task bar and how that operates - looks good. Will it be the compelling reason for everyone to upgrade, probably not. They demonstrated the touch capability, first showing how non-touch aware application were able to function and secondly an application designed to take advantage of the platform. Will it be enough to warrant an upgrade, maybe, I think I want it!

The development platform changes look interesting; Visual Studio 2010 is being rewritten in WPF and looks to offer some really cool extensibility. (As an aside the C# compiler is also being rewritten in .NET so that it can be more extensible). Further enhancements to WPF include the Ribbon, DataGrid, Calendar and DateTimePicker (about time). So really impressive WPF applications were demonstrated.

Live Services (which builds on Azure) includes stuff like the Mesh, Contacts, etc. will have an API exposed which looks to offer some interesting possibilities. Some of the Office 14 applications were demonstrated which leverage these services; interesting to note that their also appears to be Web Versions of the Office applications.

The sessions I attended today were:

  • PC24 - Windows 7 Desktop: not too bad, a bit more detail than the keynote.
  • PC46 - WPF roadmap: absolutely terrible session - the presenters sucked. The content was more looking at the past and current versus future roadmap.
  • ES02 - Oslo the language: good presentation skills from Don Box; although I am not sure I fully get Oslo yet?!?

Tuesday, October 28, 2008

PDC2008 - Day 1...

I went to an Expression session where the presenter said "first impressions count". If I were to apply that to Day 1 I would say Microsoft missed the mark.

The Keynote this morning by Ray Ozzie just missed the mark completely - it was the opportunity to wow the crowd and set the tone for the week. He was a pretty good presenter but seemed to lack emotion and enthusiasm which was needed to help sell the vision for Microsoft Azure - the OS for the cloud. I think the platform/OS sounds promising; however, a services based OS with no UI is difficult to wow and that is what today needed to set the tone for the week. The demos were weak and the additional presentations added little.

Tomorrow they are set to announce Windows 7 and UX - that had better be something else to make up for today.

Also, I do hope they have something for Windows Mobile 7 as there were iPhones galore amongst the attendees. Microsoft are going to get smashed in the mobile space if they don't do something quick smart - Windows Mobile is old, stale and boring. I asked the Windows Mobile team why I should not buy an iPhone and the response was pretty weak. Something along the lines of Windows Mobile has a more open development platform and there are more devices. When quizzed about Mobile 7 it was a big no comment. Zzzzz.

The sessions I attended today were (not going to cover in any detail as I am sure there a heaps of other blogs that will, and most sessions have been recorded anyway):

  • ES16 - A lap around cloud services part 1: not good; less information than the keynote.
  • PC47 - Microsoft Expression Blend tips and tricks: ok, nothing startling.
  • TL16 - The future of c#: awesome, Anders is a great speaker. The theme for C# 4.0 is the melding of Dynamic Programming - new keyword "dynamic".
  • PC21 - ASP.NET MVC: not bad content, a good presenter.
  • BB15 - SQL Server Database to data platform: awesome content and speaker - very interesting stuff.

Monday, October 27, 2008

The $10 fridge...

This is not the worst hotel I have stayed in by any stretch – but it is still a pretty crappy rundown hotel. Anyway, when I stay at a hotel I like to have my own cereal so I keep the milk and other drinks in the fridge ensuring they remain nice and cold. So when I arrive I open the fridge cavity door and am greeted with:

Thank you for choosing to stay at the Marriott. The in-room cooler is currently out of service. We would be pleased to offer a refrigerator for your convenience. Simply touch "0" and our At Your Service team will have one delivered to your room. Based on availability. A $10.00 charge applies for the length of your stay.

So I am clearly delusional as I had always thought that a hotel room had a standard set of amenities, such as a bed, television, shower, toilet and fridge. Clearly I am mistaken; thankfully the remainder of the items in my list have remained. PDC08 049

I just love how they apologise and admit the fridge is out of service. So instead of fixing and returning to the room they rip it out and offer a new fridge only if you are willing to pay a further $10. Should they not have offered my room rate at $10 less to start with given the lack of fridge?

Anyway, I got the stupid $10 fridge – some dude just wheels it in and dumps it on the floor - classy :-) 

American taxi-head...

What is up with taxis in the US. We jump in a cab at the airport, travel to the hotel and hand over a credit card to pay – I would consider this standard practice. We are then informed that because we had not indicated we would pay using a CC when we got in that he could not accept it; so we were then forced to pay cash?!? There was no reason given and certainly no flexibility shown by the driver in helping tourists – what a w*****! So next time you are in the US and want a cab remember to declare your payment method before getting in – dumb!

Friday, October 12, 2007

Stock Icons for WPF...

A link to code that allows access to the stock icons from WPF.

Thursday, September 06, 2007

WPF vs Windows Forms...

I saw this post where some dude postulated on WPF vs. Windows Forms, which almost coincided directly with a conversation I had yesterday with an esteemed colleague pretty much discussing this very topic.

My take on this is as follows:

Make Obsolete - Windows Forms has reached the end of its useful life from a Microsoft investment perspective, they should continue to support through the next .NET release, then deprecate (decorate with the ObsoleteAttribute), and finally remove altogether. Support should continue for some time on those versions for those who continue to have applications which need this functionality – they can exist side-by-side with latter versions of the .NET runtime. Reason to remove is two-fold: shows intent and reduces bloat.

Provide Tools – The tools story around WPF needs to improve, a lot, and fast. These tools, Cider and Expression, need to be out there yesterday, and totally free. Microsoft should look to encourage adoption of the platform and stop looking to try and make money off these tools. There more people who use the tools, the more applications that are created, the greater the demand for the platform – ergo more sales of the OS. Whilst on the subject of the tools, why don’t Microsoft just have a single version of Visual Studio that is free to everyone – it is the hobbyist developers that often create the most ??? applications.

Dog Food It – Microsoft need to demonstrate that they are serious about WPF and the .NET platform and start to deliver their own applications on the platform (other than Expression). By not doing this they are sending a confusing message in which they see the platform as not being good enough for their own use, and if they don’t fully trust should I? All these Live applications, such as Messenger, Writer, Photos; what about NotePad and Calculator, etc – these should all be WPF apps demonstrating the awesome power of the platform.

Monday, July 16, 2007

Partial Methods

Finally Partial Methods have been added that complement Partial Classes; which in turn makes Partial Classes much more interesting and a hell of a lot more flexible.

A major challenge with Partial Classes previously as I saw it was where code was generated there was then no flexible opt-in means to hook in additional user code that the generated code would initiate, other than providing virtual or protected methods and subclassing which all just adds another layer of redundancy (and comes with a performance hit).

A Partial Method provides similar functionality in that a method interface/template is created and optionally the corresponding implementation can be added within the same class. Where it is not added the compiler is smart enough to ignore – zero performance overhead – nice!

There are some limitations and rules - see the first link for a decent run through.

Wednesday, May 02, 2007

Merida 24hr Race

On the weekend of April 21/22 Fabian and I once again did the Merida 24hr Race at the Kooralbyn Resort; again it was a well run event that was largely a lot of fun.

We (Ange, boys and me) arrived on Friday just after lunch to give us the opportunity to set up camp the night before to make the morning before race start a bit easy than last year. We checked into our room at the resort, it was ok although the place is starting to look and feel really tired. We then went down to the track and set up our tent, keeping all our gear in the car as you are not allowed to camp overnight except on the night of the race proper. At around 4pm-ish we went over to the resort facilities near race start/finish just before one of the worst storms I have ever seen hit. Over the next 30 odd minutes we had some brutal winds, thunder and lightning, torrential rain, and hail stones about half the size of golf balls. The amount of water that fell in such a short period of time was unbelievable. Once it stopped I went over to check out the tent to make sure it was alright, only to discover that a new river had been created and was flowing quite happily past and through the back end of the tent. It ended up collapsing the back end, breaking one of the poles and leaving us with a couple of inches of water down one end. The next hour of so was then spent cleaning out, fixing and re-setting the tent before we headed off to dinner and sleep.

The next morning was magnificent sunshine but brutally humid because of the previous days storm. We finished unpacking the car and setting up camp before race start. Even though I had kept my fluids up I ended up being pretty dehydrated with a head ache that lasted the remainder of the day regardless of the number of drinks and Panadol I consumed. We started off doing two laps a piece, and after 3 sets I needed to rest as I was exhausted and the head ache would not stop – needed to have a sleep to try and recover. So at 12:30am I went to sleep whilst Fabian went out and did his next two. When he got back he tried to wake me for my turn but I was out to it and not ready to go again, so he choose to sleep as well. He got up at 5:00am to do another couple, at which point I was up minus the headache to start circulating again. After my next two laps I was feeling better but with the heat coming and still feeling pretty exhausted we switched to single laps. This was a good move as I found my next two single laps the most enjoyable as the timing was such I could go quite hard and it gave me enough time to recover before the next.

In the end we completed 24 laps, with twelve each, and came a respectable 8th in the 2 Person Open category – we were pretty happy with that result.

In summary, here are my thoughts of the race. The track was largely the same length as the previous year, although the changes resulted in more climbing and more challenging downhill section towards the end which resulted in lap times around ten minutes longer than last year. The extra climbing was ok, the downhill just after was not rewarding at all – it was very rocky with nasty off-camber switchbacks – it would have been much better if it was a much faster more flowing ride back into camp. There was also this silly little section added to the start across a grassy area that didn’t really fit into the feel of the rest of the track that they should look to get rid off for next time.

The race for me was reasonably uneventful, in that I had a couple of minor tumbles resulting in a few little bruises and scrapes. In fact it was Caleb who had the worst injury of the family after running into a pole playing tag. Apparently, he hit it and flew backwards onto the ground and amazingly did not cry – he is one tough little bugger. Rumours are circulating it was because I hit him – it’s not true :-)

Finally, thanks again for Ange and the boys for being there and supporting me through the highs and lows - cheers guys!

Monday, August 28, 2006

The unknown World Champions...

Question: In what recent World Championship did Australia men finish 1st, 3rd, 5th and 6th – that is four in the top 6.

Answer: The 2006 UCI World Mountain Bike Championships – Elite Downhill

So how come we read so little of this in the mainstream press; how many other sports does Australia compete in which they dominate to such a level? So why is there no coverage in the papers or on television, why is not more money being invested in a sport where there is obvious success? For goodness sake Australia invested in and sent a competitor to the winter Olympic to do luge – what the – this is not even a sport that anyone can participate in locally – so why?

Sam Hill and Nathan Rennie should be household names for their achievements!

Let’s also see how Australia/NZ went in other categories from a top 10 perspective at the event:

Junior Women Downhill – Tracey Hannah (Aus) 1st.
Junior Men Downhill – NZ 1st and 2nd, Aus 5th, 7th and 9th.
Elite Women Downhill – NZ 7th and 9th.

Update: SBS will show highlights on Sunday, September 10 at 11am.

Thursday, August 03, 2006

12hr MTB race...

Well, this past weekend was the “RACE FACE 12 HOUR MOUNTAIN BIKE TEAM CHALLENGE” – that is quite the mouthful! Anyway, it was a 12hr MTB endurance race ran out at Kooralbyn Resort, the same venue as the recently completed 24hr race. Again, Fabian and I teamed up and entered as a pair.

The previous day’s rain had dampened the track, but we arrived to a perfect morning of sunshine which is what we had all day, could not have asked for more. The track was a bit tacky for the first few laps but dried up pretty quickly apart from one large muddy bog in a darkened corner. The track was fairly similar to last time except some additional climbing was added to the end after the switchbacks section so the final stage of the lap got a bit harder before the fun downhill run into the bridge setting up the start/finish straight.

We hooked up with the boys from Ashgrove Cycles again, this time it was Hayden and Andy in the two man category as well. They were going for the win, and were leading the category until about the 9th hour when they both pretty much ran out of gas. They ended up finishing 3rd, which I guess is still a pretty good effort, although they were a little disappointed.



The race got away right on time at 8am with a ride start versus the standard run to your bike affair. This caused some confusion as a number of us had expected the run and had left our bikes along the start/finish straight and had to go back and collect them. The start was fairly uneventful and we all got away ok. Although, I did hear some dude broke his chain within the first few hundred metres – bummer.



I did the first two laps this time round, a 39:10 and 40.08, reasonable time and was feeling pretty good when I came in. Then I chilled out and ate some food whilst Fabian did his set, 40:17 and 41:21.



Next up, I did another two laps, a 40:29 and 42:08; started feeling it on the last lap from probably going out a little hard on the first. Fabian machined out his next two laps, a 41:14 and 42:58.



Up again. I was feeling really good and set off with the intentions of doing a really good lap, it felt fast and was expecting to be rewarded with a good time, it was a 42:37 – I was really gutted – it really messed with my head and the next lap just sucked, a 47:16. Fabian went out and did his next two, 43:37 and 44:36 – and had some brake problems that he had to fix before his final set in the dark.



The next two were going to be the final two laps, with the last in the dark as the sun was starting to go down. Started out really well and was going along comfortably until I got to that large muddy bog, and I thought I would try the outside line, versus the inside I had done successfully every other time. Well, as luck would have it, the bike slipped out from under me and I went down right into the muddy mess. The only bonus was no one was there to see it and laugh at me – phew! I was now covered in thick mud all down the left hand side, and my glove and grip were super slippery and holding on with that hand became a challenge for the remainder of the lap. I completed the lap a respectable 47:02 considering the unexpected stop. I then stopped on the way back out down the start straight to change gloves and clean the grip to regain some control. It was now dark and it was lights on, I was now starting to feel it in the legs and I slowly crawled around the lap, an almost laughable 55:15. Fabian completed his last two in the dark, with a solid 45:45 and 49:03.



So we completed a respectable 16 laps in total which was exactly what we had planned prior to the race so that was pleasing, and we can 11th in the two person category out of 19 which we thought was pretty good. So overall we came 55th out of 104 starters/teams – which again we were happy with as that meant we beat a bunch of 3 and 4 person teams. Yeah us!

Finally, I would like to thank Two Wheel Promotions for organising another fantastic event, and Ange for being my support crew again; making up my drinks, getting my food, organising my changes of clothes, putting up with my grumpiness after a bad lap, and looking after the kids.

Friday, July 28, 2006

Go away rain...

So it doesn't rain here in Brisbane for months, then the day before the 12hr MTB race it rains - rain, rain, go away, come back another day!

Monday, June 26, 2006

Windows Workflow (WF) Hosting…

My current engagement has me writing a paper (Microsoft Word is my new IDE) on a Lotus Notes to Microsoft application migration. Specifically, targeting SharePoint, InfoPath and custom – from the analysis to date it seems that the new versions of these products (SharePoint 2007 and InfoPath 2007) offer the best fit. Primarily due to the Workflow capability within SharePoint and the forms services within InfoPath (i.e. you no longer need the InfoPath client to run forms; they will run in a browser).

To me the most exciting aspect of all of this is the workflow hosting by Windows SharePoint Services V3 (a freely downloadable component for Windows). A developer introduction article has been published the highlights the capability; the following extract provides a pretty good summary of the capability.

The WF run-time engine provides the services that every workflow application needs, such as sequencing, state management, tracking capabilities, and transaction support. The WF run-time engine serves as a state machine responsible for loading and unloading workflows, as well as managing the current state of any workflows that are running. WF allows any application process or service container to run workflows by hosting WF—that is, loading WF within its process.
So does that mean we can use SharePoint Services for hosting all of our workflow where we require the likes of state management, etc.? I am not so sure; maybe someone else can add some more light on the subject – it would be fantastic if you could.

ADO.NET Entity Framework…

Following are some links to some excellent reading on where Microsoft is going with entities with respect to the RDBMS; as stated previously entities are more often than not the best way to represent data within an application - an entity utilising object-oriented semantics and constructs:

It is great to see Microsoft are looking to make Entities foundational to the next version of ADO.NET, and having them fully integrated with the likes of LINQ. Hopefully, this will encourage developers to largely ditch those nasty DataSets as the default mechanism for working with data within a C#/VB.NET application.

Some snippets that resonated or sounded interesting:
An ideal environment for creation of business applications should allow developers to describe the business logic and state of the problem domain which they are modeling with minimum or no "noise" coming from the underlying representation and the infrastructure that supports it.
Often, proponents of a particular presentation or programming model will argue that their particular "presentation" view is the one truth. We believe there is no "one proper presentation model"; and that the real value is in making the conceptual level real and then being able to use that model as the basis for mapping to and from various presentation models and other higher level services.
The Data Platform will include the capabilities of a low-memory footprint, embeddable database engine to enrich the services for applications that need rich middle-tier caching and disconnected programming experiences. The embedded database will include a simple query processor and non-authoritative persistence capabilities to enable large middle-tier data caches.

It will be interesting to see how some of the other Object-Relational
Mapping
(ORM) solutions, such as NHibernate, perceive this
threat?

Enjoy the reading; and the obligatory wait (months/years) for the goods ;-)

Wednesday, May 31, 2006

VSTS / TFS...

I have spent the last few weeks on a customer site installing Visual Studio Team System / Team Foundation Server and proving to them that the capability within will meet their requirements. Right of the bat, I think these together are a pretty darn good set of tools, that really do meet the needs of improving the toolset and adding rigour to the methodology – they just need some extra spit and polish.

My initial thoughts are as follows:

  • Work Item tracking and integration is awesome; but it totally sucks that there is no web based front end, unless you look at something like TeamPlain. This looks like a pretty good solution on the surface; Microsoft should just buy them and integrate.
  • Team Build looks a little half baked, there is no built in scheduler or continuous build functionality – these should just be checkbox options. The build itself works and produces some reasonable reporting and automatic source control labelling.
  • The Source Control functionality looks great, it absolutely makes VSS look like the silly little product it is. I especially like the check-in policies in that it enforces developers to perform Work Item assignment and other activities such as unit testing prior. It would be nice to see some additional granularity added here, so certain actions happen where certain file types are checked-in, or from specific projects, etc.
  • The Check-in Notes functionality is weak; it should be set up so that the reviewer is a role or user. Then the reviewer can either confirm on the check-in persons session by providing user/password authentication versus just free-form text. Where the reviewer is not available it should then send a workflow for them to review prior to allowing check-in.
  • The Unit testing provides pretty much the same functionality as with NUnit and is well integrated into the product. I would happily give up NUnit.
  • The Coverage testing looks to perform the desired job and provides the appropriate information.
  • The Code analysis, FxCop also does it thing – all good.
  • The Performance testing looks ok, although the reporting UI could be improved.
  • The Web testing and Load testing look good also. The recorded Web tests work well and the automated code generation produces reasonable code – good stuff. What I like most about the Load testing is that you can include Unit tests as well as the Web tests, so functions can be tested under load without UI – very nice!
  • Where is the NDoc equivalent? We all need to create good quality documentation and the code comments functionality is awesome – we just need a great tool to help pull it all together nicely.
So in summary, Microsoft has done a pretty good job first up – it exceeded my expectations :-)

A nothing post...

This is really a nothing post, a link to an amusing article about google, sheep and kiwis - I thought others might appreciate it!