fcf563aed576c1a59abeeaf4729a33e6b1ee09ee
[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, extensible, adaptable, hackable, easy
43 to use, general purpose computing environment for working with
44 knowledge.
45
46 [[id:c19c5a3b-dfb0-4f7f-961c-a387b925669f][See extensible, programmable computing environment examples]].
47
48 I would like to create better general purpose computing environment
49 with the following priorities:
50
51 + Makes data and insights easy to discover, understand, manipulate,
52   transform and visualize.
53
54 + Workflow and user interface is intuitive, visual, realtime,
55   3D-first.
56
57   #+BEGIN_QUOTE
58   “Virtual reality holds the key to the evolution of the human mind”
59   Dr. Lawrence Angelo, The Lawnmower Man (1992)
60   #+END_QUOTE
61
62 + Computations are done primarily in [[https://www3.svjatoslav.eu/projects/sixth-data/][on versioned data in distributed,
63   scalable, arbitrary dimensional hypercube based geometrical
64   computation engine]].
65
66 + Free and open.
67
68 + Network first:
69   + Cross device:
70     + Easily switch devices and still access same data, workspaces and
71       visualizations.
72     + Easily access and combine storage and computing resources of
73       other connected devices.
74
75   + Ability to collaborate (multi user).
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]]. Lisp is
83   on itself programmable programming language where new paradigms can
84   be added dynamically. Domain specific languages to fit particular
85   problem could be developed as needed and Emacs extended to support
86   those languages. Emacs provides text buffers that can be used to
87   build user interfaces. So you can customize Emacs and Lisp to fit
88   any problem domain.
89
90 + [[https://www.eclipse.org/ide/][Eclipse IDE]] - In essence [[https://en.wikipedia.org/wiki/OSGi][OSGi]] platform with a text
91   editor. Computation done in java. Eclipse provides integration,
92   runtime and GUI platform. One can develop Eclipse plugins to add
93   necessary logic and visual parts to fit any problem. (IntelliJ and
94   NetBeans have similar properties)
95
96 + [[https://en.wikipedia.org/wiki/IBM_Notes][IBM Notes/Domino]] - Custom database engine, software development
97   platform, GUI editor, computation can be done in Java and
98   LotusScript. You can build distributed business applications on it
99   as a platform.
100
101 + [[https://en.wikipedia.org/wiki/ABAP][SAP ABAP]] - Custom database engine, runtime, GUI platform,
102   development environment and programming language. Is being used as a
103   platform to build business applications with any logic and UI.
104
105 + [[https://en.wikipedia.org/wiki/Microsoft_Access][Microsoft Access]] - Database management system that combines
106   relational database engine with a graphical user interface and
107   software-development tools.
108 * Current status
109 + Formulated high-level [[id:1f4e1c17-d25f-4d92-aa9b-5785f1d86f4f][vision / goal]].
110
111 + In the process of implementing some of [[id:52dbbf4c-2ef4-42a6-8331-ad006b6a52ae][building blocks]].
112
113 + System is nowhere near complete (given magnitude of effort required
114   and almost non-existent free time available). Contributions are
115   welcome !
116 * Architecture / components
117   :PROPERTIES:
118   :ID:       52dbbf4c-2ef4-42a6-8331-ad006b6a52ae
119   :END:
120 + [[https://www3.svjatoslav.eu/projects/sixth/][Sixth]] - Parent project.
121   + [[https://www3.svjatoslav.eu/projects/sixth-data/][Sixth Data]] - Data storage and computation engine.
122   + [[https://www3.svjatoslav.eu/projects/sixth-3d/][Sixth 3D]] - 3D engine - for user interface and data visualization.
123     + [[https://www3.svjatoslav.eu/projects/sixth-3d-demos/][Sixth 3D engine demos]] - Demonstration of Sixth 3D engine capabilities.
124
125 * Frequently Given Answers
126 - Why such name ?
127   - In short: it's just a number.
128   - Many years ago inspired by the ideas of [[https://en.wikipedia.org/wiki/Forth_(programming_language)][Forth (programming
129     language)]] I decided to create my own implementation [[https://www3.svjatoslav.eu/projects/fifth/][Fifth]]
130     (computing/programming environment).
131   - Forth/Fifth felt a bit too low-level language. So current
132     project/approach is an attempt using Java.