You've reached the internet home of Chris Sells, who has a long history as a contributing member of the Windows developer community. He enjoys long walks on the beach and various computer technologies.
Friday, Jun 16, 2006, 5:21 PM in The Spout
PM Skill #9: Team Off-site
I've been doing some design work with a small part of my new team for a few months now and we've gotten largely on the same page with each other. However, there were 20-some odd folks that we hadn't done a good job keeping on the same page, so ChrisAn proposed an off-site. I proposed the format:
- 45-minute slots for each "bucket" of design functionality with the owner of the bucket leading the discussion (my boss, Adam, wanted to make sure that at least half of each talk was *not* lecture from the speaker). Each session was followed with a 15-minute break.
- 90-minute break-out sessions where each person had to pick their technology bucket and work with the owner to produce a 2-page functional spec and a 2-page technical spec.
If this format sounds like a tweaked DevCon to you, then you know where I got the format.
We started at 8am (1-2 hours before most folks start their day @ MS), so that gave us a little shared adversity to help build the team.
The 45 minute sessions made sure that the presenter had to get to the meat quickly, while the 15 minute breaks allowed folks some downtime to catch their breaths, check their email and chat with their brethren (this was a new team, so "bonding" time was an important element).
The 90 minute break-outs allowed folks to self-select into the bucket that most interested them, validated that we had the right buckets (any bucket w/ too few people would be cut, whereas any bucket w/ too many people would be split), helped establish the base-line for each bucket's future (we used the off-site to kick-start the buckets) and gave the team a seemingly impossible task given the amount of time they had (shared impossible task == more team building).
Like your average DevCon, the "DesignCon" worked pretty well. We generated a ton of issues in each bucket that the owner hadn't yet thought of and gave the entire team a kick-start down the road to shared pov. Also, since we had some folks from other, related teams and from upper management, we made sure we were communicating up and out as well as internally.
Of course, just as no DevCon is perfect, neither was the DesignCon, but if you're looking for a way to get your team pointed in the same direction, I find the DesCon format a good one.
Wednesday, May 24, 2006, 11:09 AM in The Spout
T-Mobile Smartphone Fun Facts
A coupla weeks ago, the AT&T wireless cell phone reception at my house went through the floor. I called up the nice folks at Cingular and they guaranteed me that my reception would improve if I moved my old AT&T account to Cingular (Cingular owns both, after all). When that didn't work, I went to the mall, signed up for T-Mobile, went to my house and, when the reception was much better, had 'em move my phone number over. Since then, I've been moving my smartphone along with me (I have a QTEK 8500 on order, but my Audiovox 5600 is still the greatest thing to happen to me since my first laptop). Here's what I've found:
- To get the data working (assuming you've selected that account option from T-Mobile), set up a GPRS connection that connects to the internet and uses "wap.voicestream.com" as the Access Point (no user name, password or DNS addresses). There's no need for a proxy connection, but make sure that your IE connection options use the internet as its network (I mistakenly had it set to WAP at first).
- To use the phone as a modem for use in connecting to the internet, pair the phone w/ your computer using Bluetooth (make sure to put the phone into discovery mode so that Windows can find it) and then use the new COM port that Windows adds (COM4 on my machine) to set up a dial-up network connection, using "*99#" as the phone number (no user name or password). I get this working when I called T-Mobile and they walked me through the setup, even though the Audiovox isn't a supported phone and the tech support guy had no documentation on one.
- This isn't phone related, but once you've got a T-Mobile data plan, you should be able to use WiFi from your laptop at a T-Mobile HotSpot by using your 10-digit phone number as the user name and the last 4 digits of your SSN as your password (I haven't tried this yet, but I plan to!).
Theoretically, I should be able to use ActiveSync via Bluetooth, but I haven't figured out how to make that work yet.
So far, I'm loving T-Mobile, not just 'cuz of the rates and the features, but also because they seem to understand that some folks aren't going to want to be stuck with the phones that they sell and they actually help you make them work. T-Mobile's not the biggest network, but apparently that makes 'em try harder. Recommended.
Tuesday, May 23, 2006, 11:25 AM in The Spout
Don't want to skew Amazon reviews
While I don't mind being called tacky by one of this generation's best technical writers, I do mind the idea that the folks that would abuse the system would skew the Amazon reviews. While I don't hide the fact that I ask people to post reviews for my book, I've always been proud that I've never asked them what kind of review to post and, when Amazon's system had a hiccup recently, none of my books had any reviews posted by me (unlike 50% of the other books on Amazon).
So, the idea that folks would just post a review having not even read the book was something I never considered (and why you don't want me writing your security subsystem). So, consider this offer rescinded. You can post a review on Amazon or not, good or bad, as you choose.
However, as to the signed copies, I still want you to have those. So, the first 5 people to tell me the 2nd word in the 3nd paragraph of prose on page 444, I'll send you a signed copy. Whether you purchase a copy or just go to the bookstore and look up the word is up to you.
Monday, May 22, 2006, 5:13 PM in The Spout
Google's 2-day interview process
Wow. Two days of interviews for a contracting position at Google...
Monday, May 22, 2006, 3:50 PM in The Spout
Post an Amazon review and you get my royalties
Update: Whoops -- didn't think of the ways to abuse this system. I've updated the offer here.
If you post a legitimate review on Amazon for Windows Forms 2.0 Programming before the 4th of July, 2006, I will personally send you my royalties for that copy of the book ($4.77 -- don't spend it all in one place : ).
You have to put your email into the Amazon review so that I can communicate with you about your address and Sells Brothers, Inc. can send you a check, but good review or bad, my royalties for one copy of the book are yours.
The first five reviewers also get signed copies shipped to their home (I'll get Mike to sign it, too). Again, the email needs to be in the post.
Friday, May 19, 2006, 7:49 PM in The Spout
WinForms 2.0 book @ the printer
The one where the brothers Sells and I travel to Ann Arbor, MI to see Windows Forms 2.0 Programming being printed. It's well worth the trip, if you can talk the publisher into arranging it.
Friday, May 19, 2006, 12:00 AM in The Spout
The Sells Brothers Meet the Edwards Brothers
Years ago, Tim Ewald made an off-handed comment about how cool the real book printing process was and that I should take the boys to see it if I ever got the chance. Two weeks ago, we got the change and this is what we saw.
The printer for Windows Forms 2.0 Programming was Edwards Brothers, Inc. in Ann Arbor, MI. The boys and I took the 8pm flight from Portland, OR to Vegas, then the 11pm flight to Detroit, arriving at 6am, having gotten about 3 hours of sleep during the flight (the boys first redeye!). On the way out the door, we'd been a little rushed (I was trying to finish off the flooring in the new laundry room so that Melissa could have her washer and drier back after its long absence during the renovations), so had left all of the carefully prepared contact info and directions sitting in my office, meaning that the first thing we had to do was to sit in the airport near a hotspot and download driving directions. This and a trip to the restroom for a teeth brushing and a fresh shirt and we had caught our 2nd wind.
We picked up our car and had a very pleasant trip to Ann Arbor, where we stopped at Mike's Coney Island for pancakes and omelets (I had the pancakes and my youngest surprised the hell out of me by ordering an omelet -- they grow up so fast!). We arrived at Edwards Brothers around 7:30a (in some time zone) and learned that they had been in business for a little while longer than Sells Brothers, Inc:
Unfortunately, we'd arrived before our escort, the very lovely Ms. Cindy Rohraff, so she caught us napping in the parking lot around 8am. Still, as we entered the lobby, it was clear that they were as excited to show us around their operation as we were to be there:
After Cindy purchased caffeinated sodas (Microsoft has spoiled me enough that I hadn't come prepared to actually *purchase* sodas...), we began our tour and the first thing we saw was a big basket of the rejected bits of my book:
As it turns out, these bits weren't rejected on content, but rather on printing quality. <whew>
The size of the printing floor is enormous. It felt like 4+ football fields in there and I'm sure I saw at least 50 different books in various stages of production. In this picture of the boys and Daryl (in charge of printing our job), you can get some small sense of the size of the place:
For all those jobs, Edwards Brothers employees are constantly throwing away covers, inserts and "signatures" (bundles of pages that get stuck together to produce a book) that don't meet their quality standards. In fact, I saw one guy throwing away what must've been 100 freshly printed book covers because he'd examined one of them with a magnifying glass and found a flaw. These guys are serious.
Next, we found our way to the input end of the printer, where they feed in 2-ton rolls of paper:
If you look closely, you'll see that their are two rolls of paper connected here. Only one is fed through at a time, but when the first is out, the 2nd is spliced in automatically without ever slowing down the printing process, providing a virtual infinitely long roll of paper. A cache of paper is kept on rollers to enable the time it takes to splice:
When the splice happens, the rollers at the top and the bottom (not shown) get close together as the cache is used up and then after the splice, the rollers expand again as the cache fills up. That's not to say that the printer doesn't stop at all. When it's running, the paper goes through the process so fast, the words and images are a blur, but whenever there's a problem, the process grinds to a halt and restarts w/o issue.
After the cache, the paper feeds into the printing machine (or machines, depending on how many colors the output needs):
and comes out all printed:
The printing itself happens with ink that's been spread over thin metal plates containing the laser-etched images of the book in 48 page sets, one plate for each side. The paper goes through the printer between the two plates. Here you can see Daryl changing the plates:
To support the ability to change the plates, the printer opens in the middle with hand cranks, which Daryl let the boys operate:
Daryl was one of the long list of people that bent over backwards to show us around and explain to us the process (Thanks, Daryl!). The plates themselves are shown here:
After the pages are printed, they're rolled and cooled to set the ink:
After the ink is set, the paper goes into a machine that cuts it and turns it along three separate paths (you can see one of the paths continue over the top of the cutter):
Each path of paper is routed through a folding and bundling machine:
Once out of the bundling machine, the bundles are gathered together:
compressed (losslessly):
and stacked on pallets in sections (my book had 27 sections) for transport to the bundling department:
In my case, the cover:
and the color insert:
were printed by another vendor, but Edwards Brothers is fully capable of printing these elements. In fact, my book is pretty trivial compared to the tricks that the EB folks can do. I think next time, I'll ask for a two-part cloth-bound hardcover with stained edges just to test 'em. : )
All 6500 copies were printed in one day and stacked over in the binding section of the printing plant (and again, notice the size of this place):
All of the sections were then stacked into the collating machine:
After this, my batteries ran out of power temporarily (they helpful staff at EB replaced 'em for me), so I can't show you pictures, but once the books are collated and the spines bathed in glue at two temperatures (275 and 300 degrees Fahrenheit), the covers were attached and crimped and the books given "the wheel treatment" as they exited the machine on their way to the cutter:
The cutter was this very scary machine they called "the guillotine" and was able to cut all three edges of my 1000 page book in a single slice and then stack the books into neat piles:
Not all the books survive the trip through the cutter (much like a real guillotine):
Once the books have been trimmed, they're boxed and put on a conveyer to the shipping department. The shippers are responsible for lifting every single book (I apologized for my wordiness) and putting them onto palettes that are wrapped in plastic and hoisted by forklift:
The forklift stacks each palette in the warehouse for shipping:
That's not all. The little bits of paper that were the edges of my book and the low quality copies are shredded and compressed into giant chunks:
Like the books, the cubes of paper are stacked in the warehouse for shipping:
The waste paper is shipped off to a recycler for use in other books, whereas the books themselves are shipped to distributors, like Amazon, Borders and Barnes & Noble. By now, the first of the pre-orders should be being fulfilled. The ones that aren't sent off for sale are given to vain authors that need a physical manifestation of their work to really understand the amount of time and energy that goes into producing their book:
Special thanks go to Cindy, who was our most gracious hostess and to the staff and management of Edwards Brothers, Inc, for their work in producing such a high quality product. I also have to thank the boys for their infinite patience in indulging their father traveling to the middle west of our country to hang out amongst the stacks and stacks of books in progress. And, of course, thanks go to the readers. I hope you enjoy reader the book as much as I enjoyed working on it.
Friday, May 12, 2006, 8:55 PM in The Spout
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.
Tuesday, May 9, 2006, 8:14 AM in The Spout
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.
Tuesday, Apr 18, 2006, 10:07 AM in The Spout
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!
Thursday, Mar 16, 2006, 8:36 PM in The 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?
Saturday, Mar 11, 2006, 2:15 AM in The Spout
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.
Saturday, Feb 25, 2006, 10:59 PM in The Spout
testing
1.2.3...
Saturday, Feb 25, 2006, 7:28 PM in The 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...):
- PM Tip #21: Sanity Will Prevail
- PM Tip # 32: Nothing kills excitement like ambiguity
- PM Tip #57: Write the agenda on the board
- Peanut butter and software planning
- PM Tip #73: The "Be More Visible" Sham
- Program Manager Wisdom #78: Reveal your stupidity
Enjoy!
Friday, Feb 24, 2006, 3:20 PM in The 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.