3,659 karma · joined March 5, 2014
BEng Electrical Engineering w/Comp. Sci (Stellenbosch, 2010). Former CTO of CloudAfrica, weFix.
Making software professionally for 20+ years, ideally with Clojure, Electric Clojure & Datomic. Based in Cape Town, South Africa.
Links:
- EACL is a situated ReBAC Authorization inspired by SpiceDB, built in Clojure & backed by Datomic Pro, Datahike or DataScript: https://github.com/theronic/eacl
- Twitter / X: https://twitter.com/BraaiEngineer
- Top 2% on StackOverflow: https://stackoverflow.com/users/198927/petrus-theron (they hide rankings now)
- Grug's Guide to Sound (I used to sell high-fidelity amplifiers): https://petrustheron.com/posts/2024-12-12-grug-guide-to-sound.html
- ExplainGame: The Party Explanation Game (explaingame.com) (mobile-friendly, built in Electric Clojure)
- BraaiSim: Braai Simulator (braaisim.com) (mobile-only, Electric Clojure)
- Essays: http://petrustheron.com/
- GitHub: https://github.com/theronic
- Wallfly Smart Volume Control — https://wallfly.webflow.io/
- Music: http://theronic.com/
(Old HN account was @FreshCode)
"Situated" here means that permissions are just data that co-exist with your application data. This has several advantages: reduced network latency, strong local consistency and opportunities for real-time view maintenance.
- EACL Performance Demo: https://demo.eacl.dev/ (1M permissioned entities, 3.8M Relationships)
- A toy Google Drive clone (runs in-browser): https://drive.eacl.dev/ (4-minute screen recording here: https://x.com/BraaiEngineer/status/2099284919532896675?s=20)
- Rationale: https://eacl.dev/#rationale
EACL V8 RC was released to Clojars on 12 September 2026: https://clojars.org/dev.eacl/eacl
EACL handles authorization in the Datahike HTTP Server: https://github.com/replikativ/datahike/blob/1ea8972a980e2e3b...
So, for anyone thinking of using Ketamine on the regular or even monthly, there is good evidence that EGCG (epigallocatechin gallate) administered 30 minutes before prevents KBS (Ketamine Bladder Syndrome), in rats: https://www.sciencedirect.com/science/article/pii/S187952261...
This promising rat study from 2015 shows that EGCG extracted from green tea has a protective effect on the bladder, reversing ketamine-induced damage to control levels. So if you are taking ketamine for major depression or recreationally, taking EGCG before may prevent long-term bladder damage.
Summary from the study:
# Objective
To investigate the protective effect of green tea epigallocatechin gallate (EGCG) on long-term ketamine-induced ulcerative cystitis (KIC) using a ketamine addiction rat model.
# Materials and methods
Thirty Sprague-Dawley rats were divided into three groups which received saline, ketamine (25 mg/kg/d), or ketamine combined with EGCG (10 μM/kg) for a period of 28 days. In each group, cystometry and a metabolic cage micturition pattern study were performed weekly. Masson's trichrome study was done to evaluate the morphologic changes. Western blot analyses were carried out to examine the expressions of inflammatory protein [transforming growth factor-β (TGF-β)] and fibrosis proteins (fibronectin and type I collagen) in bladder tissues.
# Results
Chronic ketamine treatment resulted in bladder hyperactivity with a significant increase in micturition frequency and a decrease in bladder compliance. These alterations in micturition pattern were accompanied by increases in the expressions of inflammatory and fibrosis markers, TGF-β, fibronectin, and type I collagen after long-term ketamine treatment. Masson's trichrome stain showed that ketamine treatment decreased urothelium thickness while increasing the collagen to smooth muscle ratio and exacerbating interstitial fibrosis. By contrast, simultaneous EGCG and ketamine treatment reversed ketamine-induced damage to almost control levels, showing the protective effect of EGCG.
The closest thing to Electric (IMO) is SolidJS, but frontend only: https://www.solidjs.com/
`(if-not key1 (throw (Exception ...))`
...and pre-conditions, e.g. `:pre [condition1 condition2]` do not run when `assert` is off.
tldr; Starlink doesn't work in South Africa, Elon's home country, because the ANC and its lawfare arm ICASA demands they hand over 30% to the State because of BEE laws.
(edit: ah, I see they are shown later)
Edit: OK, spacebar shoots, but it's hard to see the cannons flying due to low contrast. And it shoots in the direction of the enemy.
If he means navigating the AST, there is Parinfer: https://shaunlebron.github.io/parinfer/
Paredit / Parinfer ruined other languages for me. It lets you navigate up/down/in/out of the Clojure AST with keyboard commands and mutate those expressions, e.g. "Split" will split open the current data structure you're in: `(a| b)` =Split=> `(a)| (b)`, where | is caret. Join is the inverse, and it works for all data structures.
> META II is a domain-specific programming language for writing compilers. It was created in 1963–1964 by Dewey Val Schorre at University of California, Los Angeles (UCLA). META II uses what Schorre called syntax equations.
The interesting part of META II is that it can be defined in itself on one page (refer page 8 of the paper).
[^1] Wikipedia https://en.wikipedia.org/wiki/META_II
[^2] Paper: https://dl.acm.org/doi/epdf/10.1145/800257.808896
I maintain that Clojure is the best AI-first language due to the lightning-fast iteration via the nREPL and Clojure's token efficiency.
> f = λa λb concat ["Hello ",a," ",b,"!"] > f "Jane" "Doe" Hello Jane Doe!
then,
> g = f "Admiral" > invert g "Hello Admiral Alice!" Alice