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