* Webrings
This website is a part of these webrings:
-
-[[https://baccyflap.com][<]] [[https://nullring.xyz][nullring]] [[https://pen15.agency][>]]
+[[https://tommi.space][<]] [[https://nullring.xyz][nullring]] [[https://pen15.agency][>]]
* About Me
** whoami?
#+html_head: <meta name="viewport" content="width=1000; user-scalable=0;" />
#+language: en
#+OPTIONS: broken-links:t
-
-* Introduction
-Cognition is an active research project that Matthew Hinton and I have been working on for the past
-couple of months. Although my commit history for [[https://github.com/metacrank/cognition][this project]] has not been impressive, we came up with
-a lot of the theory together, working alongside each other in order to achieve one of the most generalized
-systems of syntax we know of. Let's take a look at the conceptual reason why cognition needs to exist, as
-well as some /baremetal cognition/ code (you'll see what I mean by this later). There's a paper about this language
-available about the language in the repository, for those interested. Understanding cognition might require a
-lot of background in parsing, tokenization, and syntax, but I've done my best to write this in a very understandable way.
-The repository is available at https://github.com/metacrank/cognition, for your information.
* The problem
Lisp programmers claim that their system of s-expression code in addition to its featureful macro system makes it a
metaprogrammable and generalized system. This is of course true, but there's something very broken with lisp: metaprogramming
So, what's the percise solution to this connundrum? Well, it's beautiful; but it requires some /cognition/.
+* Introduction
+Cognition is an active research project that Matthew Hinton and I have been working on for the past
+couple of months. Although my commit history for [[https://github.com/metacrank/cognition][this project]] has not been impressive, we came up with
+a lot of the theory together, working alongside each other in order to achieve one of the most generalized
+systems of syntax we know of. Let's take a look at the conceptual reason why cognition needs to exist, as
+well as some /baremetal cognition/ code (you'll see what I mean by this later). There's a paper about this language
+available about the language in the repository, for those interested. Understanding cognition might require a
+lot of background in parsing, tokenization, and syntax, but I've done my best to write this in a very understandable way.
+The repository is available at https://github.com/metacrank/cognition, for your information.
+
+#+CAPTION: The Cognition programming language, logo designed by Matthew Hinton
+[[file:img/coglogo.png]]
* Baremetal Cognition
Baremetal cognition has a couple of perculiar attributes, and it is remarkably like the /Brainfuck/ programming language.
But unlike its look-alike, it has the ability to do some /serious metaprogramming/. Let's take a look at what the
dfiff1 crank f
#+end_example
-And *do* note the whitespace (line 2 has a whitespace after df, and the newlines matter). Erm, okay. What?
+And *do* note the whitespace (line 2 has a whitespace after df, line 3 has a whitespace, and the newlines matter).
+Erm, okay. What?
So, our goal in this post is to get from a syntax that looks like /that/ to a syntax that looks like [[file:stem.org][Stem]].
But how on earth does this piece of code even work? Well, we have to introduce two new ideas: delimiters, and ignores.
can execute per token tokenized, and the lower metacrank gets priority. Note that metacrank and, by extension, crank,
don't /just/ depend on tokenized words; they also work while evaluating word definitions recursively, meaning if a word
is evaluated in ~2 crank~, one out of two words will execute in each level of the evaluation tree. You can play around
-with this in the repl to get a sense of how it works: run ~../crank bootstrap.cog repl.cog devel.cog load~, and use stem
-like syntax in order to define a function. Then, run that function in ~2 crank~. You will see how the evaluation tree
-respects cranking in the same way that the program file itself does.
+with this in the repl to get a sense of how it works: run ~../crank bootstrap.cog repl.cog devel.cog load~
+in the coglib folder, and use stem like syntax in order to define a function. Then, run that function in ~2 crank~.
+You will see how the evaluation tree respects cranking in the same way that the program file itself does.
Metacrank allows for not only metaprogramming in the form of code building, but also
direct syntax manipulation (i.e. /I want to execute this token once I have read n other token(s)/). The advantages to
that it does by going into the ~coglib~ folder and running ~../crank bootstrap.cog repl.cog devel.cog load~, which will load
the REPL and load ~devel.cog~, which will in turn load ~comment.cog~.
** The Great Escape
-Here we define a preliminary prefix escape character:
+Here, we accelerate our way out of this primitive syntax, and it all starts with the great escape character. We make
+many great leaps in this section that aren't entirely explained for the sake of brevity, but you are free to play around
+with all of these things by using the repl. In any case, I hope you will enjoy this great leap in syntax technology; by
+the end, we will have reached something with real /structure/.
+
+Here we define a preliminary prefix escape character. Also you will notice that ~2crank ing 0 crank~ is used as
+padding between lines:
#+begin_example
2crank ing 2 crank comment.cog load
2crank ing 0 crank
of the already existing code that makes cognition work. In short, the system allows for true /syntax as code/, as my
friend Andrei put it; one can /dynamically program/ and even /automate/ the production of syntax. In this article, we
didn't have the space to cover other important Cognition concepts like the /Metastack/ and words like ~cd~, but this
-can be done in a part 2 of this blog post.
+can be done in a part 2 of this blog post. For now, let's leave off here, and we can meet here once more for a /part two/.
--- /dev/null
+#+title: Representative Voting
+#+author: Preston Pan
+#+description: What do we do about voter turnout? Voting demographics? Polarization?
+#+html_head: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
+#+html_head: <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
+#+html_head: <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
+#+html_head: <link rel="manifest" href="/site.webmanifest">
+#+html_head: <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
+#+html_head: <meta name="msapplication-TileColor" content="#da532c">
+#+html_head: <meta name="theme-color" content="#ffffff">
+#+html_head: <meta name="viewport" content="width=1000; user-scalable=0;" />
+#+language: en
+#+OPTIONS: broken-links:t
+* Introduction
+Current voting systems are broken, and people argue about ways to solve it. Many talk about about ranked-choice
+voting or other ballot-systems, but I argue that the real problem in voting has to do with game theory principles.
+In this article I endorse a system that has been tried out before, but has been forgotten: /random representation/. I
+argue that it has game theoretic foundations that make it superior to other kinds of voting systems.
+
+** The Model
+Let us assume that there is a small probability that you can swing the election $$ \rho $$, and a cost to voting; that
+is to say, it takes some amount of time, which has opportunity cost associated with it to vote, which we
+will call $$ \alpha $$. Let us assume that there is a high /reward/ in swinging the vote; that is to say, if you were
+the one that swings the vote, your vote is worth some high monetary value. Let $$ \beta $$ be the median price of swinging.
+Let $$ n $$ be the number of people voting, and let the weight of each vote be equal between all participants.
+Let the choice of candidate between all voters be binary; voting for one candidate mutually excludes you from
+voting for another, and there are two candidates (this is to simply the model; you will see that this does not
+lose generality). Then, let us model the expected value of voting for singular individuals.
+
+For a given person, the probability that your vote swings (or at least ties) depends on the probability that
+$$ x = \frac{n - 1}{2} $$, where $ x $$ is the number of people that vote for your candidate. The probability
+density function for the probability that $$ m $$ people vote for your candidate we'll call $$ f $$. We will assume
+it is binomial, and you might expect it to be closer to 50/50 most of the time, but that is pretty hard to model.
+We will therefore compensate by modeling it more accurately afterwards. For now, we assume all participants have
+a 50% chance to pick either candidate.
+\begin{align*}
+\end{align*}
;; :config
;; (global-treesit-auto-mode))
#+end_src
+
--- /dev/null
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Thursday, 02 May 2024
+** 23:28
+Haven't journaled in a while; I will say, I've decided to take personal health a bit more seriously. If I've
+said this before, I mean it this time.
--- /dev/null
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Friday, 03 May 2024
+** 18:34
+I have low energy; had caffeine. Trying to write some words for Cognition.
--- /dev/null
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Friday, 10 May 2024
+** 16:04
+Today I am with Andrei. Yesterday Ainslie came in and made cookies. Also, I am pretty proud of my configuration
+when it comes to the whole NixOS and EMacs stuff.
--- /dev/null
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Sunday, 12 May 2024
+** 12:46
+I am going to Bowen today in order to see Ainslie, which will be fun. It's also mother's day but I don't
+really celebrate it.
--- /dev/null
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Sunday, 19 May 2024
+** 20:07
+Today, I showed another person my Journal; I plan to learn more about the Einstein-Hilbert Action as well.
--- /dev/null
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Friday, 24 May 2024
+** 14:07
+I am currently with Ainslie, and I had my first interview at Layer Zero yesterday. It went well but they don't want
+me doing infrastructure so I'm reinterviewing for other engineering positions.
\vec{\nabla} \times \vec{E} = - \frac{\partial\vec{B}}{\partial t}
\end{align*}
Instead of assuming induction as an axiom, it is possible to fix Ampere's equation with the [[id:a871e62c-b4a0-4674-9dea-d377de2f780b][continuity equation]] first, and then
-assume Lorentz symmetry. This explanation is a work in progress.
+assume Lorentz Covariance. This explanation is a work in progress.
* Implications
Maxwell's Equations can be used to calculate all electromagnetic phenomena on the macro scale all the way down to the atom.
In practice, solving Maxwell's Equations can be analytically impossible, so several simplifying assumptions are often made.
To recap, these are the four equations:
-\begin{align*}
+\begin{align}
\vec{\nabla} \cdot \vec{E} = \frac{\rho}{\epsilon_{0}} \\
\vec{\nabla} \times \vec{E} = -\frac{\partial\vec{B}}{\partial t} \\
\vec{\nabla} \cdot \vec{B} = 0 \\
\vec{\nabla} \times \vec{B} = \mu_{0}\vec{J} + \mu_{0}\epsilon_{0}\frac{\partial\vec{E}}{\partial t}
-\end{align*}
+\end{align}
* Speed of Light
Maxwell's Equations can be shown to reproduce the speed of light in a vacuum, where:
\begin{align*}
It is known that Maxwell's Equations are consistent with [[id:e38d94f2-8332-4811-b7bd-060f80fcfa9b][special relativity]] and can be expressed
in terms of curved spacetime. In fact, if relativity is taken as an axiom, it can be proven that the electric
and magnetic fields are descriptions of the same phenomena; this can be taken as a specific example of a [[id:1b1a8cff-1d20-4689-8466-ea88411007d7][duality]].
+The result is a Lorentz Invariant theory of Electromagnetism.
+** Relativistic Electrodynamics
+The [[id:a871e62c-b4a0-4674-9dea-d377de2f780b][continuity equation]] has a Lorentz Invariant counterpart. We unify the charge density and the current density
+under a four-vector quantity ~j~:
+\begin{align*}
+j = (\rho , J)
+\end{align*}
+Where ~J~ is the current density, and $$ \rho $$ is the charge density. The continuity equation can be reformulated
+like so:
+\begin{align*}
+\partial_{\alpha} j^{\alpha} = 0
+\end{align*}
+Likewise, the electric scalar potential and the magnetic vector potential create an invariant four-vector:
+\begin{align*}
+a = (V, A)
+\end{align*}
+We notice that Gauss' Law:
+\begin{align*}
+\nabla^{2} V = \frac{\rho}{\epsilon_{0}}
+\end{align*}
+needs a more general formulation, as the potential and the charge density need to be replaced with Lorentz Invariant
+quantities. We then use Ampere's law:
+\begin{align}
+\vec{\nabla} \times \vec{\nabla} \times \vec{A} = \mu_{0}\vec{J} + \mu_{0}\epsilon_{0}\frac{\partial(\nabla V)}{\partial t} \\
+\vec{\nabla} \cdot \vec{\nabla} \times \vec{\nabla} \times \vec{A} = \nabla \cdot \mu_{0}\vec{J} + \mu_{0}\epsilon_{0}\frac{\partial(\nabla^{2} V)}{\partial t} \\
+\vec{\nabla} \cdot \vec{\nabla} \times \vec{\nabla} \times \vec{A} = \mu_{0} \nabla\cdot\vec{J} + \mu_{0}\frac{\partial\rho}{\partial t} \\
+\vec{\nabla} \cdot \vec{\nabla} \times \vec{\nabla} \times \vec{A} = \mu_{0} (\nabla\cdot\vec{J} + \frac{\partial\rho}{\partial t}) \\
+\end{align}
--- /dev/null
+:PROPERTIES:
+:ID: 326eb3f8-680a-432c-bf69-42ba4d366116
+:END:
+#+title: egoism
+#+author: Preston Pan
+#+html_head: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Introduction
+Egoism, broadly defined, is the philosophical view that one should maximize for their own utility function, or well-being,
+or self-satisfaction, etc..., whatever you want to call it. The general statement is that there is some value one would
+want to maximize for themselves. This philosophical view is a metaethical view in general but can be applied descriptively.
+* Descriptively
+In economics, homo-econimus is a kind of idealized economic agent that maximizes for their own economic value. Descriptive
+egoism is in a sense the statement that people tend to maximize for some utility function. In a sense, there are many games
+that people can play, and economics is just one of them; there's homo-politicus, homo-vitamus, and many other games that
+agents try to play. Descriptive egoism is the descriptive formulation of a utility function that people have in-built,
+and a statement that people tend to play according to said utility functions with generalized rational expectations.
+* Perscriptively
+The perscriptive egoism is a meta-ethical framework that simply asserts that one should act in their own self interest.
+Self interest is a loosely defined term that is subjective to the individual.
+* Critisisms
+Often many will point out the fact that it is a circular system, that it has no descriptive power because one can formulate
+anything in terms of an egoist outlook. Therefore, while one can accept or deny the validity of egoism, the [[id:6d8c8bcc-58b0-4267-8035-81b3bf753505][framework]] of
+egoism has weak axioms and it is therefore possible to formulate many sub-philosophies that are compatible with egoism.
+(Meta-comment: I would describe myself as someone that formulates sub-philosophies inscribed within the egoist framework,
+and I would myself describe my own views in an egoist manner).
attempt at doing so and you will soon notice that the frameworks that I
am presenting can in fact be used to explain the article itself, albeit
in a somewhat contradictory way.
+** Isn't this just another Framework?
+Yes. In fact, I have a page about [[id:6d8c8bcc-58b0-4267-8035-81b3bf753505][frameworks]]!
* Something
I linked them above, but if you want to read about something that is not
everything, go here:
--- /dev/null
+:PROPERTIES:
+:ID: 6d8c8bcc-58b0-4267-8035-81b3bf753505
+:END:
+#+title: framework
+#+author: Preston Pan
+#+html_head: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Introduction
+Frameworks are an essential thing to understand are fundamental to how we work, and this statement will
+never be contradicted. The main [[id:1b1a8cff-1d20-4689-8466-ea88411007d7][two]] hallmarks of a framework are as follows:
+1. the framework has a set of axioms i.e. statements that are taken as a given.
+2. the framework can use some form of pseudo-logical deduction in order to reach conclusions.
+Note that this sounds a lot like [[id:a6bc601a-7910-44bb-afd5-dffa5bc869b1][mathematics]]. Indeed, mathematics is an instantiation of a framework, but there
+are other frameworks as well. Mathematics is a framework detached from reality, and we often develop mathematics
+in order to fit those mathematical models to reality. Mathematical frameworks aren't wrong or right, they're contradictory
+or logical (i.e. they either degenerate into principle of explosion or they are logically consistent). In other words,
+a theory or framework can be independent of reality.
+
+Applying mathematical models to reality are a statement about that particular system you are modelling i.e. you are
+supposedly applying said mathematical model because there is some belief that reality conforms to whatever axioms
+the mathematical model has. General mathematical models tend to model more things, but the axioms are weaker, meaning
+the predictions of said models are also weaker. Adding additional assumptions to models generally makes those predictions
+stronger.
+
+Of course, there are other ways to model things as well other than with mathematics; one can also use the framework of
+word-based logical reasoning in order to make models. This mindmap utilizes this kind of modelling to a great extent,
+and this very article is an instantiation of word-based logical reasoning. In this mindmap, the same model will be used
+in order to model many things, leading to a fine structure.
+** Perscription and Description
+Perscriptive models tend to make value judgements about a particular system, meaning they in general view agents of
+said system as responsible and non-deterministic agents, whereas descriptive models in general view agents of said system
+to be deterministic and not able to be self aware. In other words, perscription is where "thinking" ends and where
+"action" begins. Adding more levels of determinism to the model tend to make it more descriptive of reality (this is
+an emperical statement, and not a theoretical one).
+** Metaframeworks
+This article is a metaframework, another instantiation of [[id:8f265f93-e5fd-4150-a845-a60ab7063164][recursion]]. Metaframeworks are also frameworks.
--- /dev/null
+:PROPERTIES:
+:ID: f4d70abf-242c-41b7-b0dd-d7f1813cfb33
+:END:
+#+title: philosophy
+#+author: Preston Pan
+#+html_head: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Introduction
+Philosophy is a hard to describe term, but this mindmap defines this term as the study of living life optimally. We use
+this definition to ground meta-ethical frameworks in [[id:326eb3f8-680a-432c-bf69-42ba4d366116][egoism]], which gives meaning to perscriptive ethical statements (which
+this mindmap holds there is regularly no meaning to in the colloquial sense). This mindmap defines an ethical statement
+such as "it is wrong to do x" as a statement which says, "it maximizes utility for your own life if not x". Of course,
+because it is an emperically justified statement to say that most people act the same, this can ground commonly held
+moral beliefs. There are several possible refutations to this point of view, but this mindmap maintains that refutations
+to this point of view usually appeal to some feeling of wrongness rather than being definitionally inconsistent, which
+is again an instantiation of this point of view (to argue moral truths from a point of view of a feeling of wrongness is
+an instantiation or a confirmation of this point of view).
+
+For instance, one possible counterargument that is brought up involves the fact that this theory equates preferences to
+moral statements. "I prefer red" and "x is morally right" indeed /feel/ like two separate things. This mindmap maintains
+that they are two different things in many senses, but that the fundamental assertion of these two statements is the same.
+It is just a different kind of emotion, but there is no underlying fact of the matter that one can point to with regards
+to moral theory.
+
+Note that there are several arguments that facts are treated on a separate footing to moral theory under such a framework.
+Indeed it is true that this mindmap will rest on some emperical facts, but this mindmap maintains that doing this is a
+perfectly internally consistent and descriptive standpoint. From here on, we will use ethical and moral statements as
+a description of people, rather than a description of some real moral fact.