2008-08-06 - Architecture Chat Tomorrow

Architecture chat tomorrow at 11:30am... I'm going to leave it fairly open for topics so all come along with something interesting to say ;o) ... or leave a comment on this post if you'd like to give me or anyone else a heads up on what you'd like to talk about.

Some things I'd personally be interested:

  • Auckland recruitment environment.
  • Must read books for both new and seasoned developers alike.
  • Implementing code that can explain itself - for example security mechanisms able to explain (in English) why you do or do not have access, DSL's that give meaningful reasons for the decisions made, and how to flow those messages through the context of operations etc.

All are welcome - drop me an email if you're a new comer and we'll keep an eye out for you!

Information regarding the location and previous chat write-ups can be found here.

Read More

Last 2 architecture chat writeup's

This is a writeup for the last 2 architecture chats - both were pretty free-form, with little of the topics mentioned in the posts getting much discussion as we all had own things to talk about!

As a brief summary:

Plenty of talk about Lightweight code-gen and run-time vs. post-compile IL weaving, debugging integration etc. Hard to cover all the little facets that were explorer - but it's been interesting - it seems like more developers are starting to dabble with IL.

We talked about approaches for introducing cross-cutting behavior such as versioning and history to your data access and approaches for flowing metadata from your domain model up to the UI (including searching, validation etc.) and ways to index, query and flow the information across boundaries in the application.

As a tangent to this I've been talking about how I've been using MDA/MDG to drive the domain model generation (including things like validation, search annotations etc.).

We talked about the recent S3 outages and approaches for placing resources on both European and US data centers simultaneously, and possible ways to mitigate the double-upload bandwidth costs.

Discussions (sparked originally from a email discussion on the NZ dotnet user group) around hiding the implementation details of your ORM from the rest of your application - and the practicalities of how deep this needs to go, using linq through boundaries etc.

Discussions around injecting logic into generated source code, both in asp.net/winforms generated code as well as possible ways to intercept custom tool generation so you could manipulate the output.

Spartan programming
got a mention - Peter felt it aligned with alot of his current coding style.

Embedding NHaml as a view engine in non-MVC applications, and the general experience with different view engines including  Brail, ASP.NET MVC's default ASPX View engine etc.  (Including the error reporting and debugging experience) - We also talked briefly about the
Spark view engine, which looks to be like it could be quite palatable to non developers while still offering a useful syntax for developers.

If anyone has any topic suggestions for next weeks chat just leave a comment on this post or flick me an email.

Read More

The container tutorials have a life of their own...

So I see more people rewriting my container tutorials lately...

First we have the  unity tutorials - as covered by Michael McGuire... which I mentioned a while back.

Now we have the binsor tutorials which have sprung up lately - from ruprict covering the same concepts, but with Binsor syntax - which is quite handy for those that are boo-inclined!

I also believe a set of Ninject tutorials are being written by Simone Chiaretta (codeclimber) in his spare time as well (and who is not jealous of Ninject's website! ;o)

It's encouraging to see interest still growing in IoC on the .Net Framework.

Read More

Sylvia Park Architecture Chat Tomorrow

Sylvia Park Architecture chat tomorrow - 11:30am - all welcome - see the wiki for more details.

Some possible topics:

Also we didn't cover some of the topics from last time, so I'll
  • Non-paged CLR host - No paging during normal operation and no paging
    will occur when the application is idle.... hmmm... could be useful!
  • StyleCop - C# source code analysis for compliance against a set of rules that embody Microsoft's own style conventions.
  • Spartan programming
  • PSake - build automation tool without the angle bracket
  • "tax" (bit like rake or bake (boo make) - but with more similiarity to existing command line tools).
  • Dependency Injection is dead? (A provocatively named article, but really it's just about using compile-time IL-weaving to do lazy loaded DI).
  • TypeMock racer - interesting deadlock finder (still under development) - and probably a sign of things to come (i.e. array of tooling to verify sound multi-threaded code).
  • AAA style syntax for Rhino Mocks (Arrange, Act, Assert) - I've been using this for the past couple of weeks on a project, it really allows for concise easy to read testing with stubs/mocks.

Look forward to seeing you all there!
Read More

Software Development Meme

Looks like I've been

- so here goes.

How old were you when you first started programming?

Apple II e when I was like 7, Vic20 when I was like 8... but
really my start was about 10 with GW-Basic on a 286 AT 16mhz.

How did you get started in programming?

I was interested in programming from about age 6 or 7.. though
I think I was 12 when I taught myselfTurbo C++ (And the object
oriented concepts that went with it) - so I've spent over half my
life in object oriented languages - not sure if that's good or

I owe my parents a large amount of gratitude as they recognized my
interests early on, and though we had little money they spent a lot
trying to encourage my interests (computers were not so cheap in
the 80's).

What was your first language?

Basic on the Apple II e and Vic20 - but really I think it
wasn't until GW-Basic in Dos4 (and later quick basic) that I became
fluent at writing programs and starting to break problems out into
a series of functions. After basic came C++ (and in-line
assembler), Tcl/Tk and Visual Basic 3 or 4 - then once I started
tertiary study I added Pascal, Delphi, Jade, bash, java and perl to
the list.

What was the first real program you wrote?

A "real" program ... I'm going to take "real" as something
commercial with "users" ... hmm.. I had a part-time job when I was
like 14 helping to add functionality to a C based DOS accounting
system used around New Zealand - That'd be the first "real" program
I added code to.  Around 17 I started writing a lot of code
for open source projects [same time I started studying at Unitec]
(I think all the projects are dead and gone now) and had a keen
interest in writing libraries for game development prior to the
advent of hardware accelerated 3D, later transferring that interest
to OpenGL once Voodoo and NVidia hardware started getting

What languages have you used since you started programming?

Basic (at least 4 or 5 variants), C, C++, Tcl/tk, Bash,
Pascal, Jade, Java, JavaScript, Python, Ruby, ASP, T-SQL, Visual
Basic 3 and above, VB.Net, F#, VBA, Lisp, Perl, Boo and a few
others - though C# has been my language of choice since the early
beta's of the .Net Framework v1.

What was your first professional programming gig?

I think probably working as a Junior at Terabyte Interactive (when they
were based in Newmarket) on a rowing machine C++/OpenGl
visualization app (the infamous RowPro project).

If you knew then what you know now, would you have started

Without a doubt - I was passionate about it when I was 8...
I'm still passionate about it after 20 years. It scratches 2 itches
I've had my entire life, a need to create and a need to
debate/discuss/analyze problems/challenges.

If there is one thing you learned along the way that you would tell
new developers, what would it be?

Learn to learn, and if you don't like learning find a new
profession.  I almost feel like learning is my job, and
developing solutions is a side-effect of trying to achieve my
primary objective of learning.

What's the most fun you've ever had ... programming?

Hmm... I couldn't pick any one project - most fun
environment-wise would be my early days a Terabyte, it had a
wonderful dot-com feel, and we didn't have much work on (at times),
so we got to pursue our own pet projects and take long team
breakfasts in the local cafe - A fun environment, albeit a doomed

Probably since then I would say the "Syzmk Rich Media Processor" -
an application which had a wonderful variety of requirements and an
interesting suite of technologies (it was developed with early
releases of the Castle project and betas of the .Net Framework 2.0)
and was one of the first projects I approached in a TDD

Who's next?

Read More