1 #+setupfile: ../clean.theme
3 If you've met me in the past decade, you probably know that I am
4 extremely passionate about computers. Let me first explain why.
6 On the most basic level computers are little (or big) machines that
7 can be programmed to do things, or
/compute/ if we're being
10 They host and provide access to the Internet, which is a pretty big
11 thing, but they do little things too like unlock your car door and
12 tell your microwave to beep at you. They solve problems. Big or small.
14 They're also
/everywhere/ - which can be scary to think about, but
15 ultimately helps propel us into the future.
17 There's something pretty cool about that - when you look at the
18 essence of computation. There are endless quantities of these machines
19 which follow the same basic rules and can be used to solve
/real/ 23 Now, let us consider the
/programmer/. They have power.
/real/ 24 power. They understand the language of computers, can whisper to them
25 in various dialects. It can be intimidating to witness until you
26 realize how often the programmer says the wrong thing - a bug.
28 In reality, the programmer has a symbiotic relationship with
29 computers. Good programmers understand this relationship well.
32 One day after I got my first job at a software company, I remember
33 being on an all-hands meeting due to a client service outage. We had
34 some management, our lead devs, product team, and one curious looking
35 man who happened to be our lead IT consultant who had just joined. He
36 was sitting up on a hotel bed, shirtless, vaping an e-cig, typing
37 away in what I can only imagine was a shell prompt.
39 After several minutes he took a swig from a bottle of Coke and said
40 "Node 6 is sick." then a few seconds later our services were
41 restored. For the next hour on the call he explained what happened and
42 why, but that particular phrase always stuck with me. He didn't say
43 Node 6 was down, or had an expired cert - his diagnosis was that /it/
47 The more you work closely with computers, the more you start to think
48 of them this way. You don't start screaming when the computer does the
49 wrong thing, you figure out what's wrong and learn from it. With
50 experience, you start to understand the different behaviors of the
51 machines you work with. I like to call this
/Machine Empathy/.
54 I already mentioned bugs - I write plenty of those, but usually I try
55 to write
/programs/. Programs to me are like poetry. I like to think
56 they are for the computer too.
58 Just like computers,
/computer programs/ come in different shapes and
59 sizes but in basic terms they are sets of instructions used to control
62 You can write programs to do anything - when I first started, my
63 programs made music. The program was a means to an end. Over time, I
64 started to see the program as something much more. I saw it as the
67 [fn:1] ... perform computations
71 Something that is missing from many organizations big or large, is an
72 effective way to store and access information, even about their own
75 It can be difficult problem to solve - usually there's the official
76 one, say Microsoft Sharepoint and then the list of unofficial sources
77 which becomes tribal corporate hacker knowledge. Maybe the unofficial
78 ones are more current, or are annotated nicely, but their very
79 existence breaks the system. There's no longer a single source of
82 My priority in this department is writing services which process and
83 store information from a variety of sources in a distributed knowledge
84 graph. The graph can later be queried to access information on-demand.
86 My idea of infrastructure is in fact to build my own Cloud. Needless
87 to say I don't have an O365 subscription, and wherever possible I'll
88 be relying on hardware I have physical access to. I'm not opposed to
89 cloud services at large but based on principle I like to think we
90 shouldn't be built on them.