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, May 28, 2004, 5:43 PM in The Spout
Jury Duty
Here. The one where I spend a day at jury duty but don't actually get to serve on a jury (and realize that serving on a jury was pretty darn unlikely in the first place).
Friday, May 28, 2004, 12:00 AM in The Spout
Jury Duty
Friday, May 28, 2004
Today was the first time that I was called to jury duty, even though I've been eligible for almost half of my life. I always dreaded being called when I was a consultant because the $10/day didn't cover a day's meals, let along the revenue I would miss as the sole breadwinner of the family. However, much like the body puts off illness when you just can't afford to take the time (stress has its uses), my dread seems to have put off my jury duty 'til I had a full-time job with enough redundancy to live w/o me for a day or so.
Even when your job pays, most folks seem to want to get out of jury duty in any way possible. George Carlin says that the best way to get out of it is to admit to the judge that you know how to tell if someone is guilty, "It's all in the distance between their eyes..." Personally, I'm a believer in America's system of justice (I've often fantasized about a life as a prosecuting attorney and as a judge), so I didn't mind serving my turn on a jury. Unfortunately, it was not to be. While I went down to the court house, my number wasn't even called to appear on one of the two juries needed today.
Doing a little math, I found out that the overall odds of me actually being on a jury were actually pretty low. Here are the stats:
47 people showed as potential jurors on 2 juries
28 were called for the 1st jury, of which 12 were needed
15 were called for the 2nd jury, of which 6 were needed
According to the State of Oregon Washington County Jury Director, 70% of people that show up for a trial see the assembled jury and decide to take the plea bargain after all
Therefore:
Folks called to jury duty that were actually put on a potential jury: 91.5%
Percent of juries, once formed, that are used: 30%
People called for a jury actually placed on that jury: 42%
My chance of actually serving on a jury today: 11.5% or less than 1 chance out of 8
The opportunity to make the US justice system real for the brothers Sells w/o them actually committing a crime: priceless
Wednesday, May 26, 2004, 9:17 PM in The Spout
This Absolutely Boggles My Mind
Here.
Steven Edwards is an OSS guy working with the Wine guys to build a new version of Windows from scratch called ReactOS. They've got 20-30 people, they've been working on it for a few years and they're 6-8 months away from getting client-side of networking to work to the point that it supports HTTP.
Oh my god.
Why would anyone want to waste time doing this? I don't even like to build my own autocomplete listbox when it's already been done and that's only about 12 lines of .NET code! Why the hell would anyone want to build Win32 all over again, let alone Win16 (what the Wine guys do)?!? We have all these programmers with all this free time and all they can think to do is to clone OSes and applications that have already been built? Why not add something new into the world?
I just don't get it...
Tuesday, May 25, 2004, 12:00 AM in The Spout
Post/Reply Alphabet Soup
Newsgroups, mailing lists, web forums and blogs (with comments) are all very similar. Fundamentally, they'll all about posts and replies. Sometimes the posts are replicated to servers around the world, acccepting replies in the same way. Sometimes the posts are replicated to a set of subscribers via SMTP and replies come in via POP3. Sometimes the posts are part of a web page and provided via HTTP, using HTML forms to take replies. Sometimes the posts are served up via a centralized server using HTTP + RSS or HTML, accepting responses via HTML forms or the CommentAPI. Fundamentally, it's all the same thing, though: posts and replies. Why do I have to suffer with the limitations of any one of these protocols just to hang out with my friends to talk shop?
I don't like newsgroups because I don't like having a separate reader outside of my mail reader (and NewsGator ain't anywhere close to what I want yet). Plus, newsgroups are very susceptible to spam, although the MS newsgroups are carefully patrolled to kill it before it spreads.
I don't like web forums because I either have to poll the site (which RSS has cured me of) or the integration of the forum into my mail reader is limited to notification only. Plus, every single web forum has a vastly different UI and set of features and the inconsistencies bug me. On the other hand, web forums are pushing the envelope on features that I really want, like author and content ratings. I love mailing lists, but don't want to duplicate any of the WinFX newsgroups in mailing lists just yet to avoid fracturing the budding developer community.
Blogs are wonderful, of course, and RSS is the only thing that's worth me spinning up a whole separate reader than my mail reader, but it's impossible to follow a thread of conversation between blogs or comments on other people's blogs. On the other hand, the server-per-poster model is great because I can just subscribe to the posters that I like, increasing the signal to noise ratio substantially.
I think we should pack all of the features of mailing lists, newsgroups, web forums and blogs into a single backend and expose it via HTTP, NNTP, SMTP/POP3 and RSS as appropriate. Is it time for a new protocol that can be dumbed down to the existing protocols for the diehards that won't give up their readers of choice? Personally, I'd like to get everything via SMTP/POP3 except for my RSS feeds (although I don't know why -- maybe it's just that I can't seem to get a handle on a keyboard-only mode for RSS reading in NewsGator the way I can in SharpReader...).
DiscussFriday, May 21, 2004, 1:54 PM in The Spout
Employers Check References
I got an email asking to serve as a reference for a guy I'd never heard of today. Just so you know, especially in a down economy, employers check references. Also, it's a good idea to ask a reference between adding them to your resume so they don't have to respond, "Roy? I don't know anyone named Roy..." : )
Friday, May 21, 2004, 1:08 PM in The Spout
Another Killer App for Web Services
Here. The one where the idea of intranet services being exposed as web services gets me hot.
Friday, May 21, 2004, 12:00 AM in The Spout
Strengths and Weaknesses
Friday, May 21, 2004
I took a Gallup questionnaire and 3-hour seminar on the philosophy of strength-based development. The central idea is to identify one's strengths and concentrate on those. This is opposed to general thinking which says that you should work on your weaknesses. According to Gallup, no one can really change their weaknesses much, but if you focus on your strengths, you can really make a difference in yourself.
As evidence of this claim, Gallup sites a study of teaching speed reading to average and above average readers. The average readers started at 90wpm and the speed reading course increased their speed to 150wpm, an increase of 67%. The above average readers started at 350wpm and increased by more than 800% to 2900wpm. Or, to put it another way, it was 10x more effective to concentrate on a strength than to try to improve a weakness.
The dark subtext of the strength-based point of view is that if I can't really fix my weaknesses, then I can only really do well in certain kinds of ways. I don't like this idea. It sounds too much like fate, which just pisses me off because I don't like the idea that it's my nature and not my effort that determines how well I do at something.
When I mentioned this to one of instructions of the seminar, she looked at my strengths and said, "Oh, I see why you want to think it's you that governs how well you do," which didn't make me feel any better. My strengths, in order, are Achievement, Command, Communication, Learner and Intellection. In other words, I like to get things done, tell people what I think, learn new things and think about them. This set of strengths wasn't really a surprise, but here's one: I think DevelopMentor was speed reading for my particular strengths. DM was an environment that encouraged all of my strengths and I stumbled onto it by pure, dumb luck.
On the other hand, before DM, I wasn't nearly the Communicator that I am now. In fact, I think it would've been one of my weaknesses had I taken the Gallup questionnaire 10 years ago. And if that's the case, I would have been discouraged from spending too much time working on it by, for example, teaching, presenting at conferences and writing courses, articles and books, which I think would've been a shame, because I really love to write.
So, while I like the idea of concentrating on one's strengths, I still don't like the idea of ignoring one's weaknesses.
Friday, May 21, 2004, 12:00 AM in The Spout
Another Killer App for Web Services
Friday, May 21, 2004
At the last Applied XML Dev.Conf., I went ga-ga over Amazon's use of web services in their business and called it the "killer app for web services." Now I'd like to revise my statement: it think that it's one of the killer apps for web services.
Here's another one: exposing the functionality of all of those internal corporate services apps that are now exposed as web sites as web services instead.
Now that I've been back inside of a giant corp. adrift in a sea of sites to "help" me with the various "business processes" that I have to execute, I yearn for them all to be exposed as web services. There are several problems with the internal business-processes-as-web-apps morass that we're stuck in:
The web apps are generic for all uses across all companies, which means that there are tons of options for other uses then mine, but I still have to deal with the UI for all of the options
To get my business tasks accomplished, I have to string together several of these web apps in series, manually moving the data from one to the other
Just going from one page of a web app to another, even in a corp. intranet, is so slow when you are always going to pick the same options and your fingers want to be far ahead of what the server can handle when generating the UI a page at a time
For example, here at MSDN, we have package source code sent to us by authors into an MSI with a EULA, code sign it with the Microsoft key and submit it for download to the MS download site. A year ago, it took me an hour of instruction to understand the process and it involved using VS.NET to build the MSI and two separate web sites, both with several pages and tons of fields to get a folder of files available for download by our good readers. This took me 30-60 minutes to do each time I had to do it, which made me cranky, so I built this:
This tool takes the minimum number of fields necessary to turn the source files provided by the author into a signed MSI. Plus, it's a smart client, so the UI is snappy and I can make it smart about what specifically it should remember between sessions for our own uses. And, I can provide a single UI for multiple back-end services, duplicating the data between them as necessary w/o requiring the user to duplicate the data for me.
The way I was able to minimize the number of fields was to build all kinds of assumptions into the app based on how MSDN does things, aka the business rules, and build my own app that programmatically generates when I need. In other words, my app combines business rules with programmatic interfaces to save me and my friends all kinds of time (the process is now about 10x faster than it used to be and 100x less tedious and less error prone).
And that's the beauty of allowing programmatic access to internal business processes: it allows each group in the company to build specific apps that meet their needs more specifically, letting them consolidate the processes into their own group-specific tasks. Not only does this speed things up and increase consistency for our customers, but it also removes the tedium and lowers the possibility of human error. If you could gain all those benefits, would you do it? That's the promise of web services and SOA when applied internally, because it allows the groups that provide the services to be general-purpose, meeting the needs of all groups, but lets each group be specific when they apply it, instead of forcing a web interface that requires everyone to be general.
Am I alone in getting aroused when thinking about this kind of thing? : )
Wednesday, May 19, 2004, 2:55 PM in The Spout
"No coding question unanswered for < 24 hours"
Here.
After the official question was discussed for a good long time -- "What more can MSDN do for developers?" -- I asked this follow-up question in 3 parts:
- How many of you are unsatisfied Microsoft developers? 0 hands raised
- How many of you are somewhat satisfied Microsoft developers? 0 hands raised
- How many of you are very satisfied Microsoft developers? 30 hands raised
After the session, one Portland nerd came up and told me that he can't remember the last time that he had a coding question that went unanswered for more than 24 hours. Wow. We'd come quite a ways when that's the case.
Sunday, May 16, 2004, 10:47 AM in The Spout
3 Years of Spouting
Here.
The one where I reminisce on 3 years of The Sells Spout and my blog as a whole and wonder what it is that brings so many people to the site.
Sunday, May 16, 2004, 12:00 AM in The Spout
3 Years of Spouting
Sunday, May 16, 2004
Yesterday was my 3rd anniversary of The Sells Spout. It's hard to remember back that far, but this was before any wide-spread blogging software, either client or server, before RSS and before personal email addresses were rendered nearly useless by 157 messages/day about how to enlarge our genitalia, necessitating the eventual move away from newsletters.
At the time, I used FrontPage and <a name> tags to run my blog. I still use FrontPage + <a name> tags, but I also use web forms and SQL Server to track comments and generate RSS. In general, I see my site as a giant, categorized blog, e.g. Tools, Fun, Spout, etc, with a front page of descriptions of the items I add to my site and of interesting things I find in the world. Towards that end, I'd like to rebuild my site from scratch using some kind of content management system so that I can get a bunch of flexibility that I don't have now, e.g. referral logs, auto-archive pages, comment notifications for me, rich comments, a smart client front end for reading from -- and adding content to -- the site, etc. I could add all of that to my own homebrew software, but I'd prefer to use something like .Text. In fact, assuming ScottW integrates .Text into ASP.NET 2.0, rebuilding my site with both is something that I've very likely to do.
The site itself is 9 years old, but my normal outlet of tools, code samples and technical writing wasn't enough for me, so 3 years ago, I started editorializing on The Sells Spout. I don't know what my site traffic was 3 years ago, but I know it's grown ridiculously since then for no reason that I can discern. For example, last month my site served 885K sessions and 2.5GB in small pages, zip files and RSS feeds. While full 55% of the page hits were the RSS feeds (quite a number of you are keeping a close eye on me, apparently), that left 398K people/month visiting my site to read or respond to a topic from my blog (18.7% of the total), read about interviewing at Microsoft (10.6% of the total) or download a tool (4% of the total).
BTW, for those of you who would point out that my RSS feed is syndicated as the Editor's Blog for the Longhorn Developer Center, throwing off my site stats because of the traffic on the DevCenter itself, I'll counter with one word: caching. Kent Sharkey, the editor of the ASP.NET Developer Center and expert in all things ASP.NET, has built caching into the control that displays the Editor's Blog from my RSS feed. Since it's set to 60 minutes of cache per server and hosted on the 11-server MSDN web farm, that's at most 8184 sessions/month to serve my RSS feed on msdn.com.
I don't really know what draws that many people to my site, but 3 years ago, I stated my rules of engagement as follows:
After 3 years, my agenda remains the same. I find that strangely comforting.
Saturday, May 15, 2004, 7:56 PM in The Spout
BBC Coupling: I Laughed 'til I Cried
The American version left me completely cold, but Melissa and I have just watched the 1st season of the original BBC series Coupling and I actually laughed several times 'til I cried. In fact, there was one phrase that I tried to repeat to my wife because it struck me so hard, but I literally couldn't say it without losing my ability to speak (btw, "the pride of my ear bucket" is the phrase and I'm typing it through the tears).
Friday, May 14, 2004, 10:14 AM in The Spout
The Advice of Our Fathers
Here.
The one where peanut butter and jelly remind me of my father.
[ed: Just 'cuz Friends is over don't mean I'm a gonna pick a new style to describe my Spout entries. If it ain't broke, don't fix it, my father always used to say...]
Friday, May 14, 2004, 12:00 AM in The Spout
The Advice of Our Fathers
Being a Midwesterner, my father is a fairly stoic man and, unlike his son, doesn't often speak just to hear the sound of his own voice. Still, I've managed to pick up a few gems over the years that my own sons are now forced to hear often, like "If something is worth doing, it's worth doing well," "It's the hard things that are worth doing," and "It's easy to figure out the right thing to do -- it's the hardest" (do you detect the Midwest work ethic in any of these sayings? : ).
When I was having trouble with a pair of 6th graders (I was a 3rd grader), he said, "Don't start a fight, but make sure that you end it" (that was hard to implement...).
When I went off to college, he said, "Don't go to bed drunk" (I always regret it when I ignore this piece of advise...).
When I broke something of my wife's and wasn't contrite enough, my father, working on wife #3 at the time, said to me, "You've got to be nice to your wife!"
But the one that sticks with me most, the one I hear in my head almost every time I make a sandwich (and the one that caused me to write these words) is "Don't get the God Damn jelly in the God Damn peanut butter!" To this day, with my father 1500 miles away in Fargo, I still make sure that there's no jelly on my knife when I reach for the peanut butter.
It's funny what unintended impressions you leave on people. I wonder what about me will haunt my children?
Wednesday, May 12, 2004, 2:17 PM in The Spout
Your Should Be Using an RSS Reader for Everything!
Ryan Farley posted today that he agreed with Josh Ledgard who said that you should use an RSS Reader for readings blogs instead of surfing to web pages. Josh finds that when he does this, it focuses him on the interesting posts and doesn't waste his time reading stuff just 'cuz it comes from someone that interests you sometimes.
So, RSS Reader: good. Surfing to blogs via a web browser: bad. Duh! : )
Ryan goes on to say that my blog should be the expectation, i.e. that you should surf to http://sellsbrothers.com every day for my blog entries even if you use RSS for everyone else. While I appreciate the complement, Ryan, I can't think of *anyone* that deserves that kind of treatment. If my entries aren't interesting to you, then don't slow yourself down to read them just 'cuz it's me.
Now, having said that, I sort my unread blog entries in #R by Author so that I can see all of Craig's posts at once and pay special attention to them (along with several others). Does that mean they don't need to be interesting? No. But, I do have that extra visual speed bump to slow me down a tad to double-check for interesting.