Agree English isn't great for this. LLMs change the equation for English <-> code translation. You could have a prog system designed for LLM/human hybrid editing. This is where I feel research is valuable. LLMs still rely on 'hard logic' for correctness source of truth, but help comprehension.
16.02.2026 20:24
๐ 0
๐ 0
๐ฌ 0
๐ 0
The open access version of Cultures of Programming is now available online. Just in time for the holiday break!
Read it here: www.cambridge.org/core/books/c...
If you prefer a real book, use PETRICK26 for a 20% discount (valid until January 31) at: www.cambridge.org/9781009492348
19.12.2025 10:18
๐ 42
๐ 13
๐ฌ 2
๐ 1
Thank you I appreciate the links!
03.03.2025 20:44
๐ 0
๐ 0
๐ฌ 0
๐ 0
they key aspects of this design i see are:
1. each node determines quorum independently
2. conflict free and order independent fact messages
3. each node only makes decisions for itself, but can be aware of the quorum decision being different.
03.03.2025 06:35
๐ 0
๐ 0
๐ฌ 1
๐ 0
finally, these set of peers can be maintained by quorum as well, by using `peers` as a value.
if you read this far and are so inclined, lmk if this protocol or a better studied version exists. also lmk about obvious holes.
03.03.2025 06:35
๐ 0
๐ 0
๐ฌ 1
๐ 0
C) if you propose N distinct values for key1 simultaneously, no value will get quorum. if you keep doing this you will have a livelock.
maybe this can be resolved by each peer noticing there's a quorum failure at version `@v3` and flipping their choice by proposing a new value the next version.
03.03.2025 06:35
๐ 0
๐ 0
๐ฌ 1
๐ 0
B) if you propose (key1@v2=value2) and (key1@v2=value3) ie conflicting values to two peers simultaneously, one of the values will achieve quorum but all peers will eventually become aware of the quorum.
03.03.2025 06:35
๐ 0
๐ 0
๐ฌ 1
๐ 0
so running thru scenarios:
A) if you propose (key1@v1=value1) to a peer on a new cluster, the peer will accept it and broadcast (key1@v1=value1, accepted_by=peer1). other peers will accept it facts will trickle through the cluster, eventually which each peer will be aware of the consensus.
03.03.2025 06:35
๐ 0
๐ 0
๐ฌ 1
๐ 0
5. each peer determines quorum independently. so if N=5 and a peer sees that (key1@v2=value3) has been accepted by 3 peers, it knows that's the quorum and will reply 'key1@v2=value3' to the query for `key1`.
03.03.2025 06:35
๐ 0
๐ 0
๐ฌ 1
๐ 0
4. every peer *accepts* the first key@version=value it gets for that key and version. this creates a new fact (keyX@versionY=valueZ, accepted_by=peer) - which is then broadcasted around. there are no conflicting facts ever, it's all append only information.
03.03.2025 06:35
๐ 0
๐ 0
๐ฌ 1
๐ 0
In total armchair theorizing fashion, here is a consensus protocol I am thinking of:
1. no leader, N peers
2. peers gossip/broadcast facts to each other
3. each fact is (key1@v2=value3, accepted_by=peer5).
facts can always be forwarded as-is. the @v2 is the version for key1.
03.03.2025 06:35
๐ 0
๐ 0
๐ฌ 1
๐ 0
I quite liked this talk โ sets up a clear perspective on how to look at consensus protocols. I didn't find Raft all that simple anyway (but I also bias towards leaderless consensus).
03.03.2025 06:35
๐ 2
๐ 0
๐ฌ 1
๐ 0
Negative transfer (memory) - Wikipedia
Negative transfer of learning?
en.wikipedia.org/wiki/Negativ...
01.03.2025 06:58
๐ 2
๐ 0
๐ฌ 1
๐ 0
Has anyone ever heard of a live programming system that uses the types of dynamic values to feedback into static analysis?
12.02.2025 18:25
๐ 17
๐ 4
๐ฌ 5
๐ 0
Hi, I'm curious what you think has held cython back?
09.02.2025 23:00
๐ 0
๐ 0
๐ฌ 0
๐ 0
When activated, the runtime objects themselves can link back to the source objects they arose from. So we have a way to represent deep provenance.
25.01.2025 07:11
๐ 1
๐ 0
๐ฌ 0
๐ 0
So a type annotation or a function call is not represented as "just text" โ it is represented as a hyperlink to another object (the target type or function object). You probably don't need import statements because these links are resolved at edit time.
25.01.2025 07:11
๐ 0
๐ 0
๐ฌ 1
๐ 0
Dynamic objects change over time or when you interact with them. But they still link to other objects (either static or dynamic).
In this world you dont have plain text languages. Programs are natively represented by a web of hypermedia objects.
25.01.2025 07:11
๐ 0
๐ 0
๐ฌ 1
๐ 0
I personally want to see a native hyper-object OS. The core abstraction is a hypermedia object. It contains words interspersed with hyperlinks that link to other hypertext objects. Objects can be static or dynamic. Static objects are most similar to hypertext documents.
25.01.2025 07:11
๐ 1
๐ 0
๐ฌ 1
๐ 0
Most hobby OSes and OS courses mimic the Unix model with a "filesystem", "executables", "processes", "byte streams" and such. This is unfortunate. The design space to explore new core abstractions here is so much bigger.
25.01.2025 07:11
๐ 1
๐ 0
๐ฌ 1
๐ 0
A Snobol4 Tutorial: Chapter 4
Is SNOBOL's native pattern type similar to this? www.regressive.org/snobol4/docs...
But I don't know if it qualifies as general purpose.
25.01.2025 06:42
๐ 1
๐ 0
๐ฌ 0
๐ 0
Wow this is neat!
Here's the original youtu.be/495nCzxM9PI?...
08.01.2025 06:07
๐ 4
๐ 0
๐ฌ 0
๐ 0
How does one introduce a substrate without building an operating system?
03.01.2025 18:05
๐ 7
๐ 2
๐ฌ 9
๐ 0
Yeah, I guess it would.
09.12.2024 22:34
๐ 1
๐ 0
๐ฌ 0
๐ 0
I agree that compuation is about viewing/ interpreting properties of a system target than intrinsic. Another philosophy question, what is interpretation? Can any system interpret or what is special about our brains?
07.12.2024 15:56
๐ 1
๐ 0
๐ฌ 1
๐ 0
The question should be whether we can have a programming system that is version aware across all core abstractions.
22.11.2024 03:56
๐ 1
๐ 0
๐ฌ 0
๐ 0