Sign in

ecsolticia

@ecsolticia.codeberg.page
67 followers 69 following 317 posts

pro-curiosity! ecsolticia.11 on Signal

PostsRepliesMedia
ecsolticia @ecsolticia.codeberg.page · 11/03/2026
@jaycesan.bsky.social gave me a title
Message saying "Part time gig as niche comedian".
Message quotes a Witchsky link to a joke I posted.
010
ecsolticia @ecsolticia.codeberg.page · 11/03/2026
When you go to a therapist to talk about your initial set of problems S0.
Then they misunderstand you and that's become a whole new set of problems S1.
Now you have a new set of problems S2 = S0 Union S1.
So you seek out a new therapist to help you with problems S2.
Then they misunderstand you and that's become a whole new set of problems S3.
Now you have a whole new set of problems S4 = S3 Union S2.
So you seek out a new therapist to help you with...
030
ecsolticia @ecsolticia.codeberg.page · 10/03/2026
haha so funny
67 followers 67 following
080
ecsolticia @ecsolticia.codeberg.page · 17/02/2026
Don't move! I'm holding epistemology with my bare hands. Do as I say or I'll drop it and then we all will know nothing. Don't want that do you?
A screenshot of the Wikipedia page for "Epistemology" with the cursor grabbing the text "Epistemology"
060
ecsolticia @ecsolticia.codeberg.page · 10/02/2026
Message I sent saying "Sunsie are you left-recursion to my recursive-descent parser brain? Because you make the stacks of my mind overflow with emotion."
030
ecsolticia @ecsolticia.codeberg.page · 04/02/2026
Miau
$ cargo new miaugen
020
ecsolticia @ecsolticia.codeberg.page · 23/01/2026
Put forth a basic state machine for the battle system. So far, it is possible to attack and deal damage, along with getting attacked and being damaged. Yes, the text updates and HP & lvl indicators aren't there yet. I'm actually depressed so it all took me an entire 3 hours. #gamedev #raylib
141
ecsolticia @ecsolticia.codeberg.page · 21/01/2026
Laid down the skeleton for a battle screen. It opens up if you move through tall grass enough. (There is a 1/10 chance of encounter for every tall grass cell you are over) Yes, the UI isn't fancy or even that good. I said "skeleton". #gamedev #indiedev #raylib #pokemon
171
ecsolticia @ecsolticia.codeberg.page · 20/01/2026
Tall grass is in. No fancy anim for the grass cell the character is over, not an interesting direction for me. Programming random encounters and a battle system is next. #gamedev #indiedev #raylib #pokemon
171
ecsolticia @ecsolticia.codeberg.page · 19/01/2026
"Ahh, finally. Something to walk on." I have constructed tilemaps but it currently requires me to specify every single tile by its tileset index, which is painstaking. Will figure something out. #gamedev #indiedev #raylib #pokemon
260
ecsolticia @ecsolticia.codeberg.page · 19/01/2026
Narrator: Before they can even begin to catch 'em all, our hero finds themselves walking around in white nothingness with no mon in sight. They learned that the world they are in is just under dev, and that patience is a key virtue, as the journey continues. #gamedev #indiedev #raylib #pokemon
1123
ecsolticia @ecsolticia.codeberg.page · 10/01/2026
I let my Aron out and it ate. Sorry.
The metal-eating Pokémon Aron
110
ecsolticia @ecsolticia.codeberg.page · 07/01/2026
"lyingly" with a red squiggly underline
150
ecsolticia @ecsolticia.codeberg.page · 07/01/2026
When you format the README for a tool using itself. I'm actually having fun using Merewrite myself. So it's a successful project.
Something that looks like a live preview web app. Is entirely black and white. There are two column panels, the left one named "Input" and the right one "Output". The input panel has
"""
Merewrite

Merewrite is a writing tool that formats pieces of writing based on implicit semantics and structure rather than explicit keywords and tags.

How it works

It fundamentally works on "blocks" separated by two newlines.

Periods, the exclamation and question marks, and newlines terminate sentences.

Non-terminated single-sentence blocks becomes HEADERS.
Terminated sentence blocks, multi-line blocks, and other structures become PARAGRAPHS.

Words in ALL-CAPS become BOLD.

Fun Fact

This README is formatted using Merewrite!
"""

The output panel shows the render of
"""
# Merewrite

Merewrite is a writing tool that formats pieces of writing based on implicit semantics and structure rather than explicit keywords and tags.

# How it works

It fundamentally works on "blocks" separated by two newlines.

Periods, the exclamation and question marks, and newlines terminate sentences.

Non-terminated single-sentence blocks becomes **headers**.
Terminated sentence blocks, multi-line blocks, and other structures become **paragraphs**.

Words in **all-caps** become **bold**.

# Fun Fact

This **readme** is formatted using Merewrite!
"""
010
ecsolticia @ecsolticia.codeberg.page · 04/01/2026
That live preview thing is coming together nicely. Just a few things left to go.
110
ecsolticia @ecsolticia.codeberg.page · 03/01/2026
Prototyping a live preview thing. It's for the project that I posted about yesterday. It's like a very restricted markup system, but instead of relying on explicit characters, keywords and tags, it uses implicit structure and semantics.
010
ecsolticia @ecsolticia.codeberg.page · 02/01/2026
I made a thing which formats pieces of writing based on implicit semantics and structure rather than than explicit characters, keywords and tags. It's pretty simple. It has "sentence terminators" like periods or question marks. Sentences without terminators that are separated by two ... (1/2)
(The command bat from the original image is replaced by that of cat)

ecs@pop-os:~/proj/merewrite$ cat test.mw
Emergence

What is EMERGENCE?

Emergence is the phenomenon wherein the whole is more than the sum of its parts.
ecs@pop-os:~/proj/merewrite$ cargo run
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.01s
     Running `target/debug/merewrite`
# Emergence

What is **emergence**?

Emergence is the phenomenon wherein the whole is more than the sum of its parts.
130
ecsolticia @ecsolticia.codeberg.page · 24/12/2025
Another day of working on #logissert, a simple boolean logic DSL with equivalence-aware asserts for boolean functions. Implemented said equivalence-aware asserts. One can now define new functions and test whether expressions using them are equivalent to other expressions.
[assert]
AND(x,y) = NOT(OR(NOT(x),NOT(y)))
Result: TRUE
010
ecsolticia @ecsolticia.codeberg.page · 17/12/2025
Wanted to make the simplest sandbox game that I could make. Ended up with an implicit puzzler. #gamedev #indiedev #godotengine
1133
ecsolticia @ecsolticia.codeberg.page · 18/11/2025
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!
let 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))
030
ecsolticia @ecsolticia.codeberg.page · 10/11/2025
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)
Implied 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
=======
```
110
ecsolticia @ecsolticia.codeberg.page · 09/11/2025
Autopilot. Sharp turns. Symmetry. Periodicity.
010
ecsolticia @ecsolticia.codeberg.page · 15/10/2025
I was mainly procrastinating on it, but my indefinitely-flying paper airplane thingy has been evolving! Now, your paper airplanes can't get out of view. Instead, you can bounce with the bounds again and again to create fun trails. #gamedev #godotengine
071
ecsolticia @ecsolticia.codeberg.page · 10/10/2025
I don't know where I'm taking my indefinitely-flying paper airplane game anymore. Something something asymmetric symmetry. Something something mirroring #gamedev
2143
ecsolticia @ecsolticia.codeberg.page · 07/10/2025
I have been thinking about #gamedev again, and my text adventure idea went mostly nowhere. I'm trying some other ideas. Lo and behold, an indefinitely flying paper airplane... well, indefinitely flying as long as you don't hit something. Where is THIS going? Could be nowhere, hopefully somewhere.
0143
ecsolticia @ecsolticia.codeberg.page · 02/10/2025
Made a tiny, declarative, expression-based DSL for elementary cellular automata. The parsing bit is scaffolded from my own library (crates.io/crates/mipl), which still needs some polish before I can extend the grammar to work better with newlines. Overall, though, the DSL turned out pretty fun!
Screenshot of a terminal.
First prompt: `bat rule30.eight`
Output: `(l == ~(r | t))` (One-line file)

Second prompt: `cargo run rule30.eight`
Output:
```
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.01s
     Running `target/debug/eightlang rule30.eight`
****************#***************
***************###**************
**************##**#*************
*************##*####************
************##**#***#***********
***********##*####*###**********
**********##**#****#**#*********
*********##*####**######********
********##**#***###*****#*******
*******##*####*##**#***###******
******##**#****#*####*##**#*****
*****##*####**##*#****#*####****
****##**#***###**##**##*#***#***
***##*####*##**###*###**##*###**
**##**#****#*###***#**###**#**#*
*##*####**##*#**#*#####**#######
```Screenshot of a terminal.
First prompt: `bat rule90.eight`
Output: `(r | l) & (~r | ~l)` (One-line file)

Second prompt: `cargo run rule90.eight`
Output:
```
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.02s
     Running `target/debug/eightlang rule90.eight`
****************#***************
***************#*#**************
**************#***#*************
*************#*#*#*#************
************#*******#***********
***********#*#*****#*#**********
**********#***#***#***#*********
*********#*#*#*#*#*#*#*#********
********#***************#*******
*******#*#*************#*#******
******#***#***********#***#*****
*****#*#*#*#*********#*#*#*#****
****#*******#*******#*******#***
***#*#*****#*#*****#*#*****#*#**
**#***#***#***#***#***#***#***#*
*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
```
010
ecsolticia @ecsolticia.codeberg.page · 29/09/2025
I m sorry
The "0 days without" Simpsons meme where the text reads "0 days without writingb uggylexers".
000
ecsolticia @ecsolticia.codeberg.page · 26/09/2025
I met the nemesis of premature abstraction. I've been trying to write parsers for things more complex than mere numeric calcs and TOML-like configs for a week, and have mostly been stuck. Have been, not am, because writing a minimal, imperative, restricted parsing library helped! Variables, anyone?
Terminal output where I run `cargo run --example numinomi`, and the subsequent input-output stream looks like:
```
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.01s
     Running `target/debug/examples/numinomi`
[numinomi] write x 5 * 5 + 12
[numinomi] write y x + 1
[numinomi] write y y + 2
[numinomi] read y 0
40
[numinomi] read x 0
37
[numinomi] exit
```
100
ecsolticia @ecsolticia.codeberg.page · 02/09/2025
It also has multiplication and exponentiation now! Exponentiation is pictured here.
Snippet of Rust code.
```
fn two_squared_is_four() {
    type Claimed4 = <_2 as Exp<_2>>::Result;

    type Verified4 =
        Succ<
        Succ<
        Succ<
        Succ<
        _0
        >>>>;

    <Claimed4 as Eq<Verified4>>::equal();
}
```
040
ecsolticia @ecsolticia.codeberg.page · 01/09/2025
Here's an example of how it FAILS. I basically changed the definition of `Claimed10` to `<_5 as Add<_4>>::Result` (5 + 4), and then attempted to compile again. This behavior is completely expected, unless the system I constructed were to somehow equate 9 and 10.
A terminal prompt where I chant the `cargo build` spell and it yields the following:
```
   Compiling rspeano v0.1.0 (/home/ecos/rspeano)
error[E0599]: no function or associated item named `check` found for struct `ProofEq` in the current scope
  --> src/main.rs:21:32
   |
21 |     ProofEq::<Claimed10, _10>::check();
   |                                ^^^^^ function or associated item not found in `ProofEq<Succ<Succ<Succ<Succ<Succ<Succ<Succ<Succ<Succ<...>>>>>>>>>, ...>`
```
020
ecsolticia @ecsolticia.codeberg.page · 01/09/2025
I got a bit sidetracked from my current project into further exploring the capabilities of Rust's type system. Peano axioms were way too fun play around with. I got to the point of having a proof that 5 + 5 = 10. (Compilation here proves the validity of the statement within what I constructed)
Snippet of Rust code.
Exact contents:
```
fn five_plus_five_is_ten() {
    type Claimed10 = <_5 as Add<_5>>::Result;

    type _10 =
        Succ< // 1
        Succ< // 2
        Succ< // 3
        Succ< // 4
        Succ< // 5
        Succ< // 6
        Succ< // 7
        Succ< // 8
        Succ< // 9
        Succ< // 10
        _0
        >>>>>>>>>>;

    ProofEq::<Claimed10, _10>::check();
}
```A terminal prompt where I chant the `cargo build` spell and it yields a lovely
```
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.01s
```
with no compiler errors or warnings.
461
ecsolticia @ecsolticia.codeberg.page · 29/08/2025
Something that looks like a document (is an HTML page generated from Markdown).

Title: "blog, or whatever"

Table of contents:
"""
1 How to Help Your Blog in an Existential Crisis
"""

Visible body:
"""
Hello there! I am a very generic blog about very generic things. They say that you are not supposed to put stuff that might be too interesting to read in itself in test websites and designs. Instead use that lorem ipsum dolor sit amet something something stuff. This is so that people focus on the actual design than the content you wrote up.

Perhaps the fact that the content here is perhaps, just perhaps, verily maybe, extremely generic helps with that.

Or does it? (Erm... should I play VSauce music here??)

See, this page was initially intended to be generic. Now, the mere fact that it breaks the fourth wall to exhibit self-awareness, ruins it all. Now this page is going to question the meaning of life and maybe even get a midlife crisis. What we do?

There are a few ways we can help the page as it is going through an existential crisis.

# How to Help Your Blog in an Existential Crisis

Existential crises are difficult experiences to endure. They make us forget the number of arms we have, question our interest in the continuation of the objectively purposeless raft drifting through an endless still ocean inundated with both edible and predatory biological organisms driven by impulses and instincts made the norm through millions of years of de-selection of genotypes that lead to phenotypes that did not bode well for survival, and ironically feel good about ourselves whilst endorsing and feel good about feeling good ... [cut off here]"
120
ecsolticia @ecsolticia.codeberg.page · 26/08/2025
I just tried out the leaflet.pub thingy. Fun. Here's what I dumped: ecsolticia.leaflet.pub/3lxba445cps2e Meme related to post content.
A panik-kalm-panik meme.

First panel: Meme man panik, text says "meme assumes misinformation".

Second panel: Meme man kalm, text says "just a meme".

Third panel: Meme man panik, text says "just a meme".
441