Wednesday, August 06, 2008
There's a few things going on in Auckland over the next month or so, just to summarize if you haven't been paying attention :)
So plenty of things going on!

I would suggest signing up for the code camp sooner rather then later if you don't want to miss out - also if you know of any other events that I've left off this list, drop me a comment and I'll add them to it.

posted @ Wednesday, August 06, 2008 7:23:04 AM (New Zealand Standard Time, UTC+12:00)    Comments [0] | Trackback |
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.

posted @ Wednesday, August 06, 2008 3:22:42 AM (New Zealand Standard Time, UTC+12:00)    Comments [0] | Trackback |
 Monday, July 28, 2008
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.

posted @ Monday, July 28, 2008 6:38:09 AM (New Zealand Standard Time, UTC+12:00)    Comments [5] | Trackback |
 Wednesday, July 23, 2008
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.

 |  |  |  | 
posted @ Wednesday, July 23, 2008 1:42:46 AM (New Zealand Standard Time, UTC+12:00)    Comments [0] | Trackback |
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 recycle them.
  • Non-paged CLR host - Nno 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!

posted @ Wednesday, July 23, 2008 1:30:11 AM (New Zealand Standard Time, UTC+12:00)    Comments [0] | Trackback |
 Monday, July 14, 2008
Looks like I've been tagged twice - 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 bad! 

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

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 programming?

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

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

Who’s next?

posted @ Sunday, July 13, 2008 8:47:44 PM (New Zealand Standard Time, UTC+12:00)    Comments [0] | Trackback |
 Wednesday, July 09, 2008
Architecture chat tomorrow, some things that have caught my eye lately:
  • Non-paged CLR host - Nno 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.
If anyone has any topics they'd like to cover just leave a comment on this post (so other's can get a heads up as well).

Notes from previous meetings and directions etc. can be found here on my wiki - all are welcome to attend.

Also tonight is the Ellerslie .Net user group - A testers perspective's with Hafiz Vegdani, starting at 6pm.

posted @ Tuesday, July 08, 2008 9:35:58 PM (New Zealand Standard Time, UTC+12:00)    Comments [1] | Trackback |
 Monday, July 07, 2008
Reasonable turnout at the last Architecture Chat - appologies about the late write-up!

So we talked about a few things last week - on a recurring them of IL generation and weaving we discussed verifying generated assemblies with PEVerify - and how to ensure IL you generate is not invalid and Garreth mentioned some issues with ILDASM crashes when using Mono.Cecil.

We talked about the process for wrapping and abstracting functionality and services, and I gave a brief mention to this blog post which provides a slightly more formalized description to this process - Wafagy.

The discussion moved onto file/XML persistence and substituting traditional relational databases with alternative persistence mechanisms, especially in the cloud.

Static analysis tools were discussed, and thoughts about what (if any) alternatives exist to tools such as NDepend.

We talked about the use of "toolkit" style projects such as the Umbrella project or Rhino Commons and the compromise often felt between plucking out only the bits you want (to control the surface area of your project) verses the wish to easily integrate updates and unit tests from the library into your project as they undergo continual improvement.

I also talked about hostile templating/transformation languages (such as the template language in Enterprise Architect which I've been using for a recent project) and what features make a domain or templating language "hostile" to being part of your daily process i.e. lack of debugging, lack of comment syntax, poorly identified or completely missed syntax errors, left to right expression evaluation, lack of operator presidence rules etc.

I then gave a quick run through how I've been using the MDA and MDG to model a PIM (platform independent model) of the domain, including OCL constraints, and how it's automatically transformed into a platform specific model (Castle ActiveRecord with validation attributes in this case) which is then used to generate code from - and the issues I've encountered so far with the tool.

Details of previous chats can be found here on the wiki.

The next Architecture chat is this Thursday, all are welcome.

posted @ Monday, July 07, 2008 7:03:58 AM (New Zealand Standard Time, UTC+12:00)    Comments [0] | Trackback |
 Monday, June 30, 2008
Jonathon Rossi over in Brisbane has been hard at work on the CVSI project (Castle Visual Studio Integration) and has released version 0.3 which now supports VS 2008 - for those not in the know CVSI provides nvelocity intellisense when writing views for monorail.

I did some testing of some earlier releases last week and it's looking good, hilights include:
  • New installer which supports 2005 and 2008.
  • Basic XHTML intelisense.
It also includes some fixes which means the intelisense now works when the templates are not in a web application project (useful for those of us writing applications where we have pluggable modules) and fixes for multi-level inheritence, so helpers and view components with multiple levels of base class i.e. FormHelper (which now inherits from AbstractFormRelatedHelper) will be included in the list of classes, something which bugged me with earlier releases on 2005.

Great work Jono!

posted @ Monday, June 30, 2008 8:31:14 AM (New Zealand Standard Time, UTC+12:00)    Comments [0] | Trackback |
 Wednesday, June 25, 2008
Architecture Chat Tomorrow... Some possible things to talk about:

Subversion 1.5 - and it's new merge tracking features.

WCF/WF Features in .Net Framework 3.5 SP1 - a blog post caught my eye with things I hadn't noticed before mostly around DataContract Serialization i.e. ability to serialize graphs (not just trees), an attribute-free mode for the serializer and a suite of strongly typed classes to make implementing AtomPub easier (i.e. Workspaces etc.).

P/Invoke Interop Assistant - handy little tool, about 5 years too late for me :)

Umbrella Project - Interesting project, take a look at Ayendes involved post for an overview.  The ExtensionPoint<T> approach for making extensions more discoverable is interesting - something we discussed right back when the first beta's of VS2008 were on the horizon.

I'd personally also like to talk about some thoughts people have on the bare minimums for a usable language and domain specific languages in particular - i.e. debugging, native support for comments etc. and some experiences with a rather hostile Model driven architecture transformation language I've had to deal with over the last couple of weeks :)

As usual, if anyone has any topics - feel free to leave a comment, send me an email etc.

Notes from previous meetings and directions etc. can be found here on my wiki - anybody is welcome to come along.

posted @ Tuesday, June 24, 2008 8:34:56 PM (New Zealand Standard Time, UTC+12:00)    Comments [2] | Trackback |
Search
FeedCount

Tags...
Who am I?
Alex Henderson
Alex Henderson
Auckland, New Zealand
Managing Director at Dev|Defined Limited

"Self Confessed Coding Junky for 15 years"
View Alex Henderson's profile on LinkedIn
 
Mobile: +64-21-402-969
Email: bittercoder 'at' gmail 'dot' com
MSN: bittercoder_nz@hotmail
Skype: alex.devdefined
Navigation