1.1--- a/business.org Mon Nov 20 19:02:47 2023 -0500
1.2+++ b/business.org Fri Nov 24 22:39:07 2023 -0500
1.3@@ -1,7 +1,8 @@
1.4-#+TITLE: business
1.5-#+AUTHOR: ellis
1.6+{{{header(business,
1.7+Richard Westhaver,
1.8+ellis@rwest.io,
1.9+The Compiler Company Business Model)}}}
1.10
1.11-* Abstract
1.12 In short, this document describes the business aspects of The Compiler
1.13 Company LLC. We are designed to be small, fast, and agile. We
1.14 infiltrate a market, apply our methodology, and develop solutions that
1.15@@ -12,3 +13,5 @@
1.16 we build software -- with a bottom up approach. This is our secret
1.17 weapon, and what gives us the ability to adapt to any environment
1.18 where our interests lie.
1.19+
1.20+#+TOC: headlines 3
2.1--- a/nas-t/api.org Mon Nov 20 19:02:47 2023 -0500
2.2+++ b/nas-t/api.org Fri Nov 24 22:39:07 2023 -0500
2.3@@ -1,4 +1,7 @@
2.4-#+TITLE: api
2.5+{{{header(NAS-T API,
2.6+Richard Westhaver,
2.7+ellis@rwest.io,
2.8+NAS-T API Documentation)}}}
2.9 * Overview
2.10 * Protocols
2.11 * Filesystems
3.1--- a/nas-t/install.org Mon Nov 20 19:02:47 2023 -0500
3.2+++ b/nas-t/install.org Fri Nov 24 22:39:07 2023 -0500
3.3@@ -1,4 +1,7 @@
3.4-#+TITLE: install
3.5+{{{header(install,
3.6+Richard Westhaver,
3.7+ellis@rwest.io,
3.8+NAS-T Installation)}}}
3.9 * Overview
3.10 #+begin_src sh
3.11 make build
4.1--- a/nas-t/notes.org Mon Nov 20 19:02:47 2023 -0500
4.2+++ b/nas-t/notes.org Fri Nov 24 22:39:07 2023 -0500
4.3@@ -1,4 +1,7 @@
4.4-#+TITLE: notes
4.5+{{{header(notes,
4.6+Richard Westhaver,
4.7+ellis@rwest.io,
4.8+NAS-T Notes)}}}
4.9 #+BIBLIOGRAPHY: refs.bib
4.10 * File Systems
4.11 ** BTRFS
5.1--- a/nas-t/quickstart.org Mon Nov 20 19:02:47 2023 -0500
5.2+++ b/nas-t/quickstart.org Fri Nov 24 22:39:07 2023 -0500
5.3@@ -1,4 +1,7 @@
5.4-#+TITLE: quickstart
5.5+{{{header(quickstart,
5.6+Richard Westhaver,
5.7+ellis@rwest.io,
5.8+NAS-T Quickstart)}}}
5.9 * Install
5.10 * Configure the daemon
5.11 * Connect a client
6.1--- a/nas-t/readme.org Mon Nov 20 19:02:47 2023 -0500
6.2+++ b/nas-t/readme.org Fri Nov 24 22:39:07 2023 -0500
6.3@@ -1,10 +1,7 @@
6.4-#+TITLE: NAS-T Docs
6.5-#+DESCRIPTION: NAS-T Documentation
6.6-#+AUTHOR: Richard Westhaver <ellis@rwest.io>
6.7-#+OPTIONS: ^:nil toc:nil num:nil html-postamble:nil
6.8-#+HTML_HEAD: <link rel="stylesheet" href="https://fonts.xz.style/serve/inter.css"/>
6.9-#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://packy.rwest.io/style/css/new.min.css"/>
6.10-#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://packy.rwest.io/style/css/terminal.css"/>
6.11+{{{header(docs/NAS-T,
6.12+Richard Westhaver,
6.13+ellis@rwest.io,
6.14+NAS-T Documentation)}}}
6.15 #+EXPORT_FILE_NAME: index
6.16
6.17 Welcome to the documentation home of NAS-T. Choose one of the topics below to get
6.18@@ -19,3 +16,5 @@
6.19 - [[file:roadmap.org][Roadmap]] :: The NAS-T development roadmap.
6.20
6.21 - [[file:api.org][API]] :: API Documentation for NAS-T hackers.
6.22+
6.23+- [[file:notes.org][Notes]] :: Internal Notes.
7.1--- a/nas-t/roadmap.org Mon Nov 20 19:02:47 2023 -0500
7.2+++ b/nas-t/roadmap.org Fri Nov 24 22:39:07 2023 -0500
7.3@@ -1,4 +1,8 @@
7.4-#+TITLE: roadmap
7.5+{{{header(roadmap,
7.6+Richard Westhaver,
7.7+ellis@rwest.io,
7.8+NAS-T Roadmap)}}}
7.9+
7.10 * 0.1.0 [0/3] :current:
7.11 ** TODO MVP [1/6]
7.12 :LOGBOOK:
8.1--- a/nas-t/tutorial.org Mon Nov 20 19:02:47 2023 -0500
8.2+++ b/nas-t/tutorial.org Fri Nov 24 22:39:07 2023 -0500
8.3@@ -1,4 +1,7 @@
8.4-#+TITLE: tutorial
8.5+{{{header(tutorial,
8.6+Richard Westhaver,
8.7+ellis@rwest.io,
8.8+NAS-T Tutorial)}}}
8.9 * Overview
8.10 ** Introduction
8.11 ** The Cloud
9.1--- a/style.org Mon Nov 20 19:02:47 2023 -0500
9.2+++ b/style.org Fri Nov 24 22:39:07 2023 -0500
9.3@@ -1,4 +1,7 @@
9.4-#+TITLE: style
9.5+{{{header(style,
9.6+Richard Westhaver,
9.7+ellis@rwest.io,
9.8+The Compiler Company Styleguide)}}}
9.9
9.10 As an organization we maintain a styleguide[fn:1] which lists all of
9.11 the style guidelines we use for our code. If you are contributing to
10.1--- a/tech.org Mon Nov 20 19:02:47 2023 -0500
10.2+++ b/tech.org Fri Nov 24 22:39:07 2023 -0500
10.3@@ -1,5 +1,7 @@
10.4-#+TITLE: tech
10.5-#+AUTHOR: ellis
10.6+{{{header(tech,
10.7+Richard Westhaver,
10.8+ellis@rwest.io,
10.9+The Compiler Company Core Technologies)}}}
10.10
10.11 Editors:
10.12 - Emacs
11.1--- a/ulang.org Mon Nov 20 19:02:47 2023 -0500
11.2+++ b/ulang.org Fri Nov 24 22:39:07 2023 -0500
11.3@@ -1,5 +1,8 @@
11.4-#+TITLE: ulang
11.5-#+OPTIONS: toc:nil
11.6+{{{header(ulang,
11.7+Richard Westhaver,
11.8+ellis@rwest.io,
11.9+The Universal Language)}}}
11.10+
11.11 This document describes a *U-Language* as described by the late great
11.12 Haskell Curry:
11.13
11.14@@ -14,57 +17,15 @@
11.15 to our job than of most others.
11.16 #+end_quote
11.17
11.18-There is a natural reader/writer relationship that exists in countless
11.19-places, but is rarely examined because it is rarely necessary. However
11.20-there is a wide array of significantly complex code and prose projects
11.21-out there which would benefit greatly from such an investigation.
11.22-
11.23-I would also like to humbly clarify on our interpretation of a *job*
11.24-as Curry puts it.
11.25-
11.26-We all have the same job really - to be curious, and to solve
11.27-problems. It is the *problems* I would like to shine a light on, if
11.28-just for a moment, because it's important.
11.29-
11.30-Just as Curry thinks of languages, we can think of problems. There
11.31-exists the *problem of problems* which is the subject of our
11.32-investigations. This *U-Problem* is what we are solving for at all
11.33-times. In this light, we can view the *U-Language* as a means of
11.34-bringing both the /reader/ and /writer/ as close as possible to the
11.35-*U-Problem*.
11.36-
11.37-For convenience, our *U-Problem* is undecidable, but we model and
11.38-solve for it using ~computers~, or more abstractly ~machines~. Thus,
11.39-our *U-Language* helps bring the /reader/ and /writer/ closer to our
11.40-~machines~ as well as expedite communications between reader and
11.41-writer.
11.42-
11.43-:summary:
11.44-- /Why do we need a U-Language?/ :: To bring both the /reader/ and
11.45- /writer/ closer to our *U-Problem*.
11.46-
11.47-- /What is our U-Problem?/ :: Undecidable, but we use /computers/ as a
11.48- model of the *U-Problem*. When we are dealing with the *U-Problem*
11.49- we are speaking in terms of /computation/ and the ability of a given
11.50- machine to /compute/.
11.51-
11.52-- /How do we solve our U-Problem?/ :: With /computers/, by developing
11.53- accurate models and finding optimal solutions.
11.54-:end:
11.55-
11.56 * ulang
11.57 :PROPERTIES:
11.58 :CUSTOM_ID: 8447a560-7f77-45c7-bd14-2a2af6ad2abc
11.59 :END:
11.60-As the title suggest we refer to our *Universal Language* as
11.61+As the title suggest we refer to our *U-Language* as
11.62 ulang. When I say something along the lines of "Please refer to
11.63 [[Links][ulang:links]]", I am referencing the section named /Links/ of this
11.64 document.
11.65
11.66-This is a "living" document. In other words, it is incomplete. I may
11.67-include additional elements in the ulang, or modify the specification
11.68-of existing ones.
11.69-
11.70 Each section of this document describes an element of the ulang. It is
11.71 recommended to skim through the top-level sections ([[Org-mode][Org-mode]] and
11.72 [[Elements][Elements]]) and review the element sub-headings as needed.
11.73@@ -81,22 +42,18 @@
11.74 If you are already familiar with Emacs and org-mode, I recommend
11.75 opening the source file of this document in Emacs and following along.
11.76
11.77-If not, I recommend browsing through the [[https://orgmode.org/worg/][Worg resources]], but we're not
11.78-getting too deep into tribal hacker knowledge of Emacs. The choice of
11.79-Org is arbitrary and the concepts here would apply to other formats
11.80+If not, I recommend browsing through the [[https://orgmode.org/worg/][Worg resources]], but we won't
11.81+be getting too deep into tribal hacker knowledge of Emacs. The choice
11.82+of Org is arbitrary and the concepts here would apply to other formats
11.83 (LaTeX, Markdown, etc).
11.84
11.85 Let us first consider /Org the syntax/.
11.86
11.87 Org syntax is much less popular than Markdown and lacks parsing
11.88-utilities in popular programming languages[fn:1]. Perhaps Org is not
11.89-suited as a /universal/ text format because it's arguably harder to
11.90-parse, making it less interoperable and intimidating to adopt.
11.91-
11.92-Regardless, we are committed to it as a foundation because it is the
11.93-most hackable documentation engine available. With enough experience
11.94-you can morph Org into whatever system you want, and that is /exactly/
11.95-our intention.
11.96+utilities in popular programming languages[fn:1]. Regardless, we are
11.97+committed to it as a foundation because it is the most hackable
11.98+documentation engine available. With enough experience you can morph
11.99+Org into whatever documentation system that is needed.
11.100
11.101 [fn:1] The ecosystem is changing though, thanks to the dedication of
11.102 some excellent hackers: [[https://github.com/karlicoss/orgparse][python]], [[https://github.com/tecosaur/Org.jl][julia]]
11.103@@ -106,28 +63,26 @@
11.104 :CUSTOM_ID: 22474039-5c18-4179-82aa-a6731e6313a2
11.105 :END:
11.106 - State "TODO" from [2023-11-05 Sun 19:21]
11.107-Org is the designated text representation of our ulang. Org-mode
11.108-depends on Emacs (it's written in Emacs Lisp) but that doesn't mean we
11.109-have to. To solve the issue of interoperability between different
11.110-systems, we are developing a modular tool called [[https://lab.rwest.io/comp/core/-/tree/branch/default/lisp/lib/organ][organ]]. The purpose of
11.111-=organ= is to provide an external API for Org documents that doesn't
11.112-depend on GNU Emacs.
11.113+
11.114+=Org-mode= the application depends on Emacs (it's written in Emacs
11.115+Lisp) but that doesn't mean we need to. To solve the issue of
11.116+interoperability between different systems, we are developing a tool
11.117+called [[https://lab.rwest.io/comp/core/-/tree/branch/default/lisp/lib/organ][organ]]. The purpose of =organ= is to provide an external API for
11.118+Org documents that doesn't depend on GNU Emacs.
11.119
11.120 If we were designing a /personal/ note-taking system, I would argue
11.121-that we don't need this tool. The problem is it's not personal - we
11.122-have a much wider intended audience - it's business. This means
11.123-thinking about hundreds to thousands of documents instead of tens,
11.124-about processing those documents into a full-text search database, and
11.125-reducing cost along the way.
11.126+that we don't need this tool. The problem is it's /not/ personal - we
11.127+have a much wider intended audience and need to present information in
11.128+many different ways. This means thinking about hundreds to thousands
11.129+of documents instead of tens, about processing those documents into a
11.130+full-text search database, and reducing cost along the way.
11.131
11.132-Emacs can do all of these things, but do you really want it to? I
11.133-don't. Emacs should remain close to the developer and we can outsource
11.134-the tricky bits to =organ=.
11.135-
11.136+Emacs can do all of these things, but do you really want it to?
11.137 ** Elements
11.138 :PROPERTIES:
11.139 :CUSTOM_ID: 4aa3ec2a-b360-43ae-b2d8-f9735f211290
11.140 :END:
11.141+
11.142 *** Keywords
11.143 :PROPERTIES:
11.144 :CUSTOM_ID: 2cadda9a-22a3-4b42-ad4e-d7a774f74cba
11.145@@ -197,33 +152,50 @@
11.146
11.147 10. DRAFT Designates a draft item.
11.148
11.149-11. NOPE Item that will not be completed.
11.150+11. DEAD Item that will not be completed.
11.151
11.152 12. DONE Completed task.
11.153
11.154+13. COMMENT A 'commented' item.
11.155+
11.156+*** Macros
11.157+:PROPERTIES:
11.158+:CUSTOM_ID: cdb4976b-1d0d-49df-bfb1-3dbd5d99590e
11.159+:END:
11.160+Several *global* [[https://orgmode.org/manual/Macro-Replacement.html][Org Macros]] are used throughout our documents. They are listed
11.161+here for convenience.
11.162+
11.163+#+name: ulang-macros
11.164+#+begin_src emacs-lisp :exports both :results pp
11.165+ org-export-global-macros
11.166+#+end_src
11.167+
11.168+#+RESULTS: ulang-macros
11.169+: (("opts" . "#+OPTIONS: $1\n")
11.170+: ("header" .
11.171+: "#+TITLE: $1\n#+AUTHOR: $2\n#+EMAIL: $3\n#+DESCRIPTION: $4\n#+SUBTITLE: $4\n#+OPTIONS: ^:nil toc:nil num:nil html-postamble:nil\n#+HTML_HEAD: <link rel=\"stylesheet\" href=\"https://fonts.xz.style/serve/inter.css\"/>\n#+HTML_HEAD: <link rel=\"stylesheet\" type=\"text/css\" href=\"https://cdn.compiler.company/css/new.min.css\"/>\n#+HTML_HEAD: <link rel=\"stylesheet\" type=\"text/css\" href=\"https://cdn.compiler.company/css/night.css\"/>\n"))
11.172+
11.173+Macros /are not expanded/ in source files - you will see them in the
11.174+form ={{{NAME(ARGS)}}}=. You will need the relevant macro definition
11.175+(in =ulang.el=) in order to export ulang docs with the macros
11.176+expanded.
11.177+
11.178 *** Abbrevs
11.179 :PROPERTIES:
11.180 :CUSTOM_ID: b4c326ba-f74c-4409-9314-8d32df61fc5e
11.181 :END:
11.182-Abbrevs include domain-specific acronyms and slang such as /DB/ for
11.183-database or /M$/ for Microsoft. They're abbreviations, but even lazier
11.184-(we can't even be bothered to spell out the name). By defining them in
11.185-one place we can use Emacs to lookup abbrevs on the fly, and we can
11.186-automatically generate help text and references to abbrev definitions
11.187-for our readers.
11.188-*** Operators
11.189-:PROPERTIES:
11.190-:CUSTOM_ID: f91ca826-2c72-4d00-810c-2d61aa073658
11.191-:END:
11.192+There are several 'abbrev' types made available via =ulang.el=. They
11.193+are intended for flexible templating and ease-of-use for the author.
11.194+
11.195+We try to align our abbrevs following categories:
11.196+- uri
11.197+- term
11.198+- phrase
11.199+- block
11.200+
11.201+Abbrevs may take arguments explicitly or inherit from their
11.202+environment, but usually /are expanded/ in source files.
11.203+
11.204 *** Links
11.205-:PROPERTIES:
11.206-:CUSTOM_ID: 7bd8eeaa-9f21-4ab4-ba6e-be118e68d36a
11.207-:END:
11.208+
11.209 *** Timestamps
11.210-:PROPERTIES:
11.211-:CUSTOM_ID: 4faf913e-7c15-4937-9547-b50a6c8ba896
11.212-:END:
11.213-*** Macros
11.214-:PROPERTIES:
11.215-:CUSTOM_ID: cdb4976b-1d0d-49df-bfb1-3dbd5d99590e
11.216-:END: