Code Architecture Wisdom from Dune

I’ve been working my way through the first 4 books in the Dune series by Frank Herbert. I find them to be a very interesting and thought-provoking look at humanity, government, faith, and the effect of power on the same – especially with the current political situation in the USA.

While reading The Children of Dune (book 3), I ran across a quote that I think is a phenomenal summation of my philosophies as a code architect and programmer. The quote was originally about “mentats” (basically human computers), I have paraphrased it, and modified it slightly to be about architects:

‘Above all else, the [architect] must be a generalist, not a specialist. Experts and specialists lead you quickly into chaos. They are a source of useless nit-picking, the ferocious quibble over a comma. The [architect] on the other hand, should bring to decision-making a healthy common sense. He must not cut himself off from the broad sweep of what is happening in his [application]. He must remain capable of saying “There’s no real mystery about this at the moment. This is what we want now. It may prove wrong later, but we’ll correct that when we come to it.” The [architect]-generalist must understand that anything which we can identify as our [application] is merely part of a larger phenomena. But the expert looks backward; he looks into the narrow standards of his own specialty. The generalist looks outward; he looks for living principles, knowing full well that such principles change, that they develop. It is to the characteristics of change itself that the [architect]-generalist must look. There can be no permanent catalogue of such change, no handbook or manual. You must look at it with as few preconceptions as possible, asking yourself: “Now what is this thing doing?”‘

– From Children of Dune by Frank Herbert (1976)

I really believe architects must take a generalist view. To be effective, you must be able to look at a project as a whole: code, usability, aesthetics, motion graphics, business process, project objectives, brand requirements, user profiles, stakeholder concerns, etc. You must understand that your specialty and it’s mantras (design patterns, OOP, et al) are secondary to the objectives of the project. You must embrace the fact that the standards and technologies you are an expert on are in a constant state of change – that what you know and believe today may be wrong tomorrow. Ideally, you should look at this reality with anticipation and even excitement. This continuous state of change is what makes this job / industry so much fun to be a part of.

Keep thinking. Keep learning. Keep having fun.

Update: JSFL OpenBoundClasses

I just updated the OpenBoundClasses JSFL. This update should work smoothly on a mac (was tested, but not thoroughly), this version should support just about any path you feed it.

This version supports an array of classpaths (similiar to the IDE), you can setup the array exactly like you have yer paths set in the IDE and everything should work as expected. This will require a minor edit to the .jsfl file.

You can download the file from here and again if you have any issues, comments, or suggestions please leave a comment.

The Great Pumpkin(s) Showdown…

To gear up for Hallowe’en, we here at gskinner.com had a little pumpkin carving contest, whilst munching on ghost festooned brownies (yum). The results are, uh, amateurish perhaps, but we had fun and thought we’d share the experience. We also couldn’t agree on a winner, so we thought we’d open it up to the public to pick one.

Here they are, and a snifty little voting tool we whipped together for the occasion. Feel free to drop some comments below, too…

Continue reading →

Back from the 4 City Tour

I’m back in the office after speaking at two stops on the FlashInTheCan 4 City Tour. The trip was a lot of fun, hanging out with the other speakers, staff and attendees in Montreal and Ottawa. It was also a ton of fun actually doing my session “Object Oriented Procrastination”, which was a bit of a departure from my usual technical sessions.

I’d post photos, but I think that could be incriminating evidence… maybe once I’ve had a chance to screen them. 🙂

Thanks to Shawn Pucknell and all the organizers for putting together yet another awesome event. Looking forwards to FitC 2005.

New gskinner.com site launches

The gskinner.com v2.5 site has launched. Why 2.5? Because it’s a stopgap between version 2 and a (hopefully) much cooler version 3 of the site that will go up when we have more time to devote to it. Right now, we’re way too busy with client projects and glic to put up a site that does justice to our capabilities, but I wanted to put up some materials that reflected the new focus and structure of gskinner.com.

IMHO the most interesting part of the new site is the dynamic vector drop shadow engine – it automatically blurs, offsets and fades shadows based on the _z value of the panes. It also scales the complexity of the shadow automatically, so it might draw 2 vectors for a sharp shadow, and 8 for a blurrier shadow.

I’m also happy that it consumes this blog’s RSS feed, so that the news stays updated without any extra work. 😉

For something that got tossed together while I was on the road on the FlashInTheCan 4 city tour, I think it’s ok.

JSFL: Open Bound Class(es)

This is a little JSFL script I put together the other day after being inspired by a similar idea from Tony at Teknision.

The purpose of this script is to launch any AS2 classes bound to the selected items in your library. Comes in super handy if bound to a keyboard shortcut.

The concept is pretty simple so there isn’t much to explain, two things to look out for:

1) There is a variable (var classPath) in the script that you may (or may not) have to change to reflect yer own development enviroment.

2) Right now it only works relative to the .fla, so like /classPath/com/gskinner/etc ..

I do have some idea’s for more/better functionality, but I’m not sure it’s quite possible in this iteration of JSFL.

The script can be downloaded from here, and if you have any comments/suggestion for improvement or whatnot please leave a comment.

Hope you enjoyed my first gBlog post, stay tuned for more.

New Authors at gBlog

I’d like to give a warm welcome to the very talented members of the gskinner.com team who will now be posting to the gBlog as opportunity presents:

Phil Chung (of PhilterBlog fame)

Ryan Matsikas (of ChewTinFoil blog fame)

Lanny McNie (not famous, but still cool 😉

This should help keep the blog a little more active then it has been lately – I have lots to post, but we have been crazy busy lately, with some very cool client work and glic (news on that soon).

Keep an eye out for their posts, and be sure to say hi in the comments.