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, Aug 18, 2006, 11:48 AM in The Spout
Fixing the Internet
About 18 months ago, I asked for an intern and boy did I get one. He doesn't want to be mentioned, but he's done some pretty cool stuff with the site in his spare time (he's also a very busy web development consultant):
- Dug into what it would take to rebuild sb.com from scratch in ASP.NET 2.0 (although we differ on the moral implications of the license on Community Server 2.0)
- Updated 404 page that tracks usage on dead/non-existent links, even missing URL #frags
- Server-side link and client-side #frag forwarding
- tinysells.com implementation (e.g. www.tinysells.com/4) and administration console (i.e. book co-authors)
#4 was very cool, because it enables me to put links into my writing that are easy for the reader to type and that are easy for me to update when the real URL changes (none of the other URL redirection sites allow administration post-facto as far as I can tell).
#3 is also cool, because of the primitive site authoring tools I use (FrontPage), so when I move spout/index.htm (the content of spout/default.aspx) to spout/archive.htm (the content of spout/archive.aspx), all of the links that folks have put into their own content are broken. Now, we've got a means for tracking when those links are broken and for forwarding them, even using my silly client-side name #frags. That even means that when folks form their URLs incorrectly (this one was never right and should always have been this) can be caught and corrected on my side.
Anyway, I wish I could tell you about this guy 'cuz he does great work and he deserves move business. Hopefully this post will shame him into it. : )
Friday, Aug 18, 2006, 9:22 AM in The Spout
The Internet Is a Meritocracy
It's easy to think that if you're already got a high page rank in google, that you'll get more than your far share of traffic, polarizing the internet into a small number of sites that get all the hits. Luckily, according to "Topical interests and the mitigation of search engine bias," published in the Proceedings of the National Academy of Sciences, that's not the case:
"Our result has relevant conceptual and practical consequences; it suggests that, contrary to intuition and prior hypotheses, the use of search engines contributes to a more level playing field in which new sites have a greater chance of being discovered and thus of acquiring links and popularity, as long as they are about specific topics that match the interests of users as expressed through their search queries."
In other words, if you've got something relevant to say, the folks that care will find it. Yet again, letting the internet decide yields the best result.
Source: Is there a googlearchy?
Tuesday, Aug 15, 2006, 9:56 AM in The Spout
$33 On Bookpool: Windows Forms 2.0 Programming
The nice folks at Bookpool are running a special on Windows Forms 2.0 Programming: only $33! Enjoy.
Monday, Aug 14, 2006, 10:24 AM in The Spout
24 and the Comic Book Archive
I'm an avid 24 watcher and one of my favorite parts of the show (offsetting the fact that Jack never so much as cracks a smile let alone giving us a nice "Wahoo! I did it! I rock!") is when one of the technies "sends her screen" to another computer. Man! I want that! It's so often the case that I've got a bunch of morning news sites and documents I'm reading through that I get onto one computer in my house and want to send to another computer for reading (maybe it's the computer downstairs or the Tablet), but there's no way to do that. I want a little glyph next to the Minimize button called Send that lets me pick a computer to send the screen to.
And what does that have to do with the Comic Books Archive, which was archiving digital images of almost 3000 comic books at last count? These are folks that have figured out how to digitize a specific media and provide a specialized format (the Comic Book Reader format) and provide a specialized reader (cdisplay), which would make an excellent thing to send to a Tablet PC, along with PDFs, Word docs, web sites, 18,000 books from Project Gutenberg, and anything else that you'd like to share between your own computers or those of your friends and colleagues.
In April of 2005, Paul Thurrott mentioned something called "application sharing" that would enable sharing of individual apps via terminal services instead of entire winstations. I don't know if we're actually building such a thing, but I in addition to being able to reach from one computer to another to grab an app, I'd also like to send one.
Wouldn't that make Jack proud?
Sunday, Aug 13, 2006, 8:30 AM in The Spout
Get 'Em While They're Hot
Even though the 1st printing was just in May of this year, Windows Forms 2.0 Programming just entered the 2nd printing. Thanks for reading!
Friday, Aug 11, 2006, 1:07 PM in The Spout
We Sold A Copy of ATL Internals!
You said it couldn't be done, but ATL Internals, 2e, has a review! Thanks, W.
Tuesday, Aug 8, 2006, 1:29 PM in The Spout
The Media Center PC ain't a desktop; it's a server
I've seen some flack lately about how the Windows Media Center Edition-style computers haven't changed how folks consume content. Man, it sure has changed mine. Sure, you can put a MCE box on your desk and watch TV from your chair, but who the hell wants to do that?
A MCE box belongs in a living room or bedroom somewhere or even in a server closet. In fact, while I have my MCE box attached to my bedroom TV, I use it as a media server for music, video, photos and recorded TV shows. My media is available at every PC in my home and at every TV w/ an MCE extender box (I have an XBox on one TV and an XBox 360 on another). This setup allows my media "room" to be my entire house and allows my family room media setup to consist of an HDTV and an XBox 360.
What's not to love about that?
Thursday, Aug 3, 2006, 10:57 AM in The Spout
3 Degrees of Email Separation
Microsoft is a sea of answers if only you can find the right person to ask. In my experience, I get a lot of those incoming questions, both internally and externally. Often, I don't know the answer, but I can direct the email to someone closer, who will either know the answer or the right person to ask and so on.
Depending on how well a person in this chain is at answering this email, this process can take minutes or days, but it almost always ends up with the person that knows the answer within 3 emails. Often this chain involves an internal mailing list (lots of external questions end up on internal email aliases, insults and all : ), which doesn't necessarily shorten the chain, but it does tend to shorten the response time.
I consider the ability to follow this chain to an answer one of the huge benefits of my industry -- I wish I was able to tap into it in other disciples, e.g. health care, financial, home repair, etc. Likely these chains exist in other areas, too, I just don't know the first link in the chain. I actually tried to establish a financial chain one time, but that just pissed off the guy who was always my first email. : )
Sunday, Jul 30, 2006, 7:35 PM in The Spout
Custom Settings Provider in .NET 2.0
I updated the SDK RegistrySettingsProvider to implement IApplicationSettings and built a sample to demonstrate how to integrate it (or any .NET 2.0 custom settings provider) with the settings designer-generated code. Enjoy.
Saturday, Jul 29, 2006, 1:22 AM in The Spout
Laura Foy makes on10.net for me
I had my first on 10 experience today (I was following the links to the PhotoSynth stuff) and I have to say, I instantly fell in love with Laura Foy. I know that Erica Wiechers (of The .NET Show and MSDN TV) has a huge geekboy fan base (and it was fun to work with her @ MSDN), but Laura's interviewing style and her personality made me subscribe to her interviewer-specific RSS feed on 10.
In fact, Laura makes me wish I did something besides developer-related stuff. What do I have to do to be interviewed by Laura Foy?!?
P.S. I wanted to title this blog entry "Laura Foy is a major babe," but Laura is a fellow Microsoft employee and that would be inappropriate. Also, the whistling and cat calls would be way out...
Sunday, Jul 23, 2006, 2:53 PM in The Spout
An Embarrassment of WPF Riches
I just realized that Avalon is getting a book treatment unlike any other topic in my memory:
- "Essential WPF," by Chris Anderson, architect on the MS WPF team
- "Applications = Code + Markup," by *the* Charles Petzold
- "WPF Unleashed," by Adam Nathan of ".NET and COM: The Complete Interoperability Guide," *the* book on .NET interop and the correspondingly wonderful pinvoke.net.
- "Programming WPF," by Ian Griffiths and Chris Sells. Ian's depth of knowledge of graphics -- down to the hardware -- continues to amaze me.
User and GDI had Petzold. Win32 had Rector. MFC had Prosise. COM had Box. Indigo's got no big names I've yet seen, but Avalon gets Anderson, Petzold, Nathan *and* Griffiths?!? It's going to be a bloodbath in the market, but the readers are going to benefit. Why couldn't I have picked a lightweight topic, like, oh, I don't know, ASP.NET 2.0? : )
Monday, Jul 17, 2006, 12:12 PM in The Spout
DVD Wars. Huh. What is it good for?
Here’s the thing I don’t get about the next-gen "DVD Wars." When I moved from VHS to DVD, I got much higher quality output and random access to content. Given that DVDs are already letterbox, what do I get moving to an HD DVD format? Is the quality that much better? Are there other features I get that I’m going to really want? The only feature I wish I had was the ability to easily burn the main content of my DVDs to my computer for random access like I get w/ music today. Will the next-gen formats support that?
Thursday, Jul 6, 2006, 11:29 AM in The Spout
Struggling with NUnit (2.2)
The one where I get System.IO.FileNotFoundException in NUnit in a bunch of different ways and suggest some possible solutions.
Thursday, Jul 6, 2006, 12:00 AM in The Spout
Struggling with NUnit (2.2)
I had a very unpleasant afternoon trying to get NUnit working, so I thought I'd share my troubles and my solutions (such as they are). A search revealed a lot of folks with the same troubles, but precious few explanations or solutions. The NUnit Quick Start documentation does a wonderful job telling you how to write a simple TestFixture class with one or more Test methods (and even an optional SetUp method). However, as far as I could tell, there wasn't any part of that tutorial that said "Hey! Add a reference to 'nunit.core.dll' as well as 'nunit.framework.dll' to your project or neither nunit-gui nor nunit-console will work;" you'll get a System.IO.FileNotFoundException when you don't have nunit.core.dll (the Exceptions Details menu item doesn't help):
Also, when you start up nunit-console, you better darn well be in the current working directory of the test assembly as well as nunit.core or you're going to get the same message in the console. Likewise, if you start nunit-gui. Further, if you just run nunit-gui, create a new project and then add an assembly, you better have known to
save the .nunit project file in the same directory as the assemblies you add, or you'll be getting the same message again.
And, as if that weren't enough, you'll get this message again if you add nunit integration as an external tool to VS05 (via the Tools | External Tools menu item) using the instructions in the docs. The docs say to use $(TargetPath) and $(TargetDir), but those variables expand to the obj directory on my machine (although that seems wrong to me), not the bin directory, and the obj directory doesn't contain the referenced assemblies.
I never was able to get a VS05 external NUnit tool to work.
Luckily, it's very cool that nunit-gui doesn't keep test assemblies locked and notices when an assembly has changed from underneath it, so that once I do get it started with the appropriate working directory, it works nicely.
As it turned out, there were a lot of ways to get that FileNotFoundException message and I'm pretty sure I found them all before finding any ways to actually make nunit work. None of these things are NUnit's fault it's damn hard to do dynamic assembly loading in .NET but it's still on you to make sure NUnit is configured properly.
Finally, the tutorial
shows but doesn't say that you better make your test methods public. Since NUnit uses Reflection, it doesn't need the classes or the methods to be public, but I guess they decided that was an interesting knob to let the developer turn. I'd have preferred to let the default permissions work (internal) to save myself typing, but that's just a nit.
Tuesday, Jun 27, 2006, 12:01 AM in The Spout
When to ship a book is hard to know these days...
Mr. Petzold beat me to the punch on the Windows Forms 2.0 book and he's going to do it again on the RTM Avalon book. However, such a thing is dicey, as Mr. Petzold points out.
It was in researching the Windows Forms 1.0 book when I grew to be scared of finalizing a book before the technology was finalized; that's when they added AllowPartiallyTrustedCallersAttribute and it screwed up the entire No-Touch Deployment story. Toward that end, we didn't ship the WinForms 2.0 book 'til after the .NET 2.0 bits went gold and we won't ship the paper copy of the Avalon 1.0 book 'til then, either (although I understand ORA is going to be shipping early electronic drafts of our work as we do it). I have to sacrifice 2-3 months on the shelves to my competitors, but I get to be less scared of big, last minute changes.
It's a judgment call, though. In this era of books with 12-18 month shelf lives, I can't say Mr. Petzold's not right...