Thursday, May 29, 2008

VSX

I have just managed to install IronPython on my work PC... but not easily.
None of the problems stem from Iron python, just from the VSX installation.
You would think after years of releasing software M$ could get it right.
You have to download the VS Shell extensions (vs_AppEnvRedist.exe). you then have to install the application(?!?) (vs_shell_isolated.enu) which may install the .net frameworks that are required (this is good!), then you can install the IronPythonStudio, which installs fine.
Why could the VSX installation be one step? Click on the exe and it installs, cleans up the crap left scattered through my c: drive and then let me know we are good to go!

Not a big issue, but one that should not even exists.
Anyway IronPython is going to get a little tyre kicking now ;)

Another IoC Container?!?!

If you are not using IoC by now then you are probably struggling with or not doing TDD. I have been luckily enough to give a few containers a bash including Spring.Net, ObjectBuilder, Castle's Winsdor/MicroKernal and StructureMap.
Castle is currently my preferred option of the above as I find it easy to use and config, and when needed it has a couple of bonus features.
However there is another kid on the block, which I felt was probably coming.

You see most of the useable IoC container have a fair bit of bloat. Most of the time I just want to be able to say something like:

IFoo foo = Container.GetInstance();

That is it, Really! I don't care about all of the other stuff that goes on, I basically just want a glorified factory that can handle constructor and setter injection. 80% of the time, that is all I care about.
It just seems to be odd to have a huge framework hanging around, especially on smaller projects just to aid in loose coupling.

Well I guess there are others thinking the same thing, enter Ninject.
Light weight, simple syntax, no bloat and apparently pretty fast.
Check it out if you want DI without all the bells and whistles that you will probably never use.

Wednesday, May 28, 2008

Still not unit testing?

Another little TDD post:
Firstly: there is a new site up called DimeCasts.net that shows 10 minute crash courses on a given subject. So far the first bunch is really good, they hover around the 10 minute mark and are covering NUnit. So if you have not done any unit testing or want some reinforcement that how you are tackling TDD is correct, check DimeCasts out.

Secondly; BDD
As I work on a several side projects I come to realise how beneficial DDD, your Ubiquitous Language and BDD can be.
My "at work" project is so badly organised, especially in terms of communicating business ideas to code, these concepts could have saved the project. Its a subtle mind shift but a beneficial one. The biggest thing I see is the barriers DDD removes. It becomes less Us vs Them (i.e. Code Monkeys vs Suits) and much more about correctly defining the problems at hand and putting into a language that fits all intend audiences. BDD is not really a new way of think but again a subtle refinement of the DD practices and honing the language. I am going to pushing forward with these concepts with a pretty large scale project I may be tackling solo (initially). The business owners are completely non technical and are still fleshing the finer points of the business. To me these more agile practices should be a perfect fit for the on coming workload. :)

I may even venture into the BDD frameworks that support the processes

Friday, May 23, 2008

Bill Poole's SOA Blog

I have had the privilege of working with Bill Poole after he interview me for a job in Perth, Western Australia for a fantastic company called Change Corporation. I was interviewed by Bill and another great guy Chris Nurse for a senior developer role back in '06. I was impressed with both gents as soon as they started the banter. You can learn lot about a company at an interview and I knew that CC was good fit for me after leaving that room. Interestingly enough Bill and I were both avid readers of Udi Dahan's blog, which I am sure earned me brownie points with Bill, a story i was lucky enough to pass on to Udi in person earlier this year. :)
Unfortunately I did not actually get to work on any projects with Bill in my time at CC, but had contact at the dev meeting and social events. Fortunately the rest of the crew I worked with were of an outstanding calibre so I was learning form pretty much everyone I worked with anyway, it really was a great company.

Anyway, I have been reading Bill's blog over the last few months, and I must say it is one of the best SOA blogs I currently read. I enjoy Udi's insights but sometimes they are a bit too high level and abstract for me to really take anything away. Bill tends to use more concrete examples, while still keeping it general enough for the masses to absorb.
So check out Bill's blog if services, architecture and SOA in general interest you, I am sure you will be impressed.
Keep up the good writing Bill. :)

Thursday, May 22, 2008

TDD Wisdom

Just read an old response to a CSLA.Net test question by Chad Myers:
"So far, the best (most easily maintainable, most adaptive, most flexible) designs I've ever created were ones done with tests in mind. IMHO, tests are your first and best customer of your API and expose design smells quickly.

So please don’t dismiss 'testability' so easily as some secondary, ancillary concern because it's one of the best ways to flesh out potential problems in your design, rather than giving up and masking it by lifting the CLR's skirt and messing around in order to test your code."

So wise... like a miniature Buddha covered in hair...

Having a web presence

The amount of time I want to contact someone in the technical field that I don’t know personally is not that often, but it surprises me when I can’t find their information. There are some guys out there that have technical blogs I enjoy reading, with no web site or contact details to speak of.
If the blog does not enable comments then there is no easy way of me to contact these guys.

I suppose there are a few level of anonymity:
No web presence: Does not know the net is ;)
No public web presence: No active blog, web site etc
Public and un-contactable: Possibly a blog or old posts on a mailing list archive with an invalid email address.
Public: Real details easily found. Usually these people also have an active blog or some sort of regular contact to the rest of the world.

Now I understand having a public profile takes effort. It can in fact be a hassle as you have a website or blog your have to maintain; you open yourself up to spam and other unwanted attention. However recently I have been meeting some very interesting and sometimes infamous people and I am genuinely surprised how many of them have
A) no really public presence such as a web site, a LinkedIn profile, Twitter account or even an active Blog
B) Or a web site that just sucks. I sometimes think none is better than crap, as Dad used to say “Do it properly or don’t do it all!”.

I do not consider my self a pioneer of the IT world nor someone that has any real public following, but was surprised how many people from the Alt.net community knew who I was (even if by my RhysC handle). If any of those guys wanted to find out details about me, I would like to think it would be pretty easy, and a few of them have. This is a good thing! I am a contractor! I want people to be able to find out about me, and when they do see my web site, I don’t want them to think. “Geee.. that sucks!”

So this is me laying it out, to you as a IT geek, sort it out! Especially if you are a contractor or a high profile senior IT employee. Get an online profile. Share with the world your thoughts. You didn’t get where you are by being a dumb ass, people may actually want to hear your thoughts, contact you, offer you a job… who knows 

NOTE: oh yeah, my UK company is FullStack
and the Aussie company i work with is ArtemisWest. AW does need a bit of polish, however we have had some big things happen in personal lives so work goes on the back burner... we work to live, not the other way around!

Wednesday, May 21, 2008

SOA on a larger scale

Good God... look at these numbers!

http://udidahan.weblogs.us/2008/05/21/nservicebus-performance/

Where are my Visual Stuido templates?

On both my Work and home PC recently i have lost all of my VS 2005 file templates. These are the template that dump all the default stuff intot he file when you click "add new... class" or "add new... web control" etc
As i install new stuff all the time, mainly just to kick the tyres, it is hard to point the finger at anything in particular...so iwont, either way it has pissed me off.

Any way if you find you have this issue:

devenv /installvstemplates

is the command to get you back on track.

This seems to happen when new templates have been added (ie you have added a new framework, just as a .net upgrade, or new test framwork etc

Tuesday, May 20, 2008

Python... the beginning

So I bought me a Python book and download Python*. That was all pretty painless.

The book is so far pretty good, well written, no junk I don’t care about and to the point.

The language seems pretty easy to pick up.. kinda fits with the “convention over config” line of thoughts with its white space approach… I guess if we are going to have white space why not make it part of the language?

Its scripty and OO-ish.. I can already see where this will fit into my development plans, and can see where Ayende has gone with Boo. These languages are great for file/text manipulation especially on the fly.

One mistake I made was paying for the book... well not really, it was cheap and I can read it on the tube, but for those who don’t like paying for stuff the latest version of Dive Into Python can be found here

Also if you are a CLR junkie then have a look at IronPython

2.0 should be released soon, till then I’ll stick with the correct release version of 1.1.1 (for now)

*IronPython... not real Python ;)

Monday, May 19, 2008

New strings to the bow...

For awhile now I have been umming and arrghing and generally weighing whether to learn a dynamic styled language and which one to learn… Well I have been fluffing around for too long.

I am going to learn Python (OMG not ruby!).

Why:

  • It is supported on the CLR/DLR
  • It is similar in syntax to Boo
  • I want to learn Boo and be able to follow Ayendes post of DSLs
  • Ayende uses Boo and he is smarter than me. I try to follow people that are leaders in their fields.
  • I want a language to manipulate text that is better than c# or xslt… K

I am hoping that learning one will make it easier to learn others. I can jump between Java, VB and C# but the are all C based and basic just different dialect/syntax, hardly wildly different languages (well Fowler kinda agrees with me)

So time to get off my bum and do it. Any book recommendations?

Thursday, May 1, 2008

Time to Refactor

Good sign you need to Refactor: Boxing and Unboxing making a prominent appearance... yuck.

With the use of generics and properly implemented interfaces this has been pretty much completely removed from one of our projects… my question is why was it there in the first place?