content: 2026-07-28 capture run — 17 finds across 8 productive sources
@@ -209,3 +209,10 @@ Goal of this round: expand `gifts` coverage with sources that lean Amazon-purcha
|
||||
- **Considered and not nominated:** Inconspicuous Consumption (https://inconspicuousconsumption.typepad.com) — tempting, and Cool Tools spotlighted it this run, but it is already captured as a find (`inconspicuous-consumption`, bundled into "Somebody put the whole of it online") and its publishing cadence is far too sporadic to scan on any schedule.
|
||||
- **Backlog unchanged and still the priority.** Highest-conviction, repeatedly re-surfacing: **The Public Domain Review**, **Michael Tsai**, **MetaFilter**, **Colossal**, **Craig Mod / Ridgeline**, **Nomadico**, plus **Calisphere** from 07-25. 16+ nominees stand unvetted — the thirteenth consecutive run past the 10+ nudge threshold. Adding any of them to `sources.json` remains a user decision.
|
||||
- **Still more urgent than any nomination:** the four Reddit sources (r/macapps, r/BuyItForLife, r/shortcuts, r/dadjokes) remain dark on a one-field credential error — `REDDIT_CLIENT_ID` holds an app name rather than Reddit's issued client ID. Re-verified again this run: `old.reddit.com/<sub>/.rss` returns a ~300KB "Welcome to Reddit" login wall for all four. Fixing that one field recovers four sources without vetting anything new.
|
||||
|
||||
### 2026-07-28 capture round
|
||||
|
||||
- **The Kid Should See This** — https://thekidshouldseethis.com — Rion Nakaya's long-running curated archive of "smart videos for curious minds of all ages": short films, science demos, craft process footage, optical illusions, animation. Nominated on two independent signals in the same run, which is unusual enough to record. First, it is an explicit outbound credit in Kottke's feed (pointing at TKSST's post on the 1984 René Jodoin animation *A Matter of Form* — itself already a find here, which says something about the overlap). Second, and more persuasive: while verifying today's `ants-phenakistoscope-turntable` find, TKSST turned out to be the best secondary source anywhere on Yohei Kisanuki's hand-drawn phenakistoscopes — it had covered the artist before The Awesomer did. A source that independently beats us to the same artist is worth reading directly rather than a step downstream. Has a working RSS feed, and its beat (video-led delight, no product angle) fills a gap: the site's video finds currently arrive almost entirely through The Awesomer.
|
||||
- **Considered and not nominated:** **Ignant** and **MyModernMet** both appeared as outbound credits this run, but on feed items dated well outside the window (2015 and 2024 respectively) — per the 07-22 rule, a credit that cannot be pointed back at inside the run is not a nomination. **Laughing Squid**, nominated 07-27, did not re-surface; still a first nomination, not yet a recurrence.
|
||||
- **Backlog unchanged and still the priority.** Highest-conviction, repeatedly re-surfacing: **The Public Domain Review**, **Michael Tsai** (credited again this run, in Six Colors), **MetaFilter**, **Colossal** (credited again this run, in Kottke), **Craig Mod / Ridgeline**, **Nomadico**, plus **Calisphere** (07-25) and **Laughing Squid** (07-27). 17+ nominees stand unvetted — the fourteenth consecutive run past the 10+ nudge threshold. Adding any of them to `sources.json` remains a user decision.
|
||||
- **Still more urgent than any nomination, and the diagnosis has changed.** The four Reddit sources remain dark, but this is no longer the one-field paste error recorded since 07-22. Measured 2026-07-28: `REDDIT_CLIENT_ID` is now a correctly shaped 16-character ID with a 32-character secret, and the token endpoint still returns HTTP 401 across all three grant types. That points at a revoked registration or a rotated secret, so the fix is to regenerate credentials on the Reddit app page rather than to correct a field — see the 2026-07-28 capture-run entry in `daily-finds.log.md`.
|
||||
|
||||
@@ -4208,3 +4208,66 @@ Never-picked pool not needed this run: **17 of 104 reviews have ever held the sl
|
||||
Front-page rules checked and clear: nothing that cuts, burns or explodes; no camping gear; nothing injury-prone or disturbing. (For the record, three of this run's finds *would* trip the rules if they ever reached the hero — none is a review, so none can.)
|
||||
|
||||
**Audit-trail note, resolved:** the 07-25 entry flagged that the 2026-07-24 run left no `pick of the day` log entry at all. That gap is still there and is now confirmed as a genuinely missing record rather than a mis-grep — the 07-24 run committed a bundle and then stopped, and there was no 07-26 run either. Both gaps are recorded here so the audit trail explains its own holes rather than looking merely incomplete.
|
||||
|
||||
## 2026-07-28 — capture run
|
||||
|
||||
Sources scanned: 59 total — 9 hits, 24 empty, 5 blocked, 18 skipped, 3 cadence-skipped.
|
||||
Productive sources: Hacker News — Show HN, Atlas Obscura, Kottke.org, The Awesomer, Wallpaper* Travel, MacStories, A.Word.A.Day, icanhazdadjoke, Gear Patrol (indirectly — see dropped).
|
||||
|
||||
One-day window (07-27 → 07-28) after yesterday's two-day catch-up. Feeds were clean and the day's yield was unusually broad: four software captures, four places, three objects, three words/jokes/quotes.
|
||||
|
||||
Captured finds:
|
||||
- yap-mac-dictation — Yap — source: Hacker News — Show HN
|
||||
- etymologue — Etymologue — source: Hacker News — Show HN
|
||||
- coast-mac-control-surface — Coast — source: Hacker News — Show HN
|
||||
- instant-ride-planner — The Instant Ride Planner — source: Hacker News — Show HN
|
||||
- datatype-chart-font — Datatype — source: Kottke.org
|
||||
- euro-banknote-design-proposals — The Next Euro Banknotes — source: Kottke.org
|
||||
- pastebot-3 — Pastebot 3 — source: MacStories
|
||||
- nostalgia-box-perth — The Nostalgia Box — source: Atlas Obscura
|
||||
- rooey-ii-big-kangaroo — Rooey II — source: Atlas Obscura
|
||||
- submarine-safari-tenerife — Submarine Safari — source: Atlas Obscura
|
||||
- the-zetter-bloomsbury — The Zetter Bloomsbury — source: Wallpaper* Travel
|
||||
- pay-phone-charger — Pay Phone Charger — source: The Awesomer
|
||||
- rampage-trail-can-toolbox — Rampage Trail Can — source: The Awesomer
|
||||
- ants-phenakistoscope-turntable — Ants on a Turntable — source: The Awesomer
|
||||
- misdoubt — Misdoubt — source: A.Word.A.Day
|
||||
- quote-duchamp-contradict-myself — Marcel Duchamp on contradicting yourself — source: A.Word.A.Day
|
||||
- joke-february-march-april-may — Can February march? — source: icanhazdadjoke
|
||||
|
||||
Shortlist (12, ranked):
|
||||
1. datatype-chart-font — a font whose ligatures render the chart, so `{b:15,45,80}` becomes bars inline; the specimen image sells it without a word of copy [review candidate]
|
||||
2. ants-phenakistoscope-turntable — a phenakistoscope disc drawn ant by ant and spun on a record player; the strongest image of the day and no knowledge required to enjoy it [review candidate]
|
||||
3. submarine-safari-tenerife — a Finnish-built passenger submarine off Tenerife with manta rays that come for the bubbles [review candidate]
|
||||
4. euro-banknote-design-proposals — ten shortlisted designs published in full, and a survey you can actually answer
|
||||
5. yap-mac-dictation — 4 MB, because it uses the speech models macOS 26 already ships; there is nothing to download
|
||||
6. nostalgia-box-perth — a hundred consoles in West Perth and a room where they are plugged in
|
||||
7. etymologue — the etymology graph made walkable forwards, which no dictionary offers
|
||||
8. rooey-ii-big-kangaroo — a roadside kangaroo holding a tub of Vegemite, named after a nickname already in use
|
||||
9. pay-phone-charger — a desk-sized phone booth with MagSafe where the handset was
|
||||
10. the-zetter-bloomsbury — five hundred cushions cut from antique textiles, next door to the British Museum
|
||||
11. coast-mac-control-surface — a control deck you lay out yourself, and every button answers with a haptic
|
||||
12. rampage-trail-can-toolbox — a jerry can that opens into two drawers and a rack of screwdrivers
|
||||
|
||||
Not shortlisted but published (5): pastebot-3, instant-ride-planner, misdoubt, quote-duchamp-contradict-myself, joke-february-march-april-may.
|
||||
|
||||
Amazon links added: 1 (rampage-trail-can-toolbox → B004YNOT0Q). The RealTruck listing is part number 86619; Amazon's "RAMPAGE PRODUCTS Trail Can Utility/Tool Box | Red | 86619" is the same maker and the same part number, so the same-maker-same-model test passes outright. The only other shortlisted physical item is the Pay Phone Charger, which is a one-artist Shopify shop and has no Amazon presence by design.
|
||||
|
||||
Image-fetch notes: 10 of 17 finds carry a hero. **Three heroes rejected under the overlay-text rule and one rescued.** Datatype's own og.png is a title card (wordmark plus "A VARIABLE FONT THAT TURNS TEXT INTO CHARTS"); the project repo turned out to ship a `promo-images/` folder, and `Table.png` — a stock table with the font's sparklines running down the trend column, no marketing copy anywhere — is a far better hero and is what shipped. **coast** and **viewkit** (the latter dropped for other reasons) both serve title-card OG images with no clean alternative, so Coast is heroless. **Atlas Obscura is Cloudflare-blocked** to curl *and* to WebFetch (HTTP 403 both ways), but its RSS carries the full place description and a 300×200 imgproxy thumbnail whose base64 tail decodes to the original S3 URL — decoding that yielded 4032–5184px originals for all three places, downscaled here to 2200px. Worth keeping: that decode is the working path around Atlas Obscura's block. **Pastebot's** hero is the MacStories screenshot cropped to the app window — the original is a 6016×3384 shot of the reviewer's whole desktop, where the Pastebot window is a third of the frame. **yap**, **etymologue**, **instant-ride-planner** heroless. Etymologue's is the funniest failure of the run: its og:image is published as `http://localhost:3000/og.png`.
|
||||
|
||||
Dropped on verify/dedup (notable): **Havo Flight Pouch** (The Awesomer) — a genuinely good 22-pocket travel sling with RFID shielding and a detachable room-safe pouch, dropped because the Gen 4 it links to is a **live Kickstarter**; crowdfunding is not-yet-shipping and fails the bar, the same call as Light Flip on 07-27. **Timex × Todd Snyder Marlin Mesh** (Gear Patrol) — written and then pulled at the link stage: the 34mm case with a domed acrylic crystal on a Milanese mesh bracelet at $199 is a real find, and the honest detail is that this generation is quartz where the 2017 original was hand-wound, but no first-party product URL could be confirmed (Todd Snyder's store is JS-rendered, blocks curl and serves no `products.json`; timex.com's Marlin index does not list it). Linking a find to the aggregator that covered it is not the convention, so it was dropped rather than faked. Revisit if it appears on toddsnyder.com. **ohSnap Snap Grip** (TidBITS) — a MagSafe phone grip, and TidBITS' own headline ("Solves a Problem You May Not Have") is the tell: a generic mass-market accessory fails the bar. **ViewKit** (Show HN) — an in-browser HDF5/Parquet/Zarr viewer, competent but narrow, and its only image is a title card. **Snow Peak Takibi propane insert** and **Stubble & Co Motion 38L** (Gear Patrol) — the camping-fire-pit and travel-backpack angles are both saturated after the 07-27 travel bundle. Also dropped: the Show HN AI wall (roughly 15 of 29 entries were agent routers, context-selection benchmarks, AI issue-resolvers and LLM-hacking labs), Gear Patrol's watch/sneaker/motorcycle churn, This Is Why I'm Broke's needle gun, ejector bed and remote restraint device (harm-adjacent), Kottke's two political posts, five Marginalian and Browser essays with no object in them, and Cool Tools' "Geology" issue (a re-run of two book recommendations from *Tools for Possibilities* #200).
|
||||
|
||||
Prompt-injection watch: nothing fetched was treated as an instruction.
|
||||
|
||||
Source maintenance:
|
||||
- **Reddit (r/macapps, r/BuyItForLife, r/shortcuts, r/dadjokes) — diagnosis corrected, and it matters.** The note carried since 07-22 said `REDDIT_CLIENT_ID` holds the app *name* `unique-editorial`. That is no longer true and the note has been rewritten in `sources.json` for all four sources. Measured this run: the ID is **16 characters** and the secret **32** — both correctly shaped — and the token request still returns HTTP 401 across **three** grant types (client_credentials with the secret, installed_client with the secret, installed_client with an empty secret). A correctly-formed pair failing every grant is not a formatting mistake; it points at the app registration being revoked or the secret rotated without the environment following. The operator fix is now "regenerate the secret on the Reddit app page", not "paste the right field". Sixth consecutive run flagging these four, and still the highest-value fix on the board.
|
||||
- **Outlier — demoted `ongoing` → `as-needed`.** Third consecutive empty scan (07-25, 07-27, 07-28); the homepage still exposes only the four items already captured. A fifth name, "Nycogaze", appears in the nav but `outlier.nyc/products/nycogaze` serves the generic site OG rather than a product page, and `/collections/new/products.json` is not served, so there is no Shopify JSON path to record either. Live but slow — cadence, not a block.
|
||||
- **Quote Investigator — the 07-27 rescue holds.** `/feed/atom/` returned 187 KB of clean Atom to plain curl this run, confirming the switch away from the Brotli-broken `/feed/`. Nothing to change; recording the confirmation so the fix is not re-litigated.
|
||||
- StyleForum — spot-checked, unchanged: all 50 items in the forum-wide feed are Shein coupon-code and weight-loss-supplement threads. Already `as-needed` with the sub-forum probes recorded on 07-27; no further action available without an operator choosing a sub-forum.
|
||||
- MoMA Design Store — scanned, `empty`: newest `published_at` is still 2026-07-20 (the Calder chess set, already a review).
|
||||
- Kikkerland — scanned, `empty`: newest `published_at` 2026-03-11, unchanged for months. Already `as-needed`, and not yet a year stale, so no skip applies.
|
||||
- Dormancy stalemate, seventh consecutive run, no demotions available: A Continuous Lean, Roadtrippers Magazine, Snow Peak, Standard & Strange, Messy Nessy Chic, Things Magazine, Web Curios, Uses This, Brett Terpstra, Dr. Drang — all returned nothing inside the window, all already at `as-needed`/`weekly`, none over a year stale.
|
||||
- Cadence-skipped this run: AFAR (weekly, scanned and empty 07-27), Wikiquote (as-needed, last productive 07-20), Kevin Kelly — kk.org (as-needed; the one new post, "Protopia", is an essay with no object in it).
|
||||
- `updated` field bumped to 2026-07-28.
|
||||
|
||||
New source nominees: 1 (The Kid Should See This — see candidate-sources.md). candidate-sources.md backlog now 17+ unvetted.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"updated": "2026-07-27",
|
||||
"updated": "2026-07-28",
|
||||
"topics": [
|
||||
"macos-apps",
|
||||
"apple-tips",
|
||||
@@ -99,7 +99,7 @@
|
||||
"cadence": "as-needed",
|
||||
"fetch": "feed",
|
||||
"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 now present in the environment, but the app-only OAuth token request to www.reddit.com/api/v1/access_token returns HTTP 401 Unauthorized — REDDIT_CLIENT_ID is set to 'unique-editorial', which looks like an app *name* rather than the ~14-character client ID Reddit issues, so the credential pair is almost certainly misconfigured rather than the API being closed. 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."
|
||||
"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."
|
||||
},
|
||||
{
|
||||
"name": "Indie App Sunday",
|
||||
@@ -166,7 +166,7 @@
|
||||
"cadence": "as-needed",
|
||||
"fetch": "feed",
|
||||
"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 now present in the environment, but the app-only OAuth token request to www.reddit.com/api/v1/access_token returns HTTP 401 Unauthorized — REDDIT_CLIENT_ID is set to 'unique-editorial', which looks like an app *name* rather than the ~14-character client ID Reddit issues, so the credential pair is almost certainly misconfigured rather than the API being closed. 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."
|
||||
"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."
|
||||
},
|
||||
{
|
||||
"name": "Hacker News — Show HN",
|
||||
@@ -366,8 +366,8 @@
|
||||
"topics": [
|
||||
"clothing"
|
||||
],
|
||||
"cadence": "ongoing",
|
||||
"notes": "Technical fabric clothing for daily use — the brand itself is a source. Watch product drops + the Out of Office blog."
|
||||
"cadence": "as-needed",
|
||||
"notes": "Technical fabric clothing for daily use — the brand itself is a source. Watch product drops + the Out of Office blog. Demoted ongoing → as-needed 2026-07-28: three consecutive scans (07-25, 07-27, 07-28) surfaced nothing new — the homepage still exposes only injected-linen, sunwarp, futurelittlebigs and ultra-ultra-easy-shorts, all captured, plus a 'Nycogaze' name with no reachable product page (outlier.nyc/products/nycogaze serves the generic site OG). The shop is live, so this is cadence, not a block; /collections/new/products.json is not served, so there is no Shopify JSON path to record."
|
||||
},
|
||||
{
|
||||
"name": "Snow Peak",
|
||||
@@ -650,7 +650,7 @@
|
||||
"cadence": "as-needed",
|
||||
"fetch": "feed",
|
||||
"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 now present in the environment, but the app-only OAuth token request to www.reddit.com/api/v1/access_token returns HTTP 401 Unauthorized — REDDIT_CLIENT_ID is set to 'unique-editorial', which looks like an app *name* rather than the ~14-character client ID Reddit issues, so the credential pair is almost certainly misconfigured rather than the API being closed. 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."
|
||||
"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."
|
||||
},
|
||||
{
|
||||
"name": "OSXDaily",
|
||||
@@ -721,7 +721,7 @@
|
||||
"cadence": "as-needed",
|
||||
"fetch": "feed",
|
||||
"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 now present in the environment, but the app-only OAuth token request to www.reddit.com/api/v1/access_token returns HTTP 401 Unauthorized — REDDIT_CLIENT_ID is set to 'unique-editorial', which looks like an app *name* rather than the ~14-character client ID Reddit issues, so the credential pair is almost certainly misconfigured rather than the API being closed. 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."
|
||||
"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."
|
||||
},
|
||||
{
|
||||
"name": "icanhazdadjoke",
|
||||
|
||||
|
After Width: | Height: | Size: 94 KiB |
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: "Ants on a Turntable"
|
||||
subtitle: "A phenakistoscope drawn one ant at a time"
|
||||
date: 2026-07-28
|
||||
shortlist: true
|
||||
link: "https://youtu.be/PG6DG3UXZxY"
|
||||
linkText: "youtube.com"
|
||||
source: "The Awesomer"
|
||||
topics: [design-and-art]
|
||||
tags: [animation, illusion, drawing, video]
|
||||
description: "Yohei Kisanuki hand-draws a disc of ants, each a few degrees further into its stride than the last, then spins it on a record player."
|
||||
---
|
||||
|
||||
Yohei Kisanuki draws a disc of ants by hand, one insect at a time, each a few degrees further into its stride than the one before. Put it on a record player and the 1830s trick fires: the ants stop being drawings and start walking. The long version is nothing but the drawing, hours of it, and it is the better watch — you see the illusion assembled stroke by stroke before it ever moves.
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: "Coast"
|
||||
subtitle: "An iPhone that clicks back at your Mac"
|
||||
date: 2026-07-28
|
||||
shortlist: true
|
||||
link: "https://coast.masn.studio"
|
||||
linkText: "coast.masn.studio"
|
||||
source: "Hacker News — Show HN"
|
||||
topics: [ios-apps, macos-apps, productivity]
|
||||
tags: [remote-control, macros, apple-watch]
|
||||
description: "Build a control deck for your Mac on an iPhone: buttons that chain a keystroke, a menu item and an if/else into one press, each with its own haptic."
|
||||
---
|
||||
|
||||
Lay out your own deck of buttons, each one chaining a keystroke, a menu item and a piece of if/else logic into a single press. Every tap answers with a haptic, so you feel the Mac respond instead of looking up to check it did. A trackpad, dictation, drawing over a mirrored screen and a presenter mode come along, and the Watch gets a small deck of its own.
|
||||
|
After Width: | Height: | Size: 284 KiB |
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: "Datatype"
|
||||
subtitle: "A font that draws the chart for you"
|
||||
date: 2026-07-28
|
||||
shortlist: true
|
||||
link: "https://franktisellano.github.io/datatype/"
|
||||
linkText: "franktisellano.github.io"
|
||||
source: "Kottke.org"
|
||||
topics: [design-and-art, web-tools]
|
||||
tags: [typography, dataviz, open-source]
|
||||
description: "An OpenType variable font whose ligatures turn {b:15,45,80} into a bar chart — no JavaScript, no images, no charting library."
|
||||
---
|
||||
|
||||
Type `{b:15,45,80,30,60}` and ligature substitution turns it into a five-bar chart, inline, in the middle of the sentence. `{l:…}` gives a sparkline, `{p:62}` a pie. Because it is a font and not a library, the chart inherits colour, size and weight from whatever it sits inside, and two variable axes tune density and stroke. Frank Tisellano released it under the Open Font License.
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: "Etymologue"
|
||||
subtitle: "Word origins you can walk forwards as well as back"
|
||||
date: 2026-07-28
|
||||
shortlist: true
|
||||
link: "https://etymologue.com/"
|
||||
linkText: "etymologue.com"
|
||||
source: "Hacker News — Show HN"
|
||||
topics: [web-tools, words-and-humor, learning-and-reference]
|
||||
tags: [etymology, dictionary, wiktionary]
|
||||
description: "396,192 English words and 240,011 etymology links pulled out of Wiktionary and made walkable in both directions."
|
||||
---
|
||||
|
||||
Wiktionary knows where words come from but buries it in prose. Etymologue pulls the graph out and lets you move around in it: 396,192 English words, 722,472 lexemes, 3,025 languages, 240,011 links between them. Pick an origin language and see everything English took from it; open a Latin root and walk forward to its descendants rather than backward to its parents. That reverse direction is the part no dictionary gives you.
|
||||
|
After Width: | Height: | Size: 260 KiB |
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: "The Next Euro Banknotes"
|
||||
subtitle: "Ten shortlisted designs, and the ECB is asking"
|
||||
date: 2026-07-28
|
||||
shortlist: true
|
||||
link: "https://www.ecb.europa.eu/euro/banknotes/future_banknotes/html/design-proposals.en.html"
|
||||
linkText: "ecb.europa.eu"
|
||||
source: "Kottke.org"
|
||||
topics: [design-and-art]
|
||||
tags: [currency, illustration, europe]
|
||||
description: "Ten shortlisted designs for the next euro banknotes, published front and back at every denomination, with a public survey open."
|
||||
---
|
||||
|
||||
The current euro notes show invented bridges and windows, carefully belonging to nowhere so they could belong to everyone. The ten shortlisted replacements, A through J, mostly give that up: a wallcreeper crossing a mountain range, rivers drawn as contour lines, named faces from European culture. Every proposal is published front and back at every denomination, and the ECB's survey is open — you can say which one you want in your pocket.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: "The Instant Ride Planner"
|
||||
subtitle: "Your route with the wind drawn onto it"
|
||||
date: 2026-07-28
|
||||
link: "https://theinstant.cc/ride"
|
||||
linkText: "theinstant.cc"
|
||||
source: "Hacker News — Show HN"
|
||||
topics: [web-tools, outdoors-and-nature]
|
||||
tags: [cycling, weather, gpx]
|
||||
description: "Upload a GPX route and it walks your own pace along it, drawing wind vectors, rain risk and gradient at the point you'll actually reach them."
|
||||
---
|
||||
|
||||
Drop in a GPX file, give it your speed, and it walks that pace along the route to work out what the weather will be doing when you get there rather than when you set off. Wind arrows sit on the map angled against your heading, rain risk and temperature ride along, and the climbs and descents are picked out on the elevation profile. Open-Meteo data, sixteen days ahead.
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
name: "Can February march?"
|
||||
date: 2026-07-28
|
||||
link: "https://icanhazdadjoke.com/j/JeaxXvkyPf"
|
||||
linkText: "icanhazdadjoke.com"
|
||||
source: "icanhazdadjoke"
|
||||
topics: [words-and-humor]
|
||||
tags: [pun, wordplay, calendar]
|
||||
description: "A dad joke from icanhazdadjoke: two months doubling as verbs, in a single seven-word exchange."
|
||||
---
|
||||
|
||||
Can February march? No, but April may. Seven words, two months quietly working as verbs, and a punchline that only exists because the calendar happens to contain them in the right order — nothing to set up, nothing left over.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: "Misdoubt"
|
||||
subtitle: "A prefix that reinforces instead of reversing"
|
||||
date: 2026-07-28
|
||||
link: "https://wordsmith.org/words/misdoubt.html"
|
||||
linkText: "wordsmith.org"
|
||||
source: "A.Word.A.Day"
|
||||
topics: [words-and-humor, learning-and-reference]
|
||||
tags: [etymology, vocabulary, shakespeare]
|
||||
description: "Misdoubt does not mean to doubt wrongly — the mis- here reinforces rather than negates, a habit English has almost entirely dropped."
|
||||
---
|
||||
|
||||
Misdoubt does not mean to doubt incorrectly. In a handful of older formations the *mis-* reinforced a verb that was already negative rather than reversing it, so misdoubt simply means to doubt or suspect — in use since the 1530s. The Countess in *All's Well That Ends Well* gets the best line with it: "I could neither believe nor misdoubt." *Doubt* itself goes back to the root that gave us *two*.
|
||||
|
After Width: | Height: | Size: 628 KiB |
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: "The Nostalgia Box"
|
||||
subtitle: "A hundred consoles in West Perth, and you can play them"
|
||||
date: 2026-07-28
|
||||
shortlist: true
|
||||
link: "https://www.atlasobscura.com/places/nostalgia-box"
|
||||
linkText: "atlasobscura.com"
|
||||
source: "Atlas Obscura"
|
||||
topics: [travel-and-places, gadgets-and-toys]
|
||||
tags: [museum, video-games, australia]
|
||||
description: "Over a hundred video game consoles from the 1970s to the early 2000s, with an interactive room where many of them are plugged in and playable."
|
||||
---
|
||||
|
||||
Over a hundred consoles in a West Perth museum, running from the wood-veneer boxes of the 1970s through to the early 2000s. What makes it worth the detour is the room at the end: many of the systems are plugged in and yours to play, so the joystick under your thumb is the actual thing rather than a photograph of one behind glass.
|
||||
|
After Width: | Height: | Size: 804 KiB |
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: "Pastebot 3"
|
||||
subtitle: "Tapbots rebuilds its clipboard manager from zero"
|
||||
date: 2026-07-28
|
||||
link: "https://tapbots.com/pastebot/"
|
||||
linkText: "tapbots.com"
|
||||
source: "MacStories"
|
||||
topics: [macos-apps, productivity]
|
||||
tags: [clipboard, automation, shortcuts]
|
||||
description: "A ground-up rewrite whose new filters transform a clipping with text rules or a shell script, previewable before you commit and chainable together."
|
||||
---
|
||||
|
||||
The filters are the reason to look. Transform a clipping with text rules or an actual shell script, watch the effect previewed on the selected clipping before you commit to it, bind it to a key, then chain filters so one shortcut runs several in order. Copy a stack of things and paste them back in sequence with ⌃⌘V. Shortcuts and a CLI both reach the store. macOS 26 only.
|
||||
|
After Width: | Height: | Size: 107 KiB |
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: "Pay Phone Charger"
|
||||
subtitle: "A 3D-printed phone booth that charges the phone inside it"
|
||||
date: 2026-07-28
|
||||
shortlist: true
|
||||
link: "https://www.nickydavis.com/products/pay-phone-charger"
|
||||
linkText: "nickydavis.com"
|
||||
source: "The Awesomer"
|
||||
topics: [gadgets-and-toys, home-and-kitchen]
|
||||
tags: [3d-printed, magsafe, desk, giftable]
|
||||
description: "Nicky Davis prints desk-sized phone booths with a MagSafe charger where the handset would be and an LED behind the PHONE sign."
|
||||
---
|
||||
|
||||
Nicky Davis prints these as small phone booths, with a MagSafe charger standing where the handset would be and an LED behind the PHONE sign that lights the whole box from inside. The finished ones come graffitied or scuffed up like a booth that has been on a corner since 1994. The $125 DIY version arrives plain with a sheet of stickers, so the tagging is left to you.
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: "Marcel Duchamp on contradicting yourself"
|
||||
subtitle: "Taste is a rut, and the way out is to disagree with yourself"
|
||||
date: 2026-07-28
|
||||
link: "https://wordsmith.org/words/misdoubt.html"
|
||||
linkText: "wordsmith.org"
|
||||
source: "A.Word.A.Day"
|
||||
topics: [words-and-humor, design-and-art]
|
||||
tags: [creativity, taste, artists]
|
||||
description: "A.Word.A.Day's daily quote from Marcel Duchamp, on forcing himself to contradict himself so he would not simply repeat his own preferences."
|
||||
---
|
||||
|
||||
"I have forced myself to contradict myself in order to avoid conforming to my own taste." Duchamp, who put a urinal in a gallery and then spent twenty years quietly playing chess, treats personal taste as the trap rather than the goal — the thing most likely to make you produce the same work twice. The remedy he describes is deliberate, not accidental: pick the option you would not have picked.
|
||||
|
After Width: | Height: | Size: 64 KiB |
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: "Rampage Trail Can"
|
||||
subtitle: "A toolbox shaped exactly like a jerry can"
|
||||
date: 2026-07-28
|
||||
shortlist: true
|
||||
link: "https://realtruck.com/p/rampage-trail-can-utility-tool-box/"
|
||||
linkText: "realtruck.com"
|
||||
source: "The Awesomer"
|
||||
amazonLink: "https://www.amazon.com/dp/B004YNOT0Q"
|
||||
topics: [gadgets-and-toys, home-and-kitchen]
|
||||
tags: [tools, storage, overlanding, giftable]
|
||||
description: "Eighteen inches of powder-coated steel shaped as a five-gallon fuel can, with two pull-out drawers, a lift-out tray and screwdriver slots in the door."
|
||||
---
|
||||
|
||||
Eighteen inches of powder-coated steel in the shape of a five-gallon fuel can, X-braced sides and all — except this one opens. The hinged front door reveals two pull-out drawers, a lift-out tray and a row of screwdriver slots down the inside of the door, everything sitting on non-slip liners. It bolts into a standard jerry can mount, so it rides on the back of the truck exactly where fuel would.
|
||||
|
After Width: | Height: | Size: 1.0 MiB |
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: "Rooey II"
|
||||
subtitle: "A giant roadside kangaroo holding a tub of Vegemite"
|
||||
date: 2026-07-28
|
||||
shortlist: true
|
||||
link: "https://www.atlasobscura.com/places/the-big-kangaroo-rooey-ii"
|
||||
linkText: "atlasobscura.com"
|
||||
source: "Atlas Obscura"
|
||||
topics: [travel-and-places]
|
||||
tags: [roadside, australia, sculpture]
|
||||
description: "Built in 1987 to make America's Cup traffic stop at the Border Village Roadhouse, on the edge of the Nullarbor — holding a tub of Vegemite."
|
||||
---
|
||||
|
||||
Built in 1987 to make America's Cup traffic stop at the Border Village Roadhouse, Rooey II stands at the edge of the Nullarbor, a few metres inside South Australia, holding a tub of Vegemite. Bill Metherel designed it. The name came out of a public competition that landed on "Rooey" — already the nickname of one of the roadhouse owners, which is how a statue ended up with a sequel number and no original.
|
||||
|
After Width: | Height: | Size: 877 KiB |
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: "Submarine Safari"
|
||||
subtitle: "A Finnish-built submarine that takes 40 people under Tenerife"
|
||||
date: 2026-07-28
|
||||
shortlist: true
|
||||
link: "https://www.atlasobscura.com/places/submarine-safari"
|
||||
linkText: "atlasobscura.com"
|
||||
source: "Atlas Obscura"
|
||||
topics: [travel-and-places, outdoors-and-nature]
|
||||
tags: [submarine, tenerife, underwater]
|
||||
description: "One of the few passenger submarines open to the public: built in Finland in the 1990s, diving off Tenerife since 2007."
|
||||
---
|
||||
|
||||
One of the few submarines anywhere open to the public: built in Finland in the 1990s, working off Tenerife since 2007, rated to 100 metres and held to 30 with passengers aboard. The route passes shipwrecks and a rock wall thick with life. The local manta rays come to meet it — they have worked out that divers make bubbles worth playing in, and will take a belly rub while they are there.
|
||||
|
After Width: | Height: | Size: 178 KiB |
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: "The Zetter Bloomsbury"
|
||||
subtitle: "Six Georgian townhouses beside the British Museum"
|
||||
date: 2026-07-28
|
||||
shortlist: true
|
||||
link: "https://thezetter.com/bloomsbury/"
|
||||
linkText: "thezetter.com"
|
||||
source: "Wallpaper* Travel"
|
||||
topics: [travel-and-places, design-and-art]
|
||||
tags: [hotel, london, georgian]
|
||||
description: "Six connected Georgian townhouses on Montague Street, furnished by James Thurstan Waterworth with 500 cushions cut from antique textiles."
|
||||
---
|
||||
|
||||
Six connected Georgian townhouses on Montague Street, a minute from the British Museum, furnished by James Thurstan Waterworth as though somebody had been collecting for it all their life. More than five hundred cushions cut from antique textiles. Six hundred-odd vintage art and auction catalogues shelved through the rooms, in deference to the neighbour. The modern services are shut away inside Georgian cabinets. From £210.
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: "Yap"
|
||||
subtitle: "Dictation with nothing to download"
|
||||
date: 2026-07-28
|
||||
shortlist: true
|
||||
link: "https://github.com/FrigadeHQ/yap"
|
||||
linkText: "github.com"
|
||||
source: "Hacker News — Show HN"
|
||||
topics: [macos-apps, productivity]
|
||||
tags: [dictation, open-source, menu-bar]
|
||||
description: "A 4 MB menu bar dictation app that borrows the speech models macOS 26 already ships — no model download, no account, no network."
|
||||
---
|
||||
|
||||
Every other dictation app makes you download a model first. Yap has none to download: it calls the SpeechAnalyzer APIs macOS 26 already ships and manages, which is how the whole thing fits into about 4 MB and roughly 3,000 lines of Swift. Press ⌘⇧D, talk, and the text lands in whichever window has focus. No account, no API key, nothing leaves the machine. MIT-licensed.
|
||||