This is one of several user guides on specific topics. The directory for all user guides is here.
Hey, neato! It looks like I just generated 16 deals. If I didn’t already know that, I could guess it because there’s a deal in the panel, my Number of Deals off to the left is 16, and my Dealer/Vuln in the panel is West/E-W, which corresponds to the 16th board on the standard duplicate bridge scoresheet.
We’re good to go! Now I can save those deals to a single PBN or LIN file and go play them in some other software.
But wait! What if I want to review the deals before going through the process of saving them to a file and loading them elsewhere? What if there’s a fly in the ointment? What if (shudder) one of the deals is less than exceptional, or even grossly inadequate?
Until now I would have said, “Gee, I hope you like reading raw PBN or LIN files. Toodle-oo!” That’s because, verbose user guides to the contrary, we here at Bridge, Out Ahead have something of a minimalist ethos (that is, we are lazy). That has led us to declare up front: “No web frameworks! Plain HTML with a light dusting of CSS for me! One language (Javascript) to rule them all! Lint checkers and debuggers are for wimps! Just bridge deals! The user guide is a trap—it’s really a blog! Run for your life!”
Wait. We didn’t yell that last one. The guide is a series of blog posts, but no one is trapped here. Of course, you can’t win the Bridge, Out Ahead weekly door prize if you don’t read all the clues in the user guide, but stay or leave: it’s your choice.
Implicit in that lazy/minimalist rallying cry is that this program shall not turn into CRUD. I don’t hear that term much anymore, but it used to be alleged that every computer program that included the saving and reloading of data would eventually turn into a Create, Read, Update, and Delete application. Some would do this poorly or in a non-standard fashion. Application development tools and frameworks sprang up to enable mass production of programs that had all the CRUD features and, quite often, exactly zero charm and a dearth of interesting functionality. It was a race to the vanilla, standardized bottom. For years in the 1990’s, everything looked like an Access or FoxPro database program, then in the 2000’s everything tried to look like the Content Management System-of-the-week via Django or Rails or somesuch doohickey that I never learned (I was a mainframer during all of that. We rolled our own green screens and laughed all the way to the bank; pity our poor, vendor-locked customers).
Generic, mass-produced CRUD is fine for some folks, but it was not for me. Hence my eschewal of frameworks. I want my program to reek of one thing and one thing only: bridge deals!
And I am proud to say that my program does, indeed, reek.
But even I, an avowed eschewer of CRUD, would like to at least wander among my deals when I have created great batches of them. Not, mind you, with CRUDdy intent. I may have “C”reated them, and I may like to “R”ead them, but I would never use my program to “U”pdate or “D”elete them. You have always been able to “R”ead deals back in via files, but you could only see that last deal in the file on the generator page. How can you not only “R”ead but also view multiple deals from one file?
What this minimalist developer did was give you the ability to toss your deals into a web page (an HTML file, to be precise) that looks suspiciously like a PBN file. You do that with the “Save Navigator” button, shown here at the end of the row of “Save” buttons:
Once it is saved to your Download folder, you can move that file anywhere you like. For instance, if your multiple deals relate to a lesson your are building or a set of deals related to a convention, then move the “Navigator” HTML file to your folder for that project.
Then, no matter where you store that HTML file, if you double-click it you should see in your browser a nifty, pleasingly featureless page of deal data, with links to the shaper, the recipe, and the deal itself for each deal in the file. Clicking any of those links will open the Bridge Deal Generator in a new tab, with the thing you clicked on loaded up. Loading from shaper and recipe links will set the dealer, vulnerability, and number of deals on the generator to whatever they are in the shaper or recipe, so careful what you generate after clicking one of those links—you might load an innocent-looking shaper that happens to have Number of Deals set to 128, and then every time you click “Generate Deal” you will get 128 more. If you just wanted to experiment with the reloaded shaper before making a lot of new deals, set the Number of Deals back to “1” before generating again.
Clicking on a deal link in the navigator, however, does not change global settings in the deal generator. It just populates the Generated Deal and Recipe Maker panels. Why? Because those global settings are fundamental to shapers and recipes—the global settings, including “Rotate” are saved when shapers and recipes are saved. However, when you save a deal, either as a link or as a file, it contains just the dealer and vulnerability for that one deal.
Now, be aware that those shaper and recipe links are tossed in whether or not you used the shaper or the recipe maker to design and generate your deals. For my example with 16 deals, I used just the Random Deal button with nothing in particular in the shaper or recipe maker. If you are making a fine set of deals for a tasteful and discerning audience to peruse via your Deal Navigator page, you may wish to pay close attention to ensure that your shapers and your recipes reflect how you made your deals.
With that, we have “CR” (Create and Read) of CRUD covered for both individual deals and for multiple deals in a file.
As for “UD” (Update and Delete) of CRUD, my program will never do that. My hope is that users will do as I do, and build up a 1library of shapers and recipes from which all manner of deals can be generated. It is easy to reload shapers and recipes and use them as the basis for new ones. Then you can use your file system to delete any files you don’t want hanging around.
Finally, I showed above that double-clicking a Navigator HTML file in your file system will bring it up in a browser as a web page. That lets you see all the deals in a list, with links, and select the one you want to see in my program, but it does not reload all of the deals into memory (if, for instance, you wanted to save the whole set as a LIN file). Don’t you wish you had also saved the set of deals in PBN format when you made the Navigator? Well, good news: the Navigator HTML file also works, in my program at least, as a PBN file. So you can use the “Load from deal…” button of my program to reload the deals from your Navigator HTML file; from there you could then save them again as a PBN file or as a LIN file.
That was close. I almost wrote “curated library” but we here at B,OA also ardently eschew the word “curated”. It’s not that we don’t curate; we just don’t say it. We are trying to avoid seeming too hip. Our branding guy told us that hip is itself no longer hip, so we aim for a nondescript middle ground.