From my diary

The aftermath of the hack has taken a solid week to clean up.  But it is done.  Cross fingers, it won’t happen again, or not soon.  It’s not as if my little blog attracts enough traffic to be worth their while.  At least next time I will be better prepared.

This afternoon I have started looking at John Toy, English saints in the Medieval Liturgies of the Scandinavian churches, 2009, which has a section on St Botolph material.  He lists some 42 breviaries that contain readings from the Life of St Botolph.  Ouch.  I’ve also found that there is stuff in the York and Hereford breviaries, and no doubt others.

Today I located the Lund Breviary online, in Uppsala university, shelfmark C447, and downloaded it.  It is yet another scruffily written, hard to make out manuscript. There’s a long section of Botolph material, none of which I can read with ease.

I think it may be necessary to rule the breviaries “out of scope.”  There’s just too much material.  Possibly it needs a separate project to look at those, although really it’s for someone far more knowledgeable than myself to undertake.  The original idea was just to create an English translation of the medieval Life of St Botolph, remember.

But after a hard week, I think I shall bunk off and play a computer game or something!  Have a good weekend, everyone.

On the Fourth Day

Behind the blog surface, the posts are stored in a database.  The pharm spam hack inserted stuff into that database, and I have spent two days in cleaning it.  This I did by exporting the database to a .sql file using the PhpMyAdmin interface; importing it into a local WordPress instance running on my PC; importing the last sound backup into another local WordPress instance; exporting the sound wp-posts table from that, renaming it, importing it into the same database as the  corrupt one, and doing lots of SQL queries to locate the differences.  It has been time-consuming, but not different in kind to the sort of stuff that I used to do for  money, when I was working for insurance companies and fixing live problems in their databases.  I’ve found it rather relaxing.  You have to get into the right frame of mind to do it, to see the problem – and how to fix it – in terms of an SQL query.  But this I did professionally for 30 years, so it was not troublesome.  The main thing to remember is not to panic.

After all that, I hope that the annoying pharma links are gone, and that I haven’t broken anything!

I’ve brought up a new instance of WordPress on the server.  I’ve also changed the theme, although I may change it again.

A rather impressive security plugin located three files on the disk which the hacker had left there.  One of these was so poisonous that when I downloaded it to my PC in order to inspect it, my local antivirus promptly whipped it away into quarantine.  I will do more security work on the blog tomorrow.

In the meantime, there has been a little progress on St. Botolph, which I am very keen to finish.  A kind gentleman has sent me the modern text of the Linkoping breviary text.  Another commented and transcribed the manuscript that I could not read.  Finally the rather comprehensive book by John Toy arrived with massive information on Scandinavian breviaries.  I’ve not had time to look at any of these yet, but these have been a light in the darkness.

I’ve discovered that a breviary from Hereford probably also contains a text, and that I might be able to access this through Early English Books Online (EEBO).  I have no access to EEBO, but a nearby library probably does, and probably will allow me to use it.  Maybe next week!

On the Second Day…

Today has been spent researching how to rescue my content from the spam attack that is poisoning a lot of the older articles with unwanted links.

It’s becoming clear that WordPress’ built in export and import are barely useful; and are NOT used by professionals who run websites based around it.  What they do is use professional (and very expensive) tools to migrate the data from a “staging” copy of WordPress, where everything is developed and written, across to the “live” site.  When they do work with the content, they work directly with the database behind WordPress.  They export and import whole databases, when they’re not using migration tools.

For them, this means that an attack on the “live” site is meaningless, a minor interruption.  They just erase it and push a new copy across from their local site to the server.

This is excellent practice, and commonplace in IT in general.

So the way forward is to do all my content creation on a WordPress Instance running on my PC, and then migrate it to live, if I can.  Rather a come-down from entering my posts online directly, but it would work.

But that doesn’t help me with retrieving my data.  So I have been burrowing into the database underneath.  The very simple, very obvious database, if you are a retired professional database developer, as I am.

Today I have been setting up LocalWP on my PC.  This has gone reasonably well except that I have to pause my antivirus when creating a new WordPress instance.  And then remember to reenable it.  This is because it locks the hosts file, which LocalWP edits really rather often.  Daft design, really.  I’ve also been working with the command-line interface, WP-CLI, locally.  This also has a bug, where the DB_HOST variable in wp-config.php does not include the port number.  Everything works, other than WP-CLI doing database stuff.  A nuisance.

So I created an empty WordPress locally, and then tried to import the last valid backup.  The import failed.  It’s simply not designed to take a 70mb file.  That’s really wretched.  Come on WordPress, this is basic functionality!  I then ran the import using WP-CLI where – to my astonishment – it took a couple of hours to load 7,400 blog posts.  I learned from this that the professionals simply don’t use the WordPress Export/Import in any way.

But it did load.  Which gives me a WordPress instance with a clean copy of all the corrupted posts.

In theory, one should be able to connect to the live system database, and run a cross database update to restore the correct content fields.  I have some doubts that little old MySQL databases can handle that, unlike the Oracle monsters that I knew!  I imagine it would all time out.

But possibly I could simply start my own MySQL database, independently of WordPress; then import into it the clean database file that I have created, import it as a whole; then rename all the tables imported from WP_xyz to something else – maybe VALID_xyz.  Then I could import an export of the “live” system into the same database, somehow; and then do the update from one to the other locally?  UPDATE WP-POSTS from VALID_POSTS or something – I don’t know what the syntax would be as yet.  Then drop the VALID tables, export the whole database, now fixed; and create a new instance on the server using the new cleaned up database.  Or something like that.

Um yes.  I’m sure most of you swallowed.  I’m an old database programmer. I think in these terms when obliged to.

It is pathetic and ridiculous that such maneouvres should be necessary.  Not one blogger in ten thousand would think in such terms.  Blogging is for convenience.  How is all this “convenient”?  Tools that do not work, software that is insecure, timeouts all over the place?

Still, it’s clearly possible.  It will just take a ridiculous amount of time.

First attempts at recovery

It’s been an arduous afternoon, trying to work out how to recover from the hack last year that has poisoned hundreds of posts on this site.  The site currently includes 4,741 posts containing 3,096,019 words.  That’s a lot to go through manually.  And since I don’t know how the hack was done, or whether it is still active, or a backdoor is present, then it might be futile.

I’ve done a few grep searches on the most recent backup file.  A search for “cialis” alone gave over 250 results.  Of course I have no idea of all the possible spam terms.

But I have been a good boy, and made regular backups.  I do have a backup of the site, taken a month earlier.  In theory I should just be able to create a new WordPress installation, and restore that, and then handle the last year bit by bit.

So I created a new, clean WordPress installation.  Unfortunately… the backup times out.  It’s 70mb, which is too long for some timeout somewhere.  Why doesn’t it batch the thing?

No worries, there’s a command-line interface to wordpress, WP-CLI.  That runs… and gets killed by something or other, possibly the site operators, more likely a robot for running out of memory.

I’m leaving the damaged site up at the moment.  I will ponder.

PS:  It just occurred to me… maybe I should run WordPress on my PC, do the import there, and then export the contents in pieces, and load these?  What a faff.

From my diary

It seems that this blog was hacked on 22 July 2024 at 10:20, by some poor soul who poisoned a great number of the articles with spam links to pharmaceutical sites.  I gather that this is a standard attack, known as “spam link injection.”  I discovered this in an old article by accident last night, and I have spent some hours today attempting to discover the extent of the problem.  The attack was done cunningly, mainly on older articles or pages, which meant that I was oblivious.

The attack was not done by logging into the editing console, as the changed text is not present in the list of revisions.   I don’t know how it was done, in truth, which makes it hard to know how to prevent it again.  Possibly some WordPress plugin was responsible.  Possibly the theme that I use is insecure?

I don’t know how many posts are affected.  I don’t know how to fix this in any easy way.  Worse still, attempting to revert the changes through the UI has left some articles blank.

I do have backups from before the hack; one from the 18th of June, thankfully.  I would hope that posts after the 22 July 2024 are not affected.

Reading around for help, I find that WordPress is now a very insecure platform, which requires constant patching to be secure.  This is not something that I am competent to do.  Possibly a hosted solution would do this.

Likewise WordPress seems entirely disinterested in providing themes for bloggers.  All the themes are aimed at websites.  The last mainstream theme to focus on blogs, in 2019, does not handle mobile phones (!).

Blogging is getting increasingly difficult to do, it would seem.  The internet is changing, away from ordinary people towards something that only corporate infrastructure can handle.

I’m not quite sure what the way forward is. We’ll see.

From my diary

I posted yesterday about a number of breviaries containing the “Life” of St Botolph in abbreviated form. A kind commenter drew my attention to a publication unknown to me – English saints in the medieval liturgies of Scandinavian churches. Edited by John Toy. (Subsidia, 6.) Pp. xviii+232 incl. 2 plates. Woodbridge: Boydell (for the Henry Bradshaw Society), 2009. £50. ISBN 978-1-870252-46-1; 1352-047, which apparently contains a section on the St Botolph material.  The reviews suggest that it is a very dry volume, but that is nothing to me.

It was indeed an article by John Toy, included in a 2003 book, that drew my attention to all these Scandinavian brevaries in the first place.

But could I get hold of a PDF of the the “English Saints” volume?  No.

Could I perhaps borrow a copy through  my local library?  I had a quick look at JISC Hub, and I found that only 9 libraries had copies.  Not even all of the copyright libraries – to which every publisher is obliged by law to send a copy – held it.  That suggests great carelessness by the publisher.  It might be possible to use the interlibrary loan process to access one of these, but the price to do so these days is great, and the service horribly slow.  I want to get rid of Botolph now, so a long delay is not welcome.

However a look at Amazon and AbeBooks tells me that four copies are for sale secondhand.  Doubtless these are the review copies (which suggests that very few copies ever sold – pity.)  Better still these copies are available at prices not greater than I have just spent this lunchtime on a disappointing, indeed inedible, jacket potato meal for two in a cafe.  So I have done what I never do, and ordered one of them.  It should arrive in a day or two.

The only problem is what to do with the physical book once I have finished with it.  I have no storage space, and when I die all my books will no doubt go to Oxfam anyway.  So I might just post it back to the vendor with a note that he is free to sell it again.  It would put it back in circulation, anyway.

I was interested to see that the book was published on behalf of the Henry Bradshaw Society.  I have seen this name attached to 19th century liturgical publications, but I had no idea that it was still in business.  Indeed there is a website!

But I am starting to feel that the breviaries are becoming a classic case of “scope creep”, dragging my project into a world of material with which I am not qualified to engage. I know nothing about liturgy, and I am not sure that I wish to learn.  The original purpose here was to produce an English translation of the “Life of St Botolph” by Folcard.  We’re starting to vanish down the rabbit hole.  But I will see what the book says, and make a decision where to draw the line.

Breviaries, breviaries, is there no end of them?

Yesterday I finally located an image online of the page of the Botolph legend from a manuscript in Norway, in Bergen University Library, to be precise.  Today I collated that with Folcard’s “Life of St Botolph” and found that it was word for word identical with the full text, despite being labelled a “breviary” in the catalogue entry.  It only had the end of chapter 5 to the start of chapter 9, but no matter.

But the (unpublished!) catalogue for Bergen, of which an extract was on the webpage, referred to a breviary in Nidaros – modern Trondheim – with a section on Botolph.  This was printed in 1519.  I hunted around, and eventually found a copy online.  It contains the usual breviary stuff, and 6 lections.  I’ve not yet compared it against the Schleswig breviary, but I wouldn’t be surprised if it’s the same text.

A bit more reading revealed that there is a breviary for York, printed in Venice (!) by Johannes Hammam in 1493, which also has readings for Botolph, and a Hereford Breviary that  does.  Apparently the Sarum usage did not, which is something.

The York Breviary does not seem to be online, but an edition of it in two volumes is.  This was produced by the Surtees society, and finding the second volume is not easy!  I located it in Hathi, which had a link to the source in Google Books.  Here they are:

Volume 2 does indeed have a “life” of Botolph, on p.182 of the PDF, section 320, in three readings.  Oh well.  In it goes.

I’ve found a three volume edition of the Hereford Breviary, vols 1 and 3 in Archive.org, but no luck finding a “life” in it, although the entry in the list of saints days in vol. 2, p.194 (PDF p.235) says “tres lectiones fiant”.  Hum.  I imagine it’s probably the same set of readings as in the York breviary.

So that’s two – or three – more breviaries when I am trying to finish things up.  Oh well.

From the Nidaros breviary.

How’s your paleography? Two pages from a medieval breviary

I’ve had a go at transcribing the “Life” of St Botolph from this medieval breviary, but frankly my paleography is not great.  Would anyone else like to have a go, or a bit of one?  I’ll upload i mages of the two pages in .jpg form.  If you click on the picture, you’ll get the full size image (about 300k in size, so not enormous).

Alternatively you can use this PDF and this .docx word file of what follows:

The first page (folio 14r) starts with two prayers, which I have found elsewhere.  Then the “Life” begins with “lco = lectio”.  Ignore the hole in the page, and the stuff peeking through it from below!

Here’s my go at this:

De sancto Botholpho ad ??

Iste sanctus digne in memoria  vertitur hominum
qui ad gaudia tu@sset (=transiit) an-
gelorum quia in hac peregri-
natione solo corpore consti-
tutus cogitatione & avi-
ditate in illa aeterna patria
conversatus a@ (= est?).  a@ gt   Coll.  (Coll. =Collecta, the collect:)

Deus, omnium regnorum
gubernator et rector,
qui famulis tuis annuum     (the tilted c above the q indicating abbreviation of some sort)
beati Botholphi abbatis
largiaris sollemnitur cele-        (mu with macron = m)
brare festa nostrorum dele
clementius pec-
camini vulne-
ra ut a te
mereamur
percipere ga-
udia reprom-
issa.   Per dom.

The “per dom. is short for the “Per Dominum nostrum Iesum Christum Filium tuum, qui tecum vivit et regnat in unitate Spiritus Sancti Deus, per omnia saecula saeculorum” which appears at the end of a collect in a breviary.  The “Tu autem” that follows each reading = lection is another standard prayer.

Lectio.
Beatus Botolphus
natus est de saxoni-
ae gente qui Brytaneam bel-
lica acquisierat virtute
ubi puer bone indolis nu-
t@ebatur.  Qui cum adole-
uiss; ad antiquam stirpis
sue asit@rem transsiu sax-
oniae per diu@sos (=diversos) doctores
in fide christiane religionis
ioboiatam.  Tu autem… Lectio Scda.

De@ ibi levius adisce[re]t     (not sure have abbrev right above adisc…)
& sce@ fidei gratias & sce@
@u@statoi@s in ap@loris isti
tutonibus disciplin@et Lau-
dem attonsus coma capitis
exuit hitum mundi & ind-
uit armaturam dei et
grados ascendit sar@ et
divis.  Tu autem… lectio tria.

Beatus ias p[at]er Botolp-
hus divina est fretus
pictare ut natic@ pri@e (=proprie?)
tue prodessus doctrina & sca@
@u@saroe@.  Postquam vo@ di@
gr[ati]a & diutino perfic@et
sce@ feruore religionis
disposuit iam ad anglie     (n often written u)
pio ravitatis studio re-
pedare.   Tu autem…  lco quad.

Erant autem in eodem mo-
nasterio quo moraba-
tur sorores due ethel-
mundi regis qui tunc
australibus praeerat angl-
is. Diligebant praecipue  (the mu symbol = p.  prem = patrem)
p[at]rem Botholphum sicut
doctorem sanctitatis & casti[m]o-
nie & pl[uri]mum ob studium
gentis sue.     Tu autem...  Lco ??    [This sentence straight from Folcard.]

Ad huc siquidem soro-
res dicte tenellule

fuerant misse ultra mare      (iu = m)
ad discendam scilz (= scilicet) in
monasteriali gymnasio
disciplinam celestis
sophie. Audientes btui (=beatum)
& dilaum (= dilectum) doctorem velle
repaatriare merentes m-
andata imponunt.  lco vi.

R@usius tandem btus (=beatus)
Botholphus in nati@-
am (= nativam)  priam (=patriam) suam imperitis
eatenus vite regula-
ris (= regularis) attulit normam & @@
guacui@ amicos & pri@
avi serveti@ fide oer ao@
re dei de@liquid terre-
na contempsit ut celes-
tia acq@rerus.    Tu autem

[I think possibly prayers from here on??]
& wan@ vigilate q@
super by@ a@ @utt@essio do@
beati Botolphus confessoris
tui mos ebu@ @etific;
ut @@ memoriam recoliq
eius prioribus aduuiemet

??? Gre bo-
tolphe iccede per nob@
ut co@@ites glorai sanctorum
tecum effici mereamus.    [Intercede for us?]

Deus qui scam ub  De sco
u@ diei sollepita
te@ in honore sci@ Kanu-
ti regis & viris tui@
consecrasti ad esto @@@

The next column starts with De Sancto Kanuto Rege, Concerning Saint King Canute.

All thoughts, even the smallest, gratefully received!

From my diary

I had a tooth out on Monday so had to convalesce.  That, together with some very dull grey weather, has been perfect for working at the PC.  It’s been a productive week.

I finished translating the text giving an account of the transfer of the relics of Saint Botolph and other saints to Thorney Abbey under King Edgar, at the direction of St Ethelwold.  The latter hired a dubious low-born “monk” named Ulfkitel to do the grave-robbing, and the text is basically a description of how he went about it.  Extraordinary.

In fact the Botolph material is getting close to done.  I combined almost all the materials into a single file this week, English and Latin, ready to release, including whatever introductory material I had written.  This feels like huge progress, and so it is.  We’re very close.

One loose end with the Botolph stuff is that I was never able to transcribe the Lincoping Breviary entry on St Botolph.  This was for a prosaic reason: it’s a manuscript, not a printed edition, and I couldn’t read the script!  It’s in a horrible cheap Gothic hand, heavily abbreviated, where I can’t tell the difference between “u” and “n”, or between “ui” and “m”.  But I can read more each time I have a go at it.  I might post the two pages here, with what I have done, and see if anyone else can read more.  That might be fun!

Another loose end is that there is a manuscript of the abbreviated “Life” of St Botolph in York, in York Minster Library, and I had forgotten all about it.  Aargh!  I’ve collated all the other manuscripts that I know about, but I have no photographs of it.  So on Friday I wrote to the library asking if they could photograph it for me with a smartphone – it can only be 3-4 pages – or let me do so.

I wouldn’t mind a quick trip to York, if they’d let me photograph.  I wouldn’t mind visiting the Minster library.  The weather isn’t great, but I do have history with the city.

I first visited York back in 1981, when my sister applied to do a degree there.  It was the time of the Yorkshire Ripper, and my parents sent me along with her as bodyguard when she went to interview.  While she was being interviewed, I popped round to Vanburgh College on the campus.  A girl from my class at school was studying there, and I had had a huge crush on her.  Sadly, when I appeared at her room unexpectedly, I found that my reception was much less warm than I had hoped.  She passed out of my life in 1983, and died young, poor girl, nearly twenty years ago.

Very many years later I stopped in York for a couple of days, when I did a trip up to visit Hadrian’s Wall one summer.  I stayed in the Hilton Hotel, which was small but very smart.  For some reason I stumped up for a “Queen” room with a view of Clifford’s Tower – one of the best rooms in the hotel.

Years later again, before Covid, I went there for a few days with my girlfriend, and we got two Queen rooms in the same hotel, and explored the city together.  A few years later again, after Covid; we stayed again, in what we found had become a very run-down hotel where the air-conditioning had failed and the furnishings were barely above Premier Inn standard.  This was in the summer, and the lack of aircon was burdensome.  I remember talking to a businessman in the corridor, and commiserating about the standard.  Yet the room rates and cost for breakfast were as luxury as ever.  I ended up getting breakfast by walking to the nearby Marks and Spencer cafe, at a fraction of the price.  So I’d have to stay somewhere else if I go to York.  But it wouldn’t matter.  I could even visit their Christmas market.

All the same, I do have hopes that the “staff” will help me.  I received an automated email response, that they would get back to me in “less than eight weeks.”  But I don’t expect that means anything sinister.  Most cathedrals rely on a handful of volunteers to do everything, with a tiny number of permanent staff, so can make no guarantees.  Generally I have found the libraries and archives very helpful indeed.

I’m also working on an article about the origins of All Saints Day.  But not until I can kill off Botolph, once and for all.  We’re so close!

Barsabas of Jerusalem – the earliest witness to the Trinity?

In the Iviron monastery on Mt Athos, there is a Georgian manuscript (shelfmark: Athos Iviron 11) which contains a work with the title, “The Word of Saint Barsabas, Archbishop of Jerusalem, about our Savior Jesus Christ and the Churches [and about the High Priests].”  The text itself is a homily, in which various Old Testament figures and events are shown to be “types”, prefigurings, of Christ and the church.  The Georgian text is itself a translation of a lost Greek original.   The work is assigned the reference number CPG 1685.

The text was first published, together with a French translation, by Michel van Esbroeck in the Patrologia Orientalis 41 (1982), pp.151-256.  A draft text and English translation has been made by David P. George, which is accessible on Academia.edu here.

There seems to be only a limited amount of scholarship about this work.  Esbroeck considered that the theology of the work meant that it should be dated early, to the second or third century AD.  He dismissed the identification of the author as an Archbishop of Jerusalem, still less Barsabas Justus, the third bishop of Jerusalem, but agreed that it was probably written at that location.  Quite sensibly van Esbroeck refuses to call the author “pseudo Barsabas”, when we know so little about any Barsabas at all.

There is a useful discussion of the work and its contents by Dmitry F. Bumazhnov, “The Jews in the Neglected Christian Writing “The Word of Saint Barsabas, Archbishop of Jerusalem, about our Saviour Jesus Christ and the Churches” of the Second – Early Third Century”, in: Scrinium 4 (2008), 121–135.  Online here.  A search on Bumazhnov indeed brings up a number of other papers discussing Barsabas.

On his Twitter account recently, Dr. George included a quote suggesting that, at such a date, this could be the earliest mention of the Trinity:

Now this is very interesting, but obvious raises issues.  The word “Trinity” is a fingerprint, and we all know that that word originates with Tertullian, around 217 AD.  I don’t feel competent to enter into the various issues about the supposed date of the work.  But I would be very wary of interpolation or gloss here.  Generally when a word or phrase is the badge of a controversy, we need to date any text using it later than the beginning of that controversy.  When a work clearly written earlier uses it, we may well suppose that a later copyist has added a clarifying note.  I would suspect that this is what has happened here.