# Wednesday, 12 December 2007

Recently Eileen Crain, who used to manage the RDs, linked to a video we made "way back when" to try to explain the program. It's kind of a hard program to explain, but you might like seeing some of us try.


Wednesday, 12 December 2007 11:23:45 (Eastern Standard Time, UTC-05:00)  #    Comments [0]
# Tuesday, 11 December 2007

At Tech Ed Developers Europe, one of my talks was on STL/CLR and the marshaling library. There are three super cool things about the marshaling library that all C++ developers need to know. The first is that the random boilerplate code we used to write to convert between two kinds of strings is now taken care of for us:

char* stringfromnativelibrary;   //gets set somehow
ManagedFunctionExpectingSystemString(marshal_as<String^> stringfromnativelibrary);

The second is that it's just templates, meaning it is fast at runtime and intuitive for a C++ developer. The third is that because it's templates, we can write our own specializations, and convert between any two types we feel we will be using - typically on either side of the managed/native border, though that's not a requirement at all.

This last part is really exciting to me. Imagine you have some library you wrote ages ago that takes a RECT and does something with it related to your business logic. But you've replaced your UI and now you have a System::Drawing::Rectangle to represent what your user selected. Wouldn't it be cool to write:

oldfunction( marshal_as<RECT> RectangleFromWinForms);

That's not a problem as long as someone has written that specialization. You can do it, or you can try to find one someone else already wrote.

Date and time, arrays, anything related to screen position, these are going to be types everyone uses. Why not share the effort of writing these conversion functions? That's the thought that hit me at the end of my talk. So I came home and set up a site -  www.marshal-as.net - to use for just this purpose. I've had a few submissions from Jason, who was at my talk and was there when I thought of it, and a wish list from a "little birdie". The C++ team knows what I'm up to and they are excited too. Now what I need is submissions and lots of them!

So, drop me an email, comment on this post, or (better) comment on the first post over at www.marshal-as.net. I'll post the specializations one per post and we'll build a library. I'm inspired by pinvoke.net and would like to see this as the destination for finding a specialization instead of writing one. Can you help?


Tuesday, 11 December 2007 07:38:37 (Eastern Standard Time, UTC-05:00)  #    Comments [0]
# Monday, 10 December 2007

Harry Waldron has an interesting post. He's been doing some testing, and he can show that a longer password is harder to crack than a short complex password. We've been using passphrases for some time in our offices - collections of words and spaces like It's Almost Time to File Taxes that are actually quicker to type than the short complex password you might create from them (try it - compare that sentence, which to my knowledge has never been a password on my network, but could have been, with Iattft, a short password made from the first letters of each word.) I actually went to passphrases for this reason - they're quicker to type and easier to get right. Now I know that they're also harder to crack. Nice!


Monday, 10 December 2007 21:18:07 (Eastern Standard Time, UTC-05:00)  #    Comments [0]
# Sunday, 09 December 2007

On Tuesday, December 11th, I’ll be presenting Developing as a Non-Admin in the Ignite Your Coding series of webcasts. I’ll be showing Visual Studio 2008 and Vista and my focus will be on understanding the UAC consent dialogs, and how to keep your application from needing them. Register for it now, or later use the same link to come back and view the recording. But if you attend live, you can ask questions, and that’s often the best part of a webcast.


Sunday, 09 December 2007 16:19:29 (Eastern Standard Time, UTC-05:00)  #    Comments [0]
# Saturday, 08 December 2007

Wednesday December 12th is the Christmas Party for the East of Toronto .NET User Group. Mark Relph will come and talk about where he sees the industry going, your $10 cover charge will cover “nibblies”, and there’s a cash bar. Come and meet your fellow user group members and socialize a little. Please register in advance!


Saturday, 08 December 2007 16:17:34 (Eastern Standard Time, UTC-05:00)  #    Comments [0]
# Friday, 07 December 2007

Last year at Tech Ed Developers in Europe, I had a very impromptu Channel 9 interview. A “shop talk” conversation broke out in the lobby of the Hilton, and Charles decided to film it. This year we planned it in advance and I sat down with Steve Teixeira and Ale Contenti of the C++ team. Watching the video, I love watching the two of them get visibly happier as they start to talk about the product and the big changes and news they announced at Tech Ed. Steve was really quite sick and depending on throat lozenges to be able to talk at all. Despite that, it turned out to be a really fun interview.


Friday, 07 December 2007 16:15:53 (Eastern Standard Time, UTC-05:00)  #    Comments [0]
# Thursday, 06 December 2007

Here’s a little video I did with Paul Foster on C++ and Vista topics. 15 MB, 2.5 minutes. Short but sweet!


Thursday, 06 December 2007 16:14:03 (Eastern Standard Time, UTC-05:00)  #    Comments [0]
# Wednesday, 05 December 2007

The Virtual Side guys do a great job of capturing some of the fun and buzz from Tech Ed day by day. Here’s a roundup video that features a little bit of me judging Speaker Idol.  12 MB, 2 minutes.


Wednesday, 05 December 2007 16:12:43 (Eastern Standard Time, UTC-05:00)  #    Comments [0]
# Tuesday, 04 December 2007

Have you been missing your fix of Ale Contenti at the whiteboard?  Are you unclear on the differences between try and __try? Or between exception handling and structured exception handling? Watch two guys who really understand how all this works and learn why not handling an exception can be as important as handling one.


Tuesday, 04 December 2007 16:10:53 (Eastern Standard Time, UTC-05:00)  #    Comments [0]