Hello World!

As I announced this morning over at http://blogs.msdn.com/saraford Today is my last day at Microsoft.

It’s been an incredible 9 years at the company, getting to work with smart, passionate people. I can’t even begin to describe how much I’ve learned over the years.

I’ve had the opportunity of my dreams come along, and I’ve decided to pursue it. As incredibly excited I am about this opportunity, I’m going to let my new company announce my arrival.

In the meantime, I’m so looking forward to a little downtime and getting some much needed cycling in. And of course, there’s my triathlon with Team in Training coming up.

Keep in touch and stay tuned!

Training for my first Triathlon with Team in Training

People at the various user groups I go to seem to enjoy my triathlon training stories. Since sports training is a hobby for me, I thought I’d share what it’s been like training for my first “tri”. I’m terrified of swimming, hence why i’ve never done one before.

I’m with Team in Training, a non-profit organization that raises money for the Leukemia & Lymphoma Society (blood cancer research). You fundraise for “TnT” and in return they train you for your event, whether it’s a triathlon, a marathon, or a century bike ride. They also handle event registration and logistics for you. It’s been a perfect experience for me.

Triathlon selection

I started off training for a half-Ironman (1.2 mile swim, a 50 mile bike ride, and a 13 mile run), but a 5-minute run in my Vibrams gave me some tendonitis in my ankle. Yes, i had been taking it slow, wearing the Vibrams for nearly 3 months before trying to run. And yes, they were a proper fit. I had been through 4 different sizes. Nothing is that good to be true, so if you have low arches, I highly suggest avoiding Vibrams. Additionally, I heard there was an open water swim cut-off for the half-ironman, which freaked me out. I could just imagine me fighting the people on the beach or on a boat trying to pull me out of the water if i didn’t make the cut-off. Luckily, I was able to downgrade my tri to an Olympic size one in time. Baby steps.

I’m doing Marin County Triathlon on Halloween (can’t wait to see the costumes). It’s an Olympic distance of .9 mile swim, a 22 mile bike ride, and a 6.2 mile run (10k). I *love* cycling, and before the Vibram incident I could easily run 3 miles. But the swimming! Shudders.

track running

The training

The TnT folks on the tri team get together twice a week to train with the various coaches. This group has 5 coaches, most are specialized per activity. It’s cool to hear stories of the coaches starting off with TnT years ago doing their first tri as a participant and working their way up. It’s been very inspiring to me.

You also get assigned a mentor, who in my case, keeps me from quitting when I get frustrated in the swimming pool or from my latest injury. The participant to mentor ratio is really low (at least in this group), making you feel like someone truly has your back.

And lastly, they give you a static schedule to follow. I think the most important part of any exercise program or training schedule is knowing how to listen to your body, and knowing when to push through and when to throttle back. Given my never ending list of injuries, i’m constantly working on this! The other challenge is making sure you get your workouts in. You have to train 6 days a week, since you’re training for 3 different sports.

The biggest satisfaction I’ve gotten out of TnT is having run coaches evaluate my running technique and tell me what i’m doing wrong. My shin splints went away almost overnight just from correcting my technique. I was really impressed how much knowledge the coaches have. Also, being new to the area, they have been a great source for local recommendations.

bike training

You even also get your own paparazzi who take awesome photos of you training. Nothing better than folks taking pictures of you from a car, as the other vehicles start asking each other “are they famous people?” Epic!

The swimming

Last week was my first open water swim. I was terrified. I’ve never been in a wet suit before, so i’m expecting the water to be ice cold compared to the Gulf of Mexico. It’s not the open water that scares me. I used to sail as a kid. What scares me is cold water.

I stare at the lake and finally put my toe in the water. My immediate reaction is “Oh, it isn’t that bad.” I slowly walk into the water feeling the cooler temperatures permeate through the wetsuit. I’m told to open my suit a little to let the water into my chest to help get adjusted to the water. It’s a little shocking but again not that bad. I’m just grateful i’m starting off in a lake instead of The Bay.

The last step is to go underwater. No big deal. I’ve only been practicing my breathing techniques in the swimming pool for months. I sink down and I realize to my surprise I can barely get my head underwater, the wetsuit is that buoyant. I jump up and try to cannonball into the water to get fully summered.

Next, I realize I can just “sit” in the water. I’m that buoyant with this “human body life jacket”. I scream “This is AWESOME!” and take off swimming. I had a blast and didn’t want to get out of the water at the end.

I thought of Cesar Millan, the Dog Whisperer, in the episode about the Great Dane that was terrified of the swimming pool. Once Cesar finally gets the Dane into the pool after 10 minutes, the Dane discovers he likes swimming (as illustrated by the Dane’s future willingness to jump into the pool). Cesar tells the family, “10 minutes of fear versus a lifetime of fear.” This was so true in my case of the open water swim I couldn’t stop laughing at myself.

The fundraising

The first thing anyone who has done TnT before asks me, “Send me your fundraising link! I’ll help you out.” So, if you fall into this category, here’s my fundraising page.

http://pages.teamintraining.org/sj/silvertr10/sfordr

If your employer matches donations to non-profits, contact me and i’ll send you the instructions to request a match. If you’re a Microsoftie, I’ll send you the step-by-literal-step instructions.

9 years at Microsoft

Today marks my 9th year at Microsoft. Next year, I’ll collect my second Final Fantasy crystal.

I thought it would be fun to share a few blogging statistics:

It’s tradition to recap the teams you’ve worked on over the years…

  • QA on the Environment SDK (also known as VSIP, VS SDK, VS Extensions). The first feature I ever tested was “devenv.eve /safemode”
  • Learned how to do Accessibility Testing – worked without a monitor for 3 months (seriously, I listened to a screen reader) when i first joined Microsoft
  • QA on the Profiles feature (Tools – Import / Export Settings) – my first feature I worked on from design to launch
  • QA on the Extensibility team (add-ins, macros, recording macro).
  • QA on the Core IDE team (Window Management)
  • Started blogging here in October of 2003 (content was moved a few months later here)
  • Drove the Accessibility Effort for Visual Studio 2005
  • Assisted driving the User Experience Consistency Effort for Visual Studio 2005
  • QA on the Editor team (core Editor functionality)
  • QA on the Project / Solutions team, completing a tour of all the Visual Studio feature areas (okay, okay, i didn’t own Help, but i helped analyze test case failures when those owners were out of office)
  • Program Manager on the Developer Solutions (aka Power Toys) team, releasing 3 of the first 28 projects on CodePlex.com when the site went public back in 2006.
  • Kicked off the Visual Studio Tip of the Day series
  • As a hobby, I assisted teams within Visual Studio in releasing to CodePlex by authoring a framework for what sorts of releases go where and how to get them to the outside world.  Even received a ThinkWeek review by Bill Gates.
  • Program Manager for CodePlex.com. First got my CodePlex.com account back in early 2006. Joined as PM when site had 2800 projects.
  • Achieved 4 of my childhood dreams: Rode on a Mardi Gras float, Held a Koala, Got To Be In That Number When the Saints Went Marching In!, and got my 2nd degree black belt. Only 2 dreams left to go: Buy a DeLorean and Do an Ironman.
  • Achieved 2 of my professional dreams; Wrote my first book and started a college scholarship for folks back home; Got to be in a TechEd Keynote (in Australia)
  • Overcame 1 of my biggest nightmares: Jumping from a Tall Building
  • Left CodePlex.com after watching 10,000 Open Source Projects get created as the Program Manager
  • Finally moved to California after 81 months without seeing the Sun. No joke! 9 months of gray * 9 years = 81 months.
  • Now a Developer Evangelist for Silicon Valley who can demo 101 Visual Studio features in exactly 55 minutes ;-)

It’s also tradition to bring in a pound of M&Ms for each year at MSFT. Since my team is scattered across the west coast, I’ll bring my 9 pounds of M&Ms to SuperHappyDevHouse on Saturday.

Thanks everyone for a fantastic 9 years!

My first month with my Vibram Five Fingers (Barefoot running shoes)

I got my vibrams about a month ago, and have slowly been trying to break my feet in.

I can now drive in them and wear them almost 3/4 of a day. I haven’t tried running yet, although i did try a small baby hike (slight elevation, 1.5 miles roundtrip at most). Result wasn’t good. Really bad blister on my right foot. But my other foot was okay. It was a serious workout for my ankles and calves, which was exactly what I wanted.

Do I like them?

Absolutely! I was looking for way to increase the strength in my calves and ankles, and this definitely seems to be working.

What to expect if you buy a pair

The first thing of course is TAKE IT SLOW. You will have sore muscles in crazy places, like on the very top of your feet, or in your toes. I would start off just wearing them around then house or office, then after a week, try to walk around the block. It will take that long for your feet to adjust. Driving will be a new experience, so make sure you don’t go farther than a quick few minute drive.

You’ll also have to retrain yourself how to walk down stairs. Be aware of this.

And just in case of an emergency (like a car in a parking lot is about to run you over), you will want to practice running a few yards. The first time i had to run in them out of necessity was going to the grocery store. I had to get out of the way of a car, and trying to run in them was pathetic. I thought about how little babies try to run when they first start walking, and it was a display very close to that. Now I can safely and comfortably run across a street if needed, since i’ve practice a little more since then (and hopefully have built up more muscles).

Suggestions

Do not buy pink! Many people think I’m barefooted (being stopped at a restaurant for not having shoes) or think I have a horrible sunburn. It makes for very awkward initial conversations. I really wanted black, but pink was my only option at the time.

Make sure you start with socks! I think regardless i was going to get a blister on my right foot, but socks would have helped.

I need help with

Figuring out sizing. Yeah, I know, welcome to the club. I am either a W37 or W38. The W38, even with socks, is a little loose in the heel, and a comfortable amount of room in the toes. The REI Flagship store in Seattle said you want your heel secure. I tried on the W37 and thought they might be a little tight, but I wasn’t sure what i was/am doing yet. I’m wondering if getting a smaller pair would help with blisters, but i wanted to hear what others thought.

Dealing with blisters. I have one right on the ball of my right foot. Most people on the forums are complaining about blisters on the right and left sides or toes, but there’s not much info on center of foot. Again, I’m back to just the basics, wearing them around all day in socks, and absolutely no running in them until I can walk without any issues.

Happy Lombardi Gras!!

“It’s like waiting 43 years for someone to tell you ‘I love you’ back.” – Superbowl Pregame Show.

What a week.

I flew down Saturday morning to join family in the French Quarter. A cousin booked a hotel room with a balcony on Bourbon Street for Superbowl weekend way back in October. What an incredible experience to be right there in that number when the Saints went marching in.

This photo was taken by me, hence the poor quality, which may not be a bad thing. =D

Bourbon Street right after Saints winning Superbowl

All around New Orleans folks were honking horns, shooting fireworks, hugging one another. Everywhere you went in the city that night was a sea of black and gold.

My cousin sent the New Orleans TV crew WWL “Pigs are flying” mardi gras beads. The news anchors were so thrilled by them that they showed them on the news, twice (once in Miami and once in New Orleans). We were beyond thrilled.

Flying Pig beads

Maybe it was the Saints or maybe it was the City of New Orleans, but whoever it was, someone had great insight to plan a Saints parade (win or lose) on Tuesday after the Superbowl. We called that day Lombardi Gras.

Parade organizers estimate 800,000 were in attendance. To put that number into perspective, approximately 250k-300k live in New Orleans. And it was cold. Very cold for New Orleans standards. So cold in fact, it started to snow today, but that’s what happens when the Saints win the superbowl and pigs fly.

Just as if we couldn’t adore Drew Brees any more (we’ve already turned his home into a shrine), after the Saints parade, he unexpectedly dropped by a local bar in New Orleans right off parade route to hang out and teach the crowd the pre-game chant.

Who Dat? We Dat! “New Orleans is back” – Tom Benson, owner of the Saints.

Coding is not Kata

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

Why I seriously have a phobia of plants

At the INETA party during TechEd 09, I told my “Uncle Jimmy Stories” for nearly 4 hours. Since I’ve had quite a few people ask me to blog these stories (and even more ask me to share photos), I’d thought I’d share my “kick-off” story of my childhood – why I (seriously) have a phobia of plants. Yes, ordinary household plants cause my blood pressure to skyrocket, and even the thought of just watering a plant makes me want to have a root canal instead. Here’s why…

Uncle Jimmy had a garden when I was little.

Now I need to pause for a moment to explain Uncle Jimmy. When I was 7, he moved into the shed behind the house, where he slept on a waterbed that would freeze in the winter. We had to run an extension cord from the house to the shed, so he could sleep on top of an electric blanket.

As I said, Uncle Jimmy had a garden when I was little.

He decided to experiment with a new way to grow the plants and vegetables. Now, my guess as an adult would be he tried to use oil. But oh no, that would be way too easy and simple.

Electricity. He tried to shock! the plants and vegetables into growth. He ran electric wires criss-cross throughout the garden. I was told as a little child (4 or 5 years old) to never, ever go near the garden or much less let the plants touch me, or I could get electrocuted. I must have seen him water the plants without turning off the electricity as a small child. Why else would I rather a root canal than to pour water into a little plant pot.

And to this day, plants stress me out.

Dear Seattle, Please Support New Orleans by Eating at Marcela’s Cookery

As a New Orleans native, it is my god given birthright to expose any so-called “New Orleans” restaurant that exists outside the state of Louisiana to be a complete fraud. Today, for the first time ever, I am using my birthright to declare Marcela’s Creole Cookery worthy of calling itself home.

For my birthday last month, friends and I went down to Pioneer Square in Seattle to eat at the New Orleans Restaurant thinking it would cheer up this N’awlins native. Nope, not in the least bit. Lame food, slow service, and no other new orleans people. But the worst part is that no one cared I was from new orleans or it was my birthday. Major fail.

On the way back to the car, we walked by Marcella’s Cookery. I was stunned. Here in Seattle, just blocks from each other are two “new orleans” restaurants. It was a mini birthday gift to try to expose yet another so-called “new orleans” restaurant unworthy of using our great city’s name.

Today, finally, I was able to get out to Marcella’s to put them through the trials.

The First Test – Love for the Native: I walked in and declared my place of birth. Mais Oui, je suis nee a nouvelle orleans. Within 2 minutes, the entire staff and I know each other on a first name bases. Within 5 minutes, we can visualize where we all grew up and know exactly from which parishes (what we call counties in LA) we’re from based on our n’awlins accents. Within 10 minutes, they are offering me samples of food. Free food = major love = major win.

The Second Test – Coffee: Any restaurant that dares call itself New Orleans cuisine had better serve either Cafe Du Monde coffee or Community coffee. New Orleans coffees uses chicory, so it has a unique taste that is only New Orleans. (If a “new orleans” restaurant serves Starbucks, it immediately fails the trials, and i must leave before I throw a fit.)

The Third Test – Food: The New Orleans’ culture consists of 3 things: Love of Community, Love of Mardi Gras, and the Love of Food. When the owner told me he has his seafood shipped up here, I about fell out of my chair. Why? Because people out here think prawns can be used as shrimp. Please someone explain “Prawns” to me. PRAWNS ARE NOT SHRIMP. PRAWNS ARE NOT JUMBO SHRIMP. ONLY SHRIMP IS SHRIMP!!

There are a few things a restaurant must do right to pass the food test (this is before i’ll even consider eating the food):

  • Spell “po-boys” correctly on the menu. Either “Poboy” or “Po-boy” is acceptable. “Poor boy” is a fail.
  • The server states that you eat their Jambalaya with a fork. Jambalaya is not a soup! Again, i must walk out at this point if they tell me it comes in a soup bowl.
  • Know what a roux is.

This is the first restaurant that passed the trials with flying colors, so I actually allowed myself to be excited when my “New Orleans Sampler” was served. Jambalaya, Crawfish pie (OMG so good), and Shrimp Gumbo.

When asked how the food was, I gave them the highest quality praise possible of saying, “Tastes like home.”

Crawfish Boils

The owner mentioned that he wants to do crawfish boils on a regular basis. Again, I wanted to fall out of my chair. Me, crawfish boils, Seattle. I never saw that one coming.

I’m toying with the idea of doing a second book signing party that’s a crawfish boil open to the public to support this restaurant and to share the love of New Orleans. I would love to hear people’s thoughts about this. Then I can txt a certain MVP that I’m at a crawfish boil and rub it in for a change.

View original comments

Photos from the “Day after Mardi Gras” Geek Dinner in Mississippi

The day after Mardi Gras, I drove up to Hattiesburg, Mississippi for a Geek Dinner. We had a good turnout of 13 people, including several from out-of-state. 2 people drove several hours from Mobile, Alabama, and 1 guy even drove 6 hours from Tennessee!! I so get bragging rights for that.

Everyone at the geek dinner in Mississippi

And since this was a “Day after Mardi Gras” Geek Dinner, I’ll share a few (work safe) photos from Mardi Gras.

And since a lot of people have asked, the hotels reported being at 90% capacity, so we’re almost back to pre-Katrina levels. Still seems to be more locals than tourists, but definitely more tourists this year than last.

This year was my first time getting to ride in a parade and throw beads. I’ve been the queen of a parade before (can you imagine me as a 17 year old having to wear a wedding dress?) and i’ve marched in quite a few parades in elementary school, but have never been able to fulfill my life-long dream to throw beads, until now…

riding in the pass christian parade

This was the Pass Christian Parade on the Miss Gulf Coast. Newspaper said between 30,000-40,000 people in attendance. I couldn’t help saying to myself, “Do I really look / act like that on the ground?” (the answer is of course.)

the crowd screaming for beads

I really don’t have any work-safe photos from Lundi Gras or Mardi Gras in the French Quarter, so here’s a pretty picture that i took of Jackson Square at 7:30am on Mardi Gras Day 2009.

Jackson Square in French Quarter

Laissez-les bons temps rouler!