- Mindfulness meditation is one of the best ways I know to live faster without dying faster
- Tell a man to not be lazy, and his spirit may only hear "work hard". Tell a man to work hard and his spirit may learn to not be lazy.
-
-
Save michaeljklein/f455ecaefa24b7e9f149e1a5f2944d25 to your computer and use it in GitHub Desktop.
Flock is a 4-dimensional abstraction 😄
Software architects have to determine how systems fit together, often by creating diagrams, with varying degrees of ceremony.
Architects often fall into the trap of seeing software architecture as an equation they must solve.
This "trap" is over-constraining the architecture space: once you're at the equation level, you're already inside a strict model.
In other words, you're no longer strictly working on architecture.
Much of the commercial tooling sold to software architects reinforces the mathematical illusion of certainty with boxes, lines, and arrows.
While useful, these diagrams offer a 2D view—a snapshot of an ideal world—but we live in a 4D world.
To flesh out that 2D diagram, we must add specifics.
Exactly what I'm doing with Flock: 0D (characters) -> 1D (sentences) -> 2D (diagrams) -> 3D (models) -> 4D (Flock)
The ORM label Figure 1-4 becomes JDBC 2.1, evolving into a 3D view of the world, where architects prove their designs in a real production environment using real software.
As Figure 1-4 illustrates, over time, changes in business and technology require architects to adopt a 4D view of architecture, making evolution a first-class concern.
Which Flock addresses directly. It provides a toolkit for evolving it which includes explicit, strict, complete, parametrized, and modular requirements.
You can solve architecture problems in Flock by solving equations! Because the equations completely encapsulate the language!
When we know how to put architecture into production and upgrade it to incorporate inevitable changes
(security patches, new versions of software, evolutions of the architecture, and so on)
as needed, we’ve graduated to a 4D world.
"You think 4-D is your ally. You've merely adapted the dimensions. Flock was born in them, molded by them."
To stay within the model, there must be 4 distinct points in a line.
We also add introduction and conclusion
0 Introduction
0 1: 2, 3, 4, 5
1 Cat: Category, Categorical,
2 Dur: Duration, Durational,
3 Lit: Literal, Literal,
4 Nat: Natural, natural,
5 Conclusion
0 1: 2, 3, 4, 5
Being good is difficult, so I break it down into six steps:
0: Find what's good
1: Be good to yourself
2: Be good to individuals
3: Be good to relationships
4: Be good to families
5: Be good to systems
The above section(s) may be interpreted as a digraph, where vertices are definitions and arcs are dependent relations.
This digraph is isomorphic to the:
The chapters each provide a
parallel in dependency:
serialized:
traversal of all of the sub-hypercubes of the 4-hypercube.
The directed 4-hypercube is minimally 3-(edge)-connected, (removing any edge results in a 2-(edge)-connected graph?)
Each n-hypercube defines a n-dimensional language space,
The resulting space has explicit expressions, types, evaluation requirements/bounds, etc.
Thus the definitions trivially form a finite boolean algebra.
Furthermore, location in the cube is unique, and may be encoded using just:
2^(2^1) = 2^2 = 4
bits for 1 point2^(2^2) = 2^4 = 16
bits for 0..1 arcs, 1 path, 2 points2^(2^3) = 2^8 = 32
bits for 0..1 squares, 1 arc, 2 paths, 4 points2^(2^4) = 2^16 = 64
bits for 0..1 cubes, 1 square, 2 arcs, 4 paths, 8 points2^(2^5) = 2^32 = 128
bits for 0..1 4-hypercubes, 1 cube, 2 squares, 4 arcs, 8 paths, 16 points2^(2^6) = 2^64 = 256
bits for 0..1 5-hypercubes, 1 hypercube, 2 cubes, 4 squares, 8 arcs, 16 paths, 32 points2^(2^(n+1))
bits for 0..1 n-hypercubes, 2^i (n-(i+1))-hypercubes. (n+1) points, n pathsThe paper is organized to be a map of this language, with the chapters/sections/etc forming the nodes, which branch in parallel (independently) to sections, etc.
The tesseract, along with all hypercubes, tessellates Euclidean space