Not counting yesterday since I took an intentional break away from the project.
08.12.2025 13:33 β π 0 π 0 π¬ 0 π 0@ecsolticia.seeks.quest
Mathematics, DSLs, automata, computer simulation and big words tickle my fancy. ecsolticia.codeberg.page
Not counting yesterday since I took an intentional break away from the project.
08.12.2025 13:33 β π 0 π 0 π¬ 0 π 0Day 4 of working on #logissert, a simple boolean logic DSL with equivalence-aware asserts for boolean functions.
Today I added data structures for representing boolean functions as truth tables, and for mapping symbols to truth tables. Constants are treated as functions with zero arity.
Day 3 of working on #logissert, a simple boolean logic DSL with equivalence-aware asserts for boolean functions.
The parser is "done" (codeberg.org/ecsolticia/l...). Technically, it's not true to the grammar I wrote down in that it ignores sugar syntax, but that's for another time.
Day 2 of working on #logissert
Halfway there to a recursive descent parser for the grammar.
Thought I could write the parser in a day, and I COULD. But that would require me to spend more time on in, and I don't want to do that today.
The parser should be done by tomorrow if nothing comes up.
Building it from scratch again. The existing code wasn't spaghetti or anything, I just don't like how I structured it anymore. Also cutting down on some fluff.
A zero-copy lexer done today. I'm going slow this time as I have other things to do. Will implement the parser tmrw.
Calling it #logissert
Have been on a total break from my usual projects for a while. Too much going on.
02.12.2025 17:25 β π 1 π 0 π¬ 0 π 0This alignment chart explores what counts as an "interpreter" across two dimensions: implementation (what form the interpreter takes) and input (what it processes). Implementation Axis Implementation Purist: An interpreter must be a programβsoftware that executes on a computer. Implementation Neutral: An interpreter must be electronicβit can be hardware or software, but requires circuits and electricity. Implementation Rebel: An interpreter can be anythingβno restriction on physical form or medium. Input Axis Input Purist: An interpreter works on a programβit must execute formal code or instructions. Input Neutral: An interpreter works on textβit processes symbolic or written information. Input Radical: An interpreter works on anythingβno restriction on input type. Examples Across the Spectrum Lua (program processing programs) CPU (electronic processing programs) CEK-Machine (anything processing programs) Excel (program processing text) LLM (electronic processing text) Shredder (anything processing text) Doom (program processing anything) TV (electronic processing anything) Choir (anything processing anything)
Interpreter alignment chart
15.10.2025 19:56 β π 95 π 15 π¬ 1 π 0this speaks to me
19.11.2025 15:55 β π 4 π 0 π¬ 0 π 0the ugly truth they don't want you to know is that the math without numbers is actually more fun than the math with numbers
18.11.2025 13:59 β π 74 π 14 π¬ 5 π 0let F = <X> AND(X, NOT(X)) assert NOT(F) let OR(x, y) = NOT(AND( NOT(x), NOT(y) )) let XOR(x, y) = AND( NOT(AND(x, y)), OR(x, y) ) let EQ(x, y) = NOT(XOR(x, y)) let T = <X> EQ(X, X) assert T let I(x) = <a> OR( AND(a, NOT(a)), x ) assert I(T) assert NOT( I(F) ) let HalfAdderR(a, b) = XOR(a, b) let HalfAdderC(a, b) = AND(a, b) let SumIsNonzero(a, b) = OR( HalfAdderR(a, b), HalfAdderC(a, b) ) let One = T let Zero = F assert SumIsNonzero(One, One) assert SumIsNonzero(One, Zero) assert SumIsNonzero(Zero, One) assert NOT(SumIsNonzero(Zero, Zero))
Why settle for a typical digital logic circuit simulator when you can build your own, but as a computer language instead? I already have a correct implementation of the core functionalities (it's rather simple), but I have yet to fully sort the UI out. Been a fun project so far!
18.11.2025 09:19 β π 3 π 0 π¬ 0 π 1Congrats!!
14.11.2025 03:05 β π 1 π 0 π¬ 1 π 0here's a btw: the lexer and parser are entirely zero-copy
10.11.2025 12:01 β π 0 π 0 π¬ 0 π 0Implied terminal output of `cargo run` on said DSL project: ``` [[tokens]] 1 |[let][OR][(][A][,][B][)][NOT][(][AND][(][NOT][(][A][)][,][NOT][(][B][)][)][)] 2 |[assert][!] --- Error code 7: Expected assignment operator '=' - 1 | let OR(A, B) NOT(AND( NOT(A), NOT(B) )) - -------------^^^ Error occured at line 1, from column 14 to 16 ======= Error code 9: Expected valid identifier in expression - 2 | assert ! - -------^ Error occured at line 2, from column 8 to 8 ======= ```
I'm wondering to myself why I approximately quadrupled the amount of development time just for fancier error-reporting for an utterly simple DSL I'm cooking. The rules are simple enough that the errors are generally easy to spot by inspection anyway. But hey, it looks nice! (I think)
10.11.2025 12:01 β π 1 π 0 π¬ 1 π 0there was this great talk at one of the zig conferences where a developer talked about how they preferred static types because of their adhd.
static types are also an accessibility tool
youtu.be/vd1-rAIYV6I
Autopilot. Sharp turns.
Symmetry. Periodicity.
oh and don't forget
β rating out of 5
β
rating mod 5
yay
08.11.2025 16:40 β π 12 π 0 π¬ 1 π 0When people celebrate the individual genius of folks in science, they should also
mourn the collective loss of genius of folks who were actively discouraged or disadvantaged from a career in science because of the same person(s)
My intuition is that it can vary based on how serious things get and what exactly it is that you are measuring, but I should clarify... I'm not as well-versed in *applied* statistics to be sure. Just that my interest in cognitive biases helped here :p
For something casual, averaging seems fine tho.
In this case, if your stats went up just due to October having more days, then thinking that your stats went up in October for some substantial reason would have constituted denominator neglect.
07.11.2025 14:22 β π 1 π 0 π¬ 1 π 0Time for me to infodump! :p
What you just avoided right there is called denominator neglect. It basically means you consider only the number of times something happened, forgetting how many times it could have possibly happened to begin with.
Also because I think just because you're struggling shouldn't mean you can't enjoy games, art, or any form of culture for that matter.
The idea of pirating anything myself does make me slightly uncomfortable nowadays, but that's conveniently when I don't have a need to pirate anymore.
Of course "people" meant generally might have a different response to this, but it wouldn't matter to me. Partly because I've been in precarious situations myself, where spending money on games would've been irresponsible.
03.11.2025 06:12 β π 2 π 0 π¬ 1 π 0If not for this bias being that strong for me, I would probably have felt like I had lots more to say. Because it really holds me back from expressing a large portion of my thoughts in social situations, since I assume that others must already understand what I might have to say.
30.10.2025 07:41 β π 0 π 0 π¬ 0 π 0I have this reoccurring bias of assuming that what is obvious to me must be obvious to others too. Unsurprisingly, I often get surprised when I say something that's obvious to me, and someone else labels it insightful or illuminating somehow.
30.10.2025 07:41 β π 1 π 0 π¬ 1 π 0hi
25.10.2025 16:30 β π 3 π 0 π¬ 0 π 0At this point I have to admit I have no idea who anyone means when they refer to "normies"
24.10.2025 14:43 β π 27 π 3 π¬ 8 π 0yes algebra, why lie, when linear was enough?
21.10.2025 22:14 β π 1 π 0 π¬ 0 π 0New in Leaflet Publications: subpages!
One of our favorite features from Leaflet docs, now available to turn your blog posts intoβ¦
β¦collections? wikis? project logs? zines? essays with twisty tangents? or other complex creative branching forms :)
Check out this post to see what it looks like!
Recursive descent parsers have become my favorite thing to program recently.
19.10.2025 03:24 β π 1 π 0 π¬ 0 π 0