HNHacker News
TopNewBestAskShowJobs

rottytooth

99 karma · joined May 30, 2013

I break software and make esolangs
submissionscomments
rottytooth··on Velato
Hi, I’m the creator of Velato, the programming language (which is at http://velato.net/ ). Velato multicodes with music, much like Piet does with images. The challenge is to write a piece that works musically and programmatically. I have some better example programs I’ll post when they’re released, by an actual composer (it sounds much better than my sample Hello World).

Meanwhile, there’s a variation of the language at http://velato.net/HandsFree/ where you can whistle code live into the browser, rather than using MIDI. It has a somewhat different lexicon and a very different feel.

rottytooth··on Ask HN: What are you working on? (March 2025)
I’m finishing several esolangs for the first artist’s monograph of programming languages, out in Sept: https://mitpress.mit.edu/9780262553087/forty-four-esolangs/ including a hands-free (and not dictated) language.

I recently completed Valence: a language with polysemantic programs https://danieltemkin.com/Esolangs/Valence on GitHub: https://github.com/rottytooth/Valence

Older work includes Folders: code written as a pattern of folders: https://github.com/rottytooth/Folders , Entropy: where data decays each time it’s read from or written to: http://entropy-lang.org/ and Olympus: where code is written as prayer to Greek gods, who may or may not carry out your wishes: https://github.com/rottytooth/Olympus (a way to reverse the power structure of code, among other things).

I have three more to complete in the next few months.

rottytooth··on Source code art in the Rivulet language
Yes, that's a typo: the first two strands have hooks pointing up, the third to the left.

I forgot to mention that you can run the interpreter with -p to convert the program to pseudo-code. This makes it much easier to tweak the examples and experiment. I'll add that to the readme, along with more pseudo-code for the example programs.

And thanks so much!! Very excited to publish (Sept 2025).

rottytooth··on Source code art in the Rivulet language
The glyph start marker ╵ also marks a block of code; if several consecutive glyphs start with the same number of them, they are part of the same block.

When the question strand executes, it looks at whether a list element (or entire list) is zero or below. If so, the entire block is rolled back to its previous state.

So all branching is done as rollbacks. And loops end by rolling back their last iteration.

rottytooth··on Source code art in the Rivulet language
Hi, I created this language as part of a series of experiments with bringing aspects of natural language into code. My previous language, Valence (https://danieltemkin.com/Esolangs/Valence), dealt with semantic ambiguity — this one with calligraphy. It avoids an overly logical syntax in favor of compactness and expressiveness.

I’m completing a book of these esolangs for MIT Press this fall including this; not much info yet online yet but here’s the link: https://mitpress.mit.edu/9780262553087/forty-four-esolangs/

rottytooth··on Rot8000
I've updated it to use a hashtable and the tests run quite a lot faster
rottytooth··on Rot8000
Don't see how this will work without checking for control characters, surrogates and chars above 0x10000 (try 𝄞 for instance)
rottytooth··on Rot8000
Thanks -- added an issue for the linear search https://github.com/rottytooth/rot8000/issues/2 -- will place a limit on chars in that textbox as well
rottytooth··on To write better code, read Virginia Woolf
Speaking of which, the image for this article has code in a variation of brainfuck
rottytooth··on Folders: a programming language encoded into folder structure
I like that idea too (I'm the developer), but it does mean that string data would be an enormous number of folders
rottytooth··on Rot8000 – Rot13 for the Unicode generation
I put in a fix for CJK and the result is: nearly everything that's not CJK now rotates into it and back out; CJK is an huge section of the Basic Multilingual Plane. The fix invalidates rotations done with rot8000 before the fix, unfortunately.
rottytooth··on Rot8000 – Rot13 for the Unicode generation
CJK support is fixed now.
rottytooth··on Rot8000 – Rot13 for the Unicode generation
It's using 0x8000, which is half of 0x10000 (the size of the basic multilingual plane). It doesn't extend out of BMP
rottytooth··on Rot8000 – Rot13 for the Unicode generation
It is meant as a joke -- but also planning to fix these issues ... apparently this was the right place to bring it to find all the situations where it doesn't work correctly :)
rottytooth··on Rot8000 – Rot13 for the Unicode generation
Something might be off in the math -- there are some work-arounds to skip control characters that might be off when starting in this range
rottytooth··on Rot8000 – Rot13 for the Unicode generation
hmm, I'm not seeing this result