Damon Payne: Hand waving software architect

103db signal to noise ratio at < .03% total harmonic distortion
Solution Architect, software developer, geek
Damon Payne at Blogged
2007 Microsoft MVP - Solution Architecture
 Tuesday, September 09, 2008

http://rss.slashdot.org/~r/Slashdot/slashdot/~3/bPjNCxSc91M/article.pl

 

Read that, let it soak in, smile.  I have blogged about this before but I can't help giggling to myself.  I assume all the people who screamed for Microsoft to be fined, broken up, shackled with special restrictions (they have to run a lot of their plans by the DOJ), and forced to give up intellectual property such as Active Directory protocols to their competitors (IP that cost billions to develop) will now be screaming for the same thing to happen to Google.  Oh, and Apple is not far behind.  Apple has a great hit on their hands with iTunes, but they are being given an ultimatum in the EU to lower prices or face a full antitrust investigation. 

 

In case you're not following the irony, let me spell it out for you: Business B tries to compete with Business A in a free marketplace and ultimately is not as successful as they'd like to be.  Four main categories of options remain to Business B.  They can give up.  They can keep trying.  They can resort to illegal measures like kidnapping, blackmailing, and extortion.  But why resort to illegal measures when the legal measures are just as forceful, just as damaging, but perfectly above the board.  If Business A is big enough and Business B can find enough malcontents to help with legal funds, they can lobby the government to open an Antitrust suit.  No one states this better than Mr. Zuck in his DotNetRocks interview concerning the politics surrounding the OOXML debacle.  I urge you to give it a listen here: http://www.dotnetrocks.com/default.aspx?showNum=335

 

As Jonathan puts it, there are only three ways you can get yourself into Anitrust trouble in the US and the EU. As luck would have it, you must merely follow all three of these rules at once and you are safe:

  1. Do not charge the same price as your competitors. This is Collusion and harms consumers.
  2. Do not charge less than your competitors.  This is Dumping and harms consumers.
  3. Do not charge more than your competitors.  This is Monopoly Rent and harms consumers.

Why would antitrust law involve a set of rules that are mutually excluisve and impossible to follow?  If you feel the intent of Uncle Sam is to "protect consumers" this is impossible to reconcile except perhaps by assuming the law is broken and not meeting its intent.  The law is not broken, and is precisely filling its intent. Without these laws, the bureaucrats would have a hard time marketing their sales as Thugs for Hire, but I'll come back to that.

 

Assuming a business wished to avoid Monopoly status at all costs, how might they go about this?  Are there objective measurements they can follow to avoid obtaining a certain market share?  Are there maximum profit margins they must seek to remain below?  There are, in many states, minimum margins certain businesses must observe.  A contractor in Wisconsin who marks up materials less than 6% will find themselves in court.  I suppose this is to protect consumers from the mental anguish resulting in determining how to spend that extra money?  Imagine that perfectly objective metrics existed for determining at what point Monopoly status is gained.  The business in question has only poor choices.  The business can opt to wait for the other shoe to fall, knowing that at any time their shareholders' wealth will be drained into legal defense.  The business can engage in self destructive behavior hoping to lose market share; if the business is a C-corp the agents are legally forbidden to do this and will find themselves in court.  Fingally, the business can start lobbying!  How might a Monopoly notification from our government look, anyway?

Congratulations, you're a monopoly!

The United States government congratulates you on your achievements.  Please be aware that starting today, you are forbidden to run your business in the same fashion that got you here.   Enclosed, please find campaign donation envelopes for the major political parties.

 

 

Google and Yahoo should not be investigated; Apple should not be investigated; Microsoft should not have been investigated.  There are already comprehensive fraud laws at the State and Federal level to protect consumers.  Beyond this, a business can only come to market dominance through a series of voluntary exchanges with clients and partners.  It is only the government, and not businesses, that can establish artificial barriers to competition.  Business owners have a right to their property.  Government power brokers will seize any excuse to violate or threaten to violate that right in order to furthur their own agendas.  Google, Apple, and Yahoo! are finding out that if you cannot pay the government Protection Money through the lobbyists, those that did open up their pockets will soon have access to all your hard work - either as it becomes public record entered into evidence at trial or forcibly taken from you by a binding judgement.  Just remember that by your willingness to infringe on the rights of others, you opened the door for the desecration of your own rights. 

 

I don't expect to hear public outrage against Google and Yahoo! ; only unpopular businesses receive this treatment.

 

Following the original Microsoft antitrust trials,  Bill Gates is famously quoted as saying "I should have spent more time in Washington".  This is to say, he feels he should have spent more time participating in lobbying and favor purchasing and less time running his business.  The power brokers in Washington wouldn't have it any other way.



Tuesday, September 09, 2008 2:07:15 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, August 01, 2008

I was listening to the most recent Thirsty Developer, http://thirstydeveloper.com/2008/07/26/TheThirstyDeveloper28SCRUMAndAgileInTheEnterprise.aspx.  Sean is a great guy and I'm glad Larry and Dave were able to connect with him.  One thing I found interesting is that they mention using Scrum for things other than software development projects.  It is indeed a generic principle based on empirical process management.  Scrum is a simple idea, like most powerful ideas.  At CarSpot, we are (more or less) using Scrum for our inter-departmental communication as well as software development.  The various managers meet with their teams in a brief, daily standup, and at 2:00pm we have a Scrum of Scrums where department managers/directors talk about what's going on and are able to air any complaints about the service they're getting from other departments.  We are using ScrumWorks at this time, but I'm thinking we can create something that suits our needs better.

In addition, my family operates on Scrum.  You may have noticed that I'm fairly fond of my toys.  A lot of married men that I talk to claim they would never be "allowed" to have such things.  They use terms like "SWMBO", She Who Must Be Obeyed.  Really?  Honestly, you guys are either:

  1. Spineless.
  2. Broke.
  3. Pretending to be spineless by saying its your wife and not your better judgement keeping you from blowing tons of money on things you really know you shouldn't have.  You think by displacing this acetism to your spouse you appear more manly to your peers.  In fact you appear to be spineless and your friends feel sorry for you, thinking you must not be happy in your relationship.
  4. You don't really value your own happiness.

In my family, we have a Family Backlog.  Just like in Scrum, everything goes on there, no matter what.  Nothing is a "no", just a low priority.  I don't think my Tesla Roadster will be on a Sprint any time soon.  Still, it's a great way to communicate and feel things out.  No one feels slighted because there is a known order of what we're working on, and we can have ridiculous things as long as we respect the fact that we take turns and do what makes sense.  My wife will be getting her own diving gear and curtains in the whole house following my recent speaker purchases.  Nothing is listed as being for "us", unless its really for US.  I don't know how many times a friend or coworker has complained that they can't get a new TV because the bedroom set was for "them".  These men could care less about a new bedroom set, they want an HDTV dammit.  This system works for us, everyone is happy, and the backlog can be reprioritized as our needs and wishes change.  Besides being a fair system, I'm lucky enough to be married to a great woman who really cares about my happiness and - get this - doesn't think she knows better than me what will make me happy.  So men, put your new Corvette on your family backlog and be aware you may wind up funding a total kitchen makeover directly before or after it.  If families really want to be fair with limited resources, to really do the things that are important to the family and to each individual therein, you could do a lot worse than Scrum.



Friday, August 01, 2008 12:41:24 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, July 28, 2008

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 http://www.klipschcorner.com/silverlight/2008/PilgrimageFaces/

Listening Room Carousel

My Klipsch site, KlipschCorner.com, 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 http://www.klipschcorner.com/HTCarousel.aspx?Id=1&Title=Damon'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

http://www.klipschcorner.com/Tools/ModeCalc.aspx

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

http://www.klipschcorner.com/PalladiumZoom.aspx and the floorstanding speakers at http://www.klipschcorner.com/PalladiumZoom.aspx?model=p39f

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!



Monday, July 28, 2008 11:03:14 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback

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 http://www.klipschcorner.com/SystemProfileDisplay.aspx?Id=1

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.



Monday, July 28, 2008 9:18:51 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, July 21, 2008

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 http://pid.us.playstation.com/user/drpayne.jpg , 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="http://pid.us.playstation.com/user/drpayne.jpg"/

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 us.playstation.com, 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?



Monday, July 21, 2008 12:20:51 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, July 08, 2008

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 CarSpot.com since 1995, was acquired by AutoTrader.com, 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 AutoTrader.com 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.



Tuesday, July 08, 2008 11:39:16 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [4]  |  Trackback
 Monday, July 07, 2008

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.



Monday, July 07, 2008 2:45:50 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback

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

 

This is one seriously confused program.



Monday, July 07, 2008 9:53:14 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Thursday, July 03, 2008

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...



Thursday, July 03, 2008 12:31:36 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  |  Trackback
 Wednesday, July 02, 2008

http://arstechnica.com/news.ars/post/20080702-intel-an-expensive-many-core-future-is-ahead-of-us.html

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? 



Wednesday, July 02, 2008 12:28:46 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback