Skip to content

Instantly share code, notes, and snippets.

@neauoire
Last active January 26, 2021 19:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save neauoire/7f5f4b5ece7d574110434c4cebf9b731 to your computer and use it in GitHub Desktop.
Save neauoire/7f5f4b5ece7d574110434c4cebf9b731 to your computer and use it in GitHub Desktop.

There is an idealism to many of your projects that reminds me of the early Web or perhaps the Amiga era, with a sense that anything is fair game to be re-thought; from the recipe site grimgrains with its unusual sign to even representations of time and dates with Neralie and Arvelie.

This extends to the tools you adopt by others, like Plan 9 and Gemini, that are not as widely used or supported but are built on better logical or aesthetic principles.

I'd like to begin by asking you to describe a bit of your creative philosophy and process as a team.

Our development philosophy comes down to a strong belief that solving problems is more efficient than looking for solutions.

I say this to mean that, based on personal experiences, searching for a password is more expensive and less fulfilling than cracking the safe itself. It does mean reinventing the wheel many times over, but the process has lead us to many unforeseen places, often in areas we had previously taken for granted, or considered solved.

We will always choose a lesser home-brewed tool tailored specifically to our own needs, over a better generic tool that we have not built and do not understand. This scenario is often called the "Not Invented Here"(NIH) syndrome. It's a choice we made that works for our unique financial situation, but it's not something that we advocate for, or that we think would scale well in for-profit environments.

Orca is an esoteric language. It is also a live-coding environment, which means what it is esoteric to is a different set of behaviors, mainly languages designed for performance, with programs that can be altered as they run. This crossover is unusual, and I'm curious first could you describe how the idea of Orca evolved?

For instance, was the idea of each letter corresponding to a command part of the original concept or did it grow from experiments?

Orca was first a terminal utility designed to simulate moves on a game-board to help with the development of a project called Markl, in which the state of each character is represented by a single character.

The simulator was later re-purposed into a demake of Pico, a color-based game created a few years prior. This early iteration of Orca included some of the operators that are still part of it today. As the Pico playground became more popular, people started to point at the name and it overlapping with that of Pico-8 so the name was changed.

After asking around if anyone had a good name for a black and white monster, someone recommended Orca. We thought it fitting, and adopted the name.

We weren't very familiar with the concept of live-coding at that time, Orca was still described as Dwarf Fortress for music. I was growing increasingly interested in the Algorave scene, for which, the tagline is: Show Us Your Screens.

Orca seemed like the ideal candidate for a livecoding performance as it was designed from the ground-up as a golfing language, making it very fast compared to verbose languages like Haskell and Lisp. Operators like the cardinals(N, S, E & W) made it easier for the audience to track where all the notes were coming from.

Did (nonlivecoding) esolangs influence its design or internal logic at all? I know you've written about FRACTRAN; also the Funges come to mind with Orca's N,S,E, and W operators.

I became aware of esolangs during the development of Orca, I knew of Brainfuck and Nock, but I can't say that I fully understood the point of those until later, when I started to be more interested in programming.

Tell me about the larger Orca community. Has anyone created something with Orca that truly surprised you? Given the size of the community and language ecosystem (with Orca functioning as four different versions), is supporting the language a large ongoing task?

Some people have used Orca to control microcontrollers, visuals and video games. There was a robotics student in France who used Orca to move an articulated arm which was pretty neat.

The specs have not changed dramatically for some time, the operators have grown organically based on feedback from the community. Each implementation has different maintainers who try to follow the specs as best as they can, but each platform has their own specific needs, and therefore, their own specific operators.

For example, the Norns implementation in Lua has a LOT of custom operators to control the various sound engines of the device.

Also, I have to ask about Lietal. It's provided names for many of your projects (Arvelie etc) but do you also use it at all for every-day communication? What is it like to think in terms of Lietal?

Despite Lietal having its own syntax and grammar, it was originally meant as a synthetic language to create loanwords that can be used as part of other languages. For example, members of the Merveilles community adopted the use the old Lietal word "xoka", to say hello, which doesn't quite translate to hello but as "it's nice of you to come toward me".

Lietal was also created to indicate the names of spaces or things in the Neauismetica conworld which lives as music, games and illustrations.

The main concept of Lietal is that to talk about something, you must first understand what you're trying to describes. It's built from first principles, the philosophical idea being that every permutation of every elementary particle of the language would mean all things true and false.

How has your philosophy about open-source / free software / right to repair affected your distribution channels (the Apple Store, etc) and what technologies you adopt? You seem to work with a mix of newer and older platforms (like 6502); has this been a challenge in keeping the work accessible and usable?

Our philosophy of software development is advised principally by our lifestyle, and the internet and power scarcity that it entails. Since we build everything from a sailboat, our power comes principally from the solar energy we collect throughout the day. We normally only work on the computer while the sun is up.

This restriction forced us to consider ways to extend the life of our computer's batteries by discarding heavy toolchains, such as XCode. Bloated software such as Slack, or DRM-protected software such as Photoshop, were not viable options to us, so we turned to open-source to find software that we could repair ourselves, and that did not require constant internet access.

We found that even within open-source, a lot of software was poorly-built and did not address our specific needs, so we began building the missing pieces ourselves. We tried using web technologies at first, but the resulting applications were slow and inefficient, we have since rebuilt our tools in plain C.

You created your own LISP dialect, Lain, which now drives your image-drawing software, Ronin. First, why did you decide to do this as a LISP in particular, and what was it like constructing the language and building its first interpreter? Have you found that it's approachable for users of the platform? Also, it strikes me how inter-connected these projects are: there are many images on your site that seem to have used the de-saturation feature of Ronin.

I wanted a simple LISP to do some basic repetitive graphical tasks(resizing, cropping, etc), so I built a little playground to experiment with. The playground turned into a fully-featured engine to do photo manipulation and was a great help at that time, it allowed us to work from a Chromebook after one of our main laptop died, which was very handy.

We've used Ronin to resize, sharpen and colorize almost all the photos from our sites between 2017 and 2019. Lisp is a simple language to start exploring some more esoteric concepts, and move away from more traditional languages. Lisp is a slippery slope that leads inevitably to Forth.

Do "Lain" and "Ronin" come from Lital words with specific meanings?

The name Lain for the lisp dialect comes from the anime series with the same name, in which the main character uses Lisp on her laptop.

Lietal sounds like a Lojban-like language (a logical language for human expression) or perhaps Toki Pona, which promotes honesty (as a more realistic way of getting at "truth"). Is the thinking of Lietal built around trying to get the speaker to understand the core of what they're saying?

It's kind of a side-effect, in the sense that there are only 27 Lietal "words", everything else are compounds of these basic words. Saying complex things take a long time, and two people with a different understanding of a thing might not understand each other. You cannot say in Lietal(except for loanwords) "What is X", since for saying X, you must first describe it.

What role does the Neauismetica plays in your work? Is it something to daydream about, a set of stories that have been written, or is it more a general idea that fuels other projects? Is it a set of stories, an imaginary setting for other projects, something to discuss on long ocean voyages?

The Neauismetica is a conworld that exists through the music, games, aesthetics and language of a lot of the related projects. When I began writing about the world of Dinaisth, I had no plans to be living on a sailboat and crossing oceans—although, now looking back, and with hindsight, it seemed inevitable. During long passages, Rekka tells me tales of the world of Wiktopher, and I, of Dinaisth.

You say above that "Lisp is a slippery slope that leads inevitably to Forth" and have a Vogue cover on your Forth page. Is this the slippery slope of programming language aesthetic formalism? Forth and Lisp each have a simplicity that is at odds with the "every approach in one language" mindset of C# or Python.

Maybe simplicity in the same sense as a turing tarpit being simple, or simplicity as in someone being satisfied with a simple bowl of rice and lentils. As you realize that ultimately all these convenient data structures can fit within an OISC, you begin questioning if you really understand anything at all when you operate at that level of abstraction. My perfect computing experience is the one that makes itself obsolete.

Does that connect at all for you with esolangs (perhaps in your experiments with FRACTRAN)?

Absolutely, FRACTRAN seems like the purest expression of programming as it is found encoded within mathematics itself. I'm fascinated with the ideas surrounding the natural world itself to do computation.

Cooking is an other example of a practice that is both defined by constraint (the size of the kitchen on Pino, avoidance of refrigeration, veganism, etc) and public, in that you share what you continue to share what you've learned on your blog. Did the physical constraints of Pino help define how you wanted to approach cooking? Was this something you had to grow into -- have you ever fallen short of food you needed when out at sea, etc?

As one falls down the tower of babel into the Fractran abyss, we gradually realized that the convenience of refrigeration came at the cost of learning how to cook and preserve things properly. And it was a cost that was too high to bear, and so we learnt to do without. We've prioritized learning the primordial skills at the base of Maslow's Hierarchy of Needs like food, water and shelter—we can't say for certain that we've figured these out just yet, but we've found that we are at our most creative when we operate within tight limitations, or in survival situations where failing to secure water for a long transit would have a very real impact on our well-being, there's no better incentive than survival.

Where have you been during the pandemic? Are you hoping to sail again later this year?

We've spent most of the pandemic hidden in the foggy Japanese eastern coastline, in mostly deserted countryside towns. We also spent 51 days at sea, and a couple more in quarantine on the boat upon our arrival. The pandemic has been mostly something that we've experienced through the news.

Any new projects you'd like to share? What are you looking forward to next?

As platforms are into silos and everyone is turning to browsers, we're considering building a simple VM with graphical emulators and release our software as ROMs for it, and let people decide how they can use our tools themselves.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment