Dave Burke : Freelance .NET Web Developer specializing in Online Communities

Your Outboard Developer Brain

Clive Thompson wrote a thought-provoking article for the September issue of Wired titled "Your Outboard Brain Knows All."  The focus was on our increasing reliance on the silicon-based devices that expand our intelligence and whether or not that was a good thing.

My point is that the cyborg future is here.  Almost without noticing it, we've outsourced important peripheral brain functions to the silicon around us.  And frankly, I kind of like it.

I've been on a CodeSmith jag for several weeks, obsessed with the coding patterns in my days and how my expanding CodeSmith library of templates has been enabling me to crank out much more code in less time.  My most current codegen addiction took hold while preparing for my New England Code Camp CodeSmith presentation when I demonstrated how to automate all of the aspects of building a data provider, its business objects and the methods that manipulated those objects.

Then I thought about code generation in regards to Thompson's Outboard Brain piece and concluded that I have an obligation to myself and my clients to absolutely-positively rely on peripheral coding devices like CodeSmith to handle the mundane patterns that I encounter every day.  I keep seeing patterns that my brain can outsource, and

Patterns of patterns

For instance, I created templates today to generate object property and property value comparison classes for custom Community Server Chameleon controls.  These are used in conjunction with Chameleon data and list controls, whose functionality can be extended with query and thread query classes, all of which using a custom utility control to obtain a datasource within the current context container.  Why not a CodeSmith project to create the data, list, query, thread query, property comparison, property value comparison and object control utility class?  All of them.  At once.

The better question is why am I not yet using a CodeSmith project to do this?  The control classes are patterns that repeat themselves, over and over again, from one object to another with a few unique properties.  They're brilliant, but they're already done.  I can't be spending my energies on retyping the patterns that comprise those individual control classes.  And yet there are

More patterns of patterns

Each custom Community Server project I build starts with DBVTContext and DBVTConfiguration classes, a data provider, a custom base page class that derives from CSThemePageBase, a DBVT.config file and a class in the root to pass data requests from the UI to the data provider.  It's time to outsource that process.

The patterns taunt me in the dark, when I'm not looking from deep in my psyche they seek me out.  I right-click, Add, Class, name the file, generate some code in CodeSmith Studio, copy, paste, compile clean, but that's still not good enough.  When I return to the project village I discover a pile of hacked-off little chucks of code.  I cry.  I weep like some grandmother.  And it's like I am shot with diamond bullet right through my forehead.  And I think: My God...the genius of that. The genius of automating those patterns.  Perfect, genuine, complete, crystalline, pure.

The patterns....the patterns....

Comments (2) | Post RSS RSS comment feed

Posted on 10/10/2007 6:55:16 PM by Dave Burke
Categories: .NET | CodeSmith | Community Server
Tags:

Related posts

Comments (2) -

10/10/2007 8:20:50 PM Permalink

Sounds like a good plan!

If I was more up on the repetative coding I'd be thinking the same way, but apart from my work platform (which isn't .NET), I'm not getting into it enough for the cost outlay.

It does make your brain sound like one big fractal pattern though Smile

I do like the idea of making the computer do the grunt work for you, so you can concentrate on the solution that goes in the middle.

Andrew Tobin |

10/10/2007 9:10:22 PM Permalink

Thanks for your thoughts, Andrew.  You're right about the cost outlay, that is, the time required on a regular basis to move more patterns to codegen templates.  I figure since the client gains the same as I do, I make that ongoing migration process a part of my regular workday, as long as the short-term productivity remains good, too, of course.

daveburke |


Powered by BlogEngine.NET 2.0.0.36
Theme by Dave Burke