updated idea formulation
[sixth.git] / doc / index.org
1 #+TITLE: Sixth - system for data storage, computation, exploration and interaction
2
3 * (document settings) :noexport:
4 ** use dark style for TWBS-HTML exporter
5 #+HTML_HEAD: <link href="https://bootswatch.com/3/darkly/bootstrap.min.css" rel="stylesheet">
6 #+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
7 #+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
8 #+HTML_HEAD: <style type="text/css">
9 #+HTML_HEAD:   footer {background-color: #111 !important;}
10 #+HTML_HEAD:   pre {background-color: #111; color: #ccc;}
11 #+HTML_HEAD: </style>
12
13 * General
14 - This program is free software: you can redistribute it and/or modify
15   it under the terms of the [[https://www.gnu.org/licenses/lgpl.html][GNU Lesser General Public License]] as
16   published by the Free Software Foundation, either version 3 of the
17   License, or (at your option) any later version.
18
19 - Program author:
20   - Svjatoslav Agejenko
21   - Homepage: https://svjatoslav.eu
22   - Email: mailto://svjatoslav@svjatoslav.eu
23
24 - [[https://www.svjatoslav.eu/projects/][Other software projects hosted at svjatoslav.eu]]
25
26 ** Source code
27 + Note - Sixth is currently empty parent/shell project. You can find
28           working code under [[id:52dbbf4c-2ef4-42a6-8331-ad006b6a52ae][sub-projects]].
29
30 - [[https://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=snapshot;h=HEAD;sf=tgz][Download latest snapshot in TAR GZ format]]
31
32 - [[https://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=summary][Browse Git repository online]]
33
34 - Clone Git repository using command:
35   : git clone https://www2.svjatoslav.eu/git/sixth.git
36 * Vision - A tool to amplify human ability
37   :PROPERTIES:
38   :ID:       1f4e1c17-d25f-4d92-aa9b-5785f1d86f4f
39   :END:
40 Goal is, so called bicycle for the mind.
41
42 A tool, that provides powerful, easy to use computing environment for
43 solving wide range of problems.
44
45 [[id:c19c5a3b-dfb0-4f7f-961c-a387b925669f][See extensible, programmable computing environment examples]]. In each
46 case you can install or develop plugins/extensions for every purpose
47 imaginable.
48
49 I would like to create better general purpose environment with the
50 following properties:
51
52 + Makes data and insights easy to discover, understand and
53   manipulate/transform.
54
55 + Things are visual, realtime with immediate feedback.
56
57 + Extensively utilizes [[https://www3.svjatoslav.eu/projects/sixth-3d/][realtime 3D graphics]] and capabilities of human
58   visual perception.
59
60   #+BEGIN_QUOTE
61   “Virtual reality holds the key to the evolution of the human mind”
62   Dr. Lawrence Angelo, The Lawnmower Man (1992)
63   #+END_QUOTE
64
65
66 + Behind the scenes, computations are done primarily in[[https://www3.svjatoslav.eu/projects/sixth-data/][ on versioned
67   data in distributed, scalable, frexible computation engine]].
68
69 + Cross device:
70   + Easily switch and/or combine computers to work seamlessly on any
71     tasks.
72
73   + User interface, data, software, running proceses and available
74     computing power is not contained or limited by boundaries of any
75     single device.
76
77 ** Extensible, programmable computing environment examples
78   :PROPERTIES:
79   :ID:       c19c5a3b-dfb0-4f7f-961c-a387b925669f
80   :END:
81 + [[https://www.johndcook.com/blog/2008/04/27/one-program-to-rule-them-all/][GNU Emacs]] - At the heart, Emacs is text editor on top of Lisp
82   runtime. Data storage and computation can be done in [[https://www.defmacro.org/ramblings/lisp.html][Lisp]]. Domain
83   specific languages to fit particular problem could be developed as
84   needed and Emacs extended to support those languages. Emacs provides
85   text buffers that can be used to build user interfaces.
86
87 + [[https://www.eclipse.org/ide/][Eclipse IDE]] - In essence [[https://en.wikipedia.org/wiki/OSGi][OSGi]] platform with a text
88   editor. Computation done in java. Eclipse provides integration,
89   runtime and GUI platform.
90
91 + [[https://en.wikipedia.org/wiki/IBM_Notes][IBM Notes/Domino]] - Custom database engine, software development
92   platform, GUI editor, computation can be done in Java and
93   LotusScript.
94
95 + [[https://en.wikipedia.org/wiki/ABAP][SAP ABAP]] - Custom database engine, runtime, GUI platform,
96   development environment and programming language.
97 * Current status
98 + Formulated high-level [[id:1f4e1c17-d25f-4d92-aa9b-5785f1d86f4f][vision / goal]].
99
100 + In the process of implementing some of [[id:52dbbf4c-2ef4-42a6-8331-ad006b6a52ae][building blocks]].
101
102 + System is nowhere near complete (given magnitude of effort required
103   and my free time available). Contributions welcome ! :)
104 * Architecture / components
105   :PROPERTIES:
106   :ID:       52dbbf4c-2ef4-42a6-8331-ad006b6a52ae
107   :END:
108 + [[https://www3.svjatoslav.eu/projects/sixth/][Sixth]] - Parent project.
109   + [[https://www3.svjatoslav.eu/projects/sixth-data/][Sixth Data]] - Data storage and computation engine.
110   + [[https://www3.svjatoslav.eu/projects/sixth-3d/][Sixth 3D]] - 3D engine - for user interface and data visualization.
111     + [[https://www3.svjatoslav.eu/projects/sixth-3d-demos/][Sixth 3D engine demos]] - Demonstration of Sixth 3D engine capabilities.
112 * Computation ideas
113 + Program - stored instructions for execution by computer.
114
115 + Process - Currently running program.
116   + Process is self contained. Has a full copy of program code and
117     every dependent library.
118
119     + Memory used by processes is content addressed/deduplicated at
120       low level in the system.
121
122     + This allows:
123       + Upgrading software installed in the system without breaking
124         already running processes.
125
126       + Easier migration of running processes between physical
127         computers.
128
129       + Possibility to suspend/resume arbitrary processes to permament
130         storage.
131
132       + Possibility checkpoint/revert running process.
133
134       + Possibility to clone/branch running process.
135
136 * Frequently Given Answers
137 - Why such name ?
138   - In short: it's just a number.
139   - Many years ago inspired by the ideas of [[https://en.wikipedia.org/wiki/Forth_(programming_language)][Forth (programming
140     language)]] I decided to create my own implementation [[https://www3.svjatoslav.eu/projects/fifth/][Fifth]]
141     (computing/programming environment).
142   - Then I realized I miss type safe object oriented capabilities. So
143     I updated the name to Sixth and switched to Java.