July 12, 2005 tools

Looking forward to the Portland Code Camp, 7/23-24

The session list for the Portland Code Camp, July 23-24, has just been posted. I’m especially looking forward to the following:

  • .NET Windows Forms Tips & Tricks
  • Forensic Development
  • Implementing Creature AI
  • Introduction to Inform
  • Introduction to Python
  • Introduction to Ruby
  • Ruby on Rails
  • MonoRail - ASP.NET on Rails
  • Web Unit Testing with Ruby and Watir

That’s only if my wife doesn’t have my working on the house (we’re prepping it for sale). Of course, I don’t know if she’ll understand that I’ve volunteered to give my own session: “Some Cool Avalon Stuff”…

July 10, 2005 spout

Is it creepy that I think this is valid?

I've used this technique to keep people from dumping their work on me. Now I'm creeped out about it...
July 10, 2005 spout

Enjoying This Moment

I’m sitting at my computer on Sunday morning with “nothing” to do (I mean, I could always work, but my team is good about taking weekends off). This morning comes after 3.5 months straight of evenings and weekends working on the Avalon book (I’m talking 20+ hours/week on the book on top of the 50-60 hours/week I spent getting up to speed on my new job). The final push was this week, which I took as vacation from work (“you took vacation to work!” my wife likes to say…).

Last night, I produced the 2nd draft of my last 1st draft chapter (which I was happy to trim by 17 pages w/o losing anything useful) and composed comments on a 2nd draft of Ian’s chapter that was in my queue.

This morning, I took care of a reviewer comment that’s been nagging me, sent Ian my feedback and composed a detailed schedule of the rest of my day which consists of:

  • wait for feedback on non-finalized chapters
  • apply feedback and finalize my last two chapters (30-60 minutes)
  • produce 2nd draft of book preface (1-2 hours)
  • review anything Ian sends my way (1-2 hours)
  • (maybe) review 1st draft of chapter from the WinForms 2.0 book (1-2 hours)

Compared to how I have been spending my time lately, that’s an extremely light day.

This book has been particularly difficult to write. Most of my writing has been on insights that I or the other members of the community have discovered in the use of the technology. These kinds of insights come after the technology is shipped and we’ve all had a chance to get to know it. Avalon, on the other hand, has a ways to go before it ships and the developer community is very small. Plus, some parts of Avalon don’t work very well or have changed significantly since I first learned about them. The consequence of this is that most of my writings on Avalon have had to have at least one massive overhaul as I a) learn the best way to think about them and b) update them to actually reflect the latest bits.

The rub is that by the time the book sees the light of day (it should be on the PDC show floor), the Avalon team will likely have shipped another version of the bits, obsolescing what Ian and I have worked like dogs to ship. Of course, we’ll post the errata and we’ll update the book for the Avalon RTM, but still, it hurts that most of you won’t be able to read the book when it’s a perfect match for the bits.

I get to read it, though, and I’ll tell you — right now, the book rocks. : )  And the reason it rocks? Ian and I have worked hard to make sure it does, of course, but it’s mostly been the internal and external reviewers that have done such a great job pointing out where we got it wrong. It’s tough to hear, especially when it means a complete chapter re-write (I just finished one of those last night), but I’m so happy with the results that I’m willing to love them anyway.

Now I’ve raised the bar impossible high, but screw that — I’m enjoying the moment…

July 6, 2005 fun

Old Man’s War

I read Old Man’s War today (no better way to avoid writing than to read). I enjoyed it very much. I'm off to check out the author’s web site now.
July 5, 2005 fun

Taking a break from writing on Saturday to see FF

Rich is tired of me blowing off the local nerd events, so he set up something he knows I can’t stay away from: an afternoon showing of Fantastic Four. I’m an FF fan from way back (every time Don signs his emails ” ’nuf said ” I get a little tingle of nostalgia). I’m been loving the Ultimate Fantastic Four trade paperbacks (that’s what adults call comic books that have been collected into a bigger, more expensive book).

I don’t have much hope that this movie will be any good, but the Brothers Sells and I can’t not go. Feel free to join us! Rich has picked the 12:25pm showing on Saturday, July 9th, at the new Century 16 Cedar Hill Crossing theater that I love, just to make sure there would be no way I could say “no.” Plus, I’ll be deep in the throes of finalizing the Avalon book chapters that day (along with every other day this week — what a way to burn vacation days), so any excuse to avoid the writing will be good. Come one, come all!

July 5, 2005 tools

Register for COM Interop and VS05b2

I was helping a colleague work through a .NET COM interop issue. He’d found my article on the topic (“Hosting Windows Forms Controls in COM Control Containers”), but couldn’t get it to work. He’d set the Register for COM Interop setting and adding the Guid attribute to his .NET type, but nothing was registered at build-time.

The problem was that, unlike VS03, the wizard-generated AssemblyInfo.cs has the assembly-wide ComVisible attribute set to “false” which causes regasm (the command-line version of what VS is doing to register your .NET assembly with COM at build-time) to skip the registration of all of the .NET types in your assembly, defeating the purpose of the Register for COM Interop option pretty thoroughly.

The trick, of course, is to set ComVisible to “true”.

July 5, 2005 tools

Grid: The King of Avalon Layout

The Grid is by far the most useful, powerful and general purpose layout tool in Avalon. As a demonstration of that, Amir Khella, a Microsoft PM on an Avalon-related team, plays with the Grid to build a fish eye effect, duplicating the behavior of the scaling OSX toolbar with 8 lines of C# code. He then goes on to implement the trick in 2D to scale images as you mouse around. Cool stuff.
June 28, 2005 tools

Avalon and ASP.NET, Together At Last

Scott Guthrie says:

“What we’ve set out to do is to make it dramatically easier for anyone to build AJAX-style web applications that deliver rich, interactive, and personalized experiences. Developers should be able to build these applications without great expertise in client scripting; they should be able to integrate their browser UI seamlessly with the rest of their applications; and they should be able to develop and debug these applications with ease.

“For this work, we’ve been working on a new project on our team, codenamed ‘Atlas.’ Our goal is to produce a developer preview release on top of ASP.NET 2.0 for the PDC this September, and then have a website where we can keep updating the core bits, publishing samples, and building an active community around it.

Then Scott says:

“We see Atlas as the best way to write a whole new generation of richer, more interactive, more personalized experiences in browser applications.  Avalon is the next generation presentation model for Microsoft, and will let you build the richest user experiences on the Windows platform. Avalon will deliver phenomenal graphical experiences that use the latest in media integration and hardware acceleration. And Avalon will also let you provide persistent, immersive experiences that go beyond the browser.

“Of course, when you’re building Avalon applications, you can reuse the programming model investments you make today with ASP.NET and Atlas. For example, the ASP.Net Building Block Services and Client Building Block Services will also be accessible from any Avalon client. This model gives you a smooth path to the next generation of applications.”

And then I say:

“Cool!”


← Newer Entries Older Entries →