Join Bridge Winners
All comments by Larry Lang
You are ignoring the author of this comment. Click to temporarily show the comment.
I can't see any reason why forcing people to run off the Internet is an advantage. Can you?
April 29, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Which brings up other questions.

Why can't the ACBL make the original RFP available for those who would like to see it?

Why can't the ACBL make sections of the ACBLScore code available so those who are interested can talk about it intelligently? Most of it is not proprietary in the least – it's mostly worthless.

Why can't the Technology Committee at least publish a list of the questions they are asking themselves? Why all the secrecy?
April 29, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
I hadn't thought about that, but it's a good point. How many times have you gone to some place of business, and they either tell you they can't help because their computer connection is down, or you have to wait 10 minutes to finish a one minute task because their server is under attack.

Or, in the case of ACBL, their headquarters are underwater.
April 29, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Here is an update on my experiment at rewriting ACBLScore.

Access was wonderful for designing the database and seeing the design visually. The database design is not trivial because ACBL “design assumptions” are unclear. Perhaps non-existent is more accurate.

I spent about 40 hours playing around with different database structures and the “datasheets” that Access will generate for you, and also hobbled together screens for the key forms that would be required.

My feeling is that a first pass database design could be completed within 3 weeks – 150 hours – $15K – and matched up to the controls found in prototype forms.

In my opinion, the entire application could be developed using Access all by itself, but Access doesn't easily support grid controls within tabbed pages, and I would prefer that capability.

I would also like a high powered feature that lets users type a few letters and then shows names that match. It's possible with Access, but only up to 20,000 records or so.

Right now I'm stuck with a minimal UI and database that needs to be supported by hundreds of rules and error checks that are not very well documented or understood.

If I managed to code together a program that does 60% of the functionality as ACBLScore in 8 weeks, would this impress anyone? I doubt it.

However, if I introduced a version of ACBLScore that does everything that ACBLScore does, only some things better, that might get some attention.

So I'm veering off course and now trying another experiment. What if I hijacked the ACBLScore code, and spiffed up the User Interface so it was noticeably different and better? How much time would that take? It would probably get attention from the ACBL – possibly in the form of a law suit, but it would be interesting to see.

It would also be interesting to see what this “horrible unmanageable” code would look like if it was spiffed up and became self documenting.

Once again, no promises. But that's where I'm going next.
April 24, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
After I sent out my last diatribe, it occurred to me that I'm going to get flak for at least one thing I said.

I suggested that if the ACBL pays a software provider twice the amount of money over a given year as it usually does, that the maintenance costs for the following year will also be twice as much.

I stand by that statement. How much the ACBL is willing to pay per year for software upgrades is an indicator of how loose they are with their money.

But more importantly. If the ACBL pays 2X for new development over a given year, presumably they will get twice as many new features at the end of the year. This means that users will find twice as many bugs (or suggested fixes) which will require twice the amount of maintenance. Also the new features will foster twice as many new ideas of what the application could do next. I consider enhancements to be “maintenance”.

This is why cost/benefit analysis is critical to keeping costs under control.

April 12, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
8086 code is a red herring. If given relief on the requirement for operating on DOS, this code could all be exorcised and replaced in less than a week. Since the new ACBLScore was granted a pardon, it seems only fair to give the same relief to the old version of ACBLScore.

Turbo Pascal and Delphi compilers give programmers the “privilege” of using in line Assembler code if they wish. Jim used it partly to make it easier to run ACBLScore on DOS, to support memory management functions that are no longer necessary, and to speed up some compiled statements (simply because he could). Most modern Pascal programmers (Object Oriented or not) would not even consider using that capability. Pascal is a Turing complete language, and 8086 assembly code is not required. Assembly language is discouraged these days, except in Cyber Security, in which case it is a critical skill.

I saw two types of 8086 assembly code in Jim’s program. One type was used because of DOS. Jim had the good habit of “saying things once”. Consequently ACBLScore code that services DOS peculiarities would be easy to cut out without damaging the rest of the application. If relief from DOS was granted by the ACBL, the code could be cut out with almost no effort, and this would reduce code size by at least 30%. And this would save maintenance costs. Apparently the ACBL has never taken advantage of this option.

I can say the same thing about all the ACBLScore code that supports computers with inadequate memory. The ACBL could slice out maybe 20,000 lines of code (or more) and save about $20K a year, but that hasn’t been done yet either.

Also, there are entire subroutines that worry about coarse screen resolutions that existed more than a decade ago. Relief on this front would wipe out many subroutines and probably save the ACBL another $10K a year at least.

And there are reams of code that support floppy disks. The ACBL should have performed a cost/benefit analysis on all of these items, years ago, on a continuous basis, and given Jim the green light to cut out some code and save money. But as is usually the case, the company sits on their haunches, doesn’t invest in refactoring the program, blames the current programmer for lack of maintainability, and eventually the programmer goes away. And then the organization finds it takes 4 people to replace the one person they allowed to go.

I really believe that the ACBL didn’t have enough sense to offer Jim relief on some of these items, and they didn’t offer incentives to cut all this crap out when it was time to retrench. I call this “refactoring” and you probably do as well. You probably believe, as I do, if you’re willing to refactor code as you go along, you can extend the life of the program. The later code might not look anything like the original, but we can keep rolling along if we refactor judiciously.

This is exactly how Jim Lopushinsky kept ACBLScore alive as long as he did. The program wasn’t originally written in Pascal. He later rewrote the entire program in Turbo Pascal which was the hot item back then, but he kept a lot of the original structure and text files. He later converted the database to a new concept – a “relational database” supported by code he purchased from Borland – Turbo Pascal. This database seems old now, but it was hot stuff back then. He didn’t stick with Turbo Pascal. When Windows came along, he upgraded to Delphi. Back then you could buy a student version of Delphi for $100 and it could do most of what you wanted. I don’t know if Jim got paid for his copy by ACBL. But I’ve worked for more than one company that charged me out at $150 per hour, but would stiff me when I wanted to buy $1,000 worth of development tools. So often I’d buy them myself.

The other type of 8086 assembly code was used to speed up certain recurring kinds of Pascal/Delphi statements. Basically, Jim did it because he could. These inline code snippets are repetitive and would be easy to replace within a day or two, just by using a code editor with Find and Replace capability. So they’re not a problem.

Pascal doesn’t care what platform it runs on. The same is true for Object Oriented Pascal (one flavor is called Delphi). There is a mature, but still active open source project called “Free Pascal”. It supports both Turbo Pascal and Object Oriented Pascal and Delphi. Object Oriented Pascal and Delphi are super sets of Turbo Pascal. As an analogy, Turbo Pascal is like C. Object Oriented Pascal and Delphi are like C++. Object Oriented Pascal and Delphi can run pretty much anything written in Turbo Pascal. See Free Pascal currently supports 6 different processors, and 15 different operating systems. 4 other different architectures are in development. It supports all these through cross compilers.

Well what about the IDE? Lazarus is an open source version of the IDE used for DELPHI. It supports development for Linux, Mac OS X, iOS, Windows, and the web.
Theoretically, if you publish for a web browser, I guess you’re everywhere.

But you might want to go to Android, iPhone, and so on. I have no clue why anyone would want to use ACBLScore on their portable phone. But if you want to do that, then you need to spend some money and buy Embarcadero products “The fastest Connected App Platform for Windows and Beyond”. They have tools that allow you to use Delphi (Object Oriented Pascal), Rad Studio (an IDE for Delphi), Rapid SQL (a tool that visually creates SQL statements to aid programmers – Pascal can already talk to any database imaginable), Fire Monkey (another tool for specifying generic graphic controls that can be spiffed up and made sexy), and if you use FireUI, the compiler will automatically resize and readjust your GUI whenever it is cross compiled to a different mobile (or desk top) device.

I believe that Microsoft and partners will eventually choose to provide compilers that operate on all platforms. They have made several steps in that direction and in many ways they are already there. I believe that Java will continue to falter, as long as it resides in the clutches of Oracle. I believe there are tools that can bring browser based code such as Java Script closer to the hardware and this will be competitive with the compilers. However, to my knowledge Nicholas is not using this product. (I forget the name, but reviews are good).

But at this point, on paper, Object Oriented Pascal is the most flexible choice – not the least flexible choice as you are suggesting.

Of course, it’s not about syntax; it’s really all about libraries. Did you know that there is even a .NET version of Delphi? I’m not proposing its use. I’m not proposing that we use Delphi. I am saying it is very acceptable for now, and I don’t know which language or set of libraries will become most popular in the future.

If you want to see what the professionals are paying attention to, go to the TIOBE index.

Professionals think their time is valuable, they typically shy away from open source software and use whatever product they think is most efficient (at the outrageous prices they charge clients).

Object Oriented Pascal/Delphi sits at 13 (up from 15 last year, up +0.27%)
Plain old Vanilla Pascal is at 15 (also up from last year)
Ruby is at 18 (down from 14 last year but up 0.06% from last year)

Delphi is more popular and on the upswing. Ruby (the greater more modern language) is less popular and declining in status.

All of this is a red herring as well. Some languages are slow out of the gates but scale well (C, C++, C#, Object Oriented Pascal) – and some languages are fast out of the gates but degrade exponentially as the program grows (Ruby, Java Script, VB.NET, Access). And some are in the middle (Python and Java?). But what matters most is what you’re most comfortable with and what code you were given to start with.

You could give the ACBLScore code to Greg, and he might barf all over his computer screen. I look at it and say “Gees, I wish I had a debugger so I could track down these subroutines more easily.” (Jim was terrible about comments. He gave decent names and the logic is pretty straight forward, but there are no comments about what each subroutine does). Greg is not used to Delphi code, and I’m not used to Java Script. You can’t expect any amount of documentation to satisfy a person who doesn’t understand the basic syntax of the language.

After saying all that, I look at the source code and think at least 80% of it has to go, but not for the reasons you might think. DOS? Strip it out. I’d even strip out XP, but ACBL would probably never go for that.

The GUI needs a complete cosmetic overhaul. That doesn’t mean it has to be done today, or even 5 years from now, but it’s pretty sad. As changes are made to ACBLScore, take every opportunity to upgrade the GUI. Object Oriented Pascal / Delphi have just as powerful GUI development tools as any. It’s not a function of the language. It’s time to upgrade the GUI on an opportunistic basis no matter what language is used.

The database needs to be upgraded as well – same story.

Cut out the memory management code and floppy disk support. Cut out the macros for Horn Lakes. Cut out the code that scores Spades. This is not because it’s written in Pascal. Just do it.

When you’re done with all that, 20% is all that’s left. A lot of Jim’s logic is in text tables. This is cool! The tables are language independent. Keep them! Some of the code might become invaluable if it was just documented. Document it. There are software tools and Perl algorithms that can help immensely.

And finally, if you’ve documented all the logic, and run your Perl code to arrange the subroutines in a more organized fashion, if a programmer comes by and says, “I really don’t get this BEGIN, END, and THEN stuff. I can understand brackets, but CASE and that funny looking equal sign I just don’t get.” Well, you can run the code through a language translator and covert it to C. But I really have a hard time believing that’s necessary.

My other concern is, “Which tools will maintenance programmers find easiest to work with?” On one hand we have AJAX, Ruby, ISIS, C, and probably Java Script. On the other hand we have Pascal. After agonizing over this issue for some time, I think Microsoft Access (possibly converting to SQL) and VB.NET (perhaps using LINQ and Code First Entity Framework) are probably the best choice if we start from scratch.

But that doesn’t mean that I think that ACBLScore code is unmaintainable – far from it. It will cross compile to Windows 8, 9, and 10, and probably the next 3 versions of the Mac as well. After that, well I can’t see that far into the future.

I keep hearing that the previous ACBLScore lasted for 13 years and the next version should last 13 years as well. You’ve got to be kidding!! The current ACBLScore represents 4 generations of drastic overhauls. If anything, the pace of technology change is increasing. When Nicholas started 3 years ago, Ruby was the darling of Geeksville. I think Nic made good choices with the knowledge he had at that time. Ten years from now, Ruby may be dead while Delphi may be resurrected from the grave. Change is the only thing that is constant. I would expect the next version of ACBLScore, whatever it turns out to be, to only last for about 5 years before the requirements and technology get modified on the order of 50%.

US companies, on average, pay yearly maintenance costs of 50 to 100% of the cost of the original software that was developed (maintenance includes all enhancements made to the software after it was released). So if Nic releases his new software, at the cost of say $2M, we can expect to pay 0.5 to 1 Million a year to maintain it. If we choose to refactor the old software, it costs a lot less.
April 12, 2015
Larry Lang edited this comment April 12, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
I agree security is a key concern that I can't speak to. I don't know enough.

I take exception to the claim that the existing code can't be maintained. Sorry, I don't believe it's even remotely close to a true statement. That's just me, because I would have no problem maintaining it.

Would it cost more to upgrade and maintain it than if it was a better documented or better structured or more modern program? Yes, that needs to be factored in.

Other factors need to be considered as well such as people's preferences. But at the end of the day, you have to compare apples to apples. You can't let one party say, “I want this, and I don't care how much it costs.” You have to ask, “how badly do you want it?” How much are your willing to pay to get it?"

In my opinion, if all the other stuff is factored in, benefits are still overshadowed by costs. I could be wrong. I hope I'm wrong. But the analysis should have been done, and then there would be benchmarks we could fall back to when discussing all this stuff.

April 11, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
What is the lesson learned from all this?

ACBL (indeed anyone) should do cost/benefit analysis before starting a project of ACBLScore's magnitude – and definitely as part of writing the functional spec. That's the lesson.

It is difficult to blame Hartman for all of this (although certainly he should step up and accept some blame). He was not there at the beginning. Nicholas Hammond helped write the original specification, but did not provide a cost/benefit analysis. If he had, the project would never have gotten off the ground and he would have lost a lot of business. Hartman was not there until the wheels were in motion, and it is difficult for a new CEO to stop a train that is already moving – especially on his first day of work. (However, he did stall it for quite some time).

The project got started because everyone wanted it. ACBLScore is clunky looking and people like a nice interface. But I don't know of any club managers or directors who would charge money to the ACBL because they don't like the looks of ACBLScore.

Many people wanted it on a Mac, or you name it. But providing it on a MAC does not save the ACBL money, it just adds cost because now there are two platforms to worry about instead of one.

I'm sure there are DOS platforms and ancient computers with floppy disks out there – but I really doubt that ACBL would need to fork out money to ask people to upgrade. They would just ask members to do it.

Yes it would be nice to automate the process of seeding knockouts (was that in the original spec?). Bridge Mate operation could definitely be improved but that wasn't in the spec. How many tournament directors will we replace because of the new version of ACBLScore? Probably none.

Save time for volunteers? This sounds cruel, but they work for free.

Yes, the technology is old, and hard to maintain, but it is workable. Take out modules that you absolutely can't stand and replace them with new technology. Leave the old stuff until the old technology causes the projected extra cost of adding new features to exceed the cost of an upgrade.

A cost benefit analysis would look something like this. Projected Cost of new ACBLScore = $2.5 M (I suspect closer to $3M when all done). Direct cash benefits to ACBL = $0. In the hey day of computers, investments had to pay off in 2 to 4 years or they weren't even considered. This investment never pays off in 1,000 years. It just drives the ACBL into steady losses, forever, because of the future value of money.

Even though the cost could not be justified, everyone wanted it. The previous tech committee wanted it. Mac Users, Club Managers, programmers wanted it, and to make everyone happy, Baum and Hartman wanted it. There was no one to stop it.

At first,it was easy to rally behind a train that was heading to a Bridge Too Far. But as costs continued to mount, it became more and more difficult to justify the project because it could never be justified in the first place. Hartman had a choice, take his lumps sooner, or take his lumps later.

I asked Nicholas some questions, and fair or not, I'll provide my take on his answers.

1). If the ACBL paid the additional 10% for the copyright, would Nic accept it and give the ACBL sole possession?

No, Nic would not. Why should he? He has captured the right to $2M worth of development. He would be foolish to give this up and has no intention of doing so.

2). What does Nic want out of all this?

Nic didn't answer this, because of Gatlinburg, but I'll answer for him. He wants to license his software to the ACBL and the rest of the world. He would like to be the “go to guy” for Duplicate Bridge Scoring Software.

He wants everyone to take an honest look at what he has accomplished, (it is impressive) so he can sell more of his services.

3). How much money (time) will be lost turning what Nic has developed over to someone else?

Nic is the “go to guy”. He is a great programmer. He knows Bridge and he knows the ACBL. You can't replace him. Despite this he doesn't want to be conscripted by the ACBL to become the next Jim Lopushinsky.

4). Why isn't the original contract available?

It was partially published by the current Tech Committee. I didn't see it until after I asked this question. I don't know if the timing was coincidental or not.

5). Did Nic agree to a fixed contract and date? If so, how could he do that without complete requirements?

Fixed cost. See contract that Kevin Lane has made available.

6). Did Nic ever do a cost/benefit analysis?


7). How much more money to finish.

Nic provides no promises – but estimates 0.5 Million.

So now we get to the final question. Should the ACBL pay another 500K to $1M to finish Nic's work?

Let's see. Cost = $500K to $1M. Hard Cash Benefits = $0.

Perhaps the best approach has been proposed by the current Tech Committee. Upgrade ACBLScore as needed – and use a modular approach.

April 10, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
I might add. I didn't care too much, because she was fun and a good bridge player. But when she got all dolled up and I didn't notice – hoo boy. If I only knew then what I know now.
April 9, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Actually, believe it or not, she was Black Irish and a former cheer leader from Gonzaga High School. When she looked good, she looked very, very good. But left alone without Nair for half a week – not so good.
April 8, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Where would we all be without Jesus Christ, Gandhi, Genghis Khan, and Adolf Hitler. A lot worse off.
I recently watched a long series on the History of Britain. The most significant event that created the concept of the Middle Class was the Black Plague. So many people were killed, someone had to step in and fill all the lower level management jobs. Some peasants just moved into the master's mansion. The unemployment rate was very low. They didn't have computers back then.
April 8, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
I never did like the Borg. Totally untrustworthy and probably cheat at Bridge.
And whoever was their fashion consultant. Jimminy Cricket! Pale purple skin is so passe.

April 8, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
I once had a blind date with a girl who looked like Hitler. I didn't mind too much because she was a good bridge player.
April 8, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Perhaps I'm talking out of school. I was referring to a single bridge program playing against a single person, like maybe Bridge Baron playing against my wife – God forgive.

One question is, do the robots at BBO group together and consider all identical auctions as a whole (much like the Borg) or does each robot make decisions independently. I don't know.

In the case of Bridge Baron, my wife sometimes plays the same hand over and over again, and has seen different leads and even different auctions on the same hand.

The explanation is that each time the robot starts at ground zero, creates the “specifications” for the simulation based on bidding and the cards it holds. I'm guessing it starts with a different seed for the random hands dealt at the beginning of each simulation. This is as it should be. You don't want the random hands to all start at the same place. This risks the hands under study becoming more predictable and computer actions could become more predictable if you had enough data.

Instead, you want to adopt a little bit of poker philosophy and become a little bit unpredictable. For example, if I know the computer likes to cash aces on the opening lead, I have an edge all through the hand.

April 8, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Joe Hertz makes some interesting comments (at least I find them interesting).

For my part, I find it hard to believe that Hartman would sacrifice his career just to satisfy a whim. But on the other hand, I find it hard to believe that he could be so inept at public relations. The only thing that sounds even moderately plausible (to me) is that either you've pissed him off somehow, and he has put his own personal feelings above the interests of the the ACBL and his career, or he can get it done more cheaply elsewhere, and he refuses to say so, because that would make his initial handling of the contract look foolish.

But Joe brings up a third interesting idea. His organization is out of control, doesn't know what it's doing (at least in a documented form) and he doesn't want to admit it.

But apparently he isn't talking. So let's put you on the grill instead. As you know, I'm not the most friendly of inquisitors. But here is a chance to layout what you want, and what you think should happen in the long run.

1). If the ACBL paid the additional 10% for the copyright, would you accept it and give the ACBL sole possession?

2). What do you want out of all this? Your name cleared? Do you want more money? How much more money is necessary before you think you can complete the contract, everyone will be happy, and the contract is closed out?

3). Assuming the ACBL can find other software contractors that can match your capabilities and at similar cost, how much money (time) will be lost turning what you've developed over to someone else? You need to be careful on this one. If your cost is too high, then why isn't your software more maintainable? If your quote is too low, who needs you?

4). As I read the original contract, you were supposed to duplicate the functionality of ACBLScore. Did this include DOS? Did this include all the macros that Horn Rapids (HQ) uses? Do you have any document that a layman can understand showing your original obligations? If so, why isn't it available?

5). Did you agree to a fixed contract and date? If so, how could you do that without complete requirements?

When you first published material on the Web, you basically said that ACBLScore+ would show up when it was ready, and the date was impossible to predict. When the ACBL later said, “We are terminating Nic's contract because he didn't meet the deadline”, it sounded duplicitous. What deadline?

6). Did you ever do a cost/benefit analysis? If so, how much money have you saved ACBL if the contract is terminated at this point in time. What will the yearly savings/benefits be in terms of dollars?

7). You didn't get to finish. So a fairer question might be, how much more money will you need to finish (worst case) and what will the annual benefits be to ACBL when you are finished?

8). How much skin are you willing to put into the game? What has to happen before you are willing to say, “I will meet this contract for X amount of money, and if I don't, I'll eat all my costs”. I realize that it would double your prices to go fixed cost, but what are we talking about here, and what would such a contract look like?

April 8, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
My understanding,
Each time they lead they simulate 100 hands or so (just a guess) to see what the best lead is according to the simulations. But 100 hands isn't enough. Since hands are chosen randomly for each simulation, they don't always get the same result and they don't store their simulation, and why should they? Best to keep the opponents guessing.

April 8, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
You've probably heard this one. But at a previous company I worked for each time a director retired he would leave 3 envelopes in his desk for the new incoming director.

The first envelope was to opened when the new director had a very bad day. Inside was a note, “Blame your predecessor.”

The second time the new director had a really a bad day he was to open the 2nd envelope, which typically said, “Re-org.”

The third time the director had a really bad day he was to open the 3rd one. It said, “Prepare 3 envelopes.”

April 8, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
I've spent a lot of time “discussing” my ideas on Bridge Winners. I'm not going to count that as time spent on the project – although in real life I would have to.

Already I'm at a critical juncture. What is an event? What is a game? Is a club game an event? Or can only tournaments have events? Can a session include several different events? Can a session include several different games? If you're trying to develop clean code, it's best to define these things up front.

The current version of ACBLScore starts with a “splash” screen, which really isn't a splash screen because it doesn't serve the purpose of stalling until the rest of the application is ready to go. I'm going to ignore it for now (I'll be ignoring a lot of things as I start out).

Typically, when a club manager powers up ACBLScore, normally he wants to start a new game, but occasionally he wants to change results from a previous game.

When ACBLScore powers up, after displaying the “splash” screen, it has a menu that is general in nature. One of the menu items is “Game”. If you select it, you either want to start a new game or see old games.

There is an item on the main form called Movements. This doesn't manage “movements” for a particular game (because no game has been selected) it manages a library of movements. There is also a menu item titled “Database” which can be used to maintain the database for all club players, update player information, and so on.

It strikes me that there are general tasks (maintaining databases of players, clubs, movements, and so on) and game specific tasks (identifying the specific players, specific movement, and specific club that is hosting a game).

I'm thinking, (similar to the Nicholas Hammond approach that I can see from UTube) that when ACBLScore powers up, the most user friendly action is to display a list of previous games that are on file, and provide a button that says “Start New Game” or similar.

In Nic's application, if you start a new game (the new game may turn into several sections) you get a new tab at the top of the form that services each game/section. If you click a previously identified game, you get another tab for the previous game. For club games this works really well, because you're probably only going to have 3 tabs active at most in 90% of the possible scenarios. Even if you get 10 games (sections) going at the same time, tabs is probably the best way to go.

But this spoils my original master scheme of using tabs for “general purpose” functions. One tab for games, one for the people data base, one for the club database, one for the movement database, and so on.

One thing I could do is adopt the look and feel of Microsoft Outlook. When you open Outlook, you get a list of the most current incoming messages (e.g. games) – with tabs on the top that addresses general functions. If you click on a specific message or ask to create a new message, another window opens up – almost a separate process. If you are working on 3 messages at the same time, you have 3 to 4 open windows.

In the case of a futuristic ACBLScore (which I'll call Bridge Wizard), each time I ask to open a new game, or click on an old one, a new form could pop up that services that game, until the form is closed. But then I get back to my previous question, “what is a game?” If I have 2 to 4 sections playing in the same time slot and the same event, is that a game? I think it is. What if a club is running 2 sections of their regular game and a Newcomer section as well? Is that one or two games? Let's say I have 4 games (different kinds of events) going on simultaneously? Will a director want to switch back and forth between 4 windows if he is entering names and later scores, manually? I think it could turn into a mess, but thankfully I've never been in that position.

My thinking is, that regardless of how I define these things, the director is the most important person the application must serve. The director must be able to describe how pickup slips, or travelers, or bridge mate information is going to come in, and a screen must be presented that allows the director to enter scores as efficiently as possible, depending on those circumstances.

I'm thinking that a session represents a time slot (Tuesday Afternoon for example). An event is something that may have one or more sections and that may occur over one or more time slots (perhaps a club game, or perhaps the Nicholas Hammond Gold Rush pairs on Saturday). A game consists of all the sections that are joined together for a single time slot of an event (the Afternoon Session of the Nicholas Hammond Gold Rush Pairs).

But what really matters to a director, if he is going to be manually entering scores, are the sections for the time slot that he is responsible for. It doesn't matter if he is servicing one game or 3 games. If he is entering scores manually, he wants the screen for data entry optimized to match his task at hand.

I may be way wrong, but I'm thinking that if 2 directors are servicing many sections, each director could have a computer devoted to the sections he/she/they are responsible for, and 2 programs could be running independently, each responsible for some number of designated sections.

So I'm thinking that for each copy of “Bridge Wizard” that is running, as a maximum there will be 2 separate forms that are running for each copy. One form will be tabbed across the top for general tasks (such as add player to database). The other form, which might be active, will be tabbed across the top for specific tasks that a director might perform for a single session. The second form might support any number of sections/events/games that occur within the same time slot. One of the tabs will support score entry, and it's form will be optimized for the task at hand.

If this is all – like totally not interesting, perhaps I wrote this more for my own benefit, to clarify my own thoughts.

If you have an opinion regarding this tome, feel free to comment, and I'll try to ignore you unless I need clarification of what you're thinking.

April 7, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
I'm guessing fresh rewrite versus modification did cost $1M to start with?

But you tell me. What significant new functionality was added? Does replacement of a database count as new functionality?

Any way, if I'm taken seriously, which I doubt, I promise to be a good boy and make the code easy to maintain. That is actually one of my greatest strengths as a programmer.
April 6, 2015
You are ignoring the author of this comment. Click to temporarily show the comment.
Michael, you ask the critical question.

I didn't want to get into this. It's water under the bridge. I had vowed to keep quiet on this site and just focus on my little project and report in occasionally. I'm not very disciplined.

But this is the big difference between what we were proposing and Nicholas. As I understand it, Nicholas's program operates with assistance from a browser. This makes it universal, as long as the people who make browsers behave themselves. Even if they don't behave, steps can be taken to compensate. This lessens security issues because the application stays inside it's own little “sandbox”. And theoretically it's easier to deliver. There are some disadvantages as well. I'm not going to discuss them and get into a food fight.

Unfortunately, to convert ACBLScore, Nicholas faced a “startup cost” of perhaps $1M, just to get his software to the same functionality as the old ACBLScore, to make it browser compliant.

In my view, Nicholas was essentially saying, we'll need about $1M just to get to where ACBLScore already is, but then, because it will be browser compliant, the rest will be gravy.

Different strokes for different folks. Our proposal was, “we'll stick with the existing code base, your startup cost is $0. Any new features you want will be priced out from there.

If browser technology is used, theoretically cross platform capability comes for free. I question that, but it's close.

In my mind, what people were overlooking is that the compilers are racing ahead as well and getting more and more sophisticated and less expensive (in the case of Lazurus free) and cross compile capability is getting fairly cheap for compilers. Depending on a specific cross compiler is risky for a project, because there is no guarantee. But a $1M startup cost embodies a very significant risk as well.

If you talk to Greg, he'll say browsers are the way to go. I can line up others that would disagree, but once again, in my opinion, it is too soon to make a final call.

But this is the main difference. Our proposed ”start up“ costs were minimal, and we felt we could cross compile, modularize, and clean up the GUI with a piece meal approach that would be less expensive. And that included cross compiling the program so it would run on a MAC, if the ACBL wanted to pay the cost.

What frosts me is that the only reply I got was from Jay Baum, who seems like a nice fellow. ”Pascal is not a modern language so your proposal is essentially void."

To me, $1 Million seems like a lot to pay just because you don't like Object Oriented Pascal. If your start point for upgrading ACBLScore is $0, that leaves a lot of money for improvements before you get to $1M.

But this has raised another question in my mind. VB, Access, .NET and even Object Oriented Pascal are pretty easy when it comes to talking to a database (databases themselves are not simple) and doing GUI stuff. What would happen if they were brought to bear instead of browser based technology?

I don't know, I'm curious, so I'll play around until I feel I have some sort of answer.

April 6, 2015

Bottom Home Top