David Konsumer
konsumer.bsky.social
David Konsumer
@konsumer.bsky.social
NERD (game-dev, open-source, musician, train-enthusiast)
he/him
It's back up! Still getting fake legalish threatening emails from Nick Ashton (charlatan, who stole sbagen open-source and resells it for $200 a piece.)
November 21, 2025 at 9:21 AM
And Cotterzz is this person, always working on cool stuff! bsky.app/profile/cott...
October 28, 2025 at 11:24 PM
the audio-demo is a glsl-based "audio shader" that actually works with this, which is a really nice composition: gist.github.com/konsumer/43a...
October 28, 2025 at 11:22 PM
recur is this cool pi-based device for live-performance, and I wanted to make a web-based editor, so you can try out shaders with videos & knob-params.
GitHub - cyberboy666/r_e_c_u_r: an open diy py/pi based video sampler
an open diy py/pi based video sampler. Contribute to cyberboy666/r_e_c_u_r development by creating an account on GitHub.
github.com
October 28, 2025 at 11:18 PM
Looks like it got silently taken down. So annoying! They went after anyone that publicly shared the connection between their open-source theft (of sbagen.) so shady. github.com/search?q=rep...
October 26, 2025 at 9:17 AM
C has that problem, too. Floats are weird.
October 26, 2025 at 9:03 AM
yep, or even just like files. Regardless of language, you can't put complex objects directly in a file, and get it back, without serialization, in every case.
October 26, 2025 at 6:51 AM
it also seems a bit funny to be like "because js doesn't have types" but the truth is it's the opposite prob, here. Only 1 type is allowed for localstorage, not "whatever you want"
October 26, 2025 at 5:55 AM
it's worse passing things over webworker-boundry. some things work, but a lot don't (I tend to just do JSON-able + typed-arrays)
October 26, 2025 at 5:52 AM
it solves a much bigger problem, like if you really allow anything, there are still lots of things that don't work (imagine storing unresolvable pointers to disk, in C, for example.) it's easy to think it's all about "js sucks" but I don't think it's the worse solution possible.
October 26, 2025 at 5:50 AM
the first one's answer is "it was simpler for casual users, and stuck" and the answer to 2nd is "localstorage can't efficiently or appropriately store everything, so they just went with the easiest"
October 26, 2025 at 5:46 AM
like it's really 2 complaints: "why does js coerce non-strings into string?" and "why doesn't localstorage only store strings?"
October 26, 2025 at 5:46 AM
being mad about it (and you have every right to, obviously) makes me feel like "why can't I just get a complex object from a fetch or a file-read?" I mean you can, you just have to serialize/deserialze (with JSON or whatever.)
October 26, 2025 at 5:42 AM
numbers-for-object-keys too, like thing[1] is really thing['1'], so if you ask for thing[1] it still works, because it coerces it both times to string.
October 26, 2025 at 5:40 AM
much like keys of an object like thing[some-complex-object] it will just coerce to string ([object Object]) it gets even weirder when things are inconsistant, though, like passing types across web-worker boundary. some things are cool, but others are not.
October 26, 2025 at 5:37 AM
There are quite a few other ways to store stuff on web if you hate it, but yes localstorage is strings-only. It has to do with consistency (cookies are also string-only) and there is already a pretty standard serialization format that works well, if you need more types (JSON.)
October 26, 2025 at 5:35 AM
There have been lots of things like meshtastic for a while, but this works easily over anything, not just lora. I have a radio (about $15) hooked to my computer, which connects that to a much wider TCP/IP connection (over the internet.) I get a range of around 5 miles, on very cheap devices.
September 24, 2025 at 10:20 PM
The key differentiator of reticulum and other similar things, in my mind, is that the address is your key, so "if you can open it, it's yours" but no physical addresses or anything like that, and also no sender-info, unless you can read it.
September 24, 2025 at 10:04 PM
This gives us basic access to reticulum in javascript. Also check out demo/interfaces/WebsocketClientInterface.py which is an interface you can use in any reticulum client to connect over websockets. My next goal is filling in this library's functionality and making a complete web demo.
GitHub - konsumer/nomadnet-js: Nomadnet library for JS
Nomadnet library for JS. Contribute to konsumer/nomadnet-js development by creating an account on GitHub.
github.com
September 24, 2025 at 9:52 PM
I got my own rudimentary Interface transport for websockets, in the hope of being able to make browser-only clients. I don't think it's quite working right, but tests look good. github.com/konsumer/ret...
September 14, 2025 at 3:35 AM
There are a bunch of test interfaces, so you can connect to a big net of nodes, but you can run your own, too. Totally P2P, and decentralized, doesn't even need internet. I can setup some cheap lora things to participate in the network. It also has dynamic pages (basically a shell-script.)
Micron Playground
rfnexus.github.io
September 13, 2025 at 8:17 PM
For those unfamiliar, you setup "interfaces" on each node which are entry-points to sub-networks over internet or lora (or other things.) Using these, you can connect a bunch of nodes in a mesh. It also has a kind of lofi-web: fe6cb7cebb0b91de51ab716a324ddb27:/page/index.mu
September 13, 2025 at 8:02 PM