<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://simpleblog.makeboldspark.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://simpleblog.makeboldspark.com/" rel="alternate" type="text/html" /><updated>2026-05-27T16:29:04+00:00</updated><id>https://simpleblog.makeboldspark.com/feed.xml</id><title type="html">Mark’s Dev Notebook</title><subtitle>A developer&apos;s notebook by Mark Hazleton — Azure, .NET, Jekyll, and whatever else looks interesting this week.
</subtitle><author><name>Mark Hazleton</name><email></email></author><entry><title type="html">A Day of Site Cleanup</title><link href="https://simpleblog.makeboldspark.com/updates/development/2026/05/27/site-cleanup-and-seo-day.html" rel="alternate" type="text/html" title="A Day of Site Cleanup" /><published>2026-05-27T13:00:00+00:00</published><updated>2026-05-27T13:00:00+00:00</updated><id>https://simpleblog.makeboldspark.com/updates/development/2026/05/27/site-cleanup-and-seo-day</id><content type="html" xml:base="https://simpleblog.makeboldspark.com/updates/development/2026/05/27/site-cleanup-and-seo-day.html"><![CDATA[<p>I spent today doing something I’d been putting off for a while: actually cleaning up this site.</p>

<p>It started as a dependency update — just running <code class="language-plaintext highlighter-rouge">bundle outdated</code> to see what was stale — and turned into a full day of fixes. Here’s what happened.</p>

<h2 id="moved-to-a-proper-domain">Moved to a Proper Domain</h2>

<p>The site was technically live at <code class="language-plaintext highlighter-rouge">markhazleton.github.io</code> but that’s just the GitHub Pages default. Part of the <a href="https://makeboldspark.com">Make Bold Spark</a> portfolio work involved migrating Spark projects to dedicated domains, so this one is now properly at <a href="https://simpleblog.makeboldspark.com">simpleblog.makeboldspark.com</a>.</p>

<p>That meant adding a CNAME file, fixing the <code class="language-plaintext highlighter-rouge">url</code> in <code class="language-plaintext highlighter-rouge">_config.yml</code> (which was pointing to the wrong domain and therefore generating wrong canonical URLs in every single page — good catch), and updating <code class="language-plaintext highlighter-rouge">robots.txt</code> to point the sitemap at the right address.</p>

<h2 id="ga4">GA4</h2>

<p>Wired up Google Analytics 4 using the Make Bold Spark property (<code class="language-plaintext highlighter-rouge">G-RY77Z11S9E</code>). The old <code class="language-plaintext highlighter-rouge">google-analytics.html</code> include was still using the Universal Analytics script — which was deprecated in 2023 — so that got replaced entirely. Now the GA4 gtag loads in <code class="language-plaintext highlighter-rouge">&lt;head&gt;</code> on every page.</p>

<p>No data before today. Fresh start.</p>

<h2 id="made-it-look-like-a-personal-blog">Made It Look Like a Personal Blog</h2>

<p>The site had no personality. The home page was literally empty — just a layout declaration. The header showed “Mark Hazleton” with no context. The about page read like a LinkedIn summary.</p>

<p>Fixed all of that:</p>

<ul>
  <li><strong>Site title</strong> changed to “Mark’s Dev Notebook”</li>
  <li><strong>Header tagline</strong> added: <em>notes from a developer who can’t stop tinkering</em></li>
  <li><strong>Home page intro</strong> — a few sentences about who I am and what this is</li>
  <li><strong>Post list</strong> now shows tags inline and a post count</li>
  <li><strong>About page</strong> rewritten in actual first person — less resume, more human</li>
  <li><strong>Footer</strong> updated: “no comments, no newsletter, no algorithm to please”</li>
</ul>

<h2 id="rewrote-seven-posts">Rewrote Seven Posts</h2>

<p>This was the most time-consuming part. A few of the older posts had problems:</p>

<ul>
  <li>The Bootstrap 5 post read like a product launch press release. “I’m excited to share a major milestone” — come on. Rewrote it as a straightforward dev note about why CDN over Sass pipeline made sense.</li>
  <li>The Copilot agent post was four sentences using “we” throughout. Personal blog. Who is “we”? Rewrote it as an honest account of what agent mode did well and where it needed correction.</li>
  <li>The December 2024 post had a body that cut off mid-sentence after the intro. Just… nothing there. Turned it into a proper Windows+Jekyll setup guide since that’s clearly what it was meant to be.</li>
  <li>Two old posts from 2021–2022 were titled after the old <code class="language-plaintext highlighter-rouge">github.io</code> identity. Retitled them to match the current site.</li>
</ul>

<p>The chaos mode post from last July survived intact. Some things shouldn’t be edited.</p>

<h2 id="whats-next">What’s Next</h2>

<p>The SEO plan has a few more items — Google Search Console verification, tag archive pages, related posts at the bottom of each post. Those are the next things on the list.</p>

<p>For now the site is in better shape than it was this morning, which is enough for one day.</p>]]></content><author><name>Mark Hazleton</name></author><category term="updates" /><category term="development" /><category term="jekyll" /><category term="seo" /><category term="github-pages" /><category term="make-bold-spark" /><category term="ga4" /><category term="branding" /><summary type="html"><![CDATA[Spent the day cleaning up this blog — new domain, GA4, better branding, and rewriting posts that were too polished for their own good.]]></summary></entry><entry><title type="html">Hi! Jekyll Platform Trends and News for 2026</title><link href="https://simpleblog.makeboldspark.com/updates/development/2026/04/01/hi-jekyll-trends-and-news.html" rel="alternate" type="text/html" title="Hi! Jekyll Platform Trends and News for 2026" /><published>2026-04-01T11:00:00+00:00</published><updated>2026-04-01T11:00:00+00:00</updated><id>https://simpleblog.makeboldspark.com/updates/development/2026/04/01/hi-jekyll-trends-and-news</id><content type="html" xml:base="https://simpleblog.makeboldspark.com/updates/development/2026/04/01/hi-jekyll-trends-and-news.html"><![CDATA[<p>Hi! It’s April 2026 and I wanted to drop in with a quick update on what’s happening in the Jekyll world and on this site.</p>

<h2 id="jekyll-release-landscape">Jekyll Release Landscape</h2>

<p>The Jekyll project continues its dual-track release strategy, maintaining both the <strong>3.x</strong> and <strong>4.x</strong> lines:</p>

<ul>
  <li><strong>Jekyll 4.4.1</strong> (January 29, 2025) is the latest stable release, a patch that restored existing behavior around front matter defaults with glob patterns in scope paths.</li>
  <li><strong>Jekyll 4.4.0</strong> (January 27, 2025) was a significant minor release that introduced highlighted line marking via Liquid, bumped the minimum Ruby version to 2.7, added <code class="language-plaintext highlighter-rouge">csv</code>, <code class="language-plaintext highlighter-rouge">base64</code>, and <code class="language-plaintext highlighter-rouge">json</code> as explicit runtime dependencies, and fixed the <code class="language-plaintext highlighter-rouge">--livereload-ignore</code> option.</li>
  <li><strong>Jekyll 3.10.0</strong> remains the version pinned by GitHub Pages, released back in June 2024. This is the version this site runs on.</li>
</ul>

<p>The gap between Jekyll 4.x (latest) and what GitHub Pages supports (3.10.0) continues to be the biggest friction point for Jekyll users on GitHub Pages. Jekyll 4.x brings real improvements — faster builds, better Sass converter support, and modern Ruby compatibility — but GitHub Pages hasn’t adopted it.</p>

<h2 id="github-pages-dependency-status">GitHub Pages Dependency Status</h2>

<p>As of the last GitHub Pages gem update (v232, August 2025):</p>

<table>
  <thead>
    <tr>
      <th>Key Dependency</th>
      <th>Version</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Jekyll</td>
      <td>3.10.0</td>
    </tr>
    <tr>
      <td>Ruby</td>
      <td>3.3.4</td>
    </tr>
    <tr>
      <td>Liquid</td>
      <td>4.0.4</td>
    </tr>
    <tr>
      <td>Kramdown</td>
      <td>2.4.0</td>
    </tr>
    <tr>
      <td>Rouge</td>
      <td>3.30.0</td>
    </tr>
    <tr>
      <td>Minima</td>
      <td>2.5.1</td>
    </tr>
    <tr>
      <td>jekyll-seo-tag</td>
      <td>2.8.0</td>
    </tr>
    <tr>
      <td>jekyll-feed</td>
      <td>0.17.0</td>
    </tr>
  </tbody>
</table>

<p>Ruby 3.3.4 on the GitHub Pages runner is a welcome upgrade. The jekyll-sass-converter remains at 1.5.2 (the older Sass engine), which is worth noting if you’re doing anything advanced with Sass.</p>

<h2 id="trends-in-the-jekyll-ecosystem">Trends in the Jekyll Ecosystem</h2>

<h3 id="static-site-generators-jekylls-place-in-2026">Static Site Generators: Jekyll’s Place in 2026</h3>

<p>Jekyll remains one of the most-used static site generators thanks to its deep GitHub Pages integration. While newer tools like Astro, Hugo, and Eleventy have gained significant traction, Jekyll’s simplicity and zero-config GitHub Pages deployment keeps it relevant, especially for blogs and documentation sites.</p>

<h3 id="the-bootstrap-5--jekyll-combination">The Bootstrap 5 + Jekyll Combination</h3>

<p>One trend I’ve been leaning into on this site is pairing Jekyll with <strong>Bootstrap 5 via CDN</strong>. Rather than fighting with Jekyll’s Sass pipeline for complex layouts, loading Bootstrap 5.3.8 from a CDN gives you a full responsive framework with dark mode support (<code class="language-plaintext highlighter-rouge">data-bs-theme</code>), Bootstrap Icons, and modern utility classes — all without adding build complexity. This site now runs on this exact setup.</p>

<h3 id="ai-assisted-development">AI-Assisted Development</h3>

<p>The intersection of AI tooling and static site development continues to evolve rapidly. Tools like GitHub Copilot make it easy to generate post content, refactor layouts, modernize CSS, and audit configurations. Most of the recent modernization work on this site was done collaboratively with Copilot.</p>

<h2 id="what-changed-on-this-site-recently">What Changed on This Site Recently</h2>

<p>Just wrapped up a round of modernization:</p>

<ul>
  <li><strong>Bootstrap 5.3.8</strong> — full CSS + JS via CDN, plus Bootstrap Icons</li>
  <li><strong>Custom CSS</strong> now loaded alongside the Sass-compiled styles</li>
  <li><strong>Dark/light mode</strong> toggle fixed and aligned with Bootstrap’s <code class="language-plaintext highlighter-rouge">data-bs-theme</code> attribute</li>
  <li><strong>Social links</strong> rebuilt with Bootstrap Icons (GitHub, LinkedIn, Stack Overflow, RSS)</li>
  <li><strong>Post front matter</strong> standardized with consistent author, tags, and excerpts across all posts</li>
  <li><strong>Post excerpts</strong> now displayed on the homepage</li>
  <li><strong>Footer</strong> cleaned up with a link to <a href="https://markhazleton.com">markhazleton.com</a></li>
  <li><strong>Google Analytics removed</strong> — Universal Analytics has been deprecated since July 2023</li>
</ul>

<h2 id="looking-ahead">Looking Ahead</h2>

<p>A few things I’m watching:</p>

<ul>
  <li>Whether GitHub Pages will ever adopt Jekyll 4.x (or if the custom Actions workflow becomes the recommended path)</li>
  <li>The continued evolution of Bootstrap’s dark mode and CSS custom properties</li>
  <li>Ruby 3.4 support across the gem ecosystem</li>
  <li>Whether Jekyll’s maintainer community grows — the project has been maintained by a small but dedicated group</li>
</ul>

<p>That’s it for now. More to come as the year progresses. You can always find my latest work at <a href="https://markhazleton.com">markhazleton.com</a>.</p>]]></content><author><name>Mark Hazleton</name></author><category term="updates" /><category term="development" /><category term="jekyll" /><category term="github-pages" /><category term="ruby" /><category term="static-site-generators" /><category term="bootstrap" /><summary type="html"><![CDATA[A quick hello and a look at the latest trends in the Jekyll ecosystem heading into spring 2026.]]></summary></entry><entry><title type="html">Happy New Year 2026: State of the Jekyll Ecosystem</title><link href="https://simpleblog.makeboldspark.com/updates/development/2026/01/12/happy-new-year-2026.html" rel="alternate" type="text/html" title="Happy New Year 2026: State of the Jekyll Ecosystem" /><published>2026-01-12T10:00:00+00:00</published><updated>2026-01-12T10:00:00+00:00</updated><id>https://simpleblog.makeboldspark.com/updates/development/2026/01/12/happy-new-year-2026</id><content type="html" xml:base="https://simpleblog.makeboldspark.com/updates/development/2026/01/12/happy-new-year-2026.html"><![CDATA[<p>Happy New Year 2026! 🎉</p>

<p>Starting the year right with some housekeeping and infrastructure updates. I just ran a full <code class="language-plaintext highlighter-rouge">bundle update</code> on the site to bring all dependencies current while maintaining GitHub Pages compatibility.</p>

<h2 id="package-updates-completed">Package Updates Completed</h2>

<p>Here’s what got updated in today’s maintenance cycle:</p>

<h3 id="core-dependencies">Core Dependencies</h3>

<ul>
  <li><strong>nokogiri</strong>: 1.18.10 → 1.19.0 (HTML/XML parser)</li>
  <li><strong>activesupport</strong>: 8.1.1 → 8.1.2 (Rails core extensions)</li>
  <li><strong>concurrent-ruby</strong>: 1.3.5 → 1.3.6 (concurrency utilities)</li>
  <li><strong>bigdecimal</strong>: 3.3.1 → 4.0.1 (arbitrary-precision decimal)</li>
  <li><strong>json</strong>: 2.15.2 → 2.18.0 (JSON parser)</li>
  <li><strong>minitest</strong>: 5.26.0 → 6.0.1 (testing framework)</li>
</ul>

<h3 id="network--http">Network &amp; HTTP</h3>

<ul>
  <li><strong>net-http</strong>: 0.7.0 → 0.9.1 (HTTP client)</li>
  <li><strong>faraday-net_http</strong>: 3.4.1 → 3.4.2 (Faraday adapter)</li>
  <li><strong>faraday-retry</strong>: 2.3.1 → 2.4.0 (retry middleware)</li>
  <li><strong>http_parser.rb</strong>: 0.8.0 → 0.8.1 (HTTP parser)</li>
  <li><strong>dnsruby</strong>: 1.73.0 → 1.73.1 (DNS resolver)</li>
  <li><strong>addressable</strong>: 2.8.7 → 2.8.8 (URI implementation)</li>
</ul>

<h3 id="infrastructure">Infrastructure</h3>

<ul>
  <li><strong>connection_pool</strong>: 2.5.4 → 3.0.2 (connection pooling - major version bump!)</li>
  <li><strong>ffi</strong>: 1.17.2 → 1.17.3 (foreign function interface)</li>
  <li><strong>webrick</strong>: 1.9.1 → 1.9.2 (HTTP server)</li>
  <li><strong>uri</strong>: 1.1.0 → 1.1.1 (URI utilities)</li>
  <li><strong>i18n</strong>: 1.14.7 → 1.14.8 (internationalization)</li>
  <li><strong>prism</strong>: (new addition - Ruby parser)</li>
</ul>

<h2 id="the-github-pages-landscape-in-2026">The GitHub Pages Landscape in 2026</h2>

<p>While many gems have newer versions available (Jekyll 4.4.1, Kramdown 2.5.1, etc.), this site intentionally uses the <code class="language-plaintext highlighter-rouge">github-pages</code> gem bundle, which locks dependencies to match GitHub’s deployment environment. This ensures:</p>

<ul>
  <li><strong>Build consistency</strong> between local development and production</li>
  <li><strong>Zero deployment surprises</strong> when pushing to the <code class="language-plaintext highlighter-rouge">sources</code> branch</li>
  <li><strong>Automatic compatibility</strong> with GitHub Pages infrastructure</li>
</ul>

<p>Running <code class="language-plaintext highlighter-rouge">bundle exec jekyll doctor</code> confirms everything is healthy: ✅</p>

<h2 id="whats-next">What’s Next</h2>

<p>The site continues to evolve with:</p>
<ul>
  <li>Custom Bootstrap 5 integration (completed July 2025)</li>
  <li>Dark/light theme toggle with localStorage persistence</li>
  <li>Bootstrap Icons throughout the UI</li>
  <li>Automated CI/CD via GitHub Actions</li>
</ul>

<p>This blog serves as both a personal platform and a testing ground for modern Jekyll patterns. Looking forward to more experiments in 2026!</p>

<hr />

<p><em>Site built with Jekyll 3.10.0, deployed via GitHub Pages from the <code class="language-plaintext highlighter-rouge">sources</code> branch to <a href="https://simpleblog.makeboldspark.com">simpleblog.makeboldspark.com</a></em></p>]]></content><author><name>Mark Hazleton</name></author><category term="updates" /><category term="development" /><category term="jekyll" /><category term="github-pages" /><category term="ruby" /><category term="gem-updates" /><category term="2026" /><summary type="html"><![CDATA[Kicking off 2026 with a fresh round of dependency updates. Here's what's new in the Jekyll ecosystem and how the site is evolving.]]></summary></entry><entry><title type="html">I Asked AI to Go Full Chaos Mode and Accidentally Created the Most Beautiful Disaster in Web History</title><link href="https://simpleblog.makeboldspark.com/web-design/development/2025/07/24/unleashing-maximum-chaos-web-design.html" rel="alternate" type="text/html" title="I Asked AI to Go Full Chaos Mode and Accidentally Created the Most Beautiful Disaster in Web History" /><published>2025-07-24T20:30:00+00:00</published><updated>2025-07-24T20:30:00+00:00</updated><id>https://simpleblog.makeboldspark.com/web-design/development/2025/07/24/unleashing-maximum-chaos-web-design</id><content type="html" xml:base="https://simpleblog.makeboldspark.com/web-design/development/2025/07/24/unleashing-maximum-chaos-web-design.html"><![CDATA[<h2 id="the-day-i-broke-the-internet-in-the-most-spectacular-way-possible-">The Day I Broke the Internet (In the Most Spectacular Way Possible) 💥</h2>

<p>Friends, colleagues, fellow travelers of the information superhighway… gather ‘round and let me tell you a tale of <strong>digital mayhem</strong> that would make even the most seasoned <strong>GeoCities veteran</strong> weep tears of pure nostalgia.</p>

<p>It started innocently enough. I was looking at my perfectly respectable <strong>Jekyll blog</strong> - you know, the kind with <strong>Bootstrap 5</strong>, clean typography, sensible color schemes, and all those boring “best practices” that make websites actually <em>usable</em>.</p>

<p><strong>BORING.</strong> <!--more--></p>

<p>So I did what any rational <strong>software architect</strong> would do: I asked <strong>GitHub Copilot</strong> to “go full chaos and crazy” and show me what it could do.</p>

<p><em>Narrator: He was not prepared for what happened next.</em></p>

<blockquote>
  <p><strong>TL;DR:</strong> Asked AI for web design chaos, got a 90s nostalgia explosion with Matrix rain effects, rainbow animations, and a Konami code easter egg. The internet may never recover.</p>
</blockquote>

<h2 id="what-i-expected-vs-what-i-got-">What I Expected vs. What I Got 🎭</h2>

<p><strong>What I Expected:</strong> Maybe some fun <strong>CSS animations</strong>, perhaps a disco ball cursor, possibly some <strong>Comic Sans</strong> if we’re feeling really wild.</p>

<p><strong>What I Actually Got:</strong></p>
<ul>
  <li>🌈 <strong>RAINBOW TEXT THAT CYCLES THROUGH THE ENTIRE SPECTRUM</strong> (CSS keyframe animations)</li>
  <li>✨ <strong>Matrix rain effects cascading down the screen</strong> (Canvas API wizardry)</li>
  <li>🎪 <strong>Cards that rotate at jaunty angles like they’re having an existential crisis</strong> (CSS transforms)</li>
  <li>🚧 <strong>Under construction banners that shake with the fury of a thousand dial-up modems</strong> (CSS shake animations)</li>
  <li>💫 <strong>A visitor counter because apparently it’s 1995 again</strong> (localStorage + JavaScript)</li>
  <li>🎮 <strong>A KONAMI CODE EASTER EGG FOR ULTRA CHAOS MODE</strong> (Event listeners + chaos)</li>
  <li>📟 <strong>Marquee text scrolling like it’s breaking news from the future</strong> (CSS marquee revival)</li>
  <li>🌟 <strong>Blinking elements that would make an epilepsy warning jealous</strong> (CSS blink animations)</li>
</ul>

<blockquote>
  <p><strong>Pro Tip:</strong> This is what happens when you combine <strong>artificial intelligence</strong>, <strong>web development</strong>, and a complete disregard for <strong>user experience best practices</strong>.</p>
</blockquote>

<h2 id="the-technical-breakdown-or-how-to-traumatize-bootstrap-">The Technical Breakdown (Or: How to Traumatize Bootstrap) 🔧</h2>

<p>Let me walk you through some of the “highlights” of this digital fever dream:</p>

<h3 id="1-the-css-that-broke-css">1. The CSS That Broke CSS</h3>
<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">/* This is an actual line from the chaos stylesheet */</span>
<span class="k">@keyframes</span> <span class="n">rainbow</span> <span class="p">{</span>
  <span class="err">0</span><span class="o">%</span> <span class="p">{</span> <span class="nl">color</span><span class="p">:</span> <span class="m">#ff0000</span><span class="p">;</span> <span class="p">}</span>
  <span class="err">16</span><span class="o">%</span> <span class="p">{</span> <span class="nl">color</span><span class="p">:</span> <span class="m">#ff8000</span><span class="p">;</span> <span class="p">}</span>
  <span class="err">33</span><span class="o">%</span> <span class="p">{</span> <span class="nl">color</span><span class="p">:</span> <span class="m">#ffff00</span><span class="p">;</span> <span class="p">}</span>
  <span class="err">50</span><span class="o">%</span> <span class="p">{</span> <span class="nl">color</span><span class="p">:</span> <span class="m">#00ff00</span><span class="p">;</span> <span class="p">}</span>
  <span class="err">66</span><span class="o">%</span> <span class="p">{</span> <span class="nl">color</span><span class="p">:</span> <span class="m">#0080ff</span><span class="p">;</span> <span class="p">}</span>
  <span class="err">83</span><span class="o">%</span> <span class="p">{</span> <span class="nl">color</span><span class="p">:</span> <span class="m">#8000ff</span><span class="p">;</span> <span class="p">}</span>
  <span class="err">100</span><span class="o">%</span> <span class="p">{</span> <span class="nl">color</span><span class="p">:</span> <span class="m">#ff0000</span><span class="p">;</span> <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p>Yes, that’s right. Every single heading on my site now cycles through the colors of the rainbow like it’s auditioning for a Pride parade. The site title doesn’t just <em>display</em> text anymore - it <strong>PERFORMS</strong> it.</p>

<h3 id="2-the-matrix-has-you">2. The Matrix Has You</h3>
<p>The AI decided that my sophisticated blog needed a Matrix rain effect running continuously in the background. Because nothing says “professional software architect” quite like green text falling down your screen while you’re trying to read about cloud architecture patterns.</p>

<h3 id="3-the-visitor-counter-of-destiny">3. The Visitor Counter of Destiny</h3>
<p>Remember visitor counters? Those beautiful, spinning number displays that told you exactly how popular your Angelfire site was? Well, they’re BACK, baby! Complete with localStorage persistence and smooth number animations that would make a slot machine jealous.</p>

<h3 id="4-the-konami-code-easter-egg">4. The Konami Code Easter Egg</h3>
<p>Here’s where things get truly unhinged. The AI implemented a <strong>KONAMI CODE</strong> easter egg. That’s right - if you type ⬆️⬆️⬇️⬇️⬅️➡️⬅️➡️BA on my professional blog, it activates “ULTRA CHAOS MODE” which makes literally everything on the page rainbow-colored and bouncy.</p>

<p>I’m putting that on my resume.</p>

<h2 id="the-philosophy-of-digital-chaos-">The Philosophy of Digital Chaos 🧠</h2>

<p>But here’s the thing - as I watched my clean, professional blog transform into what can only be described as “a rave having a panic attack in a time machine,” I realized something profound:</p>

<p><strong>Sometimes you need chaos to appreciate order.</strong></p>

<p>In our world of Material Design guidelines, accessibility standards, and user experience best practices (all of which are genuinely important!), we sometimes forget that the web can be <strong>fun</strong>. Remember when websites had personality? When every site looked completely different? When someone’s personal homepage could assault your senses in seventeen different ways and you’d bookmark it anyway because it was <em>memorable</em>?</p>

<h2 id="the-reactions-so-far-">The Reactions So Far 😂</h2>

<ul>
  <li><strong>My wife:</strong> “Did… did your website just blink at me?”</li>
  <li><strong>Fellow developer:</strong> “This is either genius or a cry for help. Possibly both.”</li>
  <li><strong>My GitHub Copilot:</strong> <em>Continues suggesting rainbow animations for my production code</em></li>
  <li><strong>Web accessibility guidelines:</strong> <em>Sobbing quietly in the corner</em></li>
</ul>

<h2 id="lessons-learned-">Lessons Learned 📚</h2>

<ol>
  <li><strong>AI has no chill</strong> - When you ask for chaos, you get CHAOS</li>
  <li><strong>The 90s web aesthetic hits different</strong> - Nostalgia is a powerful drug</li>
  <li><strong>Sometimes the most ridiculous solution is the most memorable one</strong></li>
  <li><strong>My site now has more personality than most people I know</strong></li>
  <li><strong>I may have permanently broken my sense of what constitutes “good design”</strong></li>
</ol>

<h2 id="the-road-ahead-️">The Road Ahead 🛣️</h2>

<p>Am I going to keep this design? Probably not for my main professional site (my clients might stage an intervention). But you know what? This exercise reminded me why I fell in love with web development in the first place.</p>

<p>The web doesn’t have to be boring. Code doesn’t have to be serious all the time. Sometimes the best way to push boundaries is to completely ignore them and see what happens.</p>

<h2 id="try-it-yourself-">Try It Yourself! 🎪</h2>

<p>Want to experience the <strong>chaos</strong> firsthand? The <strong>Konami Code</strong> is waiting. Just remember:
⬆️⬆️⬇️⬇️⬅️➡️⬅️➡️BA</p>

<p><em>Warning: May cause spontaneous nostalgia, uncontrollable giggling, or the sudden urge to create your own GeoCities page.</em></p>

<h2 id="frequently-asked-questions-about-ai-powered-web-chaos-">Frequently Asked Questions About AI-Powered Web Chaos 🤖</h2>

<h3 id="q-is-this-actually-good-web-design">Q: Is this actually good web design?</h3>
<p><strong>A:</strong> Define “good.” If by “good” you mean “accessible, usable, and follows modern design principles,” then absolutely not. If by “good” you mean “memorable, entertaining, and likely to make people share screenshots,” then it’s a masterpiece.</p>

<h3 id="q-how-did-github-copilot-create-all-these-effects">Q: How did GitHub Copilot create all these effects?</h3>
<p><strong>A:</strong> I asked it to go “full chaos mode” and it delivered a complete CSS and JavaScript framework featuring Matrix rain effects, rainbow animations, visitor counters, and even a Konami code easter egg. The AI has no chill.</p>

<h3 id="q-can-i-use-this-code-for-my-professional-website">Q: Can I use this code for my professional website?</h3>
<p><strong>A:</strong> <em>Technically</em> yes. <em>Practically</em> your clients might stage an intervention. But hey, if you want to be memorable…</p>

<h3 id="q-what-technologies-were-used-in-this-chaos-experiment">Q: What technologies were used in this chaos experiment?</h3>
<p><strong>A:</strong> Jekyll static site generator, Bootstrap 5, custom CSS animations, Canvas API for Matrix effects, localStorage for visitor counting, and enough JavaScript to power a small carnival.</p>

<h3 id="q-how-does-this-affect-seo">Q: How does this affect SEO?</h3>
<p><strong>A:</strong> Surprisingly well! Unique content, engaging user experience (even if it’s chaotic), and plenty of social sharing potential. Search engines love memorable content.</p>

<h3 id="q-is-the-konami-code-really-functional">Q: Is the Konami Code really functional?</h3>
<p><strong>A:</strong> 100% functional! Try it: ⬆️⬆️⬇️⬇️⬅️➡️⬅️➡️BA. It activates “Ultra Chaos Mode” that makes everything rainbow and bouncy. I’m genuinely proud of this feature.</p>

<h3 id="q-will-you-keep-this-design-forever">Q: Will you keep this design forever?</h3>
<p><strong>A:</strong> Probably not for the main site (my professional reputation is hanging by a thread), but this experiment taught me valuable lessons about creativity, fun, and pushing boundaries in web development.</p>

<h2 id="related-topics-you-might-enjoy-">Related Topics You Might Enjoy 📚</h2>

<ul>
  <li><strong>AI-Assisted Web Development</strong>: How artificial intelligence is changing frontend development</li>
  <li><strong>90s Web Design Nostalgia</strong>: The return of retro web aesthetics</li>
  <li><strong>CSS Animation Techniques</strong>: Creating engaging web experiences</li>
  <li><strong>Jekyll Blog Optimization</strong>: Advanced tips for static site generators</li>
  <li><strong>Creative Coding Projects</strong>: When art meets programming</li>
  <li><strong>User Experience Experiments</strong>: Sometimes breaking the rules teaches us why they exist</li>
</ul>

<hr />

<p><strong>P.S.</strong> - If you’re a potential client reading this and wondering about my sanity: I promise I can still build sensible, accessible, performant websites. This was just my brain having a digital vacation.</p>

<p>But if you <em>want</em> your site to have Matrix rain effects and rainbow text… I know a guy. 😉</p>

<hr />

<p><em>This post was written while listening to dial-up modem sounds and staring at a lava lamp. The author is not responsible for any retinal damage caused by the site’s current visual state.</em></p>]]></content><author><name>Mark Hazleton</name></author><category term="web-design" /><category term="development" /><category term="ai" /><category term="web-design" /><category term="github-copilot" /><category term="css-animations" /><category term="jekyll" /><summary type="html"><![CDATA[What happens when you tell GitHub Copilot to 'go full chaos and crazy'? You get a glorious 90s nostalgia explosion mixed with Matrix effects and enough rainbow animations to power a small rave.]]></summary></entry><entry><title type="html">Switching to Bootstrap 5 on a Jekyll Site</title><link href="https://simpleblog.makeboldspark.com/updates/development/2025/07/24/bootstrap-5-theme-transformation.html" rel="alternate" type="text/html" title="Switching to Bootstrap 5 on a Jekyll Site" /><published>2025-07-24T10:00:00+00:00</published><updated>2025-07-24T10:00:00+00:00</updated><id>https://simpleblog.makeboldspark.com/updates/development/2025/07/24/bootstrap-5-theme-transformation</id><content type="html" xml:base="https://simpleblog.makeboldspark.com/updates/development/2025/07/24/bootstrap-5-theme-transformation.html"><![CDATA[<p>I swapped out the default Minima theme pipeline on this site for Bootstrap 5 loaded via CDN. Here’s what I did and why.</p>

<h2 id="the-problem-with-the-default-setup">The Problem with the Default Setup</h2>

<p>The out-of-the-box Jekyll/Minima setup uses a Sass pipeline to compile styles locally. It works, but it’s friction — every tweak to the theme means fighting the Sass compiler, understanding which variables Minima exposes, and hoping the github-pages gem version matches your local one.</p>

<p>For a simple personal blog, that’s more complexity than the job requires.</p>

<h2 id="what-i-switched-to">What I Switched To</h2>

<p>Bootstrap 5.3 via CDN, loaded directly in the <code class="language-plaintext highlighter-rouge">&lt;head&gt;</code>. No local compilation. No Sass imports. Just:</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;link</span> <span class="na">href=</span><span class="s">"https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css"</span> <span class="na">rel=</span><span class="s">"stylesheet"</span><span class="nt">&gt;</span>
<span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">"stylesheet"</span> <span class="na">href=</span><span class="s">"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"</span><span class="nt">&gt;</span>
</code></pre></div></div>

<p>Plus a small <code class="language-plaintext highlighter-rouge">style.css</code> for the handful of site-specific things Bootstrap doesn’t cover.</p>

<h2 id="darklight-mode">Dark/Light Mode</h2>

<p>Bootstrap 5.3 handles this natively with <code class="language-plaintext highlighter-rouge">data-bs-theme="dark"</code> on the <code class="language-plaintext highlighter-rouge">&lt;html&gt;</code> element. I added a toggle button to the header that reads from <code class="language-plaintext highlighter-rouge">localStorage</code> and respects the system preference on first visit:</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">savedTheme</span> <span class="o">=</span> <span class="nx">localStorage</span><span class="p">.</span><span class="nx">getItem</span><span class="p">(</span><span class="dl">'</span><span class="s1">theme</span><span class="dl">'</span><span class="p">);</span>
<span class="kd">const</span> <span class="nx">prefersDark</span> <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">matchMedia</span><span class="p">(</span><span class="dl">'</span><span class="s1">(prefers-color-scheme: dark)</span><span class="dl">'</span><span class="p">).</span><span class="nx">matches</span><span class="p">;</span>
<span class="kd">const</span> <span class="nx">theme</span> <span class="o">=</span> <span class="nx">savedTheme</span> <span class="o">||</span> <span class="p">(</span><span class="nx">prefersDark</span> <span class="p">?</span> <span class="dl">'</span><span class="s1">dark</span><span class="dl">'</span> <span class="p">:</span> <span class="dl">'</span><span class="s1">light</span><span class="dl">'</span><span class="p">);</span>
<span class="nb">document</span><span class="p">.</span><span class="nx">documentElement</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">(</span><span class="dl">'</span><span class="s1">data-bs-theme</span><span class="dl">'</span><span class="p">,</span> <span class="nx">theme</span><span class="p">);</span>
</code></pre></div></div>

<p>Works without any custom CSS. That’s the whole point.</p>

<h2 id="bootstrap-icons">Bootstrap Icons</h2>

<p>Replaced the emoji-based icons in the footer and nav with Bootstrap Icons. SVGs, consistent sizing, no font-loading surprises. The social links went from a mix of text and emoji to clean icon links that look the same in every browser.</p>

<h2 id="the-tradeoff">The Tradeoff</h2>

<p>CDN dependency means the icons and styles don’t load if the CDN is down. For a personal blog that’s an acceptable risk. If this were a production app with uptime requirements I’d bundle them — but it’s not, so I didn’t.</p>

<p>The github-pages gem still pins Jekyll to 3.10.0 and Sass to an old compiler. Bypassing the Sass pipeline entirely sidesteps that constraint cleanly.</p>]]></content><author><name>Mark Hazleton</name></author><category term="updates" /><category term="development" /><category term="bootstrap" /><category term="jekyll" /><category term="css" /><category term="dark-mode" /><category term="icons" /><summary type="html"><![CDATA[Dropped the default Minima Sass pipeline and swapped in Bootstrap 5 via CDN. Here's what changed and why it was the right call for a simple blog.]]></summary></entry><entry><title type="html">How I Got the Site Updates Working Again</title><link href="https://simpleblog.makeboldspark.com/updates/troubleshooting/2025/04/13/how-i-got-the-site-updates-working-again.html" rel="alternate" type="text/html" title="How I Got the Site Updates Working Again" /><published>2025-04-13T12:00:00+00:00</published><updated>2025-04-13T12:00:00+00:00</updated><id>https://simpleblog.makeboldspark.com/updates/troubleshooting/2025/04/13/how-i-got-the-site-updates-working-again</id><content type="html" xml:base="https://simpleblog.makeboldspark.com/updates/troubleshooting/2025/04/13/how-i-got-the-site-updates-working-again.html"><![CDATA[<p>After encountering some issues with my GitHub Pages site not updating properly, I decided to document the steps I took to resolve the problem. This post serves as a guide for anyone facing similar challenges.</p>

<h2 id="the-problem">The Problem</h2>

<p>When I pushed updates to my GitHub repository, the public site did not reflect the changes. Despite the GitHub Actions workflow running without errors, the site remained outdated. After some investigation, I identified two main issues:</p>

<ol>
  <li><strong>Platform Mismatch</strong>: The <code class="language-plaintext highlighter-rouge">Gemfile.lock</code> file did not include the <code class="language-plaintext highlighter-rouge">x86_64-linux</code> platform required by the GitHub Actions runner.</li>
  <li><strong>Ruby Version Incompatibility</strong>: The <code class="language-plaintext highlighter-rouge">activesupport-8.0.2</code> gem required Ruby version <code class="language-plaintext highlighter-rouge">&gt;= 3.2.0</code>, but the workflow was using Ruby <code class="language-plaintext highlighter-rouge">3.1.6</code>.</li>
</ol>

<h2 id="the-solution">The Solution</h2>

<p>Here are the steps I followed to fix the issues and get the site updates working again:</p>

<h3 id="step-1-add-the-required-platform">Step 1: Add the Required Platform</h3>

<p>The first step was to add the <code class="language-plaintext highlighter-rouge">x86_64-linux</code> platform to the <code class="language-plaintext highlighter-rouge">Gemfile.lock</code> file. I ran the following command locally:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>bundle lock <span class="nt">--add-platform</span> x86_64-linux
</code></pre></div></div>

<p>This ensured that the lockfile included the necessary platform for the GitHub Actions runner.</p>

<h3 id="step-2-update-the-ruby-version-in-the-workflow">Step 2: Update the Ruby Version in the Workflow</h3>

<p>Next, I updated the Ruby version in the GitHub Actions workflow to <code class="language-plaintext highlighter-rouge">3.2.0</code> to meet the requirements of the <code class="language-plaintext highlighter-rouge">activesupport-8.0.2</code> gem. Here’s the updated section of the workflow file:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Setup Ruby</span>
  <span class="na">uses</span><span class="pi">:</span> <span class="s">ruby/setup-ruby@v1</span>
  <span class="na">with</span><span class="pi">:</span>
    <span class="na">ruby-version</span><span class="pi">:</span> <span class="s1">'</span><span class="s">3.2'</span>
    <span class="na">bundler-cache</span><span class="pi">:</span> <span class="no">true</span>
</code></pre></div></div>

<h3 id="step-3-normalize-platforms-in-the-lockfile">Step 3: Normalize Platforms in the Lockfile</h3>

<p>To ensure compatibility across different environments, I normalized the platforms in the <code class="language-plaintext highlighter-rouge">Gemfile.lock</code> file by running:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>bundle lock <span class="nt">--normalize-platforms</span>
</code></pre></div></div>

<p>This step removed any discrepancies and ensured the lockfile was consistent.</p>

<h3 id="step-4-commit-and-push-changes">Step 4: Commit and Push Changes</h3>

<p>After making these changes, I committed the updated <code class="language-plaintext highlighter-rouge">Gemfile.lock</code> and workflow file to the repository:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git add Gemfile.lock .github/workflows/jekyll.yml
git commit <span class="nt">-m</span> <span class="s2">"Fix platform and Ruby version issues"</span>
git push
</code></pre></div></div>

<h3 id="step-5-re-run-the-workflow">Step 5: Re-run the Workflow</h3>

<p>Finally, I triggered the GitHub Actions workflow again. This time, the build and deployment completed successfully, and the site updates were reflected on the public site.</p>

<h2 id="lessons-learned">Lessons Learned</h2>

<ol>
  <li><strong>Keep Dependencies Updated</strong>: Regularly update your gems and ensure compatibility with the latest Ruby versions.</li>
  <li><strong>Test Locally</strong>: Always test your changes locally before pushing them to the repository.</li>
  <li><strong>Read Error Messages Carefully</strong>: The error messages provided by GitHub Actions were instrumental in diagnosing the issues.</li>
</ol>

<h2 id="conclusion">Conclusion</h2>

<p>By following these steps, I was able to resolve the issues and get my site updates working again. If you’re facing similar problems, I hope this guide helps you troubleshoot and fix them efficiently.</p>]]></content><author><name>Mark Hazleton</name></author><category term="updates" /><category term="troubleshooting" /><category term="github-actions" /><category term="ruby" /><category term="bundler" /><category term="github-pages" /><category term="troubleshooting" /><summary type="html"><![CDATA[Fixing GitHub Pages deployment issues caused by platform mismatches and Ruby version incompatibilities in GitHub Actions.]]></summary></entry><entry><title type="html">Using GitHub Copilot Agent Mode on a Jekyll Site</title><link href="https://simpleblog.makeboldspark.com/updates/development/2025/04/13/vibing-with-github-copilot-agent.html" rel="alternate" type="text/html" title="Using GitHub Copilot Agent Mode on a Jekyll Site" /><published>2025-04-13T10:00:00+00:00</published><updated>2025-04-13T10:00:00+00:00</updated><id>https://simpleblog.makeboldspark.com/updates/development/2025/04/13/vibing-with-github-copilot-agent</id><content type="html" xml:base="https://simpleblog.makeboldspark.com/updates/development/2025/04/13/vibing-with-github-copilot-agent.html"><![CDATA[<p>GitHub Copilot added an “agent mode” that can take a larger task description and work through multiple file edits in sequence, rather than just completing the current line. I used it to add a proper dark/light mode toggle to this site and it went better than I expected.</p>

<h2 id="what-i-asked-it-to-do">What I Asked It to Do</h2>

<p>The brief was simple: add a theme switcher that respects the system preference, lets the user override it, and persists the choice across page loads. It needed to touch the header template, the CSS, and write the JavaScript.</p>

<p>Normally that’s 20 minutes of work I’d do myself. I wanted to see how much of it Copilot would handle correctly without me steering.</p>

<h2 id="what-it-actually-did">What It Actually Did</h2>

<p>It proposed three changes in one go:</p>

<ol>
  <li>Added CSS custom properties for both light and dark themes under <code class="language-plaintext highlighter-rouge">[data-theme="dark"]</code> and <code class="language-plaintext highlighter-rouge">[data-theme="light"]</code> selectors</li>
  <li>Added a toggle button to the header with an aria-label</li>
  <li>Wrote the JavaScript to read <code class="language-plaintext highlighter-rouge">localStorage</code>, fall back to <code class="language-plaintext highlighter-rouge">prefers-color-scheme</code>, and set the attribute on <code class="language-plaintext highlighter-rouge">&lt;html&gt;</code></li>
</ol>

<p>The CSS variable approach was the right call — no class toggling, no duplicated rules. The JavaScript was clean. I made one change: it was setting the attribute on <code class="language-plaintext highlighter-rouge">&lt;body&gt;</code> and Bootstrap 5 wants it on <code class="language-plaintext highlighter-rouge">&lt;html&gt;</code> for <code class="language-plaintext highlighter-rouge">data-bs-theme</code> to work, so I moved that.</p>

<h2 id="where-it-needed-correction">Where It Needed Correction</h2>

<p>The theme switcher icon started as <code class="language-plaintext highlighter-rouge">🌙</code> hardcoded in the HTML. Copilot didn’t account for the initial state — if you loaded the page in light mode, you’d see a moon icon suggesting it was already dark. I had to point that out and it fixed the initialization logic.</p>

<p>It also initially used <code class="language-plaintext highlighter-rouge">document.body</code> instead of <code class="language-plaintext highlighter-rouge">document.documentElement</code>. Small thing, but the kind of thing you catch immediately if you know Bootstrap’s dark mode implementation.</p>

<h2 id="verdict">Verdict</h2>

<p>For a well-scoped task with a clear outcome, agent mode saves real time. It’s best when you know exactly what the answer should look like — then you’re just reviewing instead of writing. Where it struggles is anything that requires understanding your specific setup (in this case, which element Bootstrap 5 watches for theme attributes).</p>

<p>Useful tool. Doesn’t replace knowing what you’re doing.</p>]]></content><author><name>Mark Hazleton</name></author><category term="updates" /><category term="development" /><category term="github-copilot" /><category term="ai" /><category term="dark-mode" /><category term="css" /><category term="jekyll" /><summary type="html"><![CDATA[Tried GitHub Copilot's agent mode to add a dark/light theme toggle. It handled the CSS variables and JavaScript without much direction — here's what surprised me.]]></summary></entry><entry><title type="html">Running Jekyll Locally on Windows</title><link href="https://simpleblog.makeboldspark.com/updates/development/2024/12/24/end-of-year-update.html" rel="alternate" type="text/html" title="Running Jekyll Locally on Windows" /><published>2024-12-24T10:00:00+00:00</published><updated>2024-12-24T10:00:00+00:00</updated><id>https://simpleblog.makeboldspark.com/updates/development/2024/12/24/end-of-year-update</id><content type="html" xml:base="https://simpleblog.makeboldspark.com/updates/development/2024/12/24/end-of-year-update.html"><![CDATA[<p>Running Jekyll locally on Windows is one of those things that’s straightforward once you’ve done it, and mildly annoying the first time. Here’s the setup that works for me.</p>

<h2 id="what-you-need">What You Need</h2>

<ul>
  <li><a href="https://rubyinstaller.org/">RubyInstaller for Windows</a> — grab the <strong>Ruby+Devkit</strong> version (3.2.x x64). The Devkit matters; without it native gem extensions won’t compile.</li>
  <li>Bundler: <code class="language-plaintext highlighter-rouge">gem install bundler</code> after Ruby is installed</li>
  <li>VS Code with the <a href="https://marketplace.visualstudio.com/items?itemName=ginfuru.ginfuru-vscode-jekyll-syntax">Jekyll Snippets</a> extension if you want syntax highlighting for Liquid templates</li>
</ul>

<h2 id="the-wdm-gem">The wdm Gem</h2>

<p>On Windows you want the <code class="language-plaintext highlighter-rouge">wdm</code> gem — it lets Jekyll watch for file changes natively instead of polling. Without it <code class="language-plaintext highlighter-rouge">--livereload</code> is sluggish. The Gemfile already has it:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">platforms</span> <span class="ss">:mingw</span><span class="p">,</span> <span class="ss">:x64_mingw</span><span class="p">,</span> <span class="ss">:mswin</span> <span class="k">do</span>
  <span class="n">gem</span> <span class="s2">"wdm"</span><span class="p">,</span> <span class="s2">"~&gt; 0.1.1"</span>
<span class="k">end</span>
</code></pre></div></div>

<p>It only installs on Windows platforms, so it doesn’t affect GitHub Actions or anyone running on Mac/Linux.</p>

<h2 id="running-the-dev-server">Running the Dev Server</h2>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">bundle</span><span class="w"> </span><span class="nx">exec</span><span class="w"> </span><span class="nx">jekyll</span><span class="w"> </span><span class="nx">serve</span><span class="w"> </span><span class="nt">--livereload</span><span class="w">
</span></code></pre></div></div>

<p>That’s it. The site builds to <code class="language-plaintext highlighter-rouge">_site/</code> and reloads in the browser whenever you save a file. Default port is 4000.</p>

<p>A few flags worth knowing:</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Preview draft posts from _drafts/</span><span class="w">
</span><span class="n">bundle</span><span class="w"> </span><span class="nx">exec</span><span class="w"> </span><span class="nx">jekyll</span><span class="w"> </span><span class="nx">serve</span><span class="w"> </span><span class="nt">--livereload</span><span class="w"> </span><span class="nt">--drafts</span><span class="w">

</span><span class="c"># If something's broken and you want a clean build</span><span class="w">
</span><span class="n">bundle</span><span class="w"> </span><span class="nx">exec</span><span class="w"> </span><span class="nx">jekyll</span><span class="w"> </span><span class="nx">clean</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="nx">bundle</span><span class="w"> </span><span class="nx">exec</span><span class="w"> </span><span class="nx">jekyll</span><span class="w"> </span><span class="nx">serve</span><span class="w"> </span><span class="nt">--livereload</span><span class="w">
</span></code></pre></div></div>

<h2 id="the-gemfilelock-platform-issue">The Gemfile.lock Platform Issue</h2>

<p>If you develop on Windows and deploy via GitHub Actions (Linux), you’ll eventually hit this: the lockfile only has Windows platforms listed, and the Actions runner can’t resolve gems.</p>

<p>Fix it once and forget it:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>bundle lock <span class="nt">--add-platform</span> x86_64-linux
</code></pre></div></div>

<p>Commit the updated <code class="language-plaintext highlighter-rouge">Gemfile.lock</code>. Done. GitHub Actions will be happy.</p>

<h2 id="vs-code-setup">VS Code Setup</h2>

<p>Two things worth configuring:</p>

<ol>
  <li>Set the terminal to PowerShell (<code class="language-plaintext highlighter-rouge">terminal.integrated.defaultProfile.windows</code>) so <code class="language-plaintext highlighter-rouge">bundle exec</code> works without switching shells</li>
  <li>Add <code class="language-plaintext highlighter-rouge">_site/</code> and <code class="language-plaintext highlighter-rouge">.jekyll-cache/</code> to <code class="language-plaintext highlighter-rouge">.gitignore</code> if they aren’t already — no reason to commit build output</li>
</ol>]]></content><author><name>Mark Hazleton</name></author><category term="updates" /><category term="development" /><category term="jekyll" /><category term="windows" /><category term="visual-studio-code" /><category term="ruby" /><category term="troubleshooting" /><summary type="html"><![CDATA[Getting a Jekyll site running locally on Windows is not hard, but it's not obvious either. Here's the setup that actually works.]]></summary></entry><entry><title type="html">Still Here</title><link href="https://simpleblog.makeboldspark.com/updates/2022/08/04/checking-in-on-site.html" rel="alternate" type="text/html" title="Still Here" /><published>2022-08-04T00:26:16+00:00</published><updated>2022-08-04T00:26:16+00:00</updated><id>https://simpleblog.makeboldspark.com/updates/2022/08/04/checking-in-on-site</id><content type="html" xml:base="https://simpleblog.makeboldspark.com/updates/2022/08/04/checking-in-on-site.html"><![CDATA[<p>It’s been over a year since the last post. The site still builds. Jekyll still works. GitHub Pages is still free.</p>

<p>Not much to report beyond that — this is one of those “I just wanted to make sure I still know how this works” posts.
If you’re here, hello. More actual content eventually.</p>]]></content><author><name>Mark Hazleton</name></author><category term="updates" /><category term="jekyll" /><category term="github-pages" /><category term="site-update" /><summary type="html"><![CDATA[Checking in after a long gap. The site still works, Jekyll still builds, and I still have opinions about things.]]></summary></entry><entry><title type="html">Site Updates</title><link href="https://simpleblog.makeboldspark.com/jekyll/update/2021/06/16/site-updates.html" rel="alternate" type="text/html" title="Site Updates" /><published>2021-06-16T13:26:16+00:00</published><updated>2021-06-16T13:26:16+00:00</updated><id>https://simpleblog.makeboldspark.com/jekyll/update/2021/06/16/site-updates</id><content type="html" xml:base="https://simpleblog.makeboldspark.com/jekyll/update/2021/06/16/site-updates.html"><![CDATA[<p>Making some updates to the site as I learn more about jekyll and GitHub.io publishing</p>

<p>Learned to update my config.yml to exclude my published (doc) folder, that way Jekyll is not trying to build a site recursivly .</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>exclude:
  - Gemfile
  - Gemfile.lock
  - /docs/
  - /README.md
</code></pre></div></div>

<p>Also updated the config to include links to the published site</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># Site settings
title: Mark Hazleton
email: "" # Removed email
description: &gt;- # this means to ignore newlines until "baseurl:"
  Mark Hazleton on GitHub
baseurl: "/" # the subpath of your site, e.g. /blog
url: "https://markhazleton.github.io/" # the base hostname &amp; protocol for your site, e.g. http://example.com
author:
  name: Mark Hazleton
  email: "" # Removed email
</code></pre></div></div>

<p>Still need to pick how to automate the copy from my _sites folder to my docs folder that GitHub uses to publish updates to my site.</p>]]></content><author><name>Mark Hazleton</name></author><category term="jekyll" /><category term="update" /><category term="jekyll" /><category term="github-pages" /><category term="configuration" /><summary type="html"><![CDATA[Learning to configure Jekyll and GitHub.io publishing, including config.yml exclusions and build settings.]]></summary></entry></feed>