I spoke tonight at the San Diego .NET User group Architecture SIG. Brian had asked me to give a talk for the upcoming Day of Azure (Deep Dive). The topic wasn’t even decided until the 4th, but as I teach Azure anyway, it was no big deal. The final topic chosen was around the storage aspects of Azure. I tried to cover a brief introduction to both the relational and non-relational (No-SQL) aspects of storage in the cloud complete with demos. I chose to talk about SQL Azure first to give them something they could relate to (haha, sorry, couldn’t resist) before I lead them into a technology that most of them didn’t have any exposure to. Thanks everyone, for coming out.
Here are the demos.

I spoke tonight at the San Diego .NET User Group Connected Systems SIG on Amazon vs. Azure. I reused some of the slides I presented at the Fullerton Code camp. I really enjoyed the talk and all of the great questions I received as well.

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

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