What the hell is a 'Surrogate Selector'?

Peter Himschoot’s little Surrogate Selector for .NET Remoting can be used to do some interesting things…

….although i am not sure those things should be done.

One of the pieces of functionality is that it allows you to transmit typically non-serializable objects ( re: XmlDocument ) over the wire.

Now, I am all for new functionality based on existing functionality, but the designers of the .NET framework chose to not make certain classes serializable for a reason ( I assume… ) and they are pretty smart guys…..so I am not sure I would want to go against something that they decided was a good idea. But I digress.

So, in case you want to poke around and give it a test run, you can find it here.

Signed Assemblies vs. Instrumentation: Fight of the century.

Microsoft allows you to ‘sign’ .Net Assemblies, enabling certain security & verification functionality ( CAS ). When you sign an assembly, .NET can automcatially detect if the assembly has been altered since it has been sign, thereby providing some extra security to running code.

The problem comes in when you introduce instrumentation. For those who don’t know, instrumentation is the weaving of new code into existing code, usually post-compile. It’s used for a multitude of things, including profiling, AOP, and creating dynamic proxies.

Obviously, this instrumentation changes the assembly, thereby breaking the signature. What’s one to do?

Well, Ian ( in addition to having a great blog tagline ) has just blogged about solving one of the above problems, profiling signed assemblies. Granted, it’s only for VSTS 2005, but it’s a start.

Check it out.

P.S. ‘instrumentation’ was possibly the toughest word to keep spelling over and over again, so I am sure I killed it at least once above.

Me and Tivo are gonna wrassel soon.

I can’t believe some of the stuff coming out of the Tivo community.

You have always been able to hack Tivo, but now there are some amazing applications that are being written to actually interact with Tivo.

Some of these are legal ( JavaHMO ) using Tivos HMO SDK, while other are not so legal ( TivoTool which requires some hacks to get to work.)

Just very cool stuff that further blurs the line between consumer electronics and computers.

Swiss Army backpack

If anyone out there is interested, I am selling a Swiss army computer back pack. You can find details and screen shots here:

http://www.swissarmytravelgear.com/webstore/moreinfo.cfm?product_id=2548&category=130

It’s very durable, and comes with a lifetime warranty. In addition the padded arm straps, it has a padded laptop anti-shock sleeve as well as an ergonomic to reduce strain on your back.

Ping me if interested. Price is negotiable.

– Griffin

Years of service = Pound of candy?

I don’t know about you, but I fear the day that someone who has been at MS 20+ years brings in 20+ pounds of candy…..

Imagine it for a second…. Geeks trolling around the office, scooping up handfulls of M&Ms, for days on end….

Read about Shawns 3 year mark here and pray someone doesn’t get the bright idea of bringing in X number of pounds of krispy kremes.

A little reuse is all i ask.

Roy Osherove makes a great point about practices that are easy to take for granted.

Having practiced TFD & used unit tests for many years now, I forget how often designs a practices that come second nature to me are indeed new to some people out there.

Roy points out an example of those practices here.

It’s a little shocking to me just how easy it is to forget that I perform my job using a large number of assumptions & practices that have been built up over time. When you take a step back and look at how much becomes second nature to you over time, it’s a little jarring.

I may blog more about this in the future…..

Concurrency is the new black

It seems, everywhere you turn, concurrency within programming languages is becoming more and more of a hot topic.

With the introduction of dual-core processors as well as increase usage of multi-threaded application designs to increase performance, ALL developers will have to deal with concurrency topics.

Hell, even Chris Double is adding concurrency libraries to his homegrown language, Factor. He describes the additions here.

Pretty soon, phrases like ‘dead locks’, ‘race conditions’, and ‘thread local storage’ will be the rule in developers vocabs, not the exception.

And the hits just keep on coming…

Accept me as your XML overlord.

Orcas is shaping up to include some pretty cool stuff.

If you’re not working with XML now, you most likely will be by the time Orcas comes out.

Some of the new XML features look very cool, from a technology standpoint. I am not sure of thier business value yet, though.

Check out an overview of the new XML features, including a new TLA: QIL ( The jokes almost write themselves with this one) here.

Don’t forget to read the XML Generics column, linked at the bottom of the above link, for some “interesting” insights.