Sign in

Jenna JJ Q.

@tomatofacts3.bsky.social
56 followers 20 following 840 posts
PostsRepliesMedia
Jenna JJ Q. @tomatofacts3.bsky.social · 44m
there's so many video players that just cover the entire screen with UI elements so you can't see the video. i swear there's gotta be some "this is actually the point, the point was never to show you videos" business analysis to this whole thing, but it eludes me
000
Jenna JJ Q. @tomatofacts3.bsky.social · 11h
looking for a fan and they all advertise how quiet they are .... i don't want a quiet fan! the secondary purpose of a fan is to drown out noise!
140
Jenna JJ Q. @tomatofacts3.bsky.social · 10/10/2026
i think claude finished the task i set it and then it immediately killed its own box by running the big test suite instead of the small test suite. i guess i know who's skill is issued now
000
Jenna JJ Q. @tomatofacts3.bsky.social · 10/10/2026
like butterfree is a butterfly, beedrill is a bee. a buncha pokemon are birds and whatnot. but i don't think i would have got pikachu=mouse
120
Jenna JJ Q. @tomatofacts3.bsky.social · 10/10/2026
i don't think it would have ever occurred to me that pikachu was meant to be a mouse if i wasn't told that
120
Jenna JJ Q. @tomatofacts3.bsky.social · 10/10/2026
got claude to generate some nice documentation somehow. it turns out that "LLM voice" was actually just a skill issue on everybody else's part
110
Reposted by Jenna JJ Q.
Jenna JJ Q. @tomatofacts3.bsky.social · 08/09/2026
cant believe openai has proved the polynomial hierarchy collapses to the 37th level
002
Jenna JJ Q. @tomatofacts3.bsky.social · 06/10/2026
i used to meet people who use my software and they'd have interesting feedback about it & that was cool. today i meet people who have agents use my software and they don't have anything interesting to say about it
1121
Jenna JJ Q. @tomatofacts3.bsky.social · 03/10/2026
update: tried this on my shower at home, and it does work, though not quite as well
010
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
for user-defined types, you can implement the Deref trait, but Deref is safe, and dereferencing a NonNull would be unsafe. And there's no UnsafeDeref or equivalent (maybe there should be)
000
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
I think it's because there's not really any good way to implement it, at least not without a new language feature or by making NonNull a "special" type recognized by the compiler
100
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
i was invited to submit my paper to an agriculture journal and i suspect it's purely because the name of one of my research projects is plant-themed
010
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
in my project I genuinely have test cases *just* to test the variance + various marker traits of my unsafe types, just because it's so difficult to otherwise know that i managed to get it all correct
040
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
even though Box<T> obviously mutates through its pointer. In general, const/mut ptrs have nothing to do with constness or mutness, the only reason to pick one or the other is to get the right variance
130
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
The entire logic seems to be that &T is covariant and &mut T is invariant; and *const T corresponds to &T and *mut T corresponds to &mut T so they have the same variances. But this leads to situations like Box<T> using *const T under the hood since it needs to be covariant
141
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
There's no principled reason for *const T to be covariant and *mut T to be invariant; neither type carries any type invariant that T exists in memory. They could be *bivariant* and it'd be fine!
120
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
It's like the Send/Sync situation but worse, since there isn't even an unsafe way to expand the variance. The ONLY way to configure the variance for your type is in selecting the types of the fields, so you have to play type tetris to get the desired constraints, possibly with PhantomData
140
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
do you want to hear another rant
110
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
sorry to get off topic a bit. BUT. It is in fact idiomatic to unsafe impl Send a struct that has pointers in it, if that struct is meant to be sent. (This is how Arc is implemented for example.)
120
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
That it's not easy to restrict the Send/Syncness of a type is also a design flaw.
010
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
That is, by writing 'unsafe', I'm actually opting out of some of the restrictions that Rust applies to my code, many of which I was probably actually relying on. Thus making me write 'unsafe' to opt out of checks when it's fundamentally unnecessary to begin with is bad design
020
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
A changes and suddenly A isn't Send anymore. Normally I would rely on the auto trait system to catch any problems. But X is still going to be Send.
110
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
the concept of 'unsafe' loses its value if it's applied to too many things that don't need it. imagine for example `struct X { a: A, ptr: *mut u64 }` or something. Now suppose I want to Send it. Oh no, the pointer prevents it from being Send, now I have to unsafely mark X as Send. But then suppose
110
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
passing the pointer to another thread be treated differently, when that operation by itself has no safety requirements?
120
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
<sorry for the rant you, but hit one of my pet peeves about Rust> I don't really believe in something being "more unsafe". Things are either unsafe or they aren't. There are an infinite number of things you can do with a pointer that makes it difficult to uphold their safety conditions. Why should
110
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
actually my Hot Take is that raw pointers should be unconditionally Send
220
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
IMO it's fine to make it Send as long as it's still the case that any problematic behavior requires you to do an unsafe operation
010
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
mutating through the pointers is unsafe, though? (I'm assuming you mean raw pointers)
210
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
could you do 'unsafe impl Send for BlockList'?
210
Jenna JJ Q. @tomatofacts3.bsky.social · 02/10/2026
ai sucksss
020
Jenna JJ Q. @tomatofacts3.bsky.social · 01/10/2026
it's genuinely impressive how many people think we need bespoke pdf reader web apps
130
Jenna JJ Q. @tomatofacts3.bsky.social · 30/09/2026
It's not just a test framework—it's a means to keep the codebase honest. This test harness sets the thread count to 4: that's how we know it will run fast. Without this, the test harness would have to run without parallelism.
090
Jenna JJ Q. @tomatofacts3.bsky.social · 30/09/2026
i wonder if this works on all tubs or just this hotel's
010
Jenna JJ Q. @tomatofacts3.bsky.social · 30/09/2026
i accidentally discovered if i turn on the shower, put my head against the bathtub, and put my fingers in my ears, it sounds like there is running water in my head
121
Jenna JJ Q. @tomatofacts3.bsky.social · 29/09/2026
"i don't need these arguments because -" no, you do!!! that's why they're there!!!
040
Jenna JJ Q. @tomatofacts3.bsky.social · 29/09/2026
ive been frustrated lately cause of agents that think they know better than the spec
230
Jenna JJ Q. @tomatofacts3.bsky.social · 28/09/2026
there should be prediction markets for whether a flight will be cancelled
000
Jenna JJ Q. @tomatofacts3.bsky.social · 27/09/2026
so much rain right now
000
Jenna JJ Q. @tomatofacts3.bsky.social · 27/09/2026
they look too warm and friendly
110
Jenna JJ Q. @tomatofacts3.bsky.social · 26/09/2026
the founding fathers were wise to put washington dc on the opposite side of the country from hollywood. we should have kept them apart
000
Jenna JJ Q. @tomatofacts3.bsky.social · 26/09/2026
i feel like i'm explaining the same things over and over again. the corpo keeps finding new places to pull out gaggles of stakeholders who need basic information
010
Jenna JJ Q. @tomatofacts3.bsky.social · 26/09/2026
i think twilight but it's cold mermaid girls instead of sparkly vampire guys could have the sauce
130
Jenna JJ Q. @tomatofacts3.bsky.social · 25/09/2026
to be clear, the PR was mine, the review was AI-written
010
Jenna JJ Q. @tomatofacts3.bsky.social · 25/09/2026
today i got a "code review" from a coworker that was like 1000 words of LLM slop that he clearly hadn't read. and it ALL sounded like this. i am going to kill myself
140
Jenna JJ Q. @tomatofacts3.bsky.social · 25/09/2026
i should get a monocle
120
Jenna JJ Q. @tomatofacts3.bsky.social · 24/09/2026
always in writing you need to consider the mindset of your audience ... llm docs always assume a particularly weird mindset going in
030
Jenna JJ Q. @tomatofacts3.bsky.social · 24/09/2026
look, it is sometimes appropriate to document the "why not?" but the correct form is something like: "It may be tempting to do Y, because <reason>, but this isn't a good idea because <reason>"
130
Jenna JJ Q. @tomatofacts3.bsky.social · 24/09/2026
llms love to write like "X is the point: don't Y because Z" where X is an incidental design detail, and Y is an alternate design that nobody would ever wonder about or be concerned with
230
Jenna JJ Q. @tomatofacts3.bsky.social · 23/09/2026
that's why they require a higher weirdness index!
010
Jenna JJ Q. @tomatofacts3.bsky.social · 22/09/2026
the problem with this definition is that I don't really feel that "but" is commutative
130