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 rough, and roughly digitized, doodle of a person. Their eye is wrong, and their hair appears to have more wrong eyes in it. The hair is tied back. (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 rough, and roughly digitized, doodle of a person. Their eye is wrong, and their hair appears to have more wrong eyes in it. The hair is tied back. (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 rough, and roughly digitized, doodle of a person. Their eye is wrong, and their hair appears to have more wrong eyes in it. The hair is tied back. (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 rough, and roughly digitized, doodle of a person. Their eye is wrong, and their hair appears to have more wrong eyes in it. The hair is tied back. (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 rough, and roughly digitized, doodle of a person. Their eye is wrong, and their hair appears to have more wrong eyes in it. The hair is tied back. (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 rough, and roughly digitized, doodle of a person. Their eye is wrong, and their hair appears to have more wrong eyes in it. The hair is tied back. (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 rough, and roughly digitized, doodle of a person. Their eye is wrong, and their hair appears to have more wrong eyes in it. The hair is tied back. (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!

aleteoryx: A rough, and roughly digitized, doodle of a person. Their eye is wrong, and their hair appears to have more wrong eyes in it. The hair is tied back. (Default)

i love bash.

i really, really, love bash. well, it and all the other posix shells. i personally use zsh in my terminal, with oh-my-zsh stacked on top. for the rest of this article, i will be using bash to refer generally to the bashlike shells(so no fish).

bash is so excellent at specific types of problems, and completely god awful at almost every other kind.

bash does not do math well. bash can do integer arithmetic pretty well, but the second you need to deal with decimals bash is your mortal enemy, forcing you to invoke bc or some other scripting environment.

bash does not do parsing well! bash does simple parsing effortlessly assuming you're comfy with regexes, and most formats have some way to handle them from the command line (jq, yq, sqlite, etc.), but bash will be sure to make you unhappy the entire time for just about anything else and you will have to learn what the IFS is.

what bash excels at, though, is anything you can do from the command line. bash has quite literally effortless process management, it's the main thing you do. bash has easy file and directory handling, and pattern matching tools to make simple file searches trivial. if you live in the command line, every utility you install is at bash's disposal. on top of the wealth of standard posix tools almost every command line utility is built to serve bash's whims.

the language of a terminal is one of text. when you type a command, whatever it outputs doesn't really feel like reading or writing bytes to you, the user. it's just text appearing. text moving. text changing color. part of the brilliance of bash's UI design is that capturing the output of a command--as text--is, like so much else, trivial. i do not need to think about the true abstractions of the operating system to understand that $(date +%B)-* will, at time of writing, get me every file beginning with "February-". the brilliance of bash is that it lets the programmer think in terms of the established user interface, and not in terms of the underlying systems. the fundamental abstractions of bash bear no relation to posix or unix or linux, instead just to the posix command line.

bash is, for the experienced user, so effortless to write, because it's not really a deviation from the normal use of the command line, it's so intuitive because you are essentially just telling the computer to do what you would do. there is not, i don't think, any similar form of ui-language link for gui-based applications, nor for web-based applications. the blurred line between programming environment and interface, made possible by virtue of them both being text, gives bash a certain elegance that few other repls aspire to, much less manage.

this is, i think, the thing powershell fails at. in its attempt to be a safer, more structured bash, it loses much of the effortlessness that makes bash what it is. it is clunkier and slower, though technically more featureful. as a tool for remote windows administration, i think it succeeds fine, but i could not live in powershell the way i live in my terminal on linux. i do understand that that isn't the point, and even when windows was text-based, the scripting environment was still in desperate need of features, seen more as a tool than an interface, but i still figured it was worth mentioning.

these days, when scripting, i find myself bouncing between bash and python, depending on the task. they're both excellent at completing whatever i throw at them, and i'm happy to have such loyal and powerful tools as those, and such a wonderful interface for my day-to-day, as bash.

that's all.

aleteoryx: A rough, and roughly digitized, doodle of a person. Their eye is wrong, and their hair appears to have more wrong eyes in it. The hair is tied back. (Default)

...almost 2 months. that's too long. i need to keep this place updated more.

What's new?

oh lots of things. i got sick, as i write this i've got a hellish fucking cough. the clearlungs is keeping it at bay but it's still painful. i have chorus later today, not sure how i'm gonna manage that.

i sunk the $9 on an uptimerobot paid plan, so there's now a status page for my stuff. we'll see whether i migrate to something self-hosted or not, but i figure a status page is the one thing that's foolish to selfhost.

i've started a new form of to-do list, on my remarkable. the only thing really new about it is that i rewrite it from scratch every day. it forces me to think about tasks more concretely. i also have a second list, the evertodo, for those things that i'll get to later. it's, uh, long. anyways, i'm thinking i'll add a "write something" daily task, try and keep this place updated more.

i started reading ficciones. borges is an amazing author holy shit. i have very little to say other than that i now see from where some of my previous favorite short stories draw clear and direct influence.

i've got matrix and jabber accounts now. @aleteoryx:constellatory.net(good homeserver! cool admin!) and @alyx@jab.aleteoryx.me. contact me if you dare.

i got a pixel fold. convinced my family that the last 6 years of no upgrades was worth funding such an investment. i do enough reading and shit on my phone where being able to say "fuck it, tablet" comes in handy. i've not been using the folding functions enough to properly justify the price tag, but it comes in handy now and again. i expect that when i start doing research on allegheny county parcel laws again, it'll be far more useful.

i've begun actually using my myanimelist account. it's been enough motivation to finally watch stuff. i'll post reviews of stuff as i finish shows.

all sorts of stuff. i started running my own authoritative dns server via powerdns. it's a good little program, and it works well for my needs.

i killed social.aleteoryx.me. it had been broken for a while, it would seem. i still have database backups in case i ever want to try resurrecting it, probably under glitch-soc or chuckya.

i started moving shit off the singular linode i'd been using for a while.

  • mk.aleteoryx.me and books.aleteoryx.me are now living on a royale hosting vps together.
  • airsonic is back on oci, as it should be.
  • discourse is properly setup, and living on its own royale vps.

i setup a redmine install. unfortunately, it seems as though the inbuilt repo browser can't actually handle soft-serve, as soft-serve stores all repos with no working tree. i probably won't do much about this anytime soon, as i prefer cgit to the repo interface i've seen on other redmine installs.

i've discovered that leveldb has a tendency to create unreadable files under gocryptfs. frankly, i'm considering switching to a new encryption solution, as gocryptfs has too many random incompatibilities. steam updates tend to max out all of my cores, only in the kernel, and iirc this did not happen before moving to gocryptfs.

i wrote a bit of the script for the eventual major update to comics.marigold.town. no work has been done on the engine, but yknow, progress is progress.

i mocked up some code and datastructures for the scrobble.observer wizard v2.

i'm now running a public searxng instance. i need to poke at the csp config at some point until stuff stops failing to load, but that's a problem for later. for now, it works well enough that i use it and i've had it listed on searx.space.

Any upcoming plans?

well, when i get the time, i'm going to completely restructure my website. i'm thinking aleteoryx.me will become a mobile-friendly single-page site with links to various things, and the current site will end up at www.aleteoryx.me. i'd also like to have some sort of sso domain so that people i trust can have a unified login system to my things i host, but i'm not sure if sharkey supports ldap or anything of the sort. i've had good experiences running keycloak in the past, so i'll probably end up using that.

lfm_embed is going to get something of an overhaul with regards to theming. handlebars is proving too limited for any real use-cases, and i'm thinking lua may be the right choice going forwards. this is pending on free time.

i'll probably try teaching sharkey to send out normal reactions at some point, although from what i've heard *key federation code is nightmarish. it's a problem for later.

Anything in the news?

neil cicieriga released a demo off mouth dreams, it's ...baby one more time reworked as a symphonic rock song. it's pretty good.

Welp, I'm off.

alright, thanks for reading. i'll be back sometime soon, maybe with a sequel to that thing i wrote that one time.

aleteoryx: A rough, and roughly digitized, doodle of a person. Their eye is wrong, and their hair appears to have more wrong eyes in it. The hair is tied back. (Default)

I've only had it for a little while, but it's such a useful little machine. I got it for cheap on eBay, and I was sold by the idea of an e-paper drawing tablet. That might be the least interesting thing I can use it for.

Do I need to fill out a form? Well, normally, that would sit for days, because I find it impossible to walk to and subsequently fight with the printer. Instead I can send the PDF to the tablet with a click and then fill it out there. Do I want to draw something? It's easier than carrying around a sketchbook. Do I want to read something? It's more durable and lightweight than any of the books I own. I have an Articles folder on it that I use as a substitute for my reading list, because it's something I'll actually remember to look at.

This little tablet does the jobs of a printer, a drawing tablet, multiple apps on my phone, and an e-reader, and, having gotten it used, for less than those things combined. If you're looking to get an e-reader or anything of the sort I cannot understate how useful it and devices like it are. Even if you don't want to buy a remarkable, the combo of e-reader with a pen is so rediculously useful that anyone looking to get a regular e-reader should look into options more like this.

Anyways, just got done doing significant portions of my college application on this thing. I love it. That's all.

June 2025

S M T W T F S
1234567
891011121314
151617 18192021
22232425262728
2930     

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 Jun. 19th, 2025 02:58 pm
Powered by Dreamwidth Studios