Rants, rambles, news and notes from another geek

PDC - the PDC Community Environment

During the Web Services Orchestration BOF, I downloaded the Microsoft PDC Community Environment tool from http://pdcvibe/download/PDC2003.EXEÂ (the link only works if you are here connected to CommNet).

It is cool, but I have a few problems with it:

  1. Why doesn’t it remember my passport? I click the remember me button, but it just keeps asking
  2. How the hell do I minimize the damn thing? Sure the non-rectangular shape is cool looking and all that, but there is no system menu, no minimize button. Aargh!
  3. I can’t tell if it actually remembered my profile information or not. I filled it in twice and clicked Save but everytime I go back it is blank.

It is cool, I like that it keeps all my sessions in one place, but #2 bugs the crap out of me.

PDC - Unit Testing BOF

Ives Tuyaerts hosted this session and it was better than the last one for a couple of reasons:

  1. There were less people so it was more interactive
  2. A few people got very involved in the discussion
  3. Jim Newkirk (the author of NUnit) was there :)

We had a lively discussion about the good and bad things of unit testing in .NET. I was excited to meet Jim and chatted with him afterwards. He is an quiet but engaging person who feels very passionately about what he does. And, without a doubt, NUnit rules.

PDC - BOF Session - Web Services Orchestration

I guess it was understood from the beginning that the BOF sessions were going to be pretty loosely organized, but in general I was rather disappointed with this one. The room was large and because the seating was still in “presentation layout” it wasn’t very condusive to a round table type discussion. Those at the back couldn’t really hear what was going on… the hosts didn’t really have an agenda… etc.

A couple of suggestions for any BOF hosts who read this:

  1. Rearrange the chairs. Make a circle or something.
  2. The host should use a mic. And repeat any questions that are asked.
  3. If mics aren’t available, set some ground rules like “Please stand up when you speak.”
  4. Have an agenda. You don’t have to have slides (but that would help). If you want to be more freeform than that, fire up a computer and write the questions up on the screen. Anything would help.

Hopefully the rest will be better. We’ll see. I’ll hit one more tonight and if it isn’t any better, I’ll probably skip out on the rest.

UPDATE: After a while, the room cleared out a bit and the remaining people seemed more animated. So I guess it started to work… I still think the host should help facilitate more.

PDC - .NET Rocks Live

Ran from the PreCon session to see .NET Rocks Live. They’ve got a bunch of panelists including Scott Hanselman, Robert Scoble, Tim Huckaby, Kate Gregory, and others. (Sorry I didn’t catch all of the panelists of the names.)

They ran a game where Carl and Mark ask .NET related questions and an audience member has to decide if the panelists answers are correct or not. Kinda like Hollywood Squares – including the silly initial answer (see below).

They were giving away a number of XBoxes and other good stuff.

Funny quotes:

Michelle Bustamante (sp?): “Web Services are like teenage sex. Everyone is talking about doing it and those who are actually doing it are doing it badly.”

Scott Hanselman in response to the question how to you access private members: “A glass or two of red wine.”

Scott Hanselman: “If you dial 10-10-987 you can save at least a dollar on every web service call.”

Carl Franklin: “Dot Net Freakin’ Rocks!”

PDC - PreCon Session - .NET the Smart Client Perspective (Part 5)

Rocky finished up talking about remoting with a discussion of Enterprise Services. The loudest message was unquestionably this:

You really only need Enterprise Services if you need any one of these:

  • Two-phase transactions (e.g. updating two databases, NOT updating two tables in one database)
  • Queued components
  • Object pooling (don’t really need this unless you are using a database that doesn’t have connection pooling)
  • Synchronization (who cares)
  • Loosely coupled events (delegates give you enough most of the time)

Most of the time (according to Rocky) you don’t need these, so don’t worry about ES. Stay with Remoting or Web Services. I haven’t needed ES yet myself, so this resonates with me.

Then Chris came back up and gave us an intro to no-touch deployment. This is the classic “Smart Client” stuff that Chris has been telling us about for a while now. He started with a discussion of hosting WinForms controls in IE5.01+.├é If you don’t know already, it looks like this:

He showed how to hook up events, call methods, and set properties on hosted controls.

On├é the side Chris mentioned an interesting point. While discussing how security impacts zero-deployment scenarios he asked, “How does IE know if it is Local Intanet or not?” I thought it would use the subnet masks for all of my connected networks, but it doesn’t. It turns out that it looks for a period in the address. Yep, believe it or not that’s how it decides. I tested it by adding an entry to google’s IP address to my hosts file. Crazy.

Back to the session, Chris talked about the steps required to give trust to a .NET assembly (in order to make events work). In his made up scenario, his grandma needed to give full control to an assembly he was hosting in a web page, because it exposed an event to the browser’s client script. As you know if you’ve ever done this, it is NOT something a grandma could do. Not to mention you’re average corporate sysadmin.

Then Chris had Rocky create a Windows Forms app in C# (this was funny for many reasons if you’ve been following along). Everyone actually applauded when he got it to compile and run. :)

As expected, if you’ve read Chris’ articles, he turned on web sharing for the Debug folder, and hit it with a URL. Then came the big question, “What happens when you change the application behind the URL?” Rocky did it. It works. Pretty cool.

Then the next question, “What about security?” Rocky added a line to delete Chris’ boot.ini file. It failed. Again cool. (And expected. Nothing really new here.)

After that there was some Q&A.; The most important one that I hadn’t quite thought about is that no-touch requires an internet connection to work. If you want to work online/offline you should use something like th app updater block and right a regular winforms app.

Off to the .NET Rocks session…

PDC - PreCon Session - .NET the Smart Client Perspective (Part 4)

Remoting, remoting, remoting, remoting.

For the last hour Rocky has been talking (remember that he is a VB guy) and Chris has been driving the keyboard. The constant back-and-forth banter between them is absolutely hilarious.

For example, after one exchange where Chris was talking about how you don’t have to add a reference for one of the Remoting DLLs in C# (or something like that), Rocky spouts out, “So as you can see, C# is optimized to do it the slow way while VB is optimized to do remoting the fast way.”

Much laughter ensues…

Seriously though, Rocky’s intro to remoting was probably the best simple remoting explaination I’ve seen. He showed how to get up and running with just 10 lines of code. Then he showed how to bring in location transparency, remote activation, etc. Excellent job Rocky.

What he hasn’t covered (yet) is how to make the decision between the many different kinds of remoting (e.g. single call, singleton, CAO, etc.) or how to decide between remoting and web services.

PDC - PreCon Session - .NET the Smart Client Perspective (Part 3)

Whew! I’m starting to feel like Scoble with all this damn posting. But I did promise that I would, and it is kinda fun ‘cause I’ll have this record to remind me what I saw. There is no way I’ll remember it all otherwise…

For about a half hour leading into lunch, Rocky dug into ADO.NET and data binding. He was using all the VS.NET components and wizards which isn’t really my cup of tea, but that’s just my opinion. He did show something that I haven’t seen before, mostly because I haven’t done much data binding in WinForms…

private void BindControl()
   Binding b = new Binding("Text", ds, "customers.custToOrders.OrderAmount");
   Format += new ConvertEventHandler(DecimalToCurrencyString);
   b.Parse += new ConvertEventHandler(CurrencyStringToDecimal);

That is cool stuff. I’ve done so much ASP.NET data binding with templated controls that I didn’t realize you could do this. Good stuff.

Anyway… after lunch Rocky finished up ADO.NET and Chris took over… new topic: Threads.

Chris’ threads chat was excellent (although it was basically a rehash of the threading chapter of his book). Rather than tell you all the good stuff he talked about, I would suggest everyone just read the book. It is a must-read if you do WinForms.

As we headed into the afternoon break, Rocky took over again and introduced client/server/n-tier programming. Started asking the audience about the difference between Remoting and Web Services, etc.

Break time!

PDC - Power Harder to Find Than Bandwidth

I was just talking to Greg Reinacker who is still stuck at DIA trying to get here and I was telling him that the connectivity here at PDC is amazing. Wireless in the breakout rooms, good bandwidth, ethernet for those without WiFi, etc.

The problem is actually finding power.

At the CommNet stations they have power, but if you are in a breakout session you have to plan your seating very carefully if you want to stay powered up. I got a good seat for my PreCon session, but there weren’t many. In fact there was only one that wasn’t way out on the edge. By sitting next to the video camera station, I was able to plug into their power strip. :)

UPDATE: I just went and downloaded Firebird 0.7 (from Scott Hanselman’s recommendation) and I was getting almost 400K download speeds over wireless. That’s pretty damn good.

Reaction to a Bomb Threat

Bruce Schneier writes in his most recent CRYPTO-GRAM:

I found this in Tim Bray’s weblog: “In the speakers’ room at Seybold, there were plenty of Cat5 drops but a shortage of DHCP leases. When they announced the bomb threat, Lauren saw people unplugging and leaving, brightened up and said ‘Oh good, I can grab my e-mail’ and plugged in. Is that great or what, and I ask: why would a geek ever marry a non-geek?”

This is a great story: someone taking advantage of the Internet services made temporarily available because of a bomb threat. And honestly, this would probably have been my reaction as well. Bombings are much less common than bomb threats, and staying in a threatened building is only slightly less dangerous than leaving. But getting your e-mail – now that’s important.

Security is always a trade-off.

This is fucking hilarious. I’m with you Bruce and Tim… I’d plug in. :)