changed license to CC0
[sixth.git] / doc / index.org
index a4d464c..b98cb04 100644 (file)
 #+TITLE: Sixth - system for data storage, computation, exploration and interaction
 
------
-- [[http://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=snapshot;h=HEAD;sf=tgz][download latest snapshot]]
+* (document settings) :noexport:
+** use dark style for TWBS-HTML exporter
+#+HTML_HEAD: <link href="https://bootswatch.com/3/darkly/bootstrap.min.css" rel="stylesheet">
+#+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
+#+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
+#+HTML_HEAD: <style type="text/css">
+#+HTML_HEAD:   footer {background-color: #111 !important;}
+#+HTML_HEAD:   pre {background-color: #111; color: #ccc;}
+#+HTML_HEAD: </style>
 
-- This program is free software; you can redistribute it and/or modify it under
-  the terms of version 3 of the [[https://www.gnu.org/licenses/lgpl.html][GNU Lesser General Public License]] or later as
-  published by the Free Software Foundation.
+* General
+- This program is free software: released under Creative Commons Zero
+  (CC0) license
 
 - Program author:
   - Svjatoslav Agejenko
-  - Homepage: http://svjatoslav.eu
+  - Homepage: https://svjatoslav.eu
   - Email: mailto://svjatoslav@svjatoslav.eu
 
-- [[http://svjatoslav.eu/programs.jsp][other applications hosted at svjatoslav.eu]]
+- [[https://www.svjatoslav.eu/projects/][Other software projects hosted at svjatoslav.eu]]
 
-* (document settings) :noexport:
-** use dark style for TWBS-HTML exporter
-#+HTML_HEAD: <link href="https://bootswatch.com/darkly/bootstrap.min.css" rel="stylesheet">
-#+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
-#+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script>"
-#+HTML_HEAD: <style type="text/css">
-#+HTML_HEAD:   footer {background-color: #111 !important;}
-#+HTML_HEAD:   pre {background-color: #111; color: #ccc;}
-#+HTML_HEAD: </style>
+** Source code
++ Note - Sixth is currently empty parent/shell project. You can find
+          working code under [[id:52dbbf4c-2ef4-42a6-8331-ad006b6a52ae][sub-projects]].
+
+- [[https://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=snapshot;h=HEAD;sf=tgz][Download latest snapshot in TAR GZ format]]
 
-* Vision / goal - A tool to amplify human ability
+- [[https://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=summary][Browse Git repository online]]
+
+- Clone Git repository using command:
+  : git clone https://www2.svjatoslav.eu/git/sixth.git
+* Vision - A tool to amplify human ability
   :PROPERTIES:
   :ID:       1f4e1c17-d25f-4d92-aa9b-5785f1d86f4f
   :END:
-In short, this is what I want:
+Goal is, so called bicycle for the mind.
 
-- [[id:4224d52c-2ee1-411a-bd89-77c286322b21][Perfect data storage and computation engine]]
+A tool, that provides powerful, extensible, adaptable, hackable, easy
+to use, general purpose computing environment for working with
+knowledge.
 
-- Feeds lots of complex data into your brain in intuitive to explore,
-  understand and manipulate form by extensively relying on realtime 3D
-  graphics and fast feedback loop. (including virtual reality support)
+[[id:c19c5a3b-dfb0-4f7f-961c-a387b925669f][See extensible, programmable computing environment examples]].
 
-    #+BEGIN_QUOTE
-    “Virtual reality holds the key to the evolution of the human mind”
-    Dr. Lawrence Angelo, The Lawnmower Man (1992)
-    #+END_QUOTE
+I would like to create better general purpose computing environment
+with the following priorities:
 
-- Why such name ?
-  - In short: it's just a number.
-  - Many years ago inspired by the ideas of [[https://en.wikipedia.org/wiki/Forth_(programming_language)][Forth (programming
-    language)]] I decided to create my own implementation [[http://www2.svjatoslav.eu/gitbrowse/fifth/doc/index.html][Fifth]]
-    (computing/programming environment).
-  - Then I realized I miss type safe object oriented capabilities. So
-    I updated the name to Sixth and switched to Java.
++ Makes data and insights easy to discover, understand, manipulate,
+  transform and visualize.
 
-** Perfect data storage and computation engine
-  :PROPERTIES:
-  :ID:       4224d52c-2ee1-411a-bd89-77c286322b21
-  :END:
++ Workflow and user interface is intuitive, visual, realtime,
+  3D-first.
+
+  #+BEGIN_QUOTE
+  “Virtual reality holds the key to the evolution of the human mind”
+  Dr. Lawrence Angelo, The Lawnmower Man (1992)
+  #+END_QUOTE
+
++ Computations are done primarily in [[https://www3.svjatoslav.eu/projects/sixth-data/][on versioned data in distributed,
+  scalable, arbitrary dimensional hypercube based geometrical
+  computation engine]].
 
-I hate to choose between good things. Figuring out a way to combine
-below properties in one system would be beyond awesome.
-
-(That`s the high level overview, details are slowly being worked
-out...)
-
-*** Computation
-+ Lisp (programming language):
-  + Almost no syntax.
-  + Code and data intercangeable.
-  + Easily self modifying.
-  + (The big Lisp idea: https://dev.to/ericnormand/the-idea-of-lisp )
-
-+ Smalltalk (programming language / runtime):
-  + Everything is object.
-  + On the fly modifiable / reprogrammable.
-  + Anything can be suspended/resumed from persistent storage on the
-    fly.
-
-+ Hadoop (computation system):
-  + Many individual connected computers behave as one big
-    computer. System is horizontally linearly scalable.
-  + Programming abstraction and execution model that naturally divides
-    problems te be solved in parallel and result easily combined.
-  + Data is spread across nodes, automatic failover, built in
-    resiliency.
-  + Small pieces of code are automatically transferred to the node
-    that contains relatively big data that needs processing (network
-    efficiency).
-
-*** Data storage
-See: [[http://www2.svjatoslav.eu/gitbrowse/sixth-data/doc/index.html][Sixth data subproject]]
-
-+ Relational databases:
-  + Transactional
-  + Indexable / Quickly searchable
-
-+ Git (version control system)
-  + Versionable
-  + Branchable / mergeable.
-  + Transparent cansistency, checksumming and deduplication.
-  + (Git as a database:
-    https://www.kenneth-truyers.net/2016/10/13/git-nosql-database/ )
++ Free and open.
 
++ Network first:
+  + Cross device:
+    + Easily switch devices and still access same data, workspaces and
+      visualizations.
+    + Easily access and combine storage and computing resources of
+      other connected devices.
+
+  + Ability to collaborate (multi user).
+
+** Extensible, programmable computing environment examples
+  :PROPERTIES:
+  :ID:       c19c5a3b-dfb0-4f7f-961c-a387b925669f
+  :END:
++ [[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
+  runtime. Data storage and computation can be done in [[https://www.defmacro.org/ramblings/lisp.html][Lisp]]. Lisp is
+  on itself programmable programming language where new paradigms can
+  be added dynamically. Domain specific languages to fit particular
+  problem could be developed as needed and Emacs extended to support
+  those languages. Emacs provides text buffers that can be used to
+  build user interfaces. So you can customize Emacs and Lisp to fit
+  any problem domain.
+
++ [[https://www.eclipse.org/ide/][Eclipse IDE]] - In essence [[https://en.wikipedia.org/wiki/OSGi][OSGi]] platform with a text
+  editor. Computation done in java. Eclipse provides integration,
+  runtime and GUI platform. One can develop Eclipse plugins to add
+  necessary logic and visual parts to fit any problem. (IntelliJ and
+  NetBeans have similar properties)
+
++ [[https://en.wikipedia.org/wiki/IBM_Notes][IBM Notes/Domino]] - Custom database engine, software development
+  platform, GUI editor, computation can be done in Java and
+  LotusScript. You can build distributed business applications on it
+  as a platform.
+
++ [[https://en.wikipedia.org/wiki/ABAP][SAP ABAP]] - Custom database engine, runtime, GUI platform,
+  development environment and programming language. Is being used as a
+  platform to build business applications with any logic and UI.
+
++ [[https://en.wikipedia.org/wiki/Microsoft_Access][Microsoft Access]] - Database management system that combines
+  relational database engine with a graphical user interface and
+  software-development tools.
 * Current status
 + Formulated high-level [[id:1f4e1c17-d25f-4d92-aa9b-5785f1d86f4f][vision / goal]].
 
-+ In the process of implementing some of building blocks:
-  - [[http://www2.svjatoslav.eu/gitbrowse/sixth-data/doc/index.html][Data storage engine.]]
-
-  - [[http://www2.svjatoslav.eu/gitbrowse/sixth-3d/doc/index.html][In software, pure Java realtime 3D rendering engine.]]
-    - [[http://www2.svjatoslav.eu/gitbrowse/sixth-3d-demos/doc/index.html][3D engine demos]]
++ In the process of implementing some of [[id:52dbbf4c-2ef4-42a6-8331-ad006b6a52ae][building blocks]].
 
 + System is nowhere near complete (given magnitude of effort required
-  and my free time available). Contributions welcome ! :)
+  and almost non-existent free time available). Contributions are
+  welcome !
+* Architecture / components
+  :PROPERTIES:
+  :ID:       52dbbf4c-2ef4-42a6-8331-ad006b6a52ae
+  :END:
++ [[https://www3.svjatoslav.eu/projects/sixth/][Sixth]] - Parent project.
+  + [[https://www3.svjatoslav.eu/projects/sixth-data/][Sixth Data]] - Data storage and computation engine.
+  + [[https://www3.svjatoslav.eu/projects/sixth-3d/][Sixth 3D]] - 3D engine - for user interface and data visualization.
+    + [[https://www3.svjatoslav.eu/projects/sixth-3d-demos/][Sixth 3D engine demos]] - Demonstration of Sixth 3D engine capabilities.
+
+* Frequently Given Answers
+- Why such name ?
+  - In short: it's just a number.
+  - Many years ago inspired by the ideas of [[https://en.wikipedia.org/wiki/Forth_(programming_language)][Forth (programming
+    language)]] I decided to create my own implementation [[https://www3.svjatoslav.eu/projects/fifth/][Fifth]]
+    (computing/programming environment).
+  - Forth/Fifth felt a bit too low-level language. So current
+    project/approach is an attempt using Java.