i am so into my wife, dude

idk how to write it. i'm not a poet, i was raised by a writer but words don't come easily to me so when i feel these feelings, all i come up with is stuff like "she's so fucking hot" which is true but also shallow.

it's like...

every texture of her body is built to electrify me. each line, each curve, each shadow pulls me in. i feel suffocated by her, like she enters the room and my lungs fill with cotton. i want every square inch of her body in my mouth at once. i see her and it makes me lose my train of thought, i can't focus on anything else. i want to be enveloped by her, smothered and wrapped up and ensconced. i try to alight on a solid fantasy but they merge and meld and flow into the next too fast to hold for more than a moment.

Continue reading →

they cut down the playground trees

if you are part of any decision making process that forbids trees and/or grass from playgrounds, i hope you fucking [violates facebook community standards]

if you are part of any litigation against owners of playgrounds related to the presence of trees at a playground (a kid got hurt climbing a tree etc), i hope you fucking [violates facebook community standards]

if you think that barren playgrounds, fully exposed to the sun and covered in heat absorbing plastic, are enjoyable for children, i hope you fucking [violates facebook community standards]

Continue reading →

only through repetition do we grow

you know those cooking shows where they travel to some remote countryside place and interview a woman who's been making a certain bread for 50 years and is now old and frail but she's still got it, by god.

and they're like "what's your secret?" and she's like "i've been making this bread every day for fifty years" and they're like "there you have it, folks, the secret is the kind of flour she uses."


consequences

wife: i'm putting this away because you keep doing what i've asked you to not do. your actions have consequences, [daughter].

4 year old: no! they! don't!!!!!!


splint v1.15.0 - custom rules support!

I've been sitting on this release for a little while now, trying to find the right way to approach to supporting custom rules.

The way the rules work currently, when a file with defrule is evaluated, the defrule macro adds the generated rule to a global atom. This simplifies a lot of stuff in the codebase, and makes adding new rules to splint pretty easy: make a new file, require it in the entrypoint for the library. However, users can't access that entrypoint from the cli, and while I've not exactly hidden the code, I don't think people should have to write their own entrypoint wrappers merely to include their own rules.

Inspired by RuboCop YET AGAIN, I've added a new option, settable in the config file or by passing the relevant flag at the cli, to call load-file on a given set of files which will presumably call their custom defrule invocations. Because I'm relying on Clojure's built-in behavior, there is no extra code necessary for me to parse or validate the paths myself; I pass them to load-file in a loop and print any exceptions that are thrown.

Continue reading →

open source maintenance

i am the maintainer of the vim syntax highlighting file for just, vim-just, and while i did the heavy lifting to write up the initial version back in 2021, i haven't cared much about keeping up with the latest changes and have let others make changes as they do.

last year, someone offered to help out so i added them to the repo. i suspect it's their first time being a "contributor" on an open source project cuz they've spent the last year absolutely dedicated to the task of improving both the syntax highlighting and the bespoke syntax test runner we have that's written in rust. the project isn't that exciting and doesn't require that much effort but they've stayed up to date (to the day) of new syntaxes added to just and have been poking and prodding the test runner to make it faster and more idiomatic, including writing their own custom version of vim's built-in :ToHtml as it was removed in neovim. today, they mentioned "but we don't want code like this in production" which cracked me up because there's no "production" to be had here! doesn't matter, they give a shit and so i give a shit with them.

there's no real point here, it's just fun to see someone really dive in and own something. i know open source maintenance is a touchy subject after the xz/liblzma stuff, but i still think it's worthwhile to give people a chance to make their mark and spend their effort on cool things.


miscarriage

my wife is experiencing a miscarriage right now. all either of us can do when we're alone together is hug and cry.

be at peace, baby, and be gone


deeper well

i know it's still early in the year, but deeper well by kacey musgraves is an early contender for album of the year. it's so pleasant with a nice mix of poignant songs.


smelly hospital

4 y/o: it's sticky in the hospital
me: oh yeah? is it your breath in the mask?
her: no, i farted


Mental Math Pseudo Random Number Generation

> given a large prime p, a multiplier m, and a seed number x_0, a Lehmer PRNG can be defined by the recursive function x_{n+1} = m \cdot x_n \mod p.

> One pair choice is p=59, m=6. Because 60 \equiv 1 \mod 59, each iteration is a simple matter of multiplying the ones digit by 6 and adding the tens digit. To illustrate, a sequence starting from 17 would continue 43, 22, 14, 25, 32, 15, 31, 9, 54, 29, ..., and taking just the unit's digit, that turns into 3, 2, 4, 5, 2, 5, 1, 9, 4, 9, which looks pretty random.

> Next up is p=101, m=50. Because p=101, this construction has the advantage that the sequence goes from 1 to 100, making the distribution of the output stream uniform over 1 to 10 and providing a longer period. The choice of multiplier also simplifies computation: if the current state x_i is even, the next number x_{i+1} = 101 - \frac{2}, and if odd, x_{i+1} = 50 - \frac{2}. Not as nice as the previous example, but still not bad.

Continue reading →

try, try again

4 y/o: papa, can we get [toy on tv]?
Me: No.
4 y/o: momma, don’t listen to papa. Can we get [toy on tv]?


handsome hunky

my wife May: are you a pretty boy? yes yes
2 y/o: no, i hanome hucky
her: you're a handsome hunky?
him: yeah!!!!!!


Happy day in our house: Wish has come to Disney+

4 year old girl with brown hair faces a tv playing Wish wearing an oversized Asha’s purple dress


I picked up Going Under again, a good little podcast game

Going Under Review

NoahTheDuke

reviewed Going Under

★★★★★
★★★★★

Completed

on

Nintendo Switch

I cranked up the accessibility features cuz I already put 20 hours in and never got close to finishing it, and I certainly haven’t gotten better in the intervening years lol.

This game is pretty good. Cute writing, fairly obvious and funny commentary on start ups and VC culture. The “corporate art” style is killer, imo. Really pops, gives everything a sense of place. The soundtrack is a lot of fun too.

I’m playing on the Switch and I must say that it’s fairly choppy/framey. Not unsurprising given the hardware’s age, but it still struggles to show a fight with a handful of enemies and some fire effects without stuttering.

Reviewed on Apr 03, 2024

made with @nex3's Backloggd formatter

Taken from stimslack

Jnet chat, both players say gg. P2 says “i have some instructions for you. do you own a shovel?” P1: “i do not” P2: “well, bare hands are fine. go to your yard. dig a deep hole. put this in there, for the good of the game.”


My 2 y/o was STRESSED last night

Things he shouted out at various points of his sleep:


jnet PR: costs

https://github.com/mtgred/netrunner/pull/7346

this shit is another hefty one. i rewrote the primary data structure for costs. will be much simpler to track costs, add modifiers later, keep normal and additional costs distinct, and intelligently handle stealth costs.

once this is done, i'm gonna implement system-wide additional cost checking, allowing you to reject paying for any and all additional costs.

Continue reading →

Legal meth

It’s weird to use adderall/vyvanse/mixed methamphetamine salts and see immediate results. I’ve been without my drugs for a month due to the shortage but found my stash of old prescription that was too high, and decided to start taking it because I really like being productive.

Turns out, when I take medication, I’m really fucking productive! That’s annoying! Why can’t I just be productive like this normally?

Anyway, I stayed up until nearly 1 am last night working on jnet so at least it wasn’t purely for my job’s benefit.


Ruminations on technical debt in jnet (sent from my iPhone)

<jinteki.net> has a lot of problems, some which are easy to solve and some which are not. There’s a difference between bugs and tech debt. Bugs are things like “misplaced parameters”, or “forgot to check an additional predicate”. Technical debt is “the core system is built on callbacks” or “there is no game loop”.

I had a wonderful conversation with someone who is attempting to implement the Netrunner rules as strictly as possible. (She’s gone so far as to implement Netrunner’s R&D location system instead of using a simple vector!) In our many back and forths, I am confident she learned nothing from me lol but I learned a lot from her, both about Netrunner and about how to structure a game engine for Netrunner.

jinteki.net is not a good game engine. It works, in part due to the incredible amount of work we’ve all put in over the years, but (to be slightly rude) it has no right to work as well as it should. It’s full of cludges, ad-hoc systems, layers of ideas half implemented on top of each other like dirt strata.

Continue reading →

portrait of kalvin brnine

Edit of The Rock wearing a turtleneck but with edits to give him fish ear and blue skin and eye camera

Palisade 41 is really good



Copyright © 2026 Noah Bogart
Website credits