I've tried and failed to write a proper introduction to this thing a hundred times. In english and spanish.

It may be because it is still kind of half baked, but I can't keep it any more.

So I'll start to share notes here in an unlisted thread and, hopefully, it will get more clear as it goes.

Please feel free to tell me if it bothers in any way.

· · Web · 2 · 2 · 7

Right now it is a fictional system.
Its name is Ool.
It is beeing imagined in retroforth.
It isn't yet in developement.
It tries to be one of those editors in which you can live.
It is primarily designed to address my limitations in the hope of helping others too.

The name and many concepts came from:

In a nutshell:

- Every program is a literate program
- The main interface is a visual editor
- Ergonomics and discoverability over mnemonics
- Empowering instead of powerfull
- Only does what you teach and ask to do
- Only shows what you explicity ask to see
- Off-line first
- No bit moves over the network unless you ask
- Everything is persistent unless you explicitly compost it
- Using and programming, consumming and producing are integrated in the same flow

- Extending the UI is as simple as text editing and part of the daily use of the system
- As few abstractions/metaphores as possible consistent through the whole sistem
- As few features as possible
- Infinitely extensible
- Everything was deconstructed and renamed to create a new metaphoric landscape to allow us to tell happier stories
- Almost everything operates on selections and selections are lists of strings
- Themeable, of course :)

Borows some ideas from vim and the earthstar diamond and takes them to the extreme.

I'm terrible remembering commands so whant to use the keyboard as a bunch of buttons, unless while writing of course. So everything is based on phisical distribution instead of character mnemonics.

My only retrocomputing nostalgia is about a DOS based restaurant system that ran on a 286. It was slow but after a few days of work my fingers knew the whole choreography for common tasks so I was able to perform it and leave confident of the result.

I think this can free some brain for other tasks without compromising speed.

Selection is identical to movement but with left hand. It always creates lists and its reference goes to the stack so its easy to do (execute/run) words on it. The nature of the lists it creates adapts to the size you choose to perform it.

- If a continuous string of characters is selected with the character keys a single node list containing a string is created.
- If a rect is selected with the same keys (like in a collumn of numbers or a row of tab separated values) a list containing an item per column/row is created.
- and so on

This combined with filter, map and reduce creates a simple toolset that empowers the user to create their own solutions.

The seed bag (clipboard/kill-ring) ofers the usual functionality but you don't have to remember its contents, it's just another buffer and you can open it to modify its contents or select what to plant (paste).

Selections are added to it by copying or recollecting (cut).

Recollect is a word you can call everywhere over a list so it's possible, for example, to apply a reduction over a selection of numbers and recollect the result to the seed bag to plant it later.

Other use case could be to have a word that aplies citation formating to a selection and recollects it, so you can browse around creating citations for different sources and recollecting them and then create a new document and plant each one in a new context.

If there is a selection every hit finds next match. If nothing is selected an overlay accepting text is shown.
If the criteria is a file or a network address it gets opened in a new buffer.

Do interprets selection as forth code so its easy to create menues just listing words or interactive documents similar to notebooks in which you can select word definitions and "do" to make them available.

The plan is to base the editor in piece tables, to make undo and redo allways available and persistent between sessions.

The menu has two collumns. The one from the right takes its words from an editable text file. The left one takes its words from the first line of current file.

This allow to create document specific menus turning any document into a custom ad-hoc aplication.

It is also possible to create prompts in your words when user input is needed.

You can have 8 buffers opened at the same time. Buffer 9 is the seed bag and buffer 0 is help.

Well... more or less that's the core idea. Just a few abstractions you can combine to build custom applications out of text in any moment without preambles.

As allways, the interesting part is what every user does with it.

Combined with the powerfull retroforth interaction with the OS it's preety straight fordward to navigate and share interactive plain-text apps, show system info on request in an overlay or whatever.

Would love to hear/read your impressions, critics, etc about it.

Re-reading the thread and realizing that, beyond undo/redo, everything is preety doable even for me. So I'll try to implement everything else first maybe based on buffer gaps and leave the blocking part for the end.

- Consolidate the concept and write it down in english and spanish in
- Iterate over it aplying the forth metodology as many times as needed.
- Share and enjoy the result.
- Hopefully the process will give me the courage to deal with piece tables, how to serialize them between sessions and the undo/redo implementation.

Today I realized that, beyond any concatenative language, Ool can be implemented also in lisp like languages. Just cons the command with the selection before calling interpret.

Show newer

@maleza I'm excited to follow this as it grows and comes to life.

@maleza are you going to consolidate this stuff on pachapunk?

@neauoire yes it's the idea. Just needed too hard to spit it and stop starting new descriptions over and over.

@maleza This sounds super cool, I'd love to see it realized!

Sign in to participate in the conversation

Revel in the marvels of the universe. We are a collective of forward-thinking individuals who strive to better ourselves and our surroundings through constant creation. We express ourselves through music, art, games, and writing. We also put great value in play. A warm welcome to any like-minded people who feel these ideals resonate with them.