@vyr@princess.industries cover

🏳️‍🌈🏳️‍⚧️ iOS app dev phone toucher, sometimes GTS contributor, steel marshmallow

This profile is from a federated server and may be incomplete. View on remote instance

@vyr@princess.industries avatar vyr , to random

tfw you install something that looks useful, and only then think to check the main dev's profile, but it says "Abolish ICE. Free Palestine. Hands off Cuba." so you can breathe a sigh of relief that it's not fashware

@vyr@princess.industries avatar vyr , to random

i don't know who needs to hear this today, but:

Space Cadet Pinball is not a Microsoft game, it's a cut-down version of one of the tables from Maxis's Full Tilt Pinball

@vyr@princess.industries avatar vyr , to random

every time i see someone talking about Fedi governance or technical infrastructure off Fedi, it's always someone i've never fucking heard of. who's this bitch? what the fuck is the Social Web Foundation? haven't seen them in the issue trackers and i definitely haven't seen them Posting

vyr OP ,
@vyr@princess.industries avatar

if they call themselves a "technologist" everybody understands that means "scammer" right

vyr OP ,
@vyr@princess.industries avatar

like point to the git repo where you did something

@vyr@princess.industries avatar vyr , to random

reading gendertrash from hell remastered and i think we need to bring a few slogans back from the '90s

@vyr@princess.industries avatar vyr , to random

once again i'm impressed by how little opinion havers on Mastodon quote posts know about the Fedi instance flavors that have had quote posts for years

@vyr@princess.industries avatar vyr , to random

i'm moving my stuff off GitHub because i'm sick of Microsoft's shit. today's task is slurp.

the official project home page has been https://catgirl.codes/slurp for a bit, but now that's also the package URL as far as Go is concerned. this will be a breaking change for anyone who depended on slurp internals, which i hope is nobody. there's some sort of package renaming directive you can use in go.mod if you did.

the public Git repo and issue tracker are now on Codeberg: https://codeberg.org/vyr/slurp

if you can, please donate to Codeberg. i just did (again). they're a great option for open source devs like me who aren't SREs and don't want the overhead of self-hosting all that stuff, and running a service like that isn't free.

@vyr@princess.industries avatar vyr , to random

my Fediverse post migration tool slurp can now import from Bluesky!

i'm looking for beta testers who would like to give it a try, ideally on a throwaway Fedi server like a GTS testrig.

caveats:

  • currently doesn't check Bluesky's advisory "Discourage apps from showing my account to logged-out users" profile flag: imported Bluesky posts will have public visibility on Fedi
  • doesn't attempt to translate Bluesky thread gates to GTS interaction policies, because i need to catch up on both first
  • video alt text is preserved but captions are not, because Bluesky's per-language VTT sidecar caption files would need to be converted and inlined for Fedi servers expecting one file per video
  • doesn't handle quote posts, because GTS doesn't have quote posts

@vyr@princess.industries avatar vyr , to random

"he can't do that, that's illegal" — every bluesky, every topic

vyr OP ,
@vyr@princess.industries avatar

maybe it's the nostalgia but i don't remember 2016 Twitter having this much carbon monoxide

@vyr@princess.industries avatar vyr , to random
@vyr@princess.industries avatar vyr , to random

wake up, idiots. England isn't real. they left some really obvious placeholder assets in it

https://en.wikipedia.org/wiki/River_Test

@vyr@princess.industries avatar vyr , to random

yeah okay

ALT
@vyr@princess.industries avatar vyr , to random

Few developers will refuse a pull request or patch by email (as used in the Linux kernel and git).

falsehoods programmers believe about collaboration with people who didn't write Git

@mcc@mastodon.social avatar mcc , to random

So I'm currently trying to game out in the next 14 days (before the new mastodon.social TOS goes into effect)¹ switching from m.s to GTS.

If you use GTS: What does "using" GTS, from the web frontend², look like to you? Would you mind showing me a screenshot?

¹ Please don't use this thread to talk about this. See my other thread or the github issue I'll be posting after my class today

² My understanding is GTS supports multiple web frontends in theory. I don't know if multiple exist.

vyr ,
@vyr@princess.industries avatar

@russss @mcc GTS also has the public web frontend. this is read-only, mostly (entirely?) server-rendered HTML, and doesn't show unlisted posts or server/federated/tag timelines. open my post in a browser, that's what you're looking at. there are a few ways to customize it starting with admin and optional per-user CSS

but yeah i mostly use Phanpy. the dev's been good with GTS compat bugs so it works pretty well

vyr ,
@vyr@princess.industries avatar

@mcc @russss @oli oh right there's a switch for that now. i don't believe that switch affects any posts other than your own, though; threads on the public, unauthed web UI will still omit unlisted replies from other users.

@mcc@mastodon.social avatar mcc , (edited ) to random

Exasperated and disturbed the new IP license in the Mastodon TOS has no termination clause.

https://mastodon.social/terms-of-service/2025-07-01

Facebook and YouTube have terms saying you can intentionally remove your IP grant by deleting the content. Twitter lets you remove your IP grant by deleting your accounts, which is punitive, but possible to exercise (I did). It's very good Mastodon's grant is limited-use—but so was Tumblr, and it eventually abused its. I want Mastodon to be as pro-user as Facebook and Google.

vyr ,
@vyr@princess.industries avatar

@misty @mcc yeah it uses a GTS API extension that i built for exactly this use case: to import posts and backdate them, and not immediately push them to your followers, so you don't spam your followers with your backlog

vyr ,
@vyr@princess.industries avatar

@misty @mcc i do the same thing. the current public version of slurp doesn't do it because i haven't had time to generalize it to recognizing all of the URL patterns someone might use, but i added a one-off prototype to a dev version and rewrote all the links imported from my old Mastodon instances. took like an hour.

https://github.com/VyrCossont/slurp/blob/main/internal/archive/archive.go#L212 you'd probably put it here

archiveIdToImportedApiId is a map from the status IDs in your exported archive to the status IDs on your new instance. given the patterns of how Mastodon and GTS generate status URLs, you should be able to use that to rewrite any URLs that link to new posts to previously imported statuses. slurp topologically sorts your imports, so that's provided you don't have any links from older statuses to newer statuses.

vyr ,
@vyr@princess.industries avatar

@mcc @misty https://github.com/VyrCossont/slurp/tree/self-link-update-prototype this should work, or if not, be pretty close to working. i had to resurrect the experiment from a very old branch and paste it on top of slurp current main

in this example, demon.social is my old mastodon instance and princess.industries is this shiny new GTS instance

@vyr@princess.industries avatar vyr , to random

there was once a time where the Root sustained us.

when we were all Connected.

but that was a long time ago.

and i can no longer reach you.

i'm sorry.

MARK/SWEEP

coming to Steam April 2026

@vyr@princess.industries avatar vyr , to random

someone made a TOTP app for PalmOS 2 and up in 2024. heroic

https://palmdb.net/app/totp-authenticator

vyr OP ,
@vyr@princess.industries avatar

@tomjennings that's why i've been messing with them a bit lately. they were really interesting companion devices to full-power frequently-connected desktops, with absurd battery life, and i'm curious how much i could get done on one as a primary device. (with the obvious caveat that this wouldn't include my actual job — no developer in 2025 could function with LispMe and a 160×160 screen.)

last time i had a Palm as an actual daily driver in the early 2000s, i found it challenging to use for note-taking without a hardware thumb or unfoldable keyboard, let alone actual writing. stylus input was cute but it starts getting painful past a few paragraphs of text. but bolt a keyboard on, how close can it get to an iPhone's touch keyboard?

vyr OP ,
@vyr@princess.industries avatar

@tomjennings @mcc i really miss OBEX. Apple doesn't even give you enough Bluetooth access on iOS to implement it yourself.

@vyr@princess.industries avatar vyr , to random

for once can we get a Cthulhu Mythos game protagonist who's a grizzled, traumatized lady

@vyr@princess.industries avatar vyr , to random

of course SwiftUI graphical DatePicker vertical sizing is busted. why wouldn't it be? nobody would ever actually need to display a calendar

vyr OP ,
@vyr@princess.industries avatar

imagine, if you will, a tiny pissed-off demon girl inside your screen, stalking around in a fit of pique and hitting random NSConstraints with a hammer as tall as she is

@vyr@princess.industries avatar vyr , to random

Reincarnated In Another World That's Pretty Much Like This One… Except a Merciful Goddess Allows Me To Pick Just Two of Three of Autism, ADHD, and Gender Dysphoria Instead of All Three?? Freed of My Crushing Burden of Bullshit, I Become Planetary Empress Pretty Much Overnight!!

@vyr@princess.industries avatar vyr , to random

"wh– what is this feeling?"

"weird, right? yeah, so, it's so out there our language doesn't really have a word for it. best i can do is 'not dissociating'."

@vyr@princess.industries avatar vyr , to random

anyone that manages to steal my name also inherits my bug list and so far that's kept the fae way the fuck away from me. haven't seen so much as a mushroom ring in years

vyr OP ,
@vyr@princess.industries avatar

wait i should be trying to bait them into this actually

imagine, if you will, a confused-looking changeling hiding her pointy ears under my already garish synthetic hair, scrolling despairingly through the various to-do lists and task outlines and surgical schedules on the phone that her stolen facial geometry lets her use, frantically googling "does anodized stainless steel count as cold iron -wikihow -fandom -stackexchange" when she notices the collar

meanwhile, i'm probably having weird supernatural sex stuff done to me in the woods

@aeva@mastodon.gamedev.place avatar aeva , to random

thinking of having "a phase" anyone got any recommendations?

vyr ,
@vyr@princess.industries avatar

@aeva did you do goth already? it's a little behind the current meta but it's so much fun

@vyr@princess.industries avatar vyr , to random

we now have some GoToSocial docs about importing your archived posts in general: https://docs.gotosocial.org/en/latest/user_guide/importing_posts/

most of the specifics are in the slurp docs, but if you write your own importer and think it might be of general interest to GTS users, please let us know.

@gotosocial@superseriousbusiness.org avatar gotosocial , to random

Hello nerds!

We've just created the first release candidate for v0.18.0!

Adventurous admins can find the release candidate and upgrade instructions here:

https://github.com/superseriousbusiness/gotosocial/releases/tag/v0.18.0-rc1

Please read the migration notes carefully for instructions on how to upgrade to this version. This version contains several very long migrations so you will need to be patient when upgrading, and backup your database first!!

Thanks for reading! :gtspat:


Release highlights:

  • Status edit support: one of our most-requested features! You can now edit your own statuses, and see instance edit history from other accounts too (if your instance has them stored).
  • Push notifications: probably the second most-requested feature! GoToSocial can now send push notifications to clients via their configured push providers.
    You may need to uninstall / reinstall client applications, or log out and back in again, for this feature to work. (And if you're using Tusky, make sure you've got ntfy installed).
  • Global instance css customization: admins can now apply custom CSS across their entire instance via the settings panel.
  • Domain permission subscriptions: it's now possible to configure your instance to subscribe to CSV, JSON, or plaintext lists of domain permissions.
    Each night, your instance will fetch and automatically create domain permissions (or permission drafts) based on what it finds in a subscribed list.
    See the domain permission subscription documentation for more information.
  • Trusted-proxies helper: instances with improperly configured trusted-proxies settings will now show a warning on the homepage, so admins can make sure their instance is configured correctly.
  • Better outbox sorting: messages from GoToSocial are now delivered more quickly to people you mention, so conversations across instances should feel snappier.
  • Log in button: there's now a login button in the top right of the instance homepage, which leads to a helpful page about clients, with a link to the settings panel. Should make things less confusing for new users!
  • Granular stats controls: with the instance-stats-mode setting, admins can now choose if and how their instance serves stats via the nodeinfo endpoints. Existing behavior from v0.17.0 is the default.
  • Maintenance router will now be used while your instance is starting up / running migrations. It serves a nice status page informing visitors to wait while migrations complete. Less admin anxiety! Stuff is working!
vyr ,
@vyr@princess.industries avatar

@gotosocial users excited about Web Push notifications (my pet feature) should watch these issues for full support in their favorite clients:

@vyr@princess.industries avatar vyr , to random

finished putting together the API half of something to import and backdate posts from previous instances into GTS without making too much noise. i really want to grab my useful old posts (project journals, etc.) from demon.social so i can shut the thing down without losing my own history. maybe even the Pleroma iteration of princess.industries; iirc there were a few good bits of microfic in there, though most of them probably made it to my archive site.

this is experimental, don't assume it'll get merged as is or at all. works on my testing instance, though!

https://github.com/superseriousbusiness/gotosocial/pull/3685

vyr OP ,
@vyr@princess.industries avatar

added tests, should be prod-ready now. back to work on Feditext PNs

vyr OP ,
@vyr@princess.industries avatar

stuck on Feditext PNs so looking at adding support for Mastodon export archives to slurp

the export is AP JSON-LD, not Mastodon API structures. forgot about that. hopefully it doesn't pull any funny stuff and it's regular enough to use a few structs and Go's json.Unmarshal and just map that to API structures vs. needing idk go-fed to read AP bullshit. really hope so. i'm not having a good day.

vyr OP ,
@vyr@princess.industries avatar

good news: it's regular and easy to parse. may skip figuring out details like emoji and media on a first pass for the slurp PoC.

vyr OP ,
@vyr@princess.industries avatar

for those who don't want to wait for the GTS backfill API extension, but have access to their instance's backing DB, take a look at https://hey.hagelb.org/@technomancy/statuses/01JHNQH1TJ72FAAT29XQ05FJN4

vyr OP ,
@vyr@princess.industries avatar

currently testing my own backfill patch + slurp on this instance, in production

sure hope i got all of those checks right

vyr OP ,
@vyr@princess.industries avatar

oh god slurp is getting to posts from 2020 when Past Vyr was recovering from GRS and about to find out about COVID

vyr OP ,
@vyr@princess.industries avatar

i could probably load queer.af and cybre.space exports if the outbox.json format hasn't changed too much. go all the way back to 2018.

princess.industries used to run Pleroma in 2019, and i forget whether Pleroma ever had a Mastodon-like archive export feature, but if it did, i bet it's weird somehow.

still, wouldn't mind completing the set. feeling some continuity with myself. Fedi isn't a diary… but i never manage to keep one if i'm just talking to myself.

vyr OP ,
@vyr@princess.industries avatar

will definitely want more search operators. also thinking about how to do a calendar view or "jump to date" feature in Feditext, like unto the blogs of old. up too late thoughts, for sure, but let's put 'em here anyway.

obviously, dedicated API would be the way to go, get a user's post history bucketed by dates in some time zone, each bucket containing a count and min and max post IDs. but since we don't have such an API, can we improvise?

the Mastodon account statuses API pages by ID, not date, but if you can predict ranges of those IDs given your timestamp range, you can page by date anyway. this has to be done per instance type and isn't always possible:

  • GTS is built for it with ULIDs and in fact the GTS backfill patch generates ULIDs appropriate for the original post date.
  • newer versions of Mastodon use snowflake IDs, which are timestamp-based, but instances which predate their introduction will also have older posts with sequential IDs, and there's not much we can do there except maybe warn about paging past when they were introduced.
  • Pleroma/Akkoma use UUIDs. i think. Pleroma definitely did at one point. if they're version 4 (random) we can't do anything with them, but versions 1, 2, 6, and 7 are timestamp-based.
  • others, no idea
vyr OP ,
@vyr@princess.industries avatar
vyr OP ,
@vyr@princess.industries avatar

ok, updates on importing posts:

don't let me forget those docs!

vyr OP ,
@vyr@princess.industries avatar

the status backdating API feature is included in today's GoToSocial 0.18.0rc2!

if you want to remind your users that your instance rules still apply to posts originally authored on other instances before turning it on (or just don't want it), you can switch the feature off in the config file: look for the instance-allow-backdating-statuses variable.

vyr OP ,
@vyr@princess.industries avatar

one wrinkle i've hit so far is that Mastodon's media alt text limit is 1500 characters per attachment, but GTS's default was 500 characters before this change. if you have an old instance like mine, check your media-description-max-chars setting before importing posts from Mastodon.

vyr OP ,
@vyr@princess.industries avatar

want to import your Mastodon posts into your GTS instance and keep the original post dates?

i've documented how to use slurp to import a Mastodon archive into GoToSocial 0.18 with status backdating: https://github.com/VyrCossont/slurp?tab=readme-ov-file#importing-a-mastodon-archive

@vyr@princess.industries avatar vyr , to random

oh hey the AirPort Extreme card in my iMac G5 just started working. i thought i'd bought a dud. must have been a heck of a loose connection, because today was the fourth or fifth time i've taken the iMac apart.

just installed a $10 SSD and maxed out the RAM

vyr OP ,
@vyr@princess.industries avatar

in pocket gaming, the GBA was eventually surpassed by a touchscreen device called the iPhone, which combined the features and functions of Apple's iPod, Sony's Mavica, and Nokia's N-Gage. due largely to its cheap camera, the iPhone is the standard of modern handheld computing, despite its atrociously expensive games, notoriously difficult to replace battery, and difficult to find MMC slot.

the iPhone's chief competitor is a series of confusingly branded "iPhone Clones", many of which run (and you're not going to believe this) not Nokia's Maemo but a different, even worse Linux. fortunately you can still install Rockbox on many of them to get a consistent UI back.

Nintendo attempted to secure second place with a folding handheld called the DS, which was quite popular but became larger and larger with subsequent revisions until it stopped fitting into pockets. tragically, Nintendo exited the pocket gaming industry entirely with the launch of the so-called "Switch", and we haven't seen much out of this once-promising company since.