41554 blogs · [ { "id": "01a0875f-fa25-70ed-bf62-fe1da06776fa", "title": "How to improve Python packaging, or why fourteen tools are at least twelve too many", "url": "https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/", "published_at": "2023-01-15T13:45:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80be61341c", "title": "Reinstalling macOS: What To Try When All Else Fails", "url": "https://chriswarrick.com/blog/2020/06/03/reinstalling-macos-what-to-try-when-all-else-fails/", "published_at": "2022-09-26T17:45:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80bdbbe581", "title": "Posts for the year 2020", "url": "https://chriswarrick.com/blog/2020/", "published_at": "2022-09-26T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80cdc26fb5", "title": "Posts about Apple", "url": "https://chriswarrick.com/blog/tags/apple/", "published_at": "2022-09-26T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d2182865", "title": "Posts about Apple", "url": "https://chriswarrick.com/blog/tags/cat_apple/", "published_at": "2022-09-26T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e37293fb", "title": "Posts about install", "url": "https://chriswarrick.com/blog/tags/install/", "published_at": "2022-09-26T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e8eb3533", "title": "Posts about Mac", "url": "https://chriswarrick.com/blog/tags/mac/", "published_at": "2022-09-26T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e9b89bfb", "title": "Posts about macOS", "url": "https://chriswarrick.com/blog/tags/macos/", "published_at": "2022-09-26T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8104a5e46a", "title": "Blog (old posts, page 1)", "url": "https://chriswarrick.com/index-1.html", "published_at": "2022-09-26T00:00:00+00:00" }, { "id": "01a0875f-fa25-70ed-bf62-fe1da128e1c8", "title": "Writing a Console App in C# for Fun and Profit", "url": "https://chriswarrick.com/blog/2022/09/19/writing-a-console-app-in-c-sharp-for-fun-and-profit/", "published_at": "2022-09-19T20:35:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80c1475862", "title": "Posts for the year 2022", "url": "https://chriswarrick.com/blog/2022/", "published_at": "2022-09-19T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b4d73ff7", "title": "Deploying Python Web Applications with nginx and uWSGI Emperor", "url": "https://chriswarrick.com/blog/2016/02/10/deploying-python-web-apps-with-nginx-and-uwsgi-emperor/", "published_at": "2022-02-20T22:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b4025eb5", "title": "Posts for the year 2016", "url": "https://chriswarrick.com/blog/2016/", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80cbd6dafb", "title": "Posts about Ansible", "url": "https://chriswarrick.com/blog/tags/ansible/", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80cdd8bf5f", "title": "Posts about Arch Linux", "url": "https://chriswarrick.com/blog/tags/arch-linux/", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80de0a7af5", "title": "Posts about Flask", "url": "https://chriswarrick.com/blog/tags/flask/", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e0355329", "title": "Posts about guide", "url": "https://chriswarrick.com/blog/tags/guide/", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f4688f19", "title": "Posts about Python (old posts, page 1)", "url": "https://chriswarrick.com/blog/tags/python/index-1.html", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f898fcfe", "title": "Posts about systemd", "url": "https://chriswarrick.com/blog/tags/systemd/", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80fda59b25", "title": "Posts about uWSGI", "url": "https://chriswarrick.com/blog/tags/uwsgi/", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d81052c08de", "title": "Blog (old posts, page 2)", "url": "https://chriswarrick.com/index-2.html", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80bc229f72", "title": "Python Virtual Environments in Five Minutes", "url": "https://chriswarrick.com/blog/2018/09/04/python-virtual-environments/", "published_at": "2021-04-03T11:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80baf6fe07", "title": "Posts for the year 2018", "url": "https://chriswarrick.com/blog/2018/", "published_at": "2021-04-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80cf613bc2", "title": "Posts about best practices", "url": "https://chriswarrick.com/blog/tags/best-practices/", "published_at": "2021-04-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80da68210f", "title": "Posts about devel", "url": "https://chriswarrick.com/blog/tags/devel/", "published_at": "2021-04-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80fe6b662b", "title": "Posts about venv", "url": "https://chriswarrick.com/blog/tags/venv/", "published_at": "2021-04-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80fee1659f", "title": "Posts about virtualenv", "url": "https://chriswarrick.com/blog/tags/virtualenv/", "published_at": "2021-04-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80bf7c8f33", "title": "Posts for the year 2021", "url": "https://chriswarrick.com/blog/2021/", "published_at": "2021-01-31T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d1b19fb8", "title": "Posts about Boot Camp", "url": "https://chriswarrick.com/blog/tags/boot-camp/", "published_at": "2021-01-31T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f570935c", "title": "Posts about rEFInd", "url": "https://chriswarrick.com/blog/tags/refind/", "published_at": "2021-01-31T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80fefc22ad", "title": "Posts about Virtualization", "url": "https://chriswarrick.com/blog/tags/virtualization/", "published_at": "2021-01-31T00:00:00+00:00" }, { "id": "01a0875f-fa25-70ed-bf62-fe1da15f8fc0", "title": "Enabling Virtualization Support in Boot Camp with rEFInd", "url": "https://chriswarrick.com/blog/2021/01/31/enabling-virtualization-support-in-boot-camp-with-refind/", "published_at": "2021-01-30T23:30:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80bec126ec", "title": "What an ARM Mac means for developers and Windows users", "url": "https://chriswarrick.com/blog/2020/06/22/what-an-arm-mac-means-for-developers-and-windows-users/", "published_at": "2020-11-14T11:40:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ce6b5911", "title": "Posts about ARM", "url": "https://chriswarrick.com/blog/tags/arm/", "published_at": "2020-11-14T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80bb4de2cf", "title": "Pipenv: promises a lot, delivers very little", "url": "https://chriswarrick.com/blog/2018/07/17/pipenv-promises-a-lot-delivers-very-little/", "published_at": "2020-05-28T15:50:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80efe11cd8", "title": "Posts about Pipenv", "url": "https://chriswarrick.com/blog/tags/pipenv/", "published_at": "2020-05-28T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80be15359a", "title": "When HTML is not enough: a tale of the <datalist> element", "url": "https://chriswarrick.com/blog/2020/02/09/when-html-is-not-enough-a-tale-of-the-datalist-element/", "published_at": "2020-02-09T15:30:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d3081668", "title": "Posts about Internet", "url": "https://chriswarrick.com/blog/tags/cat_internet/", "published_at": "2020-02-09T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e3112094", "title": "Posts about HTML", "url": "https://chriswarrick.com/blog/tags/html/", "published_at": "2020-02-09T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e31601b5", "title": "Posts about HTML5", "url": "https://chriswarrick.com/blog/tags/html5/", "published_at": "2020-02-09T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80fa6cc29c", "title": "Posts about TypeScript", "url": "https://chriswarrick.com/blog/tags/typescript/", "published_at": "2020-02-09T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80bdb7fa2b", "title": "Modern Web Development: where you need 500 packages to build Bootstrap", "url": "https://chriswarrick.com/blog/2019/02/15/modern-web-development-where-you-need-500-packages-to-build-bootstrap/", "published_at": "2019-02-15T18:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80bcfa8916", "title": "Posts for the year 2019", "url": "https://chriswarrick.com/blog/2019/", "published_at": "2019-02-15T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f4a28784", "title": "Posts about rant", "url": "https://chriswarrick.com/blog/tags/rant/", "published_at": "2019-02-15T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b9e663cf", "title": "Setting up a Python development environment", "url": "https://chriswarrick.com/blog/2017/07/03/setting-up-a-python-development-environment/", "published_at": "2018-09-21T14:20:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b6e4fb2f", "title": "Posts for the year 2017", "url": "https://chriswarrick.com/blog/2017/", "published_at": "2018-09-21T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80bc424e43", "title": "Python Hackery: merging signatures of two Python functions", "url": "https://chriswarrick.com/blog/2018/09/20/python-hackery-merging-signatures-of-two-python-functions/", "published_at": "2018-09-20T13:52:20+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e205168c", "title": "Posts about hacking", "url": "https://chriswarrick.com/blog/tags/hacking/", "published_at": "2018-09-20T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f267499b", "title": "Posts about Python hackery", "url": "https://chriswarrick.com/blog/tags/python-hackery/", "published_at": "2018-09-20T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f33c3e57", "title": "Posts about Python internals", "url": "https://chriswarrick.com/blog/tags/python-internals/", "published_at": "2018-09-20T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80bac21483", "title": "Spawning subprocesses smartly and securely", "url": "https://chriswarrick.com/blog/2017/09/02/spawning-subprocesses-smartly-and-securely/", "published_at": "2017-09-02T18:40:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d20ffb20", "title": "Posts about C", "url": "https://chriswarrick.com/blog/tags/c/", "published_at": "2017-09-02T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f6ed244c", "title": "Posts about security", "url": "https://chriswarrick.com/blog/tags/security/", "published_at": "2017-09-02T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f8451d92", "title": "Posts about subprocess", "url": "https://chriswarrick.com/blog/tags/subprocess/", "published_at": "2017-09-02T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80fc655310", "title": "Posts about Unix", "url": "https://chriswarrick.com/blog/tags/unix/", "published_at": "2017-09-02T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ae73609a", "title": "Python Apps the Right Way: entry points and scripts", "url": "https://chriswarrick.com/blog/2014/09/15/python-apps-the-right-way-entry_points-and-scripts/", "published_at": "2017-08-03T16:20:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b9ed1109", "title": "Gynvael’s Mission 11 (en): Python bytecode reverse-engineering", "url": "https://chriswarrick.com/blog/2017/08/03/gynvaels-mission-11-en-python-bytecode-reverse-engineering/", "published_at": "2017-08-03T10:45:40+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ae646fdc", "title": "Posts for the year 2014", "url": "https://chriswarrick.com/blog/2014/", "published_at": "2017-08-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d13fc3d5", "title": "Posts about BMP", "url": "https://chriswarrick.com/blog/tags/bmp/", "published_at": "2017-08-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d53be395", "title": "Posts about Python (old posts, page 1)", "url": "https://chriswarrick.com/blog/tags/cat_python/index-1.html", "published_at": "2017-08-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e14f7d04", "title": "Posts about Gynvael Coldwind", "url": "https://chriswarrick.com/blog/tags/gynvael-coldwind/", "published_at": "2017-08-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ee2bb6c7", "title": "Posts about Paint", "url": "https://chriswarrick.com/blog/tags/paint/", "published_at": "2017-08-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f5f4b9c5", "title": "Posts about reverse engineering", "url": "https://chriswarrick.com/blog/tags/reverse-engineering/", "published_at": "2017-08-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d81005cf815", "title": "Posts about writeup", "url": "https://chriswarrick.com/blog/tags/writeup/", "published_at": "2017-08-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8105b6bc85", "title": "Blog (old posts, page 3)", "url": "https://chriswarrick.com/index-3.html", "published_at": "2017-08-03T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b9732ec9", "title": "Apple broke the display menu, so I wrote my own", "url": "https://chriswarrick.com/blog/2017/06/24/apple-broke-the-display-menu-so-i-wrote-my-own/", "published_at": "2017-06-24T19:02:47+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ccd449c1", "title": "Posts about app", "url": "https://chriswarrick.com/blog/tags/app/", "published_at": "2017-06-24T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80dab3cb3e", "title": "Posts about display", "url": "https://chriswarrick.com/blog/tags/display/", "published_at": "2017-06-24T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f1491d57", "title": "Posts about projects", "url": "https://chriswarrick.com/blog/tags/projects/", "published_at": "2017-06-24T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f854108b", "title": "Posts about Swift", "url": "https://chriswarrick.com/blog/tags/swift/", "published_at": "2017-06-24T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b8f4bb2e", "title": "Unix locales vs Unicode (‘ascii’ codec can’t encode character…)", "url": "https://chriswarrick.com/blog/2017/06/18/unix-locales-vs-unicode/", "published_at": "2017-06-18T18:40:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e801fdf9", "title": "Posts about locale", "url": "https://chriswarrick.com/blog/tags/locale/", "published_at": "2017-06-18T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80fb6d689d", "title": "Posts about Unicode", "url": "https://chriswarrick.com/blog/tags/unicode/", "published_at": "2017-06-18T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b81fa025", "title": "Apple’s new pricing strategy: don't buy the 12″ MacBook", "url": "https://chriswarrick.com/blog/2017/06/08/apples-new-pricing-strategy-dont-buy-the-12-macbook/", "published_at": "2017-06-08T17:35:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e8f758de", "title": "Posts about MacBook Pro", "url": "https://chriswarrick.com/blog/tags/macbook-pro/", "published_at": "2017-06-08T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e942a9ec", "title": "Posts about MacBook", "url": "https://chriswarrick.com/blog/tags/macbook/", "published_at": "2017-06-08T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b72211d7", "title": "CSV is not a standard", "url": "https://chriswarrick.com/blog/2017/04/07/csv-is-not-a-standard/", "published_at": "2017-04-07T18:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d968bbe4", "title": "Posts about CSV", "url": "https://chriswarrick.com/blog/tags/csv/", "published_at": "2017-04-07T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80dd50b43e", "title": "Posts about Excel", "url": "https://chriswarrick.com/blog/tags/excel/", "published_at": "2017-04-07T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ea40ccb7", "title": "Posts about Microsoft Office", "url": "https://chriswarrick.com/blog/tags/microsoft-office/", "published_at": "2017-04-07T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ea56305a", "title": "Posts about Microsoft", "url": "https://chriswarrick.com/blog/tags/microsoft/", "published_at": "2017-04-07T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d811a7d67bf", "title": null, "url": "https://chriswarrick.com/projects/kwkeyboard/", "published_at": "2017-03-11T19:44:45+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b5ed5909", "title": "5 months with a MacBook Pro: beautiful machine that just works", "url": "https://chriswarrick.com/blog/2016/12/28/5-months-with-a-macbook-pro-beautiful-machine-that-just-works/", "published_at": "2016-12-27T15:15:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f6e75468", "title": "Posts about review", "url": "https://chriswarrick.com/blog/tags/review/", "published_at": "2016-12-27T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b5032e3c", "title": "Code writing code: Python and Vim as development aids", "url": "https://chriswarrick.com/blog/2016/05/27/code-writing-code-python-and-vim/", "published_at": "2016-05-27T08:46:35+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e3d41a5d", "title": "Posts about Java", "url": "https://chriswarrick.com/blog/tags/java/", "published_at": "2016-05-27T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80fe6d4f94", "title": "Posts about Vim", "url": "https://chriswarrick.com/blog/tags/vim/", "published_at": "2016-05-27T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b3431b96", "title": "Windows 10 November Upgrade: Windows as a (Dis-)service", "url": "https://chriswarrick.com/blog/2015/12/27/windows-10-november-upgrade-windows-as-a-dis-service/", "published_at": "2015-12-27T11:15:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80af30583f", "title": "Posts for the year 2015", "url": "https://chriswarrick.com/blog/2015/", "published_at": "2015-12-27T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d62bd64a", "title": "Posts about Windows", "url": "https://chriswarrick.com/blog/tags/cat_windows/", "published_at": "2015-12-27T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b291be30", "title": "Rewriting a Flask app in Django", "url": "https://chriswarrick.com/blog/2015/10/11/rewriting-a-flask-app-in-django/", "published_at": "2015-10-11T15:24:43+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b1940706", "title": "Static Site Generator Speed Test (Nikola, Pelican, Hexo, Octopress)", "url": "https://chriswarrick.com/blog/2015/07/23/ssg-speed-test/", "published_at": "2015-07-23T15:10:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d057a8cc", "title": "Posts about blog", "url": "https://chriswarrick.com/blog/tags/blog/", "published_at": "2015-07-23T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e2f58540", "title": "Posts about Hexo", "url": "https://chriswarrick.com/blog/tags/hexo/", "published_at": "2015-07-23T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e50d1ad5", "title": "Posts about jekyll", "url": "https://chriswarrick.com/blog/tags/jekyll/", "published_at": "2015-07-23T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ed020e00", "title": "Posts about Octopress", "url": "https://chriswarrick.com/blog/tags/octopress/", "published_at": "2015-07-23T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80eeeea9db", "title": "Posts about Pelican", "url": "https://chriswarrick.com/blog/tags/pelican/", "published_at": "2015-07-23T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f90b9269", "title": "Posts about test", "url": "https://chriswarrick.com/blog/tags/test/", "published_at": "2015-07-23T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80b0e3dd9c", "title": "New project: upass — console UI for pass", "url": "https://chriswarrick.com/blog/2015/07/06/upass/", "published_at": "2015-07-06T12:30:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d7528ac7", "title": "Posts about CLI", "url": "https://chriswarrick.com/blog/tags/cli/", "published_at": "2015-07-06T00:00:00+00:00" } ] posts Claim your blog
Back to Blog | Chris Warrick
Blog · corpus.blog/blogs/chriswarrick.com/posts

Blog | Chris Warrick

chriswarrick.com

2023

2022

2021

2020

2019

2018

2017

2016

2015