changelog shortlog graph tags branches changeset file revisions annotate raw help

Mercurial > org > notes / 20231212.org

revision 15: 45ac54093c09
parent 14: a04ca5a66178
child 16: a63dfd1affed
     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.