# Jeff Bailey > This website contains learning resources, opinions, and facts about software-related technology. Each page below also has a plain-markdown version for machine reading: append `llm.txt` to its URL. For example `https://jeffbailey.us/blog/2021/11/30/learn-jq/llm.txt`. ## Start here The guides people actually read. - [jq Cookbook: Practical jq Examples for Parsing JSON](https://jeffbailey.us/blog/2021/11/30/learn-jq/): jq cookbook with tested, copy-paste examples for parsing JSON: select and filter, reshape objects, group and sum, convert to CSV, and script with --arg. - [How to Fix Permission Denied (publickey) in SSH and GitHub](https://jeffbailey.us/blog/2019/11/10/setting-ssh-key-permissions/): Fix "Permission denied (publickey)" in SSH and Git: use the git user, load your key into ssh-agent, add it to GitHub, and set key file permissions. - [Structurizr Examples: C4 Diagrams With the Structurizr DSL](https://jeffbailey.us/blog/2021/03/13/learn-structurizr/): Structurizr examples for every C4 view: system context, container, component, dynamic, and deployment, written in the Structurizr DSL and validated. - [Fix: Push Declined Due to Email Privacy Restrictions](https://jeffbailey.us/blog/2020/01/20/push-declined-due-to-email-privacy-restrictions-on-github/): GitHub rejects the push because your commit email is private. Set the GitHub noreply address, repair the commits you already made, and push again. - [How to Send System Email to Gmail From Linux (mail.rc)](https://jeffbailey.us/blog/2022/04/16/how-do-i-send-emails-with-unix-and-gmail/): Send Linux system email to Gmail: create an app password, configure mail.rc for mailx or s-nail, or use msmtp, then route cron and systemd alerts to your inbox. - [Learn systemd: Units, Timers, and journalctl](https://jeffbailey.us/blog/2021/11/04/learn-systemd/): Learn systemd by doing: the systemctl commands you need daily, reading logs with journalctl, writing a service unit, and replacing a cron job with a timer. ## Recent posts - [Fix: ssh: connect to host github.com port 22: Connection timed out](https://jeffbailey.us/blog/2026/09/21/ssh-connect-to-host-github-port-22/): Your network blocks SSH on port 22, not your key. Route GitHub over ssh.github.com on port 443, make it permanent in ssh config, and verify with git. - [Fix: Support for Password Authentication Was Removed](https://jeffbailey.us/blog/2026/09/21/git-password-authentication-removed/): GitHub rejects your Git password over HTTPS. Switch the remote to SSH, or create a personal access token and store it, so pushes stop asking. - [Fix: Too Many Authentication Failures](https://jeffbailey.us/blog/2026/09/21/ssh-too-many-authentication-failures/): SSH offers every key you own and the server cuts you off after six. Pin one key with IdentitiesOnly, and learn why GitHub gives a different error. - [Fix: Host Key Verification Failed](https://jeffbailey.us/blog/2026/09/20/ssh-host-key-verification-failed/): SSH stops with "Host key verification failed." Read the warning correctly, decide whether the key really changed, and fix it without disabling checking. - [Fix: src refspec main does not match any](https://jeffbailey.us/blog/2026/09/20/git-src-refspec-does-not-match-any/): Git rejects the push with "src refspec main does not match any". Four causes: no commit yet, a different branch name, a typo, and nothing committed. - [How to Use jq With kubectl: Practical Recipes](https://jeffbailey.us/blog/2026/09/20/how-do-i-use-jq-with-kubectl/): Query Kubernetes with kubectl -o json and jq: find pods that aren't running, containers without limits, images in use, restart counts, and node capacity. - [jq vs yq: Which One Should You Use?](https://jeffbailey.us/blog/2026/09/20/jq-vs-yq/): jq vs yq compared on YAML support, syntax, speed, and in-place edits, with tested examples and a pick for each job. They are complements, not rivals. - [Structurizr vs Mermaid vs PlantUML for C4 Diagrams](https://jeffbailey.us/blog/2026/09/20/structurizr-vs-mermaid-vs-plantuml/): Structurizr, Mermaid C4, and C4-PlantUML compared on the same model: layout quality, error checking, offline rendering, and how many views one source buys you. - [Confusion as a Service - Deadly Cut 17](https://jeffbailey.us/blog/2026/09/03/death-by-1000-cuts-17-confusion-as-a-service/): Confusion as a Service (CaaS) starts with the co-worker who floods every channel until nothing means anything. Here is how back pressure gets your sanity back. - [Why Do I Need an Ontology?](https://jeffbailey.us/blog/2026/08/26/why-do-i-need-an-ontology/): An ontology gives developers and AI agents a shared, checkable model of the domain, with guardrails that catch error types and plain English mistakes. - [How Do I Use Lima?](https://jeffbailey.us/blog/2026/08/14/how-do-i-use-lima/): Use Lima to run Linux on your Mac: install with Homebrew, start an Ubuntu VM, share files, and run your first container with nerdctl. - [Learn Mermaid](https://jeffbailey.us/blog/2026/08/14/learn-mermaid/): Learn Mermaid in 15 minutes: the flowchart and sequence diagram syntax that covers most work, plus the best videos, books, and docs to go deeper. - [What Is Lima?](https://jeffbailey.us/blog/2026/01/31/what-is-lima/): Lima explained: how it runs Linux VMs on your Mac, powers Colima and Rancher Desktop, and replaces Docker Desktop without the licensing bill. - [What Is Envoy?](https://jeffbailey.us/blog/2026/08/13/what-is-envoy/): Envoy explained: what the proxy behind Istio and modern Kubernetes gateways does, why it exists, and how its control plane model works. - [What Is Boolean Logic?](https://jeffbailey.us/blog/2026/07/29/what-is-boolean-logic/): Boolean logic explained: true, false, AND, OR, NOT, and the mental patterns a human needs before true or false can mean anything. - [The Invalid Response Loop: Deadly Cut 16](https://jeffbailey.us/blog/2026/07/24/death-by-1000-invalid-response-loop/): Invalid response loops in automated phone systems waste hours by design. A 27-minute FSA support call shows how Interactive Voice Response (IVR) menus fail people and how to fix them. - [Fundamentals of Containerization](https://jeffbailey.us/blog/2026/07/19/fundamentals-of-containerization/): Containerization fundamentals: images, layers, namespaces, cgroups, and why containers make software portable and reproducible across environments. - [Fundamentals of Empirical Software Engineering](https://jeffbailey.us/blog/2026/07/14/fundamentals-of-empirical-engineering/): Empirical software engineering fundamentals: how systematic data collection and analysis replace opinion with evidence about how software is built and used. - [Fundamentals of Architecture Decision Making](https://jeffbailey.us/blog/2026/07/13/fundamentals-of-architecture-decision-making/): Architecture decision making fundamentals: how to spot decisions that matter, weigh trade-offs, judge reversibility, and record choices with ADRs. - [Fundamentals of Data Architecture](https://jeffbailey.us/blog/2026/07/13/fundamentals-of-data-architecture/): Data architecture fundamentals: the staging, core, and semantic layers, why architecture is not tools, and how batch and streaming data land. - [Fundamentals of Analytics Engineering](https://jeffbailey.us/blog/2026/07/09/fundamentals-of-analytics-engineering/): Analytics engineering fundamentals: the role between data engineering and analysis, ELT, the transformation layer, testing, and the semantic layer. - [Are We There Yet Development](https://jeffbailey.us/blog/2026/07/02/death-by-1000-are-we-there-yet-development/): Are We There Yet Development names the AI-era habit of demanding software at the speed of thought, and the toll it takes. - [Learn HTTP Status Codes](https://jeffbailey.us/blog/2026/06/28/learn-http-codes/): Learn HTTP status codes with five mental models: a mnemonic for all five classes (1xx-5xx), the codes you'll meet most, and how to read them with curl. - [1000 Life Giving Potions - Operating System Wildlife](https://jeffbailey.us/blog/2026/06/27/1000-life-giving-potions-operating-system-wildlife/): Why I run Mac OS, Linux, and Windows side by side, what jumping between operating systems taught me, and how to start exploring the OS wildlife yourself. - [How Do I Create a Knowledge Graph?](https://jeffbailey.us/blog/2026/06/23/how-do-i-create-a-knowledge-graph/): Build a working knowledge graph in one pure-Python file. Store facts as triples, then query and traverse them, with no database and no libraries. ## Reference - [About](https://jeffbailey.us/about/): Jeff Bailey is a principal software engineer working on enterprise architecture, cloud cost optimization, and InnerSource. This site collects what he has learned. - [What Are My Principles?](https://jeffbailey.us/what-are-my-principles/): The personal principles I use to make decisions, prioritize time, and focus on what matters: comprehension, discipline, health, and balance. - [Contact](https://jeffbailey.us/contact/) - [What Is My Writing Style?](https://jeffbailey.us/what-is-my-writing-style/): My writing style pairs logical ideas with illogical behaviors, uses juxtaposition and storytelling, and makes complex concepts accessible. - [What Are My Professional Principles?](https://jeffbailey.us/what-are-my-professional-principles/): Professional principles that guide my work as a software development leader: technical excellence, business alignment, and people-first collaboration. - [Software Development Leader with Diverse Experience](https://jeffbailey.us/resume/): Are you seeking a seasoned Software Development Leader with expertise in architecture, cost optimization, and collaborative engineering? - [Emoji Search Tool - Find & Copy Emojis Instantly](https://jeffbailey.us/emoji-search/): Search and copy standard emojis instantly with the free emoji search tool. Browse the complete Unicode emoji list with real-time search. - [Software Development Tools](https://jeffbailey.us/software-development-tools/): Software development tools I use daily: browsers, macOS apps, and command line programs that make building software faster. - [A Leadership Philosophy](https://jeffbailey.us/a-leadership-philosophy/): A leadership philosophy from a Principal Engineer: eight principles for leading teams with authenticity, humility, and trust. - [Useful macOS Shortcuts](https://jeffbailey.us/useful-macos-shortcuts/): macOS has many useful shortcuts to maximize efficiency. - [Archive](https://jeffbailey.us/archives/) - [Search](https://jeffbailey.us/search/): Search through all posts on this site ## Optional - [Full post index](https://jeffbailey.us/sitemap.xml): every published URL. - [Feed](https://jeffbailey.us/rss.xml): new posts as they publish.