changelog shortlog graph tags branches files raw help

Mercurial > org > docs / changeset: organizing

changeset 6: 713c22bdab6a
parent 5: bb51c61e4d4b
child 7: a6cf5a2a2f8d
author: ellis <ellis@rwest.io>
date: Mon, 27 Nov 2023 18:24:49 -0500
files: core/notes.org core/readme.org future.org infra/notes.org infra/readme.org manifesto.org nas-t/readme.org readme.org tech.org ulang.org
description: organizing
     2.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2+++ b/core/readme.org	Mon Nov 27 18:24:49 2023 -0500
     2.3@@ -0,0 +1,4 @@
     2.4+{{{header(docs/core,Richard Westhaver,ellis@rwest.io)}}}
     2.5+#+EXPORT_FILE_NAME: index
     2.6+
     2.7+- [[file:notes.org][Notes]] :: Internal Notes.
     3.1--- a/future.org	Fri Nov 24 22:39:07 2023 -0500
     3.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.3@@ -1,2 +0,0 @@
     3.4-#+TITLE: future
     3.5-#+AUTHOR: ellis
     5.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2+++ b/infra/readme.org	Mon Nov 27 18:24:49 2023 -0500
     5.3@@ -0,0 +1,4 @@
     5.4+{{{header(docs/infra,Richard Westhaver,ellis@rwest.io)}}}
     5.5+#+EXPORT_FILE_NAME: index
     5.6+
     5.7+- [[file:notes.org][Notes]] :: Internal Notes.
     6.1--- a/manifesto.org	Fri Nov 24 22:39:07 2023 -0500
     6.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3@@ -1,5 +0,0 @@
     6.4-#+TITLE: manifesto
     6.5-#+AUTHOR: ellis
     6.6-#+DATE: 2023-04-01 Sat
     6.7-* Abstract
     6.8-* Introduction
     7.1--- a/nas-t/readme.org	Fri Nov 24 22:39:07 2023 -0500
     7.2+++ b/nas-t/readme.org	Mon Nov 27 18:24:49 2023 -0500
     7.3@@ -1,7 +1,4 @@
     7.4-{{{header(docs/NAS-T,
     7.5-Richard Westhaver,
     7.6-ellis@rwest.io,
     7.7-NAS-T Documentation)}}}
     7.8+{{{header(docs/NAS-T,Richard Westhaver,ellis@rwest.io,NAS-T Documentation)}}}
     7.9 #+EXPORT_FILE_NAME: index
    7.10 
    7.11 Welcome to the documentation home of NAS-T. Choose one of the topics below to get
     8.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2+++ b/readme.org	Mon Nov 27 18:24:49 2023 -0500
     8.3@@ -0,0 +1,15 @@
     8.4+{{{header(
     8.5+  docs,
     8.6+  Richard Westhaver,
     8.7+  ellis@rwest.io,
     8.8+  The Compiler Company Documentation)}}}
     8.9+#+EXPORT_FILE_NAME: index
    8.10+
    8.11+* [[https://compiler.company/docs/ulang.html][ulang]]
    8.12+* [[https://compiler.company/docs/style.html][style]]
    8.13+* [[https://compiler.company/docs/tech.html][tech]]
    8.14+* [[https://compiler.company/docs/core][core]]
    8.15+* [[https://compiler.company/docs/infra][infra]]
    8.16+* [[https://compiler.company/docs/business.html][business]]
    8.17+* projects
    8.18+** [[https://compiler.company/docs/nas-t][NAS-T]]
     9.1--- a/tech.org	Fri Nov 24 22:39:07 2023 -0500
     9.2+++ b/tech.org	Mon Nov 27 18:24:49 2023 -0500
     9.3@@ -3,38 +3,25 @@
     9.4 ellis@rwest.io,
     9.5 The Compiler Company Core Technologies)}}}
     9.6 
     9.7-Editors:
     9.8-- Emacs
     9.9-
    9.10-Core PLs:
    9.11-- Lisp
    9.12-- Rust
    9.13-- C
    9.14-
    9.15 OS:
    9.16 - GNU/Linux
    9.17-- MacOS
    9.18-- Windows
    9.19+  - *Arch Linux*
    9.20+Core:
    9.21+- Lisp
    9.22+- Rust
    9.23+- Emacs
    9.24 
    9.25-Ecosystem:
    9.26-- RocksDB
    9.27-- QUIC
    9.28-- QEMU
    9.29-- Postgres
    9.30-- SQLite
    9.31-- AWS
    9.32-- GCP
    9.33-- LLVM
    9.34+Shared Libs:
    9.35+- rocksdb
    9.36+- alpm
    9.37+- btrfs
    9.38+- tree-sitter
    9.39+- uring
    9.40+- blake3
    9.41+- xcb
    9.42+
    9.43+Extra:
    9.44+- K
    9.45+- BQN
    9.46 - Python
    9.47-- Node.js
    9.48-- X11
    9.49-- systemd
    9.50-- UEFI
    9.51-- Nginx
    9.52-- Wireguard
    9.53-- OpenVPN
    9.54-- IRC
    9.55-- Matrix
    9.56-- Discord
    9.57-- Notion.so
    9.58-- Stripe
    9.59+- 2BWM
    10.1--- a/ulang.org	Fri Nov 24 22:39:07 2023 -0500
    10.2+++ b/ulang.org	Mon Nov 27 18:24:49 2023 -0500
    10.3@@ -19,11 +19,11 @@
    10.4 
    10.5 * ulang
    10.6 :PROPERTIES:
    10.7-:CUSTOM_ID: 8447a560-7f77-45c7-bd14-2a2af6ad2abc
    10.8+:CUSTOM_ID: ulang
    10.9 :END:
   10.10 As the title suggest we refer to our *U-Language* as
   10.11 ulang. When I say something along the lines of "Please refer to
   10.12-[[Links][ulang:links]]", I am referencing the section named /Links/ of this
   10.13+[[*Hyperlinks][ulang.Hyperlinks]]", I am referencing the section named /Links/ of this
   10.14 document.
   10.15 
   10.16 Each section of this document describes an element of the ulang. It is
   10.17@@ -47,17 +47,6 @@
   10.18 of Org is arbitrary and the concepts here would apply to other formats
   10.19 (LaTeX, Markdown, etc).
   10.20 
   10.21-Let us first consider /Org the syntax/.
   10.22-
   10.23-Org syntax is much less popular than Markdown and lacks parsing
   10.24-utilities in popular programming languages[fn:1]. Regardless, we are
   10.25-committed to it as a foundation because it is the most hackable
   10.26-documentation engine available. With enough experience you can morph
   10.27-Org into whatever documentation system that is needed.
   10.28-
   10.29-[fn:1] The ecosystem is changing though, thanks to the dedication of
   10.30-some excellent hackers: [[https://github.com/karlicoss/orgparse][python]], [[https://github.com/tecosaur/Org.jl][julia]]
   10.31-
   10.32 *** TODO organ
   10.33 :PROPERTIES:
   10.34 :CUSTOM_ID: 22474039-5c18-4179-82aa-a6731e6313a2
   10.35@@ -78,18 +67,40 @@
   10.36 full-text search database, and reducing cost along the way.
   10.37 
   10.38 Emacs can do all of these things, but do you really want it to?
   10.39+
   10.40+** Syntax
   10.41+Let us first consider /Org the syntax/.
   10.42+
   10.43+Org syntax is much less popular than Markdown and lacks parsing
   10.44+utilities in popular programming languages[fn:1]. Regardless, we are
   10.45+committed to it as a foundation because it is the most hackable
   10.46+documentation engine available. With enough experience you can morph
   10.47+Org into whatever documentation system that is needed.
   10.48+
   10.49+
   10.50+As such, all documentation we write is done using =Org syntax=. When
   10.51+we refer to Org syntax we are referring to the vanilla syntax which
   10.52+comes built-in with Emacs.
   10.53+
   10.54+=Ulang syntax= is an extension of =Org syntax=. If some feature of the
   10.55+=Ulang= is undocumented, refer to =Org syntax= for guidance.
   10.56+
   10.57+[fn:1] The ecosystem is changing though, thanks to the dedication of
   10.58+some excellent hackers: [[https://github.com/karlicoss/orgparse][python]], [[https://github.com/tecosaur/Org.jl][julia]]
   10.59+
   10.60 ** Elements
   10.61 :PROPERTIES:
   10.62 :CUSTOM_ID: 4aa3ec2a-b360-43ae-b2d8-f9735f211290
   10.63 :END:
   10.64+This section documents the /extensions/ made to =Org syntax=. Each
   10.65+sub-heading focuses on a pre-existing =Org= element and describes
   10.66+=Ulang= functionality included with =ulang.el=.
   10.67 
   10.68 *** Keywords
   10.69 :PROPERTIES:
   10.70 :CUSTOM_ID: 2cadda9a-22a3-4b42-ad4e-d7a774f74cba
   10.71 :END:
   10.72-The ulang *Keywords* are a superset of those defined by [[https://datatracker.ietf.org/doc/html/rfc2119][RFC-2119]]. The
   10.73-definition of a keyword from the original spec is ultimately
   10.74-unchanged:
   10.75+The ulang *Keywords* are a superset of those defined by [[https://datatracker.ietf.org/doc/html/rfc2119][RFC-2119]].
   10.76 
   10.77 #+begin_quote
   10.78 In many standards track documents several words are used to signify
   10.79@@ -104,9 +115,6 @@
   10.80 RFC 2119.
   10.81 #+end_quote
   10.82 
   10.83-We can't be bothered to include these with every document, so here
   10.84-they are - don't forget!
   10.85-
   10.86 #+begin_quote
   10.87 1. MUST   This word, or the terms "REQUIRED" or "SHALL", mean that the
   10.88    definition is an absolute requirement of the specification.
   10.89@@ -166,36 +174,107 @@
   10.90 here for convenience.
   10.91 
   10.92 #+name: ulang-macros
   10.93-#+begin_src emacs-lisp :exports both :results pp
   10.94+#+begin_src emacs-lisp :exports both :results replace pp
   10.95   org-export-global-macros
   10.96 #+end_src
   10.97 
   10.98 #+RESULTS: ulang-macros
   10.99-: (("opts" . "#+OPTIONS: $1\n")
  10.100-:  ("header" .
  10.101-:   "#+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"))
  10.102+: (("header" .
  10.103+:   "#+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")
  10.104+:  ("opts" . "#+OPTIONS: $1\n"))
  10.105 
  10.106 Macros /are not expanded/ in source files - you will see them in the
  10.107 form ={{{NAME(ARGS)}}}=. You will need the relevant macro definition
  10.108 (in =ulang.el=) in order to export ulang docs with the macros
  10.109 expanded.
  10.110 
  10.111-*** Abbrevs
  10.112-:PROPERTIES:
  10.113-:CUSTOM_ID: b4c326ba-f74c-4409-9314-8d32df61fc5e
  10.114-:END:
  10.115-There are several 'abbrev' types made available via =ulang.el=. They
  10.116-are intended for flexible templating and ease-of-use for the author.
  10.117+*** Hyperlinks
  10.118+The Org-mode [[https://orgmode.org/manual/Link-Format.html][Link Format]] is used throughout the Ulang and needs little
  10.119+introduction.
  10.120+**** Types
  10.121+#+begin_src emacs-lisp :results replace pp :exports both
  10.122+(org-link-types)
  10.123+#+end_src
  10.124+
  10.125+#+RESULTS:
  10.126+: ("notmuch-tree" "notmuch-search" "notmuch" "man" "eww" "rmail" "mhe"
  10.127+:  "irc" "info" "gnus" "docview" "bibtex" "bbdb" "w3m" "doi" "id"
  10.128+:  "elfeed" "file+sys" "file+emacs" "shell" "news" "mailto" "https"
  10.129+:  "http" "ftp" "help" "file" "elisp")
  10.130+
  10.131+**** Abbrevs
  10.132+For ease of use we have defined some special link handling abbrevs:
  10.133+
  10.134+#+begin_src emacs-lisp :results replace pp :exports both
  10.135+  org-link-abbrev-alist
  10.136+#+end_src
  10.137+
  10.138+#+RESULTS:
  10.139+: (("vc" . "https://vc.compiler.company/%s")
  10.140+:  ("comp" . "https://compiler.company/%s")
  10.141+:  ("cdn" . "https://cdn.compiler.company/%s")
  10.142+:  ("packy" . "https://packy.compiler.company/%s")
  10.143+:  ("yt" . "https://youtube.com/watch?v=%s"))
  10.144+
  10.145+*** Dynamic Blocks
  10.146+[[https://orgmode.org/manual/Blocks.html][Blocks]] are a feature of vanilla Org-mode which are described in the
  10.147+manual. We extend this functionality with [[https://orgmode.org/manual/Dynamic-Blocks.html][Dynamic Blocks]]. The
  10.148+important feature of these blocks is that their contents are updated
  10.149+/dynamically/ by a user within an Org-mode document.
  10.150+
  10.151+For example, typing ~C-c C-c~ on the block below dynamically generates
  10.152+the standard clocktable for the current file.
  10.153+
  10.154+To update all dynamic blocks in a document, use the
  10.155+=org-dblock-update= ~C-c C-x C-u~ function.
  10.156 
  10.157-We try to align our abbrevs following categories:
  10.158-- uri
  10.159-- term
  10.160-- phrase
  10.161-- block
  10.162+#+BEGIN: clocktable
  10.163+#+CAPTION: Clock summary at [2023-11-25 Sat 15:26]
  10.164+| Headline     | Time   |
  10.165+|--------------+--------|
  10.166+| *Total time* | *0:00* |
  10.167+#+END:
  10.168+
  10.169+#+begin_src emacs-lisp :results replace pp :exports both
  10.170+  org-dynamic-block-alist
  10.171+#+end_src
  10.172+
  10.173+#+RESULTS:
  10.174+: (("files" . ulang-dblock-insert-files)
  10.175+:  ("links" . ulang-dblock-insert-links)
  10.176+:  ("columnview" . org-columns-insert-dblock)
  10.177+:  ("clocktable" . org-clock-report))
  10.178+
  10.179+*** Tables
  10.180+:PROPERTIES:
  10.181+:CUSTOM_ID: ulang-tables
  10.182+:END:
  10.183 
  10.184-Abbrevs may take arguments explicitly or inherit from their
  10.185-environment, but usually /are expanded/ in source files.
  10.186+Org [[https://orgmode.org/manual/Tables.html][Tables]] are powerful but require many extensions to really /feel/
  10.187+powerful. As they come in vanilla Emacs, they don't feel as good as
  10.188+commercial spreadsheet-based software. The Ulang Table extensions add
  10.189+some sane defaults and additional data-processing utilities to work
  10.190+with tables in any text, not just Org docs.
  10.191+
  10.192+A vanilla Org Table may look like this:
  10.193 
  10.194-*** Links
  10.195+| x |  y |  z |
  10.196+|---+----+----|
  10.197+| 1 |  2 |  3 |
  10.198+| 8 |  9 | 10 |
  10.199+| 9 | 10 | 11 |
  10.200+| 3 |  4 |  5 |
  10.201+| 7 |  8 |  9 |
  10.202+| 2 |  3 |  4 |
  10.203+#+TBLFM: $2=$1+1::$3=$2+1
  10.204 
  10.205-*** Timestamps
  10.206+Just like in Excel, we can define a table outline like the one above
  10.207+and use code to fill in the values with a formula: =$2=$1+1::$3=$2+1=.
  10.208+
  10.209+Unlike Excel, these tables can appear pretty much anywhere - including
  10.210+in source code.
  10.211+
  10.212+Usually we prefer to use lisp to prepare our data and
  10.213+populate complex tables, or no-nonsense keyboard commands for short
  10.214+tables. This is done with a few functions in Org docs and the =orgtbl=
  10.215+minor-mode everywhere else.