beginnings of a little self-paced flash-card app for learning programming: https://akkartik.name/post/2024-10-26-devlog
A text editor with tabs that live-update as you edit: https://akkartik.name/tabs.html
A silly little toy for browsing 8 little fractal programs: https://merveilles.town/@akkartik/113223478101430311
I've been building a new notebook app. Doesn't actually run any code yet, but take a look: https://akkartik.name/post/2024-09-19-devlog
Beginnings of a little notebook app. Doesn't actually run any code yet. https://akkartik.name/images/20240917-notebook.png
Reflecting after doing something difficult: https://merveilles.town/@akkartik/112831781974687588
A paper notation for kids to learn programming without blowing up short-term memory: https://merveilles.town/@akkartik/112708494215840560
Visualizing the digits of π: https://akkartik.itch.io/carousel/devlog/725703/-
My first app on a new, hopefully convivial platform: https://akkartik.name/post/2024-04-13-devlog
Drawing histograms: https://akkartik.itch.io/carousel/devlog/708682/_
The simplest possible dither: https://akkartik.itch.io/carousel/devlog/706603/_
Merging code on the phone (klunkily): https://akkartik.name/post/2024-03-24-devlog
Gridlines for snap.love: https://akkartik.name/post/2024-03-23-devlog
All the 1-D cellular automata: https://akkartik.itch.io/carousel/devlog/702311/_
A sokoban client for your phone: https://akkartik.name/post/sokoban
A quick and dirty charting library for your computer or phone: https://akkartik.itch.io/carousel/devlog/686788/lots-of-charts
A paper computer inside a silicon computer: https://akkartik.itch.io/carousel/devlog/685707/a-little-programming-game
An equation plotter I can pan and zoom: https://akkartik.itch.io/carousel/devlog/678890/new-version-after-51-days
An equation plotter in 90 lines, written on my phone: https://akkartik.itch.io/carousel/devlog/656473/building-an-equation-plotter
The Lua Carousel productivity suite: 4 apps in 150 lines you can mix&match on your phone. https://akkartik.itch.io/carousel/devlog/653245/_
A voice recorder you can tweak the source code for, right on your Android phone: https://akkartik.itch.io/carousel/devlog/652184/_
Lua Carousel: for creating little programs on desktop and mobile devices. Can be modified as it runs. https://akkartik.itch.io/carousel
Newest app was a nice test of my recent debug infrastructure: https://merveilles.town/@akkartik/111422018573320117
I've been building little custom debug UIs for my programs. Here's a good one: https://merveilles.town/@akkartik/111356122874372588
More easily build/run little LÖVE apps on Android: 1) https://love2d.org from app store 2) https://love2d.org/forums/viewtopic.php?t=94852
Quickly make any app hackable -- as long as it's built in LÖVE. https://forum.malleable.systems/t/adding-malleability-to-any-love-app/90
The most insightful talk I've seen in recent memory: https://archive.org/details/finding-meaning
Hands-on with my Freewheeling Apps: https://youtu.be/aD6vmbmzdBo (demo; 20 minutes)
New talk: "Using computers freely and safely" http://akkartik.name/freewheeling
A little app for drawing graphs: https://git.sr.ht/~akkartik/snap.love
This might be the most mind-bending 20 minutes of my life: https://www.ted.com/talks/donald_hoffman_do_we_see_reality_as_it_is
Managing tests (breaking them, fixing them) in my map for code: https://merveilles.town/@akkartik/109742488349122478
2022: A year of freewheeling apps http://akkartik.name/post/roundup22
A Lua-based markup language: https://codeberg.org/akkartik/luaML.love
Live-coding using LÖVE: https://spectra.video/w/wkDB5fsjBNBbsqKXGhGzwT (video; 5 minutes)
A 4-minute video about my project to replace debuggers with print statements: https://merveilles.town/@akkartik/108895837561334218
My entry for Wheel Reinvention Jam: rethinking debug by print, and therefore source code. https://handmade.network/p/283/bifold-text
Command palette and commands for managing a graph of notes: https://merveilles.town/@akkartik/108766067153506592
Preview of a note-taking app I've been working on: https://archive.org/details/akkartik-pensieve-2022-07-27 (video; 5 mins)
Should I complicate the UI of my app or just say no? Best of both worlds: new app. https://merveilles.town/@akkartik/108580451364837131
I built an editor for plain text where you can also seamlessly insert line drawings. http://akkartik.name/lines.html
Zettelkasten app built in Teliva, a platform for sandboxed, hackable text-mode apps: https://archive.org/details/akkartik-teliva-2022-02-10
Why everyone needs to know some coding: last-mile sandboxing (FOSDEM '22) https://archive.org/details/akkartik-2022-01-16-fosdem
Running untrusted apps more flexibly and simply: https://archive.org/details/akkartik-teliva-2021-12-25 (video; 2 minutes)
Building links in a Gemini browser app -- from within the app: https://merveilles.town/@akkartik/107489728557201145
Review Jam, day 2: try a short task in Teliva. https://buttondown.email/reviewjam/archive/advent-of-foc-day-2-brutalist-convivial-computing
Preparing for Advent of Code in Teliva: https://archive.org/details/akkartik-teliva-2021-11-30 (video; 15 minutes)
A chess viewer in Teliva, demonstrating networking capabilities: https://merveilles.town/@akkartik/107319684018301051
@prologic Sorry I only just saw your note from almost a year ago: http://twtxt.xyz/update/21b5925b16b9a793
End-user programming: modify apps while running them. https://github.com/akkartik/teliva
A network-less, read-only browser built up from machine code: https://archive.org/details/akkartik-mu-2021-08-15
Rendering arbitrary images on the 256-color Mu computer: https://merveilles.town/@akkartik/106671394323266954
Syntax sugar in the Mu shell: https://archive.org/details/akkartik-mu-2021-06-23
Sumeet Agarwal solves an Advent problem with Mu: http://akkartik.github.io/mu/html/linux/advent2017/1a.mu.html
Live-coding Fizzbuzz on the Mu computer's prototyping environment: https://archive.org/details/akkartik-mu-2021-06-09
New video riffing on some ideas for doing more with animation in debuggers: https://archive.org/details/akkartik-mu-2021-05-17
My computer now prints a call stack when it crashes: https://merveilles.town/@akkartik/106239831225295745
Don't called them signed ints and unsigned ints. Call them ints and addresses. https://merveilles.town/@akkartik/106206878251648806
Lisp macros in the Mu computer: https://merveilles.town/@akkartik/106195814023586904
How computer sandboxing models have evolved over time: https://merveilles.town/@akkartik/106185773783459627
Prototyping on the Mu computer, and nudging people to throw the first one away: https://merveilles.town/@akkartik/106112499040193446
Distinguishing a program's return value from its side effects: https://merveilles.town/@akkartik/106045532928000526
Drilling into computations in the shell for the Mu computer: https://merveilles.town/@akkartik/105790894303047592
Mulling switching gears for the Mu shell to a less ambitious Lisp-based language: https://merveilles.town/@akkartik/105771735864653468
Rendering text on bare-metal x86, with an eye to non-Latin languages: https://merveilles.town/@akkartik/105542032656082045
2020 wrap-up redux, a Wardley Map for Mu: https://merveilles.town/@akkartik/105476276652369571
Starting to give Mu its own OS: https://merveilles.town/@akkartik/105436432584324552
New demo and medium-term plans: https://merveilles.town/@akkartik/105338014257369963
Visualizing programs with side-effects, such as printing to a screen: https://merveilles.town/@akkartik/105201366581271961
A live-updating postfix shell for the Mu computer: https://mastodon.social/@akkartik/105108305362341204
Defining functions in my live-updating structured editor for postfix: https://mastodon.social/@akkartik/105071402581806586
detective story of the day: https://mastodon.social/@akkartik/104975077519600207
Visualizing postfix functions with named arguments: https://mastodon.social/@akkartik/104935713813872559
New demo, a structured editor for postfix arithmetic: https://mastodon.social/@akkartik/104896128141863951
Growing a test-driven text-mode Markdown browser all the way up from machine code: https://mastodon.social/@akkartik/104845344081779025
Mu now has a generic stream type: http://akkartik.github.io/mu/html/402stream.mu.html
Beginnings of a spreadsheet for trees: https://archive.org/details/akkartik-2min-2020-07-25
A tutorial on Mu the language: https://mastodon.social/web/statuses/104385065026974197
Mu now type-checking all function calls: https://mastodon.social/@akkartik/104366226332745069
A calculator app in Mu: https://mastodon.social/@akkartik/104352495147108886
A very-high-level language feature in Mu, in spite of bootstrapping from machine code: https://mastodon.social/@akkartik/104305128661766343
A test app in Mu, and an experience report: https://mastodon.social/@akkartik/104250249472942612
Paper on Mu published at the Convivial Computing Salon: http://akkartik.name/akkartik-convivial-20200315.pdf
Mu language almost done: https://mastodon.social/@akkartik/103809142727508327. Now to make it safe.
Learning the complexity of compilers rather than pretending they're easy: https://mastodon.social/@akkartik/103581348949359372
Working: factorial function. https://mastodon.social/@akkartik/103571329543801973
Working: local variables. https://mastodon.social/@akkartik/103554841927344456
Working: programs with int variables. https://www.reddit.com/r/BarbarianProgramming/comments/eiq5jg
Update on my safe syntax for machine code: functions can now return results. https://mastodon.social/@akkartik/103395953154615316
First function body translated. Still no variable declarations, though. https://mastodon.social/@akkartik/103229216904239835
Another week, another instruction compiling, more refinements of the code-generator: https://mastodon.social/@akkartik/103157776545612964
First baby steps in compiling the Mu memory-safe systems language: empty function; primitive stmt; function call.
Mu's translator is growing complex. Lots of book-keeping for entering/exiting scopes: https://mastodon.social/@akkartik/103053133325948545
Beginnings of a translator for a memory-safe language: http://akkartik.github.io/mu/html/apps/mu.subx.html. Just empty functions so far.
It's surprisingly hard to do safe, efficient array initialization: https://www.joshmcguigan.com/blog/array-initialization-rust
I've mostly managed to stick to statically allocated arrays so far, but now I need real ASTs. Just leak memory for the first draft.
Now that feedback on the design has died down (https://news.ycombinator.com/item?id=21268252; https://lobste.rs/s/xtxlec), back to hacking.
Mu's design is taking on a life of its own: http://akkartik.name/post/mu-2019-1
Seems useful to have a set of consistent lexical conventions. # for comments; . for lookup; / for metadata. e.g cat ~.conf.git.core.pager
But sometimes you do want a separation between dirs and files. So maybe the file system has both, but also supports treating files as dirs?
Thinking about https://zge.us.to/dirconf.html; what if cat
ing a directory rendered its contents as a structured file?
After various attempts to grep for Tss and whatnot, current plan is to just try to binary-search writes to protected memory in the kernel.
Where does https://github.com/ozkl/soso first switch to Ring 3? I want to rip it out and just run everything in Ring 0.
An ergonomic syntax for machine code: numbers, metadata, strings, tests, blocks. https://mastodon.social/@akkartik/102825992961303855
@chameleon Wow, somebody's reading this! What's up?! Nice site!
This should take a lot less code than an optimizing C compiler. There'll be no optimizer, but lots of room for the programmer to optimize.
(But decent error messages if you screw up your register allocation, try to read a different type from a register than you wrote.)
Next stop: a type- and memory-safe compiled language that can occupy C's niche. Manual memory management. AND manual register allocation.
But everything takes too damn long with machine code. Enough fun and games. Resume climbing the ladder of abstraction.
It's taken a year to get here. I want to take a break, do a Lisp interpreter for fun. Just so I can see a computer boot into a Lisp prompt.
But the syntax is nothing more than machine code (with good error messages).
So far I can: create Linux binaries; package them up with a kernel into a bootable image; run it on Qemu or Linode.
about me: I'm building a hobbyist computer. No C (eventually). Lots of tests. Reward curiosity. https://github.com/akkartik/mu#readme
Today I was reminded of it by a long series of steps that began with an invitation from http://tilde.club. Web surfing at its best.
I've always loved the idea of twtxt, but had no idea so many people are using it.
I can't abide Python, so I'm writing these messages using 'echo', for now..