<?xml version="1.0"?><rss version="2.0"><channel><title>Bob Davidson.dev</title><link>https://bobdavidson.dev/</link><description>Homepage of Bob Davidson, Director of Development at Blend Interactive, Web Developer, Tinkerer</description><item><title>Reading La Peste</title><pubDate>Thu, 23 Jul 2026 22:00:00 GMT</pubDate><guid isPermaLink="false">656f8083-9140-43c7-8f0a-eebd145e3754</guid><link>/blog/2026-07-23-la-peste</link><description>&lt;p&gt;Thoughts on reading &lt;em&gt;La Peste&lt;/em&gt;, a custom AI language study agent, and learning French.&lt;/p&gt;</description></item><item><title>Tabs from other devices (2025-05)</title><pubDate>Thu, 5 May 2025 22:00:00 GMT</pubDate><guid isPermaLink="false">e8c1ef18-a1a7-495c-a901-c3465a495094</guid><link>/tabs/2025-05</link><description>&lt;p&gt;What I've been reading recently: May of 2025 edition.&lt;/p&gt;</description></item><item><title>Working in Seasons</title><pubDate>Sun, 19 Nov 2024 22:00:00 GMT</pubDate><guid isPermaLink="false">d2a35517-7d58-48fd-816f-a9926a114668</guid><link>/blog/2024-07-10-working-in-seasons</link><description>&lt;p&gt;I like to work in "seasons" as much as I can. This is what I mean by that.&lt;/p&gt;</description></item><item><title>Tabs from other devices (2024-06)</title><pubDate>Sun, 07 Jul 2024 22:00:00 GMT</pubDate><guid isPermaLink="false">30e6512d-6352-41b7-adfd-da0545153ef5</guid><link>/tabs/2024-06</link><description>&lt;p&gt;What I've been reading recently: June of 2024 edition.&lt;/p&gt;</description></item><item><title>SQL Profiling in Optimizely CMS 12</title><pubDate>Sun, 02 Jun 2024 22:00:00 GMT</pubDate><guid isPermaLink="false">af979978-50c9-40a4-9476-7db3318c737a</guid><link>https://youtu.be/kUV67AfeQuA</link><description>&lt;p&gt;A relatively quick introduction to some simple tools to get you started in performance profiling in Optimizely CMS (or other ASP.NET applications).&lt;/p&gt;</description></item><item><title>Tabs from other devices (2024-05)</title><pubDate>Fri, 31 May 2024 22:00:00 GMT</pubDate><guid isPermaLink="false">50153916-d504-4a9b-829d-5e4263c15f4b</guid><link>/tabs/2024-05</link><description>&lt;p&gt;What I've been reading recently: May of 2024 edition.&lt;/p&gt;</description></item><item><title>Say hello to 2B2D</title><pubDate>Sun, 19 Nov 2023 22:00:00 GMT</pubDate><guid isPermaLink="false">507f8281-4590-4311-9f70-79d52c79d5bb</guid><link>https://mrdrbob.itch.io/2b2d-example-game/devlog/637606/say-hello-to-2b2d</link><description>&lt;p&gt;A quick introduction to 2B2D, my home-grown game engine, and the concepts contained there-in.&lt;/p&gt;</description></item><item><title>2B2D - My homegrown 2D game engine</title><pubDate>Sat, 30 Sep 2023 22:00:00 GMT</pubDate><guid isPermaLink="false">d115b4a1-fb6a-4cf9-85c0-ca5b4909e47e</guid><link>https://github.com/mrdrbob/2b2d</link><description>&lt;p&gt;2B2D is a very simple 2D-only game engine heavily inspired by &lt;a href="https://bevyengine.org/"  target="_blank" rel="noopener"&gt;Bevy&lt;/a&gt;, written in Typescript, rendered in WebGPU, with no dependencies.&lt;/p&gt;</description></item><item><title>Journaling as a Management Tool</title><pubDate>Wed, 09 Aug 2023 22:00:00 GMT</pubDate><guid isPermaLink="false">346595da-1e1e-45a2-ab33-00c22f5a12fc</guid><link>https://www.blendinteractive.com/t,houghts/journaling-as-a-management-tool/</link><description>&lt;p&gt;How I supplement my workflow with a mix of technology, process, and habit through daily journaling.&lt;/p&gt;</description></item><item><title>Events and Scheduled Jobs in Optimizely CMS 12</title><pubDate>Sat, 03 Jun 2023 22:00:00 GMT</pubDate><guid isPermaLink="false">243f289f-60d2-4ca6-9ff5-d0084eed4841</guid><link>https://youtu.be/aPx2klRTnvs</link><description>&lt;p&gt;A lengthy introduction to content events and building scheduled jobs in Optimizely CMS 12.&lt;/p&gt;</description></item><item><title>Working with Content in Optimizely CMS</title><pubDate>Mon, 22 Aug 2022 22:00:00 GMT</pubDate><guid isPermaLink="false">eec6835d-7d4a-4f07-a783-44911a55b21c</guid><link>https://youtu.be/2IfrEB9IbBA</link><description>&lt;p&gt;An introduction to working with content objects, content APIs, and avoiding some common stumbling blocks for people who are new to the CMS platform.&lt;/p&gt;</description></item><item><title>Rendering Content in Optimizely CMS</title><pubDate>Sat, 23 Jul 2022 22:00:00 GMT</pubDate><guid isPermaLink="false">45bf6c49-7b5e-421c-8247-dce489f89770</guid><link>https://youtu.be/DTvoE4xCVSA</link><description>&lt;p&gt;A brief (hour long) introduction to several basic ways to render content in Optimizely CMS 12, including rendering pages via a controller, blocks via a controller, blocks via the template coordinator, and page partials via the template coordinator.&lt;/p&gt;</description></item><item><title>Content Modeling in Optimizely CMS</title><pubDate>Mon, 20 Jun 2022 22:00:00 GMT</pubDate><guid isPermaLink="false">1863ef7b-0376-4463-83b8-37e8e61936d9</guid><link>https://youtu.be/XxHBlCZrvEE</link><description>&lt;p&gt;A discussion about what content and content modeling actually are from a conceptual point of view, followed by a brief introduction into making content types for the CMS.&lt;/p&gt;</description></item><item><title>Optimizely CMS Site Project Setup</title><pubDate>Sun, 01 May 2022 22:00:00 GMT</pubDate><guid isPermaLink="false">8cbe1798-1edf-47ea-91ac-9861657674f2</guid><link>https://youtu.be/mdQYec2JhQA</link><description>&lt;p&gt;I revamp my old series on building Episerver (now Optimizely CMS) sites from the ground up.&lt;/p&gt;</description></item><item><title>Content References in XhtmlString Properties</title><pubDate>Tue, 08 Feb 2022 22:00:00 GMT</pubDate><guid isPermaLink="false">08c0cbb0-f3ea-4a88-8ed2-116a06061e33</guid><link>https://www.blendinteractive.com/thoughts/content-references-in-xhtmlstrings/</link><description>&lt;p&gt;XHtmlString properties are more than just HTML, they include HTML, internal links to content, embedded blocks, personalization, and more. Here I take a brief look at the internals of XhtmlString properties and the fragments that make them.&lt;/p&gt;</description></item><item><title>Advent of Code </title><pubDate>Thu, 02 Dec 2021 22:00:00 GMT</pubDate><guid isPermaLink="false">5463f0d5-a0b0-4bb2-bd21-ed476862509f</guid><link>https://github.com/mrdrbob/aoc-2021</link><description>&lt;p&gt;Another year, another failed attempt. Actually, I completed all of the puzzles this year, just a month and a half late. Like last year, I kept a dev diary of sorts. Unlike last year, I did all the puzzles in C#.&lt;/p&gt;</description></item><item><title>This Site (BobDavidson.dev)</title><pubDate>Tue, 26 Jan 2021 22:00:00 GMT</pubDate><guid isPermaLink="false">a15a6758-aeae-44b2-a4ff-0014a5c8b6eb</guid><link>https://github.com/mrdrbob/bobdavidson.dev</link><description>&lt;p&gt;If you're wondering how this site is built and deployed, wonder no more. I've published the source code on Github. There's not actually much interesting here (except &lt;em&gt;maybe&lt;/em&gt; the &lt;a href="https://github.com/mrdrbob/bobdavidson.dev/blob/main/gulpfile.js"&gt;Gulp file that builds everything&lt;/a&gt;), but perhaps someone will find something useful here.&lt;/p&gt;</description></item><item><title>Advent of Code 2020</title><pubDate>Wed, 02 Dec 2020 22:00:00 GMT</pubDate><guid isPermaLink="false">13e4b429-734b-4ed7-9743-c7de008051b1</guid><link>https://github.com/mrdrbob/aoc-2020</link><description>&lt;p&gt;Another year and another attempt at &lt;a href="https://adventofcode.com/2020" target="_blank" rel="noopener"&gt;Advent of Code&lt;/a&gt;. Once again, I did not finish, though I made it slightly farther than before (day 15). And once again I tried it in &lt;a href="https://www.rust-lang.org/" target="_blank" rel="noopener"&gt;Rust&lt;/a&gt;. You can read my development diary as I worked through the syntax and logic. I've not used systems languages much, but I've had much greater success with Rust than I have any other systems language. It's not quite ready to be a part of my day job, but I see why it has such buzz.&lt;/p&gt;</description></item><item><title>Playing with Godot Game Engine</title><pubDate>Sat, 21 Nov 2020 22:00:00 GMT</pubDate><guid isPermaLink="false">381b2bf0-3d4b-4058-8477-ab6d11b66632</guid><link>https://github.com/mrdrbob/godot-test</link><description>&lt;p&gt;I started playing around a bit with &lt;a href="https://godotengine.org/" target="_blank" rel="noopener"&gt;Godot&lt;/a&gt;, following some tutorials and building a very rough, proof-of-concept side-scrolling platformer. In the &lt;a href="https://github.com/mrdrbob/godot-test"&gt;Github repo&lt;/a&gt;, you can find all my files and read through my development diary as I tried to figure out just what the heck I was doing. Overall, though, I'm extremely impressed with how polished Godot is, and how quickly a person can get up and running.&lt;/p&gt;</description></item><item><title>Episode 1 | On Page Editing Meta Properties</title><pubDate>Sun, 06 Dec 2020 22:00:00 GMT</pubDate><guid isPermaLink="false">983b006b-d619-4150-9b30-d28ce988429b</guid><link>https://youtu.be/pgslebVq7v8</link><description>&lt;p&gt;I show one technique to make metadata and otherwise non-visible page properties more user-friendly for on-page editing in Episerver.&lt;/p&gt;</description></item><item><title>Episode 6 | Encoding</title><pubDate>Sun, 01 Nov 2020 22:00:00 GMT</pubDate><guid isPermaLink="false">ad5723b7-169c-4c6f-9076-74740fc51817</guid><link>https://youtu.be/05HWg5R_zsE</link><description>&lt;p&gt;I show one technique to make metadata and otherwise non-visible page properties more user-friendly for on-page editing in Episerver.&lt;/p&gt;</description></item><item><title>Episode 5 | Deconstructing Enumerators</title><pubDate>Sat, 12 Sep 2020 22:00:00 GMT</pubDate><guid isPermaLink="false">06f7d036-c8ba-418e-8780-980487e38265</guid><link>https://youtu.be/05HWg5R_zsE</link><description>&lt;p&gt;In which we answer the questions: how do `foreach` loops work? How do `yield return` statements work? We look at the C# compiler actually generates (more or less) in these cases.&lt;/p&gt;</description></item><item><title>Episode 4 | Homebuilt CMS Deep Dive</title><pubDate>Thu, 03 Sep 2020 22:00:00 GMT</pubDate><guid isPermaLink="false">892c1877-15b3-4c9d-b126-59a933b68236</guid><link>https://youtu.be/6gawVMHtfdA</link><description>&lt;p&gt;In which we explore a home-built, makeshift content management system. Thanks to John for letting us examine and critique his code!&lt;/p&gt;</description></item><item><title>Episode 3 | Broken Keyboard Code Challenge</title><pubDate>Thu, 03 Sep 2020 22:00:00 GMT</pubDate><guid isPermaLink="false">4e47a83c-1943-4bbe-b637-81051a97ed71</guid><link>https://youtu.be/lRA53HiXIxw</link><description>&lt;p&gt;In which we solve a code challenge (being intentionally naive), and then refactor the solve.&lt;/p&gt;</description></item><item><title>Episode 2 | Gated Content Form</title><pubDate>Thu, 03 Sep 2020 22:00:00 GMT</pubDate><guid isPermaLink="false">07a2a394-444d-4f8c-a9c6-c76f9bcbef3c</guid><link>https://youtu.be/5Vlx2q7fQp0</link><description>&lt;p&gt;In which we look at a made-up gated content form controller in MVC.&lt;/p&gt;</description></item><item><title>Episode 1 | Comment Approval</title><pubDate>Thu, 03 Sep 2020 22:00:00 GMT</pubDate><guid isPermaLink="false">0299251a-04b4-4efc-9225-819a60770145</guid><link>https://youtu.be/pgslebVq7v8</link><description>&lt;p&gt;In which we look at a made-up function that adds/publishes comments to a page in a Content Management System.&lt;/p&gt;</description></item></channel></rss>