Sunday, January 28, 2007

something stupid

I've done something stupid - I've put in a bid to present a talk at the next CodeCampOz.

It's now under consideration. I'm not sure that it will be accepted, but if it does, then I'll really have to get organised.

It's going to be on coding techniques. This something that I think is very important.

In my opinion, the key is to be able to adapt to change, whether it be from:
- business decisions,
- improvements in your knowledge, or,
- some other thing that happens.

Basically it's about structure and techniques. Structure is more important than the lines (as long as the code does what it's supposed to do, but that's a given.)

One reason I want to do this is that I really enjoy the buzz from speaking in front of people. Don't get me wrong - it scares the crap out of me, but at the same time, it's fantastic.

Another is that I want to share what I know. I've invested a lot of time in reading and considering how I work and I'd like to pass that on to others.

The only thing that scares me about this is that I'll present the talk and then everyone will say, I already knew that.

But if I can help one person, then I'll be happy...

Monday, January 22, 2007

comment about "design by contract , by example"

I really enjoy it when a book has something in it that makes me go wow.

This book has one of those. It's not a major wow, but still.

It talks about how defensive programming can lead to difficult to find bugs. I'm a big fan of defensive programming, so it got me thinking.

Basically, the point was that for non Design by Contract (DbC) languages, the problem is that if a function just returns if the parameters are not valid (i.e using guard clauses), then the bug/issue may not be discovered and if it is, it may be in an unrelated place - Fair Point.

The DbC language will throw an exception if the contract is invalidated - Nice.

Although, and there's always an although, I'm a big fan of a concept that I call Pipelining. That's where the function will only act when the parameters that are passed require it to act. This means that the conditions of execution are placed in the function, not dispersed throughout the code.

These two concepts kind of disagree with each other!

Hmmm...

I guess this is why development is hard?

Friday, January 05, 2007

five things about me

Well, I've finally been tagged in this five things about me thingy. So here goes:

1. I started this blog in a course that Mitch Denny was giving back in 2004.
2. I can ride a unicycle. But not very well.
3. I found a dead body in Lake Albert in Wagga Wagga when I was about 15.
4. I was on community radio in Wagga. I had a two hour show on Friday nights. I think that there was maybe two or three people listening...
5. My house burnt down in the 2003 firestorm that hit Canberra. The only things we got out with are our two children, the clothes we were wearing and our cars. That's it.

So there you go. A bit of a mixed bag, and I tried to throw in a few curlies...

Now as I can't find five other bloggers that I know that haven't already been tagged, this is the end of the line. I guess the magic had to stop eventually...

Tuesday, January 02, 2007

rayman 3

I've been playing this game with my kids for the past month or so. I've got to say that it's fantastic - even though it's three years old. The gameplay and graphics are awesome. Yes, awesome.

I managed to pick it up from Dick Smiths Powerhouse during a 20% off sale for the huge sum of $16. The pack also came with Rayman 2, Rayman multiplayer and Rayman print shop.

Wholly recommended.

Especially for the big kids... ;)

a non technical book!

I've just finished reading "The Reality Dysfunction" by Peter F. Hamilton.

Whew! It's huge, 1221 pages... It took me over a week.

I wouldn't say it's brilliant, but it's not bad.

Apparently it's the first in a trilogy. Oh my, I'm not sure that I can find the time to finish it.

If you liked this then check out books written by Iain Banks or William Gibson.

happy new year

Happy New Year to the three people that read this blog!

Monday, January 01, 2007

why, why, why, why!




Why do we make things harder than they have to be?

<-- Here's an example.


The error message that you get is:


"Control cannot fall through from one case label ('default:') to another"


What it could just say is:


"You need to add a break; statement to the default section."


I think that this is unfortunately a common theme in IT - Things are more difficult than they need to be.

And yes, I just as guilty of this as anyone.