56,966 blogs ยท [ { "id": "01a08726-5ea5-727d-a7fc-d5b60ec58ba0", "title": "entr: watch some files, and run something whenever they change", "url": "https://alxndr.blog/2026/05/28/entr-watch-files-and-trigger-commands/", "published_at": "2026-05-28T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b60f51f7d9", "title": "thoughts on software development and the rise of LLMs", "url": "https://alxndr.blog/2026/03/28/ai-coding/", "published_at": "2026-03-28T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b60f93fc30", "title": "mocking in Vitest: how to conditionally modify a mocked imported function's behavior", "url": "https://alxndr.blog/2024/11/20/vitest-mocks-conditional-modifications/", "published_at": "2024-11-20T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b6105b5960", "title": "Cypress component testing with Svelte v5 (and SvelteKit)", "url": "https://alxndr.blog/2024/10/09/svelte-v5-cypress-component-testing/", "published_at": "2024-10-09T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b6105ddde8", "title": "Setting up SvelteKit to use SQLite and prerender a static site to be hosted on GitLab Pages", "url": "https://alxndr.blog/2024/07/18/sveltekit-and-sqlite-on-gitlab-pages/", "published_at": "2024-07-18T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61067a6cf", "title": "Oghamic Toki Pona", "url": "https://alxndr.blog/2024/01/18/sitelen-oken-pi-toki-pona/", "published_at": "2024-01-18T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b6113f6296", "title": "a Vim syntax file for Toki Pona", "url": "https://alxndr.blog/2023/11/16/vim-syntax-tokipona/", "published_at": "2023-11-16T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b611feab36", "title": "sourdough pizza dough ratio calculator", "url": "https://alxndr.blog/2023/07/28/sourdough-pizza-dough-ratio-calculator/", "published_at": "2023-07-28T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61237b988", "title": "Oghamic Lojban", "url": "https://alxndr.blog/2023/05/25/lo-dzexerno-lerfu-the-oghamic-lojban/", "published_at": "2023-05-25T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b612a172d5", "title": "nasin pi lipu nimi", "url": "https://alxndr.blog/2023/05/23/nasin-pi-lipu-nimi/", "published_at": "2023-05-23T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b6135de4de", "title": "how to consistently pay back dependency tech-debt in an Agile environment", "url": "https://alxndr.blog/2023/05/11/recursive-techdebt-upgrade-ticket/", "published_at": "2023-05-11T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61387f76d", "title": "๐Ÿ‘ˆ โฎ๏ธ ๐Ÿง  ๐Ÿ—ฃ โฉ ๐Ÿ—ฃ ๐Ÿ‘", "url": "https://alxndr.blog/2023/04/24/mi-kama-sona-toki-e-toki-pona/", "published_at": "2023-04-24T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b6139dfdd2", "title": "framework-less CLI TDD with NPM* OMG LOL", "url": "https://alxndr.blog/2023/04/14/nodejs-native-test-scaffolding/", "published_at": "2023-04-14T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b614736213", "title": "Hot Ones standup", "url": "https://alxndr.blog/2023/03/30/hot-ones-standup/", "published_at": "2023-03-30T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b614c92778", "title": "creating a new Git repo based on the history of an old one", "url": "https://alxndr.blog/2023/01/30/new-git-repo-with-history-of-old-repo/", "published_at": "2023-01-30T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b614f0fb52", "title": "npm ci with legacy-peer-deps is a thing", "url": "https://alxndr.blog/2022/10/27/npm-ci-legacy-peer-deps-footgun/", "published_at": "2022-10-27T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61589b102", "title": "resizing tab width on GitHub diffs", "url": "https://alxndr.blog/2022/10/14/tab-size-on-github-diffs/", "published_at": "2022-10-14T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61659654f", "title": "BReport is dead; long live the microlith", "url": "https://alxndr.blog/2022/08/18/breport-shut-down/", "published_at": "2022-08-18T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b616958d79", "title": "upgrading Cypress to v10 within a Gatsby project", "url": "https://alxndr.blog/2022/06/07/Cypress-v10-and-Gatsby/", "published_at": "2022-06-07T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b616c8a18b", "title": "open Mac application from the command-line", "url": "https://alxndr.blog/2022/05/25/macos-open-application-from-command-line/", "published_at": "2022-05-25T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b6172f172b", "title": "Git archaeology tips", "url": "https://alxndr.blog/2022/05/04/Git-archaeology/", "published_at": "2022-05-04T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b6182a41f4", "title": "how to run React on top of Ruby-on-Rails", "url": "https://alxndr.blog/2022/04/22/react-on-rails/", "published_at": "2022-04-22T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61838a63e", "title": "One Weird Trick to Easily Remove (maybe) Anything from a Webpage", "url": "https://alxndr.blog/2022/03/09/removing-webpage-components/", "published_at": "2022-03-09T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b618871186", "title": "reviving this blog", "url": "https://alxndr.blog/2021/02/03/reviving-this-blog/", "published_at": "2021-02-03T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b6192ced58", "title": "counting eggs before they hatch", "url": "https://alxndr.blog/2018/02/09/counting-eggs-before-they-hatch/", "published_at": "2018-02-09T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61986cb9b", "title": "logging meta tags", "url": "https://alxndr.blog/2017/11/10/console-log-meta-tags/", "published_at": "2017-11-10T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61a26f939", "title": "hapi โ€” unset a cookie", "url": "https://alxndr.blog/2017/08/07/hapi-unset-a-cookie/", "published_at": "2017-08-07T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61a41f3dd", "title": "how to find the merge where your code disappeared", "url": "https://alxndr.blog/2017/02/01/how-to-find-the-merge-where-your-code-disappeared/", "published_at": "2017-02-01T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61a9ce35e", "title": "eslint โ€” Cannot read property 'value' of undefined", "url": "https://alxndr.blog/2017/01/18/eslint-Cannot-read-property-value-of-undefined/", "published_at": "2017-01-18T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61aa45748", "title": "don't be scared of merge conflicts", "url": "https://alxndr.blog/2016/11/17/dont-be-scared-of-merge-conflicts/", "published_at": "2016-11-17T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61b776d27", "title": "use a Dvorak keyboard layout on iOS Simulator", "url": "https://alxndr.blog/2016/08/04/use-a-Dvorak-keyboard-layout-on-iOS-Simulator/", "published_at": "2016-08-04T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61c3c5ee9", "title": "notes for npmCamp 2016", "url": "https://alxndr.blog/2016/07/30/notes-for-npm-Camp-2016/", "published_at": "2016-07-30T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61c3c955a", "title": "version control commit messages", "url": "https://alxndr.blog/2016/05/20/version-control-commit-messages/", "published_at": "2016-05-20T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61ccccfd4", "title": "linking to code? always use an href which is tied to a specific commit", "url": "https://alxndr.blog/2016/05/06/linking-to-code-always-use-an-href-which-is-tied-to-a-specific-commit/", "published_at": "2016-05-06T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61d4ee1f7", "title": "search Git history, ignoring certain directory", "url": "https://alxndr.blog/2016/04/11/search-Git-history-ignoring-certain-directory/", "published_at": "2016-04-11T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61d9e7511", "title": "getting Hound-CI to show Rubocop \"cop names\" again", "url": "https://alxndr.blog/2016/02/21/getting-Hound-CI-to-show-Rubocop-cop-names-again/", "published_at": "2016-02-21T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61dd15bc7", "title": "installing an old version of something via `brew`", "url": "https://alxndr.blog/2016/02/19/installing-an-old-version-of-something-via-brew/", "published_at": "2016-02-19T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61e821e52", "title": "how to mark an email as \"not-spam\" in Google's Inbox", "url": "https://alxndr.blog/2016/01/13/how-to-mark-an-email-as-not-spam-in-Googles-Inbox/", "published_at": "2016-01-13T00:00:00+00:00" }, { "id": "01a08726-5ea5-727d-a7fc-d5b61edf78e4", "title": "ElixirConf US 2015 notes", "url": "https://alxndr.blog/2015/10/02/ElixirConf-US-2015-notes/", "published_at": "2015-10-02T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d4e519bd1", "title": "typing an ellipsis in OS X", "url": "https://alxndr.blog/2015/09/23/typing-an-ellipsis-in-OS-X/", "published_at": "2015-09-23T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d4e7abdf7", "title": "La trahison des mots", "url": "https://alxndr.blog/2015/08/05/la-trahison-des-mots/", "published_at": "2015-08-05T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d4e81a1f4", "title": "getting started with Spacemacs", "url": "https://alxndr.blog/2015/06/20/getting-started-with-Spacemacs/", "published_at": "2015-06-20T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d4f622e9d", "title": "advanced filtering in Chrome's Network dev tools", "url": "https://alxndr.blog/2015/05/30/advanced-filtering-in-Chromes-Network-dev-tools/", "published_at": "2015-05-30T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d4f62dd6f", "title": "only show single branch status in CI status feeds", "url": "https://alxndr.blog/2015/04/25/only-show-master-branch-status-in-CI-status-feeds-for-eg-CC-Menu/", "published_at": "2015-04-25T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d4fe27ecc", "title": "notes โ€” Erlang Factory 2015", "url": "https://alxndr.blog/2015/03/27/notes-Erlang-Factory-2015/", "published_at": "2015-03-27T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d50e08ab9", "title": "jiggling the handle of OS X 10.8.5's dock", "url": "https://alxndr.blog/2015/03/06/jiggling-the-handle-of-OS-X-1085s-dock/", "published_at": "2015-03-06T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d51840664", "title": "project naming chains of nonsense", "url": "https://alxndr.blog/2015/03/01/project-naming-chains-of-nonsense/", "published_at": "2015-03-01T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d52170ac4", "title": "wanted โ€” a replacement for actionitems.us", "url": "https://alxndr.blog/2015/03/01/wanted-replacement-for-actionitems-us/", "published_at": "2015-03-01T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d524574f2", "title": "sometimes iTunes doesn't show the currently-playing song's name and position", "url": "https://alxndr.blog/2014/10/14/sometimes-iTunes-doesnt-show-the-currently-playing-songs-name-and-position/", "published_at": "2014-10-14T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d5322bb6c", "title": "Sharpening Your Tools", "url": "https://alxndr.blog/2014/10/13/Sharpening-Your-Tools/", "published_at": "2014-10-13T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d53a2fee0", "title": "killing processes", "url": "https://alxndr.blog/2014/10/04/killing-processes/", "published_at": "2014-10-04T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d548b9e6e", "title": "RequireJS 'invalid require call' error", "url": "https://alxndr.blog/2014/08/16/RequireJS-invalid-require-call-error/", "published_at": "2014-08-16T00:00:00+00:00" }, { "id": "01a08726-5ea6-7082-919e-037d54b04226", "title": "setting up fancy fonts for vim in iTerm", "url": "https://alxndr.blog/2014/04/29/setting-up-fancy-fonts-for-vim-in-iTerm/", "published_at": "2014-04-29T00:00:00+00:00" } ] posts Claim your blog
Back to Alexander's blog
Blog ยท corpus.blog/blogs/alxndr.blog/posts

Alexander's blog

alxndr.blog

2026

2024

2023

2022

2021

2018

2017

2016

2015

2014