Pinned toot

Researching new ways to write software that make it easier for newcomers to understand rather than for insiders to maintain. Systems that build easy, reward curiosity. akkartik.name/about

Author of Mu: github.com/akkartik/mu. Using it to teach kids programming 1:1: akkartik.name/post/mu

. Ethos: ship with all deps, gradually streamline their code for own situation, get ideas for improvements, send patches upstream. Implies: can't have too many deps!

5
11

TFW you read about societies that existed 10k years ago and you find things like:

- "no obvious public buildings" (ie. no centralised power or religion)
- "Households looked to their neighbors for help, trade, and possible marriage for their children" (ie. mutualism)
- "(...) we see that men and women had the same social status" (ie. no patriarchy)

All stuff that liberals decry as "impossible" or "utopian" in the XXI century...

en.wikipedia.org/wiki/%C3%87at

16
3

The reason why I a) keep looking for minimalist programming languages and b) dislike compilation

is that I keep looking for a 'language' that would allow me to express concepts, or knowledge, in a way that can be portable between machines / environments

Eg, say you start with, let's say, JSON, as a data representation language. It's okay, ish, until you want to 'point to something'.

Once you add some kind of idea of a 'link', you are very close to being a Turing-complete language.

1
4

@yumaikas @akkartik @h @haitch @freakazoid @rain1 The DItI presentation is something of a prerequisite, I think; I'm going to make frequent references to DItI techniques in my talk.

As my notes currently indicate, if TDD was a key enabler for Extreme Programming, then DItI is a key enabler for Ascetic Programming. :)

1
0

@rain1 I have resources scattered around the web; it's all very disorganized, I'm afraid.

This website is old and out-dated, but provides motivations: kestrelcomputer.github.io/kest

This website is the currently active repository (I no longer rely on Github for development): chiselapp.com/user/kc5tja/repo

If these sites do not answer any questions you have, I'm happy to answer them here and update one of the sites accordingly.

1
2

@natecull No matter who you are, the threat model should include yourself as an attacker.

That is ask why people should continue to trust you and try to minimize that trust.

2
1

@yumaikas @akkartik @h @haitch @freakazoid @rain1 To be effective for compile-time checking, you'd need to embed stack depth checking in the compiler itself and arity information within the dictionary. Doable, but inconvenient.

Most Forth systems actually have stack checking at interpret-time; however, by the time it detects a depth imbalance, it's often too late.

1
1

@akkartik @h @haitch @yumaikas @freakazoid @rain1 I can honestly say that the project would not still be going ahead like it is now had I not read Chuck Moore's Programming a Problem-Oriented Language.

I can confirm that Forth is a language that, in the general case and if you keep things simple, can be bootstrapped from raw assembly.

My Kestrel-3/E2 port of DX-Forth is less than 10KB of code too.

(It'll get larger when I implement limited 9P support for it though.)

2
3

@akkartik I think the most straightforward guide you can even borrow code from directly is FASM. That will probably save you an awful lot of time.
flatassembler.net

Even if Windows is out of the scope, flatassembler also includes support for win32 calls and generation of PE32 binaries, so that's not a limitation (although @vertigo is right about Windows being a massive dynamic linking annoyance, with no officially published kernel apis)

@rain1 @freakazoid @yumaikas @vertigo

1
1

@vertigo @rain1 @freakazoid @yumaikas @akkartik

All the BSDs, Darwin, and Windows follow the BSD sockets api, so itmaymake more sense to only provide appropriate shims for Linux the other way around.

1
0

Microblog challenge: An ounce of identity is worth a pound of economic security in motivating behavior. Agree or disagree in 1 toot.

1
0

@h Hmm, the socket syscalls are implemented differently on different platforms. That's dismaying. I'd been hoping to use a set of primitives so tiny that programs for it would work on all modern, extant *nixes. Now I probably need to start testing on Linux (top priority) and all the different *BSDs including Darwin (which is what I develop on).

:(

@freakazoid @rain1 @vertigo

1
1

SubX now supports basic file operation syscalls: akkartik.github.io/mu/html/sub

I've also made labels a little safer, so you can't call to inside a function, or jump to within a different function: akkartik.github.io/mu/html/sub

Next stop: socket syscalls! @h

github.com/akkartik/mu/tree/ma

@freakazoid @rain1 @vertigo

2
3

Today's favourite French word: chiffrement
(a synonym for 'encryption', although it's etymologically a bit more like 'encoding')

3
1

okay I just pushed an update and uploaded a new archive with (more) correct character encoding—enjoy github.com/aparrish/gutenberg-

4
14
Show more
Mastodon

This page describes the mastodon.social instance - wondering what Mastodon is? Check out joinmastodon.org instead! In essence, Mastodon is a decentralized, open source social network. This is just one part of the network, run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!

Hero image by @b_cavello