splitcells.net's Guidelines

Guidelines are just that. They are nothing more and nothing less. If these guidelines are overridden a reason should be present, and be documented or commented, if it is feasible.

For (programming) languages and document formats prefer using the most official or at least common guidelines, if there are no guidelines of this project applying to the aspect in question. In other words, language and documentation specific guidelines of this project try to only override public guidelines instead of writing complete custom guidelines from scratch. Guidelines of this project override public guidelines.

The project structure, its contents and products has to represent a discovery based network of perspectives and changes. The project and its parts should be portable, extendable, adaptable, deletable and comply with Perspective's guidelines .

This specifically means, that the file and content path of a particular information (for an XML element, this would be the file path + the XPath pointing to the XML element) should identify and describe or at least summarize the content's meaning. This also means, that in an ideal case, one should be able to guess, where to look, for a particular content without knowing where the files are located

wide screen

I created these code guidelines in order to do some thought experiments. Do not consider these code guide lines for your own code. If you do, people will hate you, and you’ll be scorned by friends and family. 

  1. splitcells
    1. dem
      1. README.html
      2. external-documentation.html
      3. guidelines
        1. backwards-compatibility.html
        2. complexity-management.html
        3. dependency.html
        4. documentation.html
        5. index.html
        6. infrastructure.html
        7. program-code.html
        8. project.html
        9. software-project-file-system-standards.html
        10. software-project-file-system-standards.todo.html
        11. task-management.html
        12. technology-stack.html
        13. xslt.html
      4. history.html
      5. index.html
      6. lang
        1. perspective
          1. guidelines
            1. networks.html
            2. perspectives.html
          2. index.html
      7. project
        1. compatibilty-and-portability.html
        2. data-as-source-code.html
        3. effect-system.html
        4. interfaces.html
    2. gel
      1. README.html
      2. constraint
        1. index.html
      3. history
        1. origin-of-the-project-generic-allocator.html
        2. universal-allocation-program-manual.html
      4. index.html
      5. latest-articles.html
      6. model
        1. optimization
          1. interactive
            1. guidelines.html
          2. typed-ratings.html
        2. rating
          1. index.html
      7. presentation
        1. covid.html
      8. problem
        1. theory
          1. assignment
            1. problem
              1. bibliography
                1. 10.1145.321958.321975.html
                2. 1995.DISKI.86.html
              2. complexity
                1. linear.html
                2. nonlinear.html
                3. quadratic.html
              3. index.deprecated.html
              4. index.html
              5. index.illustration.svg
              6. linear.deprecated.html
              7. multidimensional.html
      9. project
        1. artificial-intelligence.html
        2. compatibilty-and-portability.html
        3. constraint-language.html
        4. documentation.html
        5. endless-recursion.html
        6. new-articles.html
        7. persistency.html
        8. reasoning-system.html
        9. release-process.html
        10. test-injection.html
        11. user-interface.html
      10. solution
        1. Solution.html
      11. test
        1. functionality
          1. n-queen-problem
            1. constraint.graph.svg
            2. constraint.tree.svg
            3. illustration.svg
          2. n-queen-problem.html
          3. n-queen-problem.implementation.html
    3. martins
      1. avots
        1. website
          1. 404.html
          2. advertisement-object-social.html
          3. advertisement-object-technical.html
          4. archive
            1. academic-publishers-of-research-papers-etc-with-open-accessin-computer-science.html
            2. blogs-related-to-computer-science.html
            3. complete-correlation-matrix-memories-orthogonal-key.tests.html
            4. complete-correlation-matrix-memories.html
            5. html-to-image-conversion-via-wkhtmltopdf.html
            6. information-related-to-managment.html
            7. optimization-software.html
            8. publications-defining-optimization-problems.html
            9. publications-related-to-optimization-algorithms.html
            10. publications-related-to-optimization-software.html
            11. writings-related-to-complexities-relevant-to-optimization.html
          5. art
            1. a-city-at-night.html
            2. average-source-code-image-generator.html
            3. average-source-code.html
            4. bird_s-banner.html
            5. community-at-moonlight.html
            6. community.html
            7. dream-about-a-city-at-night.html
            8. gallery.html
            9. index.html
            10. little-big-present.html
            11. music.external.html
            12. neural-biological-cell.html
            13. neural-birds.html
            14. night-at-home.html
            15. simple-bird.html
            16. simple-ruins.html
            17. some-things-are-done-without-reason.html
            18. starting-to-learn-how-to-draw-face.html
            19. visiting-card.html
          6. crib-sheet
            1. emacs.html
            2. emacspeak.html
            3. microsoft-narrator.html
            4. sway.html
          7. dedicated-menu-page.html
          8. den
            1. style.css
            2. test.html
            3. test.minimal.html
          9. experimental
            1. browser.layout.html
            2. desktop.layout.html
          10. images
            1. icon.png
            2. icon.svg
            3. license.standard
              1. a.city.at.night.jpg
              2. average.source.code.image.generator.jpg
              3. average.source.code.insight.jpg
              4. average.source.code.jpg
              5. bird_s.banner.jpg
              6. black.background.blog.discovery.0.jpg
              7. black.background.blog.discovery.1.jpg
              8. black.background.blog.programming.0.jpg
              9. black.background.cooperation.discovery.jpg
              10. community.2016.12.11.chrom.0.dina4.jpg
              11. community.DSC02958.jpg
              12. community.DSC03192.jpg
              13. community.DSC03197.jpg
              14. dream.about.a.city.at.night.jpg
              15. gallery.0.jpg
              16. gallery.1.jpg
              17. gallery.2.jpg
              18. gallery.3.jpg
              19. gallery.4.jpg
              20. gallery.5.jpg
              21. gallery.6.jpg
              22. gallery.7.jpg
              23. little_big_present.jpg
              24. net.splitcells.network.logo.jpg
              25. neural.birds.2.jpg
              26. neural.birds.3.jpg
              27. neural.birds.4.jpg
              28. neural.birds.5.jpg
              29. neural.birds.6.jpg
              30. night.at.home.jpg
              31. simple.bird.jpg
              32. simple.ruins.jpg
              33. some_things_are_done_without_reason.1.jpg
              34. some_things_are_done_without_reason.2.jpg
              35. some_things_are_done_without_reason.3.jpg
              36. starting-to-learn-how-to-draw-a-face.jpg
              37. surreal.biological.cell.jpg
              38. thumbnail
                1. big
                  1. medium
                    1. small
                    2. white.background.blog.discovery.0.jpg
                    3. white.background.blog.discovery.1.jpg
                    4. white.background.blog.programming.0.jpg
                    5. white.background.cooperation.discovery.jpg
                    6. white.dream.about.a.city.at.night.jpg
                    7. white.project.logo.art.jpg
                    8. white.project.logo.generic.allocator.jpg
                2. index.html
                3. info
                  1. about-this-site.html
                  2. contact.html
                  3. visibility-problem.html
                  4. xml-based-blog-framework-for-splitcells-net.html
                4. js
                  1. advertisment.js
                  2. basic.default.js
                  3. basic.js
                  4. jquery.particleground.min.js
                  5. math-jax
                    1. tex-mml-chtml.js
                  6. syntaxhighlighter.white
                    1. index.html
                    2. syntaxhighlighter.js
                    3. syntaxhighlighter.js.map
                    4. theme.css
                5. legal
                  1. impressum.html
                  2. licensing.html
                  3. privacy-policy.html
                6. license-AGPL-3-0.txt
                7. license-Apache-2-0.txt
                8. license-CC-BY-SA-4.txt
                9. license-CC0-1-0.txt
                10. license-MIT.txt
                11. premature-content.html
                12. programming
                  1. calculus-languages.html
                  2. math-formulas-implementation-pitfall.html
                  3. programming-language-concepts.html
                  4. simplifying-the-ast-of-set-manipulation-via-foreach.html
                13. programs
                  1. index.html
                  2. search.html
                  3. vnc-client.html
                14. projects
                  1. index.html
                  2. operation-system-state-interface.html
                15. protocol
                  1. feed.atom.html
                  2. feed.rss.html
                  3. http-404-not-found.html
                  4. sitemap.html
                16. symbiosis
                  1. an-attempt-at-defining-intelligence.html
                  2. apocrypha-of-free-open-source-software.html
                  3. apocrypha-of-software-development.html
                  4. free-will.html
                  5. funding-of-free-open-source-software.html
                  6. hate-as-a-popular-tool-in-politics.html
                  7. index.html
                  8. the-end-justifies-the-means.html
                  9. the-hug-of-life-and-death.html
                17. test.html
                18. unstructured-thoughts
                  1. a-review-on-the-dell-s-xps-15-9570-as-a-mobile-workstation.html
                  2. external-documentation.html
                  3. fun-and-chill.html
                  4. index.html
                  5. soundboard.html
                19. websites
                  1. cards
                    1. visiting
                      1. back.htm
                      2. back.jpg
                      3. front.htm
                      4. front.jpg
                20. white
                  1. 2015
                    1. 03
                      1. 01
            4. network
              1. CHANGELOG.html
              2. README.html
              3. deployment.html
              4. dictionary.html
              5. external-contribution.html
              6. guidelines
                1. changelog.html
                2. commonmark.html
                3. gist
                  1. git.html
                  2. pgp.html
                4. linking.html
                5. maven.html
                6. source-types.html
                7. tickets.html
              7. legal
                1. Developer_Certificate_of_Origin.v1.1.html
                2. Developer_Certificate_of_Origin.v1.1.txt
                3. licenses
                  1. Apache-2.0.html
                  2. Apache-2.0.txt
                  3. BSD-2-Clause.html
                  4. BSD-2-Clause.txt
                  5. BSD-3-Clause.html
                  6. BSD-3-Clause.txt
                  7. EPL-2.0.html
                  8. EPL-2.0.txt
                  9. GPL-2.0-or-later-WITH-Classpath-exception-2.0.html
                  10. GPL-2.0-or-later-WITH-Classpath-exception-2.0.txt
                  11. ISC.html
                  12. ISC.txt
                  13. LGPL-2.1-or-later.html
                  14. LGPL-2.1-or-later.txt
                  15. MIT.html
                  16. MIT.txt
                  17. MPL-2.0.html
                  18. MPL-2.0.txt
              8. overview.html
              9. project.html
              10. tickets
                1. done
                  1. 0.html
                  2. 2.html
                  3. 77.html
                2. index.html
                3. open
                  1. 10.html
                  2. 37.html
                  3. 71.html
                  4. 72.html
            5. system
              1. README.html
              2. index.html
              3. project.html
            6. website
              1. 404.html
              2. css
                1. basic.css
                2. basic.themed.css
                3. den.css
                4. gallery.themed.css
                5. graphml.css
                6. layout.column.main.fullscreen.css
                7. layout.cooperation.css
                8. layout.default.css
                9. layout.default.with.two.main.columns.css
                10. theme.black.variables.css
                11. theme.white.variables.css
                12. theme.white.yellow.variables.css
              3. den
                1. style.css
                2. test.html
                3. test.minimal.html
              4. empty.html
              5. images
                1. icon.png
                2. icon.svg
                3. license.standard
                  1. a.city.at.night.jpg
                  2. average.source.code.image.generator.jpg
                  3. average.source.code.insight.jpg
                  4. average.source.code.jpg
                  5. bird_s.banner.jpg
                  6. black.background.blog.discovery.0.jpg
                  7. black.background.blog.discovery.1.jpg
                  8. black.background.blog.programming.0.jpg
                  9. black.background.cooperation.discovery.jpg
                  10. community.2016.12.11.chrom.0.dina4.jpg
                  11. community.DSC02958.jpg
                  12. community.DSC03192.jpg
                  13. community.DSC03197.jpg
                  14. dream.about.a.city.at.night.jpg
                  15. gallery.0.jpg
                  16. gallery.1.jpg
                  17. gallery.2.jpg
                  18. gallery.3.jpg
                  19. gallery.4.jpg
                  20. gallery.5.jpg
                  21. gallery.6.jpg
                  22. gallery.7.jpg
                  23. little_big_present.jpg
                  24. net.splitcells.network.logo.jpg
                  25. neural.birds.2.jpg
                  26. neural.birds.3.jpg
                  27. neural.birds.4.jpg
                  28. neural.birds.5.jpg
                  29. neural.birds.6.jpg
                  30. night.at.home.jpg
                  31. simple.bird.jpg
                  32. simple.ruins.jpg
                  33. some_things_are_done_without_reason.1.jpg
                  34. some_things_are_done_without_reason.2.jpg
                  35. some_things_are_done_without_reason.3.jpg
                  36. starting-to-learn-how-to-draw-a-face.jpg
                  37. surreal.biological.cell.jpg
                  38. thumbnail
                    1. big
                      1. a.city.at.night.jpg
                      2. average.source.code.image.generator.jpg
                      3. average.source.code.insight.jpg
                      4. average.source.code.jpg
                      5. bird_s.banner.jpg
                      6. community.2016.12.11.chrom.0.dina4.jpg
                      7. community.DSC02958.jpg
                      8. community.DSC03192.jpg
                      9. community.DSC03197.jpg
                      10. dream.about.a.city.at.night.jpg
                      11. little_big_present.jpg
                      12. neural.birds.2.jpg
                      13. neural.birds.3.jpg
                      14. neural.birds.4.jpg
                      15. neural.birds.5.jpg
                      16. neural.birds.6.jpg
                      17. night.at.home.jpg
                      18. simple.bird.jpg
                      19. simple.ruins.jpg
                      20. some_things_are_done_without_reason.1.jpg
                      21. some_things_are_done_without_reason.2.jpg
                      22. some_things_are_done_without_reason.3.jpg
                      23. starting-to-learn-how-to-draw-a-face.jpg
                      24. surreal.biological.cell.jpg
                      25. white.project.logo.art.jpg
                      26. white.project.logo.generic.allocator.jpg
                    2. medium
                      1. a.city.at.night.jpg
                      2. average.source.code.image.generator.jpg
                      3. average.source.code.insight.jpg
                      4. average.source.code.jpg
                      5. bird_s.banner.jpg
                      6. community.2016.12.11.chrom.0.dina4.jpg
                      7. community.DSC02958.jpg
                      8. community.DSC03192.jpg
                      9. community.DSC03197.jpg
                      10. dream.about.a.city.at.night.jpg
                      11. gallery.0.jpg
                      12. gallery.1.jpg
                      13. gallery.2.jpg
                      14. gallery.3.jpg
                      15. gallery.4.jpg
                      16. gallery.5.jpg
                      17. gallery.6.jpg
                      18. gallery.7.jpg
                      19. little_big_present.jpg
                      20. neural.birds.2.jpg
                      21. neural.birds.3.jpg
                      22. neural.birds.4.jpg
                      23. neural.birds.5.jpg
                      24. neural.birds.6.jpg
                      25. night.at.home.jpg
                      26. simple.bird.jpg
                      27. simple.ruins.jpg
                      28. some_things_are_done_without_reason.1.jpg
                      29. some_things_are_done_without_reason.2.jpg
                      30. some_things_are_done_without_reason.3.jpg
                      31. starting-to-learn-how-to-draw-a-face.jpg
                      32. surreal.biological.cell.jpg
                      33. white.project.logo.art.jpg
                      34. white.project.logo.generic.allocator.jpg
                    3. small
                      1. a.city.at.night.jpg
                      2. average.source.code.image.generator.jpg
                      3. average.source.code.insight.jpg
                      4. average.source.code.jpg
                      5. bird_s.banner.jpg
                      6. community.2016.12.11.chrom.0.dina4.jpg
                      7. community.DSC02958.jpg
                      8. community.DSC03192.jpg
                      9. community.DSC03197.jpg
                      10. dream.about.a.city.at.night.jpg
                      11. little_big_present.jpg
                      12. neural.birds.2.jpg
                      13. neural.birds.3.jpg
                      14. neural.birds.4.jpg
                      15. neural.birds.5.jpg
                      16. neural.birds.6.jpg
                      17. night.at.home.jpg
                      18. simple.bird.jpg
                      19. simple.ruins.jpg
                      20. some_things_are_done_without_reason.1.jpg
                      21. some_things_are_done_without_reason.2.jpg
                      22. some_things_are_done_without_reason.3.jpg
                      23. starting-to-learn-how-to-draw-a-face.jpg
                      24. surreal.biological.cell.jpg
                      25. white.project.logo.art.jpg
                      26. white.project.logo.generic.allocator.jpg
                  39. white.background.blog.discovery.0.jpg
                  40. white.background.blog.discovery.1.jpg
                  41. white.background.blog.programming.0.jpg
                  42. white.background.cooperation.discovery.jpg
                  43. white.dream.about.a.city.at.night.jpg
                  44. white.project.logo.art.jpg
                  45. white.project.logo.generic.allocator.jpg
              6. index.html
              7. js
                1. advertisment.js
                2. basic.default.js
                3. basic.js
                4. math-jax
                  1. tex-mml-chtml.js
                5. syntaxhighlighter.white
                  1. index.html
                  2. syntaxhighlighter.js
                  3. syntaxhighlighter.js.map
                  4. theme.css
              8. license-AGPL-3-0.txt
              9. license-Apache-2-0.txt
              10. license-CC-BY-SA-4.txt
              11. license-CC0-1-0.txt
              12. license-MIT.txt
              13. white
                1. 2015
                  1. 03
                    1. 01
                      1. impressum.html
            d:toDo
            • d:toDo
              • Minimize guideline.
            • d:toDo
              • Move framework specific guides to framework documentation or delete it, if this is covered by frameworks API.
            • d:toDo
              • Document dependency lifecycle of injection and integration.
            • d:todo
              • Meta Code Guidelines
              • d:todo
                • https://github.com/icy/bash-coding-style
              • d:todo
                • http://localhost:4000/white/index.html
              • d:todo
                • assertions (error detecting during execution and testing)
                • d:todo
                  • When to use assertions and when not.
                • d:todo
                  • Assert condition on actual objects directly. Do not assert variables representing the presence of a condition, as it makes debugging and error reporting harder. https://blog.smartcoders.xyz/2018/02/14/asserttrue-vs-assertthat-vs-assertj/
                • d:todo
                  • Assertions should have access to the underlining objects for better error reporting.
              • d:todo
                • consistency checks
              • d:todo
                • unit test
              • d:todo
                • integration test
              • d:todo
                • complete test
              • d:todo
                • naming conventions: suffixes
              • d:todo
                • naming conventions: verb, attribute, getter and setter
              • d:todo
                • naming conventions: Ensure state via active verbs as it makes short names and allows inefficient but simple implementations. i.e. package.state(INSTALLED) -> package.install (Note that the first version makes more sense in some cases. The first one can also be implemented as a wrapper for the second one.)
              • d:todo
                • up cast convention
              • d:todo
                • side effect free interfaces
              • d:todo
                • down cast convention: down casted objects should be not lead to interfaces with side effects (i.e. parting collection interface in multiple interfaces representing different access rights.).
              • d:todo
                • technical and domain specific interface: inheritance and composition rule
              • d:todo
                • Minimize the number of current migration to 1 migration per component.
              • d:todo
                • Avoid assertThat((boolean) ...)... in AssertJ as one may forget to write isTrue().
              • d:todo
                • Multi thread/process programming should not be about thread/process but about removing instruction dependencies.
              • d:todo
                • Every persistent task is part of a software project or a software project itself and should be contained inside a folder.
                • d:todo
                  • A software project is metadata like the .git files of Git repositories. Another example are the .idea folders of Intellji IDE projects.
                • d:todo
                  • If multiple software projects are added to the task folder, it is preferred to add software projects to the task folder. Wrapping the task folder with software projects recursively does not scale.
                  • d:todo
                    • If possible one could create a software project folder inside the folder where all software project files are put. Make sure to make the folder name unique i.e. ".meta.238" .
              • d:todo
                • Make all assumtions visible (i.e. nullable variables via Optional).
              • d:todo
                • https://devhints.io/
              • d:todo
                • https://www.jwz.org/doc/worse-is-better.html
                • d:todo
                  • Make consistent by making more simple things the consistent ones.
                • d:todo
                  • Make correct by making more simple things the correct ones.
              • d:toDo
                • Avoid software rewrites and prefer migration based development.
              • d:toDo
                • Projects are likely to grow and get out of scope.
              • d:toDo
                • Fork, join and cathedral development protocol.
              • d:toDo
                • Programs should be primarily seen as tree/table transformers in order to simplify programming paradigm and language use.
              • d:toDo
                • Migration based Development
              • d:toDo
                • Configuration automation guidelines.
              • d:toDo
                • Make it possible to tolerate out of date documentation.
              • d:toDo
                • Create containment protocol for side effects in Java code.