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.
Tuesday, Oct 29, 2002, 11:42 AM
Why We Don't Build Software for Users
Here. I'm a big Alan Cooper fan and this is a recent interview.
Tuesday, Oct 29, 2002, 11:42 AM
Using ATL Server to Build Web Services
Here. "[W]here is the unmanaged programmer to turn [for building web services]? The answer is ATL Server. Developers familiar with conventional COM programming using Visual Studio® 6.0 and ATL 3.0 will find an extraordinarily empowering suite of tools and classes in the new ATL 7.0 library that comes with Visual Studio .NET. The classes that support such Web application development as building XML Web Services are collectively termed ATL Server. This article will explain how the C++ programmer can use the facilities available in ATL Server to develop high-performance Web Services quickly." This is really Kirk's baby, I just helped get it dressed for public display. : )
Tuesday, Oct 29, 2002, 11:41 AM in .NET
.NET Pet Shop 2
Here. ".NET Pet Shop 2.0 is a reference application for building highly scalable ASP.NET Web applications. The application is functionally equivalent to the Sun® Microsystems Java™ Pet Store 1.2 blueprint application, and can be used to compare the coding concepts, basic application server features, and architectures of .NET and J2EE™. It also includes benchmark data for comparison."
Tuesday, Oct 29, 2002, 11:41 AM in .NET
Essential .NET Security
Here. Keith Brown has *finally* decided to write Essential .NET Security and he'll be posting it to HTML as he writes it. He's already got the ASP.NET security chapter posted. Wahoo!
Tuesday, Oct 29, 2002, 11:41 AM
Type Safety in a Loosely Coupled World
Here. In which I'm inspired by Tim Ewald and come to realize that runtime type checking is a very good thing.
Tuesday, Oct 29, 2002, 11:40 AM
Too Many Web Services
Here. Here's the "Top 10 Reasons You Know Youve Been Hacking Too Many Web Services..." that Tim and I presented at the Web Services DevCon (which was very fun, btw).
Tuesday, Oct 29, 2002, 11:40 AM in .NET
Free, Non-Commercial Edition of Eiffel for .NET
Here. "Eiffel ENViSioN!TM is a plug-in for Visual Studio .NET - its icon appears in the same place the other languages do, but that's where the similarity ends. Eiffel ENViSioN! enables you to use the powerful features of the Eiffel language, including Design by ContractTM (a means for making super-robust software, native only to Eiffel), multiple inheritance, generics, and many others. You can use it to be more productive than you ever dreamed. (Eiffel users report that they can produce 3-10x as much high-quality software as they can using any other language and/or tools.)" Eiffel has two features that I wish C# had: design by contract and generics. While the free edition is limited when compared to the non-free edition, it won't expire. If you'd like to see how Bertrand Meyer thinks you ought to program w/o leaving the comfort of .NET, check it out.
Saturday, Oct 26, 2002, 12:00 AM in The Spout
A Giant Sucking Sound
Sat, October 26, 2002
While I'm in favor of NAFTA, and free trade over all, it's certainly not helping US workers. Instead, it favors US corporations as they made use of cheaper labor. Of course, it's the corporations that also seem to make out on these deals, doesn't it? Similarly, the other "giant sucking sound" I've heard lately are my friends moving to Redmond to work for Microsoft. MS is using the recession to cherry pick the best and the brightest in the industry. I can think of almost ten people I know personally that have gone to Microsoft in the last six months. And these aren't folks that were laid off and had to go, either (even though everyone but Microsoft is laying off). These are good folks that had good jobs, either as employees or as independents. One even owned half of what was my favorite company in the whole world! So why are they doing it? Why are they giving up their old lives to work at MS, often moving to Redmond in the process?
I think they're going for a variety of reasons. One is definitely the safe harbor aspect. As an independent in the current economy, I have to work my butt off to attract funding using self-promotion techniques that I didn't have to use during the Internet boom. I'm successful and I love the work and the life, but it's still a lot of work that I know others are not willing to do. Another reason related to the "really hard work" problem is that Microsoft, for the caliber of my friends, is allowed to offer what used to be a laughable salary, but is now looking pretty good against what's generally available. If you can get 75% of what you used to make as an independent, great benefits and stock options that may do something someday, that's pretty compelling. And the stock price is pretty attractive right now. It's my belief that, as a government-sponsored monopoly, Microsoft is fundamentally sound, and the stock price is artificially low. If you were going to go to Microsoft any time in the last five years, now is the time. The stock is only going to go up.
But the big reason that makes people go, and this is the one that might tip me some day, is the raw, visceral experience. For better or worse, Microsoft is the mother ship from which everything we know now has sprung. And they're still setting the tone. I know I dream of moving to Redmond to work on the next technology that's going to kick ass in 2-3 years, like Don and Martin and Yasser did. I'd also love to live where I am now, commuting to Redmond a week/month to work with developer education, focusing on research and writing, like Tim did. Sometimes I want to just chuck the extra effort it takes to stay "outside," throw up my hands and let the assimilation process begin.
So, why haven't I thrown in the towel? I'm waiting. I'm waiting for the perfect balance of quality of life where I get to spend every day doing exactly what I want, working with a team on a long-term project that I really believe in, but without the politics or the management responsibilities that I deplore and without giving up my family or dropping significantly in income. Right now I've got that all nailed except for the team and the long-term project, so I've got it damn good, but I'm still looking. Who knows? Maybe I'll get caught in the mass geek migration to Redmond some day, but not yet...
Friday, Oct 25, 2002, 12:00 AM in Fun
Doonesbury on Blogs
Starts on October 21st and runs for several days. Hits home.
Thursday, Oct 17, 2002, 12:00 AM in The Spout
Type Safety in a Loosely Coupled World
Tim Ewald gave a very rousing keynote address at the WinDev conference in Boston yesterday. During his talk, he did something I've never really heard anyone do convincingly before -- he defended the typeless recordset/rowset/dataset style of programming. His justification was that you don't always need type-safe object models and, when getting a subset of data, they're often more trouble than they're worth (do you really want a set of types for every query in your app?).
My standard objection to the "just the data, ma'am" style of programming is that I don't get compile-time type checking. Of course, I can write the code to check all the data I get at runtime, but I don't like to do that. Instead, I like things like the type safe dataset generator built into VS.NET. However, that damn tool fooled me. I looked at those type safe wrappers and considered that compile-time type checking. Of course, it's not. Instead, it's a hunk of code that pretends to offer compile-time type checking, but only really offers run-time type checking, because the data still needs to be coerced at *runtime*.
I have always turned up my nose at run-time type checking until I realized (and this is the insight I got from Tim's talk) that *all* marshaling-based type checking is done at run-time. Even the type-checking done in COM between apartments needs to coerce the data to and from a serialized format, which means that it's possible for the data to be mismatched between two endpoints, causing a type exception at runtime. Since I'm not willing to give up the loose coupling involved with components talking to each other across apartment/thread/process/machine/context/appdomain/whatever boundaries, I need to accept the fact that type checking needs to happen at run-time as well as at compile-time. As far as type checking is concerned, unmarshaling an RPC call stack is really no different than coercing/converting dataset columns or applying an XSD to an XML document.
Once I've accepted run-time type checking, I can take Don's advice to "free your mind" (he's moved on to other parts of The Matrix not involving medication) and embrace things like structural typing, which is much more flexible than the nominal typing that OO languages rely on. I told you that "nobody makes it the first time," Don, but I think I've finally made it across. : )
Sunday, Oct 13, 2002, 10:16 PM in .NET
The .NET Show: The Developer Roadmap
Here. "In today's episode, we talk with Thomas O'Grady and Kerry Carnahan about the .NET Developer Roadmap that they have developed to help Enterprise developers understand the best ways for them to properly acquire the skills they need for developing applications using .NET." I haven't seen this episode yet, but I generally watch all episodes of The .NET Show and enjoy them.
Sunday, Oct 13, 2002, 1:03 PM
Scancode Mapper
Here. Scancode Mapper is a GUI tool for setting the Scan Code Mapper for Windows Registry settings for Win2K+, e.g. disabling the Caps Lock Key.
Sunday, Oct 13, 2002, 12:00 AM in Tools
Scancode Mapper
Scancode Mapper is a GUI tool for setting the Scan Code Mapper for Windows Registry settings for Win2K+:
As an example of what this tool does to the Registry, this .reg file turns off the CapsLock key. Of course, changing scancode mappings is a risky business, so be sure of what you're doing before committing the changes and restarting Windows. No warranties extended. Use at your own risk. Enjoy. : )
Saturday, Oct 12, 2002, 4:55 AM in .NET
ISO close to approving C#, CLI as standards
Here. From Husein Choroomi: The programming language C#, as well as the CLI (Common Language Infrastructure), have passed through a working group within the ISO (International Organization for Standardization) and will likely be approved by January, said John Montgomery, group product manager with Microsoft's .Net developer platform group.
Friday, Oct 11, 2002, 10:42 AM in .NET
Microsoft's singing in C#
Here. From Keith Wedinger: Microsoft and its allies have quietly expanded an effort to gain acceptance for C#, the software giant's competitor to Java and a foundation for its next-generation Internet services.