I’m sitting here in the Memphis airport at the terminal gate for New Orleans. Having gone 17 weeks without seeing a single Saints fan, you’d think each person wearing a Fleur de Lis football jersey was a long lost family member of mine, as I run up to them hugging them screaming Who Dat as if it were some Cajun form of “Hello, I wish you well.” In fact, it is precisely that.
To discuss my last day on CodePlex, I chatted with Dan Fernandez on Channel 9 and introduced him to the Who Dat Nation. Dan has known me for years, so he wasn’t surprised when he saw me putting on my Mardi Gras gear in the parking lot.
URL: http://channel9.msdn.com/shows/This+Week+On+Channel+9/TWC9-Sara-Ford-recognize-touch-gestures-make-Windows-7-into-a-hotspot/
Who Dat!
And Happy Mardi Gras!
While cleaning out my office in preparation for my big move to California, I ran across my Agile Program Manager “cheat sheet.” I had to laugh because as I reviewed the document, i thought to myself “This makes so much sense. How did i never get this before?”
When I first joined CodePlex, I was going out of my mind insane trying to figure out what my daily PM responsibilities were. So, in typical Sara Ford-like fashion, I told Jim Newkirk we weren’t going to end our 1-1 weekly meeting until he had outlined what was expected of me as a PM each step of the way in an agile development cycle.
3 hours later, I left Jim’s office with this document.
How Agile Works
Each number represents an iteration, which is a week of work. I1, I2, and I3 are the development iterations. The majority of a Program Manager’s time is spent in the pre-I1 iterations, named –3, –2, and –1.
The Epic Story – This is what goes on a sticky note on the whiteboard. For example, “Ratings and Reviews for Project releases” is an epic story with the following stories associated with it.
- Rate Release
- Display ratings and reviews on release page
- Display ratings and reviews on project homepage
- Move release metadata to new location // also a UX improvement Epic story
- Releases sorted by date with release ratings // also a UX improvement Epic story
Pre-Iteration Planning Meeting (IPM) Planning (about 10 weeks out from deployment date)
These are the series of Program Manager tasks that need to be completed in this order:
- Epic + Proposed Stories are written
- Wireframes are designed
- Review wireframes with team
- Rewrite stories based on wireframes
- Prioritize what gets done first in terms of dependences
- Think about how non-dependencies can be done later or separately
- Talk to developers for high-level estimates
- These "stories” should be in terms of < 5 days of work
- Talk to test team about acceptance tests
Product Backlog
- Story must be ready at I1 (the first iteration of development work). This must be actionable work, meaning the developer can grab the story (and wireframe if appropriate) and start coding immediately.
- Story entered as feature in product backlog
- Have about 9-10 weeks of work in Product Backlog at all times
Iteration Planning Meeting (IPM)
- Program Manager –> Developer translation occurs with each story
- Developer breaks story down into their language and into their own tasks. (again, this is where the dev is in charge of the how and the PM is in charge of the what).
- The team as a collective aims for how much work they can do in that one week. Everything beyond that is put back into the backlog for re-priorization by the Program Manager for the next IPM
In January 2006, nearly 4 years ago to the day, I created my first account on CodePlex, when the site was still in internal-only alpha preview. A the time, I was the Program Manager for the Visual Studio Power Toys, where my team created the 5th, 6th, and 9th projects on CodePlex before it went live. I recall sending the CodePlex team a 15 page document on all the UI suggestions I had. They were very receptive of my feedback and always treated me like a virtual member of the CodePlex team since the very beginning.
I officially joined the team in October 2007. The CodePlex site had approximately 2800 projects at that time. Now, we have exactly 13,505 projects. It’s been an absolute privilege to watch 11,000 open source projects get created on a site run by Microsoft. I can’t thank the CodePlex community enough for the support they’ve given us and me personally over the years. It’s just been incredible.
So what’s next?
I’ve accepted a position to be a Developer Evangelist for Microsoft in the Silicon Valley area in California. In other words, I’m moving from the product groups to “the field.” Needless to say, this won’t be the last you’ll hear of me doing open source. Remember, I jumped off a building for open source at Microsoft, so you’re not getting rid of me that easily!
Again, I cannot thank the community enough for such a tremendous couple of years. To quote the immortal words of the 9th Doctor Who (Christopher Eccleston) right before his regeneration, “You were fantastic! And so was I!”
Happy Mardi Gras!
In a follow up to my original post on how I learned to program manage an agile team, I’ve put together a 3 part series on how to be an Agile Program Manager over on Port 25.
Enjoy!
I promised on Twitter to write a blog post explaining why “kata” was the wrong word for the “coding kata” problems presented at CodeMash this past week in Ohio.
First and foremost, I absolutely loved the idea of these coding problems. The problems were very similar to those found in computer science classes (for example, find all the prime numbers between 1 and 100), but the goal was to explore new languages or coding techniques (like TDD). For me, getting to pair programming with a coworker using TDD/xUnit to solve a few coding problems was definitely a highlight of the conference.
However, as a martial artist, to me “kata” is the wrong terminology to use in this context. The correct terminology is either “coding kihons” or probably more accurately “coding kumite”.
What is Kata
There are 3 parts to the study of karate:
- kihon (basics) – front stance, back stance, lunge punch, reverse punch, snap kick, etc.
- kata (forms) – planned series of movements where a karateka (one who practices karate) seems to fight an invisible opponent
- kumite (sparring) – fighting against a fellow karate student
You cannot study karate without all 3 components.
In Shotokan karate, the style I practice, there are 26 katas. The movements for each kata never changes. In other words, there is only one way to do the kata, meaning that your stances, kicks, and punches must be exact, and the timing must be correct and sincere, as if you were attaching an invisible opponent. In a karate competition, those who compete in kata are measured based upon who can perform the kata closest to perfection.
Over the course of one’s study of karate, you perform the kata over, and over, and over, and over, just like the 10,000 hours theory in Outliers. (Personally, I am not comfortable doing a kata until I’ve done it at least 100 times.) Not only does the body eventually optimize physically, but something mentally happens. You go into an “auto-pilot” mode. For example, have you ever driven to your house one day, but don’t consciously remember the specifics of the drive, because you’ve done it so many times before? This is what a karateka is trying to achieve in kata (and in kumite, and in all walks of life). The term for entering this “auto-pilot” mode is called mushin, but I digress…
The basic idea of kata is you’re trying to perfect a given series of moves via repetition. There is no deviation. Or from a Zen perspective, you’re trying to reach that state of mushin where you are in total focus and concentration, where the mind and body have become one (which is also illustrated in “kime” where you unlock your ki / chi in a split second, but I digress yet again). My first karate Sensei told me that in kata you imagine that you are fighting the dark side of yourself, all the things you dislike about your character. You visualize these negative aspects and you fight them. Thus, the more you do kata, the more your character improves.
The point I’m trying to make is that there’s a much larger aspect to kata than going through the movements.
What a “Coding Kata” would really look like
Below are a couple of examples of what I think a coding kata could look like:
Kata #1: The Implementation of Hello World in C#
public class Hello1
{
public static void Main()
{
System.Console.WriteLine("Hello World!");
}
}
Kata #2: The Implementation of Bubble Sort in C# (via C# online)
private int[] a = new int[100];
private int x;
public void SortArray()
{
int i;
int j;
int temp;
for( i = (x - 1); i >= 0; i-- )
{
for( j = 1; j <= i; j++ )
{
if( a[j-1] > a[j] )
{
temp = a[j-1];
a[j-1] = a[j];
a[j] = temp;
}
}
}
}
And you would practice these katas as many times as possible, until you can code it wearing a blindfold or hold a conversation while coding this method.
In my opinion, coding katas are really just sample code or an algorithm for doing something. Just like a real kata, you know exactly what it is you are supposed to do. You’re just learning to repeat it over and over again, so it becomes second nature.
But, I’m not sure whether repeating these lines of code over and over again would make you a better coder. It would definitely help initially, but I’m not sure the benefits after that point. Maybe a true “coding kata” is mastered much faster than an actual karate kata.
Why Coding Kumite is a better term
Kihon is learning the specific techniques, like punches, kicks, stances, etc. In kihon, you practice these techniques in isolation, and you repeat each individually over and over and over again. To me, coding kihon would be the equivalent of learning the syntax of a language, learning lamda expressions, or learning generics. Kihon is not about solving a problem, but rather learning what tools you have available to solve a problem. Only after one learns kihon, can a karate student learn kata and kumite.
Looking at these coding problems, you could make the argument that your opponent is the problem to solve. And you’re using all your kihon practices to solve the problem, just like you would do in actual sparring (or in kumite.)
Conclusion
Having said all of this, my “Coding Kumite” analogy still falls short. I think only in debugging, where you are trying to find and fix bugs, is actual “coding kumite”. But, writing code to solve a problem still feels much closer to kumite to me than kata or kihon.
For a different perspective, you can check out Steve Andrew’s blog post called Shotokan Development. He watched my Nidan (2nd degree) black belt exam back in November, and wrote a blog post from the perspective of a software engineer on how to apply Shotokan teaching methods to software engineering.
Lastly, I’ve never experienced mushin in coding like i have in karate. Maybe someone out there has and can respond with a counterpoint to this. I’m really curious what others think, and I definitely would love to discuss these concepts further. I really think we could put together a teaching framework based on karate concepts, if anyone is interested in helping me out.
Maybe the next open spaces unconference I can propose a topic on karate terms in coding, but that’s only if Doctor Who is no longer making me need a support group. =D
Zain Naboulsi, a Developer Evangelist, has started the Tip of the Day series for Visual Studio 2010. I spent a lot of time with Zain last year sharing what I’ve learned about writing a new tip every single day for a year, so he knows what he’s getting into. =D I’m very excited to see the series return!
It’s all yours Zain!
http://blogs.msdn.com/zainnab/archive/tags/vs2010/Tips+and+Tricks/default.aspx
I’m embarrassed to say just how long I’ve had Jono Bacon’s book sitting on my coffee table, as a constant reminder to myself that I haven’t written a blog entry yet on The Art of Community. In the spirit of agile, I’m going to sit here and write a review on the first chapter. Since the book starts off with a high-level overview of community concepts, I’m hoping this blog post will entice you to read the rest, or consider getting this book for someone you know who loves meetups, blogging, twitter, or any other community activity.
Just a quick aside, why I’m beating myself up for taking so long to write this, is because I want to be just like Jono when I grow up. I met Jono at his first Community Leadership Summit. Not only did I immediately realize that Jono is one of those people who “gets community” (and if you’re reading this and know what i’m talking about, go buy this book now!), but also, he’s someone who can empower and inspire other community leaders who also “get community” to go above and beyond. For example, if you’ve ever read Stephen King’s “The Dark Tower – Book 7”, we find out that there’s one special breaker who can enable the other breakers to work 300% better. I’d say Jono is like Ted in that aspect because of the way I saw him inspire myself and others at the Community Leadership Summit. (And if you haven’t read the Dark Tower Series, I swear this reference to Ted is a good thing!)
Thoughts on Chapter 1
I have to say I’ve never read just a first chapter of a book (not even a book by Stephen King) that’s inspired me to write a blog post on it. But I feel compelled to get the word out to my respective communities about this book without further delay.
Community = Belonging
I thought I’d heard it all after nearly 8 years at Microsoft on why do people participate in community, from recognition, common need, identity, response to a crisis, and passion. I thought nothing would ever top “passion”, but then I got to page 5 and read about a sense of “belonging.”
I had just boarded a flight from SEA to PDX to visit Oregon State University’s Open Source Lab, when I read about this idea of “belonging.” I spent the entire 45-minute flight trying to prove this term wrong, that “passion” clearly had “belonging” beat. But I couldn’t. I kept thinking about growing up back home in New Orleans, and how we have a tremendous sense of community there. I thought about going to Mardi Gras as a native compared to a tourist. Natives come together at Mardi Gras because it is about celebrating the community we belong to and celebrating who we are. Or even better, check out the #whodat twitter stream and see the passion of the New Orleans Saints fans going on right now. (Who Dat?! Who Dat?! Who dat say they going to beat dem Saints?!)
Even though I’m 3,000 miles away, I can still feel a sense of belonging to New Orleans. Online communities, like #whodat on twitter, give me an opportunity to express how important it is for me to feel connected to New Orleans.
Or as Jono says on page 5, “If there is no belonging, there is no community.”
Social Capital
This is probably the best explanation I’ve ever seen describing how reputation does not equal community. Way too often, I’ve seen people try to form communities based on reputation. Similar to the “if you build it they will come” flawed notion of community-building, there are folks who think if you reward people with “social capital” they’ll participate more. But as Jono describes on page 7, “People don’t make money for the purposes of just having money: they make money because it allows them to do other things.” Or more specifically, “Most people who work with social capital are not merely air-kissing, hand-wavey, superficial animals who simply want to name-drop and be name-dropped in the interests of social acceptance.” They are participating in the community because of that sense of belonging. Thank you, Jono. Thank you.
Storytelling
When I got to this part in the book (and it’s only on page 8), i thought my head would explode from excitement and wonder. I’d never ever thought in 8 years to ever think about how we communicate with each other in the community. And yet, here it is, such a simple concept on page 8, “[Jono] realized that the mechanism behind communication in a community is stories.”
When I read this sentence, I had about 16 different memories come flooding back in a single moment (which is usual for me. I have a very strong visual memory.) Each memory consisted of various groups of “people I belong to” telling stories for hours. Whether it is me telling my infamous Uncle Jimmy stories (and why I have a honest-to-god fear of plants), listening to someone talk about ASP.NET MVC, or just comparing Hurricane Katrina aftermath stories in a bar in the French Quarter, storytelling is truly how communities communicate.
Communities provide Opportunity
On page 10, Jono describes his first encounter with Linux and how he “smelled the sweet aroma of opportunity.” I can definitely relate to my time spent on the Visual Studio team. When I first saw a concept spec of a “Tip of the Day” for the Visual Studio start page, I could definitely sense the opportunity to do something cool. But I also love Jono’s quote of “If there is no viable path, we enter the world of fantasy.”
And just when I thought these concepts couldn’t get any deeper, I was helplessly enthralled once again by reading “Opportunity is born in a sense of belief.”
For me doing the 382 Tip of the Day series for Visual Studio, my “belief” was that there were others like me out there in the world. Others who knew what it was like to be a community of one (when I was in college), sitting alone in an office working day in and day out on Visual Studio, not knowing about 98% of its features. It was that belief that make it possible for me to write a tip every day for 1.5 years.
Community Manager
So far in chapter one, I’ve been swinging my legs back and forth, just having the time of my life reading this book, until I saw one word that I vowed to never use in the same context of community: enable.
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!
I must pause for a second to wonder whether this is “the Microsoft” in me that is saying this. Sometimes you get so accustomed to working a certain way that you have trouble figuring out whether your instincts are right, or if you’ve just been trained to think a certain way. Go read my Why I Love To Hate Agile post to understand about my performance neurosis.
I guess that same neurosis applies to community, but I’ve never thought about it. I’ve spent significant time among other Microsoft community folks, and I’ve spent some time with non-Microsoft community folks who were running online forums. But, reading this book has probably given me the broadest perspective possible on community. And to see Jono use the word “enable” was a real wake up call. In fact, I had to laugh out loud at myself.
A very long time ago, way before I joined CodePlex, I had a very passionate conversation with a coworker whether community managers are supposed to “enable the community to do something” or whether “enable” was just the word to use when you didn’t know how to actually do it. The argument was the community manager should be able to clearly state what the intended outcome was and what his/her involvement would be. After this conversation, I stopped using the word enable, and thus became sensitized to it.
The root issue of this conversation was about how to measure the performance of a good community manager. I hope Jono explores this later on. Or maybe we can have this as a session at next year’s Community Leadership Summit. I honestly believe there’s “no one size fits all” answer here.
But I digress… yes, absolutely, a community manager enables, just as I described at the beginning of this blog post how Jono is a community manager who enables community managers.
Conclusion
And this concludes my book report on the first 14 pages of The Art of Community. And to think I only have another 350 pages to go before I’m finished with the book. That’s only another 26 blog entries on the subject. =D
The Art of Community
Website: http://www.artofcommunityonline.org/
Amazon: http://www.amazon.com/Art-Community-Building-Participation-Practice/dp/0596156715
Cheers!
The bi-annual Microsoft Women’s Conference was held last week on the Microsoft Redmond Campus. I keep enjoying this conference more and more each year.
In my humble opinion, the Executive Roundtable event was by leaps and bounds the most productive, most rewarding event I have ever seen offered to Women in Technology. I often wonder what more we can do to retain the current talented women in the technology field. This event hit a home run in retaining me.
Highlights
- For 2 days, I was surrounded by thousands of my own kind. It really makes a difference.
- Overall quality of speakers. Wow.
Lowlights
- Dear Speakers: Before you start with Hurricane Katrina references, please acknowledge for a second that this isn’t a “past” event for some people in the audience. It’s almost like a cheap shot to be all introspective in these session and then hear a Katrina reference. But I know, I’m in the minority that felt like this.
- They kept running out of hot water for tea. (yeah, yeah, I’m struggling to find some lowlights.)
Top Sessions I Attended
Despite popular belief, I do not have enough energy to be in two places at once. These are my personal favorites, based on the sessions I was able to attend. In no way is this meant to be a reflection of the overall top session at the conference.
Key takeaways from these sessions are below.
Achieving Peek Performance… No Matter What
Wow, what a session to kick-off the conference. Bonnie St. John won the Bronze medal for downhill skiing in the Paralympics, but if you check out the picture, you’ll notice that she has one leg. Besides being an Olympic athlete, she’s a White House economic official, a Rhode scholar, and a consultant to the Fortune 500. NBC Nightly News refers to Bonnie as one of the five most inspiring women in America.
Key Quote
"Winners aren't those who don't make mistakes. Winners are people who can get up after a fall the fastest."
Main Takeaways
- The most successful people are those who accepted the most help.
- Courage is just like a muscle. It has to be built step by step by taking risk after risk.
- Never forget to find joy in life.
Other Notable Quotes
- “You have to take that first risk, and when you get through it, you get stronger, than you take another, and you get stronger, until you get to a place where fear has no power over you.” – via President of Liberia
- “I [Bonnie] thought I would never get a date, since I have only one leg. But my sister said, ‘Just think. You’ll never have to date jerks!’”
- “Disable sport is all about world class excellence, since you are competing in a world without perfect resources, just like today’s business world.”
1-1 with Bonnie
Bonnie asked me what was my biggest takeaway was from the talk. I said “it was the story about never forget to find joy in life. I get so focused on problem solving that I forget to see the forest for the trees.”
Working for You Isn’t Working for Me
They brought in a Harvard-trained psychotherapist to explain how to get along at work! I love it! Katherine Crowley, a Harvard trained psychotherapist, and Kathi Elster, a management consultant, started their company K Squared Enterprises. They also wrote the book Working with You Is Killing Me.
Quite possibly the best session at the conference. The speakers not only clearly defined their objectives, but also delivered them. The pace, the format, the audience interaction was spot on.
Key Quote
“Do NOT take the other person's behavior personally. They are not attacking you as much as you think they are.”
Main Takeaways
- Handle yourself first, then handle the situation
- Don’t forget to breathe. It really does change things.
- Partnership are challenging. First thing you have to do is build trust. Put in the time, and handle with care.
Other Notable Quotes
- “Revengeful thoughts is where you take poison and hope for someone else's demise"
- “Your mind is dangerous if left to its own devices"
- "Slow motion gets you there faster"
Become a Change Master: Mastering the art of mind and body change
This was a fun talk! But then again, since I was 5 years old, I’ve wanted to be a 97-year old bodybuilder so I can be featured on the local news. Dr. Pamela Peek is the Chief Medical Correspondent for Discovery Health TV. She also wrote the book Body for Life for Women.
Key Quote
"Take your dog for a walk, even if you don't have one."
Main Takeaways
- Scientists have just recently discovered that we create new neurons. It was previously believed that we only have as many neurons as we’re born with. The upside to this is that it is possible to change habits. We just need to retrain our brains using reward as a positive reinforcement.
- When afraid of change, honestly ask yourself “what’s the worst that can happen?” Say the answer out loud, step on the fear, and move on. But you have to say it out loud to confront your fear.
Other Notable Quotes
- “Not having a friend to talk to is as dangerous to your health as being a smoker.”
- “If Nike had a women’s brand tagline, it would be ‘Don’t overthink it.’” Because we’re hard-wired in our DNA to care, we can’t stop trying to problem solve.
- “The fundamental piece is taking care of yourself, so that you can make good decisions.”
1-1 with Dr. Pamela
I told her how I wanted to be a 97-year old weightlifter and how motivating it was to see 90 year old women competing in athletic events. She suggested that I try out powerlifting, even though I tried to explain to her that I am really not that strong. She also told me if I was interested in starting triathlons, I should check out http://www.irongirl.com
Microsoft 2.0: An interview with Mary Jo Foley
This was fun to see the interviewer and interviewee swap seats. Mary Jo Foley is a journalist and blogger who has covered the technology industry for more than 25 years.
Key takeaway
Not surprising, my key takeaway was her answer to my question during the Audience Q&A session. For a second there, the format of the session and ambiance of the conference room made me feel like I was one of the theater students at Inside The Actors Studio, especially with the dramatic waiving of my arms for the microphone person to see me in the back row.
My question was “You’ve stated that you picked journalism over broadcast because you wanted to stay behind the pen. But, when you became a blogger, you now had your personal bio out there in the public light. If you could go back in time, what is the one thing you wish you could tell yourself about blogging.”
Her answer was, “To grow thick skin. Knowing this would have helped to avoid many sleepless nights.”
I wholeheartedly concur.
And this concludes my 3rd Microsoft’s Women’s Conference. Thank you Microsoft for yet another AWESOME event. Until next time.
Just like the kiwi bird down here in New Zealand, I proved that I too am flightless. The 7 minute video explains it all.
You can find this full version at http://www.youtube.com/watch?v=jcc4KRrZpI0
Or watch just the jump from the ground looking up at: http://www.youtube.com/watch?v=iKvQLb2UKXg
Special thanks to Sky Jump! for lettings us film and TechEd Online New Zealand for making the jump happen and for putting the full edited video together.
Thanks for coming to today’s session! As I’ve said (or about to say), don’t take notes! Here are all the tips for you. Just sit back, relax, and enjoy the show!
0. Know your Keybindings! All these are in the General Development Settings.
Searching
1. How to behold the power of incremental search
http://blogs.msdn.com/saraford/archive/2007/07/23/did-you-know-behold-the-power-of-incremental-search.aspx
Command: Edit.IncrementalSearch
Shortcut: Ctrl+i
2. Ctrl+F3 to search for currently-selected word
http://blogs.msdn.com/saraford/archive/2007/10/26/did-you-know-ctrl-f3-searches-for-the-currently-selected-string-without-brining-up-the-find-window.aspx
Command: Edit.FindNextStatement
3. F3 to search for last thing you searched for
http://blogs.msdn.com/saraford/archive/2007/10/25/did-you-know-f3-searches-for-the-last-thing-you-searched-for.aspx
Command: Edit.FindNext
4. Customize what files to find in
http://blogs.msdn.com/saraford/archive/2007/11/07/did-you-know-how-to-customize-what-files-to-find-in.aspx
Find In Files – Look in – Choose Search Folders
5. You can use a reg hack for customizing search results
http://blogs.msdn.com/saraford/archive/2008/11/24/did-you-know-you-can-customize-how-search-results-are-displayed-in-the-find-results-window-363.aspx
HKCU\Software\Microsoft\VisualStudio\9.0\Find String Find=$f$e($l,$c):$t\r\n
Editing
6. How not to accidentally copy a blank line
http://blogs.msdn.com/saraford/archive/2007/09/28/did-you-know-how-not-to-accidentally-copy-a-blank-line.aspx
Tools – Options – Text Editor – All Languages – General, Uncheck Apply cut or copy to blank lines
7. How to cycle through the Clipboard ring
http://blogs.msdn.com/saraford/archive/2007/10/01/did-you-know-how-to-cycle-through-the-clipboard-ring-to-paste-different-things.aspx
Command: Edit.CycleClipboardRing
Shortcut: Ctrl+Shift+v
8. How to use box/column selection in the editor
http://blogs.msdn.com/saraford/archive/2007/07/27/did-you-know-how-to-do-box-selection-in-the-editor.aspx
Command: Edit.LineUpColumnExtend, Edit.LineDownColumnExtend, Edit.CharRightColumnExtend, Edit.CharLeftColumnExtend
Shortcut: Shift+Alt+Arrow
9. You can copy a file’s full path / open windows explorer from the file tab channel
http://blogs.msdn.com/saraford/archive/2008/01/09/did-you-know-you-can-copy-a-file-s-full-path-from-the-file-tab-channel.aspx
Command: File.CopyFullPath
10. Drag and drop code onto the toolbox’s general tab
http://blogs.msdn.com/saraford/archive/2008/04/10/did-you-know-you-can-drag-and-drop-code-onto-the-toolbox-general-tab-191.aspx
11. You can use Ctrl+. to show a smart tag
http://blogs.msdn.com/saraford/archive/2008/11/18/did-you-know-ctrl-shows-a-smart-tag-359.aspx
Command: View.ShowSmartTag
12. You can insert a snippet by pressing Tab Tab
http://blogs.msdn.com/saraford/archive/2008/06/10/did-you-know-you-can-insert-a-snippet-via-tab-tab-234.aspx
Type in snippet shortcut, then press Tab Tab
Customizing
13. You can create temp or throw away projects
http://blogs.msdn.com/saraford/archive/2008/02/25/did-you-know-you-can-create-temp-or-throw-away-projects-158.aspx
Tools - Options - Projects and Solutions - General, uncheck Save new projects when created
14. Change text editor font size via keyboard (Accessibility macros)
http://blogs.msdn.com/saraford/archive/2008/06/20/did-you-know-you-can-bind-macros-to-keyboard-shortcuts-or-how-to-quickly-increase-decrease-your-text-editor-font-size-242.aspx
Command: Macros.Samples.Accessibility.DecreaseTextEditorFontSize
Command: Macros.Samples.Accessibility.IncreaseTextEditorFontSize
15. How to open a file without any UI
http://blogs.msdn.com/saraford/archive/2007/11/26/did-you-know-how-to-have-fun-with-the-find-combo-box.aspx
Ctrl+/ (or whatever Tools.GoToCommandLine is bound to)
alias fo file.openfile
fo <filename>
16. Guidelines in the editor registry key hack
http://blogs.msdn.com/saraford/archive/2008/04/01/did-you-know-you-can-display-guidelines-in-the-editor-and-tip-of-the-day-ends-today-184.aspx
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Text Editor String RBG(128,0,0) 5, 20
17. You can create a macro for your import/export settings – see http://blog.jeffhandley.com/archive/2009/03/31/vs-profiles.aspx
http://blogs.msdn.com/saraford/archive/2008/12/05/did-you-know-you-can-create-toolbar-buttons-to-quickly-toggle-your-favorite-vs-settings-371.aspx
18. How to not show the start page (or have the last loaded solution open)
http://blogs.msdn.com/saraford/archive/2008/01/03/did-you-know-how-to-customize-what-visual-studio-opens-to-or-how-to-make-the-start-page-not-show-up-when-vs-opens.aspx
Tools - Options - Environment - Startup, At Startup
19. File tab channel registry hack
http://blogs.msdn.com/saraford/archive/2008/10/09/did-you-know-you-can-keep-recently-used-files-from-falling-off-the-file-tab-channel-331.aspx
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0 key, you can create a DWORD UseMRUDocOrdering = 1
20. How to show Misc Files Project to keep your files around
http://blogs.msdn.com/saraford/archive/2008/01/01/did-you-know-how-to-show-the-miscellaneous-files-project-in-the-solution-explorer.aspx
tools - options - environment – documents, show miscellaneous files in Solution Explorer
21. Edit project file from within IDE (unload project)
http://blogs.msdn.com/saraford/archive/2008/10/10/did-you-know-how-to-edit-a-csproj-or-vbproj-project-file-within-the-ide-332.aspx
Unload project, edit project, reload project
Debugging
22. You can use tracepoints to log stuff in your code
http://blogs.msdn.com/saraford/archive/2008/06/13/did-you-know-you-can-use-tracepoints-to-log-printf-or-console-writeline-info-without-editing-your-code-237.aspx
Right-click in indicator margin, select breakpoints, select Insert Tracepoint
23. How to get the find source dialog back
http://blogs.msdn.com/saraford/archive/2008/09/17/did-you-know-how-to-get-the-find-source-dialog-back-instead-of-the-there-is-no-source-code-available-message-315.aspx
Solution Properties, under Common Properties - Debug Source Files, Delete Do no look for these source files edit box contents
24. You can disable the exception assistant
http://blogs.msdn.com/saraford/archive/2008/08/05/did-you-know-you-can-disable-the-exception-assistant-274.aspx
Tools – Options – Debugging – General, uncheck Enable the Exception Assistant
25. You can use the XML Visualizer
http://blogs.msdn.com/saraford/archive/2008/09/25/did-you-know-you-can-use-the-xml-visualizer-to-view-xml-321.aspx
Drop down the little down arrow on the data tip or in the watch window.
The Channel 9 team recently met with me to discuss “The State of the CodePlex” as I like to call it. It was a quick chat about where CodePlex has been and where the site is heading.
I think this was my 4th appearance on Channel 9 (Women in Tech interview with Scoble, Hurricane Katrina recap with Jennifer and Charles, Power Toys for Visual Studio interview, and now CodePlex.)
Another year, another DevLink.
Highlights
- Tweets about me moving the ship from Jim Holmes and Leon. I am here to do epic battle with Microsoft, so their tweets me the world to me.
- Telling my Uncle Jimmy stories one night at the bar. I so have to go into standup comedy.
- Setting Leon up for that spike about “well get a better compiler” in the Deep Fried Bytes podcast
- Meeting the nature boy rick flair
- I discovered PockeTwit for the Windows Mobile phone
- And of course Open Spaces more on that below.
Open spaces
I really liked Jeff’s puzzle one, because I got to have a childhood moment about the NES game Shadowgate. I might actually have to buy (another) Super NES now.
I really liked getting to use a projector during the open space i proposed on agile development. I was happy to see others stand up and start using the whiteboard to describe their agile processes, despite . It was nice that I was able to share what I wanted to share, but learn stuff from others (the Honda agile approach with swim lanes and what goes in and out. We don’t do this quite this visually in the CodePlex team, but there is a notion that this is happening in our releases).
Lowlights
- The conference wasn’t long enough for me =D I only get to see these folks twice a year, maybe 3 times if I’m really fortunate. I only got 3-4 hours a sleep (and this was after a red-eye) because I wanted to max hour the time I got to hang with everyone.
- I wished I had submitted a talk called “How To Program Manage an Agile Team” I’ll definitely submit for CodeMash
Going through my folder of my blog “contact me” emails, I came across this question. I like tricking Visual Studio into doing things, so I thought I’d share.
Is there a way to display only line number of coded lines, i.e. don’t number blank lines? Numbered blank lines makes showing code in powerpoint decks hard to follow.
Here’s the screenshot of what could go into your powerpoint deck.

To do this,
- Enable Word Wrap (Tools Options - Text Editor - All Languages - General)
- At the end of the first real line (like #28 above), start inserting white space until it goes off the screen. Note the Word Wrap glyph.
- Turn off the Word Wrap glyph (same place as in step 1) and Turn off “View White Space” (Edit - Advance – View White Space)
Here’s what the hack really looks like
Sorry, this isn’t the start of a new VS tip series. Just wanted to share some q&a that have come in through my blog.
According to the incredibly awesome Catherine Eibner, I’m going to TechEd Australia!! And I found this out on the same day that I donated the last of my advance on my book royalties, bringing the Save Waveland Scholarship Fund to $29,008.34 cents. Thank you everyone for voting to get me down to Australia.

I will be giving two talks on Visual Studio IDE Tips (300lv) and A Tour of CodePlex (200lv).
“Koalas”
And for now on, I must say “Koalas” and not “Koala bears” (unless I’m talking about my stuffed animal Koala bear because that’s like 29 years of hard-wiring in my head that isn’t going to change overnight).
Picture from http://cuteoverload.com/2006/09/05/the_good_peeps_/
According to Wikipedia, Koalas are marsupials. And,
Although the koala is not a bear, when first adopted by English speakers, the name koala bear became popular, as this roughly evoked the species' similarity in appearance to the Teddy bear, to people unfamiliar with it. Although taxonomically incorrect, the name koala bear is still in use today outside Australia[5] — its use is discouraged because of the inaccuracy in the name.
I’m hoping I’ll have time to play tourist and go to a Koala park and see them for real. OMG that would so rule.
And lastly, a quick heart-felt shout out thank you note to everyone who voted. I so love that CodePlex banner.