changelog shortlog graph tags branches files raw help

Mercurial > org / changeset: notes

changeset 20: 3d1d5115a5b7
parent 19: e82f2ac78c0e
child 21: b174dd6a3f7c
author: ellis <ellis@rwest.io>
date: Tue, 12 Dec 2023 21:51:28 -0500
files: .hgsubstate notes/20231209.org notes/20231212.org
description: notes
     1.1--- a/.hgsubstate	Wed Dec 06 23:28:18 2023 -0500
     1.2+++ b/.hgsubstate	Tue Dec 12 21:51:28 2023 -0500
     1.3@@ -1,2 +1,2 @@
     1.4-61204f8b2ff8ee86fea2ed931e0d781af99a3a33 blog
     1.5-b38886ced111d5d2a339eb69024a5d31b38c1e68 docs
     1.6+b6380832df99ead6c390a664bdf3b5623444a978 blog
     1.7+31db7a83d2c62c5b59770f839c1c2e86a354a5e9 docs
     2.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2+++ b/notes/20231209.org	Tue Dec 12 21:51:28 2023 -0500
     2.3@@ -0,0 +1,5 @@
     2.4+
     2.5+* doc best practices
     2.6+https://rust-lang.github.io/api-guidelines/documentation.html
     2.7+
     2.8+also: https://lisp-lang.org/style-guide/
     3.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2+++ b/notes/20231212.org	Tue Dec 12 21:51:28 2023 -0500
     3.3@@ -0,0 +1,89 @@
     3.4+* On Computers
     3.5+If you've met me in the past decade, you probably know that I am
     3.6+extremely passionate about computers. Let me first explain why.
     3.7+
     3.8+On the most basic level computers are little (or big) machines that
     3.9+can be programmed to do things, or /compute/ if we're being
    3.10+technical.[fn:1]
    3.11+
    3.12+They host and provide access to the Internet, which is a pretty big
    3.13+thing, but they do little things too like unlock your car door and
    3.14+tell your microwave to beep at you. They solve problems. Big or small.
    3.15+
    3.16+They're also /everywhere/ - which can be scary to think about, but
    3.17+ultimately helps propel us into the future.
    3.18+
    3.19+There's something pretty cool about that - when you look at the
    3.20+essence of computation. There are endless quantities of these machines
    3.21+which follow the same basic rules and can be used to solve /real/
    3.22+problems.
    3.23+
    3.24+** The Programmer
    3.25+Now, let us consider the /programmer/. They have power. /real/
    3.26+power. They understand the language of computers, can whisper to them
    3.27+in various dialects. It can be intimidating to witness until you
    3.28+realize how often the programmer says the wrong thing - a bug.
    3.29+
    3.30+In reality, the programmer has a symbiotic relationship with
    3.31+computers. Good programmers understand this relationship well.
    3.32+
    3.33+#+begin_annecdote
    3.34+One day after I got my first job at a software company, I remember
    3.35+being on an all-hands meeting due to a client service outage. We had
    3.36+some management, our lead devs, product team, and one curious looking
    3.37+man who happened to be our lead IT consultant who had just joined. He
    3.38+was sitting up on a hotel bed, shirtless, vaping an e-cig, typing
    3.39+away in what I can only imagine was a shell prompt.
    3.40+
    3.41+After several minutes he took a swig from a bottle of Coke and said
    3.42+"Node 6 is sick." then a few seconds later our services were
    3.43+restored. For the next hour on the call he explained what happened and
    3.44+why, but that particular phrase always stuck with me. He didn't say
    3.45+Node 6 was down, or had an expired cert - his diagnosis was that /it/
    3.46+was /sick/. 
    3.47+#+end_annecdote
    3.48+
    3.49+The more you work closely with computers, the more you start to think
    3.50+of them this way. You don't start screaming when the computer does the
    3.51+wrong thing, you figure out what's wrong and learn from it. With
    3.52+experience, you start to understand the different behaviors of the
    3.53+machines you work with. I like to call this /Machine Empathy/.
    3.54+
    3.55+** Programs
    3.56+I already mentioned bugs - I write plenty of those, but usually I try
    3.57+to write /programs/. Programs to me are like poetry. I like to think
    3.58+they are for the computer too.
    3.59+
    3.60+Just like computers, /computer programs/ come in different shapes and
    3.61+sizes but in basic terms they are sets of instructions used to control
    3.62+a computer.
    3.63+
    3.64+You can write programs to do anything - when I first started, my
    3.65+programs made music. The program was a means to an end. Over time, I
    3.66+started to see the program as something much more. I saw it as the
    3.67+music itself.
    3.68+
    3.69+[fn:1] ... perform computations
    3.70+
    3.71+
    3.72+* On Infra
    3.73+Something that is missing from many organizations big or large, is an
    3.74+effective way to store and access information, even about their own
    3.75+org.
    3.76+
    3.77+It can be difficult problem to solve - usually there's the official
    3.78+one, say Microsoft Sharepoint and then the list of unofficial sources
    3.79+which becomes tribal corporate hacker knowledge. Maybe the unofficial
    3.80+ones are more current, or are annotated nicely, but their very
    3.81+existence breaks the system. There's no longer a single source of
    3.82+truth.
    3.83+
    3.84+My priority in this department is writing services which process and
    3.85+store information from a variety of sources in a distributed knowledge
    3.86+graph. The graph can later be queried to access information on-demand.
    3.87+
    3.88+My idea of infrastructure is in fact to build my own Cloud. Needless
    3.89+to say I don't have an O365 subscription, and wherever possible I'll
    3.90+be relying on hardware I have physical access to. I'm not opposed to
    3.91+cloud services at large but based on principle I like to think we
    3.92+shouldn't be built on them.