Archive for the 'Uncategorized' Category

I expected to find that some of the more complex, devious strategies would do better at the game than their “nicer” counterparts. How could they not? Obviously, strategies focused on seeking opportunities to further their own success, even at the expense of others are, by definition “good competitors”.

I expected to find the nicest players to be among the biggest losers. The more willing a strategy is to play nice, and be forgiving in the wake of an opponents treachery, the more open it leaves itself to exploitation affording its opponents a large payoff and subjecting itself to a heavy penalty. As I mentioned earlier this also seems to fit common western wisdom harmonizing with the “Nice guys finish last” sentiment.

Surprisingly, happily, I was very, very wrong.

Vocabulary

As I began to develop strategies to load into the simulation I was surprised by how well they could be characterized according to their “temperament”. To help give me the ability to generalize results as well as talk about them, I used the following structure and vocabulary to describe their behaviors:

“Nice” strategies prefer to cooperate and will never be the first to play “Defect”. After an opponent plays “Defect”, nice strategies retaliate, hold grudges, or do anything else they see fit.

Nice strategies are further classified as:

Naive

Nice to the extreme… Play “Cooperate” on every turn, no matter what the other player does.

Vengeful

After the first opponent-throw “Defect” , vengeful strategies protect themselves and try to recoup the losses of that betrayal by playing nothing but “Defect” for the remainder of the game.

Forgiving

A vengeful strategy that returns playing “nice” if opponent shows some degree of contrition. A very forgiving strategy requires only one “Cooperate” from its opponent to return to playing nice. Less forgiving strategies may require more.

“Naughty” strategies are those that are capable of being the first player to play a “Defect”. These strategies try to take advantage of the large payoff that occurs when they can play a “Defect” against their opponents “Cooperate”

Naughty strategies can be further described as:

Selfish

Plays “Defect” on every turn, regardless of what the other player plays.

Devious

Plays “Cooperate”, while looking to be the first to play a “Defect” against opponents “Cooperate”. Will likely play “Defect” for the rest of the game to protect itself against being exploited by retaliation from the other player.

Repentant

At some point after playing a “Defect”, a repentant strategy will try to coax its opponent into mutual cooperation by playing “Cooperate”. If successful, it may then start to play deviously, or stay “nice” for the remainder of the game.

Non-Zero Sum Game

One of the first things that struck me as interesting that I hadn’t considered at the start is that Prisoner’s Dilemma is not a zero-sum game. A zero-sum game is any competition in which one player or team benefits at the expense of the other player or team. One player is the “winner” and the other player the “loser”. The magnitude of the benefit of winning exactly equals the expense of losing. Most of the games and competitions that we are consciously exposed to are zero-sum games: Football, Soccer, Baseball, even often Business are all considered zero sum in that either one team wins or the other does. It is equally correct to think of a particular team scoring a basket or making a goal as it is to think of the opposing team giving up a basket or goal. The zero-sum method of thinking about a career advancement opportunity is, “I didn’t get the promotion because my (former) peer did.”

Prisoner’s Dilemma is a non-zero sum game in that the benefit due the winner of each game is not at the expense of the loser. Consider, for example, the game where both players play “Cooperate”. Each player is paid $300. One player did not benefit at the expense of the other. Instead, the players, together, gain $600 at the expense of the “banker”… an entity who is not even part of the competition. I found that many of the mistakes in thinking about Prisoner’s Dilemma stem from that fact that it is NOT a zero-sum game. It is no accident that most of the “competitions” we participate in Las Vegas are also not zero-sum games, but rather pay winning, not at the expense of other players, but at the expense of the “house”. So unaccustomed are we to thinking about the world in terms of non-zero-sum games that it is relatively easy to distort the innate feel for risk and rewards our “gut” affords each of us.

Strategy of Opponents

The success of any strategy is highly dependent on the other strategies against which it is competing. This is obvious, but I was surprised by the degree to which this was true. When I correlated the performance of a strategy with both the strategy itself and the other strategies present, I found that the correlation of all the OTHER strategies was much stronger than with the strategy itself. In other words, knowing about all the other strategies against which it will be competing made it easier to predict how well a strategy would perform than knowing anything about the strategy itself!

I saw this over and over again in the simulations. The end result would change dramatically depending on exactly which strategies were chosen to compete. I found plenty of examples of A vs. B vs. C where A was the winner. But when I added D, D would perform very poorly and not be the winner… It might even be the loser. But its affect on the system would still be felt leaving B (for example) as the winner.

To some extent, this is simply to be expected. If one comes up with a new strategy that is simply better at the game than previous strategies it will be the winner. Similarly if a new strategy is dreamt up that is unusually lethal to a particular strategy we’ll also find in competitions that involve this new strategy and its target, that its target will perform unusually poorly, while it will do unusually well.

To gain insight into the dynamics of Prisoners’ Dilemma , I wrote a computer program that played the banker. This main “banker” program accepted input from two independent sub-programs which would act as the two players. Each player program would signal to the banker a play of either “Cooperate” or “Defect”. The banker would then return to each player program what the other player program had played as well as the outcome. The banker would then either signal to the player programs that it was ready again to accept their “Cooperate” or “Defect” symbols, or that the game just played represented the final game in the match. On that news, the player programs would self-terminate and the banker program would select two new opponents and launch the programs that represented each of them.

In this way I was able to simulate with computer code, all three roles of the game (the two players and the banker) as well as provide the freedom for each player program to adopt any type of strategy I could imagine. A configuration file read by the banker program allowed me to define the number of games that would be played per match. In this way I could very quickly explore not only a very large number of strategies, but also how each of these strategies performed against every other strategy.

Choosing Opponents

The last piece I needed to provide a complete computer simulation was a method (and associated computer code) for selecting whom competed against whom. I considered several different approaches:

A Matrix Method in which every possible strategy in the system played against every other possible strategy exactly X times.

A List Method in which the program would take a list of all the possible strategies in the system , and starting at the top, use the list to decide one of the contestants. The other would be selected at random.

A Pure Random Method in which both contestants are selected at random.

All of these potential methods suffered from the same flaw: The relative frequencies of strategies would certainly NOT be equal in nature and on top of that, not be equal about matching against one another, while all the strategies I’d described above would have an equal chance of matching A against B against C. This could be relatively easily corrected by simply using a weighted method of random selection. If A is 2x more prevalent than B in a population, then whenever using a random method to select an opponent, I make sure that my method is twice as likely to choose A as B.

But there was no way to know what the initial frequencies should be. There was no population to go measure and then adjust the frequencies accordingly. In fact, the strategies I was using, while some were quite complex, none were nearly adequately complex enough to consider the thousands to even millions of factors a biological individual may consider when deciding whether or not to jump up on to your lap.

Worse, these frequencies would certainly change over time. In fact, in real life, any strategy that was successful would naturally increase in frequency for all kinds of reasons: Maybe winning strategies are sought out adopted by increasing numbers of players. Or maybe they’d be passed down generationally from father to son (more successful fathers would have more children). Or maybe strategies would be passed from one generation to the next at the molecular level via genes. Whatever the reason, it seems pretty basic to assume that a successful strategy would be employed by larger portion of the players as time goes on.

As an aside, note that this means that a successful strategy, in order to truly be robust, must be unusually good at competing against itself or against other rival successful strategies. Another way to look at it is that a truly robust strategy will mean that there is no other strategy that a player might switch to which would increase her success. But how to best model this?

Survival of the Fittest

Biology suggests an elegant answer. Natural selection, sometimes also referred to as “survival of the fittest” refers to the way that nature shapes species over time. Any trait (or “strategy”) that improves an individual organism’s success, and thus relative number of healthy offspring, will become more prevalent in the population over time. Any detrimental “strategy” or trait, by decreasing the success of the organism, will leave it with relatively fewer healthy offspring, and thus the trait becomes less and less prevalent in the population over time.

If I treated each strategy as a living organism and rewarded success and failure, not with money, but with relative reproductive success, I would fundamentally bring natural selection to bear in my model. Under the pressure of this unnatural natural selection, the weaker strategies would be eliminated while the stronger strategies continue to fight generation after generation for domination. Essentially, my “soup” of strategies would “evolve” towards the most successful and stable outcome.

Iterations and Generations

I start round one (or the first generation) of the simulation by “combining” equal portions all the strategies being considered. The computer then matches each strategy against an opponent strategy chosen at random to begin the game. In this first generation, all strategies have an equal chance of competing against any other strategy, including itself. The simulated opponents play a series of games after which the computer ends the round and totals the score for each player/strategy. The number of games played per round should is not important save that it be a relatively large number (to help eliminate spurious results) and that the number of games per round be unknown to the strategies. I’m not going to discuss the reasons for this here, but would encourage anyone who can see the problems a known number of games creates, to write it up in the comments below. The reason turns out to be very similar to the reason a single game is not interesting.

At the end of each round (or generation) the computer converts each strategy’s winnings to a relative amount of reproductive success. In each round past round one, more successful strategies are present in a greater proportion than less successful strategies. As a result, strategies find themselves with these successful strategies as a rival more often than they would in round one. By the same reasoning, each strategy will see fewer and fewer relative matches against strategies that have not been so successful. As the rounds progress, the population is made up of greater percentages of the most successful strategies, with the frequency of less successful strategies thinning, possibly even to the point of extinction.

The other day I stumbled across an old game known as “Prisoners’ Dilemma”. I believe the first time I learned of the game was a general psychology class. For some reason, this time around the game really captured my interest. The rules are extremely simple and straight forward, but actually playing it is anything but.

Prisoners’ Dilemma– The Game

A game of Prisoners’ Dilemma consists of two opponents and a neutral banker. The two players each choose to play one of two possible cards: “Cooperate” or “Defect”. Players each play their cards face down such that the other player (nor the banker for that matter) has no way of knowing which card was selected. Once both players have made their choice and played a card, the banker reveals both cards and then pays out to the players as follows:

Both Cooperate

$300 to each player

One Defect, one Cooperate

$500 to player playing Defect, MINUS $100 to player playing Cooperate.

Both Defect

ZERO payout to either player

Iterative Rounds

Playing a single game of Prisoners’ Dilemma isn’t very interesting: A purely rational player, carefully thinking through each possibility and weighing them in her mind will realize the following: If her opponent other player plays “Cooperate”, the best card to play is “Defect”, scoring the $500 prize! Incidentally, if the other player chooses “Defect”, “Defect” is still the best card to play, protecting one’s self from the $100 penalty. So “Defect” is the only card that makes any sense to play. Assuming that the other player is also rational, she will also reason out that “Defect” is the only reasonable card to play. Thus, the single game is deterministic and extremely uninteresting.

If, however, one plays Prisoners’ Dilemma as an iterated series of games with neither player knowing when the game will end, the game loses it’s single outcome, deterministic nature. Knowing that one will be interacting with one’s opponent for some time to come gives the rational player more space: They may build trust and mutually prosper. They may betray trust and reap the high-value payoff of doing so, or may suffer the indignities of betrayal at the hand of their opponent . They may choose to immediately retaliate against such betrayals, or craftily lie in wait for a better opportunity to serve up revenge not only cold, but lucrative as well.

Two Mental Models

I think there are two very interesting ways to think about Prisoners’ Dilemma: One is to treat the game as a study in psychology. You take to the streets in the role of the banker, and ask strangers to play against each other. You study not only what the individuals are choosing but why. You look for patterns of behavior and perhaps correlate them with other ways of grouping individuals (age, gender, socioeconomic status, race, etc). Your hope, and the question you are trying to answer, is something about the nature of the human condition. Why do we make the decisions we do? When do we prefer to cooperate with each other and when do we prefer to benefit ourselves at any cost?

The other interesting way to think about Prisoners’ Dilemma is to treat the game as a puzzle to be solved: How exactly does it work? What methods are available to use in playing the game and when should they be used to secure the largest possible win? Are there robust strategies available which are relatively simple and yet (think: Tic-Tac-Toe) guarantee a win (or at least a tie) every time they are used? Rather than using the game as a tool to understand something more about who we are, your goal, instead, is to try to understand the nature of the tool itself.

When do Cheaters Prosper?

To some, this latter way of thinking about the game may seem mundane, academic and lacking appeal. Until such time as the multi-million dollar Prisoners’ Dilemma tournament is announced, knowing exactly how to win the game is unlikely to be of real benefit to anyone. That is true enough, but has nothing to do with my interest in truly understanding the game and how to win it.

Any situation in which individuals may benefit by cooperating is likely subject to many, if not all the same drivers within the Prisoners’ Dilemma Game. In all these situations, there is a clear temptation to cheat– to find, for example, ourselves pressed into a “mandatory” fishing trip when our neighbors are moving their belongings out of their home and into the moving truck– but still avail ourselves of their assistance when we are the ones moving.

If we understand the forces that drive the game, we can look to find similar drivers in life. If there are particularly robust strategies or patterns of behavior that are particularly influential on the outcome of the game, we should expect to find them extensively employed, or a reasons why not.

Hi folks! I’ve been off the radar for a while… Which I suppose is really saying something considering how relatively stealthy I was when I considered myself “on the radar”. If you’ve reached out and I haven’t responded, I assure you it was not intentional and I apologize. Please resend! I’m even trying to use Facebook for the first time since I signed up for it about 12 years ago. If you know me at all, THAT should totally blow you away. So, if you’ve tried to be friends with me previously to no avail, please, give it another shot. 🙂

In any case, for those of you that have been wondering/asking what I’m up to, here is the skinny.

Adobe and I parted ways at the very end of 2011. It was a very difficult change for me. For the previous 12-13 years so much of my identity had been tied up as the “CTO of Omniture”, that putting that behind me left me with a bit of a crisis. It had become clear that Adobe wasn’t the right place for me, so I wasn’t necessarily sad about leaving, but at the same time, I had breathed so much of myself into that company that I felt a lot like a parent abandoning a child. Most acutely I missed my customers, my products, and most of all, the amazing team that I’d been a part of and largely built. It was extremely disorienting, and took probably 3 months just to kind of sort things out in my head. I still miss the relationships and the challenges that Adobe represented.

This week was the Adobe Summit. It is the second one I haven’t been involved with in the last 15 years. Of course, in many ways it is a relief. I’m sure you can imagine the kind of effort the team puts into putting on a show of that size. But I also miss it a lot… Especially that closing session.

It was always so nerve-wracking to put ourselves out there like that and take your feedback, not the least of which because it was the very last session of the conference and at that point you all had given me a whole new perspective on the term “sleep deprivation”. However, the reward of interacting with you vastly exceeded any of that “pain”. Nothing energized my team and I more than hearing the frank feedback and subsequent discussion that followed, and then getting a feel for how many of you felt the same. It was the number one most motivating thing about Summit for me, and I miss that a lot.

It has been gratifying to see my friends at Adobe continue to be successful. Similar to the parent metaphor I mentioned earlier, I can’t help but take pride in the growth and success. Seeing the amazing building in Lehi, the current strength of the stock price right now, and favorable brand and buzz the company and the products continue to foster all help me feel like all the sacrifice was more than worth it. This is particularly true when I think back to the humble beginnings of it all. It is hard to believe how far it has all come. I tip my hat to the team, and congratulate them on their continued success. And, childish as it may be, I can’t resist saying, “I told you so!”

On leaving Adobe, the sheer number of interesting opportunities available was overwhelming. There were so many things I could see that would work well as the basis for starting a company, plenty of start-ups looking to flesh out their team with some experience, and even almost all of the well-established and admired Internet “elite” reached out to see if there was a fit. The only thing more surprising to me that the number of opportunities was how little excitement I felt for any of them. The attention was certainly flattering, and the opportunities definitely first-rate, but none of them felt quite right…

I tend to manage my life with to do lists (all hail the smart phone!). I have no less than 4 of them (there are actually more, but I’m simplifying for the sake of clarity and because the truth is embarrassing). One contains things that must be done in the next day or two or there will be serious consequences. The others are rather uncreatively called “High”, “Med”, and “Low”. At the time I left Adobe, I hadn’t even looked at the medium and low lists for several years. Rather things would just keep getting added to these lists, or bumped into them from off the high list when I realized it really wasn’t that urgent.

With this HUGE backlog of things I wanted to do, I decided not to go to work right away, but rather indulge myself by scratching the itch I’d felt for so long. I’d always told myself that pursuing these things sounded better than it would ever feel, and that as much as I felt I wanted to do some of these things, it wasn’t a big deal because as soon as I did them, I wouldn’t find them all that satisfying.

The opposite proved to be true. In a smaller sense (I mean, what could possibly be more satisfying that to have been such an integral part of the success of Omniture) I was surprised to find that it was vastly MORE satisfying that I ever expected. It has been funny to engage with some of you and to see your bewilderment at how I have not kept up with all the latest developments in the analytics and optimization spaces. Honestly, it has taken a fair bit of effort to disengage and deliberately spend my time trying NOT to think about those things.

That isn’t to say I haven’t been “working”… There hasn’t been a week that I haven’t engaged in the software world in some fashion. I’ve had a fair number of consulting projects, serve on a number of advisory boards, and once a month or so I get asked to just come in and listen and give feedback to various companies who think I might have something to share (may the powers that be protect them from my “advice” 🙂 ).

During the last couple of months, all this has changed. I’ve found myself thinking more and more about the sorry state of software in so many areas and how much could be done to make people’s lives better. I haven’t come anywhere close to emptying the Med and Low lists, but all the same, I think I’ve reached the point of decreasing returns. Just as I used to long to invest in some of these personal areas, I’ve developed a real itch to get back out into the business world and make things happen.

As I’ve resurveyed the market for opportunities, I’ve thus far managed to pare it down to a shortlist of five really great opportunities that I’m considering:

Two are software start-ups that have a really bright future. Additionally, I can see how my participation could really make a difference in boosting them forward into success.

One is an idea of my own that I’d like to pursue.

One is a non-profit I’d like to start for which there is a desperate need and about which I’m passionate.

And the last one (and I mention this mostly for the benefit of those of you that know me well because I know you’ll laugh at just how bizarre this is and yet how perfectly it fits into my soap-opera like personal life) is a classified opportunity for the US Gov. (When I was doing biological/medical research I had to get a security clearance for a couple of the projects I was working on. None of that work was actually classified. It was just funded, in part, by some government agencies who required the clearance, just in case they decided to classify it later. Anyway, as a direct result of this I’ve been “noticed” and am being recruited into the black helicopter squad 🙂 )

I can’t tell you how fortunate I feel to have such a wide variety of options, but at the same time, it is proving extremely difficult to make a decision, and is responsible for no small amount of angst in my life right now. Of course, these are exactly the kind of decisions that one hopes to be able to have available, and I hardly think that any one of them would be “wrong”. But that is exactly what makes it so hard to choose what is “best”. In any case, I hope to figure it out in the next month or so at most, and engage in my next adventure… If I can just manage to stay on top of Facebook, I may even keep you posted! 🙂

Last week we announced that I’d be assuming a new title: Vice President and Chief Technologist, OBU, Adobe. Luckily it has roughly the same number of syllables as my previous title, which as most of you already know, is the primary way I believe one should always measure the value of a title. Although the prestigic mass of the title may not be changing, other things more definitely are. The biggest change is that the Software Engineering, Product Management, and Network Operations groups will no longer report into me. Instead they will report directly into the General Manager of our business unit, Brad Rencher. This will eliminate virtually all my reports and relieve me of almost all operation responsibilities– and thus free me to better pursue the technology interests and product visions for Adobe. I know right?! While I’m not so naive as to think that I’ve reviewed and approved my last expense report, this will be a very welcome change. How did I achieve such a coup? Listen and learn, grasshopper…

As Omniture has become better integrated into Adobe, several functions have been elevated from the confines of the Omniture Business Unit and been grafted into the corporate structure. The most notable examples of this include: Corporate Marketing, Sales, Support and Services. As these changes have taken effect, however, they’ve actually changed the nature of our structure quite a bit and it occurred to me a few months ago that like 80% of Brad’s organization was reporting up through me. In addition to that, my leadership team has continued to grow and have really come into their own. Catherine Wong, VP Engineering is doing an absolutely tremendous job of running that group (far better than I ever did). Similarly when I saw Bill Ingram give a presentation to the company around our product strategy that was much better than any presentation I’ve ever done, I knew it was time for me to step aside and get out of the way! Brandon Pulsipher, VP Network Operations, runs one of the largest SAAS infrastructures in the planet, and has been doing so with minimal input from me for years. In short, I realized that this machine was perfectly capable of continuing to do its thing without me. Not only that, but removing myself from the structure would give this leadership team more room to grow and do what they do best. It would also help bring Brad Rencher even closer to this tremendous product team and couldn’t help but make him even more aware of the challenges and successes of that team.

A lot of people ask me why I’m still doing this… I suppose it is true that I could retire, but that isn’t really me. I’m pretty sure if I tried that I’d be trying to claw my way out of the inside of my own skull within the year. Similarly, there is certainly no need for me to stay at Adobe– as I mentioned earlier the product group has got the team, the leadership and the skills to be successful. Not only that, but this is a great time for technology, and I’ve been approached with a ridiculously flattering number of interesting opportunities, many of which are highly compelling (rest easy, the balance still exists. There are also some real stinkers out there 🙂 ). But the opportunity that most attracts me is the one right here– the one we’ve already been pursuing for more than a decade. Not only are the business opportunity and technical problems exciting and challenging, but the people I get to work with and the attitudes and culture they bring with them to work really make this something unique and special.

Thank you to all the Adobe (former Omniture and otherwise) who have made this such a great place to work and a special thank you to my leadership team for the tremendous job they’ve done over the years. I’d be lying if I suggested that making this change isn’t at least a little bit painful– change nearly always is. But at the same time, I’m completely confident that this is a great move, both for Adobe as well as for me personally, that makes it pretty easy to choke back those tears and eat a ham sandwich.

It probably sounds a little melodramatic to suggest that my world was spinning a few weeks ago when Josh publicly announced he was leaving Adobe, and I suppose maybe it is. I mean it isn’t like I hadn’t seen it coming from a mile off, and even known about the decision for some time. I guess some hitherto undiscovered defense mechanism in my head was preventing me from processing what this really meant.

You see, Josh has not only been a tremendous business leader and industry visionary, but also a very close, personal friend. I’m not good with superlatives (I always second guess myself about them) but there have been none in my life, save my only family that have had the impact that Josh has had on mine. For the last 13 years I’ve not only had the pleasure of building a phenomenal business with him, but he has been there for all of my personal triumphs, and more helpful, right at my side for all my personal lows. His good judgment extends to matters far beyond business and have been lucky to number him among my closest confidants.

Yes, I expect the friendship will continue– we’re queued up for some fishing and squirrel-obstacle-source engineering later this month– but there is no doubt in my mind the relationship will be different. How could it not be? For a decade we’ve worked side by side on a common goal, and in doing so, been “forced” into frequent interaction.

In any case, Josh, thank you for your friendship, and for the opportunity. I love you like a brother… Which is why it hurts me even more than it hurts you to tell you that you blew it. We’re so going to own this market and I shudder to imagine the regret you are going to feel at leaving. 🙂

I’ve always attributed a huge part of Omniture’s success to our customers. We’ve been extremely fortunate to not only forge relationships with the most innovative brands online, but they’ve also been willing to share their problems with us, and collaborate on a solution. It is this—our customers’ willingness to bring us their problems—that has fueled our product roadmap for over a decade.

One of the places you see our interest the business issues with which our customers struggle is in the closing session of Summit (our annual customer conference). Every year I give our customers a quick accounting of the progress we’ve made on our product set over the previous year, and try to reserve the majority of the time for customer feedback. We turn up the house lights, put some microphones in the audience, and listen to customer suggestions one by one. After spending a little bit of time going back and forth to make sure I understand what the customer is suggesting, I’ll then ask by a show of hands, how many others in the audience also feel that (given our always limited resources) this is something in which Omniture should prioritize an investment.

While this is not the most significant way we get feedback from our customers, it has always been the most popular. In fact, one of the suggestions I took from the audience last year was, “I’d love it if you’d figure out a way for us to interact with Omniture like this for the other 364 days of the year we aren’t in this session.”

SHAZAM! Earlier this week we announced the Omniture Idea Exchange—a web application infused with the nougaty goodness of that closing session of Summit, and available at your fingertips whenever you choose to mash out ideas.omniture.com into your favorite browser. Using the Idea Exchange, you can not only submit your requests, suggestions and ideas to Omniture, but just like that closing session of Summit, you can also get peer feedback on how sensitive this particular issue is for other organizations. While I’m sure we won’t be able to implement all the suggestions (even if ALL of you “raise your hands”– but I’m sure you know that rule by now 🙂 ), it serves as a tremendous resource in understanding what we can do to make your lives better and we will continue the long tradition of executing them as best we can.

Response thus far has been tremendous. So great, in fact, that a friend of mine recently suggested that if I could just get Kevin Spacey to stand in for me at the Summit parties, I could pretty well consider myself deprecated. While I’m not sure I completely grok the KS reference, I’m really thrilled by your quick acceptance of the Idea Exchange. Thank you for all your support over the years, for your patronage, and most of all, for being willing to share your problems.