aleteoryx: Dorothy Haze, from VA-11 Hall-A, over the rune from Signalis. (dorothy haze)

not legal advice u cant sue me if u dont put age protections in your os and then get got by the feds

relevant material

Read more... )

aleteoryx: A female player avatar sits in a void, in futuristic clothing, conjuring a sphere of trans-colored magic energy. (rec room)

rec room's shutting down. on june 1st.

this one's real self-indulgent

Read more... )

aleteoryx: Dorothy Haze, from VA-11 Hall-A, over the rune from Signalis. (dorothy haze)

once, when assigning an essay, one of my professors said something that's stuck with me. he was eccentric, and near the end of a rant about student work, he went, "You should consider each word you write. If you haven't thought about it, why do you expect me to?"

that's right, we're doing an AI post )

aleteoryx: A closeup shot of a man with short brown hair and glasses, giving an incredulous look to the camera. (unix twink closeup)

I hate smartphones!!!!!!!!! I am a big fan of small and silly electronics but the modern smartphone is a devilspawn consumption machine. it is small and serious and seriously unsilly and seriously EVIL!!!!!!!!!!!!!

for a while I've been thinking about what I'd want out of a smartphone replacement device. a seriously silly tiny portable computer of some kind, with support for all manner of communication peripherals. I'm not a hardware person in the slightest so some of this may be talking out of my ass lol. and obviously this whole list is sort of excessive but that's why it's a wish list and not a send it to the build team, David! list


I'm envisioning something modular-ish where there's a central computer unit that can talk to a bunch of peripherals over a bus of some kind.

as far as the main body goes, here's what I'd like:

  • physical keyboard, full qwerty. but like a nice one that feels good to type on. digital diary type shit
  • multi-line text display. 4 rows minimum? but 8 would be nice. ideally this would be an LCD with togglable backlight, but an e-paper screen with some kind of lamp works too. whatever uses the least power and can be had cheaply
  • like I said, pluggable architecture. I want it to be as easy as possible to add peripherals to this thing, or replace them. doing this in a way which avoids a lot of custom fabrication will be difficult.
  • very low active power draw. ideally the device would be effectively turned off 99% of the time, but 100+ hours of user interaction per-charge would be great. battery life will obviously be hampered by a cell module or some such, and this does not take that into account
  • operating system in some kind of minimal high-level environment, like a forth or j2me. this is primarily to facilitate swapping the CPU or other hardware details at any time. a minimal machine code kernel should take care of details like bootstrapping the system, and provide primitives for hardware interaction. the high-level code should not rely on implementation details of the CPU or kernel.
    • following from this, a complete programming environment. once the device is to a point of bare usability, I want to be able to do all OS development on the system itself.
  • around 1mb of RAM. I can't imagine honestly needing more for the purposes of this device
  • at least 16mb of primary flash storage. this is for user code. the kernel/interpreter will live on an eeprom or some such and boot from this.
  • at least 1gb of secondary flash storage. this is primarily for scrollback, and would ideally be user-swappable (CF or SD card?)
  • a reasonable amount of weatherproofing
  • decent enough audio hardware, and a fast enough bus, to be able to handle voip and cell calls

and then, the modules themselves!

  • the obvious inclusions are bluetooth, wifi, and cell. the reasoning for the second 2 is manifest, the first is primarily for connecting to an earpiece of some kind. after all, this device /will/ do calls.
  • lora, specifically for meshtastic purposes. having my own gateway that relays messages from various text protocols over it seems like a good idea, with cell internet and wifi as fallbacks. this is the ideal communication system due to the ultra-low power draw.
  • various forms of serial, though this might be better accomplished in software with GPIOs. having the device able to operate as a dumb terminal or UART probe seems extremely handy.
  • irda. because i mean. hhghhghgrugnoerungnngnnnnghhhhhh

so yeah that's it! be interested to hear any additions or comments. I'm probably at least a year out from even beginning to make this thing, but it's nice to write down ideas.

I've been ~aleteoryx, toodles

aleteoryx: The sleeper, from Citizen Sleeper, staring off. Behind them, stars. (the sleeper in space)

what i mean:

toolchain bloat is everywhere in so-called modern development. while it's fun to laugh about node_modules being huge or rust taking a while to compile, isn't it a problem? not an inconvenience, a problem.

the personal computer was supposed to be the great machine that would empower humanity—and it has, just not in the way we thought. the dream of the personal computer was that anyone could have access to the most powerful force multiplication technology ever devised. and while massive corporations reap the harvest of their digital empowerment, the tools for true individual empowerment are locked away, hidden behind the incantations of a special few.

microsoft windows was, originally, designed to let you use your work's computer, not your own computer. the dominant way to access computation wasn't built for its user to control it. if what one owns boots up to BASIC, they might pick up a little bit of programming. they might even master it. if what they own boots to some friendly GUI, if the keys to programming are made obscure, hidden behind a second purchase that a layperson would never think to make, there's a good chance they never will.

of course, in the modern era, we've seen the endpoint of this. far from an instrument to universal empowerment, the smartphone is a computer bound and gagged. it is a machine for consumption and (ostensibly) communication, nigh-impossible to use for anything not dictated by someone else, by an "app". it is a machine opposed, fundamentally, to individual empowerment. it is a thing which its buyers cannot own.

of course, it is better on the more traditional computer. the internet overflows with guides for the installation of a linux distribution, and countless nerds would be happy to help someone who knows not the mystic rites of the computer, to learn them and bask in newfound power. though one still needs to seek out digital empowerment, the resources one finds are plentiful and free.

but what resources? what might a newbie flock to? there are many lightweight ways to build software. but The Future is being built in rust. The Future is being built in typescript. The Future is being built on expensive, powerful computers, with hefty toolchains only tamed by high core counts and swathes of ram. The Future is being built by people whose work supplies them with machines that make the bloat of their code invisible to them.

in $current_year a smartphone, a decent one, will run you at least maybe $500. a laptop, a nice one, will run you at least maybe $1000. it is impossible, in this world to live without a phone. it is possible to live without a computer. if the choice is between a cheap phone and nice laptop, or nice phone and cheap laptop—or no laptop at all—what choice do you think someone strapped for cash would make?

what might it feel like, for the novice, to want to learn the tools with which The Future is made, and find that they run painfully slow. what might it feel like, to realize that the tools of The Future aren't for you?

I do not know. I am not a novice, nor am I particularly deprived of speedy computing hardware. but I have spent the last few months on a limited machine, a modified chromebook with a celeron-class chip and 4GB of RAM, and in that time I have come to resent rust.

I resent the arrogance with which it forces its bloated toolchain on me, and I resent the code which forces me to run it. I resent the obscenely long compiles for even simple things. I have had no real issues with writing code in C, in python, in dlang, in perl, in tcl, even in java. but I feel, overwhelmingly, like the language in which The Future will be built, and in which the past will be rewritten, is not for me. not like this, anyway.

the classism of it all is striking. but I suppose this is typical of the march of "progress".

eating

Sep. 25th, 2025 06:38 pm
aleteoryx: A female player avatar sits in a void, in futuristic clothing, conjuring a sphere of trans-colored magic energy. (Default)
in sustaining myself
in my nourishment
in staying alive
i hurt myself.

i find eating to be
a buckshot necessity.
food has so many parts
there are so many ways
they hurt me.

my joints seize
my skin crawls
my flesh churns
i break out
i slow
i tense
i calcify
i lie on my mattress
i am unable to think
cells crying out
within me.

it is a
conspiracy
to pacify
i think.
deliberate
contrivance
to slow me
and those
that are like me.

or perhaps
that idea
is of a
food-borne psychosis.
perhaps
deprived of
rationality
i will attack the ones i claim to love.

and the fear
the terror
the imagined
the unimagined
malice

from people i hold dear
will be all
that i remember
when my mind returns.

i tense while
walking from a
pain from my
chest
torso
stomach
flesh.

it passes in a
moment, but i
know what it means.

i have hurt myself again.

PyCon 2025

Jun. 18th, 2025 06:56 pm
aleteoryx: Konata inspecting a list in front of Tsukasa, in the middle of a crowd (comiket)

so, somewhat on impulse, I went to PyCon this year! this is the post on that. it took a while because I wanted to give some insight into racist development policies in Pittsburgh, before ultimately concluding that, while I can talk about these things casually, I cannot write intelligently on them.

Read more... )

aleteoryx: A female player avatar sits in a void, in futuristic clothing, conjuring a sphere of trans-colored magic energy. (Default)

25 months ago, the 28th of March, 2023, I made my account, and my first post here. in that time, I've changed quite a bit in many ways and stayed the same in other ways.

Dreamwidth has been and continues to be a good home for my posting. it does markdown and works under mothra(1), what more could you need? it's also played an important role in preserving certain civil liberties in the US.

I really don't have much to say here, other than "woa... nunber....", but it's been a good time posting here. I'll be back for one of these in 25 months or maybe more or maybe less. 32 is a nice round number.

anyways, happy blogging,
~aleteoryx

P.S.: no, I definitely didn't do it today because I forgot to last month, shut up!

aleteoryx: A female player avatar sits in a void, in futuristic clothing, conjuring a sphere of trans-colored magic energy. (Default)

I went to VCF East this weekend! it was a good time, I saw a lot of cool stuff, and I met some youtube people. stay tuned for a more in-depth blog post maybe assuming I have the time and energy.

anyways, while taking a rideshare (I know, I know) back to my hotel, I had a conversation with the driver. it was a white tesla. we were discussing politics in a very shallow and unopinionated way, and at a certain point I had roughly the following exchange:

Driver: You into cryptocurrency?

Me: I think it's pretty dumb. Waste of power.

Driver (removing his baseball cap and showing the bitcoin logo on it to me): Yeah, well, y'know, I'm pretty into it.

Me: I mean, it's not a good use of resources. Satoshi's paper is interesting, but-

Driver (interrupting): You've read the whitepaper?

Me: Yeah. It's an interesting idea, arguably elegant, but I don't think it's wise to actually use it like this.

Driver: Y'know, all FIAT currencies eventually go to zero. Crypto's all that's-

Me (interrupting): Frankly I don't think any form of large scale economy is a good idea.

Driver (after a pause): ...you might be right.

that last point has been playing back in my head ever since. I'm not sure what to make of this man, who I would assume to be a libertarian, agreeing with my distaste for the concept of an economy.

aleteoryx: Dorothy Haze, from VA-11 Hall-A, over the rune from Signalis. (dorothy haze)

this one's gonna be a bit bleak; contrary to what you may guess from the title, it is not about Current Events in US Politics. I have 3 years to entirely reorganize my life, for entirely different reasons.

see also: solderpunk's The Standard Salvaged Computing Platform.


Read more... )

aleteoryx: The sleeper, from Citizen Sleeper, staring off. Behind them, stars. (the sleeper in space)

you can consider this something like a review, too.

Citizen Sleeper is one of my favorite games of all time. you're a robot! made for Capitalism Reasons! you're on a space station! you're on the run from Capitalism! oh shit! it's a simple and manifestly appealing (to me) pitch. the game itself is an RPG about building a support network. you need to meet the right people, build up relationships, make inroads to communities. it's a game about building a life for yourself with the deck stacked against you. not rags-to-riches, just rags-to-clothes.

it was a deeply moving and deeply touching game when I played it, and it did that with a rather simple set of systems. every day you have a set of dice rolls, 1-6. the number of dice you get to work with varies based on a plot-related health mechanic. most actions in the game that aren't "buy some food" require a dice. you can pick which of your rolls you use, but lower numbers lead to higher chances of failure, and for more dangerous tasks failure can be catastrophic. a day with a bad set of rolls can ruin the trajectory of your quests ("drives"). as you complete quests, you unlock skill points that can be used to give you an advantage, but low rolls still come with risks.

each day passed also advances certain clocks, and that's how the game handles story progression. "John Capitalism is going to murder you in 10 days if you don't find a way to hide out."

that's really it. there are some other things, like a way to convert poor rolls into money ("chits"), but almost everything in the game stems from daily chance and impending consequences.


like I mentioned above, when I played Citizen Sleeper in early 2023, it was deeply affecting (points the reader in the direction of this article's icon), and so, I was extremely excited by the prospect of a sequel. when Citizen Sleeper 2: Starward Vector released a month ago, I got it almost immediately (newsletter ftw!). I am not all the way through it yet, and so I don't have a lot to say in terms of the plot.

what I would like to make note of is how well Citizen Sleeper 2 builds on its predecessor in terms of systems. it feels like the central design goal was to increase player agency. the health system from the first game, which decreases linearly over time, is replaced with a new system, where failing risky actions can lead to temporary and permanent forms of injury. control of your health is moved from the plot itself to the dynamic between the plot and the player. there is an emergent sense of sacrifice when chance puts you in a bind.

clocks are mostly the same, but a large portion of plot now revolves around one you can rewind through major action. again, this is control moved into the player's hands, but game gives itself a way to force your action.

of course, there is also the major added system, and the game's namesake: the "starward vector" in the title is the player themself. there are now multiple maps in which to explore and act, and the player is given a ship with which to traverse them. this is well-implemented, and allows the game to work with a far enlarged scope from the original, but it also ties into the most critical portion of the game, character relationships. characters you encounter can become shipmates, and their skills assets as you embark on missions off-station. missions themselves are themselves potential mechanisms of plot progression, and the characters you take with you can affect this. it's really impressive how seamless all of this is.

it really feels like CS2 was built with the primary intention of putting more things in the player's direct control. the first game was a simulator of being a person with working executive function in a bad situation, and it thrived on forcing you to make hard choices. the sequel fits that exact synopsis, it's just more. everything kept from the first game is refined, everything added marries wonderfully with what's already there.


going into CS2 having played CS1, it's a strange feeling. the sequel is so derived from the original that it almost feels like an expansion or DLC. this is not the case, but it's not a bad thing. in a way, the first game was like a tutorial for a lot of the second game: I don't need to think about engaging with all the systems in CS2, I already know intimately how to reason about half of them.

anyways, I would absolutely suggest you go pick up both games and play them in order. they're excellent and can be had for $40 on steam.

that's all! I've been aleteoryx, toodles.

aleteoryx: Dorothy Haze, from VA-11 Hall-A, over the rune from Signalis. (dorothy haze)

Originally posted on the fediverse. Doing some PESOD.

so i was looking through the codebase of a rather widely-used C++ FOSS project. one that's known for its simplicity and minimalism, in fact!

of the things:

  • the button to change the sort mode gets handled with 2 layers of string-based indirection, the first to map events from the UI, the second because the application state object only communicates through a "setProperty" method. there's no hashmap or anything internally, the method directly accesses properties. but i guess string constants are more "dynamic" than object.setSortMode
    • i should note that all of these are user-created objects. they decided to do this.
    • the second layer of indirection is through a #define constant, btw. because we want our indirection system to be kinda checked by the compiler.
    • the ui code directly contains the constants to set the sort order. i don't get why the extra layer of indirection is necessary at all.
  • every single class that isn't part of an implementation of something has the class/class::Implementation pattern. every single one. including classes with no virtual methods, so what's the point. the class that stores the sort mode is patterned like you would do DI on it, but it's so tightly coupled to the UI that that would be impossible. what's the point.
    • this includes other silly things like the main window class!
  • there's this somewhat silly pattern where you have a class Foo with property Foo foo_ and method initMyFoo(Foo& foo). i don't get why the method doesn't just operate on the class itself, it would be basically impossible for it to be used on anything other than this->foo_.

anyways, im not gonna name the actual software project, because i do think it's good and i dont want to publicly shit on FOSS devs unprompted. i just hate how aggressive the misapplication of patterns that could be useful is.

like, string indirection is handy! DI is handy! there are plenty of cases where "initialize this thing based on the state of this other thing" is necessary! but the overuse of these patterns where it's not necessary and likely never will be leads to an ostensibly simple program being utterly labyrinthine to get a foothold in. this is a simple program, that basically just runs a library and renders a list from it, whose code is written like it will ever do anything more than render that library's data. it's designed for "loose coupling" of things that are just never going to not be directly coupled.

it's not an underperformant application, it's not a memoryhog, it's just written to preempt a fundamental change in design and purpose that has yet to come in the last 2 decades of the software's existence. genuinely, what is the point?

aleteoryx: Kasane Teto, standing in front of a movie theater. (teto at the movies)

quick post, but I wanted to suggest everyone see this movie! it is not showing much where I am, and I don't think it's going to make back a lot of money, which is a shame, because it's great.

The Return is a pretty straight adaptation of the ending of Homer's Odyssey. for those unfamiliar, The Odyssey follows Odysseus, as he and his men make their way back from the Trojan War, to Ithaca. various things happen that make his journey back take significantly longer than it should have, and he returns to find his home overrun with several suitors, trying to court his wife and become the new king in his absence. at the end of the story, he slaughters them all, and reclaims his throne.

now, one may hear this, and come to the conclusion that the movie amounts to 2 straight hours of glorifying violence and war. indeed, a lesser production may have made the choice to reduce Homer to bloodshed. The Return is, instead, a wonderfully restrained production.

spoilers, in case you plan to see it. even if you have read the odyssey, it is worth going in blind. )

Odysseus is played by Ralph Fiennes, who readers may know as Voldemort, the chef in The Menu, and a number of other roles. he is excellent. Penelope is played by Juliette Binoche. the suitors are cast perfectly, by which I mean 2 of the 3 suitors with the most screentime are played by actors clearly picked for their (and this is mean) hatable faces. it's some McPoyle shit, and it was a great choice.

complaints, don't read this till after you see the movie )

it was a really excellent time, seeing it, and you should too! it is certainly not a perfect film, but it is a gorgeous and mostly faithful adaptation of Homer. the ending shot seems to be indicating a sequel, and I would love to see one from this same team.

anyways, till next time,
~aleteoryx

aleteoryx: Dorothy Haze, from VA-11 Hall-A, over the rune from Signalis. (dorothy haze)

sigh.

a couple days ago I spilled coffee on my main laptop, my primary machine for everything. ...and in trying to air it out my clumsy ass gouged a resistor on the mainboard. so it's in the shop. I've had good experiences with uBreakIFix in the past, and I'm hoping they can repair the mainboard without the $700+ replacement cost I'd be looking at for a new part.

the result of this is that I have gone from strictly using an archlinux install to using a fresh windows 10 install, as I've decided to use this event as an excuse to fix up my desktop, which will be running windows until ALVR stops bugging out on me or such a time as I can afford a non-standalone VR headset. this is my first time daily-driving windows in about a year and a half, and it's weird to be back.

a short list of what's stuck on that laptop, at the moment

  • all of my SSH keys. this is fine for most, on account of them being to VPSes with VNC support, but I cannot access the amehut box, unless I feel like walking someone through the ssh key creation process over the phone, which does not sound fun at all.
  • all of my obsidian notes
  • quite a few saved games that don't have cloud sync (my GTNH save particularly stings)
  • quite a few unfinished pixel art projects
  • some projects that were never checked into source control (I recently started syncing one of the most critical to amehut, luckily)

the backup plans that worked

  • vivaldi sync is the reason I am able to write this with a proper keyboard. annoyingly, the mobile app refused repeatedly to export my backup key. luckily, I was able to export from my other (very slow) windows machine. when my laptop is up again, I will be reinitializing sync and keeping careful note of the password.
  • many of my non-sensitive files are already synchronized to my phone, so that's handy.
  • I had a spare computer computer with me. this whole ordeal would have been significantly worse were it not for that.

so, what have we learned?

well, I do in fact regret not having proper backups. there's no good reason the data on my laptop won't be mostly recoverable, but it's going to suck to be without my development environment and servers for a bit. nothing absolutely 100% critical is missing, but it's going to be profoundly inconvenient for a while.

I also clearly need to have a solution for accessing SSH without my primary machine. I may end up putting together some sort of backup keystore that can be securely accessed in times like this.

next steps?

no device of mine other than my laptop currently meets my standards for encryption of sensitive files. I am going to try deploying a solution like veracrypt to my windows systems, and begin mirroring critical files from my laptop to there. I will also be synchronizing my obsidian vault somewhere. time permitting, I will organize and backup my dotfiles somewhere.

well, how's windows going?

good, actually. instead of reaching for choco as a package manager, like usual, I decided to finally try winget. this was the right choice. no longer am I confronted with 20 confirmation prompts and licensing upsells, instead the system Just Works. I have yet to try installing something through winget and have it fail. as in, everything I have tried blindly winget installing has Just Worked. this goes for everything from vencord to 7zip. it's wonderful.

I am also realizing that windows 10 was, in fact, created by UX designers that knew what they were doing. I am appreciating the various small UX optimizations that came about in its 8-year lifespan quite a lot.

I am by no means a windows fan, but I am not some linux evangelist either. it's always fun setting up a new machine.

anyways, I've got to go read the aeneid.

~aleteoryx,
signing off

aleteoryx: A female player avatar sits in a void, in futuristic clothing, conjuring a sphere of trans-colored magic energy. (the sleeper)

I've killed my redmine. Not for any fault of its own, and I feel bad for the little Rocky Linux install that could, but I don't have a reason to keep it up now. Everything worth saving has made its way to my archive.

There are a few reasons for my doing this.

Git integration won't work!

This is more an incompatibility between soft-serve and Redmine, but a problem nontheless. Redmine just can't read the Git directories stored by soft-serve. I don't know if it's a perms error or what, but part of my reason for picking it in the first place was good Git integration, it's not much different to any other ticket system.

Questionable things on the official instance.

One of the main devs, on their official install, has the username of something something <the N word> something something. Maybe they're black, but I strongly doubt it. If memory serves there was no such indication.

Concerning.

Clunky

The main point in me having it was as an issue tracker. There are so many buttons on the page for a single issue, and I honestly cannot tell which does which. The "reply" and "edit" buttons open an identical interface. etc. It feels like Discourse, where the app thinks it knows more than you, and decides to hide shit from you.

Those are really the main ones.

...and that I was renting an extra VPS to handle the Rails install needed for it. Oh, yeah, it's a fucking Rails app. Because ofc. Also my themes broke after an update? So part of the fun of it being really really cute was just taken from me ig. Upsetting. (Going to have to make amehut even cuter to recover!!!)

I think Redmine is great for people other than me. The lighttpd folks seem to get on fine with it, it just doesn't work for my flow. Thankfully, it has been wholly obsoleted by amehut, and I took the time to copy over the old issues to the new scrobble.observer issue tracker. The VPS is being shut down, and the domain links to this article. All is well in the world.

Toodles!

aleteoryx: A female player avatar sits in a void, in futuristic clothing, conjuring a sphere of trans-colored magic energy. (the sleeper)

Welp, I'm hosting another thing, but this thing will probably end up being very much so used in the future.

Introducing...

ameHUT(ah may hut), a sr.ht install!

I have a lot of respect for Drew DeVault, and the general philosophy with which he operates. Sourcehut is exemplary of this. It is ascetic software, shipping barely anything to the browser and relying only on Postgres and Redi{s,ct} in the backend. It eschews fancy modern editors for mailing lists and git send-email. Most important for me, it is software built to stay running, and software built to work first and show off later. It is software built to be lightweight and yet capable of scaling with load trivially.

Switching from cgit/soft-serve to this as my main forge feels better, in a way that other, more cluttered programs do not.

SourceHut is also project-focused, not repo-focused. What this means in practice is that docs can be associated with code, without sharing a file tree; announcement feeds can be associated with a number of repos, instead of just one; etc. I find this significantly nicer in terms of organization, and it's a shame GitHub et al. don't have much similar.

As always...

Deployment was a thing!

I spent a week or two setting up the services on a little Alpine box at my house. It proxies via Wireguard to the VPS that runs my core internet services, and I have an Apache macro to manage proxying. Currently, this macro does not account for API proxying, and I will be fixing this... eventually! Currently there are 3 users, myself included, only 1 of which, yours truly, has actually used any of the services, which is to say there is no strong demand for a working API at present time. Wouldn't be hard to get working though lol

SourceHut is built to be easy to shard. Each subdomain is composed of 2+ services, most minimally an API server and webserver. As long as all services can see the same Postgres and Redi{s,ct} databases, it sorta just works. At present moment, I do not have the need to shard, so, naturally, I set the server up on a Core 2 Duo with 2GB of RAM. Does this work? Yes, actually! With minimal stability issues, too! Sourcehut is almost exclusively written in Golang and Python, which accounts for its backend lightweightness. There will probably be an eventual hardware upgrade, but yk, it works for now.

The setup process for each service is roughly the same. Install the package with APK, copy in and tweak the example config from Git, tell the webserver to listen over Wireguard, start everything, test it, and add them to the default runlevel. There were no major issues during it.

So, what works?

Currently the following subdomains work, and run the same-named services as sr.ht:

  • amehut.dev
  • git.amehut.dev
  • hg.amehut.dev
  • meta.amehut.dev
  • lists.amehut.dev
  • todo.amehut.dev

Planned are:

  • amehut.page (srht.site)
  • paste.amehut.dev
  • builds.amehut.dev

The first is unimplemented due to poor documentation(a rarity in this project, as it were). The second is unimplemented because I am lazy. The third requires special treatment and I have yet to provision a VPS for it. I will likely reuse the one that currently powers redmine, and decommission redmine.

At some point, I will be soft-forking the sr.ht project, and changing around the color scheme and some of the marketing details.

Well, this sounds interesting, where can I learn more?

I've put together an FAQ that says mostly the same stuff as this blog, with some extra details thrown in.

Alas, it seems signups are out-of-the-question.

Almost! If you want an account on amehut, and we've interacted before, PM me here or anywhere else. Despite some of the slightly cursed details of the backend, it runs like a dream.

Oh, nice!

IKR! Also when did you learn to type my headings? Ah whatever.

Aleteoryx, signing off.

aleteoryx: A female player avatar sits in a void, in futuristic clothing, conjuring a sphere of trans-colored magic energy. (Default)

These are obviously not rules, but I see a lot of alt-text that misses the mark in one way or another, and I try to follow these general guidelines when writing alt text.

Pronunciation

Remember, alt text will not be parsed by human eyes, it will be spoken by whatever TTS the viewer's screen reader uses. I see a lot of criticism of DaShareZone's alt-text, but if you actually run it through TTS, it sounds almost normal. "WHUT R U DEW EENG" and "What are you doing?" sound almost the same when run through TTS, and the main difference is in annunciation.

Consider your username. TTS pronounces mine as "ay l tier eeks", but a closer pronunciation can be gotten with "uh lee tee ore ikhs". I recently wrote alt text for a screenshot in which a username was "sexhaver". The TTS I test with pronounces that as "seksaver", instead of "sex haver". Screen readers are camel-case aware, so I generally just change any strings like that to a camelcased form, e.g. "sexHaver"

Structure

Mastodon provides in-built OCR for image uploads, to make alt text easier to add. This is not a perfect function. If you're uploading, for example, a variation on the "Is this a pigeon?" meme, and replacing the butterfly with an image, the generated alt text may just be "Is this a XYZ?"

My general strategy is to start with a broad description of the image context, followed by each important element. The opening might look like:

  • A screenshot of the Misskey admin panel.
  • A photo of a field covered in snow.
  • An edit of the drake meme format.

Then, each element might look like:

  • The federation graph has a large deadzone in the middle of it, lasting multiple days.
  • There is a trail of small footprints across the canvas.
  • The top thing, which drake is opposed to, is the Line Webtoon logo.

Feel free to omit stuff! If a screenshot includes tens of things, but your focus is on only one, you can just describe the bit that matters. Alt text is not about perfectly describing an image so that someone can see it in its entirety in their mind's eye, it's about getting the point of the image across. Especially in the case of a joke post, terse alt text is critical to making the punchline land.

Context

I generally try and provide extra context when putting alt text into images. Many fediverse frontends provide a way to view alt text as a sighted individual, and I find that nice for making my screenshots simple. I don't need to have a lot of extra visual data, I can just crop to a small area and introduce the alt text with "it's this Minecraft modpack", "it's this website", etc. This is the main curb-cut effect from alt text, and I am a huge fan of it. There are people far more technically talented than me on the internet, and it gives me just that much more of a foothold to try and understand out what they're doing.

Anyways...

That's about it. I just wanted to share that, cause I see pretty bad alt text a lot, esp for memes. Also, it doesn't need to be nearly as structured as the above for most cases. You can always just do something like "A photo of my new black tank top.", for simpler images and that will suffice. Structure is only necessary for complicated screenshots and shit.

That's all from me! Toodles!

aleteoryx: A female player avatar sits in a void, in futuristic clothing, conjuring a sphere of trans-colored magic energy. (Default)

Edit as of Biden finally being gone!

Vote for Kamala.

Fair warning:

  • This is mostly gonna be an angry rant from yours truly.
  • While I am focusing on US elections, my point holds for other topics.
  • If you've got some form of survivor's guilt, you might want to sit this one out.
  • Given the state of things, if the Dems elect a new candidate, assume this article was written about them.

With all that being said, let's talk about lesser evils.

The Trolley Problem

For years, I misunderstood the trolley problem. Rather, I did not see the significance. In one case, 5 people die, in the other case, just the 1 does. Obviously, you go with the case where only 1 dies. 5 people are saved from imminent death. What could be complicated about that?

I have since discovered that the difficulty here, for some, is one of framing. Some people cannot bear to be the one to throw the switch. To them, throwing the switch is acting to kill one person, and that makes them a murderer. To them, their inaction makes them innocent.

You may be one such individual, dear reader! You may think this way! Do know, if you are, that I am talking to you specifically when I say: You are selfish.

Self-image

This framing of saving 5 people as murder only works if inaction is framed as "minding your own business". It only works if, by doing nothing, one assumes irrelevancy. That's not how it works.

There's a refrain that's been popular recently. That the solution to the trolley problem is to, "Stop that guy who keeps tying people to trolley tracks." It's clever, but it's naive. In the real world, sometimes the guy is just too good. There are times where the only way to stop the bad thing is to cause a different bad thing.

Inaction is an oxymoron. Being a physical thing in time means you are always acting. Even the ground beneath you is undergoing constant heat transfers. You can't not do something. Inaction is not "minding your own business," it is a deliberate choice to do fucking nothing. By choosing a course of action where you do not prevent something, you become a second cause for it to happen. You become a murderer of 5 instead of 1.

Obviously, were anyone really in the trolley problem, a number of complications could arise. You could freeze, hesitate, panic, etc. There are a number of ways one's behavior could be involuntarily limited in crisis. To anyone with survivor's guilt, I am not talking to you.

As for what I am talking about,

Joe Biden, the Titular Lesser Evil

If you are not explicitly aligned with Donald J. Trump, you have a moral duty to vote for Joe Biden.

I don't like this. I dont like that this is the case. I dont like that the Best Available Option is a cop-loving israel-supporting half-senile bastard. I have even been known to hate it, but I understand the situation. There is no way to keep Trump out for 4 more years but to get someone to have more electoral votes, and there is no realistic way to do that but to back Biden.

This is not about Joe Biden.

This is not even about the Dems.

This is about praying for the death of Donald Trump to come soon and making sure he can't do shit before then. This is about keeping my rights, and the rights of my friends. The rights of my fucking mother.

How self-centered do you have to be to think of it any other way? "Ohhhh I could never vote for Biden because XYZ :/" Suck It Up. The world is shit, and you will die if you cannot bear to pick the lesser evil. If you are gay or trans or queer or bi or whatever else, you may get yourself killed. You're not choosing to not support Biden, you are choosing not to stop Trump.

If you can have that on your conscience, you need to go ask yourself why that is. Why you care so much more about your self-image than anyone else. Why you can live with being so overwhelmingly selfish and self-centered, and yet can't bear to do anything else.

Figure it out soon, and fix it.

Edit in light of the events of June 27th

Oh my god suck it up. Yes, Biden is senile. Suck it up. Let him get elected, at the worst chances are that Harris will 25th his ass, and at absolute worst he croaks in office. In either case, we get a black woman president and don't actually have to deal with Biden. He is bringing with him an administration that has been generally positive, especially compared to Trump. We can expect more strong anti-trust legislation, for one, even if nobody's home in Biden's head.

aleteoryx: A female player avatar sits in a void, in futuristic clothing, conjuring a sphere of trans-colored magic energy. (Default)

Most email scams are pretty boring, but this one was creative in its execution from what I've seen.

These links below are not harmless. Don't go getting your creds stolen.

I got an email from noreply@[[redacted]], saying to login to my cPanel account for "urgent messages".

The email

Being that I don't use cPanel, I clicked on the link, assuming this would be entertaining. I did not expect to get sent to an IPFS proxy URL, and yet there I was. This "login page" is kinda neat! It stores an email in the URL fragment and then puts an iframe in the background to display the person getting scammed's website. Anyways, this just submits the credentials to https://encon-co.in/fireb/general/_apr/pb3/index2pb3.php. I assume encon-co.in is the actual attacker's server.

Anyways, I think it's neat that the strategy is essentially "spread through cPanel installs to gain a pool of usable emails." The IPFS obfuscation is also kinda fun.

I've let the affected company know about the security breach, and contacted the registrar of encon-co.in and cloudflare, in the hopes of stopping the scam dead in its tracks.

Cya next time!

April 2026

S M T W T F S
   1234
567891011
1213141516 1718
19202122232425
2627282930  

feeds

RSS Atom

i use a lot of these

omg ty for making my site look good

Expand Cut Tags

No cut tags
Page generated May. 4th, 2026 05:48 pm
Powered by Dreamwidth Studios