Holobrine #LookingForWork
holobrine.bsky.social
Holobrine #LookingForWork
@holobrine.bsky.social
Technosocialist. I want to decentralize the cloud and reinvent the browser for web apps.
Behold: A circle!
October 26, 2025 at 4:05 AM
A mere fraction of the turnout, filling a whole bridge over the Willamette river
October 21, 2025 at 5:40 AM
From the source. Still look low budget to you?
September 23, 2025 at 8:18 PM
As this comment explains, the front end naively inserts text into the DOM. I wouldn't blame anyone for assuming that's okay, and the only reason it isn't okay is HTML doesn't have strings and can't tell plaintext from code.
June 17, 2025 at 2:45 AM
May 25, 2025 at 11:53 AM
Couldn't sleep, formulated geometric algebra through tensor algebra instead
May 25, 2025 at 11:53 AM
PSA: If you have GrapheneOS on a WiFi network that registers your device, change this setting
May 6, 2025 at 9:37 PM
For web apps though, you want to separate concerns by feature, as shown here. Every new feature requires additions in all of these areas, and we want to make those changes as efficiently as possible. React took off because it made that easier. Complex web apps got much easier to maintain.
April 30, 2025 at 4:59 AM
It wasn't even a large change, I mostly just had to loop over these lines and revise the functions up the call stack, to the app code which now specifies two rectangles instead of just one.
April 2, 2025 at 8:16 AM
Today's improvement: Discontinuous mesh strips rendering in a single render pass!
April 2, 2025 at 8:16 AM
Thx to the folks who pointed out that the unsafe function I previously had here was unsound! I have now replaced it with bytes_of() from bytemuck.
April 1, 2025 at 1:22 AM
thx for the recommendation, I have added zerocopy as such
March 31, 2025 at 1:43 AM
There is no good way to cast an unknown type to a [u8] in safe Rust, so unsafe it is. But this is literally the only place unsafe Rust is used in the entire code base, so it's not that hard to vet.
March 30, 2025 at 10:17 AM
Another clever bit: The bind() function monomorphizes over T here so the Vecs don't have to. Uniform buffers can have literally anything in them, and I am still able to do the necessary plumbing around that under the hood.
March 30, 2025 at 10:15 AM
This code here is just beautiful. Rust's type system lets me derive a vertex buffer for every struct I declare as a vertex, with a derived layout to boot. To use this with my API, I just have to annotate a struct as a Vertex, and I'm good to go!
March 30, 2025 at 9:38 AM
How could rendering possibly be more complicated than that API? Well, here's the render function on my GPU struct. There are a lot of configurations to set, and all the data needs to be massaged before the GPU can actually use it.
March 30, 2025 at 9:01 AM
Have a look at this code. I have reduced the complexity of wgpu rendering down to a few lines of code with this API. The types are doing all the work, I just have to use them now.
March 30, 2025 at 8:57 AM
I don’t know how anyone thinks copying the other side is a politically winning move, the other side is already there
March 3, 2025 at 10:40 PM
And here's what it looks like if we fade out the parts not operated by Bluesky. This internal complexity is what allows us to host our own PDSes and build our own feeds.
January 23, 2025 at 12:28 AM
How Bluesky works under the hood. Next time you peruse the docs of Atproto, you can keep this visual in your mind to make sense of things.
January 23, 2025 at 12:28 AM
And you can just keep making parsers out of parsers until you end up with something like these, which work together to parse an arbitrarily nested tag syntax.
January 20, 2025 at 12:50 PM
Atproto as a diagram
January 17, 2025 at 9:07 AM
I have drawn a pretty pentagon with wgpu
January 17, 2025 at 3:34 AM
The current state of web dev, approximately
January 8, 2025 at 9:22 AM
Actually it doesn't even have to detect language, posts are already tagged with the language they are in
December 17, 2024 at 10:10 AM