Compare commits

..
5 Commits
49 changed files with 586 additions and 11 deletions
+8
View File
@@ -2,6 +2,14 @@
Newly nominated sources awaiting review before promotion to `sources.json`. Each entry says where it came from and the case for adding it. Vet manually, then move to the main list. Newly nominated sources awaiting review before promotion to `sources.json`. Each entry says where it came from and the case for adding it. Vet manually, then move to the main list.
## 2026-08-07
- **The Pudding — pudding.cool** — https://pudding.cool/ — surfaced via Kottke linking their lawn-mowing coverage-path study, captured this run. Long-running visual-essay studio; every piece is an interactive built from an original dataset, which is exactly the shape of find this site keeps reaching for. The highest-value nominee on the board — Kottke has now surfaced them repeatedly and we are getting them secondhand each time. Has an RSS feed; low volume, near-zero noise.
- **Everything Machine — everythingmachine.io** — https://everythingmachine.io/ — publisher of *The Phone in Your Hand*, captured this run. Scrollytelling teardowns of everyday objects, designed mobile-first. Only one piece is visible so far, so vet for whether a second exists before promoting — this may be a one-off rather than a source.
- **Comicbooks.com** — https://comicbooks.com/ — surfaced via Open Culture, captured this run. Beyond the 20,000-comic reading room it runs curated *exhibitions* (pulps, penny dreadfuls, early *Life* and *Vanity Fair*, the Chōjū-giga scrolls) that are each a find in their own right. Check whether the exhibitions page has a feed or a datable index.
- **FlowingData** — https://flowingdata.com/ — surfaced as Kottke's credited route to Reading Maps ("via FlowingData"). Nathan Yau's long-running data-visualisation blog; daily cadence, high hit rate on the exact category The Pudding occupies. Much of the good material is behind a membership wall — vet how much of the feed is free before promoting.
- **Beijaflor Software — beijaflor.io** — https://beijaflor.io/blog/ — publisher of QWERTY MIDI, captured this run. Pedro Tacla Yamada's audio-software blog; low volume, but each post ships a working browser instrument rather than describing one. Quarterly check rather than a daily scan.
## 2026-05-30 ## 2026-05-30
- **South London Scientific** — https://southlondonscientific.com/ — surfaced via Show HN's Helios solar calculator. Independent applied-physics studio publishing small civic-utility tools; worth quarterly check for similar single-purpose UK infrastructure calculators. - **South London Scientific** — https://southlondonscientific.com/ — surfaced via Show HN's Helios solar calculator. Independent applied-physics studio publishing small civic-utility tools; worth quarterly check for similar single-purpose UK infrastructure calculators.
+176
View File
@@ -5086,3 +5086,179 @@ Also considered and not built: a straight travel cluster (`braun-collection`, `p
Weekly catch: not due. `2026-08-02-the-weeks-catch` covers July 27 August 2, inside the trailing seven days. Weekly catch: not due. `2026-08-02-the-weeks-catch` covers July 27 August 2, inside the trailing seven days.
Backlog check: 17 unbundled shortlisted finds (15 eligible — `fieldbar-mini-bar` and `do-your-whisky-whiskey-making-kit` are legacy alcohol finds and permanently ineligible for new bundles). Under the ~25 threshold, so a single themed bundle rather than a `cluster-bundles` run. Backlog check: 17 unbundled shortlisted finds (15 eligible — `fieldbar-mini-bar` and `do-your-whisky-whiskey-making-kit` are legacy alcohol finds and permanently ineligible for new bundles). Under the ~25 threshold, so a single themed bundle rather than a `cluster-bundles` run.
## 2026-08-07 — capture run
**Gap note first, because it shapes everything below.** The last pipeline run was 2026-08-04 and it stopped after the bundle stage — no reviews, no copy edit, no pick of the day. 08-05 and 08-06 did not run at all. So this run sweeps a three-day feed window, and picks up the 08-04 review candidates that were never graduated.
Sources scanned: 59 total — 40 feeds fetched (all HTTP 200), 4 of those the Reddit login wall, 1 curl (Kikkerland), 14 `fetch: skip`, and the webfetch-only entries (Outlier, AFAR, Wikiquote) left to their cadence windows. Cadence gating was ignored again this run: with three days of backlog, a narrow sweep would have compounded the gap rather than closed it.
Productive sources: Atlas Obscura (5), Kottke.org (4), Hacker News — Show HN (3), The Awesomer (1), Brett Terpstra (1), Open Culture (1), Wallpaper* Travel (1), This Is Why I'm Broke (1), A.Word.A.Day (1), Quote Investigator (1), icanhazdadjoke (1) — 11 sources, 20 finds.
Captured finds:
- morningprint — morningprint — source: Hacker News — Show HN
- eclipse-times-2026 — Eclipse Times 2026 — source: Hacker News — Show HN
- qwerty-midi — QWERTY MIDI — source: Hacker News — Show HN
- reading-maps — Reading Maps — source: Kottke.org
- the-phone-in-your-hand — The Phone in Your Hand — source: Kottke.org
- lawn-mowing-pudding — Why Some People Mow a Lawn Better Than Others — source: Kottke.org
- past-catalog-archive — Past Catalog Archive — source: Kottke.org
- the-mushroom-shop — The Mushroom Shop — source: Atlas Obscura
- the-pickle-guys — The Pickle Guys — source: Atlas Obscura
- statue-of-unity-almaty — Statue of Unity — source: Atlas Obscura
- hidden-figures-monument — Hidden Figures Monument — source: Atlas Obscura
- tour-aux-figures — Tour aux Figures — source: Atlas Obscura
- filerouter — FileRouter — source: Brett Terpstra
- golden-age-comics-archive — Comicbooks.com Reading Room — source: Open Culture
- matchaful-ritual-bar — Matchaful Ritual Bar — source: Wallpaper* Travel
- pac-man-otamatone — Otamatone Melody: PAC-MAN — source: The Awesomer
- coodle-cuddling-pillow — Coodle — source: This Is Why I'm Broke
- dowfart — dowfart — source: A.Word.A.Day
- quote-sit-there — Don't just do something. Sit there. — source: Quote Investigator
- joke-eggs-break-up — They will break up too soon — source: icanhazdadjoke
Shortlist (12, ranked):
1. morningprint — a receipt printer that publishes one edition a morning and nobody can subscribe; the hero (two prints pinned to a corkboard, July 3 answered by July 4) is the best photograph in a fortnight [review candidate]
2. the-phone-in-your-hand — fourteen layers into the object you are holding while you read it; opens by asking you to touch a window and then the screen [review candidate]
3. the-pickle-guys — the last barrel of a district that had eighty pushcarts; a real story with a fermentation clock attached [review candidate]
4. reading-maps — the Pequod, the Orient Express and the Odyssey drawn on one atlas at real coordinates
5. the-mushroom-shop — one kingdom, no white buttons, and a hand-painted window that states the thesis
6. eclipse-times-2026 — five days out, and it tells you which floor of your building can see it
7. lawn-mowing-pudding — 49 squares, 14,589 routes, all 12 perfect solutions found
8. golden-age-comics-archive — 20,000 restored comics sorted into the genres that actually filled the racks
9. filerouter — Open With with rules; the first honest answer to one-default-app-per-type
10. statue-of-unity-almaty — public art that is one hand short and expects you to close it
11. matchaful-ritual-bar — a room built around what your hands are doing
12. qwerty-midi — the keyboard already under your hands, relaid as four bass strings
Not shortlisted (8): past-catalog-archive, hidden-figures-monument, tour-aux-figures, pac-man-otamatone, coodle-cuddling-pillow, dowfart, quote-sit-there, joke-eggs-break-up. `tour-aux-figures` was the closest call and lost on its hero, not its subject: the only recoverable image is a wide park lawn with the tower small on the horizon, and a 78-foot sculpture that reads as a smudge at tile size is not shortlist material. `hidden-figures-monument` is a good find whose Atlas Obscura copy contradicts itself on Katherine Johnson's ages (high school at 15, college at 14); the find avoids the numbers, but that is not a base to graduate from.
Amazon links added: 1 (coodle-cuddling-pillow → B07B4JZC5G, the Coodle® Pillow, tunnel-shaped, made in USA — the listing independently confirms the four internal arched braces, which the This Is Why I'm Broke copy does not mention). Checked and omitted: pac-man-otamatone (Amazon carries the Otamatone Melody PAC-MAN line but as one ASIN *per character* — Inky, Pinky, Blinky each separately — so no single listing matches a find about the set; a variant link would misdescribe it).
Rejected at the bar — recorded because it was the best-looking thing in the sweep:
- **Altar II** (Electronic Materials Office, via Show HN, "I spent 2 years designing a mechanical Magic Keyboard") — a 4.75mm fully mechanical low-profile board with a detachable clickable dial, and the studio photography is the best product shot captured in weeks. Dropped anyway: the site sells a **reservation** ($349, $249 to reserve), the typing-sound sample is labelled "recorded on pre-production hardware", and nothing ships. That is the not-yet-shipping clause, which the daily-finds bar states flatly. Worth re-checking when it ships — it would be a strong review and a strong pick.
- **Poetry Camera** (via Kottke) — a camera that prints a poem instead of a photograph. poetry.camera is hard-blocked by Cloudflare to curl at both apex and www, so availability could not be verified from inside the run, and no hero was recoverable. It is also the same idea as `morningprint`, which is verifiable and has a photograph. Held rather than captured blind.
Media notes:
- 15 of 20 finds carry a hero. The five without: eclipse-times-2026 (the page renders its own 3D scene and ships no static image), past-catalog-archive (only small scanned GIF catalogue covers), and the three text-only finds.
- **All five Atlas Obscura heroes came through the base64 proxy trick recorded on 08-04, but three of the thirteen candidate images needed a fix to that recipe** — see source maintenance. Resolutions ranged 896×1184 to 3840×2157, against the 300×200 crops the feed hands out.
- `morningprint`'s hero is the project's own `example/example_2.jpeg` from the repo rather than the GitHub OG card, which is the auto-generated repo-name graphic and would have been a bad image. Same call for `filerouter` (Brett Terpstra's own radial-menu screenshot, not the OG banner) — but note `starboard`, a genuinely good Show HN Mac utility, was dropped partly because GitHub's OG card was the *only* image available. That is now the sixth-plus outcome decided by the hero gap.
Source maintenance:
- Reddit ×4 (r/macapps, r/BuyItForLife, r/shortcuts, r/dadjokes) — re-measured, **tenth consecutive dark run**. All four `.rss` endpoints return HTTP 200 with the ~300KB login wall; `client_credentials` still 401s. Note appended to all four. Held at `as-needed`. Still the highest-value operator fix on the board.
- Atlas Obscura — **corrected the 08-04 hero recipe**. The decoded S3 URL must be percent-encoded before fetching: several place images are named from screenshots and contain literal spaces and U+202F narrow no-break spaces, and curl returns `000` on those. Five of thirteen images this run hit it, including three that were captured (the-pickle-guys, the-mushroom-shop, hidden-figures-monument). The recipe as written on 08-04 would have silently lost them.
- StyleForum — fifth consecutive unproductive run; 34 entries, all today-dated by the last-post sort, all Fluz referral spam or bumped perennials. Held at `as-needed`; note appended. Unchanged operator call.
- Product Hunt — recorded a pattern rather than an action: 50 entries, zero passing the bar, and the feed is now almost entirely B2B AI tooling. Healthy source, no finds in several runs. Not demoted yet.
- Kikkerland — endpoint healthy, newest `published_at` still 2026-03-24. Four and a half months quiet, already `as-needed`, under a year, so no demotion.
- Roadtrippers Magazine — 24 entries, newest still 2026-06-09, now nine weeks stale. The booked 2026-09 `fetch: skip` decision stands.
- Quarterly re-probe: nothing due. Oldest dated `skipReason` is 2026-07-03 (Cool Material, Werd.com); MoMA Design Store re-probe booked for 2026-11-01.
New source nominees: 5 (see candidate-sources.md) — The Pudding, Everything Machine, Comicbooks.com, FlowingData, Beijaflor Software. **The Pudding is the one worth acting on**: Kottke has now surfaced their work repeatedly and we take it secondhand every time. The nominee backlog is 35 entries and has not been vetted since May.
## 2026-08-07 — bundles: They only sell the one thing / Plotted on the actual ground
**Two bundles this run rather than one**, and the reason is the backlog, not ambition. Going in, the unbundled shortlisted pool stood at 24 (22 eligible — `fieldbar-mini-bar` and `do-your-whisky-whiskey-making-kit` are legacy alcohol finds and permanently ineligible), which is close enough to the ~25 `cluster-bundles` threshold that a single five-item bundle would have left the pool larger than it started. Two honest themes existed, so both were built. The pool leaves this run at 13 eligible.
### Bundle 1 — They only sell the one thing
Slug: 2026-08-07-they-only-sell-the-one-thing
Items referenced:
- the-pickle-guys
- the-mushroom-shop
- matchaful-ritual-bar
- perrystead-dairy-vending-machine
Hero floor: 4 of 4 carry a hero. Floor cleared and the ~4 aim met on a four-item grid, which is the best hero density in a fortnight.
The through-line: each is a room that gave up variety on purpose and got better for it. A pickle shop that sells cucumbers by how long they have slept, a grocer stocking one biological kingdom, a bar where the product is the whisking rather than the drink, a vending machine holding only what the creamery across the street made. Not "food places" — that is the category. The theme is deliberate narrowing.
`perrystead-dairy-vending-machine` was pulled forward from 08-04's unbundled pool rather than left for a catch; it is the only one of the four that isn't a room, and it earns its spot by being the most extreme case of the rule — inventory of one, staff of zero.
### Bundle 2 — Plotted on the actual ground
Slug: 2026-08-07-plotted-on-the-actual-ground
Items referenced:
- reading-maps
- a24-on-location-new-york
- nearbywiki
- eclipse-times-2026
- lawn-mowing-pudding
Hero floor: 4 of 5 carry a hero (all but `eclipse-times-2026`, which renders its own 3D scene and ships no static image). Floor cleared, aim met.
The through-line: five things that take what nobody thinks to map and put it on real coordinates — the routes of novels, a city re-indexed by shot instead of landmark, the Wikipedia footnotes under the street you're on, an eclipse over your own building at your own building's height, and thirty thousand mowing routes across one lawn. `a24-on-location-new-york` was pulled forward from 08-04 for the same reason `perrystead` was: it is the same idea as `reading-maps` — fiction laid over real geography — and the two sharpen each other.
**The item that was cut, and why it is worth recording.** `the-phone-in-your-hand` was in bundle 2 until the last pass, on a looser reading of the theme ("things that show you something you already have from the outside"). It went because that phrasing is a feeling, not a through-line, and it would have made the bundle argue two cases at once. It stays unbundled and shortlisted, ranked second on the day, and it goes to the review stage instead — which is the better use of it.
**Weekly catch: judged not due, and this is the second run to make that call.** `2026-08-02-the-weeks-catch` covers July 27 August 2 and is dated inside the trailing seven days, so the rule as written does not fire. Recording a caveat rather than acting on it: because 08-05 and 08-06 did not run at all, five days of finds have accumulated behind that catch, and the two themed bundles above absorbed nine of them. The catch becomes due on 08-09 and should be run then even if a themed bundle also ships — the leftovers from 08-03 (`crotchet`, `kakehashi`, `project-espanol`, `newold-computer`) have now been invisible for four days.
## 2026-08-07 — reviews: morningprint, braun-collection, the-listening-museum
Three graduations. Two of them clear the backlog the 08-04 run left behind — that run named `the-listening-museum` and `braun-collection` as its top two review candidates and then stopped after the bundle stage, so they have been sitting graduated-in-name-only for three days.
### morningprint
Graduated from find captured 2026-08-07, source: Hacker News — Show HN.
Hero: the project's own `example/example_2.jpeg` — two thermal receipts pinned to a corkboard, July 3's single scout rocket beside July 4's full sky. Deliberately *not* the GitHub OG card, which is the auto-generated repo-name graphic.
Category: making (existing).
Fact-check: **the find undersold it, and the README is unusually forthcoming.** Verified against the repo: the canvas is 203 dpi, 1-bit, 48 monospace columns, CP437 only; the trick that makes block art possible is an `ESC 3` line-spacing value calibrated by hand so `░▒▓█` rows fuse instead of leaving a white seam. Cloud half is a single Google Apps Script; the local half is a Raspberry Pi Zero W writing to `/dev/usb/lp0` behind ngrok. The model emits a declarative spec, not bytes. The `continues` field is what produced the July 3 / July 4 pair in the hero — it is designed to stay empty almost every day. MIT-licensed.
The correction worth having: the find said the brief is built from "forecast, season and headlines". Accurate, but the more load-bearing input is a **rolling archive of the last fourteen pieces** that the model is asked to differ from — and the README documents the week that broke: a valid spec with a 3,155-character filler title poisoned the archive, every later prompt replayed it, and within a week the printer was producing the model talking to itself. Now length-bounded and sanitised on read. That paragraph is in the review; a project that publishes its own failure mode is exactly what the charter means by honest beating glossy.
Amazon: n-a (open-source project; the printer is an off-the-shelf Epson TM-T20III but the review is not a product review).
**Over budget at 483 words** against the 250450 band (ceiling 600). Flagged to the copy-edit stage rather than trimmed in place.
### braun-collection
Graduated from find captured 2026-08-04, source: Atlas Obscura.
Hero: the find's own image, recovered on 08-04 through the Atlas Obscura base64 trick at 3790×2853 — hair dryers suspended nose-first on wires with the shaver wall behind. It was called the best photograph of that fortnight in the 08-04 log and it holds up.
Category: places (existing).
Fact-check: **braun-sammlung.de would not resolve** (curl returns 000 at both apex and www, twice), so the check ran against secondary sources instead of the museum's own site — recording that plainly because auto mode treats the fact-check as the substitute for a human eye, and this one is a tier weaker than usual. Confirmed across WhichMuseum and the City of Kronberg: Westerbachstraße 23C, 61476 Kronberg im Taunus; TuesdaySunday 11:0017:00, closed Mondays; €3 adults, €1.50 ages 717, free under 6 and for school groups; wheelchair accessible; run by the Förderkreis BraunSammlung, a volunteer association working with the company; chronological arrangement; every object labelled in German and English with model number, designer and history. The find held up in every particular.
Three claims were **written and then cut** for being unverifiable rather than merely unverified: a named ET66 calculator, "fifteen minutes from a major airport", and "no café". The surviving travel line — Kronberg is the end of the S4, roughly half an hour out of Frankfurt — was checked.
Amazon: n-a (a museum).
### the-listening-museum
Graduated from find captured 2026-08-04, source: Kottke.org.
Hero: `og-keyboard-sounds.png` (2400×1260). **This is the run's one weak hero decision and it should be logged as such:** it is a title card with copy set into it, and the hero rules discourage images carrying overlay text. It was taken anyway because the page renders its interface entirely client-side and ships no other image — there is exactly one asset on the domain — and because the card is the project's own typography rather than sales copy. A real interface screenshot would be better; it would need a headless browser this run does not have.
Category: sound (existing).
Fact-check: **the find's central claim was wrong and the review says so.** The find called it "the only honest way to audition a switch you can't get your hands on." The page's own methodology note says the opposite, in bold: *treat this as a listening museum, not a buying guide*. It cites ThereminGoat on sound tests being limited by microphone, room, host board, keycap set, codec and your speakers, and warns that loudness differences between paired entries are recording variance. The review leads with that correction, which turns out to make the piece better rather than worse — the "alt build" entries (same switch, different host board and mic chain) exist precisely to demonstrate how much of a "switch sound" is plate, case and room.
Also verified and added: 8 switch families, 500+ samples, 40+ years; none of the audio was recorded by the maker (Mechvibes MIT, Bucklespring GPL-2.0, a CC0 HHKB recording on Freesound, keyboardsounds and Monkeytype GPL-3.0, keyBeats and daktilo MIT); the Unicomp Classic shares the Model M's recording because Unicomp still builds on the original IBM tooling.
Amazon: n-a (a free web page).
### Considered and not graduated
- **the-phone-in-your-hand** was the fourth candidate and the closest call of the run. It is genuinely good and it is ranked second on today's shortlist. Held for one reason: its only available image is a 1200×630 OG card, and having already accepted one OG-card hero this run (`the-listening-museum`, above, where there was no alternative at all), taking a second would make it a habit rather than an exception. It is the strongest ungraduated candidate on the board and stays that way until someone can screenshot it.
- **the-pickle-guys** clears the bar on story and hero and was held on access: Atlas Obscura place pages are Cloudflare-blocked, so the mandatory fact-check would have to run entirely against thepickleguys.com, and the interesting claims (eighty pushcarts, the brine timeline) are historical rather than checkable on a shop's own site. It went into a bundle instead, which is the right home for it today.
- **newold-computer** remains ungraduated for the third run running, on the same hero gap flagged when it was captured. Recording the count because it is now the second candidate (with `project-espanol`) held purely on media rather than merit.
## 2026-08-07 — copy edit
Fresh-eyes sonnet subagent over all twenty-five pieces written this run (20 find bodies, 2 bundle blurb-plus-intros, 3 review bodies). **One file changed; everything else left alone.**
The edit:
- `morningprint` (review) — 495 → 431 by the subagent's count, 483 → 419 by the main session's. Six cuts: the "Only the artwork and the verse print. No title, no branding." pair; the closing line about a fresh continuation raising the bar for the next; the "Without that, block art is stripes." tag; "with a one-line style note each"; "not as bytes but"; and the byte-level-protocol clause. Accepted on review — no fact, name, link or claim changed, and the subagent kept the whole July-2026 failure paragraph intact, which was the right instinct and the reason the piece is worth reading.
Two reservations recorded rather than left to be rediscovered:
1. **"Only the artwork and the verse print. No title, no branding." was a fact, not a flourish.** The README states it and the restraint is part of what makes the object good. Nothing became *wrong* — the blockquote's "one copy, no way to subscribe" carries the adjacent idea — but the review is now quieter about the deliberateness of what is left off the paper. Same shape as the `creakwork12` cut on 08-03.
2. **"Without that, block art is stripes."** was the sentence that made the `ESC 3` paragraph land for a reader who does not know what line spacing does. The preceding clause ("makes the block rows fuse into continuous fields") still carries the fact, so this is a readability loss rather than an information loss.
The counting-convention drift is now measured for the fourth run running and is unchanged in character: the subagent ran 12 words high on the one file it counted (495 vs 483 before, 431 vs 419 after), the same em-dash and hyphenated-compound tokenisation gap noted on 08-02, 08-03 and 08-04. Both counts put the finished review inside the 250450 band, so it does not matter here either. Not worth a fix; worth not re-deriving a fifth time.
Format exception honoured again: `joke-eggs-break-up` is 10 words against a 4090 budget. The subagent was told up front that the joke-find format is the setup and the punchline and nothing else (precedent: `joke-cashew` 13 words on 08-03, `joke-ground-beef` 11 on 08-02, `joke-two-eyes` 14 on 08-01) and correctly left it alone.
One non-finding worth keeping: all nineteen other find bodies measured 6182 words against the 4090 band, and the subagent reported finding no ad copy, no throat-clearing openings and no redundant closes in any of them or in either bundle. On a twenty-find day that is the capture stage writing to the charter rather than being trimmed into it afterwards.
## 2026-08-07 — pick of the day: braun-collection
Fresh pick, graduated in this same run. A row of Braun hair dryers suspended nose-first from the ceiling on thin wires, receding into a dark room, with forty years of electric shavers mounted in a single unbroken line along the black wall behind them.
Why it wins: **it is legible, strange and benign in the same glance, with nothing explained.** A stranger sees hair dryers hanging from a ceiling like specimens and wants to know why — and the wanting-to-know is the whole tile. That is the standing test from 08-03 stated the other way round: an image that needs the article to be delightful is a bad front page, and this one needs nothing. Front-page rules checked and clear: a museum of small appliances. Nothing that cuts, burns or explodes, nothing injury-prone or disturbing, no camping gear. Hero is 3790×2853, so the homepage's 480/720/960/1280 ladder is fully covered and retina visitors get a real 2× image — the `cycloidal-gearbox` caveat from 08-02 does not recur.
What it beat:
- **morningprint** — the strongest *piece* of the run and the one I expected to pick going in. It loses on the tile and only on the tile. The hero is two white receipts pinned to a corkboard: at 720px it is a pale rectangle on a pale background, and the thing that makes it wonderful — that the art is drawn in `░▒▓█` and the verse underneath answers yesterday's — is unreadable until you are already on the page. It is a magnificent review hero. Recording this because it is the same axis that ruled out `ssh-place` on 08-03 for a different reason: the front page cannot make you read.
- **the-listening-museum** — ruled out on the hero it was graduated with, which was already flagged at the review stage as the run's one weak asset decision. The only image on the domain is a typographic title card; shrunk to a tile it becomes a banner with type too small to read, which is the worst of both — not a photograph, not a legible headline. **A title card is not a hero.** Recording that as a standing rule, since this is the first time one has reached the pick stage.
- **isopolis** (incumbent) — not displaced for weakness; it was the least-argued pick in a week when it landed. Displaced on freshness, and unusually overdue: it has held the slot since 08-03 because 08-05 and 08-06 did not run at all and the 08-04 run stopped before the pick stage. Four days on a site whose charter names freshness as part of the product is three days too many. A fresh pick beats a good incumbent whenever one qualifies, and today three qualified.
- **The never-picked pool was not needed and so was not opened**, per the 07-29 standing note — three graduations landed and the best of them wins on the merits.
**Pool status, re-measured properly.** Previous entries have carried a figure derived from grepping commit messages; this run counted it from the actual history of `src/data/pick.json` instead. **28 distinct reviews have held the slot out of 121, leaving 93 that never have.** That supersedes the "22 of 118" carried since 07-29 — the older method missed picks whose commit message did not match the grep. The reserve is larger than the log has been claiming, not smaller.
No asset shopping this run. The hero is the find's own image, recovered on 08-04 through the Atlas Obscura base64 route and chosen at the review stage on review-hero grounds; the pick stage did not go looking for a better one, per the 07-29 precedent.
+10 -10
View File
@@ -1,5 +1,5 @@
{ {
"updated": "2026-08-04", "updated": "2026-08-07",
"topics": [ "topics": [
"macos-apps", "macos-apps",
"apple-tips", "apple-tips",
@@ -99,7 +99,7 @@
"cadence": "as-needed", "cadence": "as-needed",
"fetch": "feed", "fetch": "feed",
"feedUrl": "https://old.reddit.com/r/macapps/.rss", "feedUrl": "https://old.reddit.com/r/macapps/.rss",
"notes": "Noisy but high-recall — sort by Top of the week to filter for signal. top/.json is now fully blocked (2026-06/07), and top.rss?t=week 429s too. The www .rss endpoint works but intermittently 429s (2026-07-04/05/06/07); switched feedUrl to old.reddit.com/.rss 2026-07-07 — identical Atom feed, no rate-limit observed. No OAuth needed. 2026-07-22: whole-host login wall for the 2nd consecutive run — old.reddit.com/<sub>/.rss returns a 'Welcome to Reddit' HTML page (~298 KB) instead of Atom for every sub. REDDIT_CLIENT_ID / REDDIT_CLIENT_SECRET are present in the environment but do not authenticate. 2026-07-28 re-measured: the credentials are now correctly *shaped* (16-character ID, 32-character secret — the earlier note that the ID held the app name 'unique-editorial' is superseded), yet all three grant types return HTTP 401 Unauthorized against www.reddit.com/api/v1/access_token: client_credentials with the secret, installed_client with the secret, and installed_client with an empty secret. A correctly-formed pair failing every grant points at the app registration itself — revoked, deleted, or the secret rotated without the environment being updated — not at a formatting mistake. Regenerating the secret on the Reddit app page is the fix. Demoted daily → as-needed rather than fetch:skip so the source is not dropped while that is being fixed; restore cadence:daily once OAuth returns a token. Re-measured 2026-07-29 (seventh consecutive dark run): unchanged — REDDIT_CLIENT_ID is a correctly shaped 16-character ID with a 32-character secret, the token endpoint still returns HTTP 401, and the anonymous .rss endpoint still serves a ~300KB login wall. Operator fix remains: regenerate the secret on the Reddit app page. Re-measured 2026-08-01 (eighth consecutive dark run): unchanged in every particular — old.reddit.com/<sub>/.rss still serves a ~300KB 'Welcome to Reddit' login wall to a Safari UA. Nothing here is fixable from inside a run; the operator fix is still to regenerate the secret on the Reddit app page. Re-measured 2026-08-04 (ninth consecutive dark run): unchanged. client_credentials against www.reddit.com/api/v1/access_token still returns HTTP 401, and old.reddit.com/<sub>/.rss still serves the ~300KB 'Welcome to Reddit' login wall to a Safari UA. Operator fix unchanged: regenerate the secret on the Reddit app page." "notes": "Noisy but high-recall — sort by Top of the week to filter for signal. top/.json is now fully blocked (2026-06/07), and top.rss?t=week 429s too. The www .rss endpoint works but intermittently 429s (2026-07-04/05/06/07); switched feedUrl to old.reddit.com/.rss 2026-07-07 — identical Atom feed, no rate-limit observed. No OAuth needed. 2026-07-22: whole-host login wall for the 2nd consecutive run — old.reddit.com/<sub>/.rss returns a 'Welcome to Reddit' HTML page (~298 KB) instead of Atom for every sub. REDDIT_CLIENT_ID / REDDIT_CLIENT_SECRET are present in the environment but do not authenticate. 2026-07-28 re-measured: the credentials are now correctly *shaped* (16-character ID, 32-character secret — the earlier note that the ID held the app name 'unique-editorial' is superseded), yet all three grant types return HTTP 401 Unauthorized against www.reddit.com/api/v1/access_token: client_credentials with the secret, installed_client with the secret, and installed_client with an empty secret. A correctly-formed pair failing every grant points at the app registration itself — revoked, deleted, or the secret rotated without the environment being updated — not at a formatting mistake. Regenerating the secret on the Reddit app page is the fix. Demoted daily → as-needed rather than fetch:skip so the source is not dropped while that is being fixed; restore cadence:daily once OAuth returns a token. Re-measured 2026-07-29 (seventh consecutive dark run): unchanged — REDDIT_CLIENT_ID is a correctly shaped 16-character ID with a 32-character secret, the token endpoint still returns HTTP 401, and the anonymous .rss endpoint still serves a ~300KB login wall. Operator fix remains: regenerate the secret on the Reddit app page. Re-measured 2026-08-01 (eighth consecutive dark run): unchanged in every particular — old.reddit.com/<sub>/.rss still serves a ~300KB 'Welcome to Reddit' login wall to a Safari UA. Nothing here is fixable from inside a run; the operator fix is still to regenerate the secret on the Reddit app page. Re-measured 2026-08-04 (ninth consecutive dark run): unchanged. client_credentials against www.reddit.com/api/v1/access_token still returns HTTP 401, and old.reddit.com/<sub>/.rss still serves the ~300KB 'Welcome to Reddit' login wall to a Safari UA. Operator fix unchanged: regenerate the secret on the Reddit app page. Re-measured 2026-08-07 (tenth consecutive dark run): unchanged. All four subreddit .rss endpoints return HTTP 200 with the ~300KB 'Welcome to Reddit' login wall to a Safari UA, and client_credentials against the token endpoint still returns HTTP 401. Operator fix unchanged: regenerate the secret on the Reddit app page."
}, },
{ {
"name": "Indie App Sunday", "name": "Indie App Sunday",
@@ -166,7 +166,7 @@
"cadence": "as-needed", "cadence": "as-needed",
"fetch": "feed", "fetch": "feed",
"feedUrl": "https://old.reddit.com/r/BuyItForLife/.rss", "feedUrl": "https://old.reddit.com/r/BuyItForLife/.rss",
"notes": "Durable goods recommendations. Filter for posts with provenance and long-term reports. top/.json is now fully blocked (2026-06/07), and top.rss?t=week 429s too. The www .rss endpoint works but intermittently 429s (429'd again 2026-07-07); switched feedUrl to old.reddit.com/.rss 2026-07-07 — identical Atom feed, no rate-limit observed. No OAuth needed. 2026-07-14: old.reddit.com/.rss returned HTTP 429 this run (first occurrence since the 07-07 switch). r/macapps and r/dadjokes on the same domain succeeded in the same run, so this reads as intermittent rate-limiting, not a block — no change yet; if it 429s on 3 consecutive runs, probe OAuth. 2026-07-18: 429 again (also 429'd 07-17) — now the 3rd consecutive run, which is the OAuth-probe trigger, but no REDDIT_CLIENT_ID/SECRET exists in env or .env so OAuth can't be attempted; r/macapps still succeeds from the same old.reddit.com host, so throttled not dead — held, no fetch:skip. Revisit when credentials are provided. 2026-07-19: 429 again (4th consecutive run); r/macapps succeeded from the same host in the same run, so still throttled-not-dead — held. 2026-07-22: whole-host login wall for the 2nd consecutive run — old.reddit.com/<sub>/.rss returns a 'Welcome to Reddit' HTML page (~298 KB) instead of Atom for every sub. REDDIT_CLIENT_ID / REDDIT_CLIENT_SECRET are present in the environment but do not authenticate. 2026-07-28 re-measured: the credentials are now correctly *shaped* (16-character ID, 32-character secret — the earlier note that the ID held the app name 'unique-editorial' is superseded), yet all three grant types return HTTP 401 Unauthorized against www.reddit.com/api/v1/access_token: client_credentials with the secret, installed_client with the secret, and installed_client with an empty secret. A correctly-formed pair failing every grant points at the app registration itself — revoked, deleted, or the secret rotated without the environment being updated — not at a formatting mistake. Regenerating the secret on the Reddit app page is the fix. Demoted daily → as-needed rather than fetch:skip so the source is not dropped while that is being fixed; restore cadence:daily once OAuth returns a token. Re-measured 2026-07-29 (seventh consecutive dark run): unchanged — REDDIT_CLIENT_ID is a correctly shaped 16-character ID with a 32-character secret, the token endpoint still returns HTTP 401, and the anonymous .rss endpoint still serves a ~300KB login wall. Operator fix remains: regenerate the secret on the Reddit app page. Re-measured 2026-08-01 (eighth consecutive dark run): unchanged in every particular — old.reddit.com/<sub>/.rss still serves a ~300KB 'Welcome to Reddit' login wall to a Safari UA. Nothing here is fixable from inside a run; the operator fix is still to regenerate the secret on the Reddit app page. Re-measured 2026-08-04 (ninth consecutive dark run): unchanged. client_credentials against www.reddit.com/api/v1/access_token still returns HTTP 401, and old.reddit.com/<sub>/.rss still serves the ~300KB 'Welcome to Reddit' login wall to a Safari UA. Operator fix unchanged: regenerate the secret on the Reddit app page." "notes": "Durable goods recommendations. Filter for posts with provenance and long-term reports. top/.json is now fully blocked (2026-06/07), and top.rss?t=week 429s too. The www .rss endpoint works but intermittently 429s (429'd again 2026-07-07); switched feedUrl to old.reddit.com/.rss 2026-07-07 — identical Atom feed, no rate-limit observed. No OAuth needed. 2026-07-14: old.reddit.com/.rss returned HTTP 429 this run (first occurrence since the 07-07 switch). r/macapps and r/dadjokes on the same domain succeeded in the same run, so this reads as intermittent rate-limiting, not a block — no change yet; if it 429s on 3 consecutive runs, probe OAuth. 2026-07-18: 429 again (also 429'd 07-17) — now the 3rd consecutive run, which is the OAuth-probe trigger, but no REDDIT_CLIENT_ID/SECRET exists in env or .env so OAuth can't be attempted; r/macapps still succeeds from the same old.reddit.com host, so throttled not dead — held, no fetch:skip. Revisit when credentials are provided. 2026-07-19: 429 again (4th consecutive run); r/macapps succeeded from the same host in the same run, so still throttled-not-dead — held. 2026-07-22: whole-host login wall for the 2nd consecutive run — old.reddit.com/<sub>/.rss returns a 'Welcome to Reddit' HTML page (~298 KB) instead of Atom for every sub. REDDIT_CLIENT_ID / REDDIT_CLIENT_SECRET are present in the environment but do not authenticate. 2026-07-28 re-measured: the credentials are now correctly *shaped* (16-character ID, 32-character secret — the earlier note that the ID held the app name 'unique-editorial' is superseded), yet all three grant types return HTTP 401 Unauthorized against www.reddit.com/api/v1/access_token: client_credentials with the secret, installed_client with the secret, and installed_client with an empty secret. A correctly-formed pair failing every grant points at the app registration itself — revoked, deleted, or the secret rotated without the environment being updated — not at a formatting mistake. Regenerating the secret on the Reddit app page is the fix. Demoted daily → as-needed rather than fetch:skip so the source is not dropped while that is being fixed; restore cadence:daily once OAuth returns a token. Re-measured 2026-07-29 (seventh consecutive dark run): unchanged — REDDIT_CLIENT_ID is a correctly shaped 16-character ID with a 32-character secret, the token endpoint still returns HTTP 401, and the anonymous .rss endpoint still serves a ~300KB login wall. Operator fix remains: regenerate the secret on the Reddit app page. Re-measured 2026-08-01 (eighth consecutive dark run): unchanged in every particular — old.reddit.com/<sub>/.rss still serves a ~300KB 'Welcome to Reddit' login wall to a Safari UA. Nothing here is fixable from inside a run; the operator fix is still to regenerate the secret on the Reddit app page. Re-measured 2026-08-04 (ninth consecutive dark run): unchanged. client_credentials against www.reddit.com/api/v1/access_token still returns HTTP 401, and old.reddit.com/<sub>/.rss still serves the ~300KB 'Welcome to Reddit' login wall to a Safari UA. Operator fix unchanged: regenerate the secret on the Reddit app page. Re-measured 2026-08-07 (tenth consecutive dark run): unchanged. All four subreddit .rss endpoints return HTTP 200 with the ~300KB 'Welcome to Reddit' login wall to a Safari UA, and client_credentials against the token endpoint still returns HTTP 401. Operator fix unchanged: regenerate the secret on the Reddit app page."
}, },
{ {
"name": "Hacker News — Show HN", "name": "Hacker News — Show HN",
@@ -192,7 +192,7 @@
"cadence": "daily", "cadence": "daily",
"fetch": "feed", "fetch": "feed",
"feedUrl": "https://www.producthunt.com/feed", "feedUrl": "https://www.producthunt.com/feed",
"notes": "Marketing-heavy, but the daily top-5 often includes a Mac app or utility worth a closer look. Feed validated 2026-07-03 (producthunt.com/feed)." "notes": "Marketing-heavy, but the daily top-5 often includes a Mac app or utility worth a closer look. Feed validated 2026-07-03 (producthunt.com/feed). 2026-08-07: 50 entries, zero passing the bar — the feed is now almost entirely B2B AI tooling (agent SDKs, spend consoles, LLM-markdown converters). Recording the pattern rather than acting on it: the source is healthy, and the occasional consumer app is still worth the scan, but it has not produced a find in several runs."
}, },
{ {
"name": "Carryology", "name": "Carryology",
@@ -298,7 +298,7 @@
"cadence": "as-needed", "cadence": "as-needed",
"fetch": "curl", "fetch": "curl",
"fetchUrl": "https://www.kikkerland.com/collections/new/products.json", "fetchUrl": "https://www.kikkerland.com/collections/new/products.json",
"notes": "Affordable design gifts; small clever objects. HTML collection pages are a Shopify SPA (nav-only) — /collections/new/products.json returns the full grid instead; fetch:curl + fetchUrl added 2026-07-03 (30 products validated). Demoted ongoing → as-needed 2026-07-13: the endpoint still works, but every product in the 'new' grid is dated 2026-03-11..24 — the grid has not refreshed since March, and essentially all 30 are already captured. Re-check when a seasonal drop lands rather than scanning every run. Re-checked 2026-08-01: endpoint healthy, still no refresh. Correcting the figure carried in this note and the log since 07-13 — the newest published_at is 2026-03-24 (Robin 3d Puzzle), not 2026-03-11; either way the grid is four and a half months stale, already as-needed, and not yet a year old, so no demotion applies. 2026-08-04: /collections/new/products.json returns 200 and parses, but the newest published_at across the collection is 2026-03-24 — no new product in over four months. Live but quiet; already as-needed, and under a year stale so not skipped." "notes": "Affordable design gifts; small clever objects. HTML collection pages are a Shopify SPA (nav-only) — /collections/new/products.json returns the full grid instead; fetch:curl + fetchUrl added 2026-07-03 (30 products validated). Demoted ongoing → as-needed 2026-07-13: the endpoint still works, but every product in the 'new' grid is dated 2026-03-11..24 — the grid has not refreshed since March, and essentially all 30 are already captured. Re-check when a seasonal drop lands rather than scanning every run. Re-checked 2026-08-01: endpoint healthy, still no refresh. Correcting the figure carried in this note and the log since 07-13 — the newest published_at is 2026-03-24 (Robin 3d Puzzle), not 2026-03-11; either way the grid is four and a half months stale, already as-needed, and not yet a year old, so no demotion applies. 2026-08-04: /collections/new/products.json returns 200 and parses, but the newest published_at across the collection is 2026-03-24 — no new product in over four months. Live but quiet; already as-needed, and under a year stale so not skipped. 2026-08-07: unchanged — endpoint healthy, newest published_at still 2026-03-24. No refresh in four and a half months; still as-needed, still under a year, so no demotion."
}, },
{ {
"name": "A Continuous Lean", "name": "A Continuous Lean",
@@ -406,7 +406,7 @@
"cadence": "as-needed", "cadence": "as-needed",
"fetch": "feed", "fetch": "feed",
"feedUrl": "https://www.styleforum.net/forums/-/index.rss", "feedUrl": "https://www.styleforum.net/forums/-/index.rss",
"notes": "Long threads (some 1000+ pages) where subject-matter obsessives compare specific brands — best for deep dives, not browsing. Forum-wide 'recent posts' RSS validated 2026-07-03. Demoted daily → as-needed 2026-07-13: the feed is technically live but its signal has collapsed — all 49 items on 2026-07-13 were Temu/Insta360/wellness coupon-code spam threads, zero legitimate style content, and it has produced no finds across many runs. Not blocked, just worthless as a daily scan. Revisit if the forum cleans up its spam. Re-probed 2026-07-27: unchanged and worse — all 48 items in the forum-wide feed were coupon/supplement spam. Sub-forum feed probes for a cleaner path have now failed twice: classic-menswear.11 and menswear-advice.104 return 404, streetwear-and-denim.12 and the-fine-living-lounge.15 return 403; only buying-and-selling.10 answers 200, and classifieds are not an editorial path. No better fetch path exists to record — choosing a sub-forum to follow instead is an operator call. Spot-checked 2026-08-01, fourth consecutive run unchanged: 50 of 50 items are Temu/Shein/LemFi/Ibotta/Insta360 coupon-code spam. No action available without an operator choosing a sub-forum. 2026-08-04: signal check — index.rss is sorted by last-post time, so all 25 entries carry today's date regardless of thread age, and this run's set was mostly referral-code spam (LemFi, Shein, OKX) plus perennially bumped threads. No dateable new content and nothing capturable. Held at as-needed rather than skipped, but a per-subforum or 'new threads' feed would be the fix if one exists." "notes": "Long threads (some 1000+ pages) where subject-matter obsessives compare specific brands — best for deep dives, not browsing. Forum-wide 'recent posts' RSS validated 2026-07-03. Demoted daily → as-needed 2026-07-13: the feed is technically live but its signal has collapsed — all 49 items on 2026-07-13 were Temu/Insta360/wellness coupon-code spam threads, zero legitimate style content, and it has produced no finds across many runs. Not blocked, just worthless as a daily scan. Revisit if the forum cleans up its spam. Re-probed 2026-07-27: unchanged and worse — all 48 items in the forum-wide feed were coupon/supplement spam. Sub-forum feed probes for a cleaner path have now failed twice: classic-menswear.11 and menswear-advice.104 return 404, streetwear-and-denim.12 and the-fine-living-lounge.15 return 403; only buying-and-selling.10 answers 200, and classifieds are not an editorial path. No better fetch path exists to record — choosing a sub-forum to follow instead is an operator call. Spot-checked 2026-08-01, fourth consecutive run unchanged: 50 of 50 items are Temu/Shein/LemFi/Ibotta/Insta360 coupon-code spam. No action available without an operator choosing a sub-forum. 2026-08-04: signal check — index.rss is sorted by last-post time, so all 25 entries carry today's date regardless of thread age, and this run's set was mostly referral-code spam (LemFi, Shein, OKX) plus perennially bumped threads. No dateable new content and nothing capturable. Held at as-needed rather than skipped, but a per-subforum or 'new threads' feed would be the fix if one exists. 2026-08-07, fifth consecutive unproductive run: 34 entries, all carrying today's date because index.rss sorts by last-post time. Content was Fluz referral-code spam plus perennially bumped threads (RRL, Oxford shirts, bespoke projects). Unchanged and still held at as-needed pending an operator choosing a sub-forum."
}, },
{ {
"name": "Atlas Obscura", "name": "Atlas Obscura",
@@ -419,7 +419,7 @@
"cadence": "daily", "cadence": "daily",
"fetch": "feed", "fetch": "feed",
"feedUrl": "https://www.atlasobscura.com/feeds/latest", "feedUrl": "https://www.atlasobscura.com/feeds/latest",
"notes": "The definitive catalog of unusual places. Use the 'Places' filter for destinations; the editorial covers oddities globally. Quirk: returns HTTP 403 status with real HTML body — the skill should ignore the status code when the body parses as content. Feed at /feeds/latest fully bypasses the Cloudflare block — validated 2026-07-03, 27 items all dated within the last week; switched from fetch:curl to fetch:feed. 2026-08-04: the feed is now the ONLY working path — individual /places/ pages return a Cloudflare 'Attention Required' interstitial (~5.5KB) to both curl with a Safari UA and WebFetch, while the feed itself returns 200 and carries the full place description. Heroes are still recoverable: the img.atlasobscura.com proxy URLs in the feed are 300x200 crops, but the trailing path segment is the base64 (slash-chunked, strip the slashes) of the original atlas-dev.s3.amazonaws.com URL, which fetches full-resolution with no signature check." "notes": "The definitive catalog of unusual places. Use the 'Places' filter for destinations; the editorial covers oddities globally. Quirk: returns HTTP 403 status with real HTML body — the skill should ignore the status code when the body parses as content. Feed at /feeds/latest fully bypasses the Cloudflare block — validated 2026-07-03, 27 items all dated within the last week; switched from fetch:curl to fetch:feed. 2026-08-04: the feed is now the ONLY working path — individual /places/ pages return a Cloudflare 'Attention Required' interstitial (~5.5KB) to both curl with a Safari UA and WebFetch, while the feed itself returns 200 and carries the full place description. Heroes are still recoverable: the img.atlasobscura.com proxy URLs in the feed are 300x200 crops, but the trailing path segment is the base64 (slash-chunked, strip the slashes) of the original atlas-dev.s3.amazonaws.com URL, which fetches full-resolution with no signature check. 2026-08-07: addendum to the base64 hero recovery — percent-encode the decoded S3 URL before fetching. Several place images are named from screenshots and contain literal spaces (and U+202F narrow no-break spaces); curl returns 000 on those unless the URL is quoted/encoded. Five of this run's thirteen place images hit that case."
}, },
{ {
"name": "Roadtrippers Magazine", "name": "Roadtrippers Magazine",
@@ -431,7 +431,7 @@
"cadence": "as-needed", "cadence": "as-needed",
"fetch": "feed", "fetch": "feed",
"feedUrl": "https://roadtrippers.com/feed", "feedUrl": "https://roadtrippers.com/feed",
"notes": "North-America-leaning road trip routes and stops, often hitting roadside oddities. Feed validated 2026-07-03. Demoted weekly → as-needed 2026-07-13: live but dormant — newest feed item is 2026-06-09 (5+ weeks), and it has produced nothing across 3+ consecutive runs; what it does publish is round-up/listicle content ('20 National Park lodges'), not the single specific places this site captures. 2026-08-04: feed returns 200 with 24 entries, newest 2026-06-09 — roughly eight weeks stale. Already as-needed; revisit for fetch:skip if nothing new appears by 2026-09." "notes": "North-America-leaning road trip routes and stops, often hitting roadside oddities. Feed validated 2026-07-03. Demoted weekly → as-needed 2026-07-13: live but dormant — newest feed item is 2026-06-09 (5+ weeks), and it has produced nothing across 3+ consecutive runs; what it does publish is round-up/listicle content ('20 National Park lodges'), not the single specific places this site captures. 2026-08-04: feed returns 200 with 24 entries, newest 2026-06-09 — roughly eight weeks stale. Already as-needed; revisit for fetch:skip if nothing new appears by 2026-09. 2026-08-07: unchanged — 24 entries, newest still 2026-06-09, now nine weeks stale. The 2026-09 fetch:skip decision stands."
}, },
{ {
"name": "Spotted by Locals", "name": "Spotted by Locals",
@@ -651,7 +651,7 @@
"cadence": "as-needed", "cadence": "as-needed",
"fetch": "feed", "fetch": "feed",
"feedUrl": "https://old.reddit.com/r/shortcuts/.rss", "feedUrl": "https://old.reddit.com/r/shortcuts/.rss",
"notes": "iOS/macOS Shortcuts community — sort by Top of the week to surface the cleverest automations. top/.json is now fully blocked (2026-06/07), and top.rss?t=week 429s too. The www .rss endpoint 429'd 3+ consecutive runs (2026-07-04/05/06); switched feedUrl to old.reddit.com/.rss 2026-07-07 — identical Atom feed, no rate-limit observed. No OAuth needed. 2026-07-14: old.reddit.com/.rss returned HTTP 429 this run (first occurrence since the 07-07 switch). r/macapps and r/dadjokes on the same domain succeeded in the same run, so this reads as intermittent rate-limiting, not a block — no change yet; if it 429s on 3 consecutive runs, probe OAuth. 2026-07-22: whole-host login wall for the 2nd consecutive run — old.reddit.com/<sub>/.rss returns a 'Welcome to Reddit' HTML page (~298 KB) instead of Atom for every sub. REDDIT_CLIENT_ID / REDDIT_CLIENT_SECRET are present in the environment but do not authenticate. 2026-07-28 re-measured: the credentials are now correctly *shaped* (16-character ID, 32-character secret — the earlier note that the ID held the app name 'unique-editorial' is superseded), yet all three grant types return HTTP 401 Unauthorized against www.reddit.com/api/v1/access_token: client_credentials with the secret, installed_client with the secret, and installed_client with an empty secret. A correctly-formed pair failing every grant points at the app registration itself — revoked, deleted, or the secret rotated without the environment being updated — not at a formatting mistake. Regenerating the secret on the Reddit app page is the fix. Demoted daily → as-needed rather than fetch:skip so the source is not dropped while that is being fixed; restore cadence:daily once OAuth returns a token. Re-measured 2026-07-29 (seventh consecutive dark run): unchanged — REDDIT_CLIENT_ID is a correctly shaped 16-character ID with a 32-character secret, the token endpoint still returns HTTP 401, and the anonymous .rss endpoint still serves a ~300KB login wall. Operator fix remains: regenerate the secret on the Reddit app page. Re-measured 2026-08-01 (eighth consecutive dark run): unchanged in every particular — old.reddit.com/<sub>/.rss still serves a ~300KB 'Welcome to Reddit' login wall to a Safari UA. Nothing here is fixable from inside a run; the operator fix is still to regenerate the secret on the Reddit app page. Re-measured 2026-08-04 (ninth consecutive dark run): unchanged. client_credentials against www.reddit.com/api/v1/access_token still returns HTTP 401, and old.reddit.com/<sub>/.rss still serves the ~300KB 'Welcome to Reddit' login wall to a Safari UA. Operator fix unchanged: regenerate the secret on the Reddit app page." "notes": "iOS/macOS Shortcuts community — sort by Top of the week to surface the cleverest automations. top/.json is now fully blocked (2026-06/07), and top.rss?t=week 429s too. The www .rss endpoint 429'd 3+ consecutive runs (2026-07-04/05/06); switched feedUrl to old.reddit.com/.rss 2026-07-07 — identical Atom feed, no rate-limit observed. No OAuth needed. 2026-07-14: old.reddit.com/.rss returned HTTP 429 this run (first occurrence since the 07-07 switch). r/macapps and r/dadjokes on the same domain succeeded in the same run, so this reads as intermittent rate-limiting, not a block — no change yet; if it 429s on 3 consecutive runs, probe OAuth. 2026-07-22: whole-host login wall for the 2nd consecutive run — old.reddit.com/<sub>/.rss returns a 'Welcome to Reddit' HTML page (~298 KB) instead of Atom for every sub. REDDIT_CLIENT_ID / REDDIT_CLIENT_SECRET are present in the environment but do not authenticate. 2026-07-28 re-measured: the credentials are now correctly *shaped* (16-character ID, 32-character secret — the earlier note that the ID held the app name 'unique-editorial' is superseded), yet all three grant types return HTTP 401 Unauthorized against www.reddit.com/api/v1/access_token: client_credentials with the secret, installed_client with the secret, and installed_client with an empty secret. A correctly-formed pair failing every grant points at the app registration itself — revoked, deleted, or the secret rotated without the environment being updated — not at a formatting mistake. Regenerating the secret on the Reddit app page is the fix. Demoted daily → as-needed rather than fetch:skip so the source is not dropped while that is being fixed; restore cadence:daily once OAuth returns a token. Re-measured 2026-07-29 (seventh consecutive dark run): unchanged — REDDIT_CLIENT_ID is a correctly shaped 16-character ID with a 32-character secret, the token endpoint still returns HTTP 401, and the anonymous .rss endpoint still serves a ~300KB login wall. Operator fix remains: regenerate the secret on the Reddit app page. Re-measured 2026-08-01 (eighth consecutive dark run): unchanged in every particular — old.reddit.com/<sub>/.rss still serves a ~300KB 'Welcome to Reddit' login wall to a Safari UA. Nothing here is fixable from inside a run; the operator fix is still to regenerate the secret on the Reddit app page. Re-measured 2026-08-04 (ninth consecutive dark run): unchanged. client_credentials against www.reddit.com/api/v1/access_token still returns HTTP 401, and old.reddit.com/<sub>/.rss still serves the ~300KB 'Welcome to Reddit' login wall to a Safari UA. Operator fix unchanged: regenerate the secret on the Reddit app page. Re-measured 2026-08-07 (tenth consecutive dark run): unchanged. All four subreddit .rss endpoints return HTTP 200 with the ~300KB 'Welcome to Reddit' login wall to a Safari UA, and client_credentials against the token endpoint still returns HTTP 401. Operator fix unchanged: regenerate the secret on the Reddit app page."
}, },
{ {
"name": "OSXDaily", "name": "OSXDaily",
@@ -722,7 +722,7 @@
"cadence": "as-needed", "cadence": "as-needed",
"fetch": "feed", "fetch": "feed",
"feedUrl": "https://old.reddit.com/r/dadjokes/.rss", "feedUrl": "https://old.reddit.com/r/dadjokes/.rss",
"notes": "Heavily moderated for original groaners. top/.json is now fully blocked (2026-06/07), and top.rss?t=week 429s too. The www .rss endpoint works but intermittently 429s (429'd again 2026-07-07); switched feedUrl to old.reddit.com/.rss 2026-07-07 — identical Atom feed, no rate-limit observed. No OAuth needed. 2026-07-22: whole-host login wall for the 2nd consecutive run — old.reddit.com/<sub>/.rss returns a 'Welcome to Reddit' HTML page (~298 KB) instead of Atom for every sub. REDDIT_CLIENT_ID / REDDIT_CLIENT_SECRET are present in the environment but do not authenticate. 2026-07-28 re-measured: the credentials are now correctly *shaped* (16-character ID, 32-character secret — the earlier note that the ID held the app name 'unique-editorial' is superseded), yet all three grant types return HTTP 401 Unauthorized against www.reddit.com/api/v1/access_token: client_credentials with the secret, installed_client with the secret, and installed_client with an empty secret. A correctly-formed pair failing every grant points at the app registration itself — revoked, deleted, or the secret rotated without the environment being updated — not at a formatting mistake. Regenerating the secret on the Reddit app page is the fix. Demoted daily → as-needed rather than fetch:skip so the source is not dropped while that is being fixed; restore cadence:daily once OAuth returns a token. Re-measured 2026-07-29 (seventh consecutive dark run): unchanged — REDDIT_CLIENT_ID is a correctly shaped 16-character ID with a 32-character secret, the token endpoint still returns HTTP 401, and the anonymous .rss endpoint still serves a ~300KB login wall. Operator fix remains: regenerate the secret on the Reddit app page. Re-measured 2026-08-01 (eighth consecutive dark run): unchanged in every particular — old.reddit.com/<sub>/.rss still serves a ~300KB 'Welcome to Reddit' login wall to a Safari UA. Nothing here is fixable from inside a run; the operator fix is still to regenerate the secret on the Reddit app page. Re-measured 2026-08-04 (ninth consecutive dark run): unchanged. client_credentials against www.reddit.com/api/v1/access_token still returns HTTP 401, and old.reddit.com/<sub>/.rss still serves the ~300KB 'Welcome to Reddit' login wall to a Safari UA. Operator fix unchanged: regenerate the secret on the Reddit app page." "notes": "Heavily moderated for original groaners. top/.json is now fully blocked (2026-06/07), and top.rss?t=week 429s too. The www .rss endpoint works but intermittently 429s (429'd again 2026-07-07); switched feedUrl to old.reddit.com/.rss 2026-07-07 — identical Atom feed, no rate-limit observed. No OAuth needed. 2026-07-22: whole-host login wall for the 2nd consecutive run — old.reddit.com/<sub>/.rss returns a 'Welcome to Reddit' HTML page (~298 KB) instead of Atom for every sub. REDDIT_CLIENT_ID / REDDIT_CLIENT_SECRET are present in the environment but do not authenticate. 2026-07-28 re-measured: the credentials are now correctly *shaped* (16-character ID, 32-character secret — the earlier note that the ID held the app name 'unique-editorial' is superseded), yet all three grant types return HTTP 401 Unauthorized against www.reddit.com/api/v1/access_token: client_credentials with the secret, installed_client with the secret, and installed_client with an empty secret. A correctly-formed pair failing every grant points at the app registration itself — revoked, deleted, or the secret rotated without the environment being updated — not at a formatting mistake. Regenerating the secret on the Reddit app page is the fix. Demoted daily → as-needed rather than fetch:skip so the source is not dropped while that is being fixed; restore cadence:daily once OAuth returns a token. Re-measured 2026-07-29 (seventh consecutive dark run): unchanged — REDDIT_CLIENT_ID is a correctly shaped 16-character ID with a 32-character secret, the token endpoint still returns HTTP 401, and the anonymous .rss endpoint still serves a ~300KB login wall. Operator fix remains: regenerate the secret on the Reddit app page. Re-measured 2026-08-01 (eighth consecutive dark run): unchanged in every particular — old.reddit.com/<sub>/.rss still serves a ~300KB 'Welcome to Reddit' login wall to a Safari UA. Nothing here is fixable from inside a run; the operator fix is still to regenerate the secret on the Reddit app page. Re-measured 2026-08-04 (ninth consecutive dark run): unchanged. client_credentials against www.reddit.com/api/v1/access_token still returns HTTP 401, and old.reddit.com/<sub>/.rss still serves the ~300KB 'Welcome to Reddit' login wall to a Safari UA. Operator fix unchanged: regenerate the secret on the Reddit app page. Re-measured 2026-08-07 (tenth consecutive dark run): unchanged. All four subreddit .rss endpoints return HTTP 200 with the ~300KB 'Welcome to Reddit' login wall to a Safari UA, and client_credentials against the token endpoint still returns HTTP 401. Operator fix unchanged: regenerate the secret on the Reddit app page."
}, },
{ {
"name": "icanhazdadjoke", "name": "icanhazdadjoke",
@@ -0,0 +1,15 @@
---
title: "Plotted on the actual ground"
date: 2026-08-07
tags: [daily-finds, travel-and-places, web-tools]
description: "Five things that take what isn't normally mapped — the route of a novel, the shot list of a city, the footnotes under your feet, an eclipse over your own street, 30,000 people mowing the same lawn — and put it on real coordinates."
blurb: "Five things that take what nobody thinks to map and put it on real coordinates."
items:
- reading-maps
- a24-on-location-new-york
- nearbywiki
- eclipse-times-2026
- lawn-mowing-pudding
---
> Today's catch is five answers to the same question: what happens if you plot it? The Pequod's voyage and the Orient Express's timetable on one atlas, New York rearranged by shot rather than landmark, every Wikipedia footnote under the street you're on, an eclipse played out over the real buildings on your block, and thirty thousand people's routes across the same small lawn.
@@ -0,0 +1,14 @@
---
title: "They only sell the one thing"
date: 2026-08-07
tags: [daily-finds, food-and-drink, travel-and-places]
description: "Four rooms that narrowed their inventory to a single subject and got better at it — a barrel of pickles, a counter of fungi, a matcha whisk, and a machine that sells one creamery's cheese."
blurb: "Four places that cut their inventory down to one subject and got better at it."
items:
- the-pickle-guys
- the-mushroom-shop
- matchaful-ritual-bar
- perrystead-dairy-vending-machine
---
> Today's catch is four rooms that gave up variety on purpose. The last barrel shop of Manhattan's pickle district, still fermenting in salt and time; a Somerville grocer who stocks one biological kingdom; a Brooklyn bar where the thing on offer is the whisking; and a Philadelphia garden with a machine in it that sells nothing but the cheese made across the street.
@@ -5,6 +5,7 @@ date: 2026-08-04
shortlist: true shortlist: true
link: "https://www.atlasobscura.com/places/braun-collection" link: "https://www.atlasobscura.com/places/braun-collection"
linkText: "atlasobscura.com" linkText: "atlasobscura.com"
promotedTo: "braun-collection"
source: "Atlas Obscura" source: "Atlas Obscura"
topics: [design-and-art, travel-and-places] topics: [design-and-art, travel-and-places]
tags: [industrial-design, museum, germany, braun] tags: [industrial-design, museum, germany, braun]
Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

@@ -0,0 +1,14 @@
---
name: "Coodle"
subtitle: "A bridge for the arm that always falls asleep"
date: 2026-08-07
link: "https://www.thisiswhyimbroke.com/the-cuddling-pillow"
linkText: "thisiswhyimbroke.com"
amazonLink: "https://www.amazon.com/dp/B07B4JZC5G"
source: "This Is Why I'm Broke"
topics: [home-and-kitchen]
tags: [pillow, sleep, giftable]
description: "A tunnel-shaped foam pillow with four arched braces inside, so a partner's head rests above your arm instead of on it."
---
The problem is old and specific: someone rests their head on your arm, your arm goes numb, one of you moves. This is a tunnel — your arm goes through, their head goes on top, and four arched plastic braces inside the foam keep the weight off the gap. Handmade in the US, and it solves exactly one thing, which is the highest compliment an object can be paid.
@@ -0,0 +1,13 @@
---
name: "dowfart"
subtitle: "The rudest-looking word that isn't"
date: 2026-08-07
link: "https://wordsmith.org/words/dowfart.html"
linkText: "wordsmith.org"
source: "A.Word.A.Day"
topics: [words-and-humor]
tags: [etymology, scots, false-friend]
description: "A dimwit or a coward — from Scots dowf, dull, plus the -ard of dullard and braggart. The fart is a coincidence."
---
A dimwit, or a coward. The word divides as *dowf* + *-art*, not *dow* + *fart* — *dowf* is Scots for dull, and *-art* is the same pejorative ending hiding in *braggart* and *dullard*, which traces back to a Germanic root meaning bold. In use since 1719. The best part is what it became: *duffer* is probably just *dowfart* after the word quietly let out a few letters.
@@ -0,0 +1,14 @@
---
name: "Eclipse Times 2026"
subtitle: "Which floor of your building can actually see the August 12 eclipse"
date: 2026-08-07
shortlist: true
link: "https://eclipse2026times.com/"
linkText: "eclipse2026times.com"
source: "Hacker News — Show HN"
topics: [web-tools, learning-and-reference]
tags: [eclipse, astronomy, maps, timely]
description: "Exact local times for the August 12, 2026 total solar eclipse, plus — for French addresses — a 3D simulation over your street's real buildings."
---
Totality reaches Iceland at 17:48 GMT on August 12 and Spain about two hours forty later, and every city gets its own line of times here. The part worth the visit: type a French address and the eclipse plays out in 3D over the actual buildings around you, at their real heights from IGN. The Sun sits only 815° up, so a 10m building blocks it from 70m away — the simulation opens on the lowest floor that can still see it.
Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

@@ -0,0 +1,14 @@
---
name: "FileRouter"
subtitle: "Open With, except you write the rules"
date: 2026-08-07
shortlist: true
link: "https://brettterpstra.com/2026/08/05/one-more-for-the-road-filerouter/"
linkText: "brettterpstra.com"
source: "Brett Terpstra"
topics: [macos-apps]
tags: [menu-bar, markdown, automation, brett-terpstra]
description: "A menu-bar Mac app that intercepts double-clicks on file types you assign and routes them to the right editor by rule — Choosy, but for files."
---
macOS gives you one default app per file type, forever, until you dig through Get Info again. FileRouter claims the double-click for the types you hand it and routes by rule instead — filename, extension, parent folder — so Drafts notes open in one editor, blog drafts in another, and a "just peek" opens Marked. It can also open several apps at once, which is the case Get Info has never had an answer for. Mac App Store or direct.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

@@ -0,0 +1,14 @@
---
name: "Comicbooks.com Reading Room"
subtitle: "20,000 restored golden-age comics, sorted by genre, free"
date: 2026-08-07
shortlist: true
link: "https://comicbooks.com/read"
linkText: "comicbooks.com"
source: "Open Culture"
topics: [history-and-archives, design-and-art]
tags: [comics, public-domain, archive, golden-age]
description: "An online reading room of more than 20,000 digitised and restored golden-age comics, browsable by genre — superhero, western, romance, horror, funny animal."
---
More than 20,000 golden-age comics, digitised and restored, sorted into the genres that actually filled the racks: superhero, yes, but also western, romance, horror, science fiction and the entire lost category of funny animal, where *Super Duck* and *Lucky Duck* and *Wonder Duck* were competing titles at the same time. Free, no account, and the restoration means the colour is the colour someone chose in 1941.
Binary file not shown.

After

Width:  |  Height:  |  Size: 403 KiB

@@ -0,0 +1,13 @@
---
name: "Hidden Figures Monument"
subtitle: "Katherine Johnson in bronze, on the campus she reached at ten"
date: 2026-08-07
link: "https://www.atlasobscura.com/places/hidden-figures-monument-of-katherine-johnson-at-wvsu"
linkText: "atlasobscura.com"
source: "Atlas Obscura"
topics: [travel-and-places, history-and-archives]
tags: [nasa, west-virginia, monument, katherine-johnson]
description: "A life-sized statue of the NASA mathematician at West Virginia State University, unveiled on the eve of her 100th birthday."
---
Katherine Johnson's family moved a hundred miles to Institute, West Virginia because the local schools would not teach African American students past the eighth grade — the high school on this campus would, and she arrived at ten. She later hand-calculated the trajectory for Alan Shepard's flight. The statue was unveiled here on the eve of her hundredth birthday, which is the kind of timing a university only gets once.
@@ -0,0 +1,12 @@
---
name: "They will break up too soon"
date: 2026-08-07
link: "https://icanhazdadjoke.com/j/FdN7hiG6Uvc"
linkText: "icanhazdadjoke.com"
source: "icanhazdadjoke"
topics: [words-and-humor]
tags: [dad-joke, pun]
description: "Why can't eggs have love?"
---
Why can't eggs have love? They will break up too soon.
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,14 @@
---
name: "Why Some People Mow a Lawn Better Than Others"
subtitle: "49 squares, 14,589 different ways, and people found all 12 perfect ones"
date: 2026-08-07
shortlist: true
link: "https://pudding.cool/2026/06/mow"
linkText: "pudding.cool"
source: "Kottke.org"
topics: [web-tools, learning-and-reference]
tags: [data-viz, the-pudding, games, optimization]
description: "The Pudding built a pixel lawn, let tens of thousands of people mow it, and scored every route against the mathematically optimal path."
---
You mow the lawn first, then your route is replayed against everyone else's. On the small lawn — 49 squares — 30,954 people found 14,589 distinct ways to cover it, 16% of them perfect, and between them they found all twelve perfect solutions that exist. This is Coverage Path Planning, a cousin of the travelling salesman problem, and the finding is that people are annoyingly good at it without thinking.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

@@ -0,0 +1,14 @@
---
name: "Matchaful Ritual Bar"
subtitle: "A Williamsburg room where the whisking is the point"
date: 2026-08-07
shortlist: true
link: "https://www.wallpaper.com/travel/restaurants/matchaful-ritual-bar-brooklyn"
linkText: "wallpaper.com"
source: "Wallpaper* Travel"
topics: [travel-and-places, food-and-drink]
tags: [matcha, brooklyn, tea-ceremony, wabi-sabi]
description: "Matchaful's new Brooklyn space runs guided tastings and matcha whisking ceremonies in a wabi-sabi room carved out of an apartment building."
---
Matchaful's Williamsburg café already sold the drink; the Ritual Bar next door, carved out of an apartment building, teaches the making of it — guided tastings, whisking ceremonies, the slow business of the chasen against the bowl. The room is done in wabi-sabi restraint so nothing competes with what your hands are doing, which is the whole argument for a tea room and rarely the reason one gets built.
Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

@@ -0,0 +1,15 @@
---
name: "morningprint"
subtitle: "A thermal receipt printer that publishes one edition a day"
date: 2026-08-07
shortlist: true
link: "https://github.com/matt-w-horn/morningprint"
linkText: "github.com"
promotedTo: "morningprint"
source: "Hacker News — Show HN"
topics: [gadgets-and-toys, design-and-art]
tags: [raspberry-pi, thermal-printer, generative-art, open-source]
description: "An Epson receipt printer in a kitchen wakes early and prints one piece of character art and a short verse, themed to the day's weather and news. MIT-licensed."
---
An Epson thermal printer in the author's kitchen wakes before he does and prints one piece of character art — 80mm wide, never printed before — with a short verse underneath, built from the day's forecast, season and headlines. Once in a while a print answers the one before it: a single scout rocket climbing on July 3, the whole sky answering on July 4. When the cutter drops, the edition is out. Yesterday's goes on the corkboard.
Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

@@ -0,0 +1,13 @@
---
name: "Otamatone Melody: PAC-MAN"
subtitle: "The squeezable synth, shrunk to keychain size and given a ghost"
date: 2026-08-07
link: "https://theawesomer.com/pac-man-x-otomatone-melody-mini-synthesizers/811808/"
linkText: "theawesomer.com"
source: "The Awesomer"
topics: [gadgets-and-toys, music-and-sound]
tags: [otamatone, pac-man, keychain, giftable]
description: "Keychain-sized Maywa Denki Otamatones shaped as PAC-MAN and the four ghosts, with 11 preloaded songs and the cheek-squeeze wah intact."
---
Maywa Denki's Otamatone is the singing note-stem you play by sliding a finger down the neck and squeezing its cheeks to make it wobble. This is that, shrunk to keychain size and cast as PAC-MAN plus Blinky, Inky, Pinky and Clyde, with eleven songs preloaded and the squeeze-for-*wah* intact. Less expressive than the full-size version — the honest trade for something that clips to a bag.
@@ -0,0 +1,13 @@
---
name: "Past Catalog Archive"
subtitle: "Radio catalogs from 1929, scanned and free to download"
date: 2026-08-07
link: "https://pastcatalogs.com"
linkText: "pastcatalogs.com"
source: "Kottke.org"
topics: [history-and-archives, design-and-art]
tags: [catalogs, radio, ephemera, personal-site]
description: "One person's scans of old electronics catalogs — Allied Radio 1937, Harry Alter 1929, Heathkit, Lafayette, Radio Shack — all downloadable in full."
---
Allied Radio 1937, Federated Purchaser 1936, the Harry Alter Radio Book from 1929, plus runs of Heathkit, Lafayette and Radio Shack — scanned whole and offered as downloads rather than a viewer, because the point is that you get to keep them. The warning that the files are large and will take a while is the most 2003 sentence on the web, and this is a much better use of a domain than most.
@@ -0,0 +1,12 @@
---
name: "Don't just do something. Sit there."
date: 2026-08-07
link: "https://quoteinvestigator.com/2026/08/06/sit-there/"
linkText: "quoteinvestigator.com"
source: "Quote Investigator"
topics: [words-and-humor]
tags: [quotes, attribution, etymology]
description: "Widely credited to Thich Nhat Hanh; first found in 1954, as orders written for men stationed alone on radar platforms at sea."
---
Usually filed under mindfulness and attributed to Thich Nhat Hanh or Sylvia Boorstein. The earliest match Quote Investigator can find is a 1954 Philadelphia Inquirer column about radar platforms to be built 125 miles out at sea, where whoever drew the posting would be extremely alone: "Their orders will be: 'Don't just do something. Sit there.'" The joke came first; the wisdom was retrofitted.
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

@@ -0,0 +1,14 @@
---
name: "QWERTY MIDI"
subtitle: "Your laptop keyboard, tuned like a bass guitar"
date: 2026-08-07
shortlist: true
link: "https://beijaflor.io/blog/07-2026/querymidi/"
linkText: "beijaflor.io"
source: "Hacker News — Show HN"
topics: [music-and-sound, web-tools]
tags: [midi, isomorphic-layout, browser, music-theory]
description: "A browser MIDI controller that lays notes across a computer keyboard like four bass strings tuned in fourths, so a chord keeps its shape in every key."
---
GarageBand's musical typing maps the QWERTY keys to a piano, which means a chord changes shape in every key — the thing that makes the first year hard. This lays them out like a bass guitar instead: four rows, each a fourth apart, each key one chromatic step sideways. Hit C, and the octave is two rows up and one across, forever. Space is the sustain pedal, the arrow keys bend pitch and shift octaves.
Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

@@ -0,0 +1,14 @@
---
name: "Reading Maps"
subtitle: "Every journey in fiction, drawn on the real world"
date: 2026-08-07
shortlist: true
link: "https://readingmaps.com"
linkText: "readingmaps.com"
source: "Kottke.org"
topics: [web-tools, travel-and-places]
tags: [literature, cartography, film, browsing]
description: "An interactive atlas plotting the routes of books and films — Moby-Dick, The Odyssey, On the Road, Murder on the Orient Express — on real geography."
---
The Pequod's route, the Orient Express's timetable, Huck's stretch of the Mississippi and the Odyssey's long detour, all drawn on one atlas at their real coordinates. Filter by sea, river, rail, road or exile and the shape of a genre appears: the road books run west, the river books run down, and Candide simply goes everywhere. Films are in there too.
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

@@ -0,0 +1,14 @@
---
name: "Statue of Unity"
subtitle: "A sculpture that only works if you take its hand"
date: 2026-08-07
shortlist: true
link: "https://www.atlasobscura.com/places/statue-of-unity-rescuing-a-dog"
linkText: "atlasobscura.com"
source: "Atlas Obscura"
topics: [travel-and-places, design-and-art]
tags: [almaty, kazakhstan, public-art, interactive]
description: "In Almaty, a bronze human chain marks the spot where strangers linked arms to pull a dog and its owner out of a flood canal — and the last hand is yours to grip."
---
A dog went into a raging concrete canal in Almaty; its owner went in after it and got stuck too; strangers on the bank linked arms into a human chain and pulled them both out. The sculpture on that exact spot is that chain, cast in bronze, and it stops one hand short. You complete it. Very little public art asks you to physically finish it, and fewer still make refusing feel like a small failure of nerve.
@@ -5,6 +5,7 @@ date: 2026-08-04
shortlist: true shortlist: true
link: "https://sheets.works/data-viz/keyboard-sounds" link: "https://sheets.works/data-viz/keyboard-sounds"
linkText: "sheets.works" linkText: "sheets.works"
promotedTo: "the-listening-museum"
source: "Kottke.org" source: "Kottke.org"
topics: [music-and-sound, gadgets-and-toys] topics: [music-and-sound, gadgets-and-toys]
tags: [keyboards, sound, mechanical-keyboards, free] tags: [keyboards, sound, mechanical-keyboards, free]
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

@@ -0,0 +1,14 @@
---
name: "The Mushroom Shop"
subtitle: "A grocery that sells one kingdom and nothing else"
date: 2026-08-07
shortlist: true
link: "https://www.atlasobscura.com/places/the-mushroom-shop"
linkText: "atlasobscura.com"
source: "Atlas Obscura"
topics: [travel-and-places, food-and-drink]
tags: [mushrooms, somerville, storefront, specialty-grocer]
description: "A narrow Somerville storefront given over entirely to fungi — lion's mane, pink oysters, seasonal morels, growing kits and tinctures."
---
A narrow storefront on Somerville Avenue where the produce aisle has been replaced by a single kingdom: shaggy white lion's mane, pink oysters the colour of a sunset, morels in season, plus tinctures, kits and mushroom art. The window is hand-painted with mushrooms, bees and a worm in white and red, which tells you before you open the door what kind of shop takes its subject this seriously and itself not at all.
Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

@@ -0,0 +1,14 @@
---
name: "The Phone in Your Hand"
subtitle: "Fourteen layers deep, read on the object it describes"
date: 2026-08-07
shortlist: true
link: "https://everythingmachine.io/phone"
linkText: "everythingmachine.io"
source: "Kottke.org"
topics: [design-and-art, learning-and-reference]
tags: [teardown, materials, scrollytelling, best-on-mobile]
description: "A scrolling teardown of a smartphone — fourteen layers from the oleophobic coating down — meant to be read on a phone."
---
It opens by asking you to drag a finger across a window, then across your screen, and explains the difference: a non-stick coating one molecule thick that wears away a little every time you touch it — which is also why a face-down phone slides off the faintest slope. Fourteen layers follow, down through the potassium-bathed glass Jobs demanded after his keys scratched the prototype. Read it on a phone; that's the joke and the point.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

@@ -0,0 +1,14 @@
---
name: "The Pickle Guys"
subtitle: "The last barrel on the Lower East Side"
date: 2026-08-07
shortlist: true
link: "https://www.atlasobscura.com/places/the-pickle-guys"
linkText: "atlasobscura.com"
source: "Atlas Obscura"
topics: [travel-and-places, food-and-drink]
tags: [new-york, lower-east-side, fermentation, last-of-its-kind]
description: "The final survivor of Manhattan's Pickle District, still lacto-fermenting in open barrels with nothing but salt, water, garlic and time."
---
Eighty-odd pushcart vendors once worked the corner of Essex and Ludlow; one shop is left, on Grand Street, and it still does it the old way — open barrels, lacto-fermentation, no preservatives and no pasteurisation. The menu is organised by how long a cucumber has slept in the brine, from the bright green snap of a New Pickle to the olive-drab Full Sour that takes months to go cloudy. The garlic steam hits before the door closes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

@@ -0,0 +1,13 @@
---
name: "Tour aux Figures"
subtitle: "A 78-foot anti-monument with a staircase hidden inside it"
date: 2026-08-07
link: "https://www.atlasobscura.com/places/la-tour-aux-figures-sculpture"
linkText: "atlasobscura.com"
source: "Atlas Obscura"
topics: [travel-and-places, design-and-art]
tags: [dubuffet, paris, sculpture, hourloupe]
description: "Jean Dubuffet's 1988 tower in a park outside Paris — 78 feet of jigsaw-patterned white, black, red and blue, with a spiral stair inside."
---
Dubuffet finished this in 1988 and called it an anti-monument: 78 feet of his Hourloupe pattern — a jigsaw of white, black, red and blue — rising out of a park on the Île Saint-Germain, visible across the lawn like something that landed there. The part people miss is that it is hollow. A spiral staircase runs up the inside to a small observation platform, open only sometimes, which is very much the joke Dubuffet was making about monuments.
Binary file not shown.

After

Width:  |  Height:  |  Size: 830 KiB

@@ -0,0 +1,28 @@
---
name: "Braun Collection"
subtitle: "The industrial-design canon, one flight up in a Kronberg strip mall, for three euros"
date: 2026-08-07
category: places
topics: [design-and-art, travel-and-places]
tags: [industrial-design, museum, germany, braun, dieter-rams]
link: "https://www.atlasobscura.com/places/braun-collection"
linkText: "atlasobscura.com"
description: "The BraunSammlung in Kronberg im Taunus — decades of Braun design run by a volunteer association, admission €3, and the hair dryers hang from the ceiling on wires."
source: "Atlas Obscura"
fromFind: "braun-collection"
---
import { Image } from 'astro:assets';
import hero from './hero.jpg';
<Image src={hero} alt="Inside the BraunSammlung: a row of hair dryers suspended nose-first from the ceiling on thin wires, receding into the room, with decades of electric shavers mounted in a single line along a black wall behind them." />
> Half the objects in the modern design canon, kept above a suburban strip mall outside Frankfurt by a non-profit association, for three euros. The hair dryers hang from the ceiling on wires, nose-first, like a natural history museum decided to do appliances.
Westerbachstraße 23C in Kronberg im Taunus is an unremarkable commercial building around the corner from Braun's own headquarters. Up one flight is the BraunSammlung: shavers running the length of a black wall in a single unbroken line, radios in wood cabinets giving way to the white-and-grey slabs that taught everyone else what a control panel should look like, and that squadron of hair dryers overhead. Every piece carries its model number, its designer and its history, in German and English.
**The arrangement is chronological, and that is the point.** Individually these are famous objects, endlessly reproduced in slide decks about Dieter Rams. In a row, decade after decade, they stop being icons and become a working method: you can watch the buttons get fewer, the grilles get quieter, the colour drain out except where it is doing a job. A single Braun object is a photograph. Forty years of them in sequence is an argument.
The economics are the second surprise. The museum is run by the Förderkreis BraunSammlung, a volunteer association working with the company rather than a corporate brand experience — which is why admission is €3 for adults, €1.50 for children between 7 and 17, and free for anyone under six or arriving with a school group. Tuesday to Sunday, 11:00 to 17:00, closed Mondays, wheelchair accessible.
Set expectations honestly: this is small and specialised, and Kronberg is the end of the S4 line, roughly half an hour out of Frankfurt, which you have to actually want to do. But it costs less than the coffee you'd buy on the way, most of it is hung and laid out in the open rather than sealed in vitrines, and it is the one place where the objects everyone quotes stand in the order they happened.
Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

@@ -0,0 +1,30 @@
---
name: "morningprint"
subtitle: "A thermal receipt printer that publishes one edition a day, to an audience of one"
date: 2026-08-07
category: making
topics: [gadgets-and-toys, design-and-art]
tags: [raspberry-pi, thermal-printer, generative-art, open-source, escpos]
link: "https://github.com/matt-w-horn/morningprint"
linkText: "github.com"
description: "An Epson receipt printer wakes before its owner and prints one piece of CP437 block art and a short verse, themed to the day. MIT-licensed, and honest about the week it went wrong."
source: "Hacker News — Show HN"
fromFind: "morningprint"
---
import { Image } from 'astro:assets';
import hero from './hero.jpg';
<Image src={hero} alt="Two thermal receipts pinned to a corkboard with wooden pegs. The left, dated Friday July 3 2026, shows a single firework rocket climbing a dotted trail through a sparse starfield above a solid-black city skyline. The right, dated Saturday July 4 2026, shows the same skyline under a sky full of bursts." />
> A receipt printer in a kitchen wakes before its owner and prints one piece of block art with a verse under it — 80mm wide, one copy, no way to subscribe. When the cutter drops, the day's edition is out.
The medium is the whole argument. The canvas is 203 dpi, one bit of colour, 48 monospace columns, and a character set frozen in 1981: CP437, the original IBM PC glyphs. Tone comes from `░ ▒ ▓ █` ramps, edges from half-blocks, solid black from inverted runs where even the spaces print. The trick that makes any of it possible is line spacing — by default the printer leaves a white seam between rows, and an `ESC 3` value calibrated by hand makes the block rows fuse into continuous fields.
Each morning a Google Apps Script assembles a brief — the date, the season, the weather, and a rolling archive of the last fourteen pieces — and asks Claude for one committed idea sharply unlike everything in that archive. The reply comes back as a declarative spec: styled text operations plus a verse. A fifty-line renderer turns that into ESC/POS and POSTs it to a Raspberry Pi Zero W, which writes it straight to the printer's character device.
The pair on the corkboard above is the exception that makes the rest work. A `continues` field sits empty almost every day, but when the day itself hands over a thread — a holiday arriving after its eve — the piece may answer an earlier one and record which. July 3 sends up a single scout rocket, *testing the dark. Tomorrow, the whole sky*; July 4 answers, *the scout kept its word*.
The most useful section of the README is the failure. Structured output guarantees the shape of the JSON, not the size of the strings in it, and one run in July 2026 returned a valid spec with a 3,155-character title of repeated filler. The archive kept it, every later prompt replayed it, and within a week the printer was producing a page of the model talking to itself instead of artwork. Specs are now length-checked before printing and the archive is sanitised on read, so a poisoned entry is dropped once rather than fed back for a fortnight.
You will need an Epson TM-T20III or another ESC/POS printer with CP437, a Pi, and an API key; the Pi-side script isn't in the repo. MIT-licensed. What you get for that is a daily thing with no feed, no archive to scroll and nothing to refresh — yesterday's goes on the corkboard.
Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

@@ -0,0 +1,30 @@
---
name: "The Listening Museum"
subtitle: "36 keyboards you can hear by typing on the one you already have"
date: 2026-08-07
category: sound
topics: [music-and-sound, gadgets-and-toys]
tags: [keyboards, sound, mechanical-keyboards, free, open-source-audio]
link: "https://sheets.works/data-viz/keyboard-sounds"
linkText: "sheets.works"
description: "Thirty-six mechanical keyboards sound-mapped from open-source community recordings — click a card, type on your own board, hear it in that one's voice. Explicitly not a buying guide."
source: "Kottke.org"
fromFind: "the-listening-museum"
---
import { Image } from 'astro:assets';
import hero from './hero.png';
<Image src={hero} alt="The Listening Museum title card: large serif type reading 'The Listening Museum' with 'Listening' in orange italic, the line '36 mechanical keyboards, sound-mapped. Click. Type. Listen.', and three figures — 36 keyboards, 40+ years, 500+ samples." />
> Thirty-six mechanical keyboards and switches laid out as cards. Click one, then type on your own keyboard — every key you press comes back in that board's voice. Free, no account, 500-odd samples spanning forty years and eight switch families.
The list runs from an IBM Model M of 1985 through Topre's rubber domes and Cherry MX clickies to the modern customs people call thocky. Clicking a card expands it into the anatomy — housing, stem, spring, and why those add up to the sound you just heard — which is the part that turns a novelty into something you learn from. Filters cover vintage, gaming, typewriter and the custom families; there is a dice button for when you don't know what you want.
**The methodology note is the best thing on the page, and it argues against the site's own premise.** The maker didn't record any of this: every sample comes from the open-source mechanical-keyboard community — Mechvibes, Bucklespring, Monkeytype, keyBeats, daktilo, a CC0 HHKB recording on Freesound — and the page says so up front. "We are the curator, not the field recordist." It then goes further, citing ThereminGoat's argument that sound tests are inherently limited: microphone, room, host board, keycap set, codec and your own speakers all colour what you hear. You are never hearing the keyboard. You are hearing one recording of one build through one chain.
Which forces a correction to how this got surfaced, including here. It is not a way to audition a switch before buying — the site says flatly, *treat this as a listening museum, not a buying guide*, and warns that loudness differences between paired entries are recording variance, not anything about the switch. What it is instead is a demonstration of that very point. Several switches appear twice as "alt build" entries: the same switch, a different host board and mic chain. Played back to back, you can hear how much of what people call a switch's character is actually plate, case, room and microphone.
Two details reward the pedantic. The Unicomp Classic shares its recording with the IBM Model M, because Unicomp still builds them on the original IBM tooling — a footnote that is also a small piece of manufacturing history. And some entries deliberately share audio, flagged rather than hidden.
No account, no purchase, no affiliate rail down the side. Just a page that lets you hear forty years of a thing through the board already under your fingers, and is scrupulously honest about what that is and isn't worth.
+1 -1
View File
@@ -1,3 +1,3 @@
{ {
"hero": "isopolis" "hero": "braun-collection"
} }