{"title":"Doing Stuff","subtitle":"A blog about stuff","link":[{"@attributes":{"rel":"self","type":"application\/atom+xml","href":"https:\/\/doingstuff.dev\/atom.xml"}},{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev"}}],"generator":"Zola","updated":"2026-02-07T00:00:00+00:00","id":"https:\/\/doingstuff.dev\/atom.xml","entry":[{"title":"Blender - Year Two","published":"2026-02-07T00:00:00+00:00","updated":"2026-02-07T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/blender-year-two\/"}},"id":"https:\/\/doingstuff.dev\/posts\/blender-year-two\/","summary":"<figure class=\"center\">\n  \n  <img width=\"1000\" height=\"281\" src=\"https:\/\/doingstuff.dev\/posts\/blender-year-two\/cover.webp\" >\n  \n  \n<\/figure>\n"},{"title":"Streaming games to the Steam Deck","published":"2025-12-12T00:00:00+00:00","updated":"2025-12-12T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/steamdeck-linux-streaming\/"}},"id":"https:\/\/doingstuff.dev\/posts\/steamdeck-linux-streaming\/","summary":"<p>My notes for setting up Steam Deck remote game streaming using <a href=\"https:\/\/docs.lizardbyte.dev\/projects\/sunshine\/\">Sunshine<\/a> and <a href=\"https:\/\/moonlight-stream.org\/\">Moonlight<\/a> and a custom <a href=\"https:\/\/en.wikipedia.org\/wiki\/Extended_Display_Identification_Data\">EDID<\/a>.<\/p>\n"},{"title":"Blender - Milling Machine Breakdown","published":"2025-11-02T00:00:00+00:00","updated":"2025-11-02T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/blender-milling-machine-breakdown\/"}},"id":"https:\/\/doingstuff.dev\/posts\/blender-milling-machine-breakdown\/","summary":"<p>A breakdown for the stylized milling machine render.\n<figure class=\"center\">\n  \n  <img width=\"1440\" height=\"1080\" src=\"https:\/\/doingstuff.dev\/posts\/blender-milling-machine-breakdown\/render.webp\" alt=\"3d render of a milling machine\">\n  \n  \n<\/figure>\n<\/p>\n"},{"title":"Homelab Adventure - Part 4: Application Hosting and Monitoring","published":"2025-07-13T00:00:00+00:00","updated":"2025-07-13T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/homelab-adventure-part-4\/"}},"id":"https:\/\/doingstuff.dev\/posts\/homelab-adventure-part-4\/","summary":"<p>Welcome to my journey in building my Homelab. This is part of a multipart series; in the last part I showed how to set up an internal network across multiple hosts. This \"final\" post will go over application hosting and monitoring.<\/p>\n"},{"title":"Blender - Year One","published":"2025-05-19T00:00:00+00:00","updated":"2025-05-19T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/blender-year-one\/"}},"id":"https:\/\/doingstuff.dev\/posts\/blender-year-one\/","summary":"<figure class=\"center\">\n  \n  <img width=\"1000\" height=\"281\" src=\"https:\/\/doingstuff.dev\/posts\/blender-year-one\/cover.webp\" >\n  \n  \n<\/figure>\n"},{"title":"Home Assistant - Linux tablet dashboard and voice assistant","published":"2024-05-27T00:00:00+00:00","updated":"2024-05-27T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/home-assistant-dashboard-tablet\/"}},"id":"https:\/\/doingstuff.dev\/posts\/home-assistant-dashboard-tablet\/","summary":"<p>Turning an Intel Atom based Lenovo Tablet 10 (20E4) into a Home Assistant dashboard and voice assistant. Most tutorials for dashboard displays are using Android tablets, but I had this old tablet laying around and figured out how to use it with Home Assistant.<\/p>\n<figure class=\"center\">\n  \n  <img width=\"713\" height=\"545\" src=\"https:\/\/doingstuff.dev\/posts\/home-assistant-dashboard-tablet\/tablet_small.webp\" alt=\"Lenovo tablet with home assistant dashboard\">\n  \n  \n<\/figure>\n"},{"title":"Homelab Sidequest - Switching from Salt to Ansible","published":"2024-03-20T00:00:00+00:00","updated":"2024-03-20T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/homelab-switching-salt-to-ansible\/"}},"id":"https:\/\/doingstuff.dev\/posts\/homelab-switching-salt-to-ansible\/","summary":"<p>About a month ago I thought it would be nice to be able to configure VM's and Droplets with Salt by using my existing configuration I had set up in <a href=\"https:\/\/doingstuff.dev\/posts\/homelab-adventure-part-2\/\">Part 2: Configuration Management<\/a>.<\/p>\n"},{"title":"Homelab Adventure - Part 3: Internal Network","published":"2023-03-29T00:00:00+00:00","updated":"2023-03-29T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/homelab-adventure-part-3\/"}},"id":"https:\/\/doingstuff.dev\/posts\/homelab-adventure-part-3\/","summary":"<p>Welcome to my journey in building my Homelab. This is part of a multipart series; in the last part I gave an overview of how to set up configuration management. This one will cover how I set up my internal network.<\/p>\n"},{"title":"Embedding Version Info into ELF Shared Libraries","published":"2023-03-22T00:00:00+00:00","updated":"2023-03-22T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/elf-shared-library-version\/"}},"id":"https:\/\/doingstuff.dev\/posts\/elf-shared-library-version\/","summary":"<p><em>How to embed version information into an ELF shared library?<\/em><\/p>\n<p>Here are the methods I have used for embedding version information.<\/p>\n"},{"title":"Sending MIDI from Reaper to Unreal Engine","published":"2022-04-11T00:00:00+00:00","updated":"2022-04-11T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/reaper-midi-unreal-engine\/"}},"id":"https:\/\/doingstuff.dev\/posts\/reaper-midi-unreal-engine\/","summary":"<p>How to setup Reaper to send MIDI to Unreal Engine.<\/p>\n"},{"title":"Commodore 64 Puzzle","published":"2020-02-27T00:00:00+00:00","updated":"2020-02-27T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/c64-puzzle\/"}},"id":"https:\/\/doingstuff.dev\/posts\/c64-puzzle\/","summary":"<p>My college professor posted this image with the question<\/p>\n<blockquote>\n<p>What is the output when enter is pressed?<\/p>\n<\/blockquote>\n<figure class=\"center\">\n  \n  <img width=\"500\" height=\"418\" src=\"https:\/\/doingstuff.dev\/posts\/c64-puzzle\/problem.webp\" alt=\"Commodore 64 screen with a BASIC program\">\n  \n  \n<\/figure>\n"},{"title":"Homelab Adventure - Part 2: Configuration Management","published":"2020-02-06T00:00:00+00:00","updated":"2020-02-06T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/homelab-adventure-part-2\/"}},"id":"https:\/\/doingstuff.dev\/posts\/homelab-adventure-part-2\/","summary":"<p>Welcome to my journey in building my Homelab. This is part of a multipart series; in the last part I gave an overview of the Homelab plan. This one will cover how I handle configuration management.<\/p>\n"},{"title":"Homelab Adventure - Part 1: The Adventure Begins","published":"2019-11-09T00:00:00+00:00","updated":"2019-11-09T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/homelab-adventure-part-1\/"}},"id":"https:\/\/doingstuff.dev\/posts\/homelab-adventure-part-1\/","summary":"<p>Welcome to my journey in building my Homelab. This will be an ongoing series of blog posts of my adventures in building my personal infrastructure.<\/p>\n"},{"title":"peaCTF 2019 Writeups","published":"2019-07-26T00:00:00+00:00","updated":"2019-07-26T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/ctf-peactf-2019\/"}},"id":"https:\/\/doingstuff.dev\/posts\/ctf-peactf-2019\/","summary":"<p>Writeups for <a href=\"https:\/\/peactf.com\/\">peaCTF<\/a> 2019<\/p>\n"},{"title":"InnoCTF 2019 Writeups","published":"2019-07-19T00:00:00+00:00","updated":"2019-07-19T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/ctf-innoctf-2019\/"}},"id":"https:\/\/doingstuff.dev\/posts\/ctf-innoctf-2019\/","summary":"<p>Writeups for <a href=\"http:\/\/innoctf.com\/\">InnoCTF<\/a> 2019<\/p>\n"},{"title":"Floating Point Hell","published":"2014-03-16T00:00:00+00:00","updated":"2014-03-16T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/floating-point-hell\/"}},"id":"https:\/\/doingstuff.dev\/posts\/floating-point-hell\/","summary":"<p>This blog post will show how to deal with floating-point error in JavaScript by encoding all uint64's, and int64's as strings in JSON Marshaling.<\/p>\n"},{"title":"Setup QEMU for ARM on Debian Wheezy","published":"2014-01-01T00:00:00+00:00","updated":"2014-01-01T00:00:00+00:00","author":{"name":"\n            \n              Morgan Creekmore\n            \n          "},"link":{"@attributes":{"rel":"alternate","type":"text\/html","href":"https:\/\/doingstuff.dev\/posts\/setup-qemu-for-arm-on-wheezy\/"}},"id":"https:\/\/doingstuff.dev\/posts\/setup-qemu-for-arm-on-wheezy\/","summary":"<p>This is a quick little blog post for how to install QEMU for ARM on Debian 7.0 (Wheezy).<\/p>\n"}]}