56,966 blogs · [ { "id": "01a0cb23-252c-73d6-901e-9062e2c68b45", "title": "Notes on migrating 35kb prompts away from Anthropic/OpenAI to Self-Hosted Ollama+opencode", "url": "https://patrickmccanna.net/notes-on-migrating-large-prompts-away-from-anthropic-openai-to-self-hosted-llms/", "published_at": "2026-09-13T20:24:47+00:00" }, { "id": "01a087bd-8a92-7130-970a-c1ff21e08a77", "title": "Inspecting Claude Code’s Network Traffic with Linux Namespaces and MITM Proxying (Part 5)", "url": "https://patrickmccanna.net/inspecting-claude-codes-network-traffic-with-linux-namespaces-and-mitm-proxying-part-5/", "published_at": "2026-06-30T22:51:39+00:00" }, { "id": "01a087bd-8a93-7099-a14b-7461bcc708e9", "title": "Inspecting Claude Code’s Network Traffic with Linux Namespaces and MITM Proxying (Part 4)", "url": "https://patrickmccanna.net/inspecting-claude-codes-network-traffic-with-linux-namespaces-and-mitm-proxying-part-4/", "published_at": "2026-06-30T22:38:39+00:00" }, { "id": "01a087bd-8a93-7099-a14b-7461bdb0b8b8", "title": "Inspecting Claude Code’s Network Traffic with Linux Namespaces and MITM Proxying (Part 2)", "url": "https://patrickmccanna.net/inspecting-claude-codes-network-traffic-with-linux-namespaces-and-mitm-proxying-part-2/", "published_at": "2026-06-30T21:19:35+00:00" }, { "id": "01a087bd-8a93-7099-a14b-7461be0f299c", "title": "Inspecting Claude Code’s Network Traffic with Linux Namespaces and MITM Proxying (Part 1)", "url": "https://patrickmccanna.net/inspecting-claude-codes-network-traffic-with-linux-namespaces-and-mitm-proxying-part-1/", "published_at": "2026-06-30T20:45:04+00:00" }, { "id": "01a087bd-8a93-7099-a14b-7461bedbd8bf", "title": "Inspecting Claude Code’s Network Traffic with Linux Namespaces and MITM Proxying (Part 3)", "url": "https://patrickmccanna.net/inspecting-claude-codes-network-traffic-with-linux-namespaces-and-mitm-proxying-part-3/", "published_at": "2026-06-29T23:31:48+00:00" }, { "id": "01a087bd-8a93-7099-a14b-7461bf30ef9b", "title": "The text in Claude Code’s “Extended Thinking” output is not authentic.", "url": "https://patrickmccanna.net/the-text-in-claude-codes-extended-thinking-output-is-not-authentic/", "published_at": "2026-06-22T14:20:28+00:00" }, { "id": "01a087bd-8a93-7099-a14b-7461bfcb9175", "title": "Fixing a stuck Ollama runner and building a GPU watchdog", "url": "https://patrickmccanna.net/fixing-a-stuck-ollama-runner-and-building-a-gpu-watchdog/", "published_at": "2026-06-08T20:09:33+00:00" }, { "id": "01a087bd-8a94-73f7-9998-d6e95233b53a", "title": "Getting Up to Speed on Gastown", "url": "https://patrickmccanna.net/getting-up-to-speed-on-gastown/", "published_at": "2026-05-14T14:24:28+00:00" }, { "id": "01a087bd-8a94-73f7-9998-d6e9532be79f", "title": "Inviting two AI agents to generate a collaboration protocol", "url": "https://patrickmccanna.net/two-claude-code-sessions-one-repo-and-a-protocol-they-helped-write/", "published_at": "2026-04-29T01:21:53+00:00" }, { "id": "01a087bd-8a94-73f7-9998-d6e9538f85c0", "title": "A Survey of the 7 Configuration Changes That Turn a Multi-homed Linux Host into a Switch/Router", "url": "https://patrickmccanna.net/7-configuration-changes-that-turn-a-multi-homed-host-into-a-switch-router/", "published_at": "2026-03-31T13:04:18+00:00" }, { "id": "01a0bdcc-2d92-7334-9281-bfad740b7723", "title": "The Operations File: A Pattern for Establishing Maintainable Systems", "url": "https://patrickmccanna.net/the-operations-file-a-pattern-for-establishing-maintainable-systems/", "published_at": "2026-03-23T19:58:49+00:00" }, { "id": "01a0bdcc-2d92-7334-9281-bfad74a1e97d", "title": "Defeating context fatigue with agentic scaffolding", "url": "https://patrickmccanna.net/defeating-context-fatigue-with-agentic-scaffolding/", "published_at": "2026-03-10T12:00:45+00:00" }, { "id": "01a0bdcc-2d92-7334-9281-bfad7520c635", "title": "Allocating RAM for GPU performance on self hosted LLM systems with integrated System & GPU RAM", "url": "https://patrickmccanna.net/allocating-ram-for-gpu-performance-on-self-hosted-llm-systems-with-integrated-system-gpu-ram/", "published_at": "2026-03-02T22:32:15+00:00" }, { "id": "01a0bdcc-2d92-7334-9281-bfad75c1e523", "title": "Some Bible Translatin’", "url": "https://patrickmccanna.net/some-bible-translatin/", "published_at": "2026-02-27T03:26:31+00:00" }, { "id": "01a0bdcc-2d92-7334-9281-bfad75cc79cf", "title": "Giving coding agents ssh access without disclosing secrets", "url": "https://patrickmccanna.net/giving-coding-agents-ssh-access-to-other-systems-without-giving-disclosing-secrets/", "published_at": "2026-02-10T05:52:54+00:00" }, { "id": "01a0bdcc-2d92-7334-9281-bfad75d37a0b", "title": "A detailed writeup of Claude Code constrained by Bubblewrap.", "url": "https://patrickmccanna.net/a-detailed-writeup-of-claude-code-constrained-by-bubblewrap/", "published_at": "2026-01-26T23:06:14+00:00" }, { "id": "01a0bdcc-2d92-7334-9281-bfad76495d81", "title": "A better way to limit Claude Code (and other coding agents!) access to Secrets", "url": "https://patrickmccanna.net/a-better-way-to-limit-claude-code-and-other-coding-agents-access-to-secrets/", "published_at": "2026-01-14T20:46:09+00:00" }, { "id": "01a0bdcc-2d92-7334-9281-bfad76bfa05c", "title": "Keeping secrets from Claude Code", "url": "https://patrickmccanna.net/keeping-secrets-from-claude-code/", "published_at": "2026-01-09T18:58:39+00:00" }, { "id": "01a0bdcc-2d92-7334-9281-bfad76d34db5", "title": "Using custom AI Agents to Migrate Self-Hosted Services Between Servers", "url": "https://patrickmccanna.net/using-custom-ai-agents-to-migrate-self-hosted-services-between-servers/", "published_at": "2026-01-07T00:50:25+00:00" }, { "id": "01a0bdd2-2c13-7058-a65b-79671fb7b204", "title": "THE BOOT ORDER OF THE RASPBERRY PI IS UNUSUAL!", "url": "https://patrickmccanna.net/the-raspberry-pi-boot-order-is-unusual/", "published_at": "2025-12-12T00:47:27+00:00" }, { "id": "01a0bdd2-2c13-7058-a65b-7967207817ea", "title": "Raspberry Pi WiFi CTF Lab Experiment Results", "url": "https://patrickmccanna.net/raspberry-pi-wifi-ctf-lab-experiment-results/", "published_at": "2025-12-01T19:22:54+00:00" }, { "id": "01a0bdd2-2c13-7058-a65b-7967209553bb", "title": "Test", "url": "https://patrickmccanna.net/test/", "published_at": "2025-12-01T19:14:49+00:00" }, { "id": "01a0bdd2-2c13-7058-a65b-7967217a8884", "title": "You Cracked the WiFi Password – Now What?", "url": "https://patrickmccanna.net/you-cracked-the-wifi-password-now-what/", "published_at": "2025-11-29T21:10:53+00:00" }, { "id": "01a0bdd2-2c14-7372-b3d5-29f0d4520b7b", "title": "WiFi Security Puzzle + Free CTF Tomorrow!", "url": "https://patrickmccanna.net/wifi-security-puzzle-free-ctf-tomorrow/", "published_at": "2025-11-28T19:20:04+00:00" }, { "id": "01a0bdd2-2c14-7372-b3d5-29f0d4d4f952", "title": "Day 28: Major Amendments After the Bill of Rights", "url": "https://patrickmccanna.net/day-28-major-amendments-after-the-bill-of-rights/", "published_at": "2025-11-25T02:06:29+00:00" }, { "id": "01a0bdd2-2c14-7372-b3d5-29f0d50885e7", "title": "Day 27: The Amendment Process – How to Change the Constitution", "url": "https://patrickmccanna.net/day-27-the-amendment-process-how-to-change-the-constitution/", "published_at": "2025-11-24T02:05:58+00:00" }, { "id": "01a0bdd2-2c14-7372-b3d5-29f0d58fd432", "title": "WiFi Password Cracking Challenge", "url": "https://patrickmccanna.net/wifi-password-cracking-challenge/", "published_at": "2025-11-24T00:38:36+00:00" }, { "id": "01a0bdd2-2c14-7372-b3d5-29f0d5ec1efe", "title": "Hands-On WiFi Security CTF: Beta Test Experience", "url": "https://patrickmccanna.net/hands-on-wifi-security-ctf-beta-test-experience/", "published_at": "2025-11-19T23:05:11+00:00" }, { "id": "01a0bdd2-2c14-7372-b3d5-29f0d656b467", "title": "Day 24: Amendments 2-4 – Security and Privacy", "url": "https://patrickmccanna.net/day-24-amendments-2-4-security-and-privacy/", "published_at": "2025-11-19T06:04:00+00:00" }, { "id": "01a0bdd5-d402-717d-89b9-24407a42cc26", "title": "Day 23: First Amendment – Five Essential Freedoms", "url": "https://patrickmccanna.net/day-23-first-amendment-five-essential-freedoms/", "published_at": "2025-11-18T02:03:47+00:00" }, { "id": "01a0bdd5-d403-72cb-982c-71454c0a9003", "title": "Day 22: The Bill of Rights – Keeping the Promise", "url": "https://patrickmccanna.net/day-22-the-bill-of-rights-keeping-the-promise/", "published_at": "2025-11-17T02:03:09+00:00" }, { "id": "01a0bdd5-d403-72cb-982c-71454d05e5be", "title": "Day 21: Checks and Balances – How the Branches Limit Each Other", "url": "https://patrickmccanna.net/day-21-checks-and-balances-how-the-branches-limit-each-other/", "published_at": "2025-11-14T06:02:00+00:00" }, { "id": "01a0bdd5-d403-72cb-982c-71454d1ef298", "title": "Day 20: Separation of Powers – Why Divide Authority?", "url": "https://patrickmccanna.net/day-20-separation-of-powers-why-divide-authority/", "published_at": "2025-11-13T06:59:00+00:00" }, { "id": "01a0bdd5-d403-72cb-982c-71454d86c68a", "title": "Day 19: The Judicial Branch – Article III Powers", "url": "https://patrickmccanna.net/day-19-the-judicial-branch-article-iii-powers/", "published_at": "2025-11-12T06:56:00+00:00" }, { "id": "01a0bdd5-d403-72cb-982c-71454dd23575", "title": "Day 18: The Executive Branch – Article II Powers", "url": "https://patrickmccanna.net/day-18-the-executive-branch-article-ii-powers/", "published_at": "2025-11-11T06:52:00+00:00" }, { "id": "01a0bdd5-d403-72cb-982c-71454ea03c4f", "title": "Day 17: The Legislative Branch – Article I Powers", "url": "https://patrickmccanna.net/day-17-the-legislative-branch-article-i-powers/", "published_at": "2025-11-07T06:46:00+00:00" }, { "id": "01a0bdd5-d403-72cb-982c-71454f3646d2", "title": "Day 16: Federalism – Dividing Power Between Nation and States", "url": "https://patrickmccanna.net/day-16-federalism-dividing-power-between-nation-and-states/", "published_at": "2025-11-06T06:44:00+00:00" }, { "id": "01a0bdd5-d403-72cb-982c-71454feeb908", "title": "Day 15: The Preamble – What’s the Constitution For?", "url": "https://patrickmccanna.net/day-15-the-preamble-whats-the-constitution-for/", "published_at": "2025-11-06T01:44:02+00:00" }, { "id": "01a0bdd5-d403-72cb-982c-714550b2c5d4", "title": "Day 14: Signing and Next Steps", "url": "https://patrickmccanna.net/day-14-signing-and-next-steps/", "published_at": "2025-10-22T06:02:00+00:00" }, { "id": "01a0bdda-2060-7014-aef4-78ad5379322b", "title": "Day 13: Other Major Compromises", "url": "https://patrickmccanna.net/day-13-other-major-compromises/", "published_at": "2025-10-21T06:47:00+00:00" }, { "id": "01a0bdda-2060-7014-aef4-78ad54033115", "title": "Day 12: The Great Compromise", "url": "https://patrickmccanna.net/day-12-the-great-compromise/", "published_at": "2025-10-17T21:47:27+00:00" }, { "id": "01a0bdda-2060-7014-aef4-78ad54ad8214", "title": "Preview: WifiCTF Participant Docs- Level 2:", "url": "https://patrickmccanna.net/preview-wifictf-participant-docs-level-2/", "published_at": "2025-10-16T20:23:45+00:00" }, { "id": "01a0bdda-2060-7014-aef4-78ad559e24ab", "title": "Thursday workout w Kelsey", "url": "https://patrickmccanna.net/thursday-workout-w-kelsey/", "published_at": "2025-10-09T17:20:18+00:00" }, { "id": "01a0bdda-2060-7014-aef4-78ad561e2547", "title": "Day 11: Key Delegates and Competing Plans", "url": "https://patrickmccanna.net/day-11-key-delegates-and-competing-plans/", "published_at": "2025-10-09T06:18:00+00:00" }, { "id": "01a0bdda-2060-7014-aef4-78ad57143189", "title": "Day 10: Calling the Constitutional Convention", "url": "https://patrickmccanna.net/day-10-calling-the-constitutional-convention/", "published_at": "2025-10-08T06:16:00+00:00" }, { "id": "01a0bdda-2060-7014-aef4-78ad5769218e", "title": "Day 9: Problems Under the Articles", "url": "https://patrickmccanna.net/day-9-problems-under-the-articles/", "published_at": "2025-10-07T06:04:00+00:00" }, { "id": "01a0bdda-2060-7014-aef4-78ad578ec4fe", "title": "Day 8: Articles of Confederation – Structure", "url": "https://patrickmccanna.net/day-8-articles-of-confederation-structure/", "published_at": "2025-10-06T18:02:26+00:00" }, { "id": "01a0bdda-2060-7014-aef4-78ad57ca64f7", "title": "Day 7: Review and Reflection – From Monarchy to Republic", "url": "https://patrickmccanna.net/day-7-review-and-reflection-from-monarchy-to-republic/", "published_at": "2025-10-03T06:54:00+00:00" }, { "id": "01a0bdda-2060-7014-aef4-78ad58996362", "title": "Day 6: First State Constitutions", "url": "https://patrickmccanna.net/day-6-first-state-constitutions/", "published_at": "2025-10-02T06:16:00+00:00" }, { "id": "01a0bddd-23a2-712a-9179-08c873b00d69", "title": "Day 5: The Declaration of Independence – Part 2", "url": "https://patrickmccanna.net/day-5-the-declaration-of-independence-part-2/", "published_at": "2025-10-01T23:15:50+00:00" }, { "id": "01a0bddd-23a2-712a-9179-08c87418c53c", "title": "Day 4: The Declaration of Independence – Part 1", "url": "https://patrickmccanna.net/day-4-the-declaration-of-independence-part-1/", "published_at": "2025-09-29T16:34:52+00:00" }, { "id": "01a0bddd-23a2-712a-9179-08c8743c8c7d", "title": "Reproducible Sneaky Wifi Part 2", "url": "https://patrickmccanna.net/reproducible-sneaky-wifi/", "published_at": "2025-09-29T03:48:07+00:00" }, { "id": "01a0bddd-23a2-712a-9179-08c87489cbf8", "title": "Day 3: Enlightenment Ideas in America", "url": "https://patrickmccanna.net/day-3-enlightenment-ideas-in-america-2/", "published_at": "2025-09-26T08:44:00+00:00" }, { "id": "01a0bddd-23a2-712a-9179-08c874d811a2", "title": "Day 2: Colonial Experience with British Rule", "url": "https://patrickmccanna.net/day-2-colonial-experience-with-british-rule/", "published_at": "2025-09-24T15:33:45+00:00" }, { "id": "01a0bddd-23a2-712a-9179-08c875c2ed96", "title": "Meat!", "url": "https://patrickmccanna.net/meat/", "published_at": "2025-09-23T22:23:58+00:00" }, { "id": "01a0bddd-23a2-712a-9179-08c87625d548", "title": "Civics For ElenaDay 01: Why Government Exists", "url": "https://patrickmccanna.net/civics-for-elenaday-1-why-government-exists/", "published_at": "2025-09-19T03:16:33+00:00" }, { "id": "01a0bddd-23a2-712a-9179-08c8768c4203", "title": "Sneaky wifi near weird marathons (Part 1)", "url": "https://patrickmccanna.net/sneaky-wifi-near-weird-marathons-part-1/", "published_at": "2025-09-15T20:57:57+00:00" }, { "id": "01a0bddd-23a2-712a-9179-08c876d4f661", "title": "Friday Claude notes", "url": "https://patrickmccanna.net/friday-claude-notes/", "published_at": "2025-09-05T20:12:27+00:00" }, { "id": "01a0bddd-23a2-712a-9179-08c8777c4ac0", "title": "Guidelines for getting better at GIT", "url": "https://patrickmccanna.net/guidelines-for-getting-better-at-git/", "published_at": "2025-09-02T19:12:44+00:00" }, { "id": "01a0bddf-e78a-72fb-987b-2618ecf81c43", "title": "WOW! First mostly autonomous build!", "url": "https://patrickmccanna.net/wow-first-mostly-autonomous-build/", "published_at": "2025-09-01T19:06:32+00:00" }, { "id": "01a0bddf-e78a-72fb-987b-2618edc7c9e2", "title": "Agent Driven Software Troubleshooting", "url": "https://patrickmccanna.net/agent-driven-software-troubleshooting/", "published_at": "2025-08-29T18:51:44+00:00" }, { "id": "01a0bddf-e78a-72fb-987b-2618ee5195f4", "title": "A little update on Agent-driven software development.", "url": "https://patrickmccanna.net/a-little-update-on-agent-driven-software-development/", "published_at": "2025-08-29T00:11:09+00:00" }, { "id": "01a0bddf-e78a-72fb-987b-2618eea3e09d", "title": "Raspberry Pi Hostname Collision Resolver", "url": "https://patrickmccanna.net/raspberry-pi-hostname-collision-resolver/", "published_at": "2025-08-25T05:45:01+00:00" }, { "id": "01a0bddf-e78a-72fb-987b-2618eeade39f", "title": "Fixing problems with playbook execution order that caused orphaning of target devices:", "url": "https://patrickmccanna.net/fixing-problems-with-playbook-execution-order-that-caused-orphaning-of-target-devices/", "published_at": "2025-08-15T20:58:56+00:00" }, { "id": "01a0bddf-e78a-72fb-987b-2618ef1b0938", "title": "Emailing 2FA is bad because…", "url": "https://patrickmccanna.net/emailing-2fa-is-bad-because/", "published_at": "2025-08-10T22:27:30+00:00" }, { "id": "01a0bddf-e78a-72fb-987b-2618efacbf6c", "title": "Post-Defcon Notes", "url": "https://patrickmccanna.net/post-defcon-notes/", "published_at": "2025-08-10T21:50:41+00:00" }, { "id": "01a0bddf-e78a-72fb-987b-2618f002d280", "title": "Comprehensive Troubleshooting Guide for AWUS036ACH on Raspberry Pi OS", "url": "https://patrickmccanna.net/comprehensive-troubleshooting-guide-for-awus036ach-on-raspberry-pi-os/", "published_at": "2025-08-06T19:34:17+00:00" }, { "id": "01a0bddf-e78a-72fb-987b-2618f0c2b270", "title": "Multiple hosts on your network with the same mdns name", "url": "https://patrickmccanna.net/multiple-hosts-on-your-network-with-the-same-mdns-name/", "published_at": "2025-08-01T22:59:42+00:00" }, { "id": "01a0bddf-e78a-72fb-987b-2618f15cad97", "title": "Kernel Driver Compilation: Concepts and Troubleshooting", "url": "https://patrickmccanna.net/kernel-driver-compilation-concepts-and-troubleshooting/", "published_at": "2025-07-28T18:17:25+00:00" }, { "id": "01a0bde2-650b-724d-af2d-87805c597ef9", "title": "Resolving Raspberry pi architecture conflicts when running apt-get update", "url": "https://patrickmccanna.net/resolving-raspberry-pi-architecture-conflicts-when-running-apt-get-update/", "published_at": "2025-07-28T17:06:23+00:00" }, { "id": "01a0bde2-650b-724d-af2d-87805c891f6e", "title": "Avoiding Social Media outrage.", "url": "https://patrickmccanna.net/avoiding-social-media-outrage/", "published_at": "2025-07-16T19:39:34+00:00" }, { "id": "01a0bde2-650c-737d-8ddc-2ee8eb058b85", "title": "Apt-get under apt-cacher-ng with a missing GPG public key", "url": "https://patrickmccanna.net/apt-get-under-apt-cacher-ng-with-a-missing-gpg-public-key/", "published_at": "2025-07-01T01:29:05+00:00" }, { "id": "01a0bde2-650c-737d-8ddc-2ee8ebb28def", "title": "An NMCLI Cheatsheet for Wifi Access Points", "url": "https://patrickmccanna.net/an-nmcli-cheatsheet-for-wifi-access-points/", "published_at": "2025-07-01T01:26:47+00:00" }, { "id": "01a0bde2-650c-737d-8ddc-2ee8ec569a1e", "title": "Vulnerability Prioritization made easy!", "url": "https://patrickmccanna.net/vulnerability-prioritization-made-easy/", "published_at": "2025-06-05T17:43:07+00:00" }, { "id": "01a0bde2-650c-737d-8ddc-2ee8ec9176f5", "title": "Mastering apt-get package configurations for Raspberry PI OS and Raspbian.", "url": "https://patrickmccanna.net/mastering-apt-get-package-configurations-for-raspberry-pi-os-and-raspbian/", "published_at": "2025-05-23T23:33:28+00:00" }, { "id": "01a0bde2-650c-737d-8ddc-2ee8ed80ddf3", "title": "Beyond the basics of Linux software installations: Become an expert in the configuration of apt-get in 2025", "url": "https://patrickmccanna.net/beyond-the-basics-of-linux-software-installations-become-an-expert-in-the-configuration-of-apt-get-in-2025/", "published_at": "2025-05-18T01:15:01+00:00" }, { "id": "01a0bde2-650c-737d-8ddc-2ee8ee38aa36", "title": "Got no time? Using LLMs to inspire kids during “Hour of Code” week", "url": "https://patrickmccanna.net/got-no-time-using-llms-to-inspire-kids-during-hour-of-code-week/", "published_at": "2024-12-22T01:40:38+00:00" }, { "id": "01a0bde2-650c-737d-8ddc-2ee8eef1c9d4", "title": "Cultivating Happiness in Security Teams", "url": "https://patrickmccanna.net/cultivating-happiness-in-security-teams/", "published_at": "2024-09-27T20:57:20+00:00" }, { "id": "01a0bde2-650c-737d-8ddc-2ee8eeff7bdc", "title": "History of discoveries of weakness in SHA-1", "url": "https://patrickmccanna.net/history-of-discoveries-of-weakness-in-sha-1/", "published_at": "2023-10-25T15:26:59+00:00" }, { "id": "01a0bde4-c7b1-7395-bec5-dadec58420b3", "title": "Overview of my repeatable IoT Build process using Ansible & Docker", "url": "https://patrickmccanna.net/overview-of-my-repeatable-iot-build-process-using-ansible-docker/", "published_at": "2023-08-24T01:24:30+00:00" }, { "id": "01a0bde4-c7b1-7395-bec5-dadec6837693", "title": "Container-based builds of Raspberry Pi using Ansible", "url": "https://patrickmccanna.net/container-based-builds-of-raspberry-pi-using-ansible/", "published_at": "2023-07-15T19:15:26+00:00" }, { "id": "01a0bde4-c7b1-7395-bec5-dadec6c91ada", "title": "Persuasion: Pitching improvements when your Vulnerability Management programs are non-existent or insufficient.", "url": "https://patrickmccanna.net/persuasion-how-to-pitch-improvements-when-your-patching-vulnerability-management-programs-are-insufficient/", "published_at": "2023-06-19T13:50:00+00:00" }, { "id": "01a0bde4-c7b1-7395-bec5-dadec6f1a306", "title": "Sustainable PirateBox Part 2", "url": "https://patrickmccanna.net/sustainable-piratebox-part-2/", "published_at": "2023-05-31T04:25:16+00:00" }, { "id": "01a0bde4-c7b1-7395-bec5-dadec79e3d6b", "title": "Creating a sustainable Piratebox Alternative", "url": "https://patrickmccanna.net/creating-a-sustainable-piratebox-alternative/", "published_at": "2023-05-31T03:51:05+00:00" }, { "id": "01a0bde4-c7b1-7395-bec5-dadec89966ff", "title": "Updates to the HackMeAP firmware", "url": "https://patrickmccanna.net/updates-to-the-hackmeap-firmware/", "published_at": "2023-05-05T04:40:01+00:00" }, { "id": "01a0bde4-c7b1-7395-bec5-dadec96a1c7e", "title": "Empowering the Next Generation of Cybersecurity Enthusiasts: Inside Our Inaugural Wi-Fi Hacking Lab", "url": "https://patrickmccanna.net/empowering-the-next-generation-of-cybersecurity-enthusiasts-inside-our-inaugural-wi-fi-hacking-lab/", "published_at": "2023-04-03T03:35:33+00:00" }, { "id": "01a0bde4-c7b1-7395-bec5-dadec9781b12", "title": "Firmware for pi hack me Access Point Practice Lab", "url": "https://patrickmccanna.net/firmware-for-wifi-hacking-practice-lab/", "published_at": "2023-02-10T01:50:02+00:00" }, { "id": "01a0bde4-c7b1-7395-bec5-dadec9d3ea80", "title": "Pi_Hack_Me_AP Challenges", "url": "https://patrickmccanna.net/pi_hack_me_ap-challenges/", "published_at": "2023-02-07T23:11:21+00:00" }, { "id": "01a0bde4-c7b1-7395-bec5-dadeca324e62", "title": "Basics of getting around on a Mac", "url": "https://patrickmccanna.net/basics-of-getting-around-on-a-mac/", "published_at": "2023-02-01T02:47:06+00:00" }, { "id": "01a0bde7-4b28-70e3-80d9-a2d2af1fde6a", "title": "Password Strength", "url": "https://patrickmccanna.net/password-strength/", "published_at": "2023-01-22T22:52:16+00:00" }, { "id": "01a0bde7-4b28-70e3-80d9-a2d2afd899ce", "title": "Protected: Using Ansible to build raspberry Pi firmware using Docker Containers", "url": "https://patrickmccanna.net/moving-builderhotspot-to-docker-containers/", "published_at": "2023-01-10T04:09:18+00:00" }, { "id": "01a0bde7-4b28-70e3-80d9-a2d2b0c4a3e5", "title": "Some Cool Things", "url": "https://patrickmccanna.net/some-cool-things/", "published_at": "2022-10-21T17:47:16+00:00" }, { "id": "01a0bde7-4b28-70e3-80d9-a2d2b153d92e", "title": "Ansible: Saving Time by Locally Caching material", "url": "https://patrickmccanna.net/ansible-saving-time-by-locally-caching-material/", "published_at": "2022-09-20T20:11:56+00:00" }, { "id": "01a0bde7-4b28-70e3-80d9-a2d2b225ab9d", "title": "Configure dhcpcd to ignore wlan0", "url": "https://patrickmccanna.net/configure-dhcpcd-to-ignore-wlan0/", "published_at": "2022-09-16T15:54:39+00:00" }, { "id": "01a0bde7-4b28-70e3-80d9-a2d2b28aa0b7", "title": "No title necessary", "url": "https://patrickmccanna.net/no-title-necessary/", "published_at": "2022-07-26T18:43:24+00:00" }, { "id": "01a0bde7-4b28-70e3-80d9-a2d2b2b2af19", "title": "BuilderHotspot //todos", "url": "https://patrickmccanna.net/builderhotspot-todos/", "published_at": "2022-07-23T16:50:18+00:00" }, { "id": "01a0bde7-4b28-70e3-80d9-a2d2b2d50e89", "title": "Important advice", "url": "https://patrickmccanna.net/important-advice/", "published_at": "2022-04-29T05:16:21+00:00" }, { "id": "01a0bde7-4b28-70e3-80d9-a2d2b2f2bfe3", "title": "Advice on writing clearly", "url": "https://patrickmccanna.net/advice-on-writing-clearly/", "published_at": "2022-04-18T03:13:09+00:00" }, { "id": "01a0bde7-4b28-70e3-80d9-a2d2b3df5b92", "title": "Let’s canter", "url": "https://patrickmccanna.net/lets-canter/", "published_at": "2022-04-13T04:05:40+00:00" } ] posts Claim your blog
Back to blog – Mobile Security Mentorship & Inspiring Kids to work in tech
Blog · corpus.blog/blogs/patrickmccanna.net/posts

blog – Mobile Security Mentorship & Inspiring Kids to work in tech

patrickmccanna.net

2026

2025

23 Sept 2025

2024

2023

2022