mleku
mleku@smesh.lol
npub1fjqq...leku
nostrpunk; anti-nostrestablishment. here to build the tools for freedom from mind control.
## CSP laws and element correspondences
- metal. precise interfaces, clean keys. every interaction between peers requires independent bidirectional channels. simplex+lock is strictly more complex and introduces deadlock.
- backpressure by buffer - water. contested claims resolve by flow. backpressure is expressed by buffer state, not by blocking the sender. neither side should be able to freeze the other.
- state ownership - earth. territorial sovereignty. state ownership stays with the longer-lived party. short-lived workers get copies, not originals. death of a worker is reported, not hidden or auto-recovered.
- trust scaling - wood. bilateral incremental growth. trust scales through small synchronous exchanges, not through large upfront commitments gated by third parties. daily before weekly. oxytocin before escrow.
- sovereignty precondition - fire. you can't measure or price what isn't sov
omg. this last week i have had hayfever real bad.
i'm pretty sure it's from the pollen coming off the wheat that is getting close to maturity all around me.
the shit causes me shit if i eat it, and it turns out, being around it, red itchy eyes, sore throat, wheezing. it's not like my usual allergic reaction. feels like even something in the air is getting on my skin and making me itchy as well.
it came to my attention just now that Steve Albini died in 2024.
Some may have heard of an album he recorded - Pixies - Surfer Rosa
RIP steve, you are still the emperor of cats, and you will shit outside whenever you want.
just updated h264cam.apk to have proper day and night mode. day mode is high shutter speed that captures precise, blur-free images that are perfect for mugshots and reading small text like license plates.
night mode is just about actually catching movement with enough detail to recognise what it was. probably want to maybe later make a dusk mode with automatic exposure and a switcher that automatically turns to dusk mode as the light changes and then once it's fully past sundown, switch to night mode. but for now i just manually toggle it at sundown. or not. haha.
anyway, it's there. the capture pipeline already exists and should correctly condense the video recordings down to only when there is substantial movement (a person or larger moving through the scene), which runs every 10 minutes after the ffmpeg capture cuts a recording and starts a new one. no gaps between, and this should basically be something you can set up a camera easily and it could be a cheap ip wifi cam with solar panel, and it will automatically keep the highlights for you, practical for a minimum budget surveillance system.
ipcam
just for funsies, and based on a shitty "demo" app that just uses standard android RTSP streaming and camera interfaces, i'm about to build and release a simple IP camera streaming app for android.
you're welcome.
fun adventures in Go archaeology today. today i learned what a mess Go's type system actually is. fmt and strconv libraries are hidden everywhere. the claims that Go is a strictly typed language is a fairly false statement. it's moderately strictly typed, and then under the floorboards is all these nasty worms and creepy crawlies inside reflect and the empty interface.
in moxie, there is no empty interface. there is no reflect. everything has to be visible at the level of the code, or not exist.
so this afternoon's fun is building a proper strict type handling system. all builtin types have stringers (String() string methods) and the strconv librarie for reading values in has to have all types that are expected up front in the code or it can't work. because there is no empty interface, and we can't dynamically create variables without reflect. and even if we could, this totally breaks the contract of what "strict typed language" should mean anyway. fun fun fun.
gonna be worth it because this will end up shaving shitloads of time off about 90% of the code emitted by the compiler. the most fun part is the code generators. it means that the only way to make codecs in moxie is to write a proper code generator that accepts a type specification and generates the type. this can be mostly done inside the compiler. for foreign concepts like the unions present in json and protobuf and other protocol languages, there has to be a codegen made for them. i will do that later.
moxie will make the gulf between it and many other languages even wider. but fuck those other languages. it's a violation of reason, in my view, to talk about dynamic types as though you can impute a type and then handle that cheaply. no, that is expensive, and so it should be a lot more code to express it.
last steps in the work on the #moxie bootstrap, #claude is at 13h43m continuous work. it's fixed many dozens of bugs, fully integrated new compilation pragmas, corrected flaws in the modified language protocols that diverge from #Go, and probably uncovered underlying errors inherited from #TinyGo that have been little landmines sitting inside the code and inherited into the moxie translation also probably messily.
no idea how much longer it needs to work but i'm pretty sure i'm into the last day and a bit by now.