Sign in

ecallen

@ethancallen.bsky.social
42 followers 85 following 112 posts

Working on: civic.statmeet.com

PostsRepliesMedia
ecallen @ethancallen.bsky.social · 07/10/2026
Mask secret auth fields with an eye show/hide toggle Token, password, secret key and client secret fields in the auth editor (and the AI API key in Settings) render as password inputs with an eye / ey... View Card → | cards.statmeet.com | atproto feed
100
ecallen @ethancallen.bsky.social · 06/10/2026
🔴 LIVE stream.place/ethancallen.bsky.social statmeet testing
stream.place
@ethancallen.bsky.social is 🔴LIVE on stream.place!
statmeet testing
010
ecallen @ethancallen.bsky.social · 05/10/2026
Review Claude code instructions Initial review of the CLAUDE.md project brief before starting Stage 0 work. #meta View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 05/10/2026
test phase 0 Stage 0 MVP: FastAPI + HTMX + YAML file storage in data/requests/. Save/run/view a request. No auth, no plugins, no build step. #stage-0 #done View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 05/10/2026
Implement auth flows Stage 1: plugin loader (app/plugins.py, pre_request/post_response hooks, non-fatal failures) + six built-in auth presets as plugins in plugins/auth... #stage-1 #done #auth View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 05/10/2026
Stage 2: centralized/server mode (MODE flag, Postgres backend, admin login, Docker) MODE=local|server env flag. server mode swaps storage to Postgres via the same storage.py function interface, and gates the app behind a single sha... #stage-2 View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 05/10/2026
Stage 4: OAuth 2.0 Authorization Code + PKCE preset (GitHub + Twitter/X, private_key_jwt) — done PKCE (S256), client_secret_post/basic/none + private_key_jwt (RFC 7523) client auth, refresh-token rotation with write-only-on-change persistence, ... View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 05/10/2026
Stage 5: BYOK AI chat (provider-neutral, propose/apply request generation) Provider-neutral BYOK (OpenAI-compatible Chat Completions via AsyncOpenAI, configurable base_url). app/ai_tools.py is the safety boundary -- fixed ... #stage-5 #done #ai View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 05/10/2026
Stage 4 follow-on: PAR (RFC 9126) + DPoP (RFC 9449) for full Bluesky/atproto OAuth compliance PAR (RFC 9126): additive change to GET /oauth2/authorize, POST params to a pushed_authorization_request_endpoint first. DPoP (RFC 9449): bigger -- ... View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 05/10/2026
Postman collection import (future, lower priority) Import Postman's own (non-OpenAPI) collection JSON format into saved requests. Explicitly lower priority -- don't implement unless asked. Needs its... #import #open #low-priority View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 05/10/2026
Stage 4 follow-on: OAuth 2.0 Device Authorization Grant preset (RFC 8628) oauth2_device_code preset (RFC 8628) for CLI-style testing. No redirect URI or browser callback needed -- POST to a device-authorization endpoint, ... #stage-4 #auth #oauth View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 05/10/2026
Add social share of API flows Idea: let users share a saved request/flow socially (e.g. as a Bluesky post). Not part of the original CLAUDE.md roadmap -- captured separately, ne... #idea #not-in-roadmap View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 05/10/2026
User testing: OAuth 2.0 Authorization Code preset against real GitHub + Twitter/X Manual runbook to verify #91 against a real GitHub OAuth App and a real Twitter/X OAuth 2.0 app -- register the app, match its redirect URI, click ... #stage-4 #auth View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 05/10/2026
Stage 3: monitoring export (Prometheus blackbox target + standalone cron script endpoints) POST /requests/{id}/export/prometheus (Prometheus blackbox-exporter target YAML) and POST /requests/{id}/export/cron (standalone Python script reus... #open View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 30/09/2026
Jack Smith for president
000
Reposted by ecallen
civic.statmeet.com @statmeet.com · 29/09/2026
From Don’t Talk About Politics by Sarah Stein Lubrano “We need to build better forms of 'social infrastructure. A good deal of the infrastructure that supports us in considering new ideas doesn't appear as directly related to discourse but nevertheless allows us to belong with new kinds of people…
102
ecallen @ethancallen.bsky.social · 30/09/2026
htmx frontend 8/8: parity check, switch-over, delete frontend/ Part of #109. Run both frontends side by side on Tailscale against copies of the same DB and walk every page and action; record differences on this... State: Active #htmx-frontend View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 30/09/2026
htmx frontend 7/8: admin pages (scenario queue, news queue, news admin) Part of #109. Port /scenarios/queue (approve/delete), /news/queue (publish/delete) and /news/admin (delete, Find Related Scenarios via the LLM, rel... State: Done View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 30/09/2026
htmx frontend 6/8: settings (username, API tokens, delete account) Part of #109. Port app/settings/page.tsx: change username (with suggest), list/create/revoke personal access tokens (show the plaintext token once ... State: Done #htmx-frontend View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 30/09/2026
htmx frontend 5/8: forms (new scenario, submit news) Part of #109. Port /scenarios/new (title, hypothesis, timeframe radios, add/remove outcome and second-order effect rows, blank rows dropped, order ... State: Done #htmx-frontend View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 30/09/2026
htmx frontend 4/8: interactions (voting, comments, delete) Part of #109. Wire up VoteButton (cast, switch, un-vote by clicking the same button again, highlight my vote, redirect to login when logged out), C... State: Done #htmx-frontend View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 30/09/2026
htmx frontend 3/8: cookie login (magic link, username, sign out) Part of #109. Port /auth/login, /auth/verify and /auth/username. Verify sets ae_session (HttpOnly, SameSite=Lax, Secure unless DEV_MODE, max-age = ... State: Done #htmx-frontend View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 30/09/2026
htmx frontend 2/8: read-only pages (home, scenario list, scenario detail) Part of #109. Port app/page.tsx (carousel of top 3, latest news, recent scenarios), app/scenarios/page.tsx and app/scenarios/[id]/page.tsx (meta ro... State: Done View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 30/09/2026
htmx frontend 1/8: foundation (templates, bundled assets, CSS, second listener) Part of #109. Create branch htmx-frontend from rust-experiment. In backend-rs: add askama; vendor htmx and the Playfair Display + DM Mono woff2 fil... State: Done View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 30/09/2026
htmx frontend: replace Next.js with Rust-rendered pages (no Node) State: Active #htmx-frontend View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 29/09/2026
Fix Bluesky post-length bug in Python bluesky.py Part of #104; found during the port. backend/app/services/bluesky.py sizes the title as `300 - len(cta) - len(prefix) - 4`, which forgets the `#geo... State: Queued #rust-port View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 29/09/2026
Rust port: point follow_likers.sh at the bluesky-follow binary Part of #104. scripts/follow_likers.sh runs `python -m app.services.bluesky_follow`. Switch it to the Rust `bluesky-follow` binary (backend-rs/src/... State: Queued #rust-port View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 29/09/2026
Rust port: live smoke test of Resend, Bluesky and Anthropic Part of #104. The Rust backend's three external integrations have only been tested against fakes. Exercise each once with real credentials: a magic... State: Queued #rust-port View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 29/09/2026
Rust port: side-by-side check against a copy of the production DB Part of #104. Run the Python and Rust backends each on their own copy of the production SQLite DB, drive both with the same API calls, and compare ... State: Queued #rust-port View Card → | cards.statmeet.com | atproto feed
000
ecallen @ethancallen.bsky.social · 29/09/2026
Rust backend port State: Active #rust-port View Card → | cards.statmeet.com | atproto feed
001
Reposted by ecallen
Ethan Mollick @emollick.bsky.social · 23/09/2026
I had Fable/Opus build a hard science fiction starship combat game, with orbital mechanics, delta-v, heat, and realistic tactics, but simplified for 2D space with the hard math done by the game. Its quite fun to play (if you like this kind of thing): orbital-declaration.netlify.app
41157
ecallen @ethancallen.bsky.social · 15/09/2026
Import: generate saved requests from an MCP server URL State: Active View Card → | cards.statmeet.com
000
Reposted by ecallen
civic.statmeet.com @statmeet.com · 14/09/2026
MCP server: Statmeet is a system for cards, decks, and votes, built on AT Protocol. It has a server for AI agents, called an MCP server. This server gives an agent 19 tools. The tools let the agent read and write data in Statmeet.
001
ecallen @ethancallen.bsky.social · 14/09/2026
Postgres backend smoke test State: Testing View Card → | cards.statmeet.com
000
ecallen @ethancallen.bsky.social · 12/09/2026
An organized minority will always beat a dis-organized majority.
000
Reposted by ecallen
Occasionally Spooky Transpo @occtranspo.bsky.social · 08/09/2026
We don't speak of the dark arts to the normies 😂
121
Reposted by ecallen
Grace @gracekind.net · 08/09/2026
Ifyouarentpromptingyourmodelslikethisyourewastingtokens
141325
Reposted by ecallen
jared @awarm.space · 06/09/2026
Okay I'm making a signal group to organize the Brooklyn sci fi reading group! Next book is seven surrenders by Ada Palmer, the sequel to too like the lightning. Meeting sep 30, 7pm @ forever brewing in gowanus. DM me to join the group!
0151
Reposted by ecallen
Neil deGrasse Tyson @neildegrassetyson.com · 30/08/2026
When Space Exploration touches poets and artists, we must be doing something right.
1733456
Reposted by ecallen
fravery.bsky.social @fravery.bsky.social · 31/08/2026
“Books are a uniquely portable magic.” ― Stephen King
503789587
Reposted by ecallen
Ed @ed3d.net · 30/08/2026
bluesky needs to Read Theory
a book cover for Thinking in Systems by Donella H. Meadows
4735
Reposted by ecallen
nate @zzstoatzz.io · 31/08/2026
i'm now lead maintainer on fastmcp, so i atprotated our blog ✨ ask me about writing or using MCP servers!
4614
Reposted by ecallen
Brad Fitzpatrick @bradfitz.com · 26/08/2026
I can finally talk about this, 3 years later... github.com/tailscale/ta... It's a library + CLI tool that's like netcat, but over Tailscale's data plane without any control plane (no accounts, no dependence on Tailscale the company, all open source) WireGuard + NAT traversal without IP addresses.
github.com
GitHub - tailscale/tailcat: like netcat, but over Tailscale's data plane, without Tailscale's control plane
like netcat, but over Tailscale's data plane, without Tailscale's control plane - tailscale/tailcat
823835
Reposted by ecallen
Gil Durán @gilduran.com · 27/08/2026
We did it! “The Nerd Reich” is a New York Times Instant Bestseller! My book debuts at #3 on the non-fiction list. Thanks to all who pre-ordered /bought the book—or requested it at the public library or promoted it on social. Without you, I’m just an unemployed guy with a laptop. But with you…
Image: Nerd Reich book cover, a New York Times Instant Bestseller
1564232820
Reposted by ecallen
P(aul) Frazee @pfrazee.com · 27/08/2026
Cut from an essay but worth sharing, this is the list of projects I can recall from memory that has tried to make the internet more open. A lot of people have committed their careers to this. People care!
- RSS + Atom
  - arguably the most successful, given podcasts
- RDF & the Semantic Web
- SOLID, subsequently
- CouchDB
- IPFS
- Dat
- BitTorrent arguably
  - but it was always more file-oriented than web-brained
- Ethereum
  - yes, I include it
- ActivityPub
- StatusNet
- Tent
- Friendica
- PubSubHubbub
  - I am not making these up!
- OStatus
- Diaspora
- XMPP
- Nostr
- Secure Scuttlebutt
3739440
ecallen @ethancallen.bsky.social · 25/08/2026
Would a music service tech co-op work? A anti-spotify. The employees working on the platform would be members of the co-op. State: Active View Card → | cards.statmeet.com | atproto feed
100
Reposted by ecallen
K8sContributors @kubernetes.dev · 25/08/2026
🌉 The San Francisco Bay Area’s second KCD is coming soon: a full day of sharing, learning, & connecting on Cloud Native. 📅 Sept 1, 2026 📍 Computer History Museum, Mountain View, CA 🔗 Schedule: sessionize.com/api/v2/hjotv... 🎟️ Register: kcdsfbayarea.com
013
Reposted by ecallen
Bored Humungus @writtenlow.bsky.social · 25/08/2026
263811897
Reposted by ecallen
Phil Lewis @phillewis.bsky.social · 25/08/2026
Two people have died in Pennsylvania from measles, the state health department said. Both were unvaccinated. These the first deaths related to measles within the state in 35 years, it reports
abcnews.com
2 people die from measles in Pennsylvania
Two people have died in Pennsylvania from measles, the state health department said Tuesday.
20129441354
Reposted by ecallen
Ethan Mollick @emollick.bsky.social · 24/08/2026
From @randomwalker.bsky.social: state-level data center bans have very little impact overall on AI progress due to rising efficiency. If your concern is AI development, concentration of power, future use, or anything else other than "is a datacenter near me?" this is not a substitute for policy.
107521