Tom

Tom

@contextfree.bsky.social

I make videos about computer programming at https://youtube.com/@contextfree - he/him - God is good. Black lives matter.

187 followers145 following175 posts

Tom reposted

Software is as diverse as the users are. For some software reading the code and modifying it IS part of the UX. Because the user is a programmer. For such software clarity and simplicity of the code is crucial because it's the UI. Good example are TempleOS and st but there's more

I'm starting to bias toward making my rp2350 operating system open source along with my compiler for it. The compiler source is already public. Might keep some apps closed source, though. And all funny, since it would be a miracle for me to get any of it done enough to be worth anything.

Tom reposted

I'm currently on a detour from Rosemary Peaks and I am working on two games for PICO32: The Lost Pages. I'm incredibly happy to be working with my favorite people from the #pico8 scene and I am starstruck 90% of the time. The collection is going to release November 31st for FREE #gamedev #pico32

store.steampowered.comPico32: The Lost Pages on SteamA magical book appears in the woods, transported somehow from another dimension. Pico32: The Lost Pages is packed cover-to-cover with 32 creative games spanning every genre. Its chapters recall the hi...

If I ever get my OS done, one key feature is NO UPDATE NOTIFICATIONS EVER. You presumably could still manually visit the site for updates if you want. And even though I like wifi auto backup, maybe it's better just to have no wifi, so you know your system is what you touch to it.

Occurred to me that optimizing locals into global space for recursionless functions might be the same thing as optimizing memory layout for stackless coroutines. I don't think I want to do either at the moment though.

Maybe compiler support memory can overlap the end of the global data buffer so I can allocate zero-init globals/arrays in that space to reuse it at runtime. Means there's a smaller global space for non-zero values. Or maybe "include file as byte array" can also be slotted in the reused space.

I wish new Commodore would release a C256 at 256 MHz, 256 MB ram, and full raster 256 color graphics. In the size of a normal sized keyboard instead of huge sized. Could use the same cpu instruction set. And overall similar user experience would be fine, too. Could include C64 compatibility.

Starting to feel like modern computers (and phones) are just appliances I have to use and that tiny spec or retro computers the actual things I choose to engage with.

Considering trying out a text mode for 640x360 text editing, which would give 106x40 chars on my current font design vs 53x20 chars on my already working 320x180 raster. (Main issue for raster size is RAM usage.)

Spending some time with the Fruit Jam makes me think of computers as physical devices rather than just varied specs for accessing common software/internet/system experiences. Well, at least a computer like the Fruit Jam *can* feel like its own thing.

I guess like old BASIC computers were real hardware under the facade. You weren't buying the BASIC as much as you were buying the computer itself.

Quick rp2350 speed summary from *simple* loops: Lua's about 3-4x slower than unoptimized C. MicroPython's more like 30x slower. MicroPython viper can get ints to like 50% slower than unoptimized C but can't handle floats. Unoptimized C on rp2350 is about the same speed as Python interpreter on rpi4.

Tom reposted

This is a pretty cool experiment from a friend of mine. Some features of the language: - WASM/JS backends - lots of types, everywhere - time travel debugger - tree walking interpreter - Perceus RC over GC - it is fast - ocaml built - algebraic types It feels like Elixir/Erlang and OCaml

320x240 can't scale integer fully to either dimension of the most common 1080p monitor resolution, which is sad. 320x180 scales perfectly on both axes, though. Also to 720p (which 240 also does).

Inline skated over 6 1/2 miles on Saturday. And today I managed to get up and down the bridge over the train tracks (turning around at the top) without killing myself or anyone else. I'm still feeling very sloppy, but maybe making some progress.

PICO-8 might be *too* restrictive sometimes for my taste, but I'm glad it teaches code size part of the budget. Especially for hobby things, using whatever tech, I'm try to think that if something will end up as too much code (or takes me too much time to work through), maybe I need a simpler plan.

Maybe I'm just getting old, but I'm getting tired of UIs that cram interactivity into every nook and cranny. Sometimes I feel like there's no safe place to rest my cursor.

Years ago, I enjoyed reading VSCode release notes. Now it's just AI stuff I don't care about at all. And I mostly wish they'd stop making other changes, too, unless they're making things faster or fixing bugs.

By the time they stop making Raspberry Pi 400 (as early as 2028?), I hope RAM prices have come down or else they start selling an RPi 500 with half the RAM. Maybe an RPi 50 or something???

Dev platform I'm trying out: - 4gb RPi4 (effectively RPi 400) - No web browsers but still network access - No games - Lua/Love2D - LMMS and Audacity - LibreSprite and others - VSCodium and Lua Language Server - Terminal, Git, etc. Really not half bad. Losing web browsers is a super power for focus.

I think any home robots *shouldn't* have wireless networking. Data transfer should require a physical connection on the robot's body where it can't actually reach on its own.

Keyboards are such awesome tech that we easily take for granted. Nice that we could inherit the idea from earlier mechanical typewriter tech.

People often complain that current AI is just statistical predictions rather than real thinking. Thing is that more logical forms of AI have also been tried and haven't done as well, because the world is a messy place.

Current AI clearly lacks some human qualities, but infallibility isn't one of them. AI is very fallible, yes, but so are people. AI claims confidence in wrong claims, but so do people.

I don't know what's the future, and AI causes problems for sure. I don't know if AI will ever be able to think like people. I'm not even sure what that is. But we also shouldn't get too full of our own greatness or imaginary thinking powers.

Tom reposted

okay - approximately how unhinged is this workaround for not being able to call default interface member implementations without a cast in C#?

For example, in Python: >>> { ... 0: "0", ... 0.0: "0.0", ... -0.0: "-0.0", ... False: "False", ... } ... {0: 'False'}

Temper Programming Language@temper.bsky.social

Why a new language anyway? temperlang.dev/blog/2026/01... Each heterogeneous collection is heterogeneous in its own way, Anna Karenina style. Porting is not the same as translating. Semantic tarpits suck. Semantic consistency means Temper developers can support users of languages they don't know

This has been my day job for the past few years. Super excited to share it!

Temper Programming Language@temper.bsky.social

Happy New Year! Happy New Programming Language! Temper translates to all the other languages. Write a library, each other language community gets a library. We've recently open-sourced the compiler, CLI tools, and IDE plugins. temperlang.dev && github.com/temperlang/temper youtu.be/c8CVoKeUDdQ

Started a new side project in Go. First time I've tried using the language seriously. Some things I like and some things I don't. And vaguely related, thinking that wide low res map grid screens should be 240x128.

Are there are any memory safe, reference counting languages that have a tiny implementation and compile directly to wasm? I'd like to think I know a good answer to this, but I'm unsure.