Monday, August 03, 2009

An interesting task

Over on the OzDotNet mailing list, one of the posts was asking if it’s possible to detect if there is an active exception. I believe the purpose is to change the behaviour of a method that is being called from a catch block.

While I suspect the what I consider to be the “best” solution is to pass a parameter into the function, the idea really hit a “geek spot” somewhere deep inside me. So, without further ado:

   1:          public static bool InCatchBlock()


   2:          {


   3:              StackTrace stackTrace = new StackTrace();


   4:   


   5:              bool inCatchBlock = false;


   6:   


   7:              foreach (StackFrame stackFrame in stackTrace.GetFrames())


   8:              {


   9:                  MethodBody body = stackFrame.GetMethod().GetMethodBody();


  10:   


  11:                  if (body != null)


  12:                  {


  13:                      foreach (ExceptionHandlingClause clause in body.ExceptionHandlingClauses)


  14:                      {


  15:                          bool isFinally = clause.Flags == ExceptionHandlingClauseOptions.Finally;


  16:   


  17:                          if (!isFinally && stackFrame.GetILOffset() >= clause.HandlerOffset && 


  18:                              stackFrame.GetILOffset() < clause.HandlerOffset + clause.HandlerLength)


  19:                          {


  20:                              inCatchBlock = true;


  21:   


  22:                              break;


  23:                          }


  24:                      }


  25:   


  26:                      if (inCatchBlock)


  27:                      {


  28:                          break;


  29:                      }


  30:                  }


  31:              }


  32:   


  33:              return inCatchBlock;


  34:          }




This function above, simply walks the current call stack and checks at each frame to see if we are inside a declared catch block. It seems to work fine for the limited testing I’ve done.



On a related note, I personally believe that code should not care about where it’s called from, as it creates intimate coupling with upstream code, which is more likely than not to create issues with your code.

Tuesday, April 07, 2009

National Broadband Network

Wow, it’s been months.. no, years since this process started. Finally today we got the announcement we were all waiting for. Who is going to build the NBN?? Who won, who can provide the best service??

Well, it turns out that nobody was a winner. The government has cancelled the request for tender process and has decided to go it alone.

So, the plan?? A new Government owned business, who will implement a new network, implemented over the next 8 years. $4.7 billion of initial capital, but the plan is for a total of $43 billion for the full 8 years..

Personally, I think this is a very interesting result. The NBN along with Voice over IP, the Social Internet and Mobile communications will effectively make Telstra’s existing infrastructure obsolete… I guess we will see soon what Telstra plans to do. Will they build a competing network?? Lower prices so they can actually compete?? I do hope this move brings competition to the market, and that the Governments moves will produce a workable/usable network.

Monday, April 06, 2009

A growing shrinking problem

A growing trend around the net lately, has been shrinking URLs. This isn’t a new thing, it’s been around for several years thanks to tinyurl and a few other sites.

The purpose of shrinking URLs is to make re-typing addresses easier, to make the links neater and to cut down on space.

Twitter has benefitted massively from shrinking urls. With such a small limit on message length, it’s means users can have a URL AND a little bit of info in their message. It’s a win-win.

Unfortunately, it seems that more places are also adopting the process of URL shrinking, in some cases, with very little benefit and some big downsides for me.

So, what’s the problem?? I regularly use a little feature that exists in nearly every browser, I like to look at where a link points to before deciding if I’ll click on it. See, it’s very easy to have a URL A Nice Site with Puppy Dogs that really points to www.somebadurl.com. Personally, I’d not click on the link despite the promise of puppy dogs.

Shrinking urls, unfortunately hides the true destination of a hyperlink, and as such, means that I am running blind. This means, I have to use my best judgement based on trust. Do I trust the person/site that posted the link. In general, this isn’t to bad.

But this is where it’s getting more difficult. Several social media sites are now actively shrinking all URLs posted on their site. These links can be posted by anybody, people I don’t know, people I don’t trust. The result, the sites no longer have my patronage. Sure, I’m only one person, but I’d rather be safe than run the risk of something far nastier.

Tuesday, March 24, 2009

News Flash: Wally has been found

It’s been years, many books, and finally the day has come. Here is Wally

Friday, March 20, 2009

A Quick history of the internet

Anybody who thinks Microsoft haven’t gotten their mojo back only have to stop and grab IE8 and take a look at this video (IE8 not required)..

Thursday, March 19, 2009

IE8 News

Straight from the horses mouth via twitter. “@NickHodge IE8 Final: you'll be able to download it from 3:00am AEST tomorrow. http://www.microsoft.com/ie8

So, I guess tomorrow morning I’ll be updating my IE8 RC installs.. w00t!!

Wednesday, March 18, 2009

The Joy of Development

One of the most rewarding parts of my job is delivering new software that makes a difference for my clients. It’s part of the reason I’m still working in the industry, it makes me feel good.

The other thing I really enjoy, and something that has happened today, is the ability to make a program (or small part) run faster. It was just a simple query, with a few tables, a view and sub query or two. In one of our environments the query run blazingly fast, taking only 2-3 seconds. In all of our other environments (one of which is an exact replica from 2 days ago) took a long time too complete. By a long time, I mean it took more than 15 minutes before I lost patience and stopped the process.

So, what changes did I make? Simple, it was just a restructure of the query. As I mentioned before, there was a sub query. This sub query was used within the where clause. An example is:

WHERE Table1.Field1 In (SELECT Field2 FROM Table2.Field2 WHERE Enabled = ‘Y’)

became:

FROM Table1 INNER JOIN (SELECT Field2 FROM Table2 WHERE Enabled = ‘Y’) as Table3 On Table1.Field1 = Table3.Field2

By moving this into the From section and making it an Inner Join, I was able to help the optimiser make the decision to apply the filter earlier in the execution.

The result, ever environment now runs the query sub second.

You may ask yourself, how did I know where to look? The answer is all in the tools you use. Today, I was using Toad, and a simple “Explain” on the query quickly shows you where the execution cost is. SQL Management Studio and many other tools can all provide an execution plan that you can use. There are a few things that you should focus on when looking over an execution plan. The two I focus on the most are Cost and Full Table Scans.

Cost provides you with a figure relative to the whole query about how expensive that operation is. If an operation is excessively expensive then you should try and simplify it.

Full Table Scans generally occur when there are no suitable indexes in place. This means that a filter cannot occur on an index and instead “scans the whole table”. As you can imagine, on a large table this can be a very time consuming process.

There is plenty more information available over the web on this topic. This is just one of my favourite (and easy) fixes for a very common database performance issue.

* This is a very simplified example of the actual query

Thursday, March 12, 2009

Pick a Search Engine

A few weeks ago, I woke up early in the morning and made a decision too do something different. For the life of me, I didn’t know what I wanted to do, but I had a need too change something. That day happened to be the same day that Google decided to join the EU bandwagon and complain about Microsoft bundling I.E. with Windows. This news rubbed me the wrong way, it’s not like Google has been massively effected by this, as they’ve only recently bought out Chrome.

Anyway, after reading that, I made my decision, I was going to try and live a life without Google.

So far, it’s proven a little more difficult than I’d like, not because I rely on them, but more because of habit.

The only habit I’ve successfully changed is my web searching (because I just changed the default search engine in IE8). I’ve tried to break other habits, such as using Live Maps, but alas, the coverage in Australia is just not as good as Google Maps. Just today as an example, I did a search for Moore Street in the ACT. For anybody who knows Canberra, you may know that this street is right in the Centre of the City. Unfortunately Live Maps still can’t find it.. Luckily, Where Is came too the recue.

I’m still trying to find my feet in this Google-Free world, and while I’m sure I may never be completely free, I am pleasantly surprised that the world hasn’t come tumbling down yet.

*Yes, I’m well aware my blog is hosted by Google, I’m still not sure if I’m going to relocate it or not.

Google and the Linux desktop… Oh please…

People have been jumping up and down in the vein hope that Google will move into the desktop space. I’ve heard this discussion before, yet here it is again.

It’s an interesting idea. Start by slowly working around vendor lock in, to position yourself with an end too end replacement for existing infrastructure then BAM, put out an OS too free the people.

Unfortunately, I think a lot of people seem too be forgetting a few simple facts. The most important of these is the business that Google is. Google runs a search engine. But, Google the company is in the business of Advertising. Yep, that’s right, providing the ability too search is just a way to bring people in too view advertisements.

Google docs, Gmail and Google Calendar are all the same. Provide a service too bring people in, then serve up some ads. That’s the business Google is in.

All of the articles/discussions I’ve read about Google on the Desktop have all talked about some sort of Linux Distribution. Great, it could be cool. But Google will still want their advertising cake. Are they going to modify their own Linux distribution too include built in advertising? Are they going too remove the popular email clients, calendaring applications and office applications in order too force users too continue using their online, advertising supported applications?

The answer too this is clearly no. Google will not give up their revenue stream.

I think a more likely scenario is a Web Based desktop. Something that keeps users away from the PC based desktop, and all PC based desktop apps, and keep the users working in the Advertising based world that Google is clearly the king.

Wednesday, February 11, 2009

There is no Right Join

From very early on in my career, I’ve coded SQL by hand. This is nothing particularly special, but it always astounds me how many people still get confused over the various types of joins.

Over at Code Project, I just stumbled across an article that does a pretty decent job of explaining the various join options, but it did remind me of something very interesting.. See, in my 11 years in the industry, I have never had a need for a right join. Why?? Simply put, Right Joins are just backwards left joins.. If you get your table ordering correct, then right joins don’t exist.

So, I hereby call for an end too useless right joins…

Monday, February 09, 2009

I used too just melt them..

Customised My Little Ponies..

A new phone, and an interesting system

Well, over the weekend I finally took the plunge. I said goodbye to my trusty old JasJam and got myself a HTC Touch Pro.

Along with this new phone, I also changed my telco. I had been with my previous telco for over 11 years, and in general hadn’t had any major issues. That was until I started looking at the Touch Pro. See, the Touch Pro was released exclusively to a single provider here in Oz for 3 months. That 3 month period started back in October last year. Fast forward 4 months, and the phone is still only available at one telco.

I contacted my previous telco, through several different methods, via phone, email and in person at their stores. Unfortunately, this is where things started too turn for me. I couldn’t get an answer about this phone. I got everything from “Would you like to just get another phone” to “What’s a Touch Pro”. This really struck me as strange. Nobody seemed to know anything, not their sales people, not their customer support, nobody. Any company that can’t answer a simple question about product availability has some serious problems.

Anyway, back too the new telco. So far I’m reasonable happy, but one thing did strike me as odd. See, as usual, the telco had to do a “credit check”. But the format of the credit check was by far the most interesting I’ve seen. It involved a few quick questions:

  • Are you employed
  • How long have you been employed
  • What type of employment

From this, they managed to approve me for 3 services. So, I could pick up 3 phones on plans. Wow, that’s great.. The problem is, the system in no way took into account my income, the plans I was going to get, the monthly repayments or even my other commitments. I even confirmed this with the customer representative, I could get 3 brand new phones, all on $200 plans..

Tuesday, February 03, 2009

CodeCampOz 2009

That’s right folk, Code camp is back for another year, and anybody who’s been before knows it’s worth making the trip.

Mitch has announced the details and registration is now open.

Unfortunately, this year I won’t be there. See, it happens to be on my birthday..

Monday, February 02, 2009

Interesting Problem

I came into work this morning, to find my inbox full of errors from one of our production applications. This application has been running full time for a long time.  The exception that our app was throwing was:

The security timestamp is invalid because its creation time ('xx/xx/xxxx xx:xx:xx PM') is in the future. Current time is 'xx/xx/xxxx xx:xx:xx PM' and allowed clock skew is '00:05:00'

After a little searching (ok, it took 30 seconds), I stumbled across a great post about this.

A little further digging and my assumption was correct, this is actually tied to Kerberos.

Anyway, in this case, I didn’t follow the easy solution of changing the binding behaviour, instead I got out systems guys to ensure that all the machines in question have their clocks correctly syncronised.. It seemed like a better long term solution.

Wednesday, January 28, 2009

Test Data

I’ve always been a big proponent of using the best test data possible. As a developer, I find that it’s very easy to get lost in the details of implementation, and tend to leave the generation of test data till a later stage of a project.

The problem I find is that by leaving the generation of test data till the end, more often than not, I end up only testing edge cases (which is extremely important), but I tend to not spend enough time generating large quantities of normal data. A result of this is that it’s easy to miss performance problems.

So, as of today, I’m making sure I have sufficient amounts of test data up front. Best of all, I’m focusing on automated data population from various sources. One of my favourite sources for this is Wikipedia. For any large body of text, I find just grabbing a random article is perfect.

Wednesday, January 21, 2009

Annual Noise Cleanout

Well, it’s that time again, yep, I’m cleaning out my list of blogs, twitter friends and every other bit of noise that I find is just not providing any use.

Unfortunately, while examining what I’m currently subscribed too, I noticed something that was a little disturbing. Once, a long time ago, I had most of the MS Oz PDE team in my feed, as of today, I’m down too one.

I used too find the information coming out of this group extremely useful. In particular, Information about Dev tools, events and new technologies. I’ve found over time, these blogs have reduced to general noise about peoples lives, or have just plain gone quiet. They no longer serve the purpose I had subscribed to them for.

This isn’t the only group I’ve cleared out, but it’s certainly one of the most disappointing ones. On the bright side, over the last year, I have picked up a number of feeds from overseas that have replaced the ones I’m now removing.

Ed.

Monday, November 24, 2008

Is it really that simple

Working in the Apps dev space, you quiet often get issued with bugs and feature requests that users expect to be very easy to fix. As a general rule of thumb, I attempt to fix anything the user wants as long as it fits within the scope/budget for the project. As with everything though, quiet often a bug/request will be issued that is actually a lot bigger and more complicated than it initially appears.. And this brings me to something I've been sitting on, thinking about for a few weeks..

Over on CodingHorror is a post about a "bug/feature request" that seems to have been made into a big issue. It's a request to have the Windows Forms designer automatically default the forms font to Segoe... On the surface of this, its a pretty simple request...

The problem for me is that i use VS2008 and target Win XP AND Vista.. Unfortunately, I cannot guarantee that Segoe is actually present on the target machine, and I'm not too sure if I'm actually allowed to distribute the font (I'm guessing I can't..).. This raises an interesting problem.. Windows Forms doesn't deal very well with automatic resizing. It can be done, but requires a lot of extra work, and because of this, I don't want to use Sagoe and risk the target machine picking the next best font..


Sure, there are options available, like having project settings determine the font.. i.e. a "Vista Only" option, but personally I think that allowing the users to just select the font they want works best..

Anyways, back to the grind...

Thursday, October 30, 2008

I'm excited

At times, working in the IT industry seems to be a little slow, dull and much the same as the previous day. this has been the case lately with the media continuing to blast Microsoft over Vista. Everywhere you turn, there are complaints, "10 reasons why x is better than Vista" and any other thing you can possibly imagine.

As for me, I've had no major issues with Vista, I use it to work, i use it to play, and for the most part, it works.. Sure, there are one or two little things that I may think need improving, but that's the same for any OS..

But, I guess back to the topic, and that its the reason for my excitement.. The last few days have reminded me exactly why I love this industry. Here's why:

Tuesday I started a new Job, and we also started to get information flowing in from PDC2008. The big news items, well, here they are:

  • Details on Windows 7 have started flooding in, it's Vista but it's better..
  • The Announcement of Windows Azure.. Yep, the cloud computing OS
  • And Office on the Web

I'm not going to go into details of each and every feature here, but there are a lot. I guess what I'm more interested in is the fact that a company who, according to the press is "struggling" to provide such wide ranging announcements and to even get a lot of positive feedback from folk who have been very critical of late.

I can't wait to get my hand on some of this.

Monday, October 20, 2008

Silverlight 2.0 Released

The title says it all.. And here's the link to the announcement. For me, this is what I've been waiting for, Silverlight 1 was nice, but lacked a lot of features that I personally believe were required to make it useful beyond media streaming and basic flash type apps.. Silverlight 2.0 brings in everything I need as a developer to really start pushing it for internal business apps developement.. Yay!!!

Monday, October 13, 2008

Current Reading List

I thought I'd just put up a quick post of my current reading list. So, here it is:

Feel the Fear and Do It Anyway
The God Delusion
Fish!

I don't know why, but I quite often find myself reading a few books at the same time.. Maybe I need to learn to focus a little more ;)

Thursday, October 02, 2008

w00t

I just read over on Mitch's blog about some new features that are going to be included into the next release of TFS Power Tools. Each of these new features looks awesome, but one caught my eye in particular that I personally can't wait too see. that feature is the new Team Members folder. Not only will this allow you too visually see who is in your project team, but it will also provide integration with your *IM client for presence, notification and vital communication functionality.

I'm all for collaboration, and any tools that help me communicate better with team members is a win in my books.

*If your IM client supports it..

Tuesday, September 30, 2008

VS2010 & .Net 4.0

W00t, just a quick post to link up the announcement of Visual Studio 2010 and the .Net Framework 4.0. Here's the link

Oh yeah, just a quick wish on the collaboration side.. I want to be able to have multiple people working on a diagram at the same time.. Think of it like collaborative "white boarding" but.. well.. not on a whiteboard.. I know that there are a million tools available for basic whiteboard sharing, but they all ultimately end up requiring one person to convert it into UML/DML etc.. I'd just like to take the middle man (or format) out of the picture..

Can't wait too see where this all goes..

Thursday, August 28, 2008

IE8 Beta 2

Most people by now are probably aware the IE8 beta 2 has been released. In my last post, I quickly touched on Ubiquity, and it's interesting too see that other people also believe that Accelerators (the feature formally know as Activities) goes a way to providing the same functionality, seems some people do get it.

Besides this, there are many other features that IE has been needing for a while. The biggest as far as I'm concerned is InPrivate, closely followed by the work done on performance (speed increase, memory usage etc).

Unfortunately I won't get a good chance to get my hands dirty until later today, but I'm sure looking forward to getting IE8 beta 2 running on my machine at home.

Wednesday, August 27, 2008

What a tool!

I was just over at Scobleizer and stumbled across his latest post about ubiquity. Somewhere in the post, he starts to talk about people who "get it" and people who don't. Or as he puts it, passionates and non-passionates.

His rant goes on about people who won't be bothered reading the instruction manual and watch the training video, and because of this, only passionate people will use it.

Now, I think ubiquity is a nice concept rolled up into a geeky, non-usable form. Blaming users for not wanting to learn what is in effect a command line for the browser seems to be a bit off the mark. If you actually spend the time to even read the first page about ubiquity, it talks about providing the "Verbs" (actions) on context menus. This is where the future is. It provides the features you need where people don't have to remember all the possible things they can do.

So, I can understand someone which passion getting excited about ubiquity, but taking an elitest stand and saying that it's no good for anybody else is just a complete load of crap as far as I'm concerned. I think maybe a bit of critisism about the form it's been delivered in is probably a better approach to take than bagging people who prefer to use the mouse than type commands into a black window.

An example of what I think would work, is based on what is provided on the ubiquity page.

The scenario: A typo on a blog (ironic that this post probably has typos too..).. They highlight some spelling mistake on a web page and use ubiquity to highlight by typing in the highlight command. The next step is to select a larger amount of text with the highlighted part to give more context of where the mistake is. They then type into ubiquity "email too xxx".. This opens gmail and starts a new email filled with the selected text and the Send To address filled in.

How I think it should work:
Select the typo and right click. Select actions->Highlight.
Select more text and right click. Select actions->Email

This is what IE8 does through activities. The difference, it's not done in a non-user friendly way using a command line tool.

Anyway, time to stop ranting... Ubiquity is a nice tool, I just think it's not quite ready for normal users.

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..

Wednesday, March 05, 2008

Misinformation in the Media

As a kid, I used to sit in front of the TV and watch the news, or even pick up a news paper and read an article or two. I was taught at school that this information should be used to keep up to date with current affairs and the likes.

Unfortunately, like most people, there is a point in your life when you start to realise that the information provided in these mediums is far from accurate. It's not that they go out of their way to lie, it's more that the people reporting may accidentally forget to include something in their articles.

Yet another example of this appeared today in The Age. Basically, the article is about a "Security Specialist" who found a "security hole" in windows, and Microsoft did nothing to fix it. The truth of the matter is that it's a flaw in the Firewire specification which can be used to exploit any OS that has support for Firewire. In fact, the flaw is actually a "Feature" that allows connected firewire devices to access (read/write) directly to system memory. This can be used to do anything on a running computer you can possibly think of. The only limit is the attackers imagination.

I'm not sure that this omission was completely deliberate, it's probably more just a case of the author not actually knowing any better, which really begs the question about why they are in that job in the first place. In this case, they are probably there because they follow the current trends in the technology media. Bag out Microsoft, and Rave about Apple.

My real question is, how long is it going to take before someone finally gets fed up with this sort of Misinformation and actually does something about it. At the end of the day, companies need to rely on their image in the community, and when the media continually effects the image of a single company, there is only so much those companies will take..

Thursday, February 28, 2008

Mac vs. PC vs. Linux - South Park Style

Tired of all the commercials.. Check out this take on them..

Wednesday, February 27, 2008

Windows Live Writer

As part of the whole getting back into blogging thing, I've decided to start using Live writer from now on. This is the first post, and I have to say it's been an absolute sinch so far.

LiveWriter

Anyway, here is a little picture of it Live Writer running. As you can see, I've actually taken a screen shot of me writing this post ;)

Friday, February 15, 2008

A feature I'd like

It's really simple, but I think it's something that is really needed. You guessed it, HTML support in outlook for items other than emails.

I'd like to be able to paste HTML into appointments for example, or even better, have outlook render the HTML Description stored in exchange for an appointment instead of having it converted to RTF (very badly might I add...)..

It's just a small little feature I'd like to see one day in outlook...

Thursday, February 07, 2008

Sorry to hear guys

Sure the writing was on the wall, but it's still sad to see happen. I learned this morning that a large department has just terminated a large number of contractors due to budget over runs and a whole heap of other excuses.

Unfortunately, this is just what happens in IT, and it's part of the reasons contractors get payed that extra bit of money. Having said this, it's still not the sort of thing you want to see happen to our friends, especially when many people knew there were problems, yet nobody wanted to listen.

This raises a very interesting question. Why won't people listen.. Sure, sometimes it may just seem like people are having a whine, I know, because I enjoy having a whine with the best of them. Other times, it's just a game of self promotion at the cost of everything and everybody else. I still to this day do not know the answer to stopping this, short of just letting those people hang themselves..

Unfortunately this time, some very nice people, many good friends of mine have been hurt and left in a bad situation. So, I'm putting up this post to let them all know that I feel for them, and to wish them all the best of luck in moving forward.

Take care guys and gals..

Tuesday, February 05, 2008

C'mon guys

I'm a bit of a geek, I like to have all the new sparkly bits and pieces whenever they are released. One of the things I'm currently trying to do is replace all the boring old desktop apps I have with nice new .Net bits and pieces that I can. I've got myself a replacement for notepad, use Paint.NET and a few other bits and pieces. In general it's been a pretty good experience.

That is except for two things that I'm really keen to take a good peek at. MSDN Reader and Architecture Journal Reader. Both of these are based on the News Reader SDK and have been created by the kind guys at MS.. Unfortunately it looks like they didn't even bother putting in support for Proxy Authentication.. Now while I haven't looked at the News Reader SDK, I'm fairly confident that Authentication shouldn't be any harder than it is with the existing framework.. See the two lines below.. Either one will work depending on the enviroment..

Credentials = CredentialCache.DefaultNetworkCredentials;
Credentials = new System.Net.NetworkCredential("UserName", "Password", "Domain")

Please guys, fix this up...

Thursday, January 31, 2008

Scrabble

So, along with a whole heap of other changes lately, I've been plaing quiet a lot of scrabble lately. Actually, saing that I'm plaing is a bit of an understatement. It's been getting so serious that I've just ordered a copy of the official scabble dictionary. Hopefully this will put an end to the arguments.. And just for the record, Qi and Fa are real words...

Friday, January 11, 2008

Catching up with life

As I'm sure many of you already know, the last year has been particularly hard for me. I've had a few personal issues that needed to be taken care of, and with that, I also took a bit of a back seat in the world in general, content to just let everything take it's course.

Somewhere along the way, I realised I was missing something. My Mojo.. I lost my mojo.. When I realised this, I decided to do something that I probably should have done a little earlier. I changed jobs, getting me out of my comfort zone and also did my best to get rid of some other baggage.

So here I am now, start of a new year, looking to get back on top of everything. So keep an eye out on the blog, and I'll keep you all up to date with the what's, how's and why's..

Thursday, January 03, 2008

If I hear it one more time

"Why don't we use code generation"...

I'm going to put it very very simply.. I HATE CODE GENERATION.

Why? It's simple. Code generation CAN help developers get applications to market quicker. I won't argue that point at all. My argument against code generation is all about abstraction and workflow.

Abstraction
I've worked in many environments, but one thing seems to remain the same. At some point, you will have to integrate with an older system. More often than not, that integration will be done at the database. Yes, I know the whole point of SOA is to re-use the services, but how many places are in a position to do that yet?

Anyway, back to the point. Over the life time of an application, entities in a system tend to change. They acquire new attributes, they change their behaviour and many other subtle changes. The end result, a person for example is could originally be stored with just an Id, a few fields for their name and maybe a data of birth. Over time, more information gets added. The person may now be an Employer, an Employee, a Client.

As these entities gain more attributes and new meaning, business rules will be applied to each different incarnation. A person is no longer a person.

Now you may think I've gone off track a little. What does this have to do with code generation. It actually has 2 things.

The first is that Code Generator Fanatics will just point their favorite tool at the database and let it do all the work. The problem, is that you now have services and a UI that are just a representation of a person with lots of other information. This is how you end up with applications with 20 tabs and a few hundred fields that all need to be populated before the user can press save. It's hideous and not very user friendly.

The second part is to do with the "We can just rebuild the whole thing" mentality. In this world of source control, managed change etc, at what point did it become acceptable to just blow away half a project and re-generate it just to add an extra field to an entity. Ooops.. Did someone change that file..

Workflow
Next up on my list of gripes is to do with workflow. I touched upon it just above. I'm a big fan of services guiding workflow. I don't know how often I end up on a project where the services are just a set of GetXX(), AddXX(), UpdateXX() DeleteXX() methods. I hear developers talking about CRUD (you know, create, read, update, delete).. This stuff works fine in small projects, but when you start having to add workflow into the picture, it very quickly becomes messy.

Lets look at a simple problem with this. Imagine that within the database we have Users and Contacts. Both a user and Contact have Addresses. Some smart cookie along the way realised that this could be normalised and they both have a relationship with the same "Address" table. Now you need a SaveAddress() method. That's cool and all, but should you be saving an address without some sort of context as to why it exists.

In this situation, I tend to go for AddAddressToContact(Contact, Address), AddAddressToUser(User, Address). This is clear what is happening and you no longer have confusion about why your wonderful OO design doesn't work in a messaging environment.

One Final word
I'll also throw in another little issue I have, and that is when devs take it just that little extra step. They also code gen their unit tests. C'mon... What point are unit tests if they are always going to succeed. You are making our unit tests so they only call your code the way YOU WANT OUR CODE TO BE CALLED. It's not testing for the unusual cases.. Unit tests are supposed to test the unusual cases as well..

Anyway, that's my little rant for now. Feel free to drop a comment about how wrong I am on the subject and I'll buy you a beer while I argue with you until I'm blue in the face :)

It's done and dusted for another year

Yep, that's right, the party season is over, it's time to sit down behind the computer and get back to the hard work. Projects don't finish themselves. Actually, this is what my post is about. Projects not finishing themselves.

I often find it ammusing how often I find myself on the critical path of a project, not that I find this a problem, quiet the opposite. I find I work best under pressure. For me, this is the one thing that keeps me motivated. However, working as a team lead, I often find that more and more of my time is taken up with meetings. You know the type, talking to project managers, talking to busniess reps, talking to BAs. It's the communications.. All projects need communications.

The problem though is this. I spend more time communicating and less time coding. Sure, others in my team are still busy working away, yet my work seems to be getting left behind. This leads me to believe that there is a problem. I don't think that there should be less communications, I just think that I need to find a more effective way to communicate with all the other people in the project. Meetings are a nice break, but I'm sure they are not the most effective way to communicate...

Anyway, I'm going to post more about this over the next few days, but lets jsut say that it's not going to be easy considering the tools I have at my disposal. Stay tuned for all my fun adventures...

Thursday, December 20, 2007

IE8 passed ACID2

Ok, if you haven't heard it yet, the dev guys working on IE8 have just announced they have checked the code into source control allowing IE8 to pass the ACID2 Test.

As you can imagine, this seems to have created a massive buzz around the web. It's an important step to having IE8 "standard" compliant, though all it really means at the moment is that IE now renders a large set of CSS2 and 2.1 correctly AND handles errors gracefully. I'm sure there is still more work to go before IE8 fully supports the full set of standards (Pick a standard, any standard.. there are plenty of them..).

Interestingly, IE8 will need a special DOCTYPE tag to indicate it's should be processed in "Standards" mode. Why does it do this, it's pretty simple. It means IE8 won't break the web. It will continue to render everything the way it does in IE7.

What it means though. especially for all of us developers, we will now need to start paying a little more attention to web standards (By Us I mean everybody else, if you've ever worked with me or talked to me, I don't do web dev...), but hopefully, we won't need to write web sites differently for all the different browsers.

Anyway, after reading this, it took me a little bit to work out what it really means to me as a non web developer. The answer was actually really simple. I'll hear less complaining from web developers. This is a good thing. Second of all, the only web site that I've ever had trouble with in IE6/7 (Slashdot) may now actually render correctly. This is great as I can now enjoy reading their tripe and constant complaining the way it is intended..

Thursday, July 05, 2007

A quick catch up

New Job
So, here I am, sitting at my desk, enjoying the challenges of a new contract, learning all the faces, the project and investigating why things are done the way they are. This last part for me is probably the part I both enjoy and hate the most. I always enjoy looking at processes and technology to see how they have been used in creative ways, yet at the same time find it sad that some opportunities go begging for seemingly small petty reasons. I have to say though that so far the I have not found any of these things yet, which is really exciting.

Blogging Friends
I'd also like to just throw out a quick shout to Dave and Glenn, two of the great guys I worked with on my last contract who are both now blogging (for a few weeks, I just haven't had time to say anything yet).

Leaving Friends
And then there is Kyle, yet another of the talented developers I've been lucky to work with. He's all set for the UK to see what mysteries await. Good luck dude, make sure you stay in touch.

Friday, May 25, 2007

The Pub Without Beer

Well, not quite. But the situation was very very close.

A pub without a working toilet. That's right, there I was, happy after having a few beers with my friday Surf 'n Turf, thinking how I really shouldn't have had so many, and desperately needing to relieve before getting into a car for the ride back to work. Unfortunately when I got to the gents, there was a very nice sign informing patrons of the "outside water disruptions" and how the facilities were closed to the patronage.....

Anyway, it got me thinking more about systems, and how, despite their continual uptime and reliability, a single outside factor can easily take down a system. Yet with a little better planning, system up time can still be maintained (yes, a water tank may have solved this problem)...

Thursday, May 17, 2007

Time for a Change

Wow, it's been 4 months since I last blogged. Quite a bit has happened in that time which I hope to get up here in the next week or two.

Probably the biggest new is that in just two weeks time I'm heading for greener pastures. See, I've been in my current job for a little over 5 years (on contract), doing a range of work including development, builds, maintenance etc etc. I recently accepted a new job offer with yet another government department here in Canberra as a Technical Team Lead/Senior Developer. It's back doing the sort of work I enjoy, using new technology.

I'll try and keep you all up to date with how things go, but needless to say I'm fairly excited about the near future.

Friday, January 12, 2007

A pet hate of mine

I know a few people who will strongly disagree with me on this, but it's something that I absolutely hate seeing in computer systems.. Its Nullable Booleans...... Booleans represent two states, true, false.. They do not represent "Unknown" or anything else you might possibly find. If you need a third state, use something else.. an enumeration or something that carries the meaning of the "extra" state with it.

It's about time that ....

we can now report idiot drivers... Lucky I'm clean...

I'm going to make a habit of entering all motorist into this site that annoy me.. Starting with the 4x4 that made it impossible for me to overtake other cars all the way back from Batemens Bay on the weekend...

Wednesday, January 10, 2007

My new Toy

I finally did it. I went and got myself a new toy. I've turned of my old i-Mate PDA2k, and with it cleared up alot of room on my belt.. The JasJam is just awsome. It's small, faster and better looking.. I'm loving it.

It took me a whole 10 minutes to try out my first 3G video call.. what can I say, I'm a geek..

Monday, January 08, 2007

I've been tagged

Wow, I actually thought I might manage to duck this one, but Rory managed to hit me up. I guess it's time to air my dirty laundry.

1. I played AFL for the Gungahlin Jets, this year is going to be my 15th year playing.
2. I don't have any "Qualifications", as I left CIT to start working and never went back to finish.
3. I've been married now for 3 years to my wife Kama-Jay, though I've been together we've been together now for nearly 10 years. We have two little girls together aged 7 and 2.
4. I'm absolutely terrible at golf, though I love to play. I've decided that I really need to play a lot more and get some lessons.. If anybody wants a game, let me know..
5. And the biggest secret I've been hiding..... I play World of Warcraft...

As for tagging other people.. I think everybody I know has already been tagged.. So I'm going to take the easy way out and not tag anybody back.. ;)

Wednesday, January 03, 2007

I'm back, a valuable lesson or a timely reminder

It's been a while since I last updated my blog, mainly because I made a decision to take a bit of time off. Well, that time is over, and I am going to do my best to keep this site a little more up to date.

The first thing I decided to post was a timely reminder to everybody to make sure your work is backed up every day.. Why, simple.. I came into work this morning, and guess what... My computer was turned off. Pressing the power button resulted in a wonderful buzzing sound and a few flashing lights.

Luckily for me, a bit of poking, prodding, removing and re-inserting bits into the computer seemed to have fixed the problem for now. But I'm sure it's only a matter of time before something else goes.. So for me, it's time to make sure I shelf my work every night before I go home.. No exceptions..

Monday, September 04, 2006

It's a sad day...

I just read about about this on www.news.com.au. Steve Irwin the Crocodile man passed away today in a freak accident.. It's a very very sad day...

Wednesday, August 16, 2006

A Big Welcome

It's true, readify are not the only place in canberra that is trying to hire all the local bloggers.. Looks like Rory is coming to join Paul, John and Me

Welcome Rory...

Friday, June 16, 2006

A small gripe...

Not that you'll find many gripes coming from me, but here goes anyway..

Regular expressions. Or, more to the point, the fact that Visual Studio .Net has different syntax in the Find/Replace than the .Net Framework... C'mon... The tool that we use to write .Net code should use the same regular expression parser/engine as found in System.Text.RegularExpressions...

Anyway, that's my small gripe.. Maybe it will be fixed one day...

Wednesday, May 24, 2006

It's that time

For anybody who knows me, you'd know that I am an big Saints Fan. Probably not as much as Frank, but I still love them. In fact, I just love AFL in general. It's one of the few sports I actually follow and even play..

Tonight, as anybody in NSW and Queensland would know, It's State of Origin Game 1. It's one of the few games of Rugby League that I actually watch each year.

All I have to say is Go the Maroons!!!!

Thursday, March 30, 2006

Another year of poor coverage

Living in a Canberra sure has some problems. One of the biggest problems is the AFL coverage. Channel 9 have the rights to the AFL with foxtel picking up the remainder of the games. The problem is that Channel 9 also have the rights to the Rugby League, which is always shown in preference to the AFL.
Tonight, the Saints take on Westcoast in the first game of the season. Unfortunately, channel 9 have decided to hold off the coverage until midnight so they can show the footy show..

No problems, I have foxtel.. I can just watch it there.. Nope.. it's not being shown until 11:30pm.
Turns out, Fox Footy is showing the game from 9:30 in NSW, QLD, SA, WA, yet ACT misses out...
Anyway, that's the end of my rant.. I can't wait until next year to see how much better the Channel 7/10 consortium do with their coverage...

Thursday, March 23, 2006

ODP.Net Beta Released

Great news, oracle have just released a beta version of ODP.Net (oracle data provider for .Net) for .Net 2.0.

This release is awesome for the following reasons:

  • Support for the Provider based Factories
  • Connection String Builder
  • Data Source Enumeration
  • Schema Discovery
  • VS2005 integration and support for debugging stored procedures


Best of all, ODP.Net should now work out of the box with Enterprise Library 2.0 without the need for writing provider factories and wrappers around the old Version..
Here are the links:
What's New
Download

Thursday, December 01, 2005

Community Launch, and What I've been doing

Last night saw the Community Launch of Visual Studio 2005 and SQL Server 2005 come to Canberra. As expected it was a pretty big event, even when you take away the Microsoft, Readify and .NET Solutions guys, there were still heaps of people there.

If you want a list of people who attended, just check out Geoff's blog, as usual he has done an awesome roundup.

During the course of the night, I was asked by Darren what I've been playing with, to which I answered "Visual Studio 2005".. After all, isn't everybody.. However, on the way home, It dawned on my that I have actually been doing a lot more than that.

With Visual Studio 2005, several other community tools have been released (or are near release). These are some of the other things I have been playing with.

First, there is the new Composite UI Application Block, an awesome framework for building a Windows Forms based UI.

Secondly I have been playing with the tech previews for Enterprise Library 2.0. In particular, the data access components and Oracle's Oracle provider for .net. The problem with this is that Oracle have not actually released a version of their provider that supports the new changes in ADO.NET 2.0. As a result, I have had to create my own data provider that wraps around oracle own provider. It's been a fairly interesting process, and has given me a much better understanding of the changes from 1.1 to 2.0

Stay tuned for more information on all of these wonderful topics.

Thursday, September 29, 2005

Speculation

Eveybody knows that GotDotNet's workspaces were supposed to be Microsoft's attempt to provide a community based site for collaborative development. This failed for a number of reasons, including performance, reliability and usability.

Many projects that started out using gotdotnet, very quickly moved to source forge.

In a vain attempt to make the site more successful, the GotDotNet team created a Source control plugin for visual studio. While this worked, the underlying engine was still to slow and unreliable.

Now, today several MVPs have mentioned that the GotDotNet team has something new and exciting up their sleeves, yet are unable to spill the beans. This leaves me with only one option, and that is to take a guess at what is going on...

Simply put, my guess (and wish) is that GotDotNet's workspaces are going to be converted into a pretty web based front end for Team Systems...

This makes plenty of sense. Microsoft have spent huge amounts of money already creating a collaborative development environment in Team Systems, and maintaining another environment that has proven itself to be lacking would be stupid...

In addition, modifying the Team Systems plugin for Visual Studio to work with the new GotDotNet team systems would be trivial.

Something like this would blow sourceforge out of the water...

Wednesday, September 21, 2005

Tip #102 - DesignMode only works after a Component is sited

I could almost kick myself... the designer has been busted for months, and I never twigged to this.. I guess it was just easier to code my forms by hand...

The reason for this is simple, someone I used to work with decided all our controls needed to have consistent fonts and colours, without having to change the system settings (Gotta love UI standards). To achieve this, the customisation code as put inside control constructors. This broke all the designers.. I figured it would be an easy fix, just wrap all the customisation code in a check for DesignMode. After this fix didn't work, I just decided I didn't really need the designer anyway.

It turns out, the problem is that the DesignMode property on the Component class is simply a wrapper around the site.DesignMode property. Without the site set, it will always return false. Obviously, a control is not sited until AFTER it's been constructed...

Moving all of the code into the a different location, and suddenly we have the designer back.. yay...

Thursday, August 04, 2005

Keyboards need to change...

I've been using keyboards now for over 20 years, yet there is one key on the keyboard that I never use (Not deliberately anyway..). It's the key that other people always use, right before I get onto the computer. It's the key that can cause you to lock your account. It's the key that causes people to SHOUT in chatrooms..

That key is the "Caps Lock" key...

Seriously people..

How often do you use it?
I know occasionally I bump it.. Then I have to press it again to turn it off.

I know my daughter likes it, but she's only 6 and just loves the effects...

I think the world would surely be a happier place if only this horrid key was removed...

*Don't get me started on the Break/Scroll Lock.... (Yes I've used them, but not for a long time...)

Wednesday, July 27, 2005

Cost of Slashdot

While browsing over slashdot this morning, I stumbled across a new study claiming that Microsoft's monopoly costs an estimated $10 billion per year.

This got me thinking.. How much does slashdot cost the industry, world wide per year..

So, I decided to just run a few quick figures (most of which are well under real figures..)

3 Million pages served per day (from the FAQ), and assuming it takes an average of 10 minutes to read each of those pages (including the linked pages on other sites and comments). Straight off, that accounts for 3,000,000 pages * (10 minute * 365 days per year) / 60 Hours * $50 an hour (a very low rate)... This equates to $9.12 Billion in lost productivity...

In addition to this, add in a similar amount for TheRegister and you have more than made up for the same so called cost of of Microsoft's Monopoly...

*Yes, I am aware that this study is floored, as I used Win XP and MS Calc for doing the sums.
**Yes, I am also aware that this is not a real loss to industry, as most of the /. people don't actually have jobs...

Wednesday, July 20, 2005

Google Moon

With tomorrow being the anniversary of the first moon landing, Google have released a special tribute.

Google Moon

Have a play...

p.s. Make sure you zoom into each of the landing sites...

Monday, July 11, 2005

System.Windows.Forms.TreeView

How often have you been sitting at your computer, working away, when somebody walks up to you and asks you to fix a bug (not that their are ever bugs in your own work). The bug seems fairly trivial, yet it's in code that has been working fine for a long time.

This is exactly what happened to me, and it's only taken myself and another developer 3 days to track down. In the process, I actually found out that I have been "abusing" the treeview control for some time.

Here is a cut down sample of the code which demonstrates the behavior.







Sure, looks good doesn't it... First time the code is ran, it works a treat. Actually, this code has worked really well for several months. That is, until somebody changed a single property on the TreeView control. That's right, just one property... Scrollable = false;

This one small change resulted in the treenodes not displaying at all, but still allowed the nodes to be selected.

Anyway, I have since found a fix for this, which is to wrap the offending Clear and Add(s) with BeginUpdate() and EndUpdate(), problem fixed.

As it turns out, BeginUpdate() and EndUpdate() stop the treeview from redrawing every time the nodes are changed, which from a resources perspective is a good thing. It also fixed my problem (the one with the code, not the one in my head...)

Anyway, I thought I'd share this with you all, and hopefully it will save you a few hours/days of pulling out your hair..

Saturday, July 02, 2005

Searching for Yourself

Now, I have always been fairly careful when dealing with email addresses on the internet. I have both hotmail and gmail accounts which I use when signing up for anything where I am likely to end up with spam. Only when I trust people do I actually hand out my home or work accounts. This has served me well for a long time, until recently that is. Suddenly I started getting spam at my home account. Strange, because I have only given 5-6 people my home account, and all of these people can be trusted.

Now, Every so often, I find myself wondering how many people read my blog. I find the easiest way to check is just to do a search in google, and see how many hits I get. This has proven to be quite fun. Funnily enough, this has never shown up any links to my mail accounts other than hotmail or gmail.

After reading this article on SMH I decided to try MSN to see how it has come along. So I entered my name, as I always do with google "Eddie de Bear" (With the quotes) and hit search. You can imagine my horror when I discovered the first site returned was infact a list of contacts that someone had carelessly entered into a public sharepoint site. I have not linked to the list, as I think it's probably wise that the person responsible removes the WHOLE list, before anybody else gets upset...

It looks like I have not infact been as careful as I should have been.

Anyway, the person responsible has been emailed, and asked to remove my details, and possibly even secure the site, not that it's gonna make much difference, as the account listed has now been replaced...

Thursday, June 30, 2005

Got IE? I have

I was just over at Channel9 and noticed a post about the Get IE site. It's just like the Get Firefox site, only it's for IE.

And no, this site IS NOT a Microsoft Site, it's just some dudes who where a little bored...

I found it a little funny, so I figured i'd share it with you all...

Wednesday, May 18, 2005

Working Hard..

It's been a while since I posted to my blog, not because I have nothing to say, but because I have been busy working. For the last few months, I've been racking up around 60 Hours a week. This is on top of Football training twice a week, Football game once a week, and indoor cricket once a week.

In addition to this, I just purchased a house... So in the small amount of extra time I've had, I moved house.

Anyway, all of this got me thinking, how much time do other people spend working?? Do most people just do their 37.5 or 40 hours a week??

Let me know!!

Friday, April 01, 2005

Is Canberra not important enough?

I finally got around to reading this months MSDN flash (which looks great by the way frank) and noticed that there is another MSDN Update happening in April.

Time to sign up....

Hang on, where is Canberra???

Correct me if I'm wrong, but Canberra has a fairly large development community, based around delivering services to a heap of government departments. Some of these people even have input into technology procurements. Surely this is a market that has just as much importance as Perth and Adelaide??

Anyway, I just thought I'd let people know that I am a little disappointed by this.

Time to climb back into my shell and get some work done..

Wednesday, March 23, 2005

ZoomInfo

I was just over at New Scientist when I stumbled on an article about a new web crawler, which has been developed by a Recruiting company. Basically, you can enter your name into the search box, and a few seconds later you have a resume, created from information available on the internet.

I have to say I was somewhat sceptical, how could they create a resume for me?? Anyway, I went over and gave it a try, and my results where as expected.
"No Web Summaries were found for Eddie de Bear".

Anyway, I was not going to let that stop me from givin git a good test, so I entered a few names of high profile people and was very suprised about the results.

For those of you like me, there is actually a link that allows you to build your own online resume, the only problem is they need your credit card details....... For verification only.... I guess I'm just going to have to try to get my name all over the web instead..

ZoomInfo

I was just over at New Scientist when I stumbled on an article about a new web crawler, which has been developed by a Recruiting company. Basically, you can enter your name into the search box, and a few seconds later you have a resume, created from information available on the internet.

I have to say I was somewhat sceptical, how could they create a resume for me?? Anyway, I went over and gave it a try, and my results where as expected.
"No Web Summaries were found for Eddie de Bear".

Anyway, I was not going to let that stop me from givin git a good test, so I entered a few names of high profile people and was very suprised about the results.

For those of you like me, there is actually a link that allows you to build your own online resume, the only problem is they need your credit card details....... For verification only.... I guess I'm just going to have to try to get my name all over the web instead..

Tuesday, March 15, 2005

GMail and my PDA2K

As I have written about before I have an iMate PDA2k (same as the XDAII) that runs over EVDO/CDMA. One of the many reasons I got this was so I could check my GMail account from work (It's not allowed due to policy...).

Anyway, I was somewhat disappointed when I first tried, and I got redirected to a screen telling me that my browser was not supported. That was a little over a month ago.

Anyway, I figured I'd check to see if gmail now supported more browsers... Guess what... It does... Now I can check my GMail from anywhere.

Oh, Yes, I am aware that I could use POP3 to access gmail all along, but that does not give me the same functionality for searching etc.

Thursday, March 10, 2005

It's a simple 203 step process

A new article just popped up on MSDN. It's titled "Installing the December CTP Release of Visual Studio Team System". Basically, the article runs the reader through the process of installing the December CTP onto a single server. This involves using virtual pc to host each of the tiers in team systems.

Anyway, after having a quick scan through the 26 printed pages (it's much easier to just print it), I very quickly realised that the install process still needs a fair bit of work (I'm assuming the final release will be much easier to setup).

203 Steps is all it takes. This figure only includes the main steps. At the bottom, some of the steps have been divided into sub tasks. This would blow the number out even further..

I think I'm going to wait until beta 2 comes out before trying this on work time..

Wednesday, March 02, 2005

Optional Parameters

Over at Code Project there is a new poll about peoples opinions of Optional Parameters. I for one have always tried to avoid them at all costs, due more to a bad feeling than any good reason. Anyway, some of the arguments over there got me thinking:

Why don't I like optional parameters

After a sleepless night of debate with myself, I've come to the conclusion that I still don't like them.

The reason is simple. Method Overloading, or passing an object (the properties represent the parameters) can be just as effective as using optional parameters. I feel that this feature is really something that is not needed, and possibly has the ability to create less understandable code.

Less understandable... yes, by this i mean a situation where a method changes it's behaviour based on an optional parameter. This is a situation where a required enumeration specifying the exact operation to perform would be much better, and the code would be much easier to understand. An example is below:


Sub Main()
Round(1.23, False)
Round(1.45)
End Sub

Function Round(ByVal value As Double, Optional ByVal down As Boolean = True) As Integer
'... perform rounding
End Function
As opposed to this:

Public Enum RoundingOperation
Up
Down
End Enum

Sub Main()
Round(1.23, RoundingOperation.Down)
Round(1.23, RoundingOperation.Up)
End Sub

Function Round(ByVal value As Double, ByVal operation As RoundingOperation) As Integer
'... perform rounding
End Function
Sure it's more typing, but the code as far as I'm concerned is much more self documenting. Let me know your thoughts...