October 26, 2002 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…

October 25, 2002 fun

Doonesbury on Blogs

October 17, 2002 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. : )

October 13, 2002 .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.
October 13, 2002

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.
October 13, 2002 tools

Scancode Mapper

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

October 12, 2002 .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.
October 11, 2002 .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.

← Newer Entries Older Entries →