All blogs / Software / engineering practice
Sympolymathesy, by Chris Krycho
Learning in public: on theology, technology, ethics, software, politics, art, and more.
Software / engineering practiceJavaScript / TypeScriptEssays / personalMusic
- Posts
- 583 from 3 Apr 2021 to 25 Oct 2026
- Posting
- weekly (58 in the last year)
- Kind
- personal blog
- Feed
- https://v5.chriskrycho.com/feed.xml
2026 40
- [journal] 2026 Boulderthon Race Report
- [journal] 80/20 Endurance Norwegian Marathon Plan Review
- [library] Books That Formed Me Theologically
- [notes] Finding where an environment variable came from in fish
- [notes] Subvert.fm
- [notes] Withering
- [notes] Notes on dependencies, peer dependencies, etc.
- [notes] Why Post Dorico Tip Videos?
- [notes] Always A Mess
- [journal] Impressively Capable, Impressively Foolish
- [notes] New Book Day
- [notes] Keep Going
- [notes] Finishing Things
- [journal] You Can Rightly Judge Things You Have Not Tried
- [photos] Photos: Boston, April 2026
- [notes] Asking: Should I Take Notes on This?
- [library] turning barges
- [notes] On the Rust Book Maintenance
- [journal] Collaboratives: A Proposal
- [notes] Do Not Despair of Good Work
- [notes] Trying a New Approach to Note-Taking on Books
- [notes] true-myth.dev
- [notes] Experimenting with Pomodoro Timer Durations
- [notes] Multitasking
- [notes] An Ice Cold Take on CI Config Systems
- [notes] Crowd-Sourcing: Metaphors for LLMs and AI
- 2026 Boston Marathon Race Report
- recovery… is a hopeful act
- Humans Are Amazing
- Just Let Me Share a Silly Little App with My Friends, Okay?
- Noticing, and Solving, Technical Problems in a Codebase
- What Happened to February?
- Exporting Graphic Slices From Dorico
- Three Theses and Their Implications About Software Engineering
- The (Unreasonable?) Effectiveness of Writing Down Goals
- Thinking About Anything Besides the Big Thing Right Now
- creaturehood
- Why Not Astro (etc.)?
- 2025 in Review: Writing
- Computing, Convivially
2025 127
- 2025 in Review: The Rest of Life
- 2025 in Review: Professional
- 2025 in Review: Music
- “Invalid Email Address” Error in Apple Mail
- 2025 in Review: Health and Fitness
- A Feed ‘Bug’ I Keep Tripping Over
- Friendly Little Wrapper Types
- 2025 in Review: Public Speaking
- 2025 in Review: Reading
- The Late-2025 Void of Great Zero-Based Budgeting Apps
- Some of Us Actually Like Coding
- Pop-Overs
- Sony α7 4K60 and APS-C Crop
- Grateful (2025)
- Orion 1.0
- Bookshop.org Wish List Wish List
- True myth 9.3.0
- My CDN Subdomain Setup
- Espresso from Cinchona at Provision Bread & Bakery
- Notes and Work Notes
- Symphony No. 1, Mvt. III
- Birds
- J.R.R. Tolkien: Author of the Century
- Robin Sloan’s “Aspire” Zine
- Taxiing
- Dallas Wall
- Illusion
- A Good Drink
- Reversion to the Mean
- Write Good Commit Messages
- Writing and Revision Time
- Naming Policy: ‘Large Language Models’, Not ‘Artificial Intelligence’
- Context and Trust, or: Test Suites Reflect Teams
- Software, change, stability, imperfect markets…
- True Myth 9.1.0: Standard Schema and More!
- Who Wants an Oxide Rack?
- isolatedDeclarations and Zod
- Jj workshop
- CleanShotX: Another Example of a Good ‘Subscription’ Model
- Kobo and Instapaper Integration
- the way we use language
- jj tip: cool revsets and per-repo aliases
- Five is the Floor
- No Really, That Lens Is Huge
- Rain / Beach / Dog
- Subscriptions That Respect Users
- Downtown Denver Wall
- Torn
- Using light-dark() Instead of a Sass Mixin for Color Schemes
- Platform reality
- Some Products Just Aren’t Big Companies
- Telling
- git commit headers (not log headers)
- History and Disposition
- 2025 Colfax Marathon Race Report
- Infrastructure, Common Goods, and the Future of Open Source Software
- Tip: Apple Music Hides Deleted Albums
- The Git “Invalid username or password” error
- Using mise-en-place for dotfiles
- Next: Vanta
- Your Real Assumed Audience
- Own Your Music
- no efficiency… very little scalability
- Quoting Dan Moren on Apple’s Software
- Claude as a Better Grammarly?
- Miyazaki cyberpunk
- Sell your RSUs
- Marvel’s Missed Musical Opportunity
- Userscripts for macOS and iOS
- NodeWalker in JavaScript
- Lowercase Your Namespaces
- The Strangest Thing in Tech (Criticism)?
- Watership Down
- Downie + Overcast
- Show Up!
- Quoting jane scharl on poetry
- TypeScript Native Port: Some Questions
- The First Day of Lent, Commonly Called Ash Wednesday
- Yes, Hallucinations are the “Least Dangerous”—Exactly
- Cloudflare Worker Responses Require Manual Caching
- Why Hover for Domain Registration?
- Separation of Concerns
- fish tip: Launching $EDITOR to Edit the Current Terminal Command
- Axum Handler Errors Need to Implement IntoResponse
- How Progress Feels
- Indurate
- Prototyping/Sketching in Code
- Three Horses
- Robin sloan is it okay
- Options for libc with Rust
- Authoring This Site in Obsidian etc.?
- Tidy First? A Personal Exercise in Empirical Software Design
- Today I Learned: Redirect Emails
- Big Packages or Many Dependencies
- The twitter:label and twitter:data meta tags
- minijinja tip: Template Values Must Round Trip
- minijinja tip: What That Custom Function’s Type Error Means
- TypeScript 5.8 Checks Runtime Code for Conditional Types!
- Re-packaging Existing Content, Transformation, or Both?
- One Reason Job Hunting is Exhausting
- Snuggle Your Kids
- How I Use Freedom to Focus
- The Curse of Knowledge and True Myth’s Documentation
- Recovery Time as an Indicator of Fitness
- A Reasonable Error Printing Utility in TypeScript
- Retractions and Revisions: My Review of Real Essentialism
- mdBook tip: Redirects and the SUMMARY.md file
- jj tip: describe multiple revisions at once
- The Essence of Successful Abstractions
- Two Quotes and a Question on Software Engineering and AI
- Improving jj-gcp with JSON Schema and schemars
- A Little Soulver Coffee Calculator
- What Distinguishes Newsletters from Blogs?
- JavaScript’s Promise.race and Promise.all Are Not “Fair”
- Resilience, Robustness, and Competence Envelopes
- Against Hard-Wrapping Text Documents
- Momentum
- An Octopus That Will Not Be Tamed?
- jj tip: Squash Changes From Across a Revset
- Review: Scout Mindset
- Big Picture Planning Makes Little Picture Planning Easier
- Inspiration and the Subconscious
- This Is Not Your Last Job
- A Year of Shipping
- “Working Effectively” Instead of “Productivity”
- A Structure for Personal Reviews
- 2024 in Review
2024 18
- TrainingPeaks Virtual and Garmin TacX NEO Bike
- Deferred Conflict Resolution in Jujutsu
- Why the Jujutsu posts are all about differences from Git
- Jujutsu Megamerges and jj absorb
- macOS tip: Spell Check with ⌘: and ⌘;
- Psychological Benefits of Cool-Downs
- The Master and His Emissary: The Divided Brain and the Making of the Western World
- Mental State and Perceived Exertion
- rust-analyzer version via rust-toolchain.toml
- fish shell v4 beta 1
- Noteblogging
- Publishing to GitHub Pages via GitHub Actions
- Byword
- Real Essentialism
- StaffPlus NY 2024: Substrate Engineering
- Weeknote: June 30–July 5, 2024
- Seeing Like a Programmer (LambdaConf 2024)
- jj init
2023 4
2021 1
Undated 393
- Shellcheck
- Configure Zed to Use the Project’s rust-analyzer
- Corrections: Using Drop Safely, Not For Safety
- Fast Forward “Merges” on GitHub
- To Throw or Not to Throw in TypeScript?
- jj tip: ignore gh-pages by default
- Buttondown’s Alternatives Page
- Runtime or Types?
- Mozi
- Read the Code: Using Drop Safely in Rust
- Mac App of the Year is… Lightroom?
- jj Tip: Rebase All Branches Matching a Revset
- Cargo semver checks v0.38.0
- Ghost (Instead of Substack)
- Implications of Plateauing LLMs
- Is Organic Social Media Dead?
- 2024 state of rust survey
- The Blue Oak Model License
- jj v0.24
- On cargo install Not Defaulting to --locked
- PSA: Default to cargo install --locked
- No AI on This Site
- Dprint
- The DefinitelyTyped dprint Setup
- brew services uses launchctl or systemctl
- Life Update, Advent 2024
- Apple Photos Shared Albums and JPEG XL
- React Hooks Are Indeed Not “Functional”
- New Tool: jj-gpc
- Rust test binary help output
- Read the Manual: id
- On My Current Writing Output
- A Note on Social Media Topics
- Read the Manual: lsof
- Read the Manual: pbcopy and pbpaste
- Read the Manual: uptime
- Read the Manual: rm
- Foodnoms
- Read the Manual: du
- I Won! 2024 Longview Half Marathon Race Report
- Read the Manual: cd
- Programming Language Learning: A Rant
- Read the Manual: last
- Race Report: 2024 Boulderthon Half Marathon
- Read the Manual: less
- Read the Manual: open
- Time
- A Long Kobo/Pocket Backlog
- PSA: Do Not Use Blockquotes for Admonitions
- Podcasts Are Audio Blogs
- Weeknote: July 6–13, 2024
- Fast Tools are Wonderful
- An Observation on Constructor Syntax
- Red Pen
- Weeknote: June 22–29, 2024
- Pest.rs’ Syntax Tree is Very Low-Level
- Weeknote: June 17–21, 2024
- Genuine Lowbrow Reading?
- Using cargo tree to Explain Dependencies
- Denver Colfax Half Marathon 2024 Race Report
- Microblogs Without Social Media
- How I Currently Use Social Media
- Your Talk Slides Should Be Progressive Enhancement
- You Have to Type It Out
- Async Rust Complexity
- Pro Eclecticism: A Rant
- Gut Feelings
- Garmin Training Status – A Complaint
- Being a Fast, Cogent Writer Is Useful
- A Sanctus for Epiphany
- One Problem With My Kobo Aura ONE
- 2023 in Review: The Rest of Life
- 2023 in Review: Professional
- 2023 in Review: Writing and Speaking
- 2023 in Review: Reading
- 2023 in Review: Sabbatical Report
- 2023 in Review
- Difficult
- Why Not OpenDoc-Alikes?
- Why Not Type-Based Overloading in Rust?
- The Wizardry Frontier
- Typographical and Musical Scales
- Past: Leaving LinkedIn
- Now: Sabbatical
- Next: Role?
- Confronted by Grace
- Seven Languages in Seven Weeks
- How to Do a TypeScript Conversion
- Where DRY Applies
- An Observation on Programming Pedagogy
- Versioning and Big Binary Blob Art Files
- The Good News that God Does Not Change
- Theology is not liturgy. But…
- Not Loving a Lens
- From Mount Muscoco (1)
- Autumn (2023)
- How do you make a charismatic thing?
- Do It the Dumb Way Sometimes
- Brain Rewiring in Progress
- Subscriptions Update
- Unmeasurable Costs and Benefits
- Hierarchical systems
- Tools for Thought, Not Shortcuts for Thinking
- Writing and Prestige-Building—A Reply to Will Larson
- Analytics for Sites With Tech-Savvy Audiences
- Just Keep Climbing
- Stay Curious About Your Tools
- the establishment of fellowship
- boundary-drawing and system design
- Unsafe
- Reflections on a Month with BBEdit and Nova
- Extended Time Off Report
- My Current Mac Stack
- Stocks, Flows, Resiliency, and Layoffs
- Quitting the Big Five—A Reply to Brad East
- Is TypeScript Good?—A Reply to Rach Smith
- Je ne sais quoi
- Fog and Bird
- Trying BBEdit and Nova
- On Ember’s New Major Version Cadence
- running / patience
- Sermon Notes
- Sanctification
- Writing Tools
- Be a quality detector.
- Is GitHub Copilot Any Good?
- About My Licensing Choices
- Did Not Start
- dimension change/code review
- Competencies
- blossoming
- spring evening
- Questions Posed
- Autumn Sunset
- Eagle on the Neighbors’ House
- ❡ Length: An Observation
- Fork Software More
- People, Strategy, Execution
- Feature Idea: Week-Level Smart Training Plans
- Blog-Gardening in Public
- Build Yourself Small Tools
- Initial Notes on Elicit
- Special Null Syntax vs. Types and Functions
- Product Idea: Meal Tracking for Athletes
- An Orchestra in My Pocket
- Generative Work and Productive Puttering
- Goal-Setting
- 2022 in Review: The Rest of life
- old truck
- 2022 in Review: Professional
- 2022 in Review: Public Speaking
- 2022 in Review: Writing
- 2022 in Review: Reading
- well, dang
- OPML Files as… Annotated Bibliographies?
- cold (2)
- Cold
- Patterns for “Smart” Components in Ember
- Supernote, Dropbox, and Transmit
- A UML Comeback?
- Reasoning About Reference Cycles
- Journaling, One Day Along
- Journaling
- John Cook and Brief Notes
- A Note on Life Stages
- creation, incarnation, art, vocation
- Writing Down What I Do—In Obsidian
- Dorico Tip: Solo Parts in String Sections
- Organizing Many Software Projects
- plane wing
- necessarily simple abstractions
- walking back to the hotel
- NYC, Looking Up
- Cloud tops
- Obsidian
- October Sunset
- Autumn on the Front Range (2)
- Autumn on the Front Range
- Inversion
- Trade-offs
- Marco’s Rule of Software Stacks (Expanded)
- Long and Short
- The Man from the Future
- Garden of the Gods
- the possibility of being caught off guard
- Open Source
- Flow State
- What Can I Do With 10 Minutes?
- Turning on Some Apple Accessiblity Preferences
- Thinking Out Loud on “Trauma”
- Some Thoughts on Zig
- A Pleasing Symmetry in Rust
- The Tamron 35-150mm 𝑓/2–2.8 Di III VXD
- The Sony Sonnar T* FE 55mm 𝑓/1.8 ZA
- The Sony α7 IV
- St. George’s Anglican Church
- Conditional Modifiers and Helpers in Ember
- Misusing TypeScript Assertion Functions for Fun and Profit
- SemVer for TS in Practice
- One challenge to the new moral science
- On Stationery
- A quarter-of-the-year check-in—
- Don’t Universalize from Your Own Experiences
- Volume
- through a small tree
- A question of authority
- Notes on Exposure Notifications
- Eternals
- the heart of the life of the Church
- Don’t Sprint the First Mile of a Half Marathon
- Program modifications at low cost?
- Tentative 2022 Reading List
- Buy Me a Book
- Reading Settings!
- Study
- 2021 End-of-Year Thoughts
- Courage
- how to sorrow/pilgrim knowledge
- “I cannot not be a creature made and called by God’s love”
- Small, Non-Trivial Projects for Learning
- 2022 Colfax Half Marathon Plan
- Rfc
- a moral undertaking
- Reading “A Functional Programming Language with Versions”
- Ember.js Template Imports: Part 6
- Ember.js Template Imports: Part 5
- Ember.js Template Imports: Part 4
- Ember.js Template Imports: Part 3
- Anki and Spaced Repetition
- Ember.js Template Imports: Part 2
- Ember.js Template Imports: Part 1
- …such is God’s mercy
- Reading for world-building
- Mall Sign
- The Sony α7C
- From the Visitor Center
- Cameras and Attention (Redux)
- God Without Measure: Working Papers in Christian Theology – Volume I: God and the Works of God
- …revelation disturbs
- Spiritual Experiences—Intellectual and Emotional
- Theological Anthropology Comes First
- What if PageRank Was a Mistake?
- Alley sunset
- Praising God
- MusicXML and Percussion Notation
- StaffPad to Dorico via MusicXML? Alas, no.
- StaffPad Versions
- creation is pure generosity
- ‘Life… finds a way.’
- Dinosaur National Monument
- My Current Photography Setup
- Revealed and Stated Preferences
- Late Afternoon Lake
- Two quotes on creatio ex nihilo
- Reread Books!
- Miscellaneous Updates
- not the imposition of an alien will
- exposition precedes disputation
- Balloons, of Course
- New Mexico Vacation
- The Best Brewery I Visited in ABQ
- Lone Cactus
- Ramen and Ribs
- Slow Burn Coffee
- Three considerations on reading the Bible
- Rio Grande Drainage
- Tiny Flowers for Color
- “…our enemies, sin, the curse and death, are beaten.”
- Progressive Disclosure of Complexity and Typed FP Languages
- Dogmatic portrayal of the canon
- Introducing “Heuristics for Good Software Design”
- Naming and Framing
- A Gap in (My Knowledge of) the Developer Productivity Literature
- A Useful Approach to Problem-Solving
- Scarcities
- I Am Not An Original Thinker
- A path away from Kant?
- Using Classes for Functional Programming
- God with us, God for us
- Just Write
- holiness and jealousy
- God as the Holy One and God as Redeemer and Saviour
- not primarily morally legislative but soteriological
- God is holy as he bends down to us in mercy
- Wrapping Up 2020 and Starting 2021
- thus… have we made the world
- the trap of thinking that we know what's going on here
- Understanding args in Glimmer Components
- all the difference in the world
- the requirement for theological reason
- an exercise of fellowship with the saints
- Ember Octane is a New Mental Model
- Reluctantly Returning to Social Media
- We speak in God’s presence
- reason is a field of God’s sanctifying work
- an exercise of holiness
- the unholy science?
- Mr. Penumbra’s 24-Hour Bookstore
- Notes on Thoughtbot’s “Stop Using 'any'”
- Writing Robust TypeScript Libraries
- Data Constructors, Part 2: Better TypeScript
- God teaches us
- Initializing Class Fields in Ember Octane
- Finding Holy in the Suburbs
- Politics & The Order of Love
- Things I Was Wrong About: Types
- Autotracking: Elegant DX Via Cutting-Edge CS
- A Chalcedonian conceptual grammar for love and justice
- All is broken and incomplete, and politics can not heal the rupture.
- Data Constructors, Part 1: Understanding by Implementing
- Can You Recommend a Book on This?
- Async Data and Autotracking in Ember Octane
- the mixed moral qualities of any age
- Migrating Off of PromiseProxyMixin in Ember Octane
- Twitter and Me, Redux
- Good theology demands good theologians
- The first and last act of theological existence
- Polemic is Hard
- theological self-criticism
- the story of modern theology
- Christian Theology’s Place in the University
- The Real Aim of Utopias
- Perfectionism Without Perfectibility
- Please Reply!
- On Ending “This Week I Learned”
- An anti-culture
- Christian astonishment
- Good Theologians
- Presence
- A Git Workflow for Managing Long-Running Upgrades
- Sourdough
- Building the Slow Way
- Reading Habits
- Composing a Fanfare for Crew Dragon: Day 8
- Composing a Fanfare for Crew Dragon: Day 7
- Making Illegal States Unrepresentable—In TypeScript
- Composing a Fanfare for Crew Dragon: Day 6
- This Week I Learned #5
- This Week I Learned #4
- Designing an Atomic CSS System
- mut (and set) and autotracking in Ember Octane
- Composing a Fanfare for Crew Dragon: Day 5
- This Week I Learned #3
- Composing a Fanfare for Crew Dragon: Day 4 (Part 2)
- Composing a Fanfare for Crew Dragon: Day 4 (Part 1)
- Composing a Fanfare for Crew Dragon: Day 3
- Composing a Fanfare for Crew Dragon: Day 2
- Composing a Fanfare for Crew Dragon: Day 1
- Follow-Up on Command-Line Finding and Filtering
- find, grep, xargs, and newlines and null
- This Week I Learned #2
- The Infra Engineer’s Blind Spot
- This Week I Learned #1
- JavaScript Functional Immutable Update Performance
- Superscript and Subscript Line Heights
- On “Saints”
- All places tell stories
- Waiting for Communion
- The Lost World
- Jurassic Park
- The Triune Creator’s Relating to Creation
- God’s self-commitment to creatures
- Scripting Affiliate Links in Alfred
- Adding a Reading List Page
- How I Publish This Site
- Ulysses Publishing With WordPress on Linux
- Problematic
- Fall-Centered Theological Anthropologies
- Tiamat’s Wrath
- Please Don’t Just Screenshot Books!
- Tell Me Your Priors!
- An Atom Feed Apology
- Epistemic Status
- A Decadal Kind of Change
- Adieu to 2019
- Dark Matter
- Recursion
- Writing Implements
- Endings and Edges
- Red Mars
- Decaffeinating
- On Remembering Scripture
- Some Thoughts on micro.blog
- 25,462 Words
- A JSON Feed Apology and Explanation
- …but Running is Sunlight
- Travel is my Kryptonite
- Twitter Bots and “Decline”
- Writing Requires Reading
- Relaunch!
- software engineer
- composer
- runner and cyclist