2021W22

Syncing a GitHub fork https://docs.github.com/en/github/collaborating-with-pull-requests/working-with-forks/syncing-a-fork If you haven’t configured an upstream remote, do this: git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git Fetch branches and commits from upstream repo: git fetch upstream Checkout local branch to update Merge upstream into current local branch git merge upstream/BRANCHNAME

June 4, 2021

2021W18

SQL Essential Training Atlas: Dropbox’s managed service platform https://dropbox.tech/infrastructure/atlas--our-journey-from-a-python-monolith-to-a-managed-platform Dropbox now serves more than 700 million users who create 300,000 requests per second. They rewrote some of their monolithic Python code that didn’t scale well. They created Atlas, a Service Oriented Architecture platform. Before the rewrite, The majority of Dropbox’s server-side code was a monolithic Python monorepo. The main gripe with the current architecture was that there wasn’t really way to create independently operating code. Everything was shared in the monorepo. Code was too dependent on other code in the code base and changes were fragile. ...

May 3, 2021

2021W17

Anti-Asian Hate A video by the Try Guys on Anti-Asian activity in the US. https://youtu.be/14WUuya94QE Yellow peril A surge of Asians began moving to the western US around the mid-1800s, fleeing their motherlands for a variety of reasons. Many helped build the railroads and other infrastructure in the West. However, starting in the 1880s or so, the general public started accusing Asians of taking away jobs from other Americans (not sure if most Asians were actual citizens back then or not). ...

April 27, 2021

2021W16

Camino de Santiago https://en.wikipedia.org/wiki/Camino_de_Santiago Camino de Santiago, or “Pilgrimage of Compostela”, is a pilgrim route to the supposed remains of St. James in the Santiago de Compostela cathedral in Galicia in northwestern Spain. There is no, one, absolute route, but there are a few officially recognized routes. This pilgrimage has been more or less active since the Middle Ages and is a popular hiking and biking route.

April 22, 2021

2021W14

C++ Tour Chapter 2: The basics

April 5, 2021

2021W12

Chiropractic: Decompress back https://youtu.be/wMRG9O1PQBU Dr. Michael Rowe Upper back decompression Raised surface that you can kneel in front of (e.g. bed, couch) (Optional) small towel Kneel in front of raised surface Cup the base of your palms around the mastoids on each side of your head Optionally, wrap towel underneath mastoids and hold ends of towel in each hand Bring your elbows forward Rest elbows on raised surface Simultaneously, lower buttocks and slightly pull diagonally upward on mastoids until you feel a stretch in your back Hold for 15 seconds Release, and repeat 5 times Mid back decompression Raised surface Towel Lay back on raised surface with your head going over the side of the bed Place rolled up towel under your back about where the shoulder blades are located Can raise or lower position of towel to stretch different parts of the back Lower your head by looking as far back as possible (try looking at the ground) You should feel stretch near the towel pivot You can optionally put your hands behind your head or straighten arms over your head to create different stretches Hold for 15-30 seconds then bring head back up Repeat 5 times Lower back: Cobra pose Lay face down on a surface Raise your upper torso off the surface by doing a push up, but keep your legs and hips on the surface Should feel stretch in lower back Can optionally intensify stretch by wrapping lower torso with a bed sheet and gently tugging it Lower back Lay face down on a surface but with your torso hanging off the edge. Your hips should be at the edge of the surface. Support your torso with your hands Tuck your chin into your chest and slowly walk hands above your head until you feel a comfortable stretch Hold for 30-60 seconds Repeat 5 times Stretching (to increase range of motion) https://youtu.be/1JgBp7dX4AU ...

March 23, 2021

2021W11

Performance Matters https://youtu.be/r-TLSBdHe1A Modern-day computing is concurrent and non-linear Moore’s Law has not been holding for awhile Can no longer dissipate enough heat Solution is to use more cores Processors also do an in-ordinate amount of hardware optimization caching branch prediction Because of this, many weird things affect the performance of programs “Layout biases measurement” Mytkowicz et al. (APLOS ‘09) almost anything that changes memory layout will impact performance upgrading dependencies manual memory allocation (malloc) path length the order in which programs are linked during compilation can actually speed up programs more than turning on an optimization flag (like -O3) changes function addresses environment variables size moves program stack Most profiling assumes end-to-end optimization Speaker’s lab created “Stabilizer” to minimize the effects of layout during profiling (ie eliminate randomness) The tool repeatedly randomizes layout while executing changes function addresses, stack frame size, heap allocations most profiling done today is like surveying one person over and over again: the underlying layout hasn’t changed. Uses null hypothesis testing What is the probability that the difference in performance measurement between two programs is due to randomness? If the null hypothesis is true, the two measurements are equal and randomness caused the difference If the null hypothesis is false, measurements are actually different

March 16, 2021

2021W10

Ultralearning Pragmatic programmer

March 13, 2021

2021W09

Bible: Numbers 18-20 Instructions to Levites Water at Meribah Moses struck the rock (twice!). He was only supposed verbalize the command. Obeying is simple: All you have to do is do what you’re told. But, in practice, you rarely “just do it”. Protocol for red heifer Aaron dies

March 3, 2021

2021W08

Programming Concise example of some JS idioms. function insertionSort(arr) { const n = arr.length; for (let i = 1; i < n; i++) { for (let j = i; j > 0 && arr[j] < arr[j-1]; j--) { // destructuring assignment: note square brackets [arr[j], arr[j-1]] = [arr[j-1], arr[j]]; } } } function main() { function randint(lo, hi) { return () => lo + Math.floor((Math.random() * (hi - lo))); } const n = 10; console.log([...Array(10).keys()]); let test = Array(n).fill().map(randint(0, 10)); console.log(`Before: ${test}`); insertionSort(test); console.log(`After : ${test}`); }

February 22, 2021