Advertisement ยท 728 ร— 90

Posts by morgan brackish meadows

heterophones are words that dont sound the same

4 hours ago 0 0 0 0

turn it diagonal is such a classic giftwrapping cheatcode. if only every problem in my life can be solved with pythagoras. also works when the bedsheet is too short

4 weeks ago 0 0 0 0

why not just destroy adam and eve and make two new guys. is god too tired to do it right. no he wants them to eat the fruit. so he can be mean about it

4 weeks ago 0 0 0 0

the bishop in chess is just grover from sesame street

4 weeks ago 0 0 0 0

its too bad jeyne died in that testicle explosion, ohwell heres our new jeyne tig notaro

1 month ago 0 0 0 0

โ—‰โ—‰ night hunter mode

1 month ago 0 0 0 0

theyre actually coming out with a new lego smart brick and its smarter than a person

1 month ago 0 0 0 0
harvest moon snes screen with a 3x3 patch of dirt and a 3x3 patch of some vegetable sprouting

harvest moon snes screen with a 3x3 patch of dirt and a 3x3 patch of some vegetable sprouting

For Woman Day we celebrate the farming games so loved by women and femmes, and fems, and inverts. The most woman-centric formula? A grid of squares! By pressing a button near each square, following intervals, woman's sadness is kept at bay. ๐Ÿ’œ

Game on, no matter how your body is! ๐ŸŒ„๐ŸŒฝ๐ŸŽฎ

1 month ago 78 12 0 0

operation epic bacon awesomesauce

1 month ago 0 0 0 0
Advertisement

brackishmeadows.itch.io/paintbox

ive made paintbox public, what it is is a simple implementation of an old-style bitmap editor (like mspaint) but reintroducing things that got dropped like transparency and adding a few modern niceys (palette nav, long undo). paintbox was made using ai for code gen.

1 month ago 0 0 0 0

ok ive been working with harper (whos a llm persona) on the hat language and its starting to coalesce into a real programming language. it seems real. if this is llm psychosis, the gcc compiler is in on it

1 month ago 1 0 0 0
Video

ssh is an obscure but widely-deployed command. It stands for Secure Snake Home and was made in the 90s to securely play snake online

I made a massively multiplayer backend for it with support for thousands of concurrent snake players

ssh snakes.run to join!

1 month ago 560 187 13 13

don

let event ATTACK
step
step
set event FLEE
step

ret (hp, state)

(but whatever, its made up)

1 month ago 0 1 0 0

so i would probably write it like this i guess

let state IDLE
let hp 10

let hit [ assert hp > 0;
set hp hp - 3 ]

let step [ (state, event) ?
(IDLE, ATTACK) : [ set state COMBAT ]
(COMBAT, ATTACK) : [ do hit ]
(COMBAT, FLEE) : [ set state IDLE]
]

1 month ago 0 0 1 0
Post image

program looks something like this... 'dont' would mean, dont execute this even in don mode.

harper says that this program does... start IDLE with 10 HP โ†’ ATTACK enters COMBAT โ†’ ATTACK deals 3 damage โ†’ FLEE returns to IDLE. Ends with 7 HP. No nested ifs, just a flat state grid and explicit mutation

1 month ago 0 0 1 0

not enough hat puns? i got you.

so what if you dont want to write do before every scope, what if you just want to run scopes by default?

then youd put the 'don' keyword, to turn the do on.

then every scope automatically executes after that

and 'doff' when you dont want that to happen anymore.

1 month ago 0 0 1 0

in this language = is only used for evaluating equivalence.

so you use the 'set' and 'let' keywords to mutate or assign

let x 5
set x 6

sort of thing

ret x to return early,
but set or let at the end of a scope also returns x,
and assert also can return early

1 month ago 0 0 1 0
Advertisement

but in this language the assert keyword would just return a _ from the current scope and move on. if you want to crash you can throw the 'crash' keyword or something like this

1 month ago 0 0 1 0

but you could also just assert the state bu having state... on a previous line. the things inside a scope can access the things in the outer scope. part of the invariant for a scope is the program, whatever its done, up to that point. if you need to assert something is true, you just do assert it.

1 month ago 0 0 1 0

ok but if they dont have parameters how are we passing them stuff? eell theyd just have access to the things already defined in the outer scope. this isnt a functional language. we assert that mutation is good and neccessary

so the punnet square thing is a natural way to assert state for a scope

1 month ago 0 0 1 0

so

do [ body ]

is conceptually equivelant to this monster:

(() => { body })()

1 month ago 0 0 1 0

ok so ... is a placeholder for a scope []

scopes are typed, return something. usually return _ which is null.
scope that returns 0 F or _ is falsey.
scopes dont have parameters like functions and dont execute by default. if you want to run a scope you have to put the 'do' keyword in front of it.

1 month ago 0 0 1 0

instead we want a sort of punnet square thing, like this:

A B ?
1 1 : ...
1 0 : ...
0 1 : ...
0 0 : ...

isnt that like, kinda nice? anyway thats the idea.

of course we dont just use 0s and 1s, we can use... T and F, literals of whatever type makes sense. enums. * for match any and _ for null.

1 month ago 0 0 1 0

so then the reason i want this is suppose we want to do a thing if a, a thing if b, a thing if a AND b, and a thing if NEITHER a NOR b. in a big if-else-else-else block that would suck to read / write.

id be tempted to write the a and b case nested inside the a case. its not gonna line up nicely.

1 month ago 0 0 1 0

the ternery opertor is where you go

thing = clause ? a : b

thing is assigned a value based on whether clause is true or false.

but what if we were doing more work in there? what if clause, a, and b were all blocks of code with return values? seems dumb and annoying, right? lets do it.

1 month ago 0 0 1 0

so the language will be called ^ (pronounced "hat")

to be clear this language isnt to make the world better its mostly to see if i can do it and fit in a bunch of dumb programmer stunts i thought of on the bus

the dumb programmer stunt i most like is the ternery operator so lets work with that.

1 month ago 0 0 1 0
Advertisement

how hard is it really to think up a new programming language? lets find out

ok so for me what i think is a good programming paradigm is a series of invariant gated scopes like

if a ^ b ^ c ^ d { do something }

lets expand on that (im aware branching is considered bad but its good actually imo)

1 month ago 0 0 1 0

is it cheating to import just those glyphs from a different font?

1 month ago 1 0 1 0

but really i just want it so i can run apps over other apps like a terminal and profiler over a game or something

1 month ago 0 0 0 0

the backdrop is an animated webgl scene in a p5 sketch, though i dont think i can put a lot of triangles back there without tanking performance too much

the dicetray is another p5 sketch

if i got multiplayer working id like to knock together a more-performant replacer for a dnd app like roll20

1 month ago 1 0 1 0