Marquee de Sells: Chris's insight outlet via ATOM 1.0 csells on twitter

You've reached the internet home of Chris Sells, who has a long history as a contributing member of the Windows developer community. He enjoys long walks on the beach and various computer technologies.




Duck Typing for .NET!

For structural typing fans (and they'll be more of you over time -- trust me), David Meyer has posted a duck typing library for .NET. There are many reasons this is cool, but in summary, it allows for many of the dynamic features of languages like Python and Ruby to used used in any .NET language. Very cool.

0 comments




How to write a book - the short honest truth

I found this on digg.com and liked the short, honest style. Bottom line: anyone can write a book; it takes real work to write a good book.

0 comments




"How you doin'?"

I wanted to figure out how to emit a new CLR type at run-time using Reflection.Emit and Google revealed the following article: Generating Code at Run Time With Reflection.Emit in DDJ.As usual, I skip most of the initial prose to the first code sample (I don't need some author's fancy intro -- I just want the code!). Then, I'm reading along and I find some phrases I enjoy, e.g.

"If you plan on generating lots of calls to Console.WriteLine(), you should be aware that the ILGenerator class exposes a method for just that purpose: ILGenerator.EmitWriteLine() generates the exact same code as our example. (Could this be the first assembler ever devised that includes explicit support for creating "Hello, World" sample programs?)"

and

"When creating a dynamic assembly with Reflection.Emit, you must declare, ahead of time, what you plan on doing with it. Do you want to run it or save it? Or both? (Of course, if your answer is 'neither,' then you should probably should have stopped reading this article long ago.)"

By the end of the piece, I've enjoyed the story and it told me exactly what I wanted and then some, pointing out some pitfalls I would've missed, being entertaining along the way. It's rare that I enjoy an article so much and I'm thinking I should send the author an email, congratulating him/her on his/her tight, fun prose.

And then I get to the author bios:

"Chris Sells is a blah blah blah."

"Shawn Van Ness is a blah blah blah."

Of course, now I remember Shawn writing this piece and me helping him with the polish. At this point, I feel a bit like the Joey Tribbiani of Windows technical writing...

0 comments




eWeek: Microsoft Moves Ahead w/ Software Modeling

I work on the same team as Don and Chris to which this article refers. There's few actual facts in this piece and some of those are wrong (love Chris like a brother, but he wasn't on the WCF team : ), but it's interesting that my little group is making its way into the news.

BTW, as a matter of context, I'm not a big codegen fan (in spite of my previous dealings : ) and it would be a mistake to think of "modeling" as "fancy codegen," in spite of what this article implies.

0 comments




Take the Silverlight Tour

Shawn Wildermuth, author of the Silverlight appendix in Programming WPF, has put together a comprehensive 3-day shortcourse on Silverlight and is taking it on road to Atlanta, Boston, Chicago, San Fran, Dallas, Seattle and DC. Sign up today!

0 comments




Another One Bites the Dust!

Welcome to Microsoft, Scott Hanselman!

0 comments




Programming WPF, 2e (RTM Edition) on Amazon!

Buy your copy today! : )

P.S. I read the QC1 (Quality Check 1), all 859 pages of it, in two solid days this weekend. I found a bunch of nits, all of which will be fixed before you see it in August. Wahoo!

0 comments




Windows Home Server RTM Shipped!

I knew something was up when the Home Server team climbed onto a bus Friday afternoon outside of building 42. They were obviously celebrating something. This morning, I found out what it was -- Windows Home Service RTM shipped! Congrats, guys! I can't wait for the RTM bits to be available internally so I can install it. I've got a machine all picked out. : )

0 comments




Unpublished Microsoft Interviewing Tips

A friend of mine is going for an Microsoft interview next week and he IM'd me asking for any "unpublished tips" for interviewing at MS (apparently he'd already read all my published tips). Frankly, I don't know if these are published or unpublished, but these were the ones that I thought were most important:

Bottom line: your interviewer wants make sure you're a fit for Microsoft, a fit for their team, that you're smart and that you've got passion to do the work that they want you to do.

Good luck!

0 comments




Genghis moved to CodePlex

Shawn Wildermuth has moved Genghis to CodePlex because GotDotNet Workspaces is going away. I actually really like CodePlex, but not the state those pesky contractors left the Genghis bits in, so we'll be following up with another release in early July to bring sanity back. Thanks, Shawn!

0 comments




Hands on the Microsoft Surface

After raving about Microsoft Surface, I get a personal invitation from Robert Levy, a PM on the Surface SDK team to come take a look.  Robert's job is to make sure it's possible for the partners that want to put a Surface into their hotels, stores and theme parks to build apps to help sell whatever they're selling.

There're currently no plans to enable just normal humans to program it, unfortunately, or even to sell the things except to corp partners. This is too bad, 'cuz I definitely want one for my family room. Man, talk about a conversation starter!

The demo apps were very cool. Of course, there were the apps that are shown on the surface web site and they really work. The ones that I thought were best were when you used physical devices to control what happens on the surface, e.g. turning a knob you drop onto the surface to adjust settings, putting a camera on the surface to get the pictures, putting a credit card on the surface to pay for your drinks, etc. Of course, just using your fingers to paint or drag stuff around was fun, too.

I can definitely see these things attracting a crowd at the zoo or the local phone store. It's a thing.

0 comments




The T-Mobile Wing rocks! 'til the battery dies...

I was really loving my T-Mobile Wing with WM6, Pocket Office, external micro-SD slot, slamming keyboard, beautiful ClearType display, one-handed usage (even though it is a PocketPC, I almost never needed to pull out the stylus), blue tooth (very high quality!), wi-fi, Edge and a slamming keyboard! (yes -- it was that slamming.).

Unfortunately, I couldn't keep it. After four days of the battery going dead after 12 short hours of my normal usage, e.g. email, texting, surfing, etc, it was dead. I turned off wi-fi, blue tooth and DirectPush to no avail. The T-Mobile Wing is just too cool for the battery and T-Mobile didn't have a bigger one to give me.

So it's back to my i-mate smartflip (hurray for data sync!). I was *so* loving that slamming keyboard...

0 comments




Big Screen + Keyboard for my Cell Love? Love it!

I love the idea of the new Palm Foleo, i.e. my life fits on my cell phone in my pocket and my "laptop" is just a bigger display and full-sized keyboard. Of course, this presupposes the storage capacity to store my life on my cell phone (like I do currently on my laptop), which we're a ways from. Unfortunately, this means that the Foleo is likely ahead of its time and will therefore suffer, but it's another step down a good road (remember the "brick" computer that could plug into any keyboard/mouse?).

0 comments




What's your programmer personality type?

Your programmer personality type is:

DHSB

You're a Doer.
You are very quick at getting tasks done. You believe the outcome is the most important part of a task and the faster you can reach that outcome the better. After all, time is money.

You like coding at a High level.
The world is made up of objects and components, you should create your programs in the same way.

You work best in a Solo situation.
The best way to program is by yourself. There's no communication problems, you know every part of the code allowing you to write the best programs possible.

You are a liBeral programmer.
Programming is a complex task and you should use white space and comments as freely as possible to help simplify the task. We're not writing on paper anymore so we can take up as much room as we need.

0 comments




LoadWithPartialName, I miss you...

When you make a call to LoadWithPartialName in .NET 2.0, you get the standard compiler error that you're using an obsolete function:

foo.cs(5,24): warning CS0618:
'System.Reflection.Assembly.LoadWithPartialName(string)' is obsolete:
'This method has been deprecated. Please use Assembly.Load() instead.
http://go.microsoft.com/fwlink/?linkid=14202 '

The problem is, unlike more obsolete function warnings, there's no good way I know of to reform the arguments from the obsolete function to the recommended replacement, i.e. Assembly.Load doesn't work if you give it a partial assembly name. Because of this, instead of code filled with Assembly.Load calls, I see this all over the place in production .NET 2.0 code:

#pragma warning disable 618
Assembly.LoadWithPartialName("foo");
#pragma warning restore 618

Maybe in .NET 3.5, we can get a helper function that wraps the #pragmas for us... : )

0 comments




2350 older posts       285 newer posts