14-XI-1994.

Bački Breg.

I see on 15th a version of gnalog.prg (nalog - a (work) order), which Grgi invented in 1991 when he was too lazy to fill the workorder by hand. Instead, this would gather the names of the files which were edited today, and he'd use that as a reminder (or actual text) of the order, which would then be printed and given to the customer to sign. I liked that (talking about lazy programmers and thinking of Todor) so I kept using it and later added a lot to it. Over time it grew into an app called Kosta (short form of Constantine, but derived from "ko šta" - who what - i.e. who did what), which served as workorder last couple of years in DBA and which I later revamped in Avai. The transportation code was interesting there, it was three digits, where 574 was bicycle (the code on my bike's lock) or the last three digits of the car tag (if field work) or phone number (when modem session). The app is worth as much as data in it, and Kosta was hit and miss. Simply not everyone got into using it, the salary was not tied to what you did and where you went, and even when data were entered, it was in waves. Two months nothing, then several months when almost everyone does, then it tapers off, nothing for a few months, then again. The history is, at best, partial (and I enjoyed writing this in serbian, knowing that partial will also mean biased in english :).

This day's version of gnalog.prg and a bunch of other pieces of GenerAll exist purely because all these have their own tables, and if absent these tables needed to be created - well, every piece created its own, and it was easy to forget one of those until it would be needed. This day I wrote gen_opis.prg, which created all of these tables, at once or piecemeal, and all these pieces will call that, henceforth. A bit of neatness...

In PolC the form for materials, probably lab needed it, and regions (of body, not geographical), for photographers (i.e. x-ray, ultrasound, CT).

This week I introduced expression type in opisfmm4 in four places - initial value, display function, validation, when. These expressions are inserted in appropriate places in the statements in generated code, and each may be a simple expression or a function call. Both would be written in the same text field in opisfmt.dbf (previously, actually in the .scx file now) and the difference would be in function taking multiple lines. Mostly - some functions can be one-liners. So I'm actually using the indicator field from the .scx file, zero means it's a function, one means it's an expression. Then opisfmm4 will insert the expression as is, and for a function it will invent a name, insert a call and generate the function (literally, write "function "+name, then copy the lines below that). No we have four kinds of those places with types.


Mentions: Avai, DBA, Ferenc Gereg (Grgi), GenerAll, Kosta, PolC, Todor Čkrebović, in serbian

3-VII-2021 - 7-III-2025