updated idea formulation
[sixth.git] / doc / index.html
1 <!doctype html>
2 <html lang="en">
3 <head>
4 <title>Sixth - system for data storage, computation, exploration and interaction</title>
5 <!-- 2019-08-17 Sat 14:26 -->
6 <meta charset="utf-8">
7 <meta name="viewport" content="width=device-width, initial-scale=1">
8 <meta name="generator" content="Org-mode">
9 <meta name="author" content="Svjatoslav Agejenko">
10 <link href="https://bootswatch.com/3/darkly/bootstrap.min.css" rel="stylesheet">
11 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
12 <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
13 <style type="text/css">
14 footer {background-color: #111 !important;}
15 pre {background-color: #111; color: #ccc;}
16 </style>
17 <style type="text/css">
18 /* org mode styles on top of twbs */
19
20 html {
21     position: relative;
22     min-height: 100%;
23 }
24
25 body {
26     font-size: 18px;
27     margin-bottom: 105px;
28 }
29
30 footer {
31     position: absolute;
32     bottom: 0;
33     width: 100%;
34     height: 101px;
35     background-color: #f5f5f5;
36 }
37
38 footer > div {
39     padding: 10px;
40 }
41
42 footer p {
43     margin: 0 0 5px;
44     text-align: center;
45     font-size: 16px;
46 }
47
48 #table-of-contents {
49     margin-top: 20px;
50     margin-bottom: 20px;
51 }
52
53 blockquote p {
54     font-size: 18px;
55 }
56
57 pre {
58     font-size: 16px;
59 }
60
61 .footpara {
62     display: inline-block;
63 }
64
65 figcaption {
66   font-size: 16px;
67   color: #666;
68   font-style: italic;
69   padding-bottom: 15px;
70 }
71
72 /* from twbs docs */
73
74 .bs-docs-sidebar.affix {
75     position: static;
76 }
77 @media (min-width: 768px) {
78     .bs-docs-sidebar {
79         padding-left: 20px;
80     }
81 }
82
83 /* All levels of nav */
84 .bs-docs-sidebar .nav > li > a {
85     display: block;
86     padding: 4px 20px;
87     font-size: 14px;
88     font-weight: 500;
89     color: #999;
90 }
91 .bs-docs-sidebar .nav > li > a:hover,
92 .bs-docs-sidebar .nav > li > a:focus {
93     padding-left: 19px;
94     color: #A1283B;
95     text-decoration: none;
96     background-color: transparent;
97     border-left: 1px solid #A1283B;
98 }
99 .bs-docs-sidebar .nav > .active > a,
100 .bs-docs-sidebar .nav > .active:hover > a,
101 .bs-docs-sidebar .nav > .active:focus > a {
102     padding-left: 18px;
103     font-weight: bold;
104     color: #A1283B;
105     background-color: transparent;
106     border-left: 2px solid #A1283B;
107 }
108
109 /* Nav: second level (shown on .active) */
110 .bs-docs-sidebar .nav .nav {
111     display: none; /* Hide by default, but at >768px, show it */
112     padding-bottom: 10px;
113 }
114 .bs-docs-sidebar .nav .nav > li > a {
115     padding-top: 1px;
116     padding-bottom: 1px;
117     padding-left: 30px;
118     font-size: 12px;
119     font-weight: normal;
120 }
121 .bs-docs-sidebar .nav .nav > li > a:hover,
122 .bs-docs-sidebar .nav .nav > li > a:focus {
123     padding-left: 29px;
124 }
125 .bs-docs-sidebar .nav .nav > .active > a,
126 .bs-docs-sidebar .nav .nav > .active:hover > a,
127 .bs-docs-sidebar .nav .nav > .active:focus > a {
128     padding-left: 28px;
129     font-weight: 500;
130 }
131
132 /* Nav: third level (shown on .active) */
133 .bs-docs-sidebar .nav .nav .nav {
134     padding-bottom: 10px;
135 }
136 .bs-docs-sidebar .nav .nav .nav > li > a {
137     padding-top: 1px;
138     padding-bottom: 1px;
139     padding-left: 40px;
140     font-size: 12px;
141     font-weight: normal;
142 }
143 .bs-docs-sidebar .nav .nav .nav > li > a:hover,
144 .bs-docs-sidebar .nav .nav .nav > li > a:focus {
145     padding-left: 39px;
146 }
147 .bs-docs-sidebar .nav .nav .nav > .active > a,
148 .bs-docs-sidebar .nav .nav .nav > .active:hover > a,
149 .bs-docs-sidebar .nav .nav .nav > .active:focus > a {
150     padding-left: 38px;
151     font-weight: 500;
152 }
153
154 /* Show and affix the side nav when space allows it */
155 @media (min-width: 992px) {
156     .bs-docs-sidebar .nav > .active > ul {
157         display: block;
158     }
159     /* Widen the fixed sidebar */
160     .bs-docs-sidebar.affix,
161     .bs-docs-sidebar.affix-bottom {
162         width: 213px;
163     }
164     .bs-docs-sidebar.affix {
165         position: fixed; /* Undo the static from mobile first approach */
166         top: 20px;
167     }
168     .bs-docs-sidebar.affix-bottom {
169         position: absolute; /* Undo the static from mobile first approach */
170     }
171     .bs-docs-sidebar.affix .bs-docs-sidenav,.bs-docs-sidebar.affix-bottom .bs-docs-sidenav {
172         margin-top: 0;
173         margin-bottom: 0
174     }
175 }
176 @media (min-width: 1200px) {
177     /* Widen the fixed sidebar again */
178     .bs-docs-sidebar.affix-bottom,
179     .bs-docs-sidebar.affix {
180         width: 263px;
181     }
182 }
183 </style>
184 <script type="text/javascript">
185 $(function() {
186     'use strict';
187
188     $('.bs-docs-sidebar li').first().addClass('active');
189
190     $(document.body).scrollspy({target: '.bs-docs-sidebar'});
191
192     $('.bs-docs-sidebar').affix();
193 });
194 </script>
195 </head>
196 <body>
197 <div id="content" class="container">
198 <div class="row"><div class="col-md-9"><h1 class="title">Sixth - system for data storage, computation, exploration and interaction</h1>
199
200 <div id="outline-container-sec-1" class="outline-2">
201 <h2 id="sec-1"><span class="section-number-2">1</span> General</h2>
202 <div class="outline-text-2" id="text-1">
203 <ul class="org-ul">
204 <li>This program is free software: you can redistribute it and/or modify
205 it under the terms of the <a href="https://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License</a> as
206 published by the Free Software Foundation, either version 3 of the
207 License, or (at your option) any later version.
208 </li>
209
210 <li>Program author:
211 <ul class="org-ul">
212 <li>Svjatoslav Agejenko
213 </li>
214 <li>Homepage: <a href="https://svjatoslav.eu">https://svjatoslav.eu</a>
215 </li>
216 <li>Email: <a href="mailto://svjatoslav@svjatoslav.eu">mailto://svjatoslav@svjatoslav.eu</a>
217 </li>
218 </ul>
219 </li>
220
221 <li><a href="https://www.svjatoslav.eu/projects/">Other software projects hosted at svjatoslav.eu</a>
222 </li>
223 </ul>
224 </div>
225
226 <div id="outline-container-sec-1-1" class="outline-3">
227 <h3 id="sec-1-1"><span class="section-number-3">1.1</span> Source code</h3>
228 <div class="outline-text-3" id="text-1-1">
229 <ul class="org-ul">
230 <li>Note - Sixth is currently empty parent/shell project. You can find
231 working code under <a href="#sec-4">sub-projects</a>.
232 </li>
233
234 <li><a href="https://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=snapshot;h=HEAD;sf=tgz">Download latest snapshot in TAR GZ format</a>
235 </li>
236
237 <li><a href="https://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=summary">Browse Git repository online</a>
238 </li>
239
240 <li>Clone Git repository using command:
241 <pre class="example">
242 git clone https://www2.svjatoslav.eu/git/sixth.git
243
244 </pre>
245 </li>
246 </ul>
247 </div>
248 </div>
249 </div>
250 <div id="outline-container-sec-2" class="outline-2">
251 <h2 id="sec-2"><a id="ID-1f4e1c17-d25f-4d92-aa9b-5785f1d86f4f" name="ID-1f4e1c17-d25f-4d92-aa9b-5785f1d86f4f"></a><span class="section-number-2">2</span> Vision - A tool to amplify human ability</h2>
252 <div class="outline-text-2" id="text-2">
253 <p>
254 Goal is, so called bicycle for the mind.
255 </p>
256
257 <p>
258 A tool, that provides powerful, easy to use computing environment for
259 solving wide range of problems.
260 </p>
261
262 <p>
263 <a href="#sec-2-1">See extensible, programmable computing environment examples</a>. In each
264 case you can install or develop plugins/extensions for every purpose
265 imaginable.
266 </p>
267
268 <p>
269 I would like to create better general purpose environment with the
270 following properties:
271 </p>
272
273 <ul class="org-ul">
274 <li>Makes data and insights easy to discover, understand and
275 manipulate/transform.
276 </li>
277
278 <li>Things are visual, realtime with immediate feedback.
279 </li>
280
281 <li>Extensively utilizes <a href="https://www3.svjatoslav.eu/projects/sixth-3d/">realtime 3D graphics</a> and capabilities of human
282 visual perception.
283
284 <blockquote>
285 <p>
286 “Virtual reality holds the key to the evolution of the human mind”
287 Dr. Lawrence Angelo, The Lawnmower Man (1992)
288 </p>
289 </blockquote>
290 </li>
291 </ul>
292
293
294 <ul class="org-ul">
295 <li>Behind the scenes, computations are done primarily in<a href="https://www3.svjatoslav.eu/projects/sixth-data/"> on versioned
296 data in distributed, scalable, frexible computation engine</a>.
297 </li>
298
299 <li>Cross device:
300 <ul class="org-ul">
301 <li>Easily switch and/or combine computers to work seamlessly on any
302 tasks.
303 </li>
304
305 <li>User interface, data, software, running proceses and available
306 computing power is not contained or limited by boundaries of any
307 single device.
308 </li>
309 </ul>
310 </li>
311 </ul>
312 </div>
313
314 <div id="outline-container-sec-2-1" class="outline-3">
315 <h3 id="sec-2-1"><a id="ID-c19c5a3b-dfb0-4f7f-961c-a387b925669f" name="ID-c19c5a3b-dfb0-4f7f-961c-a387b925669f"></a><span class="section-number-3">2.1</span> Extensible, programmable computing environment examples</h3>
316 <div class="outline-text-3" id="text-2-1">
317 <ul class="org-ul">
318 <li><a href="https://www.johndcook.com/blog/2008/04/27/one-program-to-rule-them-all/">GNU Emacs</a> - At the heart, Emacs is text editor on top of Lisp
319 runtime. Data storage and computation can be done in <a href="https://www.defmacro.org/ramblings/lisp.html">Lisp</a>. Domain
320 specific languages to fit particular problem could be developed as
321 needed and Emacs extended to support those languages. Emacs provides
322 text buffers that can be used to build user interfaces.
323 </li>
324
325 <li><a href="https://www.eclipse.org/ide/">Eclipse IDE</a> - In essence <a href="https://en.wikipedia.org/wiki/OSGi">OSGi</a> platform with a text
326 editor. Computation done in java. Eclipse provides integration,
327 runtime and GUI platform.
328 </li>
329
330 <li><a href="https://en.wikipedia.org/wiki/IBM_Notes">IBM Notes/Domino</a> - Custom database engine, software development
331 platform, GUI editor, computation can be done in Java and
332 LotusScript.
333 </li>
334
335 <li><a href="https://en.wikipedia.org/wiki/ABAP">SAP ABAP</a> - Custom database engine, runtime, GUI platform,
336 development environment and programming language.
337 </li>
338 </ul>
339 </div>
340 </div>
341 </div>
342 <div id="outline-container-sec-3" class="outline-2">
343 <h2 id="sec-3"><span class="section-number-2">3</span> Current status</h2>
344 <div class="outline-text-2" id="text-3">
345 <ul class="org-ul">
346 <li>Formulated high-level <a href="#sec-2">vision / goal</a>.
347 </li>
348
349 <li>In the process of implementing some of <a href="#sec-4">building blocks</a>.
350 </li>
351
352 <li>System is nowhere near complete (given magnitude of effort required
353 and my free time available). Contributions welcome ! :)
354 </li>
355 </ul>
356 </div>
357 </div>
358 <div id="outline-container-sec-4" class="outline-2">
359 <h2 id="sec-4"><a id="ID-52dbbf4c-2ef4-42a6-8331-ad006b6a52ae" name="ID-52dbbf4c-2ef4-42a6-8331-ad006b6a52ae"></a><span class="section-number-2">4</span> Architecture / components</h2>
360 <div class="outline-text-2" id="text-4">
361 <ul class="org-ul">
362 <li><a href="https://www3.svjatoslav.eu/projects/sixth/">Sixth</a> - Parent project.
363 <ul class="org-ul">
364 <li><a href="https://www3.svjatoslav.eu/projects/sixth-data/">Sixth Data</a> - Data storage and computation engine.
365 </li>
366 <li><a href="https://www3.svjatoslav.eu/projects/sixth-3d/">Sixth 3D</a> - 3D engine - for user interface and data visualization.
367 <ul class="org-ul">
368 <li><a href="https://www3.svjatoslav.eu/projects/sixth-3d-demos/">Sixth 3D engine demos</a> - Demonstration of Sixth 3D engine capabilities.
369 </li>
370 </ul>
371 </li>
372 </ul>
373 </li>
374 </ul>
375 </div>
376 </div>
377 <div id="outline-container-sec-5" class="outline-2">
378 <h2 id="sec-5"><span class="section-number-2">5</span> Computation ideas</h2>
379 <div class="outline-text-2" id="text-5">
380 <ul class="org-ul">
381 <li>Program - stored instructions for execution by computer.
382 </li>
383
384 <li>Process - Currently running program.
385 <ul class="org-ul">
386 <li>Process is self contained. Has a full copy of program code and
387 every dependent library.
388
389 <ul class="org-ul">
390 <li>Memory used by processes is content addressed/deduplicated at
391 low level in the system.
392 </li>
393
394 <li>This allows:
395 <ul class="org-ul">
396 <li>Upgrading software installed in the system without breaking
397 already running processes.
398 </li>
399
400 <li>Easier migration of running processes between physical
401 computers.
402 </li>
403
404 <li>Possibility to suspend/resume arbitrary processes to permament
405 storage.
406 </li>
407
408 <li>Possibility checkpoint/revert running process.
409 </li>
410
411 <li>Possibility to clone/branch running process.
412 </li>
413 </ul>
414 </li>
415 </ul>
416 </li>
417 </ul>
418 </li>
419 </ul>
420 </div>
421 </div>
422
423 <div id="outline-container-sec-6" class="outline-2">
424 <h2 id="sec-6"><span class="section-number-2">6</span> Frequently Given Answers</h2>
425 <div class="outline-text-2" id="text-6">
426 <ul class="org-ul">
427 <li>Why such name ?
428 <ul class="org-ul">
429 <li>In short: it's just a number.
430 </li>
431 <li>Many years ago inspired by the ideas of <a href="https://en.wikipedia.org/wiki/Forth_(programming_language)">Forth (programming
432 language)</a> I decided to create my own implementation <a href="https://www3.svjatoslav.eu/projects/fifth/">Fifth</a>
433 (computing/programming environment).
434 </li>
435 <li>Then I realized I miss type safe object oriented capabilities. So
436 I updated the name to Sixth and switched to Java.
437 </li>
438 </ul>
439 </li>
440 </ul>
441 </div>
442 </div>
443 </div><div class="col-md-3"><nav id="table-of-contents">
444 <div id="text-table-of-contents" class="bs-docs-sidebar">
445 <ul class="nav">
446 <li><a href="#sec-1">1. General</a>
447 <ul class="nav">
448 <li><a href="#sec-1-1">1.1. Source code</a></li>
449 </ul>
450 </li>
451 <li><a href="#sec-2">2. Vision - A tool to amplify human ability</a>
452 <ul class="nav">
453 <li><a href="#sec-2-1">2.1. Extensible, programmable computing environment examples</a></li>
454 </ul>
455 </li>
456 <li><a href="#sec-3">3. Current status</a></li>
457 <li><a href="#sec-4">4. Architecture / components</a></li>
458 <li><a href="#sec-5">5. Computation ideas</a></li>
459 <li><a href="#sec-6">6. Frequently Given Answers</a></li>
460 </ul>
461 </div>
462 </nav>
463 </div></div></div>
464 <footer id="postamble" class="">
465 <div><p class="author">Author: Svjatoslav Agejenko</p>
466 <p class="date">Created: 2019-08-17 Sat 14:26</p>
467 <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 26.1 (<a href="http://orgmode.org">Org-mode</a> 9.1.9)</p>
468 </div>
469 </footer>
470 </body>
471 </html>