|
So tonight I was at the NYC .NET User's Group which is, obviously, in New York City. I was giving a demonstration of some CLINQ functionality. One of my demos is the Network Messaging Demo which you can find on CodePlex with the 1.0 release of CLINQ (don't worry, I'll be updating the releases to 1.0.0.1 shortly). Anyway, this demo application suite has a console application which is broadcasting messages on a peer mesh, and a listener WPF app that is receiving messages on that mesh.
The idea behind the demo was to illustrate how I can write CLINQ queries to split the network messages into two bins automatically and have the UI bind to the right data without having to write a background polling loop. Right before the presentation, I think two or three people were in the room, I got the networking demo application working. WCF was fine with my broadband network card (the peer mesh doesn't work when you have no active NICs!!) and everything was peachy. For a few brief, shining moments of pure demo bliss, everything was awesome.
Then I get into the presentation, start up PowerPoint, everything is rolling alone. I decide to switch over to the networking demo and what happens? Nothing. I get a blank window. The console app starts up and hangs and the WPF app starts up and hangs with no visible window. Turns out that both apps were locked because the ports were hung and not responding for some reason. As I sit here typing this, my damn networking demo is running properly in the background.
First of all I want to thank the nice folks in the NYC .NET UG for having me out to spew my lambda love. Second, I would like to state that Murphy and his laws can kiss my ass. The moral of the story is that I should not be doing demos that involve networking in front of live audiences - it's too brittle. This means I'll have to come up with another demo that involves more transformers!!
I will have the slides from my presentation made available either through this blog or uploaded on to CodePlex, though I probably won't get to it tomorrow since I won't get home off the train until 10:30ish (I'm on the train now...). I'll also update the network messaging demo documentation and possibly the CLINQ FAQ to include a note about how you must have a non-localhost IP address to take part in a peer mesh, even if all your apps are running locally.
All in all the presentation went well and I loved answering questions. There's a truckload of really smart people in NYC with lots of great ideas and I got some ideas for ways to improve CLINQ that I think might come in handy, such as support for continuous aggregates and maybe some other goodies. Looking forward to being back with the NYC .NET UG folks again, and maybe having better demo luck the next time I show off CLINQ :)
Was a great speech, although not a big fan of LINQ your demo of language
extensions left me with a ton of new ideas.
O'Callahans law says that Murphy was an optimist. Seriously though I read
somewhere that the original Murphy was a tester (a sergeant?) at the JPL or
one of those similar American organisations that developed high speed jet
planes and rockets. He was reknown for testing how far the human body can
be stressed under higher G forces. Apparently after one gravity sled
smashed off the end of a runway, he crawled out all bloody asking "what was
the reading, what was the g - force?" But the instrumentation was wired
wrongly. He then stated (which was later misinterpreted another way) -
something like "If there is more than one way for something to go wrong it
will, therefore steps should be taken so that there can be only one
(preferred) result". I am sure it was not so clumsy, but in any case he
meant that the design of the wiring of the sled should be such that it
could only ever be functional . I would say a somewhat difficult task, but
for software demos - an impossible task. But then again perhaps its an
urban myth and some Irish Leprechaun is laughing away at every IT
conference.
That's fascinating background information on Murphy ... I love that kind of
detail. I generally like to write my demos in such a way that there are no
known ways it can fail - I try and run the demo on 3 or 4 different
machines... I just didn't anticipate windows firewall blocking the ports on
me. I looked and sure enough, 50000 and 50001 had been disabled.
I have enjoyed your speech last night although I have felt that it was a
bit shorter than I expected wanting to know more about it.
Kevin, just re-read my post. I meant to say thanks for stopping by the
group. Even with all of the snow here in NYC we're looking at how we can
implement CLINQ within our Business Logic engine to provide iteration
tracking support.