spout

May 12, 2006 spout writing

A C# Bedtime Story Updated for C# 2.0

Seeing a reference to A C# Bedtime Story as a generic definition for .NET delegates in a recent DDJ article inspired me to post the new and improved version that takes into account C# 2.0′s anonymous delegate support. Enjoy.

May 9, 2006 spout writing

ATL Internals, 2e, available for pre-order

ATL Internals, 2e, this time with ATL 8, is available for pre-order on Amazon.com. For those wondering what the world needs with such a book, I refer you to the preface:

.NET has hit the Windows programmer community like a tornado, tipping over the trailer homes of the ways that we used to do things. It’s pretty much swept up the needs of most web applications and service applications, as well of most of the line-of-business applications for which we previously used Visual Basic and MFC.

However, a few stubborn hold-outs in their root cellars will give up their native code only at the end of a gun. These are the folks with years of investment in C++ code who don’t trust some new-fangled compiler switches to make their native code managed.” Those folks won’t ever move their code, whether there are benefits to be gained or not. This book is partially for them, if they can be talked into moving their ATL 3/Visual C++ 6 projects forward to ATL 8 and Visual Studio 2005.

Another class of developers that inhabit downtown Windows city aren’t touched by tornados and barely notice them when they happen. These are the ones shipping applications that have to run fast and well on Windows 95 on up, that don’t have the CPU or the memory to run a .NET application or the bandwidth to download the .NET Framework even if they wanted to. These are the ones who also have to squeeze the maximum out of server machines, to take advantage of every resource that’s available. These are the ones who don’t have the luxury of the CPU, memory or storage resources provided by the clear weather of modern machines needed for garbage collection, just-in-time compilation, or a giant class library filled with things they don’t need. These developers value load time, execution speed, and direct access to the platform in rain, sleet, or dark of night. For them, any framework they use must have a strict policy when it comes to zero-overhead for features they don’t use, maximum flexibility for customization, and hard-core performance. For these developers, there’s ATL 8, the last, best native framework for the Windows platform.

April 18, 2006 spout writing

WinForms 2.0 book just about ready

Mike and I submitted our last round of comments to the WinForms 2.0 book last night. The way it works is, after we submit the final” manuscript, the copy editor has his/her way with it. Then Mike read all 1300 pages, making sure that the copy editor didn’t change the meaning of anything. After that, the publisher moves everything from Word to Quark so that they have the control they need to produce photo-ready copy for the printer and sends us a set of PDFs.

With the PDFs in hand, we both read the ~1000 pages again (the move to Quark puts in the final styles), looking for things that got messed up during the move between software packages or new things that we notice. Theoretically, we’re only checking for formatting, but I always take this opportunity to read the entire book all the way through with fresh eyes (which is why I made Mike do the copy edits — so I had some time away from the book to get fresh again). That yielded about 50 pages of comments for the publisher to apply, including dropping about 5 pages of content that didn’t add enough value to be worth the space.

And then the iteration begins. We submitted 50 pages of comments on round 1, they provide round 2. We submitted 10 pages of comments on round 2, they provide round 3. Last night, we submitted about 4 comments, none of which would ever be noticed if they weren’t submitted. I asked for a round 4 (just cuz I’m anal), but for all intents and purposes, we’re done. And how do we party animals plan to celebrate? We’re taking 90 minutes for lunch. Off campus! : )

By the time all is said and done, not counting the front mater or the index, chapters 1-19 and appendices A-F will be 960 pages. It was about 1300, but we cut and we tightened up the styles to keep it to 3 digits while still covering roughly twice the technology (WinForms 2.0 is about twice as full-featured as WinForms 1.x). We were careful about not cutting anything useful, but we were ruthless about cutting stuff that didn’t meet the bar. Hopefully you’ll like the results.

Windows Forms 2.0 Programming is supposed to be printed the first week of May, so you should order yours today!

March 16, 2006 spout

I just watched my son learn to fear the computer

When kids are young, they have no fear of computers or anything else. My eldest, when he was 2.5, knew how to detect what OS he was running (I dual booted Win2K and Win95 at the time), remember which OS his games needed, reboot, choose the non-default OS from the boot menu and start his app like it was the most natural thing in the world. Even though he couldn’t read, he learned all of the functionality of the app by choosing all of the menu items and pressing all of the toolbar icons just to see what they did. He had no fear.

Tonight, my youngest was working in Word, writing a paper that’s due tomorrow (of course). After he was finished digging through the thesaurus on the right-hand side, he wanted to close that part of the window, but accidental pressed the X to close the document he was working on (which, of course, he hadn’t saved). When he was asked if he was sure, he thought he was being asked if he was sure he wanted to close the thesaurus, so he pressed Yes.”

The moment his document disappeared is when he learned to fear the power of the computer to throw away his work.

What did he do wrong? How do I explain it to him? What did we do wrong as an industry to teach my son to fear a tool meant to help?

March 11, 2006 spout

My $366 Vista PC

My $366 Vista PC

This morning, I read about a $159 computer from a review on the PC Magazine site:

I called my local Fry’s, and while they were no longer have the $159 sale (apparently quantities are limited”), they would be willing to sell me one for $171. While I was there, I got a 1GB memory upgrade and a 256MB ATI graphics card. Here’s the equipment I went home with:

  • Fry’s Genuine Quality 3131 PC: $170.99
    • 1.67GHz CPU
    • 128MB of RAM
    • 40GB HD
    • 10/100 integrated Ethernet
    • 56KB modem card
    • 52X CD-ROM
    • Stereo speakers
    • Keyboard + Mouse (including roller ball)
  • ATI Radeon 9550, AGP 8x/4x, 256MB DDR RAM: $94.99
  • 1GB RAM SIMM(for a total of 1.1GB of RAM): $99.99

I then added an LCD panel and a DVD drive I had laying around. Total cost $365.97.

When I got the PC, it came pre-installed with Lindows, the Linux distro meant to look and act like Windows. And I gotta say, it wasn’t too bad. Then, because they ship a free CD that runs directly w/o an install, I plugged in Ubuntu, another popular client-side Linux distro which was also surprisingly easy to use. Neither was as familiar as Windows XP, of course, but they were both a lot easier to use then the last time I ran Linux.

At 12:04am, I started the Vista Feb 06 CTP installation. At 12:44am, I was running Vista, it having recognized all of hardware (except the sound device) from my $366 PC, including enabling those cool glass” effects and the nifty animations, integrated search and all the neat things you’ve read about in the Vista reviews.

I know I work for the man,” but even so, I’m seriously impressed. The install was fast and seamless. The performance is way better than I thought it would be. And the little UI tricks are fabulous. I can’t do any media stuff cuz my audio device wasn’t recognized, but it was cool when I tried to play video and a DVD, that the Vista Media Center UI came up (my complete home entertainment needs are served with a coupla TVs, a Media Center PC and an XBox).

I know, I know, I got the OS for free, but come on! It’s still beta and it runs great on my cheapo PC! I don’t know what Vista’s going to go for, but I bet the whole she-bang (including LCD panel and DVD drive) could be had for ~$500 when Vista ships. Plus, I’ve only been playing with it for about an hour, but I already don’t want to go back to my XP boxes…

P.S. This post was composed and posted from visto,” my new Vista PC.

February 25, 2006 spout

testing

1.2.3...
February 25, 2006 spout

PM Skill #9: Learn From The Masters

Of course, when you’re learning to do something, whatever it is, you should check out how a lot of different folks do it. For example, the author of The Game learned to be a PUA from a variety of sources. One PUA guru of PM love is Brad Abrams and he regularly spills his guts onto his blog (plus, you’ve got to love his numbering scheme…):

Enjoy!

February 24, 2006 spout

PM Skill #8: Give Credit Freely

Engineers are people, too, and appreciate pats on the back as much as anyone. In fact, many of us are so socially needy that we’re willing to trade attaboys” for money (and hence the fuel that drives the OSS community).

The beauty: praise is cheap. Blocks of plastic, plaques, bowling night morale events, etc, all cost money and can be the cause of derision as often as pride. On the other hand, sincere praise freely given doesn’t cost a thing, but it’s often much more appreciated.

So why doesn’t praise happen more often? I think one reason is because we’re engineers, so we’re trained to focus on where our work falls short, often completely ignoring when it lives up to expectations. Also, sadly, it’s not uncommon for folks to want to take credit for themselves . However, as PMs, we have to remember that just because we give the presentation or write the status email doesn’t mean that we did the work. We need to be explicit about giving credit.

So, the next time you’re giving a talk, don’t say And this feature does …” say This feature, which Pete implemented, does this…” When you’re writing that status email, don’t say We implemented feature XXX this week…,” say Carol and Joe implemented feature XXX this week…” As soon as you do this, Pete, Carol and Joe know that you appreciate their work and that whoever you’re communicating with knows that they did good things. Appreciated team members are happy team members.

So, does that mean you should praise things you don’t necessarily appreciate, just to keep your team motivated? Absolutely not. As soon as the praise sounds empty, you’ve done more harm than saying nothing at all. Definitely look for opportunities to give credit, but don’t make stuff up that you don’t believe.

But what do you do to get praise for your own work if you’re busy doing all of this praising of your team mates? Nothing. Praise from yourself is called bragging” and it makes you look stupid (I know this because I struggle w/ this constantly). Give your praise freely and let others do the same. If you’re effective, people will say good things and that’ll be enough.