Sign in

shalabh.com

@shalabh.com
0 followers 0 following 0 posts
PostsRepliesMedia
Shalabh @shalabh.com · 09/07/2026
SPy is my new favorite "fast python" variant. The key insight is that almost all of the dynamic nature of Python is useful at import time, not run time: your metaclasses, dynamically generated methods etc, all the magic happens at import time. So you can freeze before runtime!
000
Reposted by Shalabh
PyCon US @pycon.us · 09/05/2026
First time at #PyConUS? Volunteering is the fastest way to go from "I don't know anyone here" to "I know everyone here." You'll be pitching in alongside incredible people from across the Python community 💙💛 Sign up today ➡️ us.pycon.org/2026/volunte...
034
Shalabh @shalabh.com · 10/05/2026
For that we'd need to first identify what differentiates physical processes that embody sentience (~living creatures) from those that do not (car, rock, solar system). Further it's also a mystery why there are multiple loci of sentience in one physical system (the universe).
020
Shalabh @shalabh.com · 10/05/2026
The mind has many properties, is sentience computable? Or to put it another way.. computation is just an interpretation of some physical process, is it not? Are we saying that we can manufacture physical processes in systems that correspond to sentience?
110
Shalabh @shalabh.com · 16/02/2026
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.
000
Reposted by Shalabh
Tomas Petricek @tomasp.net · 19/12/2025
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
34814
Reposted by Shalabh
Konrad Hinsen @khinsen.scholar.social.ap.brid.gy · 05/03/2025
New blog post: "Going for robustness" blog.khinsen.net/posts/2025/03/05/g…
blog.khinsen.net
Konrad Hinsen's blog
257
Shalabh @shalabh.com · 03/03/2025
Thank you I appreciate the links!
000
Shalabh @shalabh.com · 03/03/2025
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.
100
Shalabh @shalabh.com · 03/03/2025
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.
100
Shalabh @shalabh.com · 03/03/2025
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.
100
Shalabh @shalabh.com · 03/03/2025
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.
100
Shalabh @shalabh.com · 03/03/2025
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.
100
Shalabh @shalabh.com · 03/03/2025
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`.
100
Shalabh @shalabh.com · 03/03/2025
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.
100
Shalabh @shalabh.com · 03/03/2025
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.
100
Shalabh @shalabh.com · 03/03/2025
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).
120
Shalabh @shalabh.com · 01/03/2025
Negative transfer of learning? en.wikipedia.org/wiki/Negativ...
en.wikipedia.org
Negative transfer (memory) - Wikipedia
120
Reposted by Shalabh
Jonathan Edwards @jonathoda.bsky.social · 19/02/2025
Please submit to Onward! papers and essays. One of the best places to publish ambitious non-mainstream ideas on programming. 2025.splashcon.org/track/splash... 2025.splashcon.org/track/splash...
2025.splashcon.org
SPLASH 2025 - Onward! Papers - SPLASH 2025
Onward! is a premier multidisciplinary conference focused on everything to do with programming and software: including processes, methods, languages, communities and applications. Onward! is more radi...
079
Shalabh @shalabh.com · 12/02/2025
Not a live system but tangentially related: github.com/Instagram/Mo...
github.com
GitHub - Instagram/MonkeyType: A Python library that generates static type annotations by collecting runtime types
A Python library that generates static type annotations by collecting runtime types - Instagram/MonkeyType
110
Reposted by Shalabh
Alexander Bandukwala @ SPLASH @bandukwala.me · 12/02/2025
Has anyone ever heard of a live programming system that uses the types of dynamic values to feedback into static analysis?
5174
Reposted by Shalabh
North Bay Python @fedi.northbaypython.org · 11/02/2025
Plenty of reasons for this, which we've detailed in our newsletter: buttondown.com/northbaypython/archi… the most important thing: we do want to hear from you, so get your talk ideas in soon!
buttondown.com
We've extended our talk submissions window
tl;dr: we're accepting talk proposals for North Bay Python 2025 for another two weeks; closing on February 21st. If you missed the original deadline for talk...
011
Shalabh @shalabh.com · 09/02/2025
Hi, I'm curious what you think has held cython back?
000
Shalabh @shalabh.com · 25/01/2025
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.
010
Shalabh @shalabh.com · 25/01/2025
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.
100
Shalabh @shalabh.com · 25/01/2025
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.
100
Shalabh @shalabh.com · 25/01/2025
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.
110
Shalabh @shalabh.com · 25/01/2025
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.
110
Shalabh @shalabh.com · 25/01/2025
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.
regressive.org
A Snobol4 Tutorial: Chapter 4
010
Shalabh @shalabh.com · 08/01/2025
Wow this is neat! Here's the original youtu.be/495nCzxM9PI?...
youtu.be
Sketchpad, by Dr. Ivan Sutherland with comments by Alan Kay
YouTube video by David Carroll
040
Reposted by Shalabh
Alexander Bandukwala @ SPLASH @bandukwala.me · 03/01/2025
How does one introduce a substrate without building an operating system?
972
Shalabh @shalabh.com · 09/12/2024
Yeah, I guess it would.
010
Shalabh @shalabh.com · 07/12/2024
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?
110
Shalabh @shalabh.com · 22/11/2024
The question should be whether we can have a programming system that is version aware across all core abstractions.
010
Shalabh @shalabh.com · 22/11/2024
Versioning is relegated to outside the PL domain, while we continue to struggle with schema evolution in all persistent parts of the system such as databases. "Will the new version of my program work with the old serialized versions of data" shouldn't be the question.
110
Shalabh @shalabh.com · 22/11/2024
"Databases should handled schema migration" 💯 Indeed, systems should handle schema migration. A big bling spot in the PLs of today is that they cant imagine versions - they only ever imagine one version of the program, and consequently, only one version of the schema.
180
Shalabh @shalabh.com · 21/11/2024
Computation is a physical process. Any abstractions we use to build these processes, view them or make sense of the are all made up. Look what we have done!
030