spout

April 26, 2004 spout

Chris Sells on Organized Chaos

The one where I express my surprise that we ever manage to ship anything at all, let alone the best stuff there is.

April 25, 2004 spout

Post/Reply Alphabet Soup

April 24, 2004 spout

Freeing My Mind

April 24, 2004 spout

Freeing My Mind

Saturday, April 24, 2004

I’m a sucker for new experiences. It’s not that I believe that you only go around once,” because I don’t believe that. I believe that our job on this plane of existence is to raise our level of consciousness to the next level and that our souls are recycled from life to life on this plane til we’re ready for the next. So, I figure that anything I don’t get to do in this life, I can do in the next.

And yet, I’m still a sucker for new experiences. In any given 10 years, most folks get 1 year of experience 10 times, but I think I’ve done pretty well at squeezing quite a bit out of my last 10 years. And I hope to continue to do that. For example, this year my wife and I will be attending Burning Man. We’d never been, but a couple of my friends from MSDN are helping us find our footing at what promises to be a very unique experience indeed.

MSDN is, in fact, a haven for unique folks willing and able to help me try new things. As another example, last week I had a private meditation lesson from Henry Borys, MSDN editor, book author and meditation teacher for the last 30 years (he’s been teaching meditation since I was 4!). He runs weekend seminars and even a yearly trek to the Himalayas and while both sound attractive, my Redmond travel schedule almost never brings me there over a weekend (let alone to the Himalayas : ), so he invited me up to his place for a private lesson. It was beautiful. It was 30 minutes north of the hustle and bustle of the MS campus and right on the shores of the Puget Sound. We sat on his back porch, watching the sun set over the water and talking about his experiences in meditation (mostly in variations of transcendental meditation [TM in meditation speak]) and my experiences applying what I’d picked up on my own reading Meditation for Dummies (I have come to love the Dummies books).

We spent almost two hours meditation and discussing meditation. Here’s what I learned:

  1. Meditation should be effortless. If you’re working at it, you’re not getting it.

  2. Don’t fight the thoughts to clear your mind.” That’s a sure way to keep them bubbling in your head. Instead, think of thoughts as the by-product of the purification of the mind that happens when you meditate and let them happen w/o paying them any attention.

  3. When you find yourself dwelling on your thoughts, go back to your mental mantra. Henry, as is traditional in the meditation teacher-student relationship, assigned me a mantra. Mine is a general-purpose and commonly shared amongst TM parishioners, but is still darn exotic to me, being in Sanskrit. The mere sound of it helps me and, since I don’t really know what it means (although I’m hoping it’s not send Henry money” in some subliminal form : ), it doesn’t distract me from the meditation (unlike my previous, self-chosen mantra free your mind,” which, while very meaningful to me, did tend to hinder).

  4. You’re not meditating for the act of meditation itself, but the benefits it adds to your life when you’re not meditating. While I’ve grown to like the act itself, I have also been enjoying a more peaceful, less stressed perception of life since I started (although it’s still too early to tell if this is merely the placebo effect).

  5. Don’t judge your meditation. Let it happen how it happens.

  6. Your meditation may uncover some deep-seated sleep that’s necessary for your body to experience, so if you feel yourself falling asleep while you meditate, that’s OK.

  7. Take 3+ minutes to come out of your meditation to avoid the bends.” Otherwise, you could easily come out of it too quickly, giving yourself headaches and/or making yourself irritable. I find that 60 seconds is enough for me, but I’m sure I don’t get anywhere near as deep as an expert, so I always take this process as slowly as I can.

And one of the most fun techniques that Henry introduced was to realize that thoughts are merely interactions with your consciousness. This realization can make your thoughts abstract, which can actually push you deeper into the meditation itself. In other words, when you think of thoughts this way, the more you have of them, the better, which was non-intuitive to my previous understanding of meditation. Hearing this was a very there is no spoon” kind of moment to me.

I was actually looking for some kind of introduction to meditation for months before I learned that Henry was a teacher, even though I’ve known him for more than a year, showing that once again, when the student is ready, the teacher will appear. I look at this experience as help along the way to a higher plane of existence, which I believe is defined within. And while I’m not a practitioner of any religion (I’m ex-Catholic), I do see this as a spiritual pursuit, blending the beliefs I’ve picked up with my brief brushes with Gnosticism and Buddhism and as popularized in The Matrix (although lost again in those stupid sequels). Free your mind, indeed.

Discuss

April 21, 2004 spout writing

What’s New in Windows Forms 2.0

Mike and I write our first cut and what’s new and cool in Windows Forms 2.0 in this month's MSDN Magazine.
April 16, 2004 spout

The X in XP Stands for “Wow”

I had coffee with Arlo Belshee today. He's done years of successful XP programming and when I say "successful," I mean increased and predicable output. In fact, the techniques he described for XP programming, he also applied to sales/marketing and got the same level of improvements. He's got an idea for the culture of a product team, including all levels of management, that makes me drool. If you get a chance to hear Arlo speak on this topic, you should do it. He's downright inspiring.
April 14, 2004 spout

More On The Quest To Kill Code

Here.

The one where I find a half-way point between where we are in our development environments today and self-writing, self-maintaining, self-fixing super programs.

P.S. Just to set your expectations, this style of description for Spout entries isn’t going to stop after the last episode of Friends. : )

April 14, 2004 spout

More On The Quest To Kill Code

Wednesday, April 14, 2004

You’re remember the last installment in my continued quest to find the next big leap in program producing productivity (the last two were OO and managed environments), where I thought I had it all figured out with generic algorithms. All we need is a sophisticated enough environment and wham self-writing, self-maintaining, self-debugging algorithms baby. However, after this evening’s Portland Nerd Dinner (you didn’t pass up a chance to meet Ward Cunningham, did you?), I’m thinking there’s one step in the middle (at least : ).

So, picture the scene. After hearing about a guy that has a fob” on which he has to enter a password to get a 6-digit number that changes every 60 seconds to that he could log into his company’s VPN, declaring that that’s what happens when you let Keith Brown run the world (I love you, man : ), and describing the CSSM (the Chris Sells Security Model — which I can not only implement under .NET, but actually apply to code [maybe I’ll start a workspace…]), I turned to Ward and asked him the same question that I had asked the group from the last PND, i.e. “What’s the next big leap away in development?”, being careful not to give him my thinking from last time.

Ward went a whole other way.

And he got me thinking it’s a good idea.

So, Ward starts describing how to use loose typing (as in computer science types” and what you do with your 101-Key Text Wizard) and TDD-style tests to infer types for your loose typing and I’m shaking my head, cuz I still gotta write the code.

Then a long-haired guy to my left who’s name I never lernt (I meant to!), starts talking about how each leap in the past came from handling one detail that you don’t care about, e.g. register allocation, memory management, etc, and I think that has the possibility of helping me, cept the thing I want to get rid of is the code (I mean, if I can’t make a business on generating the stuff, then let’s kill it altogether : ).

Then Jim Blizzard starts asking an interesting line of questions about whether a leap is really a leap til we’re passed it and we can look back and decide it was a leap. While I think a leap is a leap because you can feel it (I can still remember the joy of my first program [leap 1], hear the ping in my head when I understood OO [leap 2] and feel the rush in my veins when I got managed programming [leap 3]), I was very interested in Jim’s point because I think he was leading me somewhere [leap 4?].

Then, Ward jumped in again with another scenario where you start from nothing and have a programmer at your elbow to translate the next thing you want as you desire it (the first such scenario was Ward’s Adventure Diet where you start with nothing, then add one kind of food/day til you pass the unit tests I guess [Ward actually put himself on this diet for a while — man, we are nerds]) and that’s when I nearly leap across the table so that I can get my own words in edgewise, literally telling Warm that he had to stop talking now so that I could.

Because that’s when it all hit me.

What I want is X1 for programs. I’ve fallen in love with X1 because it gives me immediate gratification. It still finds the same things that Outlook search and Explorer Search finds for me, but X1 does it in such real time that I can narrow in several fields at once based on what I know about what I’m looking for, e.g. some of the body content and/or who it’s from and/or what folder it’s filed in and/or when I got it, etc, until I see a small number of choices from which to pick and I can click on one and say aha! that’s the one!”

I want X1 for programs. I want to start with nothing and keep refining it with commands like, I want an app,” I want a grid” and the data should come from here” and have my computer say, Would you like an app like this, this or this” and would you like the grid to look like this, this or this.” And I want my computer to know about every feature that ever been built into 3 or more programs, e.g. from remembering the spot my window was the app last ran to dropping in pivot tables, from reading/writing to/from databases to providing theming. Anything that doesn’t work in 3-6 choices, e.g. color themes do but individual colors don’t, I want a Property Browser/Windows Forms Designer-like experience and only when I get to implementing something that hasn’t already been implemented 3 times do I even want to think about writing a line of code.

’cuz here’s the thing. I don’t want to give up writing code. I love writing code. I just hate writing code that’s already been written. What I want is for a customer to go through all of the stuff in the Codeless, Human-enabled, Realtime, Interactive System (or CHRIS*, if you will : ) as described in the previous paragraph, get to an actual working system except that it doesn’t do some cool, unique thing that no one’s ever thought of before and then send it to me in an email along with a PO for how much they’re willing to pay for me to do the last bit.

When the last bit’s been written 2 more times, it goes into the CHRIS and around we go again.

And I was all happy with that answer and I presented it the PND crowd just before the Sells Brothers (who had come along and been absolute angels for more than 2 hours while I geeked out with my friends), lost it and started throwing their shoes at each other in the Washington Square Mall food court, at which point I had to leave, before hearing what Jim’s point was or what Ward was going to say after he said, OK, wait, what about this…” which is usually what he says just before he tells you that he’s already built what he’s been warming up to for the last 30 minutes and you find that it rocks.

So, you guys damn well better tell me what happened after I left, especially if it’s better then the CHRIS!

BTW, why isn’t anyone filming these PNDs? They’re the best techie conversations I have all month…

Discuss

* I swear that 90% of that acronym (abbreviation?) came out naturally and was only tweaked slightly at the end for marketing appeal. : )