changelog shortlog graph tags branches changeset files file revisions raw help

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

changeset 16: 61204f8b2ff8
parent: 563b82fb73be
child: b6380832df99
author: ellis <ellis@rwest.io>
date: Wed, 06 Dec 2023 23:27:43 -0500
permissions: -rw-r--r--
description: beep boop
14
5747098f52b4 blog update
ellis <ellis@rwest.io>
parents: 13
diff changeset
1
 {{{header(hello world,
5747098f52b4 blog update
ellis <ellis@rwest.io>
parents: 13
diff changeset
2
 Richard Westhaver,
15
563b82fb73be hello-world updates
ellis <ellis@rwest.io>
parents: 14
diff changeset
3
 ellis@rwest.io)}}}
16
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
4
 #+options: toc:t
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
5
 * Introduction
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
6
 Hello World.
15
563b82fb73be hello-world updates
ellis <ellis@rwest.io>
parents: 14
diff changeset
7
 
16
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
8
 Today I would like to share something I've been working on for the
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
9
 past few months, but has been on my mind for a few years.
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
10
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
11
 ** On Computers
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
12
 First, let's talk about computers. (beep boop)
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
13
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
14
 If you've met me in the past decade, you probably know that I am
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
15
 extremely passionate about computers. Let me first explain why.
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
16
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
17
 On the most basic level computers are little (or big) machines that
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
18
 can be programmed to do things, or /compute/ if we're being
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
19
 technical.[fn:1]
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
20
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
21
 They host and provide access to the Internet, which is a pretty big
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
22
 thing, but they do little things too like unlock your car door and
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
23
 tell your microwave to beep at you. They solve problems. Big or small.
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
24
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
25
 They're also /everywhere/ - which can be scary to think about, but
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
26
 ultimately helps propel us into the future.
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
27
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
28
 There's something pretty cool about that - when you look at the
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
29
 essence of computation. There are endless quantities of these machines
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
30
 which follow the same basic rules and can be used to solve /real/
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
31
 problems.
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
32
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
33
 *** The Programmer
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
34
 Now, let us consider the /programmer/. They have power. /real/
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
35
 power. They understand the language of computers, can whisper to them
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
36
 in various dialects. It can be intimidating to witness until you
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
37
 realize how often the programmer says the wrong thing - a bug.
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
38
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
39
 In reality, the programmer has a symbiotic relationship with
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
40
 computers. Good programmers understand this relationship well.
15
563b82fb73be hello-world updates
ellis <ellis@rwest.io>
parents: 14
diff changeset
41
 
16
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
42
 #+begin_annecdote
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
43
 One day after I got my first job at a software company, I remember
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
44
 being on an all-hands meeting due to a client service outage. We had
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
45
 some management, our lead devs, product team, and one curious looking
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
46
 man who happened to be our lead IT consultant who had just joined. He
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
47
 was sitting up on a hotel bed, shirtless, vaping an e-cig, typing
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
48
 away in what I can only imagine was a shell prompt.
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
49
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
50
 After several minutes he took a swig from a bottle of Coke and said
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
51
 "Node 6 is sick." then a few seconds later our services were
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
52
 restored. For the next hour on the call he explained what happened and
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
53
 why, but that particular phrase always stuck with me. He didn't say
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
54
 Node 6 was down, or had an expired cert - his diagnosis was that /it/
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
55
 was /sick/. 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
56
 #+end_annecdote
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
57
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
58
 The more you work closely with computers, the more you start to think
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
59
 of them this way. You don't start screaming when the computer does the
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
60
 wrong thing, you figure out what's wrong and learn from it. With
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
61
 experience, you start to understand the different behaviors of the
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
62
 machines you work with. I like to call this /Machine Empathy/.
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
63
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
64
 *** Programs
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
65
 I already mentioned bugs - I write plenty of those, but usually I try
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
66
 to write /programs/. Programs to me are like poetry. I like to think
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
67
 they are for the computer too.
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
68
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
69
 Just like computers, /computer programs/ come in different shapes and
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
70
 sizes but in basic terms they are sets of instructions used to control
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
71
 a computer.
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
72
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
73
 You can write programs to do anything - when I first started, my
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
74
 programs made music. The program was a means to an end. Over time, I
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
75
 started to see the program as something much more. I saw it as the
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
76
 music itself.
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
77
 
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
78
 [fn:1] ... perform computations
10
5ae7a67b209e blog update
ellis <ellis@rwest.io>
parents: 9
diff changeset
79
 
5ae7a67b209e blog update
ellis <ellis@rwest.io>
parents: 9
diff changeset
80
 * The Compiler Company
16
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
81
 Without further ado, I'd like to announce /The Compiler Company,
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
82
 LLC/. It is my first venture into the encorporated world but won't be
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
83
 my last, because what I'm really building is a company incubator. The
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
84
 purpose of /The Compiler Company/ is to /compile/ /companies/.
10
5ae7a67b209e blog update
ellis <ellis@rwest.io>
parents: 9
diff changeset
85
 
16
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
86
 More specifically, I'm writing a software suite which specializes in
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
87
 building, operating, and automating companies.
12
6b286d6cf099 org publishing
ellis <ellis@rwest.io>
parents: 11
diff changeset
88
 
16
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
89
 The software isn't for everyone - modules will be rewritten
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
90
 frequently, code may be terse in places, we use specialized and highly
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
91
 customized tools, custom compilers, and rely on advanced CPU and
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
92
 storage hardware features. It's for a specific type of person - an
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
93
 /operator/ if you will, who uses the library and programs for
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
94
 rapid-development of their own programs (or companies).
13
ae3d87d236cf hello-world update
ellis <ellis@rwest.io>
parents: 12
diff changeset
95
 
16
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
96
 In addition to software, I'm build a robust infrastructure to host our
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
97
 services, support our projects, and most importantly - consume
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
98
 information.
15
563b82fb73be hello-world updates
ellis <ellis@rwest.io>
parents: 14
diff changeset
99
 
16
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
100
 Something that is missing from many organizations big or large, is an
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
101
 effective way to store and access information, even about their own
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
102
 org.
10
5ae7a67b209e blog update
ellis <ellis@rwest.io>
parents: 9
diff changeset
103
 
16
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
104
 It can be difficult problem to solve - usually there's the official
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
105
 one, say Microsoft Sharepoint and then the list of unofficial sources
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
106
 which becomes tribal corporate hacker knowledge. Maybe the unofficial
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
107
 ones are more current, or are annotated nicely, but their very
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
108
 existence breaks the system. There's no longer a single source of
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
109
 truth.
13
ae3d87d236cf hello-world update
ellis <ellis@rwest.io>
parents: 12
diff changeset
110
 
16
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
111
 My priority in this department is writing services which process and
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
112
 store information from a variety of sources in a distributed knowledge
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
113
 graph. The graph can later be queried to access information on-demand.
10
5ae7a67b209e blog update
ellis <ellis@rwest.io>
parents: 9
diff changeset
114
 
16
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
115
 My idea of infrastructure is in fact to build my own Cloud. Needless
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
116
 to say I don't have an O365 subscription, and wherever possible I'll
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
117
 be relying on hardware I have physical access to. I'm not opposed to
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
118
 cloud services at large but based on principle I like to think we
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
119
 shouldn't be built on them.
61204f8b2ff8 beep boop
ellis <ellis@rwest.io>
parents: 15
diff changeset
120
 
9
9dd35bc56a81 readme, blog
ellis <ellis@rwest.io>
parents: 8
diff changeset
121
 * Next Steps
11
ellis <ellis@rwest.io>
parents: 10
diff changeset
122
 We have a long way to go. The important thing is to keep up the
ellis <ellis@rwest.io>
parents: 10
diff changeset
123
 momentum. Before the start of 2024 you can expect another update on
15
563b82fb73be hello-world updates
ellis <ellis@rwest.io>
parents: 14
diff changeset
124
 the projects below.
563b82fb73be hello-world updates
ellis <ellis@rwest.io>
parents: 14
diff changeset
125
 ** [[https://compiler.company/docs/core][core]]
563b82fb73be hello-world updates
ellis <ellis@rwest.io>
parents: 14
diff changeset
126
 ** [[https://compiler.company/docs/infra][infra]]
563b82fb73be hello-world updates
ellis <ellis@rwest.io>
parents: 14
diff changeset
127
 ** [[https://compiler.company/docs/nas-t][nas-t]]