Mia 🏳️‍⚧️
mia.pds.parakeet.at
Mia 🏳️‍⚧️
@mia.pds.parakeet.at
160 followers 70 following 1.3K posts
Hi, I'm Mia! Trans (she/her) • programmer (Rust, ATProto @parakeet.at, sometimes more) • photographer • maths/stats nerd • resident of Normal Island. PFP: https://picrew.me/share?cd=QZKgROU6cC
Posts Media Videos Starter Packs
Pinned
I do sincerely enjoy that this account is an unapologetically chaotic mix of serious (and non serious) programming, trans literature, and general other transposting.

Embodying poster’s roulette here
it’d be good to get the car bug fixed first but I need some test data more than I need *all* test data. would like better metrics first tho*

*I’m hoping jacquard and its zero copy deserialisation might improve consumer perf but want to test that properly
Reposted by Mia 🏳️‍⚧️
"Oxford commas are a sign you write with ai" I will find such a unique way to rip out your spine that they'll make a movie about it
there's a lot of data that can and should be compressed (and I think you could pull strong ratios out) but it's working out how to do that and not kill the read performance.

It'll be interesting to see if bluesky's kvdb ends up having any large scale compresion on it too
short: no, yes very, no.
long: postgres only compresses some data (in my case I think just the raw records for posts), in an ideal world, there would be a way of compressing maybe by partition or something - I have started on a custom DB impl to try do that but idk it'll work.
at some point I need to do a full index onto my desktop machine to be able to test against. That should be fun.
then:
- looking at Jacquard for useful things like: did/handle resolution and record types
- maybe timelines?
quick update time:
- getPostThreadV2 now works!
- post, postgate, threadgate improvements are in, including threadgates that actually work

Coming up:
- currently tracking down an annoying car repo issue that (may) be my naive code
- maybe profiling if I can get Grafana back up?
OoO for a week, but here's a progress update:
- viewer states merged
- new profile fields done
- pinned posts done
- kicked off some improvements on posts and threading: getAuthorFeed doesn't quite work the same as bsky currently, and I could do with tweaks before getPostThreadV2 and notifs...
once I get closer to the ‘small’ big-network instance I’ll use it more, probably.

since I’ve kept todos here previously:
- currently doing viewer states (am I blocking/muting/following/liking etc)
- next: getPostThreadV2: return of the upside down threads
- search?
- notifs?
- timelines?
it’s also not recording application closed events properly because HOT TO GO was the last song I listened to before logging off the other night and it says it never finished or was paused - just started.
trying to get MBIDs for everything is going to be a very interesting task
the question is also when do you date an entry. I quite often end up with songs paused for hours at a time, so do I date them at 50% like lastfm or at the end? all fun questions.
I’ve been keeping it in duckdb so far and I think I may end up building tooling around that anyways because it really needs some form of backing DB rather than loading the rawdogging the 200k+ row, 143 column file in Rust.
there’s no keys to link events for a single play together, so when I parse this, I’m going to need to sort it and then store state of songs to calculate play percentage.
if I go back far enough I end up with only the standard playback finished events which either means they’re squashing them down after a period of time (we can hope) or the old iTunes didn’t emit start events during normal shuffle play
I now have a 340MB activity file which I need to do a massive data cleansing operation on.

When I heard it stores listen history, I didn't think it'd store all play/pause history too - so you end up with this mess when it started, was paused, was unpaused, then finished.
yeah I was using it in lieu of having a proper domain, the DNS (and TLS) is being handled internally but I keep finding weird things that don't work as they should (I can't get firefox to understand them as URLs without the https:// prefix)
finally getting to the point where i'm realising I should have a proper domain for the homelab rather than a questionably specified [service].[name].home that sometimes doesn't work.
means I should also be able to have tailscale sign in with SSO too which is neat.
hate that .net costs just shy of £40 - my annual domain expenditure is _already_ £50 (parakeet.at is also £40 annoyingly). need another so I can get total £100 over with.
okay just doing it recursively because I forgot that depth has a max of 20 - thought it was 100 idk why
Reposted by Mia 🏳️‍⚧️
Prepare yourself before you read these passages.

The Labour government are monsters.
“Loving families who are struggling to keep their children alive are being hounded by social services… the NHS, and in some cases, also being hounded by the police.”

Devastating comments by @goodlawproject.org in the podcast on “Fighting Britain’s Bathroom Ban” 😢

👉 soundcloud.com/toby-buckle-...
Reposted by Mia 🏳️‍⚧️
atmosphere devs! 🧑‍🚀

just published a protocol checkin: docs.bsky.app/blog/protoco...

tl;dr
expect to see a lot of updates from us in the next few months. we're hard at work on making AT easier to build on & ensuring the network remains a resilient foundation for the future of open social
Protocol Check-in (Fall 2025) | Bluesky
We last shared a protocol roadmap back in March 2025, and wow does time fly. If we're being honest, we haven't tied a bow on as many of these threads as we would've hoped. Oh time, strength, cash, and...
docs.bsky.app
and for the record, I joked it was us-east-1 the second a colleague said an issue we were having might be due to AWS and of course I was right.
yes the why question was rhetorical and a joke, is that so difficult to grasp? should’ve been obvious by the selfhosting comment in the reply but nobody can read

need the “this post is a joke” threadgate option
I tweaked my notif settings a while back so I didn’t realise the big boat post did numbers and audibly groaned in the office when I saw it had.

don’t do numbers kids, the joke understanders will find you.

how do people deal with this on the regular?
the second step of figuring out how to move the traces from rust -> tracing backend was just as bad, in my experience
if i had a penny for every time I've seen a post from this account on my other account's timeline, i'd have two pennies, which isn't a lot, but it's weird that it's happened twice.