Tonight I gave another fundamentals talk at the San Diego .NET Developers Group. As I did last time (when I was talking about lists) I wanted to make sure that I had something for both novices and experts.
I started off with the fundamentals and I showed how to write one from scratch. Then I went on a mission to show some of the places throughout the framework where there are used (including System.ComponentModel.DataAnnotations and MEF).

The slide are here: Attributes

Afterwards a bunch of us went out to Red Robin and had a beer. I really enjoyed the conversation.

I drove up to Fullerton yesterday to give a talk on Cloud Computing at the Southern California Code Camp. My talk was first thing in the morning which was nice. Llewellyn was recording me, and Steve Evans dropped by as well. I ran out of time, but everyone said it was a great talk. Here are the slides.

I attended the following talks:
10:00 Richard Campbell – Scaling
12:15 Michele Bustamante – Implementing Claims Based Security
1:30 Chris Love – WCF and jQuery
2:45 John Miller – Introduction to the T4 template language
and finally I stopped by
4:00 Aaron Skonnard – What’s new in WCF/WF 4.0

Aaron has always been one of my heroes and I had never seen him speak before, so I dropped by to check him out.

Unfortunately that night I got food poisoning and had to miss the second day.

I gave a talk tonight at the San Diego .NET Developers Group on programming iPhone applications with MonoTouch. It was something that I am new at, and this was my first time giving the talk. One of the things that I demonstrated  was the virtual Mac. It was nice to show the Mac Leopard running off of my PC, however there was a bug in the keyboard driver and one of my keys got stuck and I had to reboot the VPC.

Anyway the summary of the talk was:
To do iPhone programming you need a Mac. You can either buy one, build a hackintosh, or go the VMWare route which I demoed last night. In all cases an actual licensed copy of the OS is recommended. Then to program against the iPhone you either have to use XCode and program in Objective-C, or you can use MonoTouch which costs additional money to be able to deploy to actual phones. In both cases you need to understand the iPhone programming model. The advantages of MonoTouch are that the actions and outlets are generated automatically and updated after changing the xib(“nib”), and that you don’t have to worry about reference counting memory management. The disadvantage is that the footprint of the app is much bigger.

Although it wasn’t the best talk I had ever given it was certainly interesting.
Slides are here:

http://www.brainhzconsulting.com/wp-content/uploads/2010/10/iPhoneForDotNet1.pdf

and demos are here:

http://www.brainhzconsulting.com/wp-content/uploads/2010/10/LiveXCodeDemo1.zip

and here:

http://www.brainhzconsulting.com/wp-content/uploads/2010/10/LiveMonoDemo1.zip

I made the commitment to speak at the San Diego .NET User Group Combined Architecture and Connected Systems SIG before I realized that I would be teaching WCF in LA that week. I didn’t feel right cancelling, so I got the WCF students doing a lab and then drove all the way back down to San Diego. Unfortunately they had just moved locations and the turnout was incredibly small. Very disappointing. Here are the slides for the few people who made it out.

I spent the night at my in-laws’ last night and drove over to give my second talk in as many days. This one was at the SoCal .NET Developers Group, and it was just me this time, presenting on a topic which I know pretty well.

I restructured the talk to try and make it a little more palatable, and I threw in an alphabet soup quiz at the end. Here are the slides.

Llewellyn Falco and I presented tonight at the Los Angeles C# User Group. There are a lot of things that Llewellyn and I agree on but occasionally we disagree as well. This talk stemmed from a conversation that we had at Red Robin after one of the .NET Developer group meetings. We were discussing separated presentation patterns (which we both agree on). Llwewellyn was trying to convince me that MVC was the way to go – even in a Windows Forms or Web Forms application. He did demonstrate that it is possible by placing a panel in between the events and the business logic, but it still felt weird for me to place business logic in a panel.

Anyway, the problem with this particular talk is that we were both out of town, first me, then him, then me again, etc. So we ended up writing the slides on the way up to LA, and pseudo-rehearsing in the bar. Apparently we still needed to iron out some differences though, because we had a few arguments in front of the crowd.

Many people may see this as a bad thing (and in fact we got a couple of comments to that effect), but I bet seeing two people arguing drives home the tradeoffs much more than simple slides could ever do.

Thanks to everyone who came out.

This was my second year presenting at the SoCal Code Camp San Diego.  Unfortunately this year I had to miss Saturday because of my daughter’s 5th birthday party.  I heard the evening festivities weren’t as nice anyway, because they didn’t have band.  As Dave McCarter said, “Where’s the Rock and Roll?”

My topic this year was “REST vs. SOAP or Why can’t we all just get along.”  It was on implementing both REST and SOAP from the same service using WCF.  The official session info is here which contains the slides and the demos.  The talk was first thing in the morning on Sunday, but despite the time the room was packed.  The talk went extremely well even though I ran out of time and didn’t finish the entire demo.  Both Daniel Egan and Lionel Wong asked if I would present at other events.  I had several people come up afterwards to ask for business cards, and two people said it was the best talk they had seen so far this year.  Thanks to everyone who came out!

I did a fundamentals talk for the San Diego .NET Developers Group tonight, on Lists and generic Lists. The subject was so simple I wanted to make sure that I wasn’t boring half the audience to death. So I brought along some candy and asked a bunch of trivia questions along with the slides like: How can I access the Count property of any Array?

Anyway, the talk went well and everybody seemed to enjoy it
Slides are located here: ListsWithGenerics

I gave a spur of the moment talk tonight at the San Diego .NET Developers Group. The summary of the talk was this:
A delegate is a type-safe and verifyable pointer to one (or more blocks) of code.
An event is nothing more than a private delegate with public add and remove methods.
An anonymous delegate is a delegate that is defined inline inside another block of code and has no name. It can capture variables according to normal scoping rules.
Then in the piece de resistance I showed a demo that I had first seen given by Anders Heilsberg in a Lang.NET 2008 talk:

http://langnetsymposium.com/2008/talks/1-01%20-%20CSharp3%20-%20Anders%20Hejlsberg.html.

The part I was demo’ing starts at about 14:50.

Here he (as I did in my demo) transforms a anonymous method into a lambda expression:
delegate(Type t) { return t.IsInterface; }
(Type t) => { return t.IsInterface; }
(Type t) => t.IsInterface
(t) => t.IsInterface
t => t.IsInterface

I gave an Intro to WCF talk at the San Diego .NET User Group right before Brian Loesgen’s talk on PDC 2008. The slides are here