<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>veni vidi cogitavi</title><description>Recent content on veni vidi cogitavi</description><link>https://blog.luketurner.org/</link><item><title>Specks</title><link>https://blog.luketurner.org/posts/specks/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/specks/</guid><description>It&apos;s a poem, what else is there to say
</description><pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Experiments with spec-driven development</title><link>https://blog.luketurner.org/posts/experiments-with-spec-driven-development/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/experiments-with-spec-driven-development/</guid><description>Spec-driven development is a methodology where _specs_ are used as a basis for generating code. In this post, I talk about my SDD workflow using [spec-kit](https://github.com/github/spec-kit) and Claude Code subagents.
</description><pubDate>Sat, 25 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Are React hooks like inheritance?</title><link>https://blog.luketurner.org/posts/are-react-hooks-like-inheritance/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/are-react-hooks-like-inheritance/</guid><description>I recently saw [a comment](https://news.ycombinator.com/item?id=45475923) on Hacker News comparing React hooks with multiple inheritance in C++. I thought this was an interesting analogy and wanted to expand on it a bit.
</description><pubDate>Sun, 05 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Bakery: Building Bun single-file executables</title><link>https://blog.luketurner.org/posts/bakery-building-bun-single-file-executables/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/bakery-building-bun-single-file-executables/</guid><description>[Bakery](https://github.com/luketurner/bakery) is an opinionated utility for building and releasing projects with [Bun](https://bun.com/). It&apos;s intended for tools and executables, not libraries.
</description><pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Bring your own agent: an alternative AI strategy for SaaS</title><link>https://blog.luketurner.org/posts/bring-your-own-agent/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/bring-your-own-agent/</guid><description>In this post, I want to talk about an AI strategy for SaaS companies that I think will be _cheaper_, _simpler_, and _more future-proof_ than the alternative. I call it **Bring your own agent** (BYOA).
</description><pubDate>Sat, 13 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Weave: a TUI for running multiple commands</title><link>https://blog.luketurner.org/posts/weave-a-tui-for-running-multiple-commands/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/weave-a-tui-for-running-multiple-commands/</guid><description>[weave](https://github.com/luketurner/weave) is a CLI/TUI for running multiple long-running commands and &quot;weaving&quot; together their output. I use it to solve a persistent pain point of mine -- running multiple dev servers / watchers / etc. at once.
</description><pubDate>Thu, 21 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Unfurling posts with Astro</title><link>https://blog.luketurner.org/posts/unfurling-posts-with-astro/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/unfurling-posts-with-astro/</guid><description>A tutorial about adding high-quality social media unfurling to your Astro content, including summary, tags, images, estimated reading time, etc.
</description><pubDate>Thu, 31 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Dopamine fasting</title><link>https://blog.luketurner.org/posts/dopamine-fasting/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/dopamine-fasting/</guid><description>An explanation of dopamine fasts, dopamine traps, and why you should care.
</description><pubDate>Sun, 27 Jul 2025 00:00:00 GMT</pubDate></item><item><title>How I&apos;m using Claude Code</title><link>https://blog.luketurner.org/posts/how-i-m-using-claude-code/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/how-i-m-using-claude-code/</guid><description>This post describes my process for developing with [Claude Code](https://www.anthropic.com/claude-code), including the &quot;transient micro-IDE&quot; concept I&apos;m using for managing multiple worktrees at once.
</description><pubDate>Wed, 09 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Coupling and Modularization</title><link>https://blog.luketurner.org/posts/coupling-and-modularization/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/coupling-and-modularization/</guid><description>In this post, I&apos;ll be talking about the ideas of coupling, decoupling, and modularization, and how coupling is tightly related to the idea of the software&apos;s design context.
</description><pubDate>Tue, 15 Apr 2025 00:00:00 GMT</pubDate></item><item><title>Why I started streaming programming</title><link>https://blog.luketurner.org/posts/why-i-started-streaming-programming/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/why-i-started-streaming-programming/</guid><description>I&apos;ve started streaming software development at https://www.twitch.tv/LukeTurnerSWE (past streams are available [on youtube](https://www.youtube.com/@LukeTurnerSWE)). In this post, I give a brief explanation of why I&apos;ve started doing this.
</description><pubDate>Thu, 30 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Comparing Three CHOP extensions for VS Code</title><link>https://blog.luketurner.org/posts/comparing-chop-extensions-for-vs-code/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/comparing-chop-extensions-for-vs-code/</guid><description>A quick, semi-scientific comparison of using
[Github Copilot](https://github.com/features/copilot), [Cline](https://github.com/cline/cline), and [Cody](https://sourcegraph.com/cody) VSCode extensions
to do Chat-Oriented Programming (CHOP). Their performance is compared for writing tests, refactoring, and adding features.
</description><pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Writing effective design documents</title><link>https://blog.luketurner.org/posts/writing-effective-design-documents/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/writing-effective-design-documents/</guid><description>This post is about an important step in designing software systems: writing design documents.
</description><pubDate>Tue, 31 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Abstraction in software systems</title><link>https://blog.luketurner.org/posts/abstraction-in-software-systems/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/abstraction-in-software-systems/</guid><description>This post is a high-level explanation of _abstraction_ and why it&apos;s so important for software engineering.
</description><pubDate>Mon, 23 Dec 2024 00:00:00 GMT</pubDate></item><item><title>The first principle of software design</title><link>https://blog.luketurner.org/posts/the-first-principle-of-software-design/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/the-first-principle-of-software-design/</guid><description>In this post, I want to talk about how I think about designing software systems, starting from the first and most important principle. This is inspired by my experience conducting interviews at Redox, mentoring engineers over the years, as well as designing complex systems myself.
</description><pubDate>Sat, 30 Nov 2024 00:00:00 GMT</pubDate></item><item><title>Hosting your own webhook testing service on Fly.io</title><link>https://blog.luketurner.org/posts/hosting-your-own-webhook-testing-service-on-fly/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/hosting-your-own-webhook-testing-service-on-fly/</guid><description>Introducing a simple, open-source [Webhook Testing Tool](https://github.com/luketurner/webhook-testing-tool) that you can easily host on Fly.
</description><pubDate>Sat, 06 Apr 2024 00:00:00 GMT</pubDate></item><item><title>Using the pgvector extension with Fly Postgres</title><link>https://blog.luketurner.org/posts/using-pgvector-extension-on-fly/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/using-pgvector-extension-on-fly/</guid><description>A quick tutorial for enabling the [pgvector](https://github.com/pgvector/pgvector) extension on your [Fly Postgres](https://fly.io/docs/postgres/) instance.
</description><pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Deploying Llamafiles on Fly</title><link>https://blog.luketurner.org/posts/deploying-llamafiles-on-fly/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/deploying-llamafiles-on-fly/</guid><description>A quick tutorial for deploying a private &quot;LLM model as a service&quot; to [Fly](https:fly.io) using a single-file executable [Llamafile](https://github.com/Mozilla-Ocho/llamafile).
</description><pubDate>Sat, 13 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Three weird reducers: State management in a Next.js app</title><link>https://blog.luketurner.org/posts/three-weird-reducers/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/three-weird-reducers/</guid><description>Explaining a pattern I&apos;m using for client/server state management in [dust](https://github.com/luketurner/dust).
</description><pubDate>Mon, 30 Oct 2023 00:00:00 GMT</pubDate></item><item><title>Why I deployed my Next.js app on Fly instead of Vercel</title><link>https://blog.luketurner.org/posts/nextjs-fly-vercel/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/nextjs-fly-vercel/</guid><description>I recently deployed another [one of my little apps](https://dust.luketurner.org), written with [Next.js](https://nextjs.org/).
In this post, I discuss why my app is deployed on [Fly](https://fly.io/) instead of [Vercel](https://vercel.com), even though
Vercel is &quot;[the native Next.js platform](https://vercel.com/docs/frameworks/nextjs)&quot;.
</description><pubDate>Mon, 23 Oct 2023 00:00:00 GMT</pubDate></item><item><title>Features in my ideal habit/task tracking app</title><link>https://blog.luketurner.org/posts/habit-task-app-features/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/habit-task-app-features/</guid><description>I&apos;m working on a habit/task tracking app called [Habitsheets](https://github.com/luketurner/habitsheets). As I&apos;ve worked on it, thinking about &quot;features I&apos;d like in my ideal habit/task tracking app,&quot; some ideas occurred to me that don&apos;t seem common in other apps. This post is highlighting those features I wouldn&apos;t mind seeing in other habit and/or task management tools.
</description><pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate></item><item><title>SSO Lab: Self-hosting Keycloak on Fly</title><link>https://blog.luketurner.org/posts/sso-lab-self-hosting-keycloak-on-fly/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/sso-lab-self-hosting-keycloak-on-fly/</guid><description>I&apos;ve been wanting an &quot;SSO lab&quot; for experimenting with Single Sign-On (SAML and OIDC) setups.
My solution is a [Keycloak](https://www.keycloak.org/) instance running on [Fly.io](https://fly.io/).
This post is a brief tutorial for self-hosting your own Keycloak instance.
</description><pubDate>Sat, 26 Aug 2023 00:00:00 GMT</pubDate></item><item><title>Astro recipe: New post scaffold script</title><link>https://blog.luketurner.org/posts/astro-recipe-create-posts/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/astro-recipe-create-posts/</guid><description>A script to scaffold new posts for my [Astro](https://astro.build/) blog.
</description><pubDate>Sun, 20 Aug 2023 00:00:00 GMT</pubDate></item><item><title>Astro recipe: D2 component</title><link>https://blog.luketurner.org/posts/astro-recipe-d2/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/astro-recipe-d2/</guid><description>Use [D2](https://d2lang.com/) markup to author diagrams in your [Astro](https://astro.build/) MDX content.  
</description><pubDate>Sun, 13 Aug 2023 00:00:00 GMT</pubDate></item><item><title>Astro recipe: Creating aliases (redirects) for old content URLs</title><link>https://blog.luketurner.org/posts/astro-recipe-content-url-aliases/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/astro-recipe-content-url-aliases/</guid><description>Implementing [Hugo-style aliases](https://gohugo.io/content-management/urls/#aliases) in [Astro](https://astro.build/).
</description><pubDate>Thu, 04 May 2023 00:00:00 GMT</pubDate></item><item><title>Ad Astro</title><link>https://blog.luketurner.org/posts/ad-astro/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/ad-astro/</guid><description>Switching my blog&apos;s static site generator to [Astro](https://astro.build/).
</description><pubDate>Fri, 31 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Web Clipping for Dendron</title><link>https://blog.luketurner.org/posts/dendron-markdownload-web-clipping/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/dendron-markdownload-web-clipping/</guid><description>A brief overview of my [MarkDownload fork](https://github.com/luketurner/markdownload), intended for Dendron users.
</description><pubDate>Thu, 12 Jan 2023 18:51:08 GMT</pubDate></item><item><title>Compiling Mermaid, KaTeX, and D2 at build-time with aftermath</title><link>https://blog.luketurner.org/posts/aftermath/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/aftermath/</guid><description>I&apos;m happy to report that you no longer need JavaScript to see rendered KaTeX expressions and Mermaid diagrams in my blog posts! I wrote a script [aftermath](https://github.com/luketurner/aftermath) that post-processes my blog posts to compile the following at build-time: [KaTeX](https://katex.org/), [Mermaid](https://mermaid.js.org/), and [D2](https://d2lang.com).
</description><pubDate>Fri, 30 Dec 2022 18:51:08 GMT</pubDate></item><item><title>Triggering Fly deployments from Gitea webhooks</title><link>https://blog.luketurner.org/posts/gitea-fly-connector/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/gitea-fly-connector/</guid><description>A brief overview of [gitea-fly-connector](https://github.com/luketurner/gitea-fly-connector), a piece of code I recently published.
</description><pubDate>Sun, 27 Nov 2022 18:51:08 GMT</pubDate></item><item><title>Hosting Gitea on Fly</title><link>https://blog.luketurner.org/posts/gitea-on-fly/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/gitea-on-fly/</guid><description>This is a tutorial for hosting [Gitea](https://gitea.io/en-us/) on [Fly.io](https://fly.io/).
Includes installation, hardening, SSH, and custom domain setup.
For an example of what you get, see [git.luketurner.org](https://git.luketurner.org).
</description><pubDate>Sat, 19 Nov 2022 18:51:08 GMT</pubDate></item><item><title>Breathing techniques</title><link>https://blog.luketurner.org/posts/breathing-techniques/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/breathing-techniques/</guid><description>Breathing: We all do it, but we don&apos;t usually pay attention to it. This post has a brief summary of some conscious breathing techniques that I like to use in everyday life.</description><pubDate>Thu, 21 Jul 2022 15:00:00 GMT</pubDate></item><item><title>Specter, a motivational tutorial</title><link>https://blog.luketurner.org/posts/specter-tutorial/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/specter-tutorial/</guid><description>This is a tutorial for [Specter](https://github.com/redplanetlabs/specter),
an awesome Clojure(Script) library for transforming complex data structures.
I seek to explain the how and why of Specter through a series of worked examples.
</description><pubDate>Tue, 28 Dec 2021 04:32:12 GMT</pubDate></item><item><title>Arch Linux RPi 4</title><link>https://blog.luketurner.org/posts/arch_linux_rpi4_cluster/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/arch_linux_rpi4_cluster/</guid><description>Installing Arch Linux on Raspberry Pi 4, with notes, tweaks, and bash script.</description><pubDate>Sun, 25 Jul 2021 07:00:00 GMT</pubDate></item><item><title>Cool Tools for Desktop Linux</title><link>https://blog.luketurner.org/posts/linux_cool_tools/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/linux_cool_tools/</guid><description>A list of cool tools, customizations, hacks, etc. for (power-user) desktop Linux.</description><pubDate>Sat, 10 Apr 2021 07:00:00 GMT</pubDate></item><item><title>Doom Emacs config</title><link>https://blog.luketurner.org/posts/emacs_config/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/emacs_config/</guid><description>My self-compiling literate config for Doom Emacs. Supports note-taking and blogging workflows.</description><pubDate>Sat, 03 Apr 2021 07:00:00 GMT</pubDate></item><item><title>ClojureScript Project Quickstart</title><link>https://blog.luketurner.org/posts/cljs_quickstart/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/cljs_quickstart/</guid><description>A brief guide to tooling for ClojureScript projects. Includes compiling, development servers, CI/CD, and publishing to Netlify (for websites) and/or Clojars (for libraries).</description><pubDate>Sun, 28 Mar 2021 07:00:00 GMT</pubDate></item><item><title>Useful GUIs for Developers</title><link>https://blog.luketurner.org/posts/useful_guis_for_developers/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/useful_guis_for_developers/</guid><description>A list of interesting GUI tools for developers.</description><pubDate>Sat, 20 Mar 2021 07:00:00 GMT</pubDate></item><item><title>Recommended books</title><link>https://blog.luketurner.org/posts/booklist/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/booklist/</guid><description>Looking for something to read? This is a list of books I&apos;ve read and recommended, organized by genre. The list is provided in both human-readable and CSV formats.</description><pubDate>Sun, 14 Mar 2021 08:00:00 GMT</pubDate></item><item><title>GergoPlex Keymap Images</title><link>https://blog.luketurner.org/posts/gergoplex_keymap_images/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/gergoplex_keymap_images/</guid><description>My printable key layout images for the Gergoplex keyboard</description><pubDate>Mon, 24 Aug 2020 07:00:00 GMT</pubDate></item><item><title>Customizing the Faunchpad</title><link>https://blog.luketurner.org/posts/faunchpad_intro/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/faunchpad_intro/</guid><description>A &quot;Getting started&quot; guide for customizing the Faunchpad&apos;s keybindings. Covers QMK basics, compiling, and flashing the firmware.</description><pubDate>Mon, 10 Aug 2020 07:00:00 GMT</pubDate></item><item><title>Blogging workflow</title><link>https://blog.luketurner.org/posts/blogging-workflow/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/blogging-workflow/</guid><description>A brief summary of my blogging workflow.</description><pubDate>Sat, 20 Jun 2020 07:00:00 GMT</pubDate></item><item><title>Pi Homelab</title><link>https://blog.luketurner.org/posts/pi-homelab/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/pi-homelab/</guid><description>My notes from planning and provisioning a lightweight Kubernetes custer with Raspberry Pis and k3s.</description><pubDate>Wed, 13 May 2020 07:00:00 GMT</pubDate></item><item><title>The new blog theme</title><link>https://blog.luketurner.org/posts/blog-theme/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/blog-theme/</guid><description>What I think about when making a new theme for my blog, and how that affects the design you&apos;re looking at now.</description><pubDate>Sun, 12 Apr 2020 07:00:00 GMT</pubDate></item><item><title>About this blog</title><link>https://blog.luketurner.org/posts/about/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/about/</guid><description>Has information about the blog you&apos;re currently reading.</description><pubDate>Mon, 10 Dec 2018 15:00:00 GMT</pubDate></item><item><title>Sample Formatting</title><link>https://blog.luketurner.org/posts/sample-formatting/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/sample-formatting/</guid><description>This post illustrates the different features and formatting available for content on my blog.</description><pubDate>Sun, 09 Dec 2018 15:00:00 GMT</pubDate></item><item><title>Sharing human knowledge</title><link>https://blog.luketurner.org/posts/sharing-knowledge/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/sharing-knowledge/</guid><description>Words are a lossy way to represent information. How can we share knowledge with language despite its lossiness?</description><pubDate>Fri, 07 Dec 2018 15:00:00 GMT</pubDate></item><item><title>The Internet is down</title><link>https://blog.luketurner.org/posts/without-internet/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/without-internet/</guid><description>A short poem.</description><pubDate>Mon, 03 Dec 2018 23:04:00 GMT</pubDate></item><item><title>G.O.L.EM.</title><link>https://blog.luketurner.org/posts/golem/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/golem/</guid><description>G.O.L.EM. (Game Of Life EMulator) is an interactive Game of Life implementation I built, just for fun, using Clojurescript and HTML Canvas.</description><pubDate>Tue, 11 Sep 2018 17:32:12 GMT</pubDate></item><item><title>Automating (even more) early and often</title><link>https://blog.luketurner.org/posts/automating-early-and-often/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/automating-early-and-often/</guid><description>Musing on the value of automating work.</description><pubDate>Sat, 15 Apr 2017 15:02:00 GMT</pubDate></item><item><title>lpass-add and lpass-env</title><link>https://blog.luketurner.org/posts/lpass-add-env/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/lpass-add-env/</guid><description>I published two scripts, `lpass-env` and `lpass-add`, that wrap the 
[lpass](https://github.com/lastpass/lastpass-cli) CLI. These scripts are 
very handy if you are storing non-password credentials, like environment 
variables or SSH keys, directly in your LastPass vault.
</description><pubDate>Thu, 29 Dec 2016 22:26:00 GMT</pubDate></item><item><title>Unidirectional data flow architecture in JS</title><link>https://blog.luketurner.org/posts/unidirectional-data-flow-js/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/unidirectional-data-flow-js/</guid><description>Things you can learn from Flow and re-frame, even when you&apos;re not using them.</description><pubDate>Wed, 22 Apr 2015 21:27:10 GMT</pubDate></item><item><title>Gulp and Browserify recipe</title><link>https://blog.luketurner.org/posts/gulp-browserify/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/gulp-browserify/</guid><description>Mixing Browserify and Gulp -- what could go wrong? (Note: this post is very outdated and no longer useful to anyone.)</description><pubDate>Wed, 03 Dec 2014 14:49:00 GMT</pubDate></item><item><title>The value of a sentence</title><link>https://blog.luketurner.org/posts/value-of-a-sentence/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/value-of-a-sentence/</guid><description>Succinctness is an underestimated virtue in nonfiction: too many books use a page where a sentence would do.</description><pubDate>Tue, 09 Sep 2014 17:23:02 GMT</pubDate></item><item><title>PersonalPVT Retrospective</title><link>https://blog.luketurner.org/posts/personalpvt/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/personalpvt/</guid><description>PersonalPVT is a Web application for doing psychomotor vigilance task (PVT) testing.</description><pubDate>Mon, 08 Sep 2014 19:18:00 GMT</pubDate></item><item><title>Maneuver warfare was agile before agile</title><link>https://blog.luketurner.org/posts/ooda-loop-agile/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/ooda-loop-agile/</guid><description>Exploring the similarities between John Boyd&apos;s OODA Loop and agile development&apos;s iteration.</description><pubDate>Fri, 14 Feb 2014 17:00:00 GMT</pubDate></item><item><title>Hack language parser in a single regex</title><link>https://blog.luketurner.org/posts/hack-parser-regex/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/hack-parser-regex/</guid><description>Parsing the Hack language in a single regular expression. (Hack is a simple assembly language defined in Introduction to Computing Systems.)</description><pubDate>Mon, 30 Dec 2013 17:00:00 GMT</pubDate></item><item><title>Skewomorphism: second-order mimesis</title><link>https://blog.luketurner.org/posts/skewomorphism/</link><guid isPermaLink="true">https://blog.luketurner.org/posts/skewomorphism/</guid><description>Our mental models are based on our experience. Overemphasis on games and media can affect these models, resulting in a skewed perception of reality.</description><pubDate>Tue, 10 Sep 2013 17:00:00 GMT</pubDate></item></channel></rss>