Skip to content

Add a blog and a canonical resources page to t27.ai - #637

Closed
gHashTag wants to merge 12 commits into
mainfrom
feat/site-blog-resources
Closed

Add a blog and a canonical resources page to t27.ai#637
gHashTag wants to merge 12 commits into
mainfrom
feat/site-blog-resources

Conversation

@gHashTag

@gHashTag gHashTag commented Aug 9, 2026

Copy link
Copy Markdown
Owner

What

Two new routes on t27.ai, and the .gitignore rule that was silently blocking them.

  • #/resources — the canonical list of every paper, Zenodo DOI, upstream patch, channel and identity. Each row carries the date it was last checked against the live resource and a live / broken / unverified status. The discrepancy list renders first, rather than being quietly corrected.
  • #/blog — the article surface. Holds the open-gigabit-Ethernet write-up, currently published: false pending measurements only the author can supply (board model, exact reproduction values, power-on success rate).

Why the .gitignore change

Line 361 carried a bare website/, which matches apps/website/ at any depth. 122 of 126 src files were already tracked, so edits kept working and nobody noticed — but every new file was silently excluded, including these four. Build output is already handled by the tracked apps/website/.gitignore, so the rule had no remaining purpose.

Verified after removal: exactly the intended files became visible, nothing else in the tree was picked up.

What building it found

  • The corpus has ten Zenodo DOIs, not the three the profile listed — a whole B-series, one of them (B007, 228 views) the most-viewed record in the corpus and advertised nowhere.
  • Two of the three listed DOIs were labelled wrongly. Fixed separately in the profile README.
  • arxiv.org/a/vasilev_d_1 returns 404 — the three arXiv papers do not resolve to one author page.

The science in the blog post

The write-up carries a derived timing theory rather than a narrative: the frame-length margin law (growth in sqrt(log N), not sqrt(N)), a dual-Dirac reconciliation showing that an apparent feasibility violation came from reading total jitter as a per-edge RMS, and a bounded-DJ coverage hypothesis that is explicitly labelled unfitted — three parameters against three censored points carry no evidential weight, and the write-up says so.

Checks

  • tsc --noEmit0 errors in the new files (231 pre-existing elsewhere, untouched)
  • vite build — passes
  • vite preview — both routes render

Not included

Deploying. deploy-pages.yml triggers on apps/website/** but uploads docs/build/; whether it publishes a Vite build of this app is unverified and should be confirmed against a real Pages run before trusting it.

🤖 Generated with Claude Code

gHashTag and others added 12 commits April 24, 2026 23:05
…nary, Hybrid

Added comprehensive catalog documenting all model architectures:
- JEPA-T (Ternary Joint Embedding Predictive Architecture)
- Neural Cellular Automata (NCA) with entropy bands
- VSA (Vector Symbolic Architecture)
- Ternary models (balanced ternary, representation ADR)
- Hybrid models (v2.0-v2.1 implementation reports)
- VIBEE model specifications

Updated README.md with reference to complete catalog.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Trios now hosts a unified LOGS workspace at Cmd+3 (third Razum petal).
Keep the canonical QueenUILib world label aligned with the hosted route.

Co-Authored-By: Claude Opus 4.8
… no more

The site is the source of truth for every public resource, so it needs a page that
says so and an article surface that other channels link back to.

.gitignore carried a bare `website/`, which matched apps/website/ at any depth.
122 of 126 src files were already tracked, so edits kept working and nobody noticed --
but every NEW file was silently excluded, including these. Build output is already
handled by the tracked apps/website/.gitignore, so the rule had no remaining purpose.

#/resources lists every paper, Zenodo DOI, upstream patch, channel and identity, each
row carrying the date it was last checked and a live/broken/unverified status. The
discrepancy list renders first rather than being quietly corrected. Building it found
that the corpus has ten Zenodo DOIs rather than the three the profile lists, and that
two of those three are labelled wrongly.

#/blog holds the open-gigabit-Ethernet write-up, unpublished pending measurements the
author has to supply. It carries the derived timing theory: the frame-length margin law,
the dual-Dirac reconciliation that dissolves an apparent feasibility violation, and a
bounded-DJ hypothesis that is explicitly labelled as unfitted rather than dressed up as
a result.

tsc reports no errors in these files; vite build passes; both routes render.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reddit approved the restricted -> public request the same day it was filed. Verified
against about.json: subreddit_type "public", 1 subscriber.

Worth recording why it took a request rather than a click. Reddit does not expose this
as a toggle -- Mod Tools > Privacy > Community type opens a review form demanding a
written reason under 500 characters, handled by admins. Four scripted attempts to flip
the radio did nothing, in both the new and the old interface, because the control is
inert by design. "The control does not respond" was not the same as "the automation is
broken", and reading it that way would have sent the next hour in the wrong direction.

The permission blocker is gone. The content gap is not: two posts, both by the owner,
silent for four months.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Three gaps in the draft were marked [FILL IN] because I did not have the facts. They were
in a public source the whole time -- openXC7/nextpnr-xilinx issue #114, authored on the
bench with an A/B/A/B bitstream flip:

- board and part: ALINX AX7203, xc7a200tfbg484-2, 125 MHz RXC on SRCC pin B17 into a BUFG,
  nextpnr-xilinx stable-backports f8e7643 + the open patches, Yosys 0.63, prjxray via the
  regymm/openxc7 image
- the blocker-6 text was understated: the IDDR does not capture at all, in any edge mode.
  "Q1 dead, Q2 alive" was withdrawn upstream and the post now says so
- the methodology section that was a placeholder is now the actual story: liveness was
  detected with a sticky OR, which cannot separate a toggling output from one stuck at 1.
  The complementary sticky zero showed both outputs inert

Added issue #114 and issue #65 (SAME_EDGE_PIPELINED, janrinze, Mar 2025) as receipts, so
every claim in the post resolves to something a reader can open.

Two gaps stay open and stay marked: the power-on success fraction, and how the skew step is
set. Neither is in the public record, and inventing them is exactly what the honesty rules
at the top of this file forbid.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…open

The skew-step mechanism stays blank, but "not supplied yet" and "looked for and not
found" are different claims and the second one is checkable. Searched 2026-08-10:
openXC7 issues #109-#115, local trees (trinity, t27, tri-net, Downloads, Desktop),
GitHub code search across all repositories, and the branches of the
gHashTag/nextpnr-xilinx fork -- which carries a branch per PR but is not code-indexed,
so a negative there is weaker than the rest and is not claimed as conclusive.

The previous commit closed two gaps that had been marked as blocked-on-the-user for two
loops and were in issue #114 the whole time. Recording the search scope is what stops the
next pass from either re-running it or, worse, inventing the value.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…aim of my own

Retrieved the full source ("Gigabit Ethernet without a vendor toolchain", 23,738 chars)
once the Google session was available, and it closed both remaining gaps and corrected
three things the post had wrong.

- power-on: 23 of 48 (48%, 95% interval 34-62%), independent of the RTL across four
  designs. Suspects left: switch, PHY strap resistors at reset, cabling. Cheapest untried
  experiment needs no code -- two boards back-to-back, no switch
- skew: a PHY register over MDIO in 0.06 ns steps; the 26-to-31 span is five steps, ~300 ps
- sigma ~= 470 ps was NEVER MEASURED. It is derived from that five-step span via the
  frame-length law, so it cannot then corroborate that law. An independent measurement
  near 50 ps would falsify the explanation. The post now says this instead of quoting
  470 ps as a measurement
- "millions of frames" replaced by the actual run: 83,543,690 and 78,026,079 verified
  transactions, 0 divergences, 215,932 ops/s, 4.71/4.74 us round trip, three AX7203 boards
- blocker 1 given its real number: the path was 75,492 wires, the search stopped at 50,000

Публикация остаётся за автором: published: false не тронут.

Забрал полный первоисточник, когда открылась сессия Google. Он закрыл оба оставшихся
пробела и опроверг три утверждения самой статьи -- главное из них моё: 470 пс не измерялись,
это предсказание, выведенное из той же теоремы, которую им же и подтверждали.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
published: false -> true. Every [FILL IN] is closed and every number resolves to something
a reader can open: six PRs, issues #114 and #65, and arXiv:1903.10407.

Verified against a local preview before flipping: the index lists it and the article renders
in full -- the skew table, the FER table, the dual-Dirac table, the three theorems, the
nine receipts.

Two things stay in openQuestions rather than being smoothed away: the link negotiates on
23 of 48 power-ups with the cause open, and sigma ~= 470 ps is a prediction derived from the
frame-length law, not a measurement, so it cannot corroborate that law.

Публикация статьи: все пробелы закрыты, каждое число ведёт на проверяемый источник.
Нерешённое оставлено нерешённым.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gHashTag

gHashTag commented Aug 9, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #638.

This branch was created from a stale local HEAD and carried 112 unrelated files — QueenUI, crates, docs — into a pull request titled "add a blog". It also conflicts with main, because the local origin/main here is a branch shadowing the remote-tracking ref and still points at April's 65be0b55a rather than c4db005f.

#638 is the same work as six files on top of the real main, typechecked and built.

@gHashTag gHashTag closed this Aug 9, 2026
gHashTag added a commit that referenced this pull request Aug 9, 2026
Six files on top of the real main. The earlier attempt (#637) was branched from a stale
local HEAD and swept 112 unrelated files -- QueenUI, crates, docs -- into a PR titled
"add a blog". This replaces it.

- apps/website/src/pages/Blog.tsx — index + article, with the "not proven / still open"
  block rendered BEFORE the body rather than as a footnote
- apps/website/src/data/blog/posts.ts — first post: gigabit Ethernet on Artix-7 with no
  vendor toolchain, published
- apps/website/src/pages/Resources.tsx, src/data/resources.ts — the declared source of
  truth for every DOI, arXiv ID, upstream PR, channel and identity, each row carrying its
  own verified date and a live/broken/unverified status
- src/main.tsx — three routes
- .gitignore — drop the bare `website/` rule: it matched apps/website at any depth and
  silently excluded every NEW file in the site source while already-tracked files kept
  working, which is why this directory looked fine for months

Шесть файлов поверх настоящего main. Предыдущая попытка ветвилась от устаревшего
локального HEAD и утащила в PR 112 посторонних файлов.

Co-authored-by: Dmitrii Vasilev <admin@t27.ai>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
github-actions Bot added a commit that referenced this pull request Aug 9, 2026
feat(website): add a blog and a canonical resources page (#638)

Six files on top of the real main. The earlier attempt (#637) was branched from a stale
local HEAD and swept 112 unrelated files -- QueenUI, crates, docs -- into a PR titled
"add a blog". This replaces it.

- apps/website/src/pages/Blog.tsx — index + article, with the "not proven / still open"
  block rendered BEFORE the body rather than as a footnote
- apps/website/src/data/blog/posts.ts — first post: gigabit Ethernet on Artix-7 with no
  vendor toolchain, published
- apps/website/src/pages/Resources.tsx, src/data/resources.ts — the declared source of
  truth for every DOI, arXiv ID, upstream PR, channel and identity, each row carrying its
  own verified date and a live/broken/unverified status
- src/main.tsx — three routes
- .gitignore — drop the bare `website/` rule: it matched apps/website at any depth and
  silently excluded every NEW file in the site source while already-tracked files kept
  working, which is why this directory looked fine for months

Шесть файлов поверх настоящего main. Предыдущая попытка ветвилась от устаревшего
локального HEAD и утащила в PR 112 посторонних файлов.

Co-authored-by: Dmitrii Vasilev <admin@t27.ai>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant