1.1--- a/20231212.org Tue Aug 27 21:35:44 2024 -0400
1.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3@@ -1,101 +0,0 @@
1.4-* On Computers
1.5-:PROPERTIES:
1.6-:ID: 7845b0fb-b5d3-4488-bdba-4876d9c8816e
1.7-:END:
1.8-If you've met me in the past decade, you probably know that I am
1.9-extremely passionate about computers. Let me first explain why.
1.10-
1.11-On the most basic level computers are little (or big) machines that
1.12-can be programmed to do things, or /compute/ if we're being
1.13-technical.[fn:1]
1.14-
1.15-They host and provide access to the Internet, which is a pretty big
1.16-thing, but they do little things too like unlock your car door and
1.17-tell your microwave to beep at you. They solve problems. Big or small.
1.18-
1.19-They're also /everywhere/ - which can be scary to think about, but
1.20-ultimately helps propel us into the future.
1.21-
1.22-There's something pretty cool about that - when you look at the
1.23-essence of computation. There are endless quantities of these machines
1.24-which follow the same basic rules and can be used to solve /real/
1.25-problems.
1.26-
1.27-** The Programmer
1.28-:PROPERTIES:
1.29-:ID: b17c853e-1728-4bd3-94c5-82e5b33d7398
1.30-:END:
1.31-Now, let us consider the /programmer/. They have power. /real/
1.32-power. They understand the language of computers, can whisper to them
1.33-in various dialects. It can be intimidating to witness until you
1.34-realize how often the programmer says the wrong thing - a bug.
1.35-
1.36-In reality, the programmer has a symbiotic relationship with
1.37-computers. Good programmers understand this relationship well.
1.38-
1.39-#+begin_annecdote
1.40-One day after I got my first job at a software company, I remember
1.41-being on an all-hands meeting due to a client service outage. We had
1.42-some management, our lead devs, product team, and one curious looking
1.43-man who happened to be our lead IT consultant who had just joined. He
1.44-was sitting up on a hotel bed, shirtless, vaping an e-cig, typing
1.45-away in what I can only imagine was a shell prompt.
1.46-
1.47-After several minutes he took a swig from a bottle of Coke and said
1.48-"Node 6 is sick." then a few seconds later our services were
1.49-restored. For the next hour on the call he explained what happened and
1.50-why, but that particular phrase always stuck with me. He didn't say
1.51-Node 6 was down, or had an expired cert - his diagnosis was that /it/
1.52-was /sick/.
1.53-#+end_annecdote
1.54-
1.55-The more you work closely with computers, the more you start to think
1.56-of them this way. You don't start screaming when the computer does the
1.57-wrong thing, you figure out what's wrong and learn from it. With
1.58-experience, you start to understand the different behaviors of the
1.59-machines you work with. I like to call this /Machine Empathy/.
1.60-
1.61-** Programs
1.62-:PROPERTIES:
1.63-:ID: a297e5f9-a875-4512-b126-9a2b3e75c1d8
1.64-:END:
1.65-I already mentioned bugs - I write plenty of those, but usually I try
1.66-to write /programs/. Programs to me are like poetry. I like to think
1.67-they are for the computer too.
1.68-
1.69-Just like computers, /computer programs/ come in different shapes and
1.70-sizes but in basic terms they are sets of instructions used to control
1.71-a computer.
1.72-
1.73-You can write programs to do anything - when I first started, my
1.74-programs made music. The program was a means to an end. Over time, I
1.75-started to see the program as something much more. I saw it as the
1.76-music itself.
1.77-
1.78-[fn:1] ... perform computations
1.79-
1.80-
1.81-* On Infra
1.82-:PROPERTIES:
1.83-:ID: 80d800de-d305-4b95-a28c-a6f19d6f7a11
1.84-:END:
1.85-Something that is missing from many organizations big or large, is an
1.86-effective way to store and access information, even about their own
1.87-org.
1.88-
1.89-It can be difficult problem to solve - usually there's the official
1.90-one, say Microsoft Sharepoint and then the list of unofficial sources
1.91-which becomes tribal corporate hacker knowledge. Maybe the unofficial
1.92-ones are more current, or are annotated nicely, but their very
1.93-existence breaks the system. There's no longer a single source of
1.94-truth.
1.95-
1.96-My priority in this department is writing services which process and
1.97-store information from a variety of sources in a distributed knowledge
1.98-graph. The graph can later be queried to access information on-demand.
1.99-
1.100-My idea of infrastructure is in fact to build my own Cloud. Needless
1.101-to say I don't have an O365 subscription, and wherever possible I'll
1.102-be relying on hardware I have physical access to. I'm not opposed to
1.103-cloud services at large but based on principle I like to think we
1.104-shouldn't be built on them.