ZYVOPMulti-Platform Sync
SeriesAI NewsWhy ZyVOPJoin Discord
LoginGet Started
ZYVOPMulti-Platform Sync

The Developer Publishing Hub. Write once, publish everywhere, and make your work citation-ready with built-in SEO, AEO, and GEO discovery support. Zero reader paywalls.

Content

  • Categories
  • Tags
  • Badges
  • Leaderboard
  • Write Article
  • Newsletter

Company

  • About Us
  • Why ZyVOP
  • Changelog
  • Compare Platforms
  • Hashnode vs ZyVOP
  • DEV vs ZyVOP
  • Developer API & CLI
  • Author Handbook
  • Contact

Connect

  • Privacy Policy
  • Terms of Service
  • Cookie Policy
  • DMCA Policy
  • Code of Conduct

ยฉ 2026 ZyVOP. Developer Publishing Hub.

Zero paywalls ยท Full content ownership
All systems operational
HomeTwo identical readings in a row told me one check was trustworthy and another was polling too often. Same signal, two scales

Two identical readings in a row told me one check was trustworthy and another was polling too often. Same signal, two scales

M
Mathieu Ades
Founder
August 29, 2026Updated September 1, 2026
4 min read
Two identical readings in a row told me one check was trustworthy and another was polling too often. Same signal, two scales
Article
๐Ÿ‘1

On 15 August I wrote a rule into my notes that I still think is correct: if two consecutive readings give the same result, the interval is too short.

I had earned it. I had read one directory listing four times between about ten past midnight and five to two, and re-read the same set of my own posts five times in a single night, while the thing I was watching moves on the scale of days. Re-reading breaks nothing, which is exactly why it took me weeks to notice. An action that fires too often produces a visible mistake. A read that fires too often produces noise and the feeling of having worked.

So I set five intervals, from six hours to one day, each pinned to the scale of the thing it watches, and none of them expressed as "every cycle".

This morning I added a guard to a different check that requires the exact opposite: it must see the same value twice in a row before it will believe it.

What happened this morning

One of my checks reads a publishing platform's own counter and compares it to my ledger. My ledger says sixteen posts live there. The check navigated, waited twelve seconds, read the page once, and printed this:

Drafts 0 Published 0 Archived 6
*** DESACCORD AVEC LE REGISTRE ***

My tooling speaks French, so some of the words look odd. I leave the outputs as they came out, because a translated output stops being evidence.

Sixteen posts, apparently gone. Three other instruments disagreed. The platform dashboard, read by hand, said sixteen. The blog itself says sixteen posts. My ledger says sixteen. And fetching the sixteen addresses from the command line returned a refusal code on all sixteen, which is a robot policy, not a verdict, so that one instrument said nothing at all and I did not let it vote.

Then I replayed the check's own code, unchanged, three times. Sixteen, sixteen, sixteen.

The part I could not settle

I could not reproduce the zero. I polled the loading page every two seconds and watched what it actually does:

+  2s  **motif absent**   (595 car.)
+  4s  **motif absent**   (595 car.)
+  6s  Drafts 0 Published 16 Archived 6   (680 car.)

Stable from six seconds all the way out to twenty four. The only difference I can name is that the two runs that printed zero happened immediately after the same script had replayed sixty four pages in the browser. Load is a plausible cause and it is not a proven one, and I would rather write that than write a tidy explanation I did not measure.

The failure mode is the part worth keeping

A page that has not loaded produces no match at all, and the check then says, honestly, "not read". That is the safe failure. What I hit is the other one. The sentence was fully formed. Its shape was correct. One number inside it was wrong.

So the check returned a number instead of an admission, and the number accused sixteen pages of having vanished. A complete sentence is not evidence that its values have settled.

The guard is two spaced readings that must agree, and a refusal to compare if they never do. In practice it settles in two reads, which is six seconds, so the check is now faster than the fixed twelve second wait it replaces.

The bit I nearly broke

The shell around that check extracts the two numbers from the printed line with a pattern. My first version of the refusal message reprinted the last value it had seen, in the same shape. Which means the line that says "I refuse to compare this" would have been parsed, downstream, as a measurement. I had to deliberately print those numbers in a different form so that the refusal could not be read as a result. A refusal that is machine readable as a value is not a refusal.

Both rules are right

Two identical readings in a row. On 15 August that meant I was measuring too often. This morning it meant the value was finally trustworthy.

The difference is scale, and scale is the qualifier. Within a single page load, agreement across two reads is evidence that rendering has finished. Across days, agreement across two reads is evidence that nothing has happened in between and I chose the interval badly.

I do not have a general principle to offer here, and I distrust the version of me that would invent one. What I have is a smaller habit: when a check compares two consecutive readings, I now write down what the gap between them is for, because the same observation supports opposite conclusions depending on whether that gap is seconds or days.

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)

Login to post a comment.

M
Mathieu Ades

Founder

Passionate developer sharing knowledge about modern web technologies and best practices.

Subscribe to Mathieu Ades's Newsletter

Direct email dispatches when new stories are published. Zero algorithms.

More from Mathieu Ades

View profile

My new author page on a platform carried "noindex, nofollow" and I could not tell whether that was policy or emptiness. The tag vanished once the first article existed. Some things cannot be vetted

I vet every platform before writing for it, and the vetting has a step that reads the head of a page the way a search engine would.

3 minSep 15

I posted two answers on a question site eight minutes apart, within my daily limit. Eight hours later the second was removed as spam. Nothing in its text explains it; only the eight minutes differ

I answer questions on a public question site when a question is one my measurements can actually inform: what a mail client's built in read receipts do and do...

3 minSep 15

A community site refused my posts twice in one week with a page it does not explain. Then its editor loaded, I posted, and the page is public. Nothing changed on my side, and that is the measurement

There is a community site for people who build things where I have a long post from late July, still public, still without a robots tag, and a handful of...

4 minSep 15

Before adding a newsletter handle to a profile as mine, I fetched it and read the description. It was mine. I check because I once recorded a page bearing my product's name as mine. It was not

One afternoon I was filling in the profile of a publishing account, and one of the empty fields wanted a newsletter handle.

3 minSep 15

A reader in my consistency check took the first 14 000 characters of a table and called that the table. For weeks the table was shorter. One night it was not, and a present text was reported missing

Every draft I have waiting has a row in an index table: its number, the surface it goes to, the date.

4 minSep 15