Even a chimp can write code

Saturday, January 28, 2006

How To Provide Product Feedback & Suggestions For WPF CTPs and Betas

Candid customer feedback is a critical ingredient in software development in Microsoft. Teams are constantly working towards a better understanding of customer and partner needs. While face to face contacts result in valuable insight on customers' issues, I find that the most frank feedback comes from fora that give our customers a sense of anonymity or a sense of community. It is important that we keep the right mix, for, after all the platform's focus is on best understanding problems our customers face. That way we can provide them the most compelling solution to build off of.

There are multiple ways customers can provide feedback and suggestions for Windows Presentation Foundation: The last three are open, public arenas conducive to searching for and submitting information. I highly recommend using the Product Feedback Center over the newsgroups and forums. Unlike the other two, items posted in the Product Feedback Center are routed into the Avalon team's internal bug database. And that's why it remains the most reliable way to get your thoughts across all the way to the feature owner (the feature team's bug triage alias, or the PM/Dev/Test owners). In addition, you can validate, vote and track suggestions & bugs. Your votes do help us in the feature team to prioritize issues.

Here are some best practices on providing feedback, no matter what the forum is:
  1. Search existing items. Some issues occur widely enough that others have faced them before you. Upon searching for bugs with your symptoms, you can vote on them rather than enter an issue afresh. In addition, you can track reported bugs.

  2. Provide a meaningful title. Concise yet meaningful titles help route your issues to the right teams the fastest. Without one of these, the initial reviewer must read through the bug description and make a best faith effort to understand exactly what feature area owns the issue. Given a platform like WPF and the inter-relatedness of features, this can be a hard thing to nail down. So on some occasions I've seen a bug goes from triage alias to triage alias until someone identifies it as their own. Meaningful titles also help you and others search for issues easily.

  3. Provide clear steps to reproduce the bug. This is relevant if the issue you're reporting is a bug rather than a feature request. Providing crisp steps helps the feature team in its first step of validating the issue. Some tips:
    • Use an ordered list with one item for each logical step. This makes it easier to read, convey on the phone or via email
    • Mention if the problem is consistently reproducible or not
    • For install or setup issues, I recommend attaching the install logs or even relevant snapshots. Look in your %temp% folder for files with "dd_" prefixes in their names
    • For compile or build issues, I recommend attaching build logs. The MSBuild system supports logging with various verbosities (by using the /v: switch on the command line or setting appropriate level within an IDE like Visual Studio).
  4. Provide environment information. Be sure to mention the build number or CTP name, product mix you have installed (e.g. "I installed WinFX Runtime Jan 06 CTP and Windows SDK Jan 06..."), your OS platform, CPU and bitness (e.g. "... on Windows XP SP2, Pentium III, x86"). Given that WPF is a presentation platform, it helps to provide information on your graphics card and if you have the latest video drivers installed.

  5. Provide solution or project information.
    • Specify whether you're trying to build an application or a library.
    • Is it a browser-hosted app or installed?
    • Provide information on your MSBuild/Visual Studio/Sparkle solution or project (is it a single project or a solution with multiple dependent projects etc.)
    • Did you specify a UICulture in your project? What about the neutral language setting in the AssemblyInfo. file?
  6. Tell us how the bug impacts your scenario or your product. This aspect, often ignored, is one of the key parameters that help the feature team decide if, when and how we should fix the problem or if we should just publish information on workarounds. Ordinarily crashes and data loss scenarios are easiest to prioritize, because of their impact. Some bugs however only show up in corner cases. But one man's corner case is another man's mainline scenario. So some context like this helps us immensely in making the right decision.

I hope these come across as reasonable guidelines. While my focus in this post has been primarily on Windows Presentation Foundation and allied tools/products like "Cider" and "Sparkle", these more or less apply to other products in Microsoft and elsewhere.

Thank you for your continuing feedback and support. You only have to look at the features that got added into WPF after our first public CTP, and you'll know we hear you loud and clear!


Email this | Bookmark this

Friday, January 27, 2006

Expression Interactive Designer a.k.a. "Sparkle"

The strongest statement yet about the power of the Windows Presentation Foundation was made this week when the Expression Interactive Designer's first community technology preview (CTP) was released. This is the culmination of years of work by both the Sparkle team and the Avalon platform team. Not only is Expression Interactive Designer a professional design tool for building WPF applications, it is built using WPF. I cannot emphasize enough the significance of that statement. And I have no doubt, that right there is a testament to the power of the WPF platform. And if you don't buy that, the download is just a couple clicks away. Try it for yourself. And if you like it, please pass it on to your designer friends.
Expression Interactive Designer
With Sparkle er... EID, Microsoft tips its hat to the designer community. Sparkle aims to make the as yet mythical designer-developer continuum a reality.

It is extremely difficult building a product on a platform that is ever evolving: with bugs and breaking changes, docs that don't quite keep up, API additions, redactions and renames galore. I am happy that our early adopter partners and customers (Sparkle included) have steadfastly stuck with us and their continual feedback has rounded off a virtuous cycle. The success of our platform is really in our partners' and customers' success. And vice versa.

Congratulations to the Sparkle team on this first release to the community. Expression Interactive Designer is the conscience of Windows Presentation Foundation. Oh, this is an exciting time to be working at Microsoft!

Try Expression Interactive Designer for free


Email this | Bookmark this

Mental Floss For The Day

Apparently Matt had a post-lunch dental floss emergency, and he posted this off-topic question in our internal discussion alias. Daniel's tongue in cheek response was classic.

Last names withheld to protect the guilty.

Email this | Bookmark this

Sunday, January 15, 2006

Hindu calendars and time

In the West, very little is known or understood about Hindu calendars in general and of the Hindu way of keeping time in particular. I figured this would make a good post. This subject has always awed me. You see so many texts where the ancient Greeks get credit for their astronomy and mathematical skills, but you see very little about Hindus.

The Rig Veda, believed to have been written 2000 years before the common era (BCE) has possibly the oldest surviving information about Hindu time-keeping. It was later followed by the puranas and the Surya Siddhanta (loosely translated, Principles of the Sun), the Hindu astronomical text. Considering their antiquity, the math and logical thinking that went into this is impressive.

Time, in Hindu philosophy, is cyclical and infinite. Consequently time has no beginning and no end. Over the years, there have evolved several Hindu calendars. I’m going to describe one of them.

If I recall correctly, 1 Anu is the base of human-perceptible time: the time it takes for a thorn to pierce a lotus leaf. It is further divided into Param Anu’s [a.k.a Paramaanu]. So let’s start there:

3 Paramaanu’s = 1 Anu
3 Anu’s = 1 Vedha
3 Vedhas = 1 Lava
3 Lavas = 1 Nimesha
3 Nimeshas = 1 Kshana [equivalent to the 'second', although not the same value]
5 Kshanas = 1 Kaashthaa
15 Kaashthaas = 1 Laghu
15 Laghus = 1 Naadika
2 Naadikas = 1 Muhurta
30 Muhurtas = 1 Ahoraatra [equiv. 24 hours or solar day from sunrise to sunrise]
15 Ahoraatras = 1 Paksha [lunar phase]
2 Pakshas = 1 Maasa [month]
2 Maasas = 1 Ritu [equivalent to a season]
3 Ritus = 1 Ayana [a solstice i.e. movement of the sun relative to the equator]
2 Ayanas = 1 Samvatsara or Varsha [a solar year]
100 Varshas = 1 Shatabda [a century]
10 Shatabdas = 1 Sahasrabda [a millenium]
432 Sahasrabdas = 1 Yuga [an era]

Of the 4 Yugas the Kali Yuga is considered the smallest, comprising 432,000 solar years.

1 Yuga = Kali Yuga [432, 000 years]
2 Yugas = Dwapar Yuga [864, 000 years]
3 Yugas = Treta Yuga [1.296 million years]
4 Yugas = Sata Yuga or Kruta Yuga [1.728 million years]

The Hindus believe that it takes all 4 Yugas to make 1 Maha Yuga (4,320, 000 years). In terms of cyclical time, each Maha Yuga is comprised of the other Yugas in this order: first comes Sata, then Treta, then Dwapar and last comes Kali Yuga. It is believed Maha Yugas follow other Maha Yugas infinitely.

71 Maha Yugas = 1 Manvantara [period of Manu i.e. man]
14 Manvantaras = 1 Kalpa [a day in the life of Brahma]

The Hindus believe that at every Kalpa, the universe is destroyed and recreated.

According to Hindu belief, the present time (2006 CE) is in the Kali Yuga. This Yuga is believed to have begun with the death of Krishna, which corresponds to February 18, 3102 BCE. Consequently the year 2006 CE is considered to be 5106 according to this calendar. At this point you’re probably thinking, what the heck, that doesn’t add up! So, what gives? Hindu years begin with 0 (zero), not 1. The Hindu people –- a prouder people I have never known –- stake claim to inventing the zero. But, I digress. All Hindu temples and a lot of religious texts in India follow this Kali Era standard of marking time.

Although, I must add that the Kali calendar is by no means the only type of calendar in adoption. The other calendars in popular use in India are those that adhere to the Vikram Era and the Saka Era. The Vikram Era began on the day of the coronation of King Vikramaditya in 57 BCE. So this year is 2062 by that token. The Saka Era (which started when King Salivahana ascended to the throne) calendars are official Indian calendars i.e. the government recognizes that calendar and adopts it in all official literature and media. In fact, if you listen to the radio in India (specifically the All India Radio station) you’ll hear the occasional announcement informing you of the current time and date in both the Gregorian and Saka formats. So, if you’re told the year is 1927, don’t fret it.

I'm told old Hindu texts claim the concepts from the Hindu solar calendar were taken by visiting scholars and traders to Egypt (misr in Sanskrit and Hindi) from where the Romans (raumanya in Sanskrit) adopted it as basis for the Julian calendar.

Email this | Bookmark this

Saturday, January 14, 2006

My new best friend

It's looking like a great weekend of bonding with my new best friend: the XBOX 360. I got one over a week ago but with a week of 12-13 hour day stints at work and the company store being closed (MS employees get MS games and accessories at marked down prices) for remodelling, it has been hard to cultivate that friendship. But this weekend clears the way for a veritable love fest. I'm not much of a gamer but I'm finding this thing is extremely addictive. And pure fun!

Email this | Bookmark this

Tuesday, January 10, 2006

Preview: The sounds of Windows Vista

Video of Robert Fripp at the Microsoft Studios, recording the sounds of Windows Vista.

Email this | Bookmark this

Sunday, January 01, 2006

Doing no evil

I had bought into the whole "Do no evil" line there for a little bit. I am now very cynical whenever I see it bandied about or see someone in the media swoon over it. Guess I have those Cialis ads to thank, for teaching me its unnatural to be aroused for more than 4 hours on end.

Take this ad for instance, which appears on bugmenot.com when you navigate to it in IE. The hyperlink on that ad takes you to a download page on Google's website. [Red underline mine, for emphasis. Like it needed any!]

Whoa! What did ya say? I don't remember getting that memo.

More so than that line, the last bullet point really made me snort my coffee. That's right all you sheep, get that browser because "It's what the pros use"! Apparently we are incapable of making a decision even if it came with a recipe.

Email this | Bookmark this