41554 blogs · [ { "id": "01a087c0-79d3-723a-b15b-9cc9ac9341d5", "title": "Year of Wayland on the Desktop", "url": "https://peterlyons.com/problog/2025/06/wayland/", "published_at": "2026-02-07T05:00:24+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9acdf5b91", "title": "Guitar Pedal PCB", "url": "https://peterlyons.com/problog/2025/12/guitar-pedal-pcb/", "published_at": "2025-12-26T01:00:24+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9ad39befe", "title": "Custom CNC Desktop Mark II", "url": "https://peterlyons.com/problog/2025/11/custom-cnc-desktop-mark-ii/", "published_at": "2025-11-30T21:24:39+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9ad5b61ee", "title": "Catalog of Custom 3D Prints", "url": "https://peterlyons.com/problog/2025/10/catalog-of-custom-3d-prints/", "published_at": "2025-10-10T18:27:36+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9ad94f474", "title": "Custom CNC Desktop", "url": "https://peterlyons.com/problog/2025/08/custom-cnc-desktop/", "published_at": "2025-08-04T14:17:15+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9adbad7a5", "title": "versiona non grata", "url": "https://peterlyons.com/problog/2025/06/versiona-non-grata/", "published_at": "2025-06-06T01:28:31+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9ae547635", "title": "Kipra Keyboard v2 Build Video", "url": "https://peterlyons.com/problog/2024/08/kipra-keyboard-v2-build-video/", "published_at": "2024-08-25T16:38:55+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9af41a647", "title": "Dev Logs Without the Noise", "url": "https://peterlyons.com/problog/2024/08/dev-logs-without-the-noise/", "published_at": "2024-08-24T20:12:16+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b002238e", "title": "Paginaton for Product Managers", "url": "https://peterlyons.com/problog/2024/07/paginaton-for-product-managers/", "published_at": "2024-07-27T12:26:06+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b0c7cf23", "title": "Tips for Switching from Linux to Mac", "url": "https://peterlyons.com/problog/2024/07/tips-for-switching-from-linux-to-mac/", "published_at": "2024-07-20T13:51:11+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b0f2f48f", "title": "Where I Get Tech News in 2024", "url": "https://peterlyons.com/problog/2024/06/where-i-get-tech-news-in-2024/", "published_at": "2024-06-29T15:12:07+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b1355c49", "title": "Kipra Keyboard Build Guide", "url": "https://peterlyons.com/problog/2024/05/kipra-keyboard-build-guide/", "published_at": "2024-05-18T12:33:41+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b189afb0", "title": "Kipra Keyboard", "url": "https://peterlyons.com/problog/2024/05/kipra-keyboard/", "published_at": "2024-05-11T13:00:10+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b25afb92", "title": "Range Daily Checkins", "url": "https://peterlyons.com/problog/2024/01/range-daily-checkins/", "published_at": "2024-01-16T00:31:48+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b31803ba", "title": "Cuddle Up to KDL", "url": "https://peterlyons.com/problog/2023/11/cuddle-up-to-kdl/", "published_at": "2023-11-16T15:13:25+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b3456747", "title": "Skeletyl Keyboard Build", "url": "https://peterlyons.com/problog/2023/04/skeletyl-keyboard-build/", "published_at": "2023-04-23T15:14:56+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b3663c5f", "title": "Markdown to PDF with weasyprint", "url": "https://peterlyons.com/problog/2023/02/markdown-to-pdf-with-weasyprint/", "published_at": "2023-02-21T00:01:47+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b3bd8769", "title": "Tolerable HTML and CSS", "url": "https://peterlyons.com/problog/2022/12/tolerable-html-and-css/", "published_at": "2022-12-07T01:17:26+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b431e81f", "title": "Squeezebox Scorecard", "url": "https://peterlyons.com/problog/2022/12/squeezebox-scorecard/", "published_at": "2022-12-03T16:03:27+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b4be4a4d", "title": "Engram Plans", "url": "https://peterlyons.com/problog/2022/10/engram-plans/", "published_at": "2022-10-22T19:40:36+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b53c5e4c", "title": "Squeezebox Keyboard v2209", "url": "https://peterlyons.com/problog/2022/10/squeezebox-keyboard-v2209/", "published_at": "2022-10-13T13:33:05+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b5ca1a32", "title": "Focus Retreat Center Programming Retreat", "url": "https://peterlyons.com/problog/2022/06/focus-retreat-center-programming-retreat/", "published_at": "2022-06-28T00:00:00+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b5dcd477", "title": "Squeezebox Tweaks and Plans", "url": "https://peterlyons.com/problog/2022/03/squeezebox-tweaks-and-plans/", "published_at": "2022-03-12T13:23:06+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b5f865af", "title": "Squeezebox Daily Driver Update", "url": "https://peterlyons.com/problog/2022/02/squeezebox-daily-driver-update/", "published_at": "2022-02-25T23:46:03+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b60dbfe3", "title": "Squeezebox Keyboard v2112", "url": "https://peterlyons.com/problog/2022/01/squeezebox-keyboard-v2112/", "published_at": "2022-01-02T16:42:04+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b6d8a762", "title": "Exploring Editors", "url": "https://peterlyons.com/problog/2021/08/exploring-editors/", "published_at": "2021-08-30T23:36:08+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b6ee7872", "title": "Squeezebox Keyboard v2105", "url": "https://peterlyons.com/problog/2021/06/squeezebox-keyboard-v2105/", "published_at": "2021-06-11T21:39:11+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b719daf8", "title": "Squeezebox Keyboard", "url": "https://peterlyons.com/problog/2021/04/squeezebox-keyboard/", "published_at": "2021-04-17T01:32:05+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b7d18593", "title": "Staff Engineer Solver Archetype", "url": "https://peterlyons.com/problog/2021/03/staff-engineer-solver-archetype/", "published_at": "2021-03-23T01:12:49+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b7dd487a", "title": "Home LAN Improvements", "url": "https://peterlyons.com/problog/2021/01/home-lan-improvements/", "published_at": "2021-01-24T19:55:20+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b8ac11fa", "title": "The Problem Mindset", "url": "https://peterlyons.com/problog/2020/11/the-problem-mindset/", "published_at": "2020-11-28T18:32:03+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9b981a55e", "title": "Novelty Makes Novices", "url": "https://peterlyons.com/problog/2020/09/novelty-makes-novices/", "published_at": "2020-09-19T16:07:15+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9ba501539", "title": "Original ErgoDox is Better than Infinity", "url": "https://peterlyons.com/problog/2020/09/original-ergodox-is-better-than-infinity/", "published_at": "2020-09-17T13:37:26+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9bae8f4cb", "title": "ErgoThink T420 Laptop Tray", "url": "https://peterlyons.com/problog/2020/09/ergothink-t420-laptop-tray/", "published_at": "2020-09-10T01:23:21+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9bb388c66", "title": "Reading Pseudogrammars", "url": "https://peterlyons.com/problog/2020/06/reading-pseudogrammars/", "published_at": "2020-06-12T15:57:21+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9bbc6a87a", "title": "Which files do they edit", "url": "https://peterlyons.com/problog/2020/06/which-files-do-they-edit/", "published_at": "2020-06-05T02:02:45+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9bc53020b", "title": "GraphQL Pagination and Sorting", "url": "https://peterlyons.com/problog/2020/04/graphql-pagination-and-sorting/", "published_at": "2020-04-15T20:01:45+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9bd25258e", "title": "Switched to Arch Linux", "url": "https://peterlyons.com/problog/2020/01/switched-to-arch-linux/", "published_at": "2020-01-12T16:38:33+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9bded8f2f", "title": "cargo doc and linux default browser", "url": "https://peterlyons.com/problog/2019/10/cargo-doc-and-linux-default-browser/", "published_at": "2019-10-02T14:34:39+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9be68cee3", "title": "Sorting YAML keys", "url": "https://peterlyons.com/problog/2019/04/sorting-yaml-keys/", "published_at": "2019-04-10T15:17:20+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9bf064a47", "title": "New Work Journal System", "url": "https://peterlyons.com/problog/2019/01/new-work-journal-system/", "published_at": "2019-01-15T02:55:47+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9bf96695a", "title": "Handling optional arguments in bash", "url": "https://peterlyons.com/problog/2018/12/handling-optional-arguments-in-bash/", "published_at": "2018-12-19T22:31:37+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9c03e99ad", "title": "Fuzzball Desktop Automation", "url": "https://peterlyons.com/problog/2018/11/fuzzball-desktop-automation/", "published_at": "2018-11-25T18:53:13+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9c1376b06", "title": "tealeaves gets rust and docker updates", "url": "https://peterlyons.com/problog/2018/09/tealeaves-gets-rust-and-docker-updates/", "published_at": "2018-09-17T01:00:51+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9c221f82e", "title": "Securing local development with containers", "url": "https://peterlyons.com/problog/2018/07/securing-local-development-with-containers/", "published_at": "2018-07-13T08:36:01+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9c299301f", "title": "The Art of the node.js Rescue", "url": "https://peterlyons.com/problog/2018/07/the-art-of-the-node-js-rescue/", "published_at": "2018-07-11T04:53:53+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9c2ca9b1c", "title": "Linux Mint 19 Cinnamon", "url": "https://peterlyons.com/problog/2018/07/linux-mint-19-cinnamon/", "published_at": "2018-07-04T19:48:31+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9c2f1fa9e", "title": "Linux Setup Progress", "url": "https://peterlyons.com/problog/2018/04/linux-setup-progress/", "published_at": "2018-04-21T22:42:02+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9c2f90335", "title": "Switching Back to Linux", "url": "https://peterlyons.com/problog/2018/04/switching-back-to-linux/", "published_at": "2018-04-16T03:31:48+00:00" }, { "id": "01a087c0-79d3-723a-b15b-9cc9c305f6b9", "title": "Denver Rust Meetup Reactivated", "url": "https://peterlyons.com/problog/2018/03/denver-rust-meetup-reactivated/", "published_at": "2018-03-01T06:45:50+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f9962f136", "title": "StackOverflow 100K", "url": "https://peterlyons.com/problog/2018/02/stackoverflow-100k/", "published_at": "2018-02-15T13:16:57+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f99eb5785", "title": "Hourly Billing Is OK", "url": "https://peterlyons.com/problog/2018/01/hourly-billing-is-ok/", "published_at": "2018-01-13T18:01:42+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f99eea785", "title": "zsh lazy loading", "url": "https://peterlyons.com/problog/2018/01/zsh-lazy-loading/", "published_at": "2018-01-04T14:54:23+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f9a521f79", "title": "Available for Consulting", "url": "https://peterlyons.com/problog/2018/01/available-for-consulting/", "published_at": "2018-01-03T17:32:11+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f9a8eb1bb", "title": "rust dependency hell with features", "url": "https://peterlyons.com/problog/2017/12/rust-dependency-hell-with-features/", "published_at": "2017-12-20T00:00:37+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f9b0e6410", "title": "rust converting bytes chars and strings", "url": "https://peterlyons.com/problog/2017/12/rust-converting-bytes-chars-and-strings/", "published_at": "2017-12-16T18:57:12+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f9c0bc7fe", "title": "Recurse Center 23: SQL window functions", "url": "https://peterlyons.com/problog/2017/12/recurse-center-23-sql-window-functions/", "published_at": "2017-12-12T23:01:30+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f9c64cb17", "title": "Recurse Center 22: tealeaves refactored", "url": "https://peterlyons.com/problog/2017/12/recurse-center-22-tealeaves-refactored/", "published_at": "2017-12-12T01:17:07+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f9d61ff67", "title": "Recurse Center 21: nom and combinators", "url": "https://peterlyons.com/problog/2017/12/recurse-center-21-nom-and-combinators/", "published_at": "2017-12-09T01:37:35+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f9dac89c6", "title": "Recurse Center 20: Parsing is hard. Let's go shopping.", "url": "https://peterlyons.com/problog/2017/12/recurse-center-20-parsing-is-hard-lets-go-shopping/", "published_at": "2017-12-08T03:13:00+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f9e05fcc2", "title": "Recurse Center 19: ASN.1 Tagged Context", "url": "https://peterlyons.com/problog/2017/12/recurse-center-19-asn-1-tagged-context/", "published_at": "2017-12-06T23:22:37+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f9ee08a8c", "title": "Recurse Center 18: SQL joins", "url": "https://peterlyons.com/problog/2017/12/recurse-center-18-sql-joins/", "published_at": "2017-12-05T23:37:08+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77f9f98824d", "title": "How to use docker to run local databases", "url": "https://peterlyons.com/problog/2017/12/how-to-use-docker-to-run-local-databases/", "published_at": "2017-12-05T23:25:41+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa00d0e23", "title": "Recurse Center 17: ssh public keys", "url": "https://peterlyons.com/problog/2017/12/recurse-center-17-ssh-public-keys/", "published_at": "2017-12-05T01:48:47+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa06325c0", "title": "Recurse Center 16: tealeaves is useful", "url": "https://peterlyons.com/problog/2017/12/recurse-center-16-tealeaves-is-useful/", "published_at": "2017-12-01T22:53:15+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa1107526", "title": "OpenSSH ed25519 private key file format", "url": "https://peterlyons.com/problog/2017/12/openssh-ed25519-private-key-file-format/", "published_at": "2017-12-01T16:46:17+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa20d7f76", "title": "Recurse Center 14: OpenSSH key files", "url": "https://peterlyons.com/problog/2017/11/recurse-center-14-openssh-key-files/", "published_at": "2017-11-30T01:05:34+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa2d597a1", "title": "Recurse Center 13: ssh private key PEM files", "url": "https://peterlyons.com/problog/2017/11/recurse-center-13-ssh-private-key-pem-files/", "published_at": "2017-11-28T22:48:55+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa3b5c5fe", "title": "rust custom Display and sorting", "url": "https://peterlyons.com/problog/2017/11/rust-custom-display-and-sorting/", "published_at": "2017-11-28T21:16:34+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa479a682", "title": "Recurse Center 12: AsRef", "url": "https://peterlyons.com/problog/2017/11/recurse-center-12-asref/", "published_at": "2017-11-27T23:10:25+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa5505f5b", "title": "Recurse Center 11: rsfs rust associated types", "url": "https://peterlyons.com/problog/2017/11/recurse-center-11-rsfs-rust-associated-types/", "published_at": "2017-11-21T23:01:17+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa5648a66", "title": "Recurse Center 10: filesystem palindrome", "url": "https://peterlyons.com/problog/2017/11/recurse-center-10-filesystem-palindrome/", "published_at": "2017-11-21T00:05:33+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa5ee2296", "title": "Recurse Center 9: rayon par iter", "url": "https://peterlyons.com/problog/2017/11/recurse-center-9-rayon-par-iter/", "published_at": "2017-11-17T22:05:44+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa674fb8f", "title": "Never Graduate", "url": "https://peterlyons.com/problog/2017/11/never-graduate/", "published_at": "2017-11-17T21:11:59+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa67e70f9", "title": "Recurse Center 8: binary literals", "url": "https://peterlyons.com/problog/2017/11/recurse-center-8-binary-literals/", "published_at": "2017-11-17T02:18:51+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa71d4ec8", "title": "Recurse Center 7: blockchain mining in rust", "url": "https://peterlyons.com/problog/2017/11/recurse-center-7-blockchain-mining-in-rust/", "published_at": "2017-11-16T00:01:27+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa761ae35", "title": "Recurse Center 6: nth prime", "url": "https://peterlyons.com/problog/2017/11/recurse-center-6-nth-prime/", "published_at": "2017-11-14T22:33:52+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa7ea9edd", "title": "Recurse Center 5: command line arg parsing", "url": "https://peterlyons.com/problog/2017/11/recurse-center-5-command-line-arg-parsing/", "published_at": "2017-11-13T22:52:32+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa80479bd", "title": "Quick Thoughts: Machine Learning", "url": "https://peterlyons.com/problog/2017/11/quick-thoughts-machine-learning/", "published_at": "2017-11-12T14:33:55+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa8105e03", "title": "Recurse Center 4: Reservoir Sampling", "url": "https://peterlyons.com/problog/2017/11/recurse-center-4-reservoir-sampling/", "published_at": "2017-11-10T23:08:36+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa8362f25", "title": "Recurse Center 3: Box", "url": "https://peterlyons.com/problog/2017/11/recurse-center-3-box/", "published_at": "2017-11-10T04:58:32+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fa91f8673", "title": "Recurse Center 2: Generics", "url": "https://peterlyons.com/problog/2017/11/recurse-center-2-generics/", "published_at": "2017-11-08T22:27:21+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77faa1d68bd", "title": "Recurse Center 1: Shuffle Iterator", "url": "https://peterlyons.com/problog/2017/11/recurse-center-1-shuffle-iterator/", "published_at": "2017-11-07T23:38:20+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77faac978be", "title": "Recurse Center 0: Rust Anagrams", "url": "https://peterlyons.com/problog/2017/11/recurse-center-0-rust-anagrams/", "published_at": "2017-11-07T03:05:19+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77faba3793d", "title": "How I Plan to Learn Rust", "url": "https://peterlyons.com/problog/2017/10/how-i-plan-to-learn-rust/", "published_at": "2017-10-25T16:04:24+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fabac8ab2", "title": "Quick Thoughts", "url": "https://peterlyons.com/problog/2017/10/quick-thoughts/", "published_at": "2017-10-08T03:09:20+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fac477788", "title": "Quick Thoughts: Less Twitter", "url": "https://peterlyons.com/problog/2017/09/quick-thoughts-less-twitter/", "published_at": "2017-09-01T14:43:35+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77facc40554", "title": "I hate electron apps", "url": "https://peterlyons.com/problog/2017/05/i-hate-electron-apps/", "published_at": "2017-05-17T04:15:02+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fad943333", "title": "VPN annoyances", "url": "https://peterlyons.com/problog/2017/05/vpn-annoyances/", "published_at": "2017-05-10T19:47:39+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fadd406f7", "title": "Meaning in Technical Communication", "url": "https://peterlyons.com/problog/2017/04/meaning-in-technical-communication/", "published_at": "2017-04-25T15:59:59+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fadeb862f", "title": "AWS Lambda Object Mother", "url": "https://peterlyons.com/problog/2017/04/aws-lambda-object-mother/", "published_at": "2017-04-24T20:41:40+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77faec1bed2", "title": "secrets in zsh history", "url": "https://peterlyons.com/problog/2017/04/secrets-in-zsh-history/", "published_at": "2017-04-17T00:25:00+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fafb00d89", "title": "Python Last Month", "url": "https://peterlyons.com/problog/2017/04/python-last-month/", "published_at": "2017-04-01T17:09:16+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fb08e9339", "title": "Transforming Gaia", "url": "https://peterlyons.com/problog/2017/03/transforming-gaia/", "published_at": "2017-03-27T15:43:01+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fb109e6a6", "title": "Fun with Inodes", "url": "https://peterlyons.com/problog/2017/03/fun-with-inodes/", "published_at": "2017-03-17T19:03:32+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fb186269d", "title": "Right tool for the job", "url": "https://peterlyons.com/problog/2017/02/right-tool-for-the-job/", "published_at": "2017-02-18T20:28:04+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fb27fa677", "title": "localstorage Analogy", "url": "https://peterlyons.com/problog/2017/02/localstorage-analogy/", "published_at": "2017-02-18T19:43:01+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fb3785a4c", "title": "AWS API Gateway Misleading Error", "url": "https://peterlyons.com/problog/2017/02/aws-api-gateway-misleading-error/", "published_at": "2017-02-02T15:47:44+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fb3c2f980", "title": "Level 1 Web Development", "url": "https://peterlyons.com/problog/2017/01/level-1-web-development/", "published_at": "2017-01-26T20:19:46+00:00" }, { "id": "01a087c0-79d4-70ef-ac8d-f77fb418926d", "title": "Learning elm", "url": "https://peterlyons.com/problog/2016/12/learning-elm/", "published_at": "2016-12-10T22:19:10+00:00" } ] posts Claim your blog
Back to focusaurus
Blog · corpus.blog/blogs/peterlyons.com/posts

focusaurus

peterlyons.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016