Tuesday February 07, 2006
Provocative Operations
Filed under:
Speaking of simplicity, complexity and internal narratives, sometimes
you actually want to
encourage the
associative thoughts within your head, not gag them. And perhaps even share them with those
around you.
You've probably all done some brainstorming at work. Yes I know...
sigh (or maybe
sigh).
We're about to do some round here. So I was doing some reading about
what the experts recommend. Thus far, the texts I have read focus on
the basic accoutrements of any self-respecting brainstormer: the deep
box of colored pens, the thrillingly unlimited supply of PostIts, an
intimidatingly thick unused flip-chart, the white walled room free of
clocks, noise and humanity....
We're just missing the man-sized
hamster wheel, I thought.
Then I read about Edward de Bono's
Provocative operations: an
often dumb idea that breaks some of your assumptions in the
problem space, and can therefore form the basis of new ideas. Sounds like much
more fun: blurt it out, whatever it is. Maybe someone had a Provocative Operation a generation ago to say that soon you would see otherwise
normal people talking and laughing to themselves in public. The internal narrative inside your head you censor all day
long has a place after all. Phew !
So now, what does happen when the
Unstoppable Force meets the Immovable Object ?
Posted by dannycoward
( Feb 07 2006, 12:26:00 PM PST )
Permalink
Monday February 06, 2006
KISS my ?
Filed under:
Have you paid your credit card ? Is there dirty laundry at home ? Owe your friends an invitation to dinner ? Have you called your mom lately ? Been to the dentist ?
I was thinking about the concept of simplicity this morning for some reason. And I was getting cross about an expression I've heard a lot in software design: Keep it Simple, Stupid (KISS). Life in general, and software design in particular, can be filled with such an intensity of background chatter, it can take a real amount of energy and discipline to disconnect from that and focus at what is important in the moment. Which is usually something quite complex enough, thankyouverymuch.
So don't get me wrong, I'm simplicity's Number One fan.
Take one of the small changes among the myraid for Tiger: JFrame.add(myComponent) now finally (
thankyou) does what we all assumed it already did. Until we tried it. Pre-Tiger, its smiles prettily at you as you use it, then scolds you with a runtime exception at the last possible moment.
Use JFrame.getContentPane().add(myComponent) , STUPID ! Press 0 to blush, 2 to feel inadequate, and 3 to dimly remember an unpleasant childhood memory. GOODBYE
Who has ever used Swing without falling into that trap at least once ?
Learning the new API was not difficult. I never found it particularly difficult to remember either (focus on the word particularly...). But the additional complexity of needing to know, when one least needs to be bothered with it, that JFrames have an object structure that I shouldn't need to care about, created for me an internal narrative that required yet more energy to quieten.
Why did they make it like that ? And what is a glass pane for anyways ? Why don't they fix that ? Remember that GUI you were writing when you first fell into the trap ? What was I supposed to be doing ?
But as most of us that have ever created anything for someone else to use know, making that thing simple is time consuming and requires tradeoffs, difficult decisions and probably several attempts. My old boss used to say that one of the hardest things to do in design is to make something complicated simple (maybe because he managed an
industrial strength product that will sell you a ringtone for your cell phone).
So don't give me KISS. I love simplicity, I *heart* simplicity, but please don't call me stupid !
Posted by dannycoward
( Feb 06 2006, 12:30:27 PM PST )
Permalink
Friday February 03, 2006
I *heart* Netbeans
Filed under:
netbeans
I know its, like, *so*
3 days
ago for me to be writing about Netbeans. But I've never been afraid to be behind the times.
Like the fact that I've been programming with a text editor, println() and nerves of steel for the last however many years. As I was complaining to
Gilad
the other day, everything has been a disappointment since I had, with Matrix-like digital tears, to be weaned off the cosseted luxury of the Smalltalk environments. Sometimes if you can't have it all, you don't want any of it.
But my long sulk with Java developer tools ended halfway through last year: It started because I wanted to integrate what I was writing (more soon !) with Netbeans for a demo, I had no choice but to succumb to the various beseechings that told me that in any case that I should at least have a passing knowledge of the current tool.
I started out using ONLY what I HAD to. Harrumph ! But as the weeks rolled by (this was on some pre-final build of 5.0, mark you) I felt myself being suckered into the darn thing. Why, I hear you cry? Let me break it down:
1) The refactoring tool
An endless quest for the perfect class/method/variable name. Its my OCD. Only in the olden days, it really was painful enough to be considered a digital form of self-punishment. Sometimes running javadoc would shame me into an afternoon of this programmer's equivalent of handwashing: rename, javac, mistake, rename reference, javac, rename.... Now *on a whim* I can rename anything I want. I do it as I go !
2) javac is restored to its proper function
I suppose I had started to forget, until I noticed the helpful squiggly lines and symbols in Netbeans telling me I'd made a mistake, that the real reason for javac was to make .class files so I could run my code. And NOT as a way of catching all the slapdash syntactical and reference errors in my sloppy source code. My javac gets morning and afternoon naps nowadays.
3) I *Heart* the code completion
Did you know that NetBeans does a *better* job of this than Visual Studio .NET ? Much as I enjoyed using flagship search engine capabilities to trawl the world's knowledge base for the API doc for JTree in nanoseconds, NetBeans neatly trumps this ace by popping up a list quicker. And in a scrolling-popup-combo-list doodad that listens to what I'm typing, Jeeves to my Wooster, and neatly slips away when not needed.
So if like the old me, you're still working with inadequate tools: listen to the wise words of the Ikea marketing team:
Its time.
Posted by dannycoward
( Feb 03 2006, 11:17:58 AM PST )
Permalink
Thursday February 02, 2006
Danny and the Three Platforms
Filed under:
Hello World !
Someone once described their programming style to me as 'every program is an edited version of Hello World' (hi Tim). Ah, but what editing.
I realised this morning that I am the Goldilocks of Java Platforms, having worked on the J2EE platform, the J2ME platform and now starting in on the J2SE platform. Except I'm not so fickle. Or blond.
If you know me already, you may remember me from the heady early days of J2EE while we were still struggling through the three letter acronyms, not realising how much better four can be. Or perhaps from one of the hats I wore in the J2ME platform team, where I think even my willingness and ability to discard the shackles of job function were stretched close to the limit. Perhaps you knew that I most recently spent some quality time with myself and a small selection of other popular langauges to see how the other half live. More on that soon, I promise, but can I just say that sometimes we all need to log out, ring off, close the door and do something fun ?
But now I've found the J2SE platform, I think its going to be just right ;)
Posted by dannycoward
( Feb 02 2006, 12:02:38 PM PST )
Permalink