purplecat: The fourth Doctor. (Who:Four)
purplecat ([personal profile] purplecat) wrote2025-06-21 12:56 pm

Random Doctor Who Picture


Model of a yellowish pointy-nosed spaceship.  It is on a packing crate that is labelled Dr Who - Shada 2017 Skagra's Spaceship filming minature *FRAGILE* - Property of Mike Tucker, The Model Unit, Ealing Studios.  A little of the model of another spaceship is below it (and obscures the words Mike Tucker, though these can be inferred from other signs about).  Things are reflected in a glass panel in front o the model, including a black man who seems to be the talking head in some kind of video.  Half of a sign is visible to the right talking about the work of Mike Tucker.
From the Doctor Who Worlds of Wonder Exhibition
torachan: (chloe yawn)
Travis ([personal profile] torachan) wrote2025-06-20 10:56 pm
Entry tags:

Daily Happiness

1. Finally after all week feeling like each day should be Friday, it's really Friday!

2. Today actually wasn't too bad at work and wasn't a long day. Though I didn't end up getting to everything I wanted to get done, so I had to push a lot of things till Monday. They're not urgent things, so it's fine, but I feel like Monday is going to end up with a lot of things, especially since I have a meeting in the afternoon. But so far I have nothing scheduled for Tuesday or Wednesday, so hopefully one or the other can be a catch up day if I need it.

3. This is an irresistible spot for cats. A canvas bag on top of a plastic bin, which is itself on top of a pile of other bags, on top of a blanket, on top of a chest. Plus it's got a nice view of the sidewalk!

torachan: (Default)
Travis ([personal profile] torachan) wrote2025-06-20 10:33 pm
Entry tags:

2025 Disneyland Trip #42 (6/18/25) Pride Nite

This is the third year they've had an official Pride Nite at Disneyland. With only two dates each year, it's on a smaller scale than most of the other events, but still a lot of fun and I just love being there at the park when almost everyone (even many of the cast members working that night) is queer.

Read more... )
ursamajor: people on the beach watching the ocean (Default)
she of the remarkable biochemical capabilities! ([personal profile] ursamajor) wrote2025-06-20 03:55 pm

to reach the brightest light, to reach the mighty sun

I started writing about our May concert weeks ago, and then got caught up in the swell of all of our June concerts. Three down, two to go!

[personal profile] hyounpark's mom and sister came out for our May concert - they'd wanted to come for Bocelli, but we took a look at ticket prices and required hotels and were like "even for a once in a lifetime thing like this we cannot in good conscience ask you to shell out mid-four-figures for a weekend in Napa." So instead, they came out for the reprise of Here I Stand: Paul Robeson, which also included Jasmine Barnes' Sometimes I Cry, and Brahms' 2nd Symphony. The performance went well, and was recorded! So I'm looking forward to being able to share that when it's released.

We also stuffed ourselves silly that weekend, but it was a good chance to just hang out at Leonard and Sara's and be lazy and have family time. Takeout sushi from Miyozen and wings from Wingstop while we worked on puzzles; curries for dinner from House of Curries; an excellent Hunanese dinner at Wojia the following evening.

H might have been a little more strategic on the eating front; 36 hours after we were onstage at the Paramount, he ran Bay to Breakers. I happily raced him across the city on the train per usual; devoured soda bread and a ganache cold brew on the beach at Sunset Dunes while waiting for him to catch up.

After that, we launched straight into prep for Beethoven and the symphony gala fundraiser. While we were waiting to go onstage for the gala, my little corner of sopranos was by what was very clearly The Party Table at the fundraiser. Highly amusing. We made ABC News for like half a second, and I was mostly blocked by the piano; perils of being a short soprano, lol.

Beethoven's 9th last Friday was the official wrap on our season, and I'm glad our director said what he did about it in his introduction, referencing that Beethoven was writing it in a time of much upheaval; that no matter the challenges, in our community, we seek and elevate joy; that this is our calling as musicians. An die freude, indeed.

*

We're approaching six years out here in California, now; as of yesterday, celebrating 20 years together with [personal profile] hyounpark. (25 years on LJ/DW, at least off and on.) It seems like the universe is recognizing it, nestling into that theme of growing community ties. Just in the last week alone:

- H and I went to an a cappella concert on Sunday at the Freight, and one of the musicians was a college classmate.
- one of the additional singers we brought on for B9? Turned out to be my elementary school music teacher, who now lives less than a mile away from us. She was like, "Oh my god, I was so strict in those years!" Me, ever the diplomat: "Eh, I'd call it orchestral." Everyone in listening distance cracked up.
- on my way to rehearsal on Tuesday, I ran into one of my biking friends as they were going into BART and I was coming up out of BART. I'm finally starting to run into people serendipitously more often!
- at bike brunch last Friday, one of my friends from the food writing class I took in March was at the cafe we'd ridden to, and apparently they bike too, so of course I invited them to join us on future rides.
- at the B9 concert, friends in the audience included new biking friends, old fandom friends, and even older elementary school friends.

And now, we just got a last-minute song added to our setlist for the Bocelli concerts this weekend about 45 minutes ago, so I go cram. And make sure my clothes are washed. And check the Wine Country weather. And overhydrate. And make sure of our carpool. And that I have coughdrops. And sunscreen. And shoes that are both concert-dress-appropriate and walkable for tromping across the vineyard grounds.
purplecat: Gif of running "pointy sauruses" (General:Dinosaur)
purplecat ([personal profile] purplecat) wrote2025-06-20 06:35 pm
Entry tags:

Fossil Friday


A fossil skeleston of what appears to be a bipedal dinosaur with a long tail, longish neck and sharp teeth.
Dilophosaurus. Image stolen from Great Dinosaur Discoveries by Darren Naish, though wikipedia is using a very similiar image under a Creative Commons licence.
Matthew Garrett ([personal profile] mjg59) wrote2025-06-20 01:11 am
Entry tags:

My a11y journey

23 years ago I was in a bad place. I'd quit my first attempt at a PhD for various reasons that were, with hindsight, bad, and I was suddenly entirely aimless. I lucked into picking up a sysadmin role back at TCM where I'd spent a summer a year before, but that's not really what I wanted in my life. And then Hanna mentioned that her PhD supervisor was looking for someone familiar with Linux to work on making Dasher, one of the group's research projects, more usable on Linux. I jumped.

The timing was fortuitous. Sun were pumping money and developer effort into accessibility support, and the Inference Group had just received a grant from the Gatsy Foundation that involved working with the ACE Centre to provide additional accessibility support. And I was suddenly hacking on code that was largely ignored by most developers, supporting use cases that were irrelevant to most developers. Being in a relatively green field space sounds refreshing, until you realise that you're catering to actual humans who are potentially going to rely on your software to be able to communicate. That's somewhat focusing.

This was, uh, something of an on the job learning experience. I had to catch up with a lot of new technologies very quickly, but that wasn't the hard bit - what was difficult was realising I had to cater to people who were dealing with use cases that I had no experience of whatsoever. Dasher was extended to allow text entry into applications without needing to cut and paste. We added support for introspection of the current applications UI so menus could be exposed via the Dasher interface, allowing people to fly through menu hierarchies and pop open file dialogs. Text-to-speech was incorporated so people could rapidly enter sentences and have them spoke out loud.

But what sticks with me isn't the tech, or even the opportunities it gave me to meet other people working on the Linux desktop and forge friendships that still exist. It was the cases where I had the opportunity to work with people who could use Dasher as a tool to increase their ability to communicate with the outside world, whose lives were transformed for the better because of what we'd produced. Watching someone use your code and realising that you could write a three line patch that had a significant impact on the speed they could talk to other people is an incomparable experience. It's been decades and in many ways that was the most impact I've ever had as a developer.

I left after a year to work on fruitflies and get my PhD, and my career since then hasn't involved a lot of accessibility work. But it's stuck with me - every improvement in that space is something that has a direct impact on the quality of life of more people than you expect, but is also something that goes almost unrecognised. The people working on accessibility are heroes. They're making all the technology everyone else produces available to people who would otherwise be blocked from it. They deserve recognition, and they deserve a lot more support than they have.

But when we deal with technology, we deal with transitions. A lot of the Linux accessibility support depended on X11 behaviour that is now widely regarded as a set of misfeatures. It's not actually good to be able to inject arbitrary input into an arbitrary window, and it's not good to be able to arbitrarily scrape out its contents. X11 never had a model to permit this for accessibility tooling while blocking it for other code. Wayland does, but suffers from the surrounding infrastructure not being well developed yet. We're seeing that happen now, though - Gnome has been performing a great deal of work in this respect, and KDE is picking that up as well. There isn't a full correspondence between X11-based Linux accessibility support and Wayland, but for many users the Wayland accessibility infrastructure is already better than with X11.

That's going to continue improving, and it'll improve faster with broader support. We've somehow ended up with the bizarre politicisation of Wayland as being some sort of woke thing while X11 represents the Roman Empire or some such bullshit, but the reality is that there is no story for improving accessibility support under X11 and sticking to X11 is going to end up reducing the accessibility of a platform.

When you read anything about Linux accessibility, ask yourself whether you're reading something written by either a user of the accessibility features, or a developer of them. If they're neither, ask yourself why they actually care and what they're doing to make the future better.
torachan: a kitten looking out the window (chloe in window)
Travis ([personal profile] torachan) wrote2025-06-19 10:20 pm
Entry tags:

Daily Happiness

1. They announced the amounts for our biannual bonus and the pre-tax amount is a little higher than last time. Not sure what the take-home amount will be, but I'll find out next Friday. (The day after my birthday, so that's a nice present.)

2. For some reason this week has felt so long. Like every day I've felt like it must be Friday. Even Monday! And now tomorrow is finally Friday! I'm excited about that. Taking next Thursday off for the aforementioned birthday, so it will be a short week, too. (And then the week after that I get that Friday off for 4th of July, so two short weeks in a row!)

3. Tuxie looks so contented.

kaberett: Trans symbol with Swiss Army knife tools at other positions around the central circle. (Default)
kaberett ([personal profile] kaberett) wrote2025-06-19 11:01 pm

oof but I am having difficulty getting back into routines post-event

I have managed all of my physio once and only once this week. I have not yet got on the mat at all. I have been spending a lot of time asleep, which probably shouldn't surprise me, and a fair amount migrainey, which does (unpleasantly). Have this evening at least managed to send the email to the headache clinic that's been due since April, and consequently may or may not actually get an appointment in time to get a prescription in time to not need to reload the f2f galcanezumab again.

(Have also been really struggling with actually opening notebook since the last trip up north, which is helping precisely nothing. Maybe acknowledging that here will make it a little less scary to go back to, at least.)

purplecat: The family on top of Pen Y Fan (General:Walking)
purplecat ([personal profile] purplecat) wrote2025-06-19 07:31 pm

Inca Trail: Day 3

Unlike Day 2, which was hard work and not terribly rewarding, we loved Day 3 on the Inca Trail. Once again we set off almost as soon as it was light. Wilbert's plan was again to have all the walking done before lunch, in part because of convenience, but this time he also knew there were a lot of ruins to see and was quite keen to get us to them before everyone else got there. In this he was successful. We generally got to look around ruins on our own, but a big group would arrive just as we were leaving.

The first of these was Runkuraqay which Wilbert described as a fuel station for people, which we interpreted as meaning an Inn.

Runkuraqay Pictures )

We then went up and over a pass, a little lower than Dead Woman's Pass the previous day, and a shorter climb because we'd started higher. Then we came down towards Sayacmarca, a much larger ruin.

Pictures )

Once we left Sayacmarca we continued down to about 3,500m. After that the trail was much more level. Strava shows a steady climb, but I felt much more able to look about me at the scenery rather than paying close attention to where I was putting my feet. As the trail levelled out we got to Qunchamarka, another Inn. It wasn't clear how to access this, but we walked around the outside. I think at this point we were up in a Cloud Forest - though I'm hazy on the difference between Cloud Forest, Rainforest and regular forest, all of which I think we walked through at various points.

Pictures )

Wilbert spent some time telling us about the Inca Tunnel we would meet. B was pretty sure this was just a large fallen rock which the Inca's had run the path under. Wilbert got distracted at this point since he found a dog in the brush above the tunnel. After some encouragement he got it to climb down and it ran off down the path ahead of us. We met it again at the next campsite where, presumably, it belonged. I'm afraid we failed to photograph the dog, so you'll just have to imagine it.

B did photograph the tunnel, however )

We arrived at our campsite in good time for lunch. The camp was above another Inca ruin, Phuyupatamaca, and after lunch Wilbert packed us off to take a look at it on our own. This involved going down some steep steps and it seemed like the water source for the camp was at the bottom, because we were passed by a lot of porters carrying water back up them. At the time we assumed he sent us to look at it then, rather than the next day, because the plan was to leave before light so that we would get to Machu Picchu in time to meet up with the rest of our group. However it transpired that pretty much everyone was leaving before light and we seemed to be the only party who's guide thought to encourage us to check out the ruins we would miss in the dark.

Pictures of Phuyupatamarca )

We had an excellent position in the camp right next to a large rock that overlooked the view. We were next to the camp of a group of three people who were on the "Luxury" tour. Wilbert was very contemptuous - they had three guides and a masseuse. They were also served cocktails in glasses made of glass when they reached camp. The most disconcerting thing was that they were played into camp by Andean pipes. B felt he would have been quite happy with the cocktails and the larger tents (including a shower tent!) and so on, but felt he wouldn't have coped with the pipes.

Pictures in the Camp )
torachan: (Default)
Travis ([personal profile] torachan) wrote2025-06-19 02:34 am
Entry tags:

Daily Happiness

1. Tonight was Pride Nite! Had a lot of fun. Pics and post to come tomorrow as it is much too late to do tonight.

2. Special delivery!

azurelunatic: Vivid pink Alaskan wild rose. (Default)
Azure Jane Lunatic (Azz) 🌺 ([personal profile] azurelunatic) wrote2025-06-18 09:31 pm
Entry tags:

More tiny excitements

* Shelves are fairly well stuffed. The other brackets have arrived, so we can go get more boards and tiny hardware at our convenience.
* There is now Shelf in the living room. Things are going in it.
* Household tidying progresses.
* Today I filled boxes for 13 weeks of my morning and evening pills. It feels like it took less time than usual, but I think that's a trick of the light. I think I usually start later in the day, and keep going until it's dark. It took about four and a half hours; I try to allocate at least 5.
* This means that I've got pills packed until sometime in September. Go, me?
* Juneteenth is tomorrow!
* Turns out that being a director at a certain kind of non-technical organization means that you spend evenings face-down in the user interface level of a misbehaving database. I am chockablock with sympathy.
* Yellface is adorable, and likes to spend the part of the day when I'm awake but still in bed sitting on my legs.
* Had games and pizza with friends last week; they've got a young-ish teeneager placed with them right now. She wasn't up for games but she did appear to fill her water bottle. Luna-cat is very curious about new people and apparently charged her, which was off-putting. I faded early.
* I got some new bras; I'll have to add pockets but the test wear was promising!
* Nobody told me about the dragons in The Priory of the Orange Tree, everyone just mentioned the lesbians.
* There's a new serial at [personal profile] the_comfortable_courtesan!!!
ursula: bear eating salmon (Default)
Ursula ([personal profile] ursula) wrote2025-06-18 05:13 pm

(no subject)

North Continent Ribbon is shortlisted for the 2025 Ursula K. Le Guin prize, along with Rakesfall, Sapling Cage, The City in Glass, and a bunch of other fascinating-looking books I haven't read yet.

I am so, so, so thrilled.
purplecat: The family on top of Pen Y Fan (General:Walking)
purplecat ([personal profile] purplecat) wrote2025-06-18 07:15 pm

Inca Trail: Day 2

Day 2 on the Inca Trail was the least fun of the trip. We had to climb 1,200m to get up and over "Dead Woman's Pass". Wilbert, our guide's plan was to get going as soon as it was light (around 5:30am) and aim to reach our campsite at lunch time. His reasoning was to get most of the actual climbing done while we were in the shadow of the tall mountains around us. It also made life simpler for the support team who wouldn't have to pick somewhere en route, unpack to make lunch, and then pack up again to get to the campsite. He also, I think, quite liked the idea of catching up with the group that were ahead of us who were starting around 700m up the climb and who would be having lunch at our evening campsite. In the event we arrived at our campsite about 2 hours after they had left, having another pass to go over before they got to their campsite for the night.

We were on modern trails, according to Wilbert, and although I think we passed some Inca ruins at a campsite en route, we didn't look at them. Wilbert's explanation for the route wasn't entirely clear. As I understood it the original Inca road went over a different pass, though I never figured out if it was higher or lower. I got the impression a large section of the road from Cusco to Machu Picchu was destroyed by the Inca themselves, triggering landslides, in order to prevent the Spanish finding their way along it, so maybe that explains why we were following a modern alternative.

We started at about 3000m. At around 3,700m I began to feel quite tired and a little concerned about the 500m still go. At 3,900m as we came out of the shade and into the sun, my legs felt like lead and I made it up to the pass only by doggedly walking 300 steps and then stopping (300 steps, if you are interested, gets you up about 50m). At the time we put this down to the fact Manchester is super-flat and so our uphill muscles don't get a lot of exercise. However, I wasn't remotely stiff the next day, at which point it occured to us to measure my blood oxygen using my watch. It was down at 81%, rising to 88% if I took several deep breaths (B., in contrast was generally in the high 80s/low 90s). So it's possible the issue was lack of blood oxygen - even though I wasn't showing any other symptoms of altitude sickness.

Once over the pass we descended around 600m to our campsite. I badly wanted to go to sleep, but B. and Wilbert forced me to have some lunch first. Then I slept for an hour, after which I felt much more like myself.

We walked a total distance of just under 12km.

Pictures under the Cut )
torachan: cats looking at a crow out the screen door (cats and crow)
Travis ([personal profile] torachan) wrote2025-06-17 09:01 pm
Entry tags:

Daily Happiness

1. The curfew was fully lifted downtown.

2. Long meeting day ended a couple hours earlier than scheduled. (So rare.)

3. Jasper is the cutest* and he knows it.



*All cats are the cutest.
torachan: (Default)
Travis ([personal profile] torachan) wrote2025-06-17 06:15 pm
Entry tags:

2025 Disneyland Trip #41 (6/16/25)

Last night was just a quick after-work trip while waiting to pick up Carla at the airport, so I didn't do a whole lot but I did have a nice dinner!

Read more... )
kaberett: Trans symbol with Swiss Army knife tools at other positions around the central circle. (Default)
kaberett ([personal profile] kaberett) wrote2025-06-17 11:47 pm

today I have mostly been asleep

The watch tells me I achieved +102 "body battery" points, which I am amused to see.

But I have also visited the allotment (on my way back from physio) and have eaten: raspberries, a strawberry, a cherry, redcurrants, jostaberries, peas, broad beans, kohlrabi. V pleased.

purplecat: The Tardis against a sunset (or possibly sunrise) (Doctor Who)
purplecat ([personal profile] purplecat) wrote2025-06-17 06:46 pm

Costume Bracket: Round 4, Post 2

Two Doctor Who companion outfits for your delectation and delight! Outfits selected by a mixture of ones I, personally, like; lists on the internet; and a certain random element.


Outfits below the Cut )

Vote for your favourite of these costumes. Use whatever criteria you please - most practical, most outrageously spacey, most of its decade!

Voting will remain open for at least a week, possibly longer!

Costume Bracket Masterlist

Images are a mixture of my own screencaps, screencaps from Lost in Time Graphics, PCJ's Whoniverse Gallery, and random Google searches.
torachan: (Default)
Travis ([personal profile] torachan) wrote2025-06-16 11:20 pm
Entry tags:

Daily Happiness

1. It seems like there was a lot more foot traffic in Little Tokyo today, so hopefully our sales will pick up this week. And this afternoon they announced the curfew has been pushed back to 10pm from 8pm, so we can keep the store open till nine.

2. Carla is home safe and sound.

3. I had a nice dinner at DCA tonight before picking her up from the airport. Very warm and muggy this evening, though, which I could have done without!

4. Neighborhood Watch! Gemma is on top of it.

Matthew Garrett ([personal profile] mjg59) wrote2025-06-16 09:20 pm
Entry tags:

Locally hosting an internet-connected server

I'm lucky enough to have a weird niche ISP available to me, so I'm paying $35 a month for around 600MBit symmetric data. Unfortunately they don't offer static IP addresses to residential customers, and nor do they allow multiple IP addresses per connection, and I'm the sort of person who'd like to run a bunch of stuff myself, so I've been looking for ways to manage this.

What I've ended up doing is renting a cheap VPS from a vendor that lets me add multiple IP addresses for minimal extra cost. The precise nature of the VPS isn't relevant - you just want a machine (it doesn't need much CPU, RAM, or storage) that has multiple world routeable IPv4 addresses associated with it and has no port blocks on incoming traffic. Ideally it's geographically local and peers with your ISP in order to reduce additional latency, but that's a nice to have rather than a requirement.

By setting that up you now have multiple real-world IP addresses that people can get to. How do we get them to the machine in your house you want to be accessible? First we need a connection between that machine and your VPS, and the easiest approach here is Wireguard. We only need a point-to-point link, nothing routable, and none of the IP addresses involved need to have anything to do with any of the rest of your network. So, on your local machine you want something like:

[Interface]
PrivateKey = privkeyhere
ListenPort = 51820
Address = localaddr/32

[Peer]
Endpoint = VPS:51820
PublicKey = pubkeyhere
AllowedIPs = VPS/0


And on your VPS, something like:

[Interface]
Address = vpswgaddr/32
SaveConfig = true
ListenPort = 51820
PrivateKey = privkeyhere

[Peer]
PublicKey = pubkeyhere
AllowedIPs = localaddr/32


The addresses here are (other than the VPS address) arbitrary - but they do need to be consistent, otherwise Wireguard is going to be unhappy and your packets will not have a fun time. Bring that interface up with wg-quick and make sure the devices can ping each other. Hurrah! That's the easy bit.

Now you want packets from the outside world to get to your internal machine. Let's say the external IP address you're going to use for that machine is 321.985.520.309 and the wireguard address of your local system is 867.420.696.005. On the VPS, you're going to want to do:

iptables -t nat -A PREROUTING -p tcp -d 321.985.520.309 -j DNAT --to-destination 867.420.696.005

Now, all incoming packets for 321.985.520.309 will be rewritten to head towards 867.420.696.005 instead (make sure you've set net.ipv4.ip_forward to 1 via sysctl!). Victory! Or is it? Well, no.

What we're doing here is rewriting the destination address of the packets so instead of heading to an address associated with the VPS, they're now going to head to your internal system over the Wireguard link. Which is then going to ignore them, because the AllowedIPs statement in the config only allows packets coming from your VPS, and these packets still have their original source IP. We could rewrite the source IP to match the VPS IP, but then you'd have no idea where any of these packets were coming from, and that sucks. Let's do something better. On the local machine, in the peer, let's update AllowedIps to 0.0.0.0/0 to permit packets form any source to appear over our Wireguard link. But if we bring the interface up now, it'll try to route all traffic over the Wireguard link, which isn't what we want. So we'll add table = off to the interface stanza of the config to disable that, and now we can bring the interface up without breaking everything but still allowing packets to reach us. However, we do still need to tell the kernel how to reach the remote VPN endpoint, which we can do with ip route add vpswgaddr dev wg0. Add this to the interface stanza as:

PostUp = ip route add vpswgaddr dev wg0
PreDown = ip route del vpswgaddr dev wg0


That's half the battle. The problem is that they're going to show up there with the source address still set to the original source IP, and your internal system is (because Linux) going to notice it has the ability to just send replies to the outside world via your ISP rather than via Wireguard and nothing is going to work. Thanks, Linux. Thinux.

But there's a way to solve this - policy routing. Linux allows you to have multiple separate routing tables, and define policy that controls which routing table will be used for a given packet. First, let's define a new table reference. On the local machine, edit /etc/iproute2/rt_tables and add a new entry that's something like:

1 wireguard


where "1" is just a standin for a number not otherwise used there. Now edit your wireguard config and replace table=off with table=wireguard - Wireguard will now update the wireguard routing table rather than the global one. Now all we need to do is to tell the kernel to push packets into the appropriate routing table - we can do that with ip rule add from localaddr lookup wireguard, which tells the kernel to take any packet coming from our Wireguard address and push it via the Wireguard routing table. Add that to your Wireguard interface config as:

PostUp = ip rule add from localaddr lookup wireguard
PreDown = ip rule del from localaddr lookup wireguard

and now your local system is effectively on the internet.

You can do this for multiple systems - just configure additional Wireguard interfaces on the VPS and make sure they're all listening on different ports. If your local IP changes then your local machines will end up reconnecting to the VPS, but to the outside world their accessible IP address will remain the same. It's like having a real IP without the pain of convincing your ISP to give it to you.
jadelennox: its the story of an ice cube but every time he feels happy it make him melt a little bit more (story of an ice cube)
jadelennox ([personal profile] jadelennox) wrote2025-06-16 10:11 pm
Entry tags:

oh noes

my friend just said "ACAB includes Odo" and she's right.