Thursday, August 14, 2008

WPF Datagrid CTP

Well, for anybody who managed to miss the news, Microsoft have just released the CTP for the WPF Datagrid.. It requires the .Net Framework 3.5 sp1, but that's just a small little update...

Anyways, so far the best link I've found for it is here. So take a look and have fun..

*Just a little side note.. I'm sure this is one of the last big things that people are holding out for with the adoption of WPF, though to date I've managed pretty well without it..

Thursday, July 24, 2008

MS Bob Lives!!

lol, Frank just linked this up on twitter.. Long Live Bob!!




Tuesday, July 15, 2008

Windows 7 Wish List

I read an article this morning (can't remember exactly where) that had a wish list for windows 7.. This list included things like Minwin, UI changes, diagnostic tools etc.. While I liked some of them, I tend to think that some of the items didn't really appeal to the geek in me.. And too be honest, I think windows appealing to geeks is important.. They help to drive adoption in the industry.. So, I thought I'd throw out a list of things I'd like to see:

  • Express Development tools as part of the install
  • A decent graphics package
  • A serious Voip package
  • Serious Support for Multiple desktops
  • Diagnostic tools, memory checker etc..

Now, I understand that Microsoft are actually in a bit of a pickle as far as some of these are concerned. I'm sure they'd love to include lots of things, but may be restricted due to Anti-Trust type things.. So, my proposal is this, a package manager like what's available in most linux distros.. Make it easy to download tools from Microsoft, they don't have to be included in the OS, just easy to get.

Now, once again, this could still cause problems. I suspect the Package Manager will still have to include links to 3rd party apps. This though shouldn't be a big problem. Allow companies to easily register their products, and provide easy categorisation. Allow users to choose apps to install by category and popularity. By default only provide the 5 most popular items for a given category..

Now this system is likely to also require some sort of payment system, but I'm sure this wouldn't be too hard. It's about making people life easier, and as a geek, this really appeals to me.

Anyway, that's my little list of what I think would help windows re-capture some of the "geek" kudos.

Friday, July 11, 2008

I was away for a bit...

Well, it seems that in my time away (and the quick cleanup of my email account) that I missed out on something. It seems that the old AusDotNet mailing list has been replaced. The new one is here.. I've just re-subscribed, I guess I'll see soon if this new one works :)

Thursday, July 10, 2008

Purple Monkey Dishwasher

Back when I was little, we used to play a game called "Chinese whispers". I'm sure you know the game, everybody sits in a circle and someone starts whispering a message into another persons ear. This message then gets relayed to the next person and so on until the message finally gets back to the last person. Quite often, by the time the last person received the message, it was garbled, changed, lost information or had new information added. This happened consistently even when the message was very simple (hey, we were only kids..)..

For me, I learned that the more people who are involved in a chain of communications, the higher the risk of information being incorrect when it reaches it's target.

Unfortunately, I still see this type of thing happening in my day to day work. It's not uncommon for developers to be 3-4 times removed from the users of a system. Now what makes this worse is that the information being passed around tends to be a lot more complicated than when we were we little kids. Complicated business requirements, processes, legal requirements. None of this is particularly easy on the best of days, but after it's been through the process, it's almost guaranteed to be incorrect when it gets to the developer. The only question is how incorrect.

Now, don't try and read behind the lines here for any hidden messages about Business Analysts, expert users etc.. There is none of that. They are all an important part of the process. So is keeping the developers in the loop on communications. There are a hundred different ways to do this, from the simple CC on an email through to using forums for all requirements gathering etc.

Think about the Chinese whispers situation at your work and see if you can't do something to help the message get to the developers in a clearer way.

*Yes, the title is a classic line from the Simpson's where a message was passed through a crowd at a protest rally. The message made it to the Edna, complete with Purple Monkey Dishwasher at the end. "We'll show them, especially for the Purple Monkey Dishwasher comment!"

My GMail Account...

A long time ago, I signed up for Gmail beta.. I honestly thought it was the best thing since sliced cheese.. Around that time, I was signed up for the AusDotNet mailing list at work, and decided to move my subscription across to Gmail. Not long after, work banned all web mail. Gmail included.

For some time after that, I managed to keep track of everything at home, then later on my mobile phone. By this stage, I had also subscribed to SQLDownUnder. The amount of email pouring in was huge. I got a little behind with my reading and before I new it, the amount of emails were just too much to keep up with using the poor mobile interface for Gmail. I stopped checking this account.

Just today, I got a bright idea.. I'll check this account, clear it out and start using it again.. I thought that maybe the interface had improved... And, for the most part it has. It's way better than it used to be. The problem, it still doesn't have any easy ways to deal with large amounts of data. There are all the normal features like a delete button and the ability to mark items as read. Cool... Except I have 1972 emails that need to either be deleted or marked as read.

What I want (and this applies to live mail as well) is the ability to say "Mark all emails read" without having to select them in the Mobile interfaces. I can do this for my junk mail, so why not my normal mail??

Anyway, back to it, only 99 pages of email to clear from my mobile :)

Wednesday, July 09, 2008

A little Tip

Just remember boys and girls, to setup impersonation before you call ChannelFactory.CreateChannel otherwise your impersonation won't work... Also, another little tip.. Regardless of when you revert the impersonation back to the original identity, the open channel will still be impersonating!!

Mobile Live Blues..

It seems as though there has been a recent breaking change with Live Mail. See, from work, I usually keep track of my live (hotmail) emails from my mobile device (i-Mate JasJam) running WM6. Unfortunately, sometime over the last week, Live Mail no longer detects my phone as a mobile device and attempts to load the full version for IE.. As you can imagine, this does cause a problem.

So, for now, I just have to make sure I specifically head over to mobile.Live.com and then click on the Mail link from there.

Oh yeah.. I also have another small little gripe.. Accessing sites on a mobile device, I generally have to pay for all my data downloads, and for anybody else in Oz, they would know that it's fairly expensive. Another feature of Mobile Live that I'm less than impressed with is the Ad Banners.. Screen real estate is limited AND data data is expensive.... Not happy Jan!!

Monday, July 07, 2008

The New Hermit Crabs on the Block

As a father, I often get to learn a lot about things that I normally wouldn't kow anything about. Over the weekend however, after a trip to the local pet shop, I discovered something that has left me somewhat changed.

Before I tell you what I know know, let me set the scene.. See, my sister and her kids once had several pet hermit crabs. These hermit crabs were kept in their little tank, and just kind of lay around, occasionally moving around the tank and not really doing much else. Occasionally they would be given a few new shells that better matched their size. The problem was, they were all plain old boring crab shells. Sure, they did vary in size and shape a little, but apart from that, there was really nothing that made one crab stand out from the next. Those poor little boring crabs...

Enter the new range of designer hermit crab shells!!! All the newest crabs on the cat walks are wearing them...

All I can say is I'm shocked.. and changed forever!!

Tuesday, June 10, 2008

My Phone Battery

Over the last month or so, my little i-mate JasJam has been performing a lot worse than expected. The battery life has degraded to the point that I could not leave it on overnight.. 7 hours standby is about all I was able to achieve. So, I got of my backside and ordered a new battery. It arrived last week, and I have to say, I'm extremely happy. It's running like the little champ it should be. I'm a happy man!!

Thursday, June 05, 2008

Save XP???

Ok, so, I thought I'd put up a post for something that has been bugging me a whole lot lately. And that is the immaturity of some people out there. Just today I read (where else but slashdot, the whole thing seems to have started with neowin) about Microsoft asking people to stop calling their customer support requesting an extension to Windows XP availability and support. This really got to me on a few different levels.


First up, it's just making life difficult for people who really need to use the support lines, yet these people who have XP running fine on their machines are happy to push their own agendas at the cost of others.


Next up is this. If I wanted to go out and by a brand new 2001 Mitsubishi Magna.. Guess what? I can't.. Why, it's discontinued.. It's a business decision they made to not make it any more. Do Mitsubishi still make enhancements to the Magna.. Nah ah... Are they under warranty anymore.. Nope.. This is not just unique software and cars either. Try it with nearly any industry. Power tools, sports equipment (yep, new golf club models every year!!), clothes, phones, TVs, Stereos, iPods.


Every business tries to moves forward. Sometimes products are successful, sometimes new products are failures. Now, as I've said before, I'm very happy with vista and office 2007 (though there are a few things i'd prefer were a little different..) but at the end of the day, Vista is the successor of XP which had a remarkably long shelf life compared to many other things in I.T. and in this case, much longer than the type of support you get in nearly any industry...

Anyway, back to my original point. Grow Up!! If you don't like it, use Mac, Linux whatever.. Just grow up...

That's my 2c for the day :)

Friday, May 30, 2008

Help Microsoft Donate

I just noticed a post by Nick Hodge about Microsoft Donating to The Smith Family (a charity). The problem is, they need your help. Pop over to this site and watch the video. For every person that views the video, Microsoft will donate $1.

(Just a note, I'm sure this is a promotion to help spread the Silverlight love, but I think it's a very worthwhile cause non the less.)

Friday, May 16, 2008

An interesting use for using

A college of mine came to see me the other day with a question about some code he had stumbled across. He wasn't exactly sure what it did, or more importantly, if it's something that he should be doing in his code. The code in question was a using block. Now, I'm right up there, telling people that they should have using blocks in their code for any object that implements IDisposable.. The problem was, the object in the using block didn't..













Now, I found this to be very interesting.. myObject was an instance of an object that clearly didn't implement IDisposable. Performing a cast like this would actually result in a null reference. The compiler was happy, the cast was invalid, and it ran without any problems at all.

I took a peek at the IL generated, and was pleasantly surprised to see that there is a check for nulls before the call to dispose.

I'm not sure if there is any benefit from doing this, and I'm sure I wont be recommending this to anybody, I just thought I'd mention it as an interesting tidbit.

Cheers

Vista and Office 2007

I just wanted to go on the record.. I really really really like Vista and Office 2007...

See, when both Vista and Office 2007 came out, I upgraded.. I've done this for every version of Office/Windows (except for Win ME...) since Windows 95. So far, I can't say I've ever had any major problems with an upgrade.

Back to Vista and Office.. The dev machine I had at home was a little under powered. I also play games, and the machine was struggling under the load. So, I did the right thing and built a new computer. It wasn't all singing, all dancing.. It was just a nice system. I met all the recommended requirements etc, 2 gig of ram, a decent video card etc. The end result was a system that ran fine, and for a smidge over $1000.. (This was just the computer, not the monitor etc..)

To date, I still haven't disabled UAC.. I've deliberately left it on.

Anyway, the point of my post is that I have not encountered any problems with this system to date, no stability problems, no performance problems, nothing.. Well, not completely try, I have had 1 driver problem, but that was with a Netgear NAS (very cheap.. And sucked under XP anyway..) that didn't have drivers for over a year after the release of vista.. This is clearly a problem with the vendor (or the people that made the re-badged toaster looking NAS box they sold)..

As for Office, wow.. Sure it was a shock at the start. The ribbon is a big change, but once I spent time to actually use it, I fell in love.. Back at work, I'm still running on XP and Office 2003, and I have to admit, I find now that I miss the ribbon....

I'm glad the upgrade process for both Vista and Officer is underway at work ;)

Thursday, May 08, 2008

WCF and Inheritance

Anybody who has had the pleasure of working with WFC, or in fact any messaging based programing will understand the issues related to messaging and inheritance. For those that don't, here is a quick rundown.

Take this situation:
I have a person class with:
  • First Name
  • Last Name
  • Age

When serialised, I get something like this:

FirstName: Eddie
LastName: de Bear
Age: 30

Now this so far does not cause any problems. It's designed to work like this. When a service receives this message, it knows exactly what it is dealing with.. A Person.. That's what the contract defines, that's what it gets and deals with.


Now, Imagine I now have a new class Employee which inherits from Person and adds a single attribute, EmployeeId.

Now, when this gets serialised, what do we see:

FirstName: Eddie
LastName: de Bear
Age: 30
EmployeeId: XXX-123-XXX


(This assumes that the new Employee class still has the same contract name etc..)
Now, if this was passed to a Service that expects a person, the service has a little heart attack. It has no idea what to do with the new attribute EmployeeId.. It's not part of the person class..

There are a number of solutions to this, such as Method Overloading. But one of the solutions I find the most interesting is the mechanism WCF uses for Contract Versioning. IExtensibleObject.

In the example above, you could easily implement IExtensibleObject on the original person class. IExtensibleObject basically provides a property bag for dumping extra information that is encountered at deserialisation time. This allows the service to continue to treat the Employee object as a person, without loosing the additional information added by the employee class.

A great article on the use of the IExtensibleObject interface can be found Here

Improving output

So, a while ago I found myself getting a little behind with my work. I found myself constantly caught up in meetings, spending a large amount of time communicating with team members and stakeholders. In fact, I found that more of my time was taken up with this that I could really afford, something had to be done.

So far, I have actually had little success in reducing the number of meetings that I need to attend. This is something that I'm sure keen to work on, but find that getting these meeting taken offline (email, IM etc) still has a great deal of resistence in the workplace, people like face to face contact.

What has changed though, is my productivity.. No, I still refuse to use code generators.. But I have found myself adding Code Snippets to Visual Studio at an absolutely astonishing rate. I find that code snippets provide me with the best of both worlds, I don't need to continually waste time writing the same templated code repeatedly, and the overhead of creating them in negligent.

So, what sort of things do I use the Snippets for.. The answer is easy.. Any repetitive work.
  • Properties with Change Notification
  • Data Access
  • Service Contracts
  • Data Contracts
  • Exception Handling
  • Anything else I type repeatedly

Basically, I find that by removing the tedium of these repeated tasks, I can spend more time focusing on the actual business specific problems.

Productivity ++

Friday, May 02, 2008

It helps to read the manual..

I've had my i-Mate Jasjam for a little over a year now, and for the most part it's been very reliable. As of late, I've been having a little bit of battery problems. In particular, it's because most applications continue to run even after clicking on the little X in the top right hand corner.

Over the last year, I've slowly added more and more applications, and tend to spend more time surfing the web (or just have programs like tinytwitter running).

Anyway, today I stumbled across a little feature that I'm sure was not on the original WM5 rom that was loaded when I got my phone, but was added by I-Mate in the WM6 rom. Basically, it actually closes the application when you hold the X button for a few seconds. This avoids constant trips to the task manager and clicking the "Stop All" button..

Monday, April 21, 2008

Keeping Busy

It's been a few weeks since I last posted here, but being so quiet has nothing to do with the reality of my life. The last few weeks have been an absolute whirlwind. I've had 30th birthdays, an old friend from Ireland visit, work on getting my divorce finalised and a lot of golf in my spare time.

Oh yeah, I've also started back at the gym..

Throw in Work, spending time with the kids as well as my wonderful new girlfriend and you can see that life has just been extremely busy.. I just haven't had the time I'd like for playing with new Toys and Technologies..

Anyway, the fast life is starting to slow down again, and I should now have plenty of time to start to get back into playing and learning again.. I'm looking forward to it :)

Thursday, March 27, 2008

WM6 Daylight Savings Update

Just read this over on Rog42 about the update for WM6 daylight savings settings.. Anyway, there are a few links for both the MSI and CAB updates. The MSI is to updated from a PC and the CAB directly from your Mobile Device.

Anyway, short story is I'm at work and can't connect m phone to my PC, so I'm stuck with the CAB update.. So it was off to TinyURL.com to shorten that ghastly download link. This made it heaps easier on my phone. For anybody else who needs it, http://tinyurl.com/2b67p4 should do the job nicely :)

Happy Updating...

Apple Pushing Safari

So, last night I got home and turned on my computer. Just wanting to kick back and do a bit of reading that I didn't manage to finish at work. Within a minute of turning on my computer, the apple updater popped up. The apple updater?? Yep, It got installed along with iTunes for my daughter's IPod.

Anyway, when I thought it I first thought to myself, cool, a new iTunes update. This must be good.. I was just glad I took the time out to read what the update was... It was Safari 3.1... WTF?? I don't want Safari 3.1... I have a browser that I use and am very happy with. Why would I want another vendors browser pushed on my just because my daughter has an iPod...

Anyway, it only took me around a minute to work out how to block the download, but it really left me thinking.. How many people will accidental end up downloading safari (there are lots of iTunes users out there..).. And more importantly, once it's downloaded, does it install and set itself as the default??

If the answer to this is yes, is this possibly an example of a company using it's dominance in a market (music) to work it's way into another market?? Possibly.. It's not the first time it's been done...

Either way, I'm going to be interested to see how many windows users will be running safari 3.1 in the near future..