Skip to main content

All Posts

TIL: invariant, covariant, and contravariant type variables
I avoided learning this for so long.
TIL: invariant, covariant, and contravariant type variables
Trying pyrefly, Meta's type checker
I guess I like trying type checkers.
Trying pyrefly, Meta's type checker
Trying ty, Astral's type checker
It's not done, but very fast.
Trying ty, Astral's type checker
Patrick McKenzie on using Dangerous Professional Voice
cattrs I: un/structuring speed
Maybe better overall than castfit.
cattrs I: un/structuring speed
castfit code review
Some reasonable feedback.
castfit code review
castfit 0.1.1
Slightly better typing
castfit 0.1.1
Class-based docopt usage strings
I keep wanting to make this, but now I'm not sure it's a good idea.
Class-based docopt usage strings
attrbox 0.1.6
Now with type hints.
attrbox 0.1.6
Cropping and Merging PDFs
How to actually crop PDFs.
Cropping and Merging PDFs
TIL: contextvars in python
What they are and how to use them.
TIL: contextvars in python
Shape of AI
Trying Caddy
How quickly I've abandoned nginx + certbot.
Trying Caddy
Widowhood
VALIS
Automating Math
Too Perfect
The Selfish Gene
The Power of No
The MANIAC
The Culture Code
SupGen Demo
Sick: A Memoir
Rework
Poisoning the day
Playing to Win
Permanent Record
Patient H.M.
Lexicon
Ideaflow
Hostage
Built to Move
Build It Yourself
Migrate and Upgrade GitLab
How to move GitLab from one server to another.
Migrate and Upgrade GitLab
pythonoid: Emulating the Python CLI in Python
How much of the Python CLI can you emulate in Python?
pythonoid: Emulating the Python CLI in Python
cosmofy 0.1.0
Bundle python code into an executable that run on Linux, macOS, and Windows.
cosmofy 0.1.0
Google Drive Links: Thunar and Finder
How I added context menu items to Thunar and Finder to copy Google Drive URLs.
Google Drive Links: Thunar and Finder
Google Drive Links: rclone
How I actually get Google Drive links for many documents at once.
Google Drive Links: rclone
Radiology & AI
From my email: Will AI take over radiology?
Radiology & AI
How to package a python project with Cosmopolitan
Knowledge is half the battle.
How to package a python project with Cosmopolitan
How long do commands run?
Changed My Mind: Lifecycle Events and call-style Tasks
I still don't like 'em, so I'll make it opt-in.
Changed My Mind: Lifecycle Events and call-style Tasks
Formatting Bash Commands
A 90% solution for the most common cases.
Formatting Bash Commands
ds 1.3.0
Run commands without activating virtual environments; support for Makefile and more.
ds 1.3.0
ds 1.0.0
Now supports more formats and workspaces.
ds 1.0.0
ds 0.1.3
Initial release of a simple task runner.
ds 0.1.3
Stop Hiding Python Dev Dependencies
The most popular python tools each have a different place to put dev dependencies. I think they should just be optional.
Stop Hiding Python Dev Dependencies
2024-07-05 Weeknotes
Added search, thumbnails, and did some minor visual clean up.
2024-07-05 Weeknotes
Screenshot Thumbnails
How I used Firefox & ImageMagick to take screenshots for posts without a thumbnail.
Screenshot Thumbnails
Trying pagefind
Adding a search box to the blog.
Trying pagefind
Generating Audiobooks
How I used Coqui.ai TTS and The Internet Archive to make audiobook MP3 files.
Generating Audiobooks
Maximum He HaShe'elah
What is the largest number of interrogative prefixes in a pasuk or parsha?
Maximum He HaShe'elah
Trying Firefox
After 15 years of using Google Chrome as my primary browser, I'm back to using Firefox.
Trying Firefox
Sharing NFS Between GCP Projects
A step-by-step guide for future me.
Sharing NFS Between GCP Projects
castfit 0.1.0
Initial release of a poor-man's Pydantic.
castfit 0.1.0
freshlinks 1.0.0
Initial release of a link checker.
freshlinks 1.0.0
Access type hints in python
Spoiler: typing.get_type_hints() does the trick.
Access type hints in python
DALL-E: Reel-to-Reel
In which I ask DALL-E to draw a version of a scene from Real Genius.
DALL-E: Reel-to-Reel
LLMs for Tip-of-the-Tongue Search
It works pretty well.
LLMs for Tip-of-the-Tongue Search
Transcript: ChatGPT with DALL-E
In which I ask DALL-E to draw a picture after some hard times.
Transcript: ChatGPT with DALL-E
Why I prefer pnpm over npm
An explanation of my current preference of pnpm over npm.
Why I prefer pnpm over npm
Problem: Infinite Mail Logs
Every so often I have to clear mail logs.
Problem: Infinite Mail Logs
Preventing link rot
An initial approach for checking for link rot.
Preventing link rot
Non-Consecutive Mappiq He
What is the maximum number of mappiq he in any one verse?
Non-Consecutive Mappiq He
Consecutive Mappiq He
What is the longest consecutive string of words with a mappiq he?
Consecutive Mappiq He
Google Drive Links: Workspace Add-on
My first approach to getting multiple Google Drive links.
Google Drive Links: Workspace Add-on
Google Clasp
Very useful if you work with Google Apps Script.
Google Clasp
Problem: Google Drive Links
I need to get multiple links from Google Drive all the time.
Problem: Google Drive Links
Add a non-boot disk
A step-by-step guide for future me.
Add a non-boot disk
2023-06-06 Weeknotes
New versions of attrbox, pdfmerge, and ezq; a Design Lab for a Visual Schedule; converting subtitles into transcripts.
2023-06-06 Weeknotes
Trying whisperX
How I converted a video into a transcript.
Trying whisperX
1 hour to make a visual schedule (Design Lab #1)
How I designed and built a visual schedule maker in a little over an hour.
1 hour to make a visual schedule (Design Lab #1)
apt segfault
One fix to apt crashing.
apt segfault
pdfmerge 1.0.0
New python 3 release of pdfmerge which no longer supports Windows.
pdfmerge 1.0.0
attrbox 0.1.2
New attrbox release: loading environment files, configuration files, and parsing CLI arguments.
attrbox 0.1.2
PEP 8 Thoughts (2023)
Revisiting the classic python style guide.
PEP 8 Thoughts (2023)
Fun with Python Mapping
In which we learn that the novice and expert can both choose the simpler answer for different reasons.
Fun with Python Mapping
2023-05-21 Weekend Notes
New ezq release and some notes about setting up the new blog.
2023-05-21 Weekend Notes
ezq 3.0.0
New ezq release which removes all deprecated functions.
ezq 3.0.0
SSH on Airplane WiFi
In which I try, unsuccessfully, to run ssh over an airplane wifi.
SSH on Airplane WiFi
Adding a table of contents
In which I learn how to add a table of contents to posts.
Adding a table of contents
2023-05-14 Weekend Notes
New ezq release and some experiments with ruff and eleventy.
2023-05-14 Weekend Notes
Adventures in Eleventy
Long post tracing my attempt to convert my blog to eleventy.
Adventures in Eleventy
Time is a Box
Time is a Box
3D Printing
3D Printing
The Skin Gun
The Skin Gun
Review: Drive
Review: Drive
Genome Compiler
Genome Compiler
Environmental Reliability
Intransitivity
Intransitivity
Economics of Dueling
Zone of Proximal Development
Endowment Effect
Endowment Effect
Parkinson's Law
Parkinson's Law
The Future Takes Time
Hacking New Senses
Security Theater
Security Theater
Review: Paradox of Choice
Classic Software Development Mistakes
Rats as Detectors
Rats as Detectors
Teaching Creative Thinking
Misunderstanding Email
Reader Question: How do fireworks work?
Applied Game Theory
Focus on a Purpose to Inspire Action
Asking the Naive Question
Review: Stop Stealing Dreams
Little Albert
Little Albert
Code Review: metadash
Enjoying the Process
Deferred Gratification
The Dark Side of Meta
Reset to a Known State
Anscombe's Quartet
Patient Problem Solving
Khan Academy
Khan Academy
Quality v. Quantity
Classical Music as a Punishment
Boredom & Distraction
Get Paying Customers First
The Briefcase Technique
Pretotyping
Pretotyping
Metaist, Now with More Metaist
Dr. Tae on Teaching and Learning
Pi v. Tau
Pi v. Tau
Reader Question: How do geological layers work?
Reader Post: Spicy Food
Nobody Likes a Goody Two-Shoes
Dry Water
Dry Water
Indigo Children
Indigo Children
Forer Effect
Forer Effect
Prisoner's Dilemma
Effective Apologies
Meanness & Executive Pay
Babies & Morality
Babies & Morality
Facilitated Communication
Ideomotor Effect
Ideomotor Effect
Take The Metaist 2010 Survey! [Closed]
Reader Story: Circular Learning Management System
Reader Question: How is yogurt made?
Cold War Continues in North Korea
Reader Review: The Checklist Manifesto
Google Chrome is Fast
Origin: Drink From a Fire Hose
Synthetic Happiness
Seedless Fruit
Seedless Fruit
Review: Mint.com
Review: Mint.com
Disease Screening & Base Rate Fallacy
Review: The Autonomy of Mathematical Knowledge
The Arnell Group & PepsiCo
Reader Question: Brushing & Curling
Zotero
Zotero
Shoes & Gait
Clever Hans Effect
First Instinct Fallacy
Cargo Cults
Cargo Cults
Pentatonic Scale
Pentatonic Scale
Placebo Effect
Placebo Effect
fMRI & False Positives
Dihydrogen Monoxide
Conference: Biological Foundations of Morality
The Mindless Ginkgo
The Dilute Homeopathy
The Perceptive Lintgen
The Deceptive Hydrick
The Amazing Randi
The Amazing Randi
Split-brain
Split-brain
Inattentional Blindness
Wireless Electricity
Electromagnetic Induction
Resonance
Resonance
Thinking About Other People's Thoughts
Crowdsourcing & Crowd Wisdom
Vending Machines for Crows
Playgrounds that Generate Electricity
Chiropractic Destroyed from Within
Fear of Spiders and Snakes
Punctuation Marks
Punctuation Marks
Steampunk
Steampunk
Gambling & Insurance Policies
Rules, Discretion, Appeals & Audit
Boredom & Body Language
Intrinsic & Extrinsic Motivation
Review: Economics in One Lesson
Arrow's Impossibility Theorem
Zeno's Paradox
Zeno's Paradox
Reader Question: What is Google Wave?
Dan Bull Sings Open Letters
Russell's Paradox
Russell's Paradox
The Importance of Numeracy
Computational Theory for Lawyers
Review: I Will Teach You To Be Rich
Advances in Printer Ink
Maslow's Hierarchy of Needs
Pomodoro Technique
Discontent Grows with Google: Wave, Closure and Go
Inbox Zero
Inbox Zero
Psychological Barriers
Easy Big Wins
Easy Big Wins
Zombies in Math and Literature
Fairness: Equity, Equality and Relative Need
Pareto Efficiency
Pareto Efficiency