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.
Thursday, May 25, 2006, 3:45 PM in .NET
WinFX Beta 2
Beta 2 signals the beginning of the final drive towards RTM for WinFX:
Enjoy.
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.
Friday, May 12, 2006, 12:24 PM in Fun
Code Monkey: The Song
Check out the Code Monkey mp3!
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.
Sunday, May 7, 2006, 2:53 PM in Fun
There's a Windows "Brat Pack?!?"
Not only does Amazon.com have a traffic ranking for sellsbrothers.com (80,616 -- this number sounds too high to be good : ), but there's a web site review claiming that I'm one of the "Windows Brat Pack." I have to associate with Anthony Michael Hall or Rob Lowe from this bunch (they seem the most geeky), but them who's Don and who's Tim? Definitely, Ted Pattison is Judd Nelson...
Friday, May 5, 2006, 2:12 PM
CSD Wants You
Do you want to build the next level of capability and productivity on top of the .NET Framework and WinFX? Do you want to work on the same team as Clemens Szyperski, Tony Williams, Chris Anderson, Don Box, Doug Purdy, Steve Maine, Yasser Shohoud, Keith Short, Savas Parastatidis, Martin Gudgin, me and a host of folks so busy being smart that you don't even know their names? Do you have a long list of where Microsoft is failing folks building distributed application and a driving need to get them fixed? If so, the Connected Systems Division is hiring (we're the same folks that own Indigo, InfoCard, Windows Workflow, Active Directory and BizTalk).
Mail something interesting to csdjobs@microsoft.com to apply today.
Wednesday, Apr 26, 2006, 12:59 PM
Rory on Windows Mobile Dev. @ PADNUG Tonight
Rory's giving a PADNUG talk on Windows Mobile Development in Beaverton, Oregon tonight. Should be tons o' fun.
Thursday, Apr 20, 2006, 5:37 PM in Tools
Visual Studio Express Editions Free4Ever
Top-notch tools at rock-bottom prices. Enjoy.
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!