Page view counter

October 2009 - Posts

Silverlight Synchronicity

SilverlightConsulting

At Mix ‘07 I watched Scott Guthrie’s keynote introduction of Silverlight,  and it was a watershed moment in my career.  Within 48 hours I had pivoted my consulting business to focus entirely on this new and game-changing  technology; a few months later I ended 15 years as an independent to join Microsoft as Silverlight Geek, a job that has been immensely rewarding.

On a personal (and seemingly unrelated) note; while my older daughter was in high school she became fluent in American Sign Language (ASL) under the tutelage of two terrific teachers, one hearing, one deaf. She joined the school’s justifiably famous Pocket Players bi-lingual (ASL and spoken English) theater group under the  direction of the incomparable and greatly RobinWoodmissed Robin Wood, and the extraordinary  natural-born-teacher Ron Galiazzo, (who has been patient  enough to teach me a little faltering ASL as well). My daughter learned, and taught us, great respect for Deaf culture,  and I had the incredible pleasure of watching her perform and then taking part with her in a celebration of Chinese American Deaf culture in Boston, where I spent the evening talking happily in broken-ASL with my tablemates.

The third piece of yesterday’s synchronicity touches on the person who most famously embodied the stereotype-shattering new awareness of all that the hearing world has historically gotten wrong about Deaf culture, and the abilities and supposed limitations of deaf people, Marlee Matlin. Her singular and award winning performances in Children of  A Lesser God and The West Wing have had an impact on me and so many others,  for over twenty years.

All of this came together spectacularly yesterday when I posted a small blog entry on the ability of Silverlight to support closed captioning and my commitment to including Accessibility in the design of the HyperVideo project.MatlinTweet This was picked up, I’m incredibly happy to say, by Ms. Matlin who tweeted about it to the National Association of the Deaf  (NAD) and “everyone.”  I have to say, that not only made my day (week, month!) but brought home how much impact Silverlight can have. 

I don’t want in any way to exploit Ms. Matlin’s tweet; this is not about promoting our technology as much as enjoying having made indirect contact with someone whose work I admire, and sharing that joy with the Silverlight community. It was very cool to see what she wrote, but it is also a reminder how vital it is, to get these things “right,” including remembering that adding Accessibility isn’t a trivial decision; but one that affects the ability of a great many people to use the products that Silverlight enables. 

Hypervideo, Closed Captions & Accessibility

 

 

The Closed Captioning For Silverlight Media page at T2Sami.com says in its commentary: 

A number of very sophisticated Silverlight Video players are under development: some open source, some proprietary…. The commitment to captioning in Silverlight is not so well supported. If it is included at all, it is frequently an afterthought.

In my initial series on HyperVideo I started with the media player emitted by Encoder, and stripped out the Closed Captioning button. That was unnecessary and I regret it. Please take this posting as my pledge not to have closed captioning and other accessibility issues be an afterthought; but rather they will be an integral part of the spec I will deliver for HyperVideo on December 1 for the renewed HyperVideo project.

In the  interim, please take a look at this excellent tutorial on Captioning In Silverlight on the Accessible Media Project and also be sure to check out these two open source projects:

Expectations Are Everything

Quick Bit

Anyone who has ever debugged a program knows that you tend to see what you expect. I’ve learned that lesson a dozen times, in a dozen ways. 

A classic example is to ask someone to read the following illustration aloud (don’t over-think it but when you’re sure you’re done, see the answer here).

 

ParisInTheSpring

 

 

 

 

 

 

Expectations


Today, I got smacked in the face with the power of expectations.  One of the best dog trainers I ever met recently recommended a new kind of dog harness to us; saying “you never tug or pull the dog; you just walk and it makes it more comfortable for him to come with you than to do anything else.”

So, we plopped down our $20 for a Gentle Leader Easy Walk harness, and then it sat in the mudroom  HarnessOnDog for three weeks before I finally got around to trying it.  I put it on and – wow! what a difference. Just like Jen said, no pulling, no tugging, I didn’t have to “correct” him at all (I hate being corrected, myself).  It was really quite impressive until I got home and took it off him and found I’d accidentally attached his lead to his traditional collar, and the new harness had not been at work at all.

Lesson learned? For about 5 minutes.

 

 

PS: Jen is also the trainer who told me “A tired dog is a good dog, and an exhausted dog is a great dog.”  For two ultra-short movies of Charlie please see here or here.

Posted by jesseliberty | 4 comment(s)
Filed under: ,

Building A Product For Real

As some of you know; I’ve been showing a number of Silverlight features in terms of Project Turing.  It was never my intention to finish that project; rather to use it as a mooring point to ensure that the mini-tutorials were realistic about building applications.

The second purpose of the Turing project was as a proof of concept. I now have the green light to go for a full development process, with the clear goal of creating a working application that will be:

  • A complete design to delivery project
  • A source of frequent mini-tutorials and videos
  • An opportunity for much more intense community contribution
  • An opportunity to work with designers and the Expression team
  • A product we can put to use here on Silverlight.net

It just doesn’t get any better than that. 

Who, What, When, Where and Why

Who:  If all goes as planned, this project will be moderated open-source with active participation and contributions from as many in the community as care to participate. Until now, I’ve been doing what I refer to as “glass house” programming; that is, designing and programming myself, but openly and documented.  It is possible that the initial stages will be glass house, but the plan of record is to move to Open Source.

What: The VideoWiki project lends itself to being completed in two discrete phases.  Phase 1 will be the creation of a Silverlight HyperVideo player targeted at enhanced How-Do-I videos. Phase 2, moving from HyperVideo to VideoWiki will follow if time and interest allows.

When:  While I already have a number of postings on HyperVideo, it is time to re-think, redesign and to create a detailed specification.  I’ll deliver that, here on my blog, by November 30. 

Design and Coding begin December 1, 2009 and will be completed by July 1, 2010.

Where: For now the project will live on my blog; but if this is to be truly open source then it must move to CodePlex. That is the goal.

Why:  To meet the needs of both novice and intermediate Silverlight programmers, and if Silverlight 4 comes along during our development time, to provide a great basis for introducing new features.

 

It shouldn’t be all that hard

The truth is that this is not all that big a project, and a quick look at the work done last year reveals that the tools will do a lot of the work for us. That said, there are some interesting subtleties we should be able to explore along the way.

If you have early thoughts about what should/must/must-not be in the project, be sure to let me know.

With PDC on the way, there will be a short-term drop in the release of videos and mini-tutorials for the next couple weeks., though I will make sure that there are some very substantive posts during that period. Expect a sharp uptick afterwards.

Time To Update My Favorites

Periodically I take a shot at listing my favorites: some folks find useful items they hadn’t looked at and it forces me to take a long hard look at whether it is time to try something new.

Today: Favorite Utilities

Business success team

Upcoming:

  • Favorite Mac Utilities
  • Favorite iPhone Apps
  • Favorite Programmer Utilities
  • Favorite Non-fiction
  • Favorite Fiction
  • Favorite Programming Books
  • Favorite Music (uh oh)

On the one hand, I can’t imagine why you’d care. On the other hand, building a community is more than just code; and sharing favorites can be more than just utilitarian.  In any case, you (no, really, you) are strongly encouraged, asked, pleaded with;  to comment, add your fave’s and etc.

Favorite Utilities 2009

NB: This list does not include my favorite programming utilities, and  is just those utilities that run on Win 7 (which is now on all my Win machines)

 

Amazon's Media Library - one of the better ways to share what you're reading and listening to. Dynamic, configurable, pretty easy to cope with.

Auto Hot Key – Finally! Add macros to a simple text file and they work everwhere.  I have two files: auto-correct (fixes common spelling errors instantly) and my macros. For example “@me” instantly changes to http://www.SilverlightGeek.me  The syntax is simple and adding or modifying a macro takes seconds.

ClipX – Very sweet, small, easy to use clipboard manager, with “yank-pop” and with reserved phrases you can reach easily.  Learning time: 2 min.

Evernote – Create (or clip) notes about anything, organize to the extent you want, find them instantly, access via PC, Mac, phone, web. Truly brilliant. Truly indispensable.  Uses include everything from meeting notes to taking a picture of your car and asking it to lead you back using the GPS. You can also ask “show me every note I wrote in the past 2 years when I was within 50 miles of right here” – great for biz travel.  See iPhone Utilities.

Exam Diff Pro - best I know for examining differences in files and directories.  More coverage under Programming utilities, but I also use it for comparing documents.

FinePrint - print pages 2-up and much more. Can save a lot of paper and a surprising amount of printing time. Installs as a printer.

GoToMyPC - access your pc securely from anywhere. Just great, though I may give it up if the built in functionality in Win7 is sufficient.

GoodSync – Easy, efficient backup or synchronization between computers. 

iMo Hulu Desktop – Changed the way I deal with TV. I’m not much of a TV watcher, but the ability to queue up shows, subscribe and watch on my PC (for which I highly recommend the iMo Pivot 7” USB screen) has meant watching the Daily Shows that I’d otherwise miss.

Hypersnap DX - My screen capture of choice for many years and I still really like it, but it is time to check out Snaggit combined with Paint.Net

Live Writer - Best blog authoring software I know of. Be sure to pick the best of the plugins.

Pandora - The Music Genome Project. Single best music site on the net, now on phones as well and I swear it is getting better. Be certain to find their technical background material and to explore how the service works. This is not “wisdom of the crowds” this is “quantify all you can about music and then find other music that is similar in meaningful ways. See this good intro from the NY Times.

Roboform – Individual passwords for every site, generates strong passwords, master password to protect them all. Easy, fast, effective, customizable and totally reliable. Now supports sharing across multiple PCs. Partial integration Stackswith 1Password (see Mac Utilities).

7Stacks – Nice small utility that lets you create a stack of links on your toolbar. In the image shown, my stack is linked to a folder; anything in the folder pops up in the stack. 

Trillian – All your IM Services in one place. I particularly like the ability to tie actions to events. I’ve set it up so that adding the word urgent to the text causes it to make a special sound. Very flexible.

Virtual Clone Drive Allows you to mount an ISO, BIN or other image file onto what appears to be a physical drive, but is actually a virtual drive. Very slick (and free!)

Bayesian Probability

 

Spent the early hours of this morning reading a great blog post by Jeff Atwood which makes reference to a Elizer S. Yudkowsky’s Intuitive Explanation of  Bayesian Probability. The timing was good as I had just finished the (highly recommended) book The Drunkard’s Walk which agreed with Jeff that most humans simply are not wired to deal with probability very well.

The Drunkard's Walk: How Randomness Rules Our Lives (Vintage) (9780307275172): Leonard Mlodinow: Books
ISBN: 0307275175
ISBN-13: 9780307275172

Yudkowsky poses the following canonical problem:

1% of women at age forty who participate in routine screening have breast cancer. 80% of women with breast cancer will get positive mammographies. 9.6% of women without breast cancer will also get positive mammographies. A woman in this age group had a positive mammography in a routine screening. What is the probability that she actually has breast cancer?

The frightening thing is that according to Atwood, only 15% of doctors get this right. And they’re off by a lot. That is, the average answer is in the range of 80% while the correct answer is 7.8%.  Apparently, there is something about the way we think about the problem that makes 7.8% hard to accept, and Yudkowsky does a great job of walking you through the logic in painfully small steps.

To me, however, there is a pretty straight-forward way to think about this (though it may only be intuitive since I’ve been through this a few times).

What Do We Know & What Does It Imply?

We have three pieces of information:

1% of sample are TRUE  (that is have cancer)

80% of sample who are TRUE will test TRUE

9.6% of sample who are FALSE will test TRUE.

On the face of it, we should guess that the percentage of women who test TRUE who actually are TRUE (test positive and actually have cancer)  is pretty small based on two facts provided: the actual percentage of women from the sample who are TRUE (regardless of testing) is only 1%, and the test has a false positive for 9.6% of those tested.

So, my reasoning to solve this is:

1. Assume we have a sample of 1000 women (I use 1000 to reduce the amount I have to talk about fractional people, but I don’t use 10,000 as I get lost in the zeros).

2. We know that the reality is that of the 1,000 women, 10 will have cancer (1%).

990 = no cancer
10 = cancer

3. Of the 10 who have cancer, 8 will test positive
8 out 1000 women tested will test True and are True

4. Of the 990 with no cancer 9.6% will also test positive = 990 * .096 = 95.04. 
95.04 women out of 1,000 will test True but are False.

5. The total number testing true is 8 + 95.04 = 103.04. 
Of these, 8 actually have Cancer.

6. So the value for tests positive (103.04) versus is positive (8) is 8:103.4 or 0.773  or 7.8% 
(8 of the 103.4 = 8/103.4)

Not Being Misled

The key to this and many problems like it is to realize that what you are trying to find is the relationship between those who Test positive vs. the reality of those who are positive, which is why you need all three numbers.

Probability is Weird and Cancer Is Scary

True story: I have a friend who is the head of breast cancer surgery at a very respected hospital. I was at a dinner party where he mentioned that a “very small percentage of those who show up with a positive test actually have cancer.”  This caused a lot of confusion, and that is because we (a) don’t deal with probability well and (b) don’t understand policy tradeoffs as a result.

From a policy point of view, it is too expensive (money, time, etc.) to test everyone with a biopsy, etc.  The preliminary screening is sufficient to move your knowledge from the general 1% probability to the more specific 7.8%, which is enough to pursue. The fact that 20% of women with cancer will get a false negative doesn’t mean that it is better to test everyone, and the fact that out of every 1,000 tested 95 will falsely test positive (and be subjected to needless worry) also does not mean that it isn’t worth using the screening test.

That said, it would be good if, before you took the test, you were told that a positive result means you have less than an 8% chance of actually being positive and that in any case, the test doesn’t change the reality of whether or not you are positive!

This kind of confusion leads to people not flying to countries where there has been a terrorist incident but happily driving across country.

It is estimated that after the 9/11 attack, more people lost their lives by choosing to drive when they otherwise would have flown than were killed in the actual attack.

===

[Migrating the best of Quick Bits to my blog – items of interest to Geeks, tagged Quick Bits]

Posted by jesseliberty | 4 comment(s)
Filed under: ,

Review: Microsoft Web Cam (QB)

My boss sent me a Microsoft High Def Web Cam, (we do a lot of teleconferencing).  CameraDimensions

I admit to being somewhat skeptical initially; I had a web camera, seemed to work fine.  This new camera blew me out of my seat. 

The overall quality was awesome, and the depth of field extraordinaire (so much so that I had re-tilt the camera so as not to show my messy office!)

The built-in digital microphone appears to be good enough that I can use it with my dictation software and eschew my regular headset, which is very nice. 

I'm particularly fond of the WebCam base. It is made of extremely flexible material, and allows me to attach the camera both to my flatscreen monitor and to my laptop with zero difficulty. WebCamBase

 

This really is the best webcam I've seen.

 

 

 

A quick note on Quick Bits:LifeCamHD

I tried the experiment of presenting “Quick Bits” (too large for twitter, too small for the blog) on separate pages. After reviewing usage and listening to reader feedback, I’ve decided to reintegrate Quick Bits back into the main Blog, but with the Quick Bits tag so that you can read (or avoid) them as they appear.  I’ll migrate the existing ones that are worth keeping over the next week or so.