Questions and positive feedback: springboards for writing.

Before I knew this, my urge to write wasn’t constantly at max and veered toward empty, so I often felt a sense of futility which’d cause me to back out after a few minutes of a writing attempt. I started to think that I lacked the biological hardware necessary to get the ideas needed to write. Frustrated with my “mental drip” and with a heavy self-image infraction coming up, my subconscious apparently saw my pain and gave me a bolt from the blue idea to get me out of it.

Use tighter exertion and recovery cycles in learning and achievement for faster and easier results

The cycles of recovery and exertion can be much smaller and become even more effective. I had the aha while doing pushups after a three-mile run where one of said miles was a five-minute mile. The workout consisted of about a hundred pushups in various ways (standard, wide, knee, box, Hindu), and after the first two sets of 12 to 16, I could only do two… at a time. Recalling David Goggins’ injunction to Jesse Itzler in Living with a SEAL, “We’re going to stay here until you do one hundred [pullups]”, I said the same to myself about this chest workout.

Ingratitude ruins relationships.

I’ve failed eight intimate relationships (four broke up with me, and I broke up with four). The breaking point issues were: my shame, my inadequacy, my ingratitude, feeling unloved (due to being quiet where communication was needed. one on my count, two on others’ counts), and blasphemy (I love and respect God). I suspect ingratitude is the worst offender of all because gratitude lets me build an emotional bank balance for people, so that when they fuck up, I still feel inclined to help and care for the other person.

Running a startup is about learning, and learning is the process of setting, measuring, guessing, and testing.

Outcomes and metrics must be set. Without outcomes, where are you going? Without metrics, how will you know you’ve gotten there? Some outcomes are qualitative–based on the senses and oftentimes feeling, but with business, business success means quantifiable money success (at some point), so profitability, cost, lifetime value is important. Then, assumptions guide actions, and certain actions cause better effects on the metrics than others. What we want to do is weed out all the bad assumptions and replace them with super good assumptions that cause super good actions that cause super good things to the metrics.

Browsers don't allow delays between animation iterations

CSS animations can be repeated with delays between each iteration, albeit with difficulty in both the all-CSS and JS approach. There’s no built-in CSS property for “delay between each cycle” for CSS. One CSS-only workaround is the [cubic-bezier timing function to create the delay] ( For using JS, I tried the obvious approach of setInterval with removeClass and addClass, but this doesn’t work with animations. The browser’s renderer (?) - in animation cases at least - doesn’t reanimate on property writes but only on property reads of something on the animated element’s branch (the parent, the animated element itself, or its children).

Annoyed at cat.

I want my cat to have zero capability to annoy me if I choose for her not to. The cat meowed while I wrote notes earlier. Minutes later, she’s pawing on my side. I haven’t done yoga today, and yoga’s my preventative maintenance for anger because my muscles get tense easily and tend to not relax, so I’m more irritable than normal. I push her away and tell her to stop.

My long-term goals

I’m going to be someone who cares about people, and who develops assets that works for him until he’s powerful enough and free enough. I’ll develop enough problem knowledge and technical knowledge and business knowledge to find something worth building, figure out how to build it, then build a self-sustaining worth machine called a business for it.

In Clojure, define the app in a local state, not the global state, to avoid waiting on the JVM to restart

Faster than restarting the JVM: Make the app constructable from a function and use the function’s result. When you want to restart the app, use a stop function and a go function (or a new function that does both, reset) that destroys the old instance and creates a new instance of the app. The default approach is to have the default scope of be the initial scope. The way Stuart Sierra proposes has you use the highest scope as an app instance manager instead, with all your app’s work done one local scope down.

Stuart Sierra inspired the Integrant REPL library

A Clojure developer named Stuart Sierra developed and taught a Clojure workflow that inspired James Reeves to build a library that implements it using Integrant: the Integrant REPL library. In my limited understanding, I see the workflow uses a global state with starting and stopping functions to set the state and clear the state. With Integrant REPL, it does this but with Integrant.

`alter-var-root` changes what a variable points to (vs. Clojure's default of spawning a new variable/value binding)

(Yell at me on Twitter, @AttentionAaron, if this is wrong.) Understanding the Integrant REPL library source code required that I know alter-var-root, so here’s how I understand it. When programming, we decide meaning of symbols through “binding” or “assignment” or “pointing”. The first two feel bidirectional, which doesn’t seem the case; you can’t look up the variable through the value, so the term pointing feels the most precise. You can do three things regarding a pointer and the pointee: