Four Silverlight Applications

by Administrator 28. July 2008 17:03

As some people know, I'm very into 2channel audio listening and home theater.  I'm also a bit of a Klipsch fanboy.  I'm also intersted in acoustic science and this has all led to a listening room that is considered by some to be a bit over the top.  Recently, I've built four Silverlight applications related to my Audio/Home Theater hobbies.  I'm going to briefly introduce them here, and get into code in future articles.

Group Photo

Every year, Klipsch has an event that has come to be known simply as The Pilgrimage.  This boils down to a trip by hardcore Klipsch nuts to one of two sacred locations: the original home of Klipsch and present day manufacturing center in Hope, AR, or the engineering labs in Indianapolis, IN.  In the 1930's and 40's folks at RCA, Bell Labs, James B Lansing and Paul W. Klipsch were inventing what we call Hi-Fi.  There's a lot of fascinating history at these events, a chance to see new stuff under NDA, play with engineering equipment, and so forth.  Every year a group photo is taken.  This time, I thought creating a Silverlight application with "hotspots" would be the best way to annotate the photo: tie people's first names and forum names to a face. 

The picture scales to the size of your browser, so with a big monitor you can start to see some of the detail in the high-res original photo.  Mousing over people displays as much name as they wanted to give, forum name, and where they're from.  If you participate in any Internet community that has a real-world component, something like this to tie someone's internet handle to "Oh yeah I had some beers with him..." is pretty neat.

The application is live at

Listening Room Carousel

My Klipsch site,, has a feature where crazy people like myself can share photos of their listening rooms.  I have previously posted my conversion of the "carousel" example to a nicer Silverlight 2 appliction, and I just updated it for Beta 2, the code will be coming of course.

The application is live at's Palladium Paradise

Room Mode Calculator

Many people don’t know that the shape and size of your room can have a much larger affect on sound than what equipment is in the listening room.  Everyone probably learned in high school science class that when waves collide, constructive or destructive interference can be created.  When those waves are sound waves bouncing around your walls what you end up with is not hearing what’s actually in the recording.  In order to model this behavior before building a room (or to help make educated guesses on an existing room), a room mode calculator is called for.  This tells us what frequencies stack up and what the distribution of modes is:

The application is live at

Palladium Deep Zoom

Let’s say you were really into Klipsch speakers.  Let’s further say that Klipsch came out with a product that was considered by early reviewers to be among the best speakers in the world.  Would you let the fact that they cost $20k stop you from purchasing them?  You probably would!; but then you would not be me.  You would take tons of photos to meticulously document the un-boxing and setup process so that audio fans everywhere could live vicariously through you, and so that is what I’ve done.

The application uses the standard mouse wheel/click zooming about as well has showing a blurb about each photo as you click on it ala the Hard Rock site.

The center channel zoom app is live at and the floorstanding speakers at

As soon as I get caught up on some other things, I’ll dive into creating some articles that get into the useful parts of the XAML, C#, or Blend2.5 tricks it took to create these applications.  For now, I hope some people will appreciate these awesome speakers!


Klipsch Palladium P-39F and P-27C

by Administrator 28. July 2008 15:18

Well, just over a year ago, I was drooling over the Klipsch Palladium speakers that had been announced.  Look who found their way into my home theater this weekend:

You can check out other photos and sizes at

The photos don't do them justice, they are extremely attractive.  They are extremely expensive, I'm thinking this will be the last pair of main speakers I ever buy.


Does Silverlight cross domain security make sense?

by Administrator 21. July 2008 18:20

Adam Kinney has post some articles in the past showing a Silverlight application for displaying gamer cards.  When the Playstation 3 finally caught up and created a "Portable ID", I thought this would be a decent chance to demonstrate some Silverlight chops. Yes, I have a PS3 and not an XBox360.  I thought maybe I'd make an application with unnecessary animations and sounds for fun, perhaps allow you to sort friends and setup notifcations that are not available from the PSN.  Here's my Playstation portable ID:

The gist of the online status is simply a JPG, in my case , that gets updated when your status changes via the console.  Excited to run off and write code I created a Silverlight 2 app and set about downloading this JPG.  Except that it doesn't work because of Silverlight's cross domain security policies.  I'm not a genious in TCP/IP or DNS/BIND, but the policies used by Silverlight (mimicing those used by Flash) seem overly restrictive and make some scenarios that should be common and easy difficult or un-doable.  There may be a reverse-tunnel situation or similar DNS trickery that is capable with this type of application, but denial of service?  Check out what I just did in this blog posting:

<img border=0 src=""/

When the markup for this page is downloaded to your browser, the browser then issues seperate http requests for content that lives on other servers.  That content comes from, and Google analytics, and Blogged, and others.  This is, seemingly, not a security or denial of service risk in this particular situation.  The PS3 network site shown above did not need to place a client policy XML file in the server root, and in fact they would need to do work to prevent cross domain access of this type.  Sure, Silverlight has more than just HTTP networking capabilities, in fact for a future article I have a full blown instant messanger application implemented in Silverlight using Sockets.  In terms of being a good Technology Citizen, I can see Microsoft wanting to be very careful concerning what it allows devlopers to do with more general socket programming.  But HTTP?  Isn't this part of what the web is "about" ?

What do you think?  Is the cross domain policy employed by Silverlight too restrictive?  Does it not go far enough?  Just right?


News to some: acquired

by Administrator 8. July 2008 17:39

I made reference a few times last year to some big things being in the works but that it was hush hush.

Our company, called since 1995, was acquired by, the biggest player in the online automotive space with an overwhelming market share.  CarSpot was picked up for our innovative online, mobile, and desktop solutions to pervasive data aquisition, aggregation, and distribution problems.  To AutoTrader, having a small satellite office that is much more agile than a multi-billion dollar entity was an attractive proposition.  Let's face it, some large companies couldn't change the font of a paragraph burried in an obscure section of their website without a 50 person team of project managers, business analysts, marketing, managers, designers, and developers.  Here at CarSpot, though, an impressive amount of functionality was written and supported by basically four technical people.

CarSpot traditionally was very casual.  Developers have always been trusted to get their work done, a simple practice that's practically unheard of out there.  People came and went as they pleased, a lot of beer was purchased on the company credit cards.  There was no internet monitoring, we played a game of Quake III at work sometimes, almost any link you might get from a friend marked "NSFW" was really just fine at CarSpot.  We had power and freedom and we did some good work; we were encouraged to goof off on things that might turn into good things for the company.  What we didn't have was tons of money to buy all the servers we should have had for redundancy and there were sometimes some tools it obviously made sense to have that we just couldn't buy.  I had been consulting with CarSpot for years, but when I joined full time in August of 2006 I was the only spouse/kids/mortgage employee in the shop; benefits weren't all that family friendly.

In the post-purchase world, the former owner is still the President of this division.  We have all the upside of a large company like HR, benefits, money, and infrastructure, and AutoTrader is making sure we keep our culture.  We are considered the "R&D Division" and are expected to keep ahead of the technology adoption curve.  With a mix of more traditional projects and products with lists of enhancements for sales and "mess with this to see what works and what could be better" type mandates this is shaping up to be an ideal place for geeks to work.  Hopefully the two employees I've added to my group this year are enjoying themselves. 

For the longest time, we were forbidden from publicly mentioning this pending an "Official corporate communication strategy".  This never happened, so its high time I made a public announcement to the geek community.


New Toy

by Administrator 7. July 2008 20:45

After debating for at least 6 months I pulled the trigger on a new dSLR which showed up today.  The Canon Rebel XTi, 10 megapixel; it ships with a 18-55mm f/3.5-5.6 lens.

I take absolutely terrible photos with any camera, and this camera is (among other things) a means to learning how to do it right.  I've been meaning to take more pictures of the kids and various other things and this will be a big help.  Plus, it's cool.  I ran around taking pics of everyone and  everything at Carspot today.  Watch my flickr stream in the coming days.


Interesting error condition

by Administrator 7. July 2008 15:53

Pardon me while I scratch my head and try to decipher this paradox:


This is one seriously confused program.


Personal updates: Ethan at 2 months

by Administrator 3. July 2008 18:31

Ethan is one handsome devil!  He's actual been able to sleep several hours in a row now, making things much easier on Jen and I.  Speaking of my wife, she's recently gotten Scuba certified and I'm trying to convince her she shouldn't ditch me to go diving every remaining summer weekend.  I have some interest in diving but too many other things going on right now to pursue it.  Having two kids is far more different from having one than I expected.  I'm used to getting extra work done from home 3-4 nights a week and that just hasn't been in the cards lately.  Brooke, after having been the most awesome big sister for quite a while, has finally started to miss getting all our attention and so some rebalancing has been going on. 

I've not been keeping up with photos like I would like, but I have a new toy coming on Monday to help remedy that...


An expensive many-core future is ahead of us

by Administrator 2. July 2008 18:28

Expensive for who?  For software developers of course.  It seems to me that the silicon industry is trying very hard to obscure a basic fact: even if new technologies such as Software Transactional Memory become common, even if you give us 100 cores to play with, even if things like the Parallel Extensions from Microsoft are elegant and easy to use, even if Intel's compiler research turns out to be a huge help,  not all problems can benefit from parallelism.  In many cases, programmers can go against what would today be considered good practices and make copies of huge shared data structures, (at least we're not being told that we're never going to have more than 4GB of memory) in order to reduce data sharing between threads.  However, there are many problems that need shared read-write data.  Throwing massive numbers of cores at these problems will result in performance slower than single-core performance as resources are eaten up acquiring locks.  On the Windows platform, all of our GUI technologies still use a "compartment" model whereby objects are owned by a single very special thread and we are not alowed to touch them except by marshaling onto this Special message pump.  What good are these 100 core systems going to do my WPF applications? 


About the author

Damon Payne is a Microsoft MVP specializing in Smart Client solution architecture. 

INETA Community Speakers Program

Month List

Page List

flickr photostream