Updated documentation.
[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: http://svjatoslav.eu
22   - Email: mailto://svjatoslav@svjatoslav.eu
23
24 - [[http://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 - [[http://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=snapshot;h=HEAD;sf=tgz][Download latest snapshot in TAR GZ format]]
31
32 - [[http://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=summary][Browse Git repository online]]
33
34 - Clone Git repository using command:
35   : git clone http://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 Idea is to design all encompassing, flexible and powerful virtual
41 environment where I can live in and very efficiently do all my
42 computing tasks enjoyably and with playful ease.
43
44 [[id:c19c5a3b-dfb0-4f7f-961c-a387b925669f][See extensible, programmable computing environment examples]]. In each
45 case you can install or develop plugins/extensions for every purpose
46 imaginable.
47
48 I would like to create better general purpose environment with the
49 following properties:
50
51 + Makes lots of complex data intuitive to:
52   - explore, understand
53   - manipulate and compute on
54
55 + Extensively relying on:
56   - [[http://www3.svjatoslav.eu/projects/sixth-3d/][Realtime 3D graphics]] with immediate feedback loop.
57
58   #+BEGIN_QUOTE
59   “Virtual reality holds the key to the evolution of the human mind”
60   Dr. Lawrence Angelo, The Lawnmower Man (1992)
61   #+END_QUOTE
62
63 + [[http://www3.svjatoslav.eu/projects/sixth-data/][Flexible and distributed computation and data storage]].
64
65 + Cross device:
66   + Easily switch and/or combine computers to work seamlessly on any
67     tasks.
68
69   + User interface, data, software, running proceses and available
70     computing power is not contained or limited by boundaries of any
71     single device.
72
73 ** Extensible, programmable computing environment examples
74   :PROPERTIES:
75   :ID:       c19c5a3b-dfb0-4f7f-961c-a387b925669f
76   :END:
77 + [[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
78                runtime. Data storage and computation can be done in
79                [[https://www.defmacro.org/ramblings/lisp.html][Lisp]]. Emacs provides text buffers that can be used to
80                build GUI.
81
82 + [[https://www.eclipse.org/ide/][Eclipse IDE]] :: In essence [[https://en.wikipedia.org/wiki/OSGi][OSGi]] platform with a text
83                  editor. Computation done in java. Eclipse provides
84                  integration, runtime and GUI platform.
85
86 + [[https://en.wikipedia.org/wiki/IBM_Notes][IBM Notes/Domino]] :: Custom database engine, software development
87      platform, GUI editor, computation can be done in Java and
88      LotusScript.
89
90 + [[https://en.wikipedia.org/wiki/ABAP][SAP ABAP]] :: Custom database engine, runtime, GUI platform,
91               development environment and programming language.
92 * Current status
93 + Formulated high-level [[id:1f4e1c17-d25f-4d92-aa9b-5785f1d86f4f][vision / goal]].
94
95 + In the process of implementing some of [[id:52dbbf4c-2ef4-42a6-8331-ad006b6a52ae][building blocks]].
96
97 + System is nowhere near complete (given magnitude of effort required
98   and my free time available). Contributions welcome ! :)
99 * Architecture / components
100   :PROPERTIES:
101   :ID:       52dbbf4c-2ef4-42a6-8331-ad006b6a52ae
102   :END:
103 + [[http://www3.svjatoslav.eu/projects/sixth/][Sixth]] - Parent project.
104   + [[http://www3.svjatoslav.eu/projects/sixth-data/][Sixth Data]] - Data storage and computation engine.
105   + [[http://www3.svjatoslav.eu/projects/sixth-3d/][Sixth 3D]] - 3D engine - for user interface and data visualization.
106     + [[http://www3.svjatoslav.eu/projects/sixth-3d-demos/][Sixth 3D engine demos]] - Demonstration of Sixth 3D engine capabilities.
107 * Computation ideas
108 + Program - stored instructions for execution by computer.
109
110 + Process - Currently running program.
111   + Process is self contained. Has a full copy of program code and
112     every dependent library.
113
114     + Memory used by processes is content addressed/deduplicated at
115       low level in the system.
116
117     + This allows:
118       + Upgrading software installed in the system without breaking
119         already running processes.
120
121       + Easier migration of running processes between physical
122         computers.
123
124       + Possibility to suspend/resume arbitrary processes to permament
125         storage.
126
127       + Possibility checkpoint/revert running process.
128
129       + Possibility to clone/branch running process.
130
131 * Frequently Given Answers
132 - Why such name ?
133   - In short: it's just a number.
134   - Many years ago inspired by the ideas of [[https://en.wikipedia.org/wiki/Forth_(programming_language)][Forth (programming
135     language)]] I decided to create my own implementation [[http://www3.svjatoslav.eu/projects/fifth/][Fifth]]
136     (computing/programming environment).
137   - Then I realized I miss type safe object oriented capabilities. So
138     I updated the name to Sixth and switched to Java.