Wednesday, July 31, 2019

Bizzare network speed issue

I recently switched to a gigabit Internet plan, and it was working great at first, but it started slowing down to ~150mbit after a day or two. I started doing my normal troubleshooting, rebooting the modem, etc., but it soon became clear that the issue was with the server I was using as a gateway/router. I was having issues getting any network throughput, even for data originating on the server itself. I have a test script which generates 64k of random data, then continually pushes that one block over a TCP connection (eliminating the possibility that compression is making it look like there is more data transmitted than there actually is), and over a gigabit link, I usually get a very consistent 111/112 MiB/s transfer rate. However, this script seemed to peg one CPU core at 99%, even though it's spending all its time in the send() syscall, and it was only getting 10 MiB/s. CPU benchmarks showed everything was running normally, there was no CPU throttling. Both network interfaces were doing the same thing (one built into the motherboard, another on a PCIe expansion card). The only thing I could think to do was to reboot the server - which worked.

The next day, it started to slow down again. Doing an internet speed test straight from the server showed slightly decreased speeds, but the same speed test from another device (with packets being forwarded through the server) was extremely low. Once again, the CPU seemed to be the bottleneck, with ksoftirq using 100% of one core. This indicated that outgoing packets are taking a long time to process, and that work is being done in the context of the thread that is sending the packet. I checked my iptables rules - nothing stood out. The route tables all look normal. Then it hit me - I have an LTE backup using an old wireless hotspot, and in order to prevent sending normal traffic to it, I use an alternate route table, with a source address rule which selects that table. I have a service that sets up an SSH tunnel through that interface to an external server, and for simplicity, I have the service configure the routing tables on startup. There was a bug in the script which caused it to add another rule whenever the service starts. The remote SSH server got stuck with an old connection using the ports, so the service was restarting once every few seconds.

In the end, I had a total of 15,059 rules which had to be checked for every packet that goes through (seen in the image above). The solution is simple - remove all source address rules before adding new ones. I also unjammed the remote SSH service, so the connect service wasn't constantly restarting.

I did learn some things in the process. I knew that the processing for iptables, routing, and eBPF took place in the kernel, but I had always assumed it got kicked off in the background, and that the sending process returns immediately, but apparently, it's all synchronous, and send() doesn't return until the packets have actually been placed in the outbound hardware queue. This is significant for performance if there is a lot of processing to be done.

Monday, July 01, 2019

I got it!

I finally got my birth certificate amended! I was expecting to have to wait a lot longer, because I hadn't heard anything about the court case since it was filed back in October. I decided to stop by the Office of Vital Statistics in Topeka to get it updated in person so I wouldn't have to wait weeks for it.

While Scrydan and I were in Topeka, we decided to visit the Equality House, across the street from the hateful church whose name I won't repeat here. I didn't realize they actually had two houses, the original one with the rainbow colors, and one right next door with the transgender pride flag colors.

What struck me about the house is how open it is compared to the "church". They claim to be Christian, but what would Jesus think of a church with an 8 foot high fence, covered with signs warning about a video surveillance system, with automated gun turrets scanning the lawn? Okay, I made that one up, but the place totally struck me as the kind of place that would have them. Not to mention the giant signs with homophobic slurs on them.

The Equality House is the perfect response to this kind of hatred. While the "church" uses its First Amendment rights to spew hatred, it is countered with a message of love, acceptance, and inclusion.

Tuesday, June 25, 2019


A couple months ago, I wrote a post announcing that I would be using my initials, and I mentioned a couple of people who share those initials. Well, it turns out one of those people is a fucking TERF. So she can go fuck herself.

I don't really like the term TERF (Trans-Exclusionary Radical Feminist) because it implies that they are feminist. I prefer the suggestion to call them FARTs (Feminism-Appropriating Reactionary Transphobes). But I still use the term TERF because they hate it. They call it a "slur", and whine that it hurts their feelings, at the same time they use actual slurs against us and argue against our basic right to exist.


Monday, June 24, 2019

Birth certificate update

So I missed the news on Friday... There was an agreement in the case I mentioned a couple of weeks ago, Foster v. Andersen. The Kansas Department of Health and Environement has agreed to issue amended birth certificates with the correct sex marker! I have already drafted my request to get mine updated.

So, that's a little bit of progress. It shouldn't take a court case to get rid of outdated discriminatory policies like this.

Wednesday, June 12, 2019

It's official!!

My name is officially Jennifer Kathryn Stafford! This is a huge relief to me - seeing my old name is a major trigger for dysphoria. There are still a lot of places where it needs to be updated, and that old name is going to be popping up like a cockroach infestation for years to come. Maybe one day I can disassociate myself from it, but that's a long way away.

Unfortunately, since I was born in Kansas, I am currently unable to correct my birth certificate. There is a federal lawsuit, Foster v. Andersen, filed last October, which is still working its way through the courts. With Brownback gone, there is a slim chance that this discriminatory policy could be corrected legislatively, but I'm not holding my breath for that.

Wednesday, May 22, 2019

Dragon cuddles!

I had this artwork commissioned of me with my cuddly dragon boyfriend, Scrydan. You can view the full image here, but beware that it may be slightly NSFW.

Artwork © 2019 by Vallhund

Thursday, May 16, 2019

Hello World! I'm Katie.

A month ago, I posted about changing my name on all my accounts to just my initials. This was just temporary. Now I can finally reveal my shiny new name:

[Jeff Goldblum] Well, there it is.

I've been going by "Katie" privately for about a month and a half now. Online, I've been going by my fursona's name "Katie Pendry", or "Katie the Panda", or "ktpanda". My site is now, and all the old URLs will redirect to the new one.

Needless to say, I'm still the same person, except now I can be who I truly am and not feel like I'm wearing a mask all the time.

I'd like to thank the Reddit communities /r/egg_irl, /r/traaaaaaannnnnnnnnns, and /r/MtF. as well as my wonderful therapist, for helping me kick my self-doubt and denial, and for showing me that every trans person's experience is different. I had built up a straw person view of what a trans person must experience, and simply dismissed all the thoughts that I might be trans because I obviously didn't meet all this strict criteria, and must therefore I must be a cis male.

Despite the fact that I've always wanted smooth, soft skin.

Despite the fact that I've despised having facial and chest hair, always keeping it shaved as short as possible, even though I hate shaving.

Despite the fact that I've always hated my voice.

Despite the fact that as a kid, I fantasized about swapping bodies with a girl in my class.

Despite the fact that I found the idea of magical transformation into a woman appealing.

Despite the fact that I once accidentally introduced myself as my mom's daughter (brain fart or subconscious wishing? I'm still not sure).

You get the picture.

But after seeing the memes on /r/egg_irl, talking to other trans people, and talking with my therapist, I came to the conclusion that whatever I ended up as, I wasn't 100% cis. I picked out a name, created a new Reddit account, and started exploring. I started taking hormones on April 24, and within a week, it was clear - I'm not genderfluid, non-binary, or any of the other labels I was trying out... I'm a girl, plain and simple.

All the friends I have come out to so far have been extremely supportive, and I am very grateful for that. I know it's not easy adjusting to a change like this, but they have been very good about using my new name and not misgendering me.

Finally, I am very thankful for the support of my loving boyfriend, Scrydan. He has been a huge source of support during my transition. It's so helpful to not have to worry about whether or not my partner will support me.