01-VIII-1989.

I just had about enough of having to dive into menu.dbf (a self-referencing table, with child keys) to find what I'm looking for, so I wrote this pmenu.prg, which would generate (recursively) a simple text file, walking down the menu tree, with indentation. It would be later followed by zmenu, which would also scan the opisfmt.dbf (metadata for forms) and list all the validations involved in forms. Decades later, it would be menudoc.prg, which did the same thing, just with a different underlying table.

At this time, DBA was abuzz with activity - we got first big customers that spring, after the fair, and the one Yugo we had was counting kilometers rapidly. The offices were in the Youth home, actually just one room with a few tables and as many 286 machines we could muster. They'd usually get sold really soon, so we quickly learned to not trust the disks. Anything you did on a machine may be gone by the time you come back to the office, the machine being sold. You may retrieve it next time you visit that customer, they wouldn't even know you had any of your stuff on it, but that would take days. So have your own stash of floppies (5,25 inch, DSDD, 720k formatted mostly; a couple of years later we started getting the HDs) and carry it with you.

Later in the month I got into studying Sale's code generator. It was using Set Alternate to (file), which was just a way of echoing the console output into a text file, with a mandatory EOF marker in the end. The way to build a form was to draw it in dbase II (or was it III) first and have it save its screen file into a .fmt (format) file, which would then be, in mFoxPlus 2.1, imported into a dbf, and then that dbf would be scanned line by line and a set of routines would be generated - with @say and @...get commands, little routines to refresh this or that field after some actions, routines to open the tables, write the record, perhaps even some validation (or did that come later). The code was rather convoluted and it took me a week (of working at home, on an XT I borrowed) before I started trying to improve things. But within a couple of months I managed to do some.

This was dad's last month of work, he retired as of 31st. He did have 40 years of work, having gone to work right after high school and vojska. He didn't really have to, the job he had was going smoothly and he was appreciated there, but his position was estimated to be a good stepping stone for the next guy whom they prepped for a bright future, so he was told to just take the retirement and leave the scene before the scene turns ugly. At this age he didn't really wish any such excitement, and he was actually ready - having bought that vineyard three years ago was a move in exactly that direction. So, forget the cadre games, forget the infighting, go tend to your vines and distill more brandy.


Mentions: Aleksandar Raskov (Sale), DBA, vojska, in serbian

28-VIII-2011 - 16-V-2026