Join Bridge Winners
ACBLscore"+" - a short history

After years of silence, I have finally decided to tell my story about my experience with the ACBL and the program which is horribly misnamed ACBLscore+. It is far past time that someone told the truth about this.

I am an experienced software developer with nearly forty years of work in the industry. I have written programs in many different languages for many different purposes. My primary language is C++. In July of 2013, the ACBL posted a listing looking for a C++ programmer and I applied for the job. I got a brief interview with the then-Director of IT. To my surprise I discovered that the posting in question was not actually for a C++ programmer, nor was it is to work for the ACBL.

Instead I was referred to a certain Nicolas Hammond who was running a project called ACBLscore+. Its supposed purpose was to replace ACBLscore.

A brief overview of ACBLscore is worthwhile at this point. It was written in PASCAL in the 1980s and ran under the DOS operating system. The primary author was Jim Lopushinsky, a Canadian from Edmonton Alta. Around 1990 he sold the program to the ACBL for about $10000 and moved to Memphis to work on maintaining it. He retired about two or three years ago and since then the program has been orphaned. I have nothing but admiration for Lopu (his nickname) and his work. For the time, it was simply brilliant. DOS, as old-time Geeks will know, was limited to a 640K address space (modern computers have billions of times more). 640K was clearly not enough for the task at hand so Lopu wrote ACBLscore as a whole series of programs. Depending on which function the user invoked a different program would be launched. It would perform its job and update some disk files, primarily the ACBL game file, but there are others. Once it was done, it returned operation to the main program. All of this is completely transparent to the user. There are roughly a dozen secondary programs incorporated into ACBLscore and the user is completely unaware of their existence.

By the early 2000s, this DOS architecture was getting old and the ACBL hired someone (I don't know who) to make a Windows version, also written in PASCAL. In fact, many of the same source files are used by both programs. This project cost around $500,000 and was partially successful. Still, the Windows version lacked important features and, even in comparison to the DOS program, it was astonishingly ugly. There are also features in the Windows version which are not available in the DOS version. Fortunately both versions use the same files to update their status so tournament directors typically use both of them when running a game. Note well that this is exactly how Lopu's original product worked, except for the important distinction that in Jim's version this all ran under the hood. Users never knew that multiple programs were running whereas it is very clear to Directors who run games today. I don't know this but I am fairly sure that Lopu wrote all of the actual code. Who got the $500,000 is another question. He clearly didn't.

OK. Enough of that.

To re-iterate I was re-directed to Nicolas Hammond to work on ACBLscore"+". My interview with him was a little weird. He had no interest in my programming background or my skills. Instead he seemed to be much more focused on simply hiring me. He explained that he wanted part-time bridge people (why for the love of God would this be relevant?) to work on the task and simply told me what the rate would be. $60 an hour (as I understand it the ACBL was paying him $125 so, from his perspective, the more people working on the project, the happier he would be). While this was less than my usual rate, I did want to work for the ACBL so I accepted to see where this would lead.

The program was written in Ruby, a language I did not know, and C, one with which I was intimately familiar. The C code was utterly atrocious and, as I started to learn Ruby, I came to realise that it was equally horrible. I have never seen a program which was so badly written, and I have seen a lot of badly-written programs. So, after a month of part-time work, I decided that I wanted nothing more to do with this crap. I resigned and told Nicolas that I didn't want any money as I had done nothing of any value. His response was to say, sorry the check is already in mail. I cashed it so about $1400 out of that two million went into my pocket.

At some point while I was learning Ruby and the innards of ACBLscore"+", I suddenly realized what the language is used for. Ruby is used to create Web Servers, especially Apache Web servers, which run under Linux. As people know, ACBLscore is a user application which runs on PCs, often ancient and often without access to the Web at all. At that time, most of the ACBL's computers were running under Windows XP. Yet ACBLscore"+" was a web server!!!! How completely bizarre is that? It was obvious that this architecture would never work, even if Nicolas and his semi-retired gang of clowns could actually write decent code.

I'll just mention a couple of the more basic issues which made this architecture impossible. First off, the Ruby environment required around 700 Mbytes of memory to even launch and yet the program was expected to run on old and/or cheap computers with less memory than that. The official minimum requirement to run Score"+" was 500 Mbytes of memory. Second, and even worse, it could not run as a stand-alone executable. Instead it required a Web server to be installed on the host computer together with tens of thousands of support files and all of the source code. While this environment might make some sense when used in a Data Centre under the close control of the programming team, it is an obvious recipe for disaster when distributed out to thousands of users. This is completely aside from the legal and technical issues which distribution of the source files would imply.

In September, I met with three of the top people at ACBL headquarters and pointed out these issues. Nobody disagreed with what I was saying but it made no difference. It was made very clear to me that nothing would change until the money ran out. This would happen at the Board meeting at the upcoming 2014 Spring National.

Still... It was clearly necessary to replace ACBLscore. So I decided to create a demonstration application, written in C# and C++, which used ACBL game files to run a game in real-time. It took entries from the file, showed the state of the game as new scores were entered, and updated the game file to reflect the state of the world. IMNSHO. it was pretty sexy. It took about 80 hours to write and was already closer to the objective than Score"+", with its millions of sunk costs. AFAIK, I am the only person, aside from Lopu himself, who has ever written software which actually writes to a game file. Some people. such as Jay Whipple, have written stuff which reads them. I showed this prototype to the same ACBL people in October of that year.

Astonishingly no one at the ACBL had ever received a copy of the Score"+" code which ever did anything. Instead, Nicholas would give demonstrations which he ran from his laptop (a MAC, not a Windows machine). To my knowledge, none of these demos ever actually worked. I watched one at a club game in Memphis. This was for a thirteen table Mitchell. As any director knows, this is the simplest of all possible movements. The number of tables is exactly half the number of pairs and half the number of boards in play. The progression of the boards and the pairs is regular. There are no bye-stands, no skips, no relays, no half tables. In short, there is nothing that would complicate a program managing the game. The demo didn't work. In November, the same three people went to watch another demo at a tournament in Atlanta, Nicholas' home town. That didn't work either.

Then the money ran out.

Apparently the demo I had made the previous fall impressed someone at the ACBL because in April I was hired as part of a team whose purpose was to decide if anything could be salvaged from the Score"+" project. My particular task was to create an installer which would actually put Score"+" on a target computer (remember that Hammond had never actually delivered anything of the kind). Most of my time was spent was spent trying to find software which could work with ten of thousands of files. WiX, the Microsoft installer, clearly ain't it. It requires individual handling of each file by the programmer. InstallShield, the industry leader, was somewhat better as it could work with whole directories. It took about five hours to construct an installer using it. I eventually found a product from Eastern Europe called Advanced Installer which could swallow up the whole thing in about ten minutes. After weeks of working with it and making it gobble up all the Ruby environment files and the 400,000 lines of Score"+" source, I actually managed to make this work. It took an hour to run during which it dumped about 2 Gbytes of crap unto the victim computer. What's more it actually managed to launch Score"+" when it was done. 

While this was (sorta) successful it didn't address any of the bigger issues. Somebody suggested running Score"+" in a virtual machine so that we could keep the source code away from prying eyes. Ancient computers are not able to run virtual machines so that idea was out. The main point was, of course, simply that Score"+" was a hideous piece of crap and nothing we did could change that. So it was junked. Hammond pretends to this day that it was junked due to legal issues. He is lying and he has to know it. It was junked because it was a hideous piece of crap based on an absurd architecture.

If he was even the slightest bit competent, Hammond would have designed something sensible, in an environment like C#/WPF or Java instead of this absurd idea of a personal Web Server. He would have put together a proper programming team instead of hiring retired bridge players from all across the continent. Not that a team was really needed. Lopu proved that one decent programmer is enough to perform the job. Furthermore Jim's work should have been leveraged to create the new product, just it is was in the Windows version from the early 2000s. Pathetic and ugly as that was, it at least worked. If the ACBL had been even the slightest bit competent. Hammond would never have been hired. Since neither were competent, two million dollars were thrown out the window and Hammond got rich.

I spent the next few months leveraging the demo software I wrote to make a program which read out game files and converted them to XML. This, I believe, morphed into the guts of ACBLlive. I'm not fully sure because my ACBL career, like Score"+", ended that year.

55 Comments
Getting Comments... loading...
.

Bottom Home Top