chadr's skewed perspective
view rss
VS Editor and HTML
15/6/2004 external link
I need to apologize to to Milan and others who've been persistent in their feedback about the HTML editing in VS.  Since the issues around munging HTML in the editor are mentioned frequently, I thought I would post a blog entry instead of a comment. Mikhail Arkhipov has posted a great read on the HTML editor, explaining the hows and whys of our Decorative HTML™.  Mikhail is clearly the expert here, as the HTML editor is actually a unique editing surface in VS.
VS Editor & Code Navigation team saddles up!
14/6/2004 external link
One of the things I care deeply about is the core VS Editor & Code Navigation area.  We've created a VSEditor Team Blog to help you, gentle reader, find more editor & code nav information in one place.  Sean (no personal blog) is the instigator, but expect to see posts from a collection of people on the team!
MSBuild at Tech Ed 2004
27/5/2004 external link
Some of you know I work with Alex Kipman on MSBuild.  Alex and others are down at Tech Ed this week, presenting on MSBuild, something we're trying to do often.  The team held a cabana session earlier this week, and has a full-on breakout on Friday afternoon. So John Lam (who talks with us alot about MSBuild) decided to out Alex's blog as pressure to get him to blog more.  I'll go one step further, and “gently suggest“ that as his first topic he should talk about some of the interactions he's had down there at Tech Ed.  I know he can do it, he's already sent mail to the team about it! So go to it, Alex! While I'm at it, I need to point out that Jeff also has blogged some really cool stuff about MSBuild.  Gosh, I need to get busy...
You are here!
27/5/2004 external link
I've been enjoying the perils of technology and process limitations, but finally I've been able to post the snapshot of our Visual Studio hallway where your pictures and bios are being displayed. You are here Now I can get on to posting some actual technical blog content and responding to the inquiries you've sent me!
The VSCore Team Loves You!
20/5/2004 external link
A few days ago, I invited you to let me know who you are.  On behalf of the folks on the VS team, I want to thank all of you who responded to me, sent me a note, a picture, a bio, a resume, or even just an electronic version of your business card!  I'm overwhelmed!  And I'm really moved.  Thank you for your response, and more importantly, thank you for your honesty and integrity. The great thing about doing things like this is that once you put it out there, you find out about other ways people make connections.  For example, Josh let me know that some folks on Channel 9 were also inviting readers to post a little about themselves.  My objective was similar, but different; I wanted to bring your presence inside our world in a very tangible way, and in a way that would reach everyone who shows up for work, not just those of us who read blogs, etc. So I've hung your names and pictures on the wall!  Tomorrow, I'll post a picture of the "Wall of Customers" that's holding up our building here! Update:  It's not too late to send in a picture and a little blurb about yourself.  It's never too late.  We have plenty of wall space, so keep sending 'em in! Again, thank you!  Now I'm going to try to catch up with all your emails, the questions you’ve asked, and the feedback you've offered.  Please stay in touch!
Dear Customer
14/5/2004 external link
Dear Customer, My name is Chad and I work at Microsoft.  I help make Visual Studio.  Who are you? I want to get to know you better.  I talked with you in email, newsgroups, instant messaging.  If I'm lucky, I met you at a conference;  Over beer & chicken wings (well, more likely, warm soda and cold pasta) I put a face & personality with the name.  But when the conference was over, we both went home and the faces might have been forgotten. I want to know your face and what you do with my product.  You see, I know you make a living with Visual Studio.  I think you might even have fun with VS.  I want to remind myself and everyone I work with that you're out there, depending on us to build you a great development tool as we work on Visual Studio Whidbey. You are important to me!  You spend your money and time on VS, and you expect VS to help you make more money and time.  You will be using Whidbey to make your living, paying for braces and college and retirement, buying coffee and beer and cigarettes, contributing to political and social causes, paying income taxes and mortgage interest, ordering pizza and books and flowers. So tell me who you are and what you do with VS.  Send me a picture.  I'll print your picture, write your name on it, and write down a word or two about what you do with my product.  I'll put your picture up in our hallway and help everyone on my team remember you're out there, depending on us to build a great VS! I've put up a picture and a little info about me.  I would love the same from you, so send it to me!  If you have published yourself on the web, like in a blog or on the web site for your business, you can send me a link to that info.  But do send it!  And tell your friends.  I'm new to blogging and don't have the readership to reach all my customers. I'm looking forward to knowing you better!Chad
Are you an lvalue or an rvalue?
12/5/2004 external link
There are many different ways to describe the “lead or follow“ model.  Compiler geeks (whom I used to publicly, and now secretly, aspire to join) might think of this in terms of lvalue and rvalue (setting the value, or reading the value).  My favorite way of thinking about this dichotomy is with the dictionary, specifically the Oxford English Dictionary.  The venerable OED.  Pour a beer down me and I can rant on this for three bowls of pretzels. The Dictionary Should the dictionary lead or follow the language?  I guess I'm somewhat elitist because I always thought that the dictionary would lead a language's speakers and listeners, writers and readers, to use the language in the one true and correct way.  I used the dictionary as a tool to challenge my own common perceptions of language and use, and self-correct as necessary, in order to preserve order and strength and civility. Boy, was I wrong.  A few years ago, I was struck by a TV news story that some word or another had officially been added to the OED. The rationale offered by the talking head was that the word was in common use and thus needed to be captured and documented.  That seemed reasonable enough, given that times and tides do change.  After all, we certainly want our language to reflect the evolution of our civilization in the years since the OED started capturing these words. The particular word in the news story, which I don't recall, struck me as a slang-like and even pop-culture-ish.  I thought that within 3-4 years, the word would vanish from our common vernacular; it was transient and value-less, so why distract and confuse us humans by capturing it?  For me, this tarnished the value I had placed in the OED and its role in the use of the English language. The dictionary, as a tool for civilization, can be actively used to assure value to the currency of language.  When a word is used, it's value needs to be agreed upon by both speaker and listener.  The value of a word is its meaning, definition.  If the speaker mis-uses the word, the listener fails to understand and the value has not been transferred.  When a dictionary picks up a pop-culture or slang word, it is, in effect, giving people the power to create currency, the authority to print money.  Yuck. So here's the thought exercise for you, gentle reader:  Should the OED lead or follow the language? The Dress Code The “lead or follow“ model can be applied everywhere!  Gretchen and Zoe, rvalue'd by Heather, recently assessed their visibility by googling some of the idioms in their world.  One of these was, essentially, “what to wear to a Microsoft interview.“  They even suggested deferring to me to answer the question of what to wear with khakis.  Which got me thinking... Is there a “dress code“ for business casual?  Following the OED example, we might expect that there is, as a result of someone trying to follow and document it.  I have seen books on the subject, along the lines of “Business Casual for Dummies“.  There is certainly a de facto code that people follow, typically involving khakis and a polo-style short-sleeve knit shirt.  There are subtle aberrations to this code, involving pleats on the pants or strange choices in shoes.  If no one was ever fired for buying IBM (an old IT adage) then it's safe to assume that no one was ever fired for wearing khakis and a polo. Please.  I implore you.  Define a dress code, don't look for one to follow.  Abstract away from the implementation of khakis and a polo shirt, pick up the meta-attributes in that model, and use those to guide you: Clean:  we hope that you don't stack gnawed chicken bones on your work clothes Pressed:  shows a measured and moderate attention to appearance without disclosing your OCD Cared-for:  you take care of your clothes as you take care of your other responsibilities, like, say, your job Purpose-consistent:  whatever you wear, make sure it makes sense with the rest of what you're wearing; pass on the running shoes with your khakis What kind of shirt do I think one should wear with khakis?  Something suitable for going out and shopping for new and different pants!  Please lead in the way you dress, and set an example.  There is no rule book to follow, thankfully :-) The API Reference Let's bring this back to code.  An API is like a word.  It serves a purpose and does something specific, and in some cases has friends that it is often used with.  We create a system of currency when we create an API.  We need people to understand its purpose and use it correctly, so we document the API, its history, its scope, its applicability, its side-effects.  We even use it in a sentence (code example) to show its typical use. Here's your more important thought exercise:  What if the API reference evolved over time, like the OED? Would it be useful to know that GetUserName, in addition to returning the currently-logged-in user owning the process, has been used by some applications to formulate a path for per-user storage?  More interesting is that another application might have abused the API and exploited a bug to also get the user's network domain.  If the advapi32.dll author wanted to fix the bug, it might mean actually changing the meaning of the API for those that have used it.  It's like a dictionary changing the definition of a word, or adding a new definition based on common usage.  Can an API be re-purposed?  Can the owner ever assert and enforce the original intent? I don't have a clear opinion on this, I'm conflicted.  Misery loves company, so if this problem makes sense to you, please embrace and extend.
What not to do!
10/5/2004 external link
Here's a new life lesson for me, one I discovered on or about my 40th birthday:  Don't start a blog on the day before a multi-day vacation.  I think the lesson can be generalized to:  Don't start something in one context right before switching to a different one. JoeN was giving me grief, and rightly so, about having not updated my blog since it was created.  He's right.  Joe and I once laughed for, well, minutes about the idea that blogging had jumped the shark.  It was because Eric Rudder had created a blog, posted two entries, then dropped it on its head.  A year later, he picked it back up again and has posted two more times.  Who's the slacker now? Aaron also called me to task in comments to my initial post, suggesting that in addition to the hardcore technical information (now, where's that MS-DOS Encyclopedia?), I should provide fashion tips.  Gosh, what to do, what to do... Wear white when YOU want to, no matter what the calendar says.
Look what the cat hocked up!
9/4/2004 external link
Clever, huh?  Got that line from some movie or other, and I've been waiting almost 12 years to put it in print somewhere near my name.  It was going to be the subtitle of my blog, a kind of pithy self-effacement to show a lack of pretention about my blog.  Ack!  I'm already overdoing the clever. My name is Chad and I work at Microsoft.  I am currently the Lead Program Manager on the Visual Studio Core team responsible for what could best be termed "Code Focused Development."  My team designs and drives the features that are most closely related to a developer's most important asset: code. These features are the core editor and Intellisense, code navigation tools like the Object Browser and ClassView, the Project and Solution system, and the new MSBuild build system.  Don't get me wrong, we aren't alone in working on these areas -- none of this stuff happens without the customer focus, design effort, and code that comes from the VB, VC#, VC++, and VJ# teams as well! In the past, I've worked as a Program Manager on VB (4.0a and 5.0), VJ++ (6.0, the Injunction Edition), and as the development lead on Winforms (.NET Framework 1.0).  This blog will be mostly forward looking, because it's about my responsibilities now: Visual Studio Whidbey, and beyond!  I'm looking forward to sharing some stuff about VS, editors & build systems, and maybe the odd provocative thingy.  Mostly, I'm looking forward to hearing back from you so we can make better products to make your products better!