changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > org > blog / annotate draft/hello-world.org

changeset 28: 6d54ccb29de4
parent: 1204cefcfd28
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 18 Aug 2024 22:16:12 -0400
permissions: -rw-r--r--
description: weekend warrior
18
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1
 #+title: (hello world)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
2
 #+options: toc:t h:1
21
1204cefcfd28 style updates
Richard Westhaver <ellis@rwest.io>
parents: 20
diff changeset
3
 #+setupfile: ../../clean.theme
28
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
4
 #+property: header-args :eval no-export
18
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
5
 * COMMENT Introduction
28
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
6
 :PROPERTIES:
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
7
 :ID:       c9766ba7-319d-49f3-868e-8e289dbf5b3b
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
8
 :END:
18
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
9
 Hello World,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
10
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
11
 I've worked in and around software systems for many years. Throughout
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
12
 my journey I've worked with some incredibly capable programmers,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
13
 leaders, sales professionals, and curious minds from all walks of
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
14
 life. I've been fortunate to witness some highly effective teams on
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
15
 complex projects deliver under impossible constraints. I've also seen
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
16
 the other side - where a team isn't effective for one reason or
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
17
 another, even on simple problems.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
18
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
19
 My work as of late is stemmed from the simple premise that there
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
20
 exists an /environment/ in which a team can be highly effective. My
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
21
 goal is to find those local optimums in my areas of interest where
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
22
 such an environment can be built and /great work/ can be done.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
23
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
24
 In my professional experience, it is becoming much more difficult to
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
25
 build an /environment/ where people can be effective. There are
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
26
 several contributing factors which muddy the waters but it all boils
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
27
 down to capabilities and politics.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
28
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
29
 Your environment must be capable. It must provide everything your team
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
30
 needs now and /may/ need in the future. If the environment doesn't
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
31
 provide something, you need to provide all building materials for it -
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
32
 /even if you don't know what you're building yet/.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
33
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
34
 To build a capable environment you need to discard politics from your
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
35
 decision-making process. In other words, drop the ego. This requires a
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
36
 high degree of introspection. It's hard enough for individuals, let
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
37
 alone an entire team or company. In the world of software we tend to
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
38
 have two camps - the pro-dev who prefers ergonomic but proprietary
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
39
 tools and the foss-dev who prefers clunky but open-source
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
40
 alternatives. You can't limit your environment based on the camp you
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
41
 align with.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
42
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
43
 * COMMENT The Compiler Company
28
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
44
 :PROPERTIES:
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
45
 :ID:       ae6e6d60-e7c7-4efa-9136-26ad262a55b3
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
46
 :END:
18
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
47
 Without further ado, I'd like to announce /The Compiler Company,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
48
 LLC/. The purpose of /The Compiler Company/ is to /compile/
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
49
 /companies/.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
50
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
51
 More specifically, I'm writing a software suite which specializes in
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
52
 building environments.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
53
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
54
 The software isn't for everyone - modules will be rewritten
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
55
 frequently, code may be terse in places, with specialized tools,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
56
 custom compilers, and advanced hardware features. It's for a specific
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
57
 type of programmer - an /operator/ if you will, who may use it for
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
58
 rapid-development of their own programs (or companies). The barrier to
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
59
 entry is high.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
60
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
61
 At this stage, I'm interested in *systems*, *processes*, and
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
62
 *protocols* - not *products* and *services*. /The Compiler Company/'s
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
63
 most valuable assett its ideas. A /demo/ system is being written which
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
64
 serves as a reference implementation but this is currently designed
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
65
 for internal benchmarking.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
66
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
67
 ** [[https://compiler.company/docs/core][core]]
28
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
68
 :PROPERTIES:
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
69
 :ID:       f64eb994-2a5e-4f7b-90c4-e6c29e321791
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
70
 :END:
18
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
71
 The =core= is a collection of applications and libraries built from
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
72
 the bottom-up with modularity in mind. It's primarily written in
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
73
 Common Lisp and Rust with minimal external dependencies.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
74
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
75
 *Lisp* is a first-class citizen of our internal environment. We
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
76
 currently rely on the Steel Bank Common Lisp compiler but even if we
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
77
 switch to a different implementation there will always be Lisp. It's
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
78
 our dedicated high-level programming language (and much more, as we'll
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
79
 explain later).
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
80
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
81
 *Rust* is second-class. It meets an arbitrary criteria for what I
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
82
 would consider /good enough/ but there are many contenders including
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
83
 C, C++, and Zig. It helps fill the gaps in our Lisp environment which
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
84
 would be extremely difficult to implement from scratch like
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
85
 eliminating GC, compile-time type safety, cross-compilation features,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
86
 and advanced networking protocols. The community support and my
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
87
 personal experience with the language are also contributing
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
88
 factors. The trade-off is that we need to support another language
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
89
 environment in parallel to Lisp.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
90
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
91
 ** [[https://compiler.company/docs/infra][infra]]
28
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
92
 :PROPERTIES:
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
93
 :ID:       3c6bd04c-1da6-43d0-8d5c-bb267ada3f7a
6d54ccb29de4 weekend warrior
Richard Westhaver <ellis@rwest.io>
parents: 21
diff changeset
94
 :END:
18
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
95
 Unfortunately, ideas can't host themselves. We need a robust
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
96
 infrastructure to compensate for this. The project =infra= contains
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
97
 scripts for building and maintaing the entire corporate
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
98
 infrastructure.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
99
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
100
 We typically host services on Arch Linux. Podman and QEMU are used for
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
101
 virtualization. Modules can be built and deployed separately to make
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
102
 host-migration easier as we expand.