1
0
Fork 0

Split implementation plan for the ActivityOS into a separate file.

This commit is contained in:
Lyberta 2024-07-11 19:17:32 +03:00
parent 97df37d949
commit b91d6e33b7
3 changed files with 14 additions and 15 deletions

View file

@ -47,17 +47,3 @@ An action is a set of commands that must be executed with the given file. Action
## Keep things fluid, avoid rigid heirarchies
At the top level there should be a set of activities, libraries, tags and actions. Each activity can have more than 1 library. Each library can belong into more than 1 activity. Etc. It's all graphs, not trees.
## Implementation details
There are 2 modes of implementing this system: transitional mode and pure mode. Transitional mode is designed to run on top on an existing OS. Pure mode gives full control to the ActivityOS. Linux kernel can still be used just like on Android, at least initially.
Actually, [GNOME Shell](https://en.wikipedia.org/wiki/GNOME_Shell) seems to be the best base to start coordinated ActivityOS efforts as it already has the Activities button.
GNOME Files (also known as Nautilus) needs to have an ability to add Linux VFS directories as Libraries which would be then be stored in a virtual tag-based file system on a higher level of abstraction. Then libraries can be properly tagged by the user or GNOME itself in case of mechanical tags which can be inferred from the file itself (think [MediaInfo](https://en.wikipedia.org/wiki/MediaInfo)).
Once tagged libraries are implemented, it's all about adding a proper UI to create and manage activities.
### Lazy tags
Some automatic tags are too expensive to compute every time the file is changed. Hence, it makes sense to store a flag on file modification that tag value has to be freshly computed next time it is queried. Then there can be a command similar to [`sync`](https://linux.die.net/man/8/sync) to force recomputation of all lazy tags.

View file

@ -0,0 +1,13 @@
# Implementation plan for ActivityOS
## Start by forking [GNOME Shell](https://en.wikipedia.org/wiki/GNOME_Shell)
It already has the Activities button so it makes a perfect candidate for a fork.
GNOME Files (also known as Nautilus) needs to have an ability to add Linux VFS directories as Libraries which would be then be stored in a virtual tag-based file system on a higher level of abstraction. Then libraries can be properly tagged by the user or GNOME itself in case of mechanical tags which can be inferred from the file itself (think [MediaInfo](https://en.wikipedia.org/wiki/MediaInfo)).
Once tagged libraries are implemented, it's all about adding a proper UI to create and manage activities.
### Lazy tags
Some automatic tags are too expensive to compute every time the file is changed. Hence, it makes sense to store a flag on file modification that tag value has to be freshly computed next time it is queried. Then there can be a command similar to [`sync`](https://linux.die.net/man/8/sync) to force recomputation of all lazy tags.

View file

@ -36,7 +36,7 @@ However, you can talk to us on:
* A [simple universal language](Language.md) for beings to exchange information with minimum overhead.
* A universal [computer architecture](https://en.wikipedia.org/wiki/Computer_architecture) capable of performing [fundamentally accurate physics simulations](Units.md).
* A [universal operating system](ActivityOS.md) to help empower beings. Knowledge is a graph, we need to free ourselves of the chains of desktop metaphor and tree-based file system. We need an extension of our own brains to help us.
* A [universal operating system](Operating System/Design.md) to help empower beings. Knowledge is a graph, we need to free ourselves of the chains of desktop metaphor and tree-based file system. We need an extension of our own brains to help us.
* [A programming language](https://en.wikipedia.org/wiki/Programming_language) based on a simple universal language. So that as many people can be empowered to learn programming. We can go past the arrogance of the 1970s academia and the C programming language. The arrogance and the lack of self-awareness of the UNIX people brought decades of bugs which has causes significant economic damage and uncountable pain and suffering.
* Automatic refactoring tools to convert code written in old programming languages into a new one. It is wise to maintain the technological capital while giving it a path forward.
* [Automatic testing](https://en.wikipedia.org/wiki/Test_automation), [CI](https://en.wikipedia.org/wiki/Continuous_integration), [code coverage](https://en.wikipedia.org/wiki/Code_coverage) tools to make sure any new code is free of [bugs](https://en.wikipedia.org/wiki/Software_bug). Humans are notorious at creating bugs so bugs must be caught as early as possible.