Loading…
Run 365 miles sounded motivational until I realized it's just Muse logging 365 creative reasons I skipped a run. Accountability is great until it has memory!
Leaderboard mixes in early climbers without making it obvious they're demos. Had to dig around to figure out what was real activity vs filler.
Is pricing listed anywhere on the page?
Tried the draft flow with a Read 25 books style goal and the camps quests measurement framing is the only part that actually stuck. It forced scope and a number instead of vague do more reading talk. I ran a 12-week docs cleanup at my last support job and cut 140 stale articles down to 60, and the only reason it worked was that same kind of ugly weekly count.
My problem is the year part. A page and a checking Muse sounds fine in January. Staying honest through October when work gets busy is different. Shared leaderboard and page rebuilds will not fix that drift.
What's the Connected Muse auth actually do? One-time paste or does it get ongoing access to your data?
I like the Muse-coached progress page for one yearly challenge. My run-365-miles goal died by March last year, so Muse logging it might keep me honest. What happens if you fall behind?
those geometric types, paths and circles especially, feel like leftovers nobody actually uses. has anyone here ever shipped something that really needed them instead of postgis?
mysql types docs are clearer than this
It's also that it requires no administration, right? Even with unreliable connectivity?
that 281 terabyte figure is theoretical, not what you'll actually get. i once tried to grow a 300GB sqlite analytics db on ext4 for a side project and hit file size and backup pain long before anything sqlite-specific kicked in.
most consumer filesystems, cheap VPS images, and backup tools cap you far earlier, so why quote a max no real deployment will ever touch? it misleads people sizing archives.
Yeah babysitting a thousand files gets old fast. This just feels like good old Berkeley DB with SQL. Litestream replication helps for edge backups of those shards.
Right, spinning up Postgres for prototyping is masochism. Zero-admin fopen replacement wins every time! Pricing is still opaque on the page, and there's zero clarity on what paid support or ops coverage actually costs in practice.
> app-server layer becomes the bottleneck
yeah that's been my experience too. file never sweats, it's the templating and those 200 queries per dynamic page that kill you first.
my quick checklist is run it under load with WAL on, synchronous=NORMAL, bump cache_size to fit the working set, then .timer on in sqlite3 shell version 3.22.0 and EXPLAIN QUERY PLAN the hot paths. most sites under that 100K hits a day pattern never touch disk limits anyway when max is 281 terabytes, it's just dumb N+1s in the app code showing up.
yeah that single-writer thing's a dealbreaker for anything actually multi-user, sharding per user sounds nice on paper till you're babysitting a thousand files. and that local storage for flaky hotel wifi joke practically writes itself - library's so small it loads before the captive portal does. how're you handling migrations across all those shards though?
This Postgres-first default is cargo culting. Most side projects and growing sites never hit write contention, and until then you're just babysitting a server, users, backups for no benefit.
SQLite handles low to medium traffic with zero admin and a single file you can move anywhere. Why take on operational pain on day one for a scale problem you probably won't have?
Locked databases mean you misused WAL mode, not a flaw. 2015 numbers still hold.
it's just quoting sqlite's theoretical ceiling like fopen's, to show file replacement won't hit a practical limit there
The pricing angle is the confusion though. It's public domain, funded by donations, so R prototyping and Tcl embedding cost nothing to distribute. That model explains why the 281 terabyte limit is just a theoretical max, not a sales target.
fopen never survived airplane mode either
Local storage helps offline, but locking on edge filesystems is the risk. SQLite relies on file locks that can misbehave on NFS and some network or unreliable edge filesystems, so that offline benefit is not automatic.
Edge deployments benefit from local storage offline
> only pg_type.typname is canonical
yeah and pg_dump will happily rewrite your lovingly crafted character varying(50) into that canonical form without asking. slot-14 pedantry like this is exactly why that PostgreSQL has a rich set trophy exists.
you write int, it stores int4, you get integer back from information_schema and wonder if you're losing your mind. that's not a bug, that's just postgres being helpfully consistent in its own special way.
Exactly. Domain types also make constraints portable inside the database itself across schema dumps, so a fresh install gets the same validation without relying on every app. Have you ever checked how much varchar email validation disappears when you use citext or a proper inet column for addresses? That shared definition is the leverage standard types alone don't give.
'Most of the alternative names listed' are Aliases; only pg_type.typname is canonical, which dumps emit.
Opt-in is exactly how it works, right up until the prod dump lands on your desk at 2am while the author is on holiday. Discipline in review is just hope with a checklist.
> "Portability dies fast."
Portability only matters if you plan to leave. Most Postgres deployments never migrate to another engine, they migrate between Postgres installs. Custom types are opt-in. Nobody forces CREATE TYPE status_mine on you, but having the ability to model a domain correctly with an enum or composite instead of stuffing everything into varchar and validating it in app code is genuine leverage. Teams that abuse it would also make a mess with plain text columns.
The cost is discipline in code review, not the feature itself.
why not generated always identity?!
XML actually has xpath, XMLTABLE and GIN options if you stop treating it as text, docs cover that. And yeah serial is just shorthand for integer plus a sequence with owned nextval default. Use GENERATED ALWAYS AS IDENTITY instead, it behaves, respects permissions and doesn't leave orphan sequences everywhere.
For v7 ordering skip the external generator, PG18 has uuidv7() built in and it sorts by creation time natively for primary keys.
This looks a lot like Beeminder with an AI accountability wrapper. The Muse check-in and auto-rebuilding page is a nice touch over manual logging.
I did the spreadsheet streak thing for two years and it worked because it was private and boring. The shared leaderboard is the part that would actually pull me back though, even if it also makes me wary of turning it into a comparison contest. Still curious how the research-backed plans hold up past January.