It is now four months since I fell ill with some minor but annoying problem that gave me splitting headaches all day long and left me washed out. Thankfully those are nearly gone, and although I am still rather weak, I now believe that I will make a full recovery. It’s been an expensive time, sitting at home, but there was no alternative. I have also been unable to do very much blogging, as regular readers will know.
One of the things that I have wanted to do is to translate from Latin a couple of “saint’s lives”. The last time that I did this, I became very dissatisfied with my limited knowledge of Latin syntax. My knowledge of Latin came from my schooldays, and was mainly a matter of grammar – amo, amas, amat etc. I did retain knowledge of structures like the ablative absolute, and the accusative plus infinitive for reported speech. But it became clear to me that I ought to work more on this.
When I work with Latin, I always use a parser to do the vocabulary and grammar, because my memory has started to let me down at times. In fact I use QuickLatin, which I wrote back in 1999. It seemed to me that I needed to add syntax information to this, so that it would warn me of common constructions.
In order to do this, I had to do some very serious work on the code.
My first encounter with parsers was with Whitaker’s Words. This was written by Col. William A. Whitaker (d. 2010), and was written in the military language Ada as a command-line application. I wanted something that worked in Windows.
In February 1999 I was recruited to work on a military project where there was actually very little to do. Anybody with experience of government programmes will know that these are incredibly wasteful and slow. In this case somebody had decided, sometime around 1992, that a computer system was necessary to list the whereabouts of spare parts for a certain type of bomber. The idea was that cost savings could be made if, instead of stocking all the spare parts necessary, NATO allies could borrow them from each other. So if the Soviets invaded, and somebody needed a spare part, then they could look at this system, find that the Italians had one, and borrow that. As you would, with the Soviets bombing every road and railway and the tanks rolling through West Germany.
Obviously this was a completely bonkers idea. It could never work. Who thought of it, and why, I have no idea. There was also the little matter that the Soviet Union had collapsed a couple of years earlier. Probably there had been several years of planning, and the process had continued even though the purpose of NATO had disappeared.
The system was not a large one. In my professional experience, it could have been completed in three months by a team consisting of a team leader and three programmers.
When I joined, in 1999, there was a team of two team leaders and eight programmers. The software was all years out of date. The project itself was seven years late. I worked there for a year, doing minor fixes, and I probably didn’t make it any worse. What became of it I know not.
Sitting in that office, bored to tears, my thoughts turned to Latin. I ended up reading the source code for Col. Whitaker’s masterpiece and implementing a version of much of it in Visual Basic for Applications, in a MS Access database. This was obviously the wrong tool, but it was all that there was on my desktop. Later I transformed this into Visual Basic 6, and this formed the code base for QuickLatin.
VB6 is now long gone and dead. Even installing it on Windows 10 is difficult. So I had to convert and rewrite the code into Visual Basic .Net, as I have mentioned in previous posts, so that I could move forward. This I did, and I have spent most of my active time in the last four months working on this.
It was also an opportunity to chop out some very tangled code. Not all the language features used in Ada were available in VBA, nor even in VB6, so I had to code around these. In fact some are still unavailable in VB.Net.
Col. Whitaker continued to work on his software after 1999, however, although I did not revisit the code. Recently I came across a feature that he had added which I felt should be part of QuickLatin also. So I have been looking again at the Ada source code, and trying to convert some of the bits to VB.Net.
The Ada code is remarkably difficult to read, and always was. The colonel knew what he was trying to do, and did not need to write notes. The reader is not so fortunate. I saw a line of code yesterday which read:
IF K = NK THEN
and I felt rather hard done by! Who or what is K and NK? (After some examination, I decided that it was a stupid way to test something that I could do better another way).
But the colonel did his time in days before most modern coding constructs existed. His code isn’t really structured in the way that any professional code written after 1985 would be. The idea of test-driven development only appeared in the last few years of his life. For Whitaker the Array was his tool; the idea of the HashMap does not seem to have registered. But these are not criticisms; rather they are a reminder of how far we have come since I started coding.
It is quite interesting to work again on the colonel’s code, after 21 years! I shall keep plodding away. At least VB.Net is a far better language to work in than VBA ever was.
Writing in VB6 in 1999, I wrote the user interface in WinForms. I discovered today that this too is obsolete – I should now use WPF, whatever that is. I will need to check whether there is an even more recent tool, in fact! In a way this is a relief. But it will all take time.
However I have started looking for Latin language constructs. My guide in this has been Morwood’s Oxford Latin Grammar, which has a very readable section on syntax. I have also found that simply googling a construction often brings up very readable material. I discovered “Vir drinks beer” which is focused on Latin-to-English translation, as I am. A day or two ago I discovered Michael Fontaine’s Hack your Latin articles.
I’ve also been reading verses from Genesis in the Vulgate. I downloaded to my phone the “sample” from Kindle, which was free and gave me more than enough stuff to read. I find that if I lie on the sofa and read, looking at the Latin, I find myself wondering “ah, that’s gone into the subjunctive – why?” and such like. Again I can google bits of it. So it seems to be really beneficial to do. I can only do this for a few verses at a time, tho.
Meanwhile I have started to look at job adverts. I would like to start earning again. I would like to be able to afford a couple of expensive foreign trips once I am fit enough to do them, if coronavirus does not make visiting airports a rather chancy business. Unfortunately there are some tax changes here which are due to take effect in April. These are already disrupting the industry very badly. It looks unlikely that I will be able to afford to work away from home, if I must pay basic-rate tax at 50%, and then pay for hotel rooms out of taxed income. Yet my work has always meant working away from home, for there is little work locally. So I wonder whether I shall be forced to retire.
There is much to think upon. Meanwhile, I shall return to working on the Latin.