changelog shortlog graph tags branches changeset files revisions annotate raw help

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