Kartik Agaram is a user on mastodon.social. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

Kartik Agaram @akkartik@mastodon.social

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!

@akkartik Exactly. "inlining" is just one of many different ways of compiling colon definitions, so we don't generally use that word except perhaps for native code compilers. But, for example, in my own Forth implementations, which are indirect threaded or direct threaded in nature, I don't inline code, but rather just lay down a pointer to the older definition.

"Layers of sediment" -- I love this analogy; not sure why I didn't think of it before!

@akkartik Answers:

(1) No. Hyperstatic means that when you RE-define a word, all PREVIOUS definitions retain their ORIGINAL meaning.

(2) ALLOT cannot function reliably in a free-list environment, so it's often used exclusively for "the dictionary", a contiguously allocated block of memory that holds the bodies of definitions. Free-list allocators did not become standardized until ANS Forth 94, where the words ALLOCATE, FREE, and RESIZE were introduced.

Live-blogging @vertigo's great Forth video from 2008: youtube.com/watch?v=mvrE2ZGe-r

1. I had no idea Forth was hyperstatic! Does that mean that when you define a word, other words it uses get their definitions automatically inlined at definition time?

2. 'gulp (bitbucket.org/kc5tja/unsuitabl) assumes that 'allot' has no free list (consecutive allocations are contiguous). Really nice property! Is there also usually an allocator with a free list? How do the two interact? Pointers appreciated.

.@vertigo Just finished watching your talk on CoSy the Forth+APL. youtube.com/watch?v=u46W-0KuP3 Thank you!

Software that thinks it knows better. Show more

This makes me angry:

I run my own mail server in a VPS. Its IP address is NOT blacklisted, and I have both SPF and DKIM properly configured. I do NOT send bulk mail.

But still, Gmail classifies my personal emails as SPAM.

Same email with same exactly same contents, sent through PoBox SMTP server goes to INBOX. Directly from VPS, goes to SPAM. No explanations, no public blacklist. It looks like they just don't want people going "indie". Sigh.

the haunting art of Zdzisław Beksiński

@ebel @rysiek @pettter @HerraBRE @bjoern @galaxis

First

Why you all accept the premise that people should not be able to setup a server?

I think we are not much different from scriban in the ancient Egypt: we know how to compute as the knew how to write, but that's not going to endure and we should all work to make everybody able to program in the same way we are.

It's not our knowledge that is power, it's their ignorance that make them weak.

Our goal should be to loose our power.

@FollowFriday I'm neither gay, nor furry, nor a communist, but the gay-furry-communist crowd feels a lot more like home to me than HN does.

Today I'm announcing eggs.carton, an instance where "heterosexual males" can wonder why they always play female characters in video games and why they keep reading manga where boys get transformed into girls.

I've been dreaming in a strange mix between English and French yesterday after meeting some Mastodon people in Bayonne.

It was a great time but my fucking mind is so crazy...

Also, while talking English I realized I said a complete sentence in Basque for no reason, like they were the same language and then I needed to say it again in English.

Yes, that's the way I am.

Come visit me to Bilbao.

cc @amphetamine

This is your friendly reminder to back up your computer.

(No disasters here, just routine)

I... can't... stop... drawing... floppy disks.

@natecull I'm off for the night, but just in case you're Lisp-expert or Lisp-curious, I'll throw out this thing I wrote earlier today: akkartik.name/post/list-compre

I think it captures the sensibility I care about. Reasonably rigorous but nowhere near a mathematical proof, in spite of using words like "induction", and superficially seeming to develop an argument step by step.

My goal is to capture the authorship process, and the reason the 20 lines or so look as they do. Tests seem essential here.

@akkartik eg:

* For visibility, there seems to be a whole missing genre of 'visual programming' tools; not quite 'test harnesses', not quite 'IDEs', but something in the middle - the sort of things Brett Victor is looking at, maybe?

* For incrementally demonstrating correctness and not just incorrectness, maybe assertions / contracts could give us a bit more value than tests?

Eg if somehow every function or type could define a bunch of Prolog-like facts about its values? and export them?

@akkartik @natecull Did he say LITERATE PROGRAMMING?!😍😍😍😍

#Birthday

(It's not my birthday. I just found this comic funny.)

What do people use "tildes" for? (Shell accounts on a shared server, like tilde.club/ and friends.)

I know what *I* use my home server for—IRC client, a place to share URLs between home and work instead of emailing myself, an alternative internet vantage point when debugging.) But what do *other* people want, who don't already have a home server or VPS?

Thinking of setting one up, but I don't know what I'd even be offering... 🤔

> There are two sets of tests: the C/C++ tests and the blackbox tests. For former are built by Ninja and can be run from the top-level directory with `go run util/all_tests.go`. The latter have to be run separately by running `go test` from within `ssl/test/runner`.

> Both sets of tests may also be run with `ninja -C build run_tests`, but CMake 3.2 or later is required to avoid Ninja's output buffering.

holy shit thanks for adding all this garbage I need to install before running tests Google!