From my diary

I’ve been continuing to work on QuickLatin.  The conversion from VB6 to VB.Net is horrible, but I am making real progress.

The key to it is to change the VB6 project, so that it will convert better.  So for instance I have various places at which I make a raw Win32 API call, because VB6 just doesn’t do something.  These must mostly go.  I replace them with slower equivalents using mainstream VB6 features.  In some cases I shall simply have to rewrite the functionality; but this is mainly front-end stuff.

All the same, the key point is to ensure that the VB6 project continues to work.  It is essential not to allow this to fail, or develop bugs.  This is one area where automated unit tests would be invaluable; but of course that concept did not arise until VB6 was long dead.  So I have to run the program manually and do a few simple tests.  This has worked, as far as I can tell.

The objective is to have a VB6 project that converts cleanly, and works out of the box.  It may be slower, it may have reduced functionality in peripheral areas.  But the business logic remains intact – all those hard-crafted thousands of lines of code still work.

It’s going fairly well.  I’ve been working through known problems – arrays that need to be base 0 rather than base 1.  Fixed strings inside user defined types have to go.   There is a list on the Microsoft site of the likely problems.

Today I had my first attempt at running the VB.Net 2008 Upgrade Wizard.  It failed, as I expected it to do.  The purpose was to identify areas in VB6 that needed work.  But the converted code only had 37 errors.  Only 3 of these were in the business logic, rather than the front-end, and all were easily fixed in VB6.  There were also a large number of warnings, nearly all of them about uninitialised structures.  Those can wait.

So my next stage is to do something about the 34 front-end errors.  Probably I shall simply have to comment out functionality.  Splitters are done differently in VB.NET.  The CommonDialog of VB6 no longer exists to handle file opening.  That’s OK… I can cope with rewriting those.

It has reminded me how much I like programming tho.

In the middle of this enormous task, of course, there are no lack of people who decide to email me about some concern of their own.  So … polite refusals to be distracted are now necessary.  I hate writing those.  But a big project like this can’t get done any other way.


From my diary

It’s been an interesting couple of days.

I was working on the Passio of St Valentine, and I really felt that I could do with some help.  So I started browsing grammars.

This caused me to realise that many of the “rules” embedded in them were things that you’d like to have pop-up, sort of as an informational message, when you were looking at the sentence in a translation tool.

This in turn reminded me that my own morphologising tool, QuickLatin, was available and a natural candidate for such a thing.

This is written in Visual Basic 6.  I wrote most of it, actually, in Visual Basic for Applications, inside a MS Access database, during 1999.  (The language choice was dictated by the machine that I had available at the time, which had no development tools on it).  I then ported it to Visual Basic 6.  Microsoft then kindly abandoned VB6, without even a migration path, some time in the early 2000s.  This left me, and many others, stuck.  It is not a trivial task to rewrite 24,000 lines of code.

So where was my development environment?  I pulled out the last four laptops that I have used; I have them, because I keep all my old machines.  I found it on my Windows XP machine.  The machine started up OK!  In fact the batteries on the Dell laptops all started to charge, unlike a Sony Vaio which had Windows 7 on it.

The Windows XP machine had a tiny screen and was very old.  Could I perhaps install VB6 on Windows 10 instead?  The answer swiftly proved to  be a resounding “no”.  But I gathered a large number of tips from the web while doing so.

Then I tried installing VB onto my travelling laptop, which has Windows 7 on it, using all the info that I had.  The installation failed; but the software seemed to be installed anyway!

Then I tried doing it again on Windows 10.  This time I had a sneaky extra bit of information – to set the SETUP.EXE to run in Windows XP compatibility mode.  And … again it failed; but as with Windows 7, I could in fact still run it!

The process was so fraught that I knew that I’d never remember all the fixes and tips.  So I compiled all the bits together, hastily, into a reference guide on How to Install Visual Basic 6 on Windows 10, for my own use in days to come.

After two days of constant pain, I was at last in a position to work on the code!

But I wasn’t done yet.  I really would rather not work with VB6 any more.  Not that I dislike it; but it is emphatically a dead toolset.  My attempts to convert my code to VB.Net all failed.

But since I last looked, more tools have become available.  My eye was drawn to a commercial product, which Microsoft themselves recommended, by a firm called  The tool was VBUC.  You could get a free version which would convert 10,000 lines.  Surely, I naively thought, that would be enough for me?

Anyway I downloaded VBUC, and ran it, and discovered to my horror that I had nearly 30,000 lines of code!  But I set up a tiny test project, with half-a-dozen files borrowed from my main source project, and converted that.  The process of extracting a few files drew my attention to what spaghetti the codebase has become.  It was not trivial to just take a few.  This in turn made me alter the extracted VB code a bit, so that I could use it.

Converting the extract worked, but required some manual fixing.  However it did work in the end.

I was quite impressed with some of the conversions.  One of the StackOverflow pages had indicated that the firm were charging a couple of hundred dollars for the tool, back in 2010.  So I emailed to ask what they were charging now. then got a bit funny on me.  Instead of telling me, they asked me to tell them what I wanted it for.  I replied, briefly.  Then they wanted me to run an analyser tool on my code and send it in.  I did.  Then they wanted more details of what it did.  Quite a few emails to and fro.

By this stage I was getting fed up, and I pushed a bit.  They finally came back with a price, based on lines of code, of around $4,500!  That was ridiculous, and our exchange naturally went no further.

However I had not wasted my time, for the most part.  I could now see what the tool might do.  My code may be elderly, but some of the bits that were converted are basically the same throughout.  It is quite possible that I could write my own tool to do the limited subset of changes that I need.

One problem that was not handled well; QuickLatin loads its dictionaries as binaries, created by another tool of my own.  I found that VB.Net would not handle these, whatever I did.  The dictionaries would need to be regenerated in some other format.

So I spent some time experimenting with an XML format.  I quickly found how slow the VB6 file i/o was.  Reading a 20 mb file using VB native methods took 4 seconds.  Using MSXML to load the file and parse it into a linked list took 1.7!  I didn’t want the linkedlist method; but it was clear that the VB native methods were hideously inefficient.

I soon discovered complaints online that the VB.Net i/o did not support the methods used by VB6 and was even slower!  I’ve encountered problems of this sort before, which I got around by dropping into C++ and accessing the files through bare metal.  Clearly I would have to do so again.

Another problem that VBUC showed me was that VB6 fixed length strings were not really supported by VB.Net.  There was some sort of path, but it was horrible.  However there was, in fact, no reason to go that way; the file i/o, for which they were used, will have to change anyway.

I placed my code base under code control, using GIT.  Then I started cautiously making changes, checking that “amas” was giving sensible results – for unit tests were unknown in the days of VB6 – and committing regularly.  This proved wise; several times I had to go back to the last commit.

I spent quite a bit of time removing superfluous fixed strings from the code.  This was not trivial, but I made headway.

Something else I did, once I realised that coding lay ahead, was to rig up an external monitor, keyboard and mouse to my laptop.  I would have rigged up two, but there was no way to turn off the laptop screen – when you close the lid, the machine goes to sleep and that’s that.  On a commercial laptop, I’d set it to turn off the laptop screen and stay running.  Most graphics cards will support two monitors; the home laptops won’t support three.  Oh well.  But it was still better for serious work than using the laptop screen and keyboard alone.

Finally I started creating dictionary loading routines that would convert to VB.NET.  They are much slower; but I can optimise them when I get the code into VB.NET.  They have to change, come what may.  The key thing is to keep the program running and working at all times.  Take it slow.  Little by little If I take it apart into a million pieces, it will never get back together again.  Indeed this mistake I have made before.

Back in the 90s, automated unit tests, continuous integration, test-driven development and dependency injection were all  unheard of.  I have really missed having a set of tests that I can run to check that the code has not broken in some subtle way.  This again is a reason to migrate to VB.Net, where such is possible.  I did write test stubs in the original VBA, but there was no way to run them within VB6.  At least I have them still, and they can form the basis for unit tests.

So … it’s been a very busy few days indeed.  Nothing to show for it, to many eyes; but I feel optimistic.

The next challenges will be to change the other dictionaries over to the slow-but-safe method, and then remove all the stuff that supported the other approach.  This should simplify the code mightily.  Once this is done, then it will be time to attempt to convert the code.  Somehow.  All I need is time, and with luck I shall have some of that this week.

It is remarkable how far down the rabbit-hole one must go, just to get a bit of online help!


From my diary

When I was 11 years old, I was transferred to an old-fashioned northern grammar school.  This kept up the tradition of Latin and Greek, and Latin began at 11, and continued until 16.

The textbook used was Paterson and Macnaughton, The Approach to Latin.  This was actually the first volume of a three book series.  It continued in The Approach to Latin: Second Part, and there was also The Approach to Latin Writing.

I remember the Latin classes well.  It was a devil to learn, but useful to know, and I was fortunate to have an excellent teacher.

Schoolboys are hard on books.  At some time in my later years there, the school disposed of unwanted copies of the last two volumes, to anyone who would take them away. I picked up the latter two, and they lived in an old briefcase in my loft for many years until I brought them down a decade ago and shelved them with my Latin books.

There was no opportunity to collect a copy of the first volume – the only one I ever used.  But I was able to purchase a reprint in Cambridge in the late 1990s, from Heffers Bookshop, for £9.90.

These little books must have been printed in tens of thousands, but how many remain today?  Searching for copies online on Amazon and Abebooks, I was shocked to find that all these books are now sold for princely prices.  One copy was offered at over $1500 today, which is ridiculous.

I looked inside them last night, and took Second Part to bed with me, to read through the slender sections on Latin syntactical constructions.

The introduction states that they contain “a selected minimum of grammar”, and this is very true.  The vast bulk of the book consists of exercises.  Each bit of grammar, often half a page, is followed by two or three pages of exercises.  This is, of course, frustrating if you want hard information.

The actual grammatical content is very concise.  This morning I was reading a chunk of the Writing book, explaining something, and I wondered if there was a misprint!  I had to reread it two or three times before I could work out what they meant.  That the book was meant to be taught by a human teacher was evident.

I do not believe that my schoolboy self could have decrypted that sentence.  In this sense, it is not a good teaching book.  I know that my old teacher preferred Coles, Latin Grammar Simplified.

The exercises from The Approach to Latin I remember well.  They started easy and became harder and harder.  I loathed translating English into Latin.  But in fact, it is clear that the authors’ intention was to prepare boys to translate from English into Latin, doubtless for examination purposes.  This appears clearly from the grammatical material, now I look at it.

The limited syntactical material is not well presented.  But it caused me to think that I could extend the functionality of QuickLatin, my morphologiser, to flash up some possibilities whenever you see the word “ut” or “sicut”, or find a gerundive.  It wouldn’t be hard to do that.  At least, it shouldn’t be.

QuickLatin was originally written in 1999, during a long and pointless government contract.  It was written in Visual Basic 6, that much missed and easy to use tool that Microsoft sold at that time.  From time to time I have tried to rewrite it in something newer; but always I have had to stop, and go and earn a living.

Microsoft have never troubled to maintain their own tools, or to guarantee backward compatibility.  VB6 was phased out in favour of the incompatible VB.Net, almost twenty years ago.  VB.Net is now being phased out, with nothing to replace it.  I did attempt a rewrite in Microsoft Visual C/C++, and got so far.  When I came to pick up the project, a couple of years later, it wouldn’t even compile in the newer version of the tool.

Of course 1999 was aeons ago, by modern software practices.  Today everything is done with Test-Driven Development (although Microsoft never liked it, and their support for it in .NET was always rubbish).  Everything is divided into classes and objects.  VB6 stuff predates that.  It was always hard to work with.

Anyway, I’m stuck with VB6 code.  You can’t even convert it to VB.NET, incredibly.  Thus I’ve not put out a new version of QuickLatin in years.  But VB6 continued to work on Windows 7, as I recall.  I still have the disks for VB6.

It is apparently possible to install this on Windows 10.  But … for me at least … it has not worked.

This is why computers are frustrating.  You decide to do something and then, little by little, get led softly away from that into a Byzantine series of other tasks.

The task I want to do is translate some Latin.  To do this, I need to know more syntax.  To help with this, I’d like to modify QuickLatin.  To do that, I need to install VB6.  To do that… I need to find workarounds.  Maybe install a virtual XP machine.  Which means… yet more stuff to do.  All of which take time and prevent me doing what I actually wanted to do!

And so another day disappears.


Latin as it is spoke: some thoughts on Latin syntax

In the last few days I have been looking at the Latin text of the passio of St Valentine of Interamna / Terni.  It’s a while since I did any Latin translating.  But the process always involves difficulty.

These days it is very easy to determine the tense, number, case, gender and meaning of individual words, with tools like QuickLatin or Whitaker’s Words, or other morphologisers.

Likewise the wide availability of dictionaries in PDF format makes it easier than ever to look up unusual words in specialised dictionaries.  The next step is for these to emerge in an indexed electronic form.  In fact a kind correspondent has sent me an interesting tool, in which you can search a wide range of dictionaries, where the start and end word of each page are stored electronically, and then you can display on-screen a bitmap of the page.  Many problems require a flash of genius; and this is an example of it.  I hope to write more about this in due course.

But none of this helps you with a phrase which simply won’t make sense, even when you know all the words.  This is because you don’t know much about Latin syntax.

A lot of people know some Latin.  A great number of people know enough Latin to do something with the tools above.

But most people do not know simply Latin constructions, like the accusative + infinitive phrase, even though there is even a Wikipedia page on it:

Iulia dicit, se bonam discipulam esse

Julia says, that she (se) is (esse) a good pupil (bonam discipulam)

Once you recognise the format, it’s not hard.  You translate the accusative “se” as “that she”,  and “she” becomes the subject of the new clause.  You find the infinitive (“esse”, to be), and treat it as an indicative (“est”, is).  After that, the rest of the clause is normal.  There may be other words along for the ride, which don’t matter, as here with “bonam discipulum”.

I have found by experience that few people understand this construction.

My own knowledge of Latin constructions is limited.  It wasn’t an important part of the Latin that I did at school.

Something that we all need to work upon some more.  I shall dig out a textbook and have a read!


Will the real St Valentine please step forward? – A look at the BHL

Valentine’s Day has just passed.  In honour of the day, I thought that it would be interesting to look in the Bibliotheca Hagiographica Latina vol. 2, and see what it says about saints named “Valentinus”.

Rather to my astonishment, Abbyy Finereader 14 seems to be very good at OCRing Latin.  So here it is:

  • Valentinus presb. Ecclesiolae prope Molismum, ante med. saec. V. — Iul. 4.

Vita. Inc. B. Valentinus in Laticensi suburbano Lingonensium oriundus — Des. facile intelligatur. [8457

Act. SS. Iul. II. 41-42.
Exc. Bouquet, III. 410-11.

  • Valentinus ep. Ianuensis, saec. IV in. — Mai 2.

1. Vita. Inc. B. Valentinus, bonae indolis puer — Des. sine quo nullus nostrum esse potest, ipso adiuvante… Amen. [8458

Act. SS. Mai VII. 544; 3a ed. 535-36.

2. Inventio, elevatio, miracula. Inc. Huius talis ac tanti V~i praesulis, unde superius — Des. praesentem sentiret. Hoc quoque ad laudem et gloriam Christi… Amen. [8459

Act. SS. t. c. 544-46; 3a ed. 536-37.
Exc. Ughelli, IV. 1151-54; 2a ed. 837-38.

  • Valentinus ep. Interamnensis, m. Romae, sub Claudio. — Febr. 14.

1. Vita. Inc. Propheta loquitur ad Deum… Unde b. vir Interamnensis ep. — Des. a s. Abundio non longe a corpore s. V~i sunt sepulti, collaudantes Dnm… Amen. [8460

Mombritius, II. 343-44; || Surius, I (1570), 984-86; (1576), 1014-16; II (1618), 145-46; II (1875), 349-52; || Act. SS. Febr.II. 756-57; 3a ed. 757-58.

2. Epitome.

Petrus de Nat. iii. 122.

3. Translatio capitis Gemmeticum et miracula auct. Baldrico ep. Dolensi. Inc. prol. Qualiter bb. V~i caput Gemmeticum usque — Inc. Quidam qui sacerdotio fungebatur — Des. ab infirmitate illa curatus sanus egressus est. [8461

Act. SS. t. c. 758-62; 3a ed. 759-63; || P.L. CLXVI. 1153-64.

  • Valentinus ep. Raetiarum (al. ep. Pataviensis), saec. V. — Ian. 7.

1. Vita et translatio. Inc. In civitate Pataviensi inventum est sub nostro aevo — Des. ubi adhuc plurima fiunt miracula, quae facit… Amen. Celebratur autem festum etc. etc… [8462

Act. SS. Ian. 1. 1094-97; 3a ed. 728-33. — (Mut.) Surius, IV (1573), 474-477; (1579), 506-9; VIII (1618), 43-45; || Act. SS. t. c. 369-72.
Exc. Reschius, Annales eccl. Sabionensis, 282-86, 290 (partim ex libello genuino, partim ex Surio).

2. Epitome.

Bartholomaeus Tridentinus, Gesta Sanctorum (Lutolf, in Theologische Quartalschrift, LXIII, Tübingen, 1881, 469).

  • Valentinus presb. m. Romae, sub Claudio. — Febr. 14.

1. Passio. Inc. Tempore quo persequebatur Claudius Christianos, tenuit quendam presbyterum — Des. a) et sepelivit in eodem loco ubi decollatus est. [8463

vel β) ubi decollatus est, accipiens coronam vitae quam repromisit Deus diligentibus se. [8464

vel γ) diligentibus se. Ibi postea a Iulio papa fabricata est ecclesia… usque in hodiernum diem. [8465

Act. SS. Febr, II. 753-54; 3a ed. 754-55. — Excerpta est haec Passio ad verbum ex Passione SS. Marii, Marthae et soc. In quibusdam codicibus, servatis etiam primis verbis cap. 6 Passionis SS. Marii etc., Passio Valentini inc. “ Tunc tenuit Claudius quendam ven. virum…, [8466.

In aliis codicibus tamquam Passio S. Valentini profertur vel integra, vel paene integra Passio SS. Marii etc.

2. Epitomae.

Leg. aurea, c. 42. — Petrus de Nat. III. 123.

  • Valentinus ep. Terracinensis et Damianus eius diae., mm. in territorio Teatino, + sub Iuliano. — Mart. 16.

Passio et inventio.

I. Passio. Inc. Temporibus Magni Constantini piissimi imp. erat quidam vir — Des. usque in hodiernum diem. Passi sunt autem… Amen. [8467

II. Inventio, translatio, miracula. Inc. Postquam divina ordinatione — Des. Deum et ss. mm. eius V-um et D-um glorificavit. [8468

Ughelli, VII. 1351-60 ; 2a ed. I. 1284-89; || Act. SS. Mart. II. 428-31; 3a ed. 423-26: || Contator (D. A.), De historia Terracinensi (Romae, 1706), 493-502.

Exc. (ipsa pars ii) Act. SS. Mai III. 569-70 (3a ed. 566-67), n. 3 et 5.

  • Valentinus et Hilarius mm. Viterbii, sub Maximiano. — Nov. 3.

1. Passio,

a. Inc. Temporibus illis, quo Maximianus augustus regnavit post obitum patris sui Diocletiani augusti, ipso tempore interfecit sororem suam — Des. Qui ita martyr Christi effectus est in Dno N. I. C… Amen. [8469

Appendix. Inc. Supradictorum vero mm. corpora — Des. de Roma adduxerat; cuius… celebratur m kal. ian., ad laudem… Amen. [8470

Act. SS. Nov. I. 626-29, col. 1. — (Mut.) Nardinus (N.), Acta ss. mm. Valentini praesbyteri et Hilarii diaconi (Viterbii, 1684), 7-11; || Pennazzi (S. A.), Vita dei glorioso S. Eutizio (Montefiascone, 1721), 324-28; || Andreucci (A. Gir.), Notizie istoriche de gloriosi ss. Valentino prete ed Ilario diacono (Roma, 1740), 61-64; || Bussi (F.), Istoria delta citta di Viterbo (Roma, 1742), 444-45; || Assemani (I. S.), De SS. Ferentinis in Tuscia Bonifacio etc. (Romae, 1745), 169-72.

Exc. (ex libello genuino) Act. SS. Mai III. 459 (3a ed. 457-58), n. 4. — Pennazzi, t. c. 339-40. — Andreucci, t. c. 44-46, 56-57.

b. Inc. Tempore quo Maximianus augustus regnabat, misit edictum — Des. Qui inventus martyr effectus est in I. C. Dno N… Amen. [8471

Appendix. Inc. ut in 1a. — Des. de Roma addux., ad laudem… [8472

Andreucci, t. c. 51-55; || Bibl. Casin. III. Floril. 158-60; || Act. SS. Nov. I. 626-29, col. 2.

2. Epitome. Inc. ut 1b. — Des. et sepulti sunt in locum qui vocatur Cavillarius. [8473

Pennazzi, t. c. 333-35; || Andreucci, t. c. 48-49; || Act. SS. t. c. 625.

3. Inventio saec. XIV in. Inc. Gloriosus Deus in sanctis suis — Des. fidei postulantium impendebat, ad laudem… Amen. [8474

Act. SS. t. c. 632-34.

My what a lot of abbreviations!  For the newcomer, a couple of important ones.

  • Act. SS. is of course the Acta Sanctorum. This is organised into months, and then by the saint’s feast day date.  So saints related to Feb. 14 is in the “February volume 2” volume.
  • Inc = Incipit and Des = Desinit – the opening and closing words of the text.  Texts in manuscripts don’t tend to come with identifiers, so the start and end is useful.
  • The number after the bracket, “[8474”, is the reference number.  Refer to your chosen saint and the specific text about him as “BHL 8474”.

So… there are a bunch of saints here, commemorated on various days.

Only two of these are celebrated on Valentine’s Day, February 14th; Valentinus of Interramna (two texts, BHL 8460, 8461), and Valentinus of Rome (BHL 8466).  The rest we are not concerned with here.

Well, once we have the BHL number, we can do some useful Googling!  And … by golly it is useful!

It turns out that there was a conference in Terni (=Interramna) back in 2010, and the papers were published as M.Bassetti & E.Menestò, San Valentino e il suo culto tra medioevo ed età contemporanea: uno status quaestionis (Terni, 9-11 dicembre 2010), CISAM: Spoleto 2012, 368 pp.[1]  This includes a paper by Edoardo D’Angelo with a critical edition of BHL 8460![2]  There is another paper with a description of the manuscript tradition.  Sadly none of this is online, and I don’t have any access to it at the moment, but I know where a copy can be found.  Clearly I need to look at this.

The search also reminded me of the marvellous Cult of the Saints in Late Antiquity database.  They have a page with all the data on Valentine of Rome here; and another on Valentine of Interramna here.  There is even a summary of the content pf BHL 8460 here.  All of this is massively useful.

But the most useful item that I found was a page in Walter Pohl &c, Transformations of Romanness: Early Medieval Regions and Identities, ., p.200-201.  This is worth reproducing as a handy summary of the Valentine material:

The earliest hagiographic text associated with a city within the duchy of Spoleto is dedicated to St Valentine, martyr and bishop of the church of Terni. Already known to Bede who borrowed from it in his Martyrology, the Passio sancti Valentini martyris (BHL 8460) was written between the late sixth and the early eighth century.13 The existence of two different Valentines, one celebrated in BHL 8460 as the bishop of Terni and the other, a Roman presbyter, mentioned in the Passio sanctorum Marii, Marthae et filiorum (BHL 5543), still makes it difficult to assess who the ‘original’ Valentine was and where he was first venerated.14* However, the existence of two cults and two distinct hagiographic traditions hints at two different centres of promotion belonging to two separate ecclesiastical and political spaces: the episcopal city of Terni in the Spoletan duchy on the one hand, and Rome on the other.15

The entire narrative of the Passio Valentini (BHL 8460) takes place in Rome. The city as described by the anonymous hagiographer is an imperial capital with a strong cultural appeal: three noble students from Athens reach Rome to complete their education in Latin and, in order to do so, they choose magister Craton, an orator practising both in Greek and Latin (orator utriusque linguae). After witnessing the miraculous healing of the young scolasticus Cerimon at the hands of Valentine, the three Athenian students decide to give up on their education in human wisdom (studia humanae sapientiae) and to engage in spiritual studies (spiritalibus studiis) because, as the saint had reminded them, ‘worldly wisdom is deemed foolish in the eyes of God’ (sapientia mundi stulta est apud Deum).16 A multitude of students and the son of the prefectus urbi also publicly adhere to the Christian faith. The outraged senators then proceed to arrest Valentine, who is tortured and eventually beheaded at the order of the city prefect. His body is brought back to Terni by the Athenians who are themselves captured by the consularis Lucentius, sentenced to death and buried close to the saint.

[13] Emore Paoli, “La ‘Passio sancti Valentini’ (BHL 8460)”, in Bassetti 2012, 177. For the edition of the text see Passio sancti Valentini martyris, ed. D’Angelo, 211-222. Details from the text are recorded in the manuscript that has been acknowledged as the closest witness to Bede’s original martyrology (St Gallen, Stiftsbibliothek 451,15-17).

[14] In the early Middle Ages, Valentine was commemorated on the same day in a basilica near Terni and in a sanctuary close to Rome, both located on the Via Flaminia. This would suggest that the same saint was at the origin of two cults, cf. Claudia Angelelli, “Roma o Interramna Nahars? Le più antiche testimonianze del culto di S. Valentino e il problema della “priorità””, in Bassetti 2012, p.127-158. Online at here.

[15] Susi 2012, 291-299. = Eugenio Susi, “Il culto di san Valentino in Italia nel medioevo”, in the same volume.

[16] Passio sancti Valentini martyris, ed. D’Angelo, 218.

This summary again indicates the importance of the Bassetti volume.

Searching Google books for BHL 8460 brought up massive numbers of manuscript library catalogues, all in snippet view.  It’s clear that this Life of St Valentine appears in collections of Saints’ lives (Vitae Sanctorum) or “Legendaries”, in library after library.  An online manuscript is Paris latin 18305, details at the BNF here, and a monochrome set of images here, life on foll. 63-66v.  It starts thus, clearly with red lettering:

There are undoubtedly others online, if I looked further.

What I learn from today’s effort is the importance of the BHL for looking into Saints’ Lives.  A Google search is futile until you have the BHL number.

  1. [1]For sale at a “modest” 60 euros from the publisher here: there is also a lengthy description of the contents
  2. [2]“La Passio sancti Valentini martyris (BHL 8460-8460b). Un ‘martirio occulto’ d’età postcostantiniana?”.  It’s on pp.179-222.

From my diary

Yesterday was Valentine’s Day.  Inevitably I found myself wondering what kind of ancient or medieval literary material there was about St Valentine.

I found very little.   What little there was to be found by a Google search suggested that it was all derived at many removes from the old Catholic Encyclopedia.  The article in this is vague too.

So off I went to the Acta Sanctorum.  Feb. 14, the feast day, is in February volume 2.  There wasn’t a lot, and this is one of the oldest volumes, from 1658.

I’ve been working on a Latin Life of St George lately, so I am very much “in the zone” to work on another Latin life.  So I thought that perhaps I would OCR the Latin text, and maybe look at translating it.

Abbyy Finereader 14 is an excellent piece of software.  It supports the Latin language properly, which makes it very useful.  Indeed I remember yearning for such a thing in days gone by.

I didn’t think that a 1658 edition, complete with long-s, would OCR that well.  So I looked for the Paris reprint of the 1850’s.  This I found without difficulty, as they are all in; but the quality is not good.  Not even Finereader could make much of those grainy faint pages.

My next step was to find some more copies of the book.  As I indicated in my last post, I faintly remembered a Google spreadsheet full of links to PDFs of the Acta Sanctorum.  A kind correspondent found it, and it is here.  But … the links were all to the original edition.

So I’ve spent this morning trying to locate a better scan of one of the Paris reprint volumes.  Eventually I succeeded, in Google Books, in finding it here, in the 1864 reprint.  This, I was delighted to find, OCRs quite well.  The page layout is hardly designed for OCR, but if you manually move the text boxes around, the results are really quite decent.

Time for lunch now.  I think that I need to go out and buy the materials that I intend to cook, actually!  But I shall continue correcting the OCR after that.

Once I have a Latin text, I shall post it.  I shall then look at translating at least some of it.

I’ve yet to see any studies of the St Valentine literature, which is odd.  It must exist; if not in English, then in German or French or certainly Italian.  My search terms clearly are not good.  But I can try out some searches over lunch!

UPDATE:  Over a lunch a kind correspondent emailed me a link to an obscure German site where they have apparently uploaded the transcribed text of the whole Acta Sanctorum.  The German site itself is poorly designed, but I am assured that buried within is the entire text.  If so, of course, then there is no point in my doing it.  Once I’ve worked out how to use the site, I’ll write a post on it.


From my diary

This evening I spent some time looking at Huber’s article, Zur Georgslegende (1906).  I’d not looked at this before, so it was time to do so.  It contains five Latin versions of the Life of St George.

I also OCR’d the article, so that I could pass the German introduction through Google Translate, to see if it contained anything useful.  It was indeed very waffly and poorly structured, as is often the case at that period.  There was a lot of criticism of Papebroch, the Bollandist editor, for not printing much of the Latin versions.

But I learned from it that Arndt’s edition of the “Passicrates” Life that I am currently working on is indeed every bit as bad as I had thought.  Huber suggests that the text itself probably suffered, both from a bad translator, when it was created from Greek; and then from errors in transmission by copying.  He queries whether it has been significantly interpolated.  He also makes clear that Arndt isn’t a critical edition.  He gives as his third Passio another recension of the “Passicrates” life, which isn’t as old but is much easier to read.  My thanks to the kind correspondent who drew my attention to this.  But on the whole Huber achieves little in the pages he devotes to the question.

I came away from the exercise feeling even more strongly that a scholar needs to dedicate himself to sorting out the hagiography of St George, and write a definitive monograph.  It really can’t be that hard to list the versions, compare the texts within them, and do a proper analysis for both Latin and Greek.

My next task was to look at the possible meanings of “separo”, which usually means “separate”.  This appears at various points in Arndt’s text, in contexts where this meaning does not make sense.  Possibly “sever” will cover most of the choices.

However it is becoming clear that I ought to prepare a Word document containing the Latin, if only to use for searching through.  This will probably be my next task.  I have OCR’d and corrected chapters 12-21 already, but the rest should be done too.

Something that distracted me this evening was the tools that I am working with.  I’m using my old QuickLatin product for quick morphologies, which it does perfectly well.  But I find that I am using other PDFs and online dictionaries.  Surely these could be integrated somehow?

The problem is that it was written in Visual Basic 6, which is now some twenty years old, and only runs on Windows 10 by a special miracle.  Another tool that I use, to interleave Latin and English text, was written in VB.Net 2008, which replaced it.  This too is now more than ten years old.  Microsoft have been terrible at keeping their development tools working, and compatible, and I have complained before about their current offering, Visual Studio Community Edition, as nearly unusable by anyone but a professional.

My eye was caught by the old Delphi product, which I downloaded and played with a bit.  I always liked Pascal, the language it used.  It would be a bonus to be able to generate Android and iPhone apps.  Why can’t you do that from Visual Studio?  But of course my code is all in VB.  I have to work on this stuff in odd moments, unlike the way a professional works.  There is no way that I will ever port all this to Delphi; which is, in any case, nearly a dead tool itself.

Eventually I decided to leave that task for another time.  I was slightly nervous today that I might get a call about a job, and need to put everything to one side.  Whatever I do, it has to survive the call to go and earn a living, and to drop everything else in the mean time.  That is quite a demand of any project.

I’d better settle down and work up a text for chapters 1-11.

Update: I have just discovered, to my utter astonishment, that Arndt prints his corrections to the text, sometimes in the text with the manuscript reading in the footnote; and sometimes in the footnote, leaving the (unintelligible) manuscript reading in the text!  Generally “corr. minimos” means that minimos is what he thinks it should be.  “se. cod.” means that he has corrected it, but the ms. read “se”.

Less clear is “seccabo prius, corr. rad.” where he has printed “secabo” in the text.  The latter is the normal spelling.  But what is “prius”? Not the manuscript?  and what is “rad.” short for?  Some of his “corrections” in the footnotes don’t even make sense.

Incredible rubbish.  Both he and his editor should have been shot.

Update: An even worse example. Footnote reads: “corr. inest” on “inextimabiles”. By this he means we should read “inestimabiles”.  Good grief.  Fortunately after the first few pages he settles down.  But clearly his editor never read any of this.

Update: A commenter has pointed out that the mistake is mine! that “corr.” indicates a feature of the manuscript, changes introduced by a “corrector”.  “rad” is for “radendo”, “scraped away”.  Thank you!


The importance of standard spelling in critical editions

A few months ago a kind gentleman offered to translate some Latin for us all.  Meaning no harm, I suggested that the earliest Latin version of the Life of St George might be a good candidate.  For narrative texts are easier to translate, and how difficult could a late antique saints’ life be?  There was a 19th century edition by Arndt, and this I sent him.

Chunks of this have proceeded to arrive over the last few months.  I commented in detail on the first couple, and then pressure of work meant that I just filed the next few.

However last week I started to collect them, and go through them, and try to create a final version.  This evening I finished with what I had.  This consists of chapters 1-8 and chapter 10 (out of 21).

I feel really rather guilty now.  It’s a nightmare to translate and revise.  The reason, simply, is that the editor, Arndt, slacked on the job.  All he seems to have done is to fix one or two obvious errors, and leave the rest as he found it, weird late spellings and all.  That makes it very hard indeed to read.

I can cope with “capud” for “caput”, “head”.  But more obscure words have frequently left me baffled and guessing.  It’s obvious that “maggana” is “magana”, “daggers”, once you know.  Other words like “amos ferreos” – “iron whatsits” – are beyond me.

These spelling choices make it very difficult to find words in dictionaries!  The tortures that St George undergoes name quite a lot of bits of the body, as the wicked emperor gloats on what he will do to the saint unless he recants.  I do have a specialist glossary for body parts.  But even so what is the noun in “nerbona incidam”?  Or what does bella in “humera et bella secabo” mean?

In these few cases, indeed, I have been quite unable to work out what the word means.  Maybe this is down to the eccentric spelling.

What on earth did Arndt think he was doing here?  If he was providing a transcription, he had no business correcting the text, as his apparatus makes clear that he did.  If he was providing a text, then using normal spellings was essential.

We will plod on, of course.  But Arndt’s laziness makes the task much harder than it should have been.


Why does paleography work, and how did we get it?

Paleography is a technique for dating hand-written copies of ancient or medieval texts by looking at the way that the actual text is written; the shapes of the letters, abbreviations used, and so on.

I’ve found by experience that laymen often don’t understand how it works, or why it works.  Only yesterday I came across a book by a German crank asserting that Augustine’s Confessions, composed before 400 AD, were in fact written by Anselm in the 11th century.  The existence of physical copies written before that – the earliest copy of the Confessions is in fact 6th century[1] – was dismissed airily; the copies were dated using paleography, and paleography was bunk.[2]  It’s not an uncommon mistake in certain circles.

I’m not a paleographer, and I only understand the fundamentals.  But I’d like to share what I have, in hopes of minimising further crass errors.

So how does it work?

Many things are best understood when we know what the problem was that gave rise to them.

After the end of the Reformation in France, and in the century before the French Revolution, the country was governed as a Catholic autocracy by the Bourbon dynasty.  The church held wide lands, much wealth, and great power.  The nobility and the various monastic orders fought among themselves to acquire yet more, under the smiling gaze of the Sun King or the other royal despots.  Junior or more recently founded orders like the Jesuits naturally found themselves at odds with older ones like the Benedictines.

The Jesuit Daniel Papebroch advanced the claim that many of the old charters, granting lands to these orders, were in fact forgeries.  Among them he listed a grant by an early Merovingian king to the Benedictine order dated 590 AD.  Of course this was no mere bit of scholarly noodling; if true, vast wealth would pass out of the hands of the order and back into royal hands.

The Dominican order took this as what it was, an attack on the privileges of the church.  They demanded that the inquisition investigate Fr Papebroch.

The Benedictine order took a different view.  The ancient Benedictine houses of France had regrouped as the Congregation of St Maur, with their headquarters in Paris at the abbey of St.Germains-des-Pres, and had emphasised scholarship.  So they saw the claim as an intellectual challenge.  The task of defending the order was given to Dom Jean Mabillon.

Mabillon quickly realised that all the medieval charters, and indeed medieval books, were written in a variety of forms of writing, even though the language was always Latin.  The letter forms differed.  Here are some examples:[3]

Roman square capitals
Carolingian minuscule

Mabillon theorised that the types of “book hand” changed over time; and also that they changed from country to country, (although in fact the location proved less important).  So he compiled a big reference volume, consisting of examples of the writing from charters or books that he could date.

It’s possible to date most charters.  They come with a signature at the bottom, of somebody important, and often with a phrase like “Given at our court in Aachen on the 23rd of May, 840” or something like that.  Likewise books may have a note at the end such as “Completed by the monk Ernald in the eight hundred and twentieth year of our Lord.”  Of course the dates may be forged – that’s the question  before us – but they can’t ALL be forged!

So Mabillon started with these.  He drew up examples, with their stated dates.  And … bingo!  He was suddenly able to see, what no man had ever seen: the change of scripts over time from antiquity to his own period.

Because of the volume of data, he could see what the real book-hand was at various periods.  And, armed with this, the forgeries stuck out like sore thumbs.  Because the forgers did NOT have Mabillon’s knowledge of old scripts and the dates in which they were in use.  Indeed they didn’t actually know that scripts varied, or why.  So whatever they did, they were screwed.  It was possible to see, at a glance, that many of the early charters were indeed not what they appeared to be.  In fact the Merovingian charter that had provoked all this was shown to be written in a later hand.[4]   It was now possible, using this database, to date many other books that had no scribal note at the bottom.

Mabillon published his data and results in 1681 in his book, De re diplomatica.  It met with universal approval.  Even Papebroch hailed it as an achievement.

This was the birth of paleography.  The word itself had to wait until Mabillon’s colleage, Dom Bernard de Montfaucon, did the same task for Greek manuscripts, which he published under the title of Paleographia Graeca.

To this day, paleography adopts the same method.  The first step, in creating a paleography for any culture, is still to create an album of “dated and dateable manuscripts” – this phrase appears in the title -, with pictures of the scripts.

The next step was to refine these broad-brush classifications.  This indeed is what paleographers still do.  Parchment is expensive, so most documents and books were abbreviated with signs like “&” for “and”; or space was saved by the use of “ligatures”.  Today we have only one or two of these: “æ” for “a” and “e” saves a precious bit of space.  But there were hundreds of abbreviations and ligatures; and these too varied over time and space.  This also gives us information with which to localise the production of a book.

There are limits to the method, which are obvious.  A scribe may be active for 25 years, and write the same script in which he was trained over the whole of that period, even if a new style has come in.  Paleography becomes more unreliable, the smaller the database, the shorter the time-span.  Inevitably subjective judgements creep in.  How closely a document may be dated by paleography may be questioned.  But I would imagine that we can reduce the date to within a century without too much difficulty in most cases.  A specialist might do better.

It is often asked why carbon dating is not used instead.  But of course it was not available to scholars in 1681, or indeed until very recently.  Even then, the accuracy of carbon dating is often no better than paleography.  A further problem is that carbon dating will give the date at which the parchment was harvested, not the date at which the text was written.  Parchment was reused for centuries.  Also carbon dating requires the destruction of a portion of the book or charter, which rarely is acceptable to the owners.  Finally paleography may also give us the monastery at which an item was written, which carbon dating cannot.  But this is an area in which technology is progressing.  The size of the sample needed is reducing all the time, and probably there will be more carbon dating of manuscripts in future.

Paleography is a valuable part of the scholar’s toolbox.  It will continue to be so, for the foreseeable future.

  1. [1]Michael M. Gorman, “Aurelius Augustinus: The testimony of the oldest manuscripts of Saint Augustine’s works”, Journal of Theological Studies 35 (1984), 475-480, JSTOR: “Rome Biblioteca Nationale Centrale,Sessorianus 55 (S, CLA 4, 420a), probably written in Spain in the second half of the sixth century, is the oldest manuscript of St. Augustine’s Confessiones (fos. 1-79v).14 The words ‘Confessionum sancti Augustini libri XIII’ appear in a subscription of fol. 79v.”
  2. [2]Hermann Dettering, O du lieber Augustin: Falsche Bekenntnisse?, Alibri (i.e. self-published), 2015. ISBN 978-3-86569-181-1.  I have not seen the book, but a 2014 interview with Detering may be found here: “Q: Auch wenn wir Ihrer Textanalyse und der daran anknüpfenden Indizienkette bis hierhin folgen, so bleibt für Ihre These das Problem, dass die “Confessiones” in anderen Werken des frühen Mittelalters genannt werden und Abschriften vorliegen, die ins 9. Jahrhundert datiert werden – also vor Anselm…  Die Datierung der Handschriften erfolgt durchweg auf paläographischer Grundlage d.h. sie basiert auf der Schriftanalyse. Ich blende dieses Problem keineswegs aus, sondern überlasse dem Leser die Entscheidung: Er kann sich entweder auf die internen Argumente, d.h. auf seine Vernunft verlassen – oder aber auf die Kunst der Paläographen, die geirrt haben – und immer noch irren. Ich gebe in meinem Buch ein markantes Beispiel dafür. Man sollte nicht glauben, dass mittelalterliche Autoren, die unter falschem Namen schrieben, nicht gewusst hätten, wie sie ihren Texten ein archaisierendes Aussehen geben konnten, um sich in den Augen der Leser und selbst späterer Fachleute als “authentisch” zu empfehlen.” — “Q: Even if we follow your textual analysis and the related chain of indications so far, your thesis remains the problem that the “Confessions” in other works of the early Middle Ages are called and copies are available, which are dated to the 9th century – before Anselm …  The dating of the manuscripts is done on a paleographic basis, i.e. it is based on the handwriting analysis. I by no means exclude this problem, but leave the decision to the reader: it can either rely on the internal arguments, i.e. rely on his reason – or on the art of paleographers who have erred – and still wrong. I give a striking example in my book. One should not believe that medieval writers who wrote under a false name did not know how to give their texts an archaic appearance, in order to be “authentic” in the eyes of readers and even later experts.”  I owe knowledge of this to posts on the Vridar site, run by a fraternity who hope that Jesus never existed.
  3. [3]I have borrowed all of these from this marvellous site
  4. [4]In fairness, this did not mean that it was a forgery.  The passion for paperwork originated with the Normans, rather later on.  Illiterate kings may well have given grants of land orally.  But once paperwork was important, the monks then found it necessary at a later date to record them in writing.  On the other hand forgery of legal documents was rife during the middle ages.