Jump to content

White Screen Breaththough!


Recommended Posts

We now understand exactly why white screens were happening and we are quite certain that this problem can be easily solved. Most likely there will be a new version that you can try either later today or tomorrow.

 

A lot of our members made significant contributions toward helping us to get to the bottom of this. I am not going to attempt to list them here, but you know who you are. Uday and I are very grateful and, thanks in no small part to your help, I am sure there are many 1000s of BBO users who will be very happy when the see the next official version.

 

More news soon...

 

Fred Gitelman

Bridge Base Inc.

www.bridgebase.com

Link to comment
Share on other sites

Since the Forums crowd has been so helpful and supportive as far as the white screens go, I figure the least I can do is explain what they are all about.

 

The following is long and has not been proofread. Likely lots of typos. Sorry.

 

A white screen is Windows way of saying "sorry, but I do not have any time to draw the contents of this window".

 

Computer, like people, can only do so much in a given amount of time. Some computers can do more with the time they have than other computers. The most important factor is your computer's CPU speed. Uday and I happen to have very fast computers which is why we never saw the white screens ourselves through "normal" operation of BBO.

 

Sometimes white screens have very little to do with BBO. Dr. Todd was the first to demonstrate this to us. He showed that if you run another specific program at the same time as BBO that a white screen could result. This program was doing some very serious computations and, when it was running, all other programs running on the same PC at the same time pretty much ground to a halt. The result was a white screen (not only in BBO but in just about any other program).

 

While Dr. Todd's experiment was very helpful and interesting, Uday and I decided that we could not afford to really care about this particular class of white screen problems. If some of our members insist on overloading their PCs with other obscure software while they run BBO, that is not our problem (and besides - there are solutions for these people - either stop running such programs at the same time as BBO or get a faster computer).

 

Some of our other testers managed to demonstrate that sometimes BBO would go into the white screen state even if their PCs were not overloaded by external applications. In other words, it became apparent that BBO itself was capable of overloading a healthy PC under some circumstances.

 

This is something that we had to be concerned about and we have spent most of our waking hours in the past couple of weeks trying to figure out what was going on. Today we figured out what was going on and, once we knew, it took less than 5 minutes to fix it! We are doing internally testing of the new version today and we will announce its release in Forums tomorrow.

 

Here is what BBO was doing wrong:

 

The BBO client program maintains a list of all of the tables that are in play. It keeps this list sorted based on things like the alphabetical ordering of the host's name and various filter options that the user has selected.

 

Whenever a new table is created, an existing table is closed, a host changes his table options, a player sits down, a player leaves his seat, or perhaps some other conditions I cannot think of right now, the list of tables might have to be resorted.

 

The algorithm that I use to sort the table list is not very efficient. Computer scientists dedicate years of their lives to studying how to write efficient sorting programs, but I spent most of my college days studying bridge instead (with no regrets!). I know how to write one kind of sorting program in my sleep, but it is not very efficient in terms of how fast it runs. This type of sort increases in time according to the square of the number of things that I am trying to sort.

 

So if there are 100 tables to sort, 10,000 units of time are required, but if there 1000 tables to sort, 1,000,000 units of time are required. That is one of the reasons why the white screens tend to happen when BBO was busy (more people online means more tables which means much longer sorts).

 

To you programmers out there, please don't bother to send me e-mails about how to write fast sort programs, use existing sort libraries, etc. I can work this stuff out for myself if it becomes necessary!

 

Slow sorts are bad, but the real problem, however, is that these sorts were happening far too often. White screens in particular resulted from 2 conditions:

 

1) A new tournament being created

2) A tournament round change taking place

 

When either of these conditions occurred, the BBO client program receives a whole bunch of table-creation, table-options, player-leave-table, player-join-table, and player-sit, messages. Each one of these messages was resulting in the BBO program resorting the entire list of tables.

 

This process could take several seconds to complete, even on a moderately fast PC. During that time the BBO screen was not being refreshed and a white screen would sometimes result (a "freeze" might also result).

 

Once we understood all of this, a solution was very simple: don't sort so often!

 

We could further improve things by increasing the efficiency of the sort itself and no doubt we will do this eventually, but the important thing is that we now have a version for which white screens will not be an issue (unless you manage to overload your PC by running enough heavy duty programs at the same time as BBO - this is never be an issue for almost all of our members).

 

Whew - what a relief!

 

Tonight I will take my poor wife Sheri (who has had to put up with a miserable Fred during the white screen crisis) out for a nice dinner (and a very nice bottle of wine).

 

Fred Gitelman

Bridge Base Inc.

www.bridgebase.com

Link to comment
Share on other sites

×
×
  • Create New...