It’s Hard To Empathize With Other People’s Beliefs If They’ve Experienced Parts Of The World You Have Not.
The gap between how you feel as an outsider and how you feel when experiencing something firsthand can be a mile wide.
There are theories that big wars tend to happen 20-40 years apart because that’s the amount of time it takes to cycle through a new generation of voters, politicians, and generals who aren’t scarred by the last war. Other political trends — social rights, economic theories, budget priorities — follow a similar path.
You can’t empathize with something if you haven’t experienced it; maybe this is true of wars as well.
It’s not that people forget. It’s that empathy and open-mindedness cannot recreate what genuine fear and uncertainty feel like.
I guess that more than half of all disagreements — personal, domestic, international, financial — would disappear if you could see the world through the lens of your opponent and had experienced what they have in life.
Created from: How People Think 202212291148
uid: 202212291713 tags: #insights
Good software engineering practices
Source: https://simonwillison.net/2022/Oct/1/software-engineering-practices/#create-test-data
- Documentation in the same repo as the code
- Mechanisms for creating test data
- One way to handle this is to provide tooling to import production data into local environments. This has privacy and security implications—what if a developer laptop gets stolen that happens to have a copy of your largest customer’s data?
- A better approach is to have a robust system in place for generating test data, that covers a variety of different scenarios.
- Rock solid database migrations
- I think we’re pretty decent at this.
- The article suggests
gh-ost
which is something that I think we’ve explored already.
- Templates for new projects
- Automated code formatting
- Tested, automated process for new development environments
- I think people have been exploring Docker, but we haven’t made any progress on this yet.
- Automated preview environments
- Reviewing a PR is easier if you can try the changes
Related: Go For Big Wins Rather Than Small Improvements 202210031316
uid: 202212101811 tags: #insights #software-engineering
Broken Permanent Deletion Job
The logs for all grunt tasks are empty. Update 12-10-22: I worked with Doug to fix this: https://h.slack.com/archives/C01J5GFMK1S/p1669925443453119?thread_ts=1669835455.059559&cid=C01J5GFMK1S
Created from: Journal entry: 11-30-22 202211300801
uid: 202211301052 tags: #airtable
Consistent Fallback Shard Assignments Accessor
Notes: Shard assignment rollout - replica rollout strategy does not work well with current worker child resilient strategy - maybe another rollout strategy - shard poisoning check - only done when result get from replica - AI: if the underlying connection is replica, we probably need to do shard poisoning too. - update 12-10-22: don’t need to do the shard poisoning check, because we will not commit a crud request transaction against a stale replica. - TODO: think about the name of a new accessor that makes it clear that we expect to re-run queries against the replica - Also need to annotate
uid: 202211281340 tags: #airtable
Geohash
For example, the coordinate pair 57.64911,10.40744 (near the tip of the peninsula of Jutland, Denmark) produces a slightly shorter hash of u4pruydqqvj
.
The main usages of Geohashes are:
As a unique identifier. To represent point data, e.g. in databases. Geohashes have also been proposed to be used for geotagging.
Geohash is a hierarchical spatial index. This means that to represent a point, the world is recursively divided into smaller and smaller grids, with each additional bit, until the desired precision is attained.
To create a Geohash for our point (shown as a Red dot), let’s first divide the world into two halves with a vertical line and give each half a binary value of either 0 or 1.At our desired precision, our Geohash will look like a long binary string:
01010101101010101010101010111
Finally, we encode the resulting binary sequence as alphanumeric characters (Base-32 alphabet encoding is used where characters can be 0 to 9 and A to Z, excluding “A”, “I”, “L” and “O”).
Each 5 bits is converted to one character that looks something like ttnfv2u
.
Created from: Algorithms to know before system design interviews 202211231052
uid: 202211231053 tags: #algorithms #software-engineering
202207110131 Taking intellectual recharge vacations
- Most vacations have some social, familial, obligatory purpose.
- There are the days when I don’t do anything, but those feel more hopeless than intentional.
Questions
- Where to go? That’s what people expect.
Notes
- mental retreat day
- in terms of utility, way more useful to have one less day (but be more productive)
- culture of sick days (or PTO days) — people don’t feel comfortable taking days off for mental health. People still call it headaches
- Another idea — happiness day (from Mulan).
- Schedule in a day for this each quarter. TODO: schedule this in at some point.
From Drafts
uid: 202207110131 tags: #drafts #blog-ideas #living-well