Thursday, April 27, 2006

Recommended Reading

Debugging Applications for Microsoft .NET and Microsoft Windows: Books: John Robbins
Don't let the title fool you - this book contains some great information for 'old fashioned' Win32 debugging as well. It's probably worth upgrading too if you had the previous edition.

I reread sections of this book every so often, reminding me of little bits and pieces that left my L1 cache.

Web 2.0 & $$$

Been looking at some of the Web 2.0 that everybody has been talking about -- I've seen some of these ideas in the past. They clearly make for better applications.

These pages were later reauthored to be more like 'traditional' content areas. Why?

Well - ask yourself why an article like this Washington Post article
is spread on two pages. (see at bottom of article) It's simple - two pages means two unique page views - and therefore two sets of ad impressions. As Deep Throat said "Follow the money".

TiVo is making the television advertising groups rethink TV ads. Web 2.0 may make webvertizers rethink web based ads. One of the two measures of web ads are unique page views. If you never navigate away from a page - it's no longer unique.

Web 2.0 will live or die based on if the Doubleclick and the rest adjust their revenue models.

Thursday, April 20, 2006

Okay - Luddite Still

It's been pointed out to me now that I live in the past. It's nicer here.

Windows 1.0 and the Applications of Tomorrow

Charles Petzold - (old 11/7/2005)

Windows 1.0 and the Applications of Tomorrow: "Last but not least, we have Microsoft Windows. Now I know Windows has become an industry laughing stock. It was first announced two years ago in 1983, and it’s been vaporware ever since. What the hell have they been doing in Redmond?

(e.d. I guess somethings don't change)

Well, Windows is now ready for prime time, and I’ll be showing you Windows in action in a few minutes." ...

(and of course later don't miss this)

Now who shall we wish Happy Birthday to? Let’s say Windows, and give it 10 candles. We’ll pretend that it’s 1995 and Windows is 10 years old.

Now let’s light the candles.

Let’s go back into the dialog box. Let’s give it 20 candles and we’ll make the bold prediction that Windows will still be around 20 years from now, the year Two Thousand and Five.

Wednesday, April 19, 2006

FDO Looping

FDO supports controlled looping
a loop like so:

A = 0
DO WHILE A < 10
A = A + 1
Edit1.text = STR(A)
LOOP END

can be implemented in FDO as:

uni_start_stream ; start of fdo stream
var_number_set <a,0> ; set register A to 0
var_number_set <b,10> ; set register B to 10
uni_start_loop ; start of loop
if_numa_lt_numb_then <10> ; check if register a is less than register b when false jump to uni_sync_skip <10> below
var_numa_increment ; increment register a
man_set_context_relative <1> ; change display managers current object to id 1 (a text field - previous defined on the window
var_number_get <a> ; copy current value of register a to 'last' value
uni_convert_last_atom_string ; convert 'last' value to a string
uni_use_last_atom_string <man_replace_data> ; use the 'last' value as an input argment to man_replace_data
man_update_display ; update on screen results
man_end_context ; end change of display manager current object
uni_end_loop ; end of loop - returns execution to uni_start_loop
uni_sync_skip <10> ; label '10'
uni_end_stream ; end of fdo stream

so simple, no wonder...

The Old New Thing : Taxes: Remote Desktop Connection and painting

The Old New Thing : Taxes: Remote Desktop Connection and painting

Tuesday, April 18, 2006

Problems in Windows Explorer or the Windows shell after you install security update MS06-015

Okay - another half hour of personal tech support for a family friend -- I find that his machine was done in by the latest Microsoft Security Patch. (thanks Google Groups)
Problems in Windows Explorer or the Windows shell after you install security update MS06-015


Now that I'm thinking about it - I'm surprised this stuff doesn't happen more often. I imagine this bug might be a large problem --- may affect anybody with MS Office and a variety of HP hardware (and the software HP installs)

I also cringe everytime I read a MS technote telling you to edit the registry --- why don't they include a REG file that makes these appropriate changes? Especially when you might be asking your friend to type these values while talking to him on the phone.

Here's a copy of the registry change for others --
Registery Edit for MS06-015

Monday, April 17, 2006

FDO Revealed

So years after it's end - I figured I'd start a tutorial on FDO. Let's start with first principles. FDO is a binary display and control protocol. So the text represented here is 'compiled' into a stream. This stream is typically transported on the wire over an application protocol called a token. The payload for specific tokens are refered to as "Atom Streams"

Here we have an example of a simple hello world message box

text source code
uni_start_stream <00x>
async_alert <info, "Hello World">
uni_end_stream

and in it's compiled form

00000000 0001 0100 0D07 0C01 4865 6C6C 6F20 576F ........Hello Wo
00000010
726C 6400 0200 rld...

Sunday, April 16, 2006

Starting over

Oh, the slippery dream of starting over. Seems to me that every project that I have ever worked on has been surrounded by people who just wanted to chuck the whole project out and start again. It's a beautiful dream huh?

It also seems to always end in a nightmare. When you hit the reset button in the software world, you dispose of the institutional knowledge contained within the source code. You forget the lessons learned. Given a large project, you also are likely to lose core features that you have assumed were of marginal value. And sometimes at the end of the reset cycle, there are some that just want to reset again. I'm sure there's a name for this phenomenon - dunno what it is though.

At then end of the journey down 'reset valley' - you typically have a product that isn't what you wanted when you began. It may be a great place to start future work, but in the meantime you have a product that feels very unfinished or unpolished

I'm not sure that it's truly possible to pull off the reset button mentality anymore for large scale software projects. Can anybody name one that worked out (near term at least)?

One of my favorite related stories was told to me by one of my early mentors. It was a story of this old gas station in his home town.

His home town had one of those old fashioned full-service stations with garages and pumps out front. The owner of this station kept being told how he was losing business to the new fangled gas stations across town - the ones with the fancy pumps, convenience store, etc , but the owner also knew that if he closed down shop just to update his image, the gas station would never reopen.

So he cooked up a plan. For months townsfolks noticed workers going into the garage, and coming out at the end of the day. New stuff kept being delivered and carried inside. Finally, a year later - another group of workers came by. These workers promptly removed the walls of the garage and revealed a new fancy station. Once the walls were down, the new station opened for business. The old pumps still worked for awhile, but were removed some weeks later.

Sure it would have been faster to just close up shop and bulldoze the entire station and build it up again. But what if the new station just wasn't ready in time? Can you afford the failure?

Okay - I'm sure the guy made the whole thing up - but I've always liked the sentiment. It's old timey, and a pretty good analogy of my beliefs about rearchitecture.

Focus on abstraction or even add abstactions first, perhaps implementing with what you already have in place. Prove the abstation - then remove the old with the new - and check for improvement.

Rearchitect from the inside out.

Reset Buttons --- Here be Dragons.

Saturday, April 15, 2006

Welcome to Google Calendar

Hey guys, never mind.

Welcome to Google Calendar

Friday, April 07, 2006

Luddite No More

Okay - maybe I'm too much of a luddite. Maybe I need to take to heart a SIG that I read somewhere the other day.

"Somewhere there is a machine language programmer waiting for the fad of assembly language to end"

Maybe just maybe - I'll dig out the luddite - and adopt the technology ala mode.

Just maybe.

Wednesday, April 05, 2006

Frontier -- History repeats?


Sometimes an idea is so powerful that it can change the world...
sometimes it's just an idea.


Now I worry which camp the boss thinks I'm in.

graphicallyspeaking: America Online, Inc: R.I.P.

When GoogleAds are embarrassing.
Come on man "Uninstall AOL" is an Ad-Word?


graphicallyspeaking: America Online, Inc: R.I.P.

Tuesday, April 04, 2006

By any other name?


Any Questions?