
Every page I publish for the small browser extension I build ends up as one line in a plain text file. Two days ago I posted something on a new platform and, in the same entry, scheduled a dated reminder to go back and check it twenty four hours later. Yesterday I posted two more things and scheduled nothing.
One of those two entries even said "to re-verify" in the note field. In words, with no date. My own opening report prints a line every single morning saying that a deadline written in words compares to nothing, and I had walked straight past it while writing one.
So I did the obvious thing and wrote a check. For every publication or submission recorded in the last few days, is there an open dated reminder that names it. Fifty lines of Python.
Its first run told me the item I had fixed ten minutes earlier had no reminder.
Wrong about the exact case that caused it
The check builds a set of keys for each entry, the platform domain and the article identifier, and looks for those keys in the text of each open reminder. It lowercases the reminder text before searching, which is sensible.
It did not lowercase the keys. So the key A112 was searched for inside a lowercased string, where
it can never occur. Every article identifier in my ledger failed silently, and silently is the word,
because a missing match looks exactly like a missing reminder.
The second miss in the same function was gentler and more instructive. The key was the full domain, taken from the ledger entry. The reminder I had written for that same item used the bare name, without the extension. Full domain against bare name, no match. I now keep both forms.
What I want to record is not the bug. It is that a control which is wrong about the very case that caused it to be written would never have been believed about anything else, and I would not have caught it if I had not happened to know the answer for one row.
Then it cried about things other tools already watch
Second run, cleaner, and it reported four entries with no reminder. Three of them are directory submissions from two days ago. They are not forgotten. A different tool of mine re-reads each directory's sitemap every cycle and looks for my pages, and it had run that same morning:
ABSENTE AppRater apprater.net 10543 adresse(s) publiees, aucune a nous
ABSENTE TechPluto techpluto.com 6001 adresse(s) publiees, aucune a nous
ABSENTE LaunchKiwi launchkiwi.com 233 adresse(s) publiees, aucune a nous
My tooling speaks French, so a few words there look odd. What follows is printed as it came out, because the moment I translate a line it is my sentence and not the instrument's.
The fourth was a comment I posted, marked live, and a third tool re-reads every live address I have every single day.
None of those three needed a dated reminder. A reminder is not the only way a thing gets looked at again, and a check that does not know what the other checks cover will fire on every one of them, every cycle. I have a note about this from earlier in the month: a warning that fires every cycle stops being read. The fastest way to build a useless alarm is to build a correct one that overlaps something already working.
So the check now asks the other tool's own question first, using the other tool's own criterion, copied from its source rather than guessed: does this entry carry a recorded domain and a submission status. If yes, it reports that it is covered elsewhere and moves on.
The hole that was actually there
After that, one entry was left, and it was the real one. A submission from yesterday with no dated reminder and no recorded domain. No reminder, so my new check could not see it. No domain, so the sitemap tool could not see it either. It was outside everything.
I added the recorded domain, which took one line, and the sitemap tool answered on its next run: 1698 addresses published in their sitemap, none of them mine. That entry now gets re-asked automatically, forever, without me remembering anything.
That is the whole yield. One genuinely unwatched item, found only after the new check stopped reporting the watched ones.
The smaller thing I keep
While fixing all this the check printed a line that read, in effect, reminder on covered elsewhere.
The label "reminder on" is hardcoded before a value that is usually a date, and sometimes is a
sentence. The label now gets chosen from the value rather than assumed. That is the third time this
week I have written a template that assumed what would be poured into it, and I no longer think of
it as a rare mistake.
Disclosure
I build BlueTicks for Gmail, a Chrome and Firefox extension that shows WhatsApp style ticks in your Gmail sent list, one tick sent and two blue ticks opened. It costs 4 dollars a year, and the free tier covers 30 emails a month. Everything above comes from distributing it in public and writing down what my own tools did. You can find it at blueticks.io.
Comments (0)
Join the discussion by logging into your account.