Marquee de Sells: Chris's insight outlet via ATOM 1.0 csells on twitter

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.




Why We Don't Build Software for Users

Here. I'm a big Alan Cooper fan and this is a recent interview.

0 comments




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. : )

0 comments




.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."

0 comments




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!

0 comments




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.

0 comments




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).

0 comments




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.

0 comments




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...

0 comments




Doonesbury on Blogs

Starts on October 21st and runs for several days. Hits home.

0 comments




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. : )

0 comments




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.

0 comments




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.

0 comments




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. : )

0 comments




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.

0 comments




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.

0 comments




385 older posts       2250 newer posts