Cults are patronage networks. They distribute benefits. The benefits could be intangible, they don't have to be money. Belonging is a benefit, acceptance is a benefit, access to [partners] is a benefit, money is a benefit of course, but also power is a benefit; an internal hierarchy. It's a fantasy, it's what we call in psychology is a paracosm. A paracosm is an alternative cosmos; it's detached, it's a bubble. And so within this bubble you can create an entire universe with its own laws of physics of you wish, and then if you play by these rules, you're mightily rewarded, emotionally, materially, in other ways. And if you don't, of course, you're sanctioned, similarly. So it's what we call a reinforcement system. It's a reward-punishment system. Positive and negative. And it's fairly intermittently by the way, it's fairly intermittent in the sense that very often, the leader kind of punished you to remind you that you're still at his mercy. He demotes you, he criticizes you publicly, he does something to
For programming beginners who want to learn Python, these are some of the better resources I know about:
-
Harvard's CS50P. The lecturer goes into a lot of detail about how basic things work, and how programmers think about how they should write something: https://cs50.harvard.edu/python/2022/
-
Learn Python 3 the Hard Way, a book by Zed Shaw that follows the older way of learning programming, where learners would type in existing programs and think about them: https://annas-archive.org/md5/b06f844f416aaee94a19dca4730d66bb or actually buy it at https://learncodethehardway.org/python/
(entirely serious, this is how you do it, last tested July 8, 2023)
Summary: you can use nixpkgs's bazel_6 to build and run CockroachDB's bazelbuilder Docker container, which will use the bazel version it really wants to use for building cockroach. You need to patchelf a few things along the way, and then patchelf the resulting cockroach binary.
- Add this to your NixOS configuration:
[This page is best viewed with https://github.com/ludios/expand-everything, which will load all the comnents below.]
Wherein I try to prioritize reading for the limited amount of time I have this year, and to remind myself to read more than just comments on the Internet. Because of problems of time and shifting interests, I will consider this a success if I read a third of the list. I'll reflect on the reading and deviations from the plan in Jan 2024.
{+} = added after initial planning
- Jamie Brandon - Reflections of a decade of coding
- {+} Aleksandr Hovhannisyan's blog
- the SvelteKit tutorial
- the SvelteKit documentation
| #!/usr/bin/env bash | |
| # This is intended to be run in a git checkout of nixpkgs | |
| set -eu -o pipefail | |
| dirs=( | |
| ./pkgs/development/tools/esbuild | |
| ./pkgs/applications/misc/calibre | |
| ) |
Another way to save your own tweets exactly as they are rendered on Twitter, with replies, using snscrape and SingleFile/cli:
-
TWEETER=someusername snscrape twitter-user ${TWEETER} | grep -o -P '\d+$' | sed -r 's,^,https://twitter.com/i/status/,g' > ${TWEETER}-tweets # write a URL list - Make sure the oldest tweet in this list is in fact your oldest tweet, and that snscrape did not stop early due to Twitter Search problems.
- Merge in all the tweet URLs from your Twitter data export, to include retweets and Circle tweets:
cat data/tweets.js | sed -r 's/^window\.YTD\.tweets\.part0 = //' | jq -r '.[].tweet.id' | sed -r 's,^,https://twitter.com/i/status/,g' >> ${TWEETER}-tweets
| # cat twitter-usernames-archive.org-sample-stream.txt | rg '^.{16,}$' | awk '{ print length, $0 }' | sort -n -s | cut -d" " -f2- | |
| richardrushfield | |
| vittoriopasteris | |
| Scottcoopersmith | |
| The_Porter_House | |
| thoughtlessbeast | |
| TributetoJohnnyB | |
| shannonerickson1 | |
| meinnameistbernd | |
| shelbyunderwood1 |
| ## in your NixOS config: | |
| environment.systemPackages = [ prisma-engines ]; | |
| ## in your ~/.zshrc: | |
| # We use the prisma-engines in nixpkgs; Prisma's downloaded binaries don't work on NixOS | |
| export PRISMA_QUERY_ENGINE_LIBRARY=/run/current-system/sw/lib/libquery_engine.node |
| // Based on https://github.com/Totobird-Creations/Lrinser-Laser-Etcher-Edition-2/blob/81efa5a7355ba3df38e756f62c177d391d8e9060/src/helper.rs | |
| // | |
| /// Commaify a number by the British English rules (not the American English | |
| /// rules because we don't want the '1' in 1000 to align with a comma in 10,000). | |
| pub fn commaify_i64(number: i64) -> String { | |
| // Fast path | |
| if number > -1000 && number < 1000 { | |
| return number.to_string(); | |
| } | |
| let string = number.abs().to_string(); |
| { | |
| {"key": "alt+x", "command": "workbench.action.showCommands"}, | |
| {"key": "ctrl+shift+p", "command": "-workbench.action.showCommands"}, | |
| {"key": "alt+q", "command": "workbench.action.quickOpen"}, | |
| {"key": "ctrl+e", "command": "-workbench.action.quickOpen"}, | |
| {"key": "ctrl+shift+l", "command": "editor.action.insertCursorAtEndOfEachLineSelected", "when": "editorTextFocus"}, | |
| {"key": "shift+alt+i", "command": "-editor.action.insertCursorAtEndOfEachLineSelected", "when": "editorTextFocus"}, | |
| {"key": "alt+left", "command": "workbench.action.navigateBack"}, | |
| {"key": "ctrl+alt+-", "command": "-workbench.action.navigateBack"}, | |
| {"key": "alt+\\", "command": "workbench.action.navigateToLastEditLocation"}, |