<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Marián Hollý on polyglot developer [mh]</title><link>https://marianholly.com/</link><description>Recent content in Marián Hollý on polyglot developer [mh]</description><generator>Hugo</generator><language>en-US</language><atom:link href="https://marianholly.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Playing With This Site</title><link>https://marianholly.com/posts/playing-with-this-site/</link><pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate><guid>https://marianholly.com/posts/playing-with-this-site/</guid><description>This site has more going on than a blog has any right to. Easter eggs, fake ops dashboards, CTF flags, honeypots, and a Konami code. Here&amp;rsquo;s everything you can poke at.</description></item><item><title>How This Blog Is Built</title><link>https://marianholly.com/posts/how-this-blog-is-built/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>https://marianholly.com/posts/how-this-blog-is-built/</guid><description>Hugo, self-hosted fonts, a strict CSP, and GitHub Actions. No Node in the build pipeline. No analytics. No external dependencies.</description></item><item><title>This Blog</title><link>https://marianholly.com/projects/this-blog/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>https://marianholly.com/projects/this-blog/</guid><description>Built from scratch with Hugo, no imported theme. Self-hosted Inter and JetBrains Mono, Gruvbox palette, strict CSP, deployed via GitHub Actions.</description></item><item><title>Elevated Build Latency</title><link>https://marianholly.com/incidents/elevated-build-latency/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://marianholly.com/incidents/elevated-build-latency/</guid><description>&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;Build time increased from 12 seconds to 47 seconds after adding SCSS compilation for three new component files. The deployment pipeline completed successfully but exceeded the informal 30-second threshold.&lt;/p&gt;
&lt;h2 id="impact"&gt;Impact&lt;/h2&gt;
&lt;p&gt;Zero users were affected. The site was never unavailable. The only observable effect was that the GitHub Actions job took longer to complete, which delayed the green checkmark on the commit by approximately 35 seconds.&lt;/p&gt;
&lt;h2 id="timeline"&gt;Timeline&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;14:22 UTC&lt;/strong&gt; — Commit pushed adding &lt;code&gt;_components.scss&lt;/code&gt; partials for status page, encrypted content, and redacted text shortcode&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14:23 UTC&lt;/strong&gt; — Build started. Hugo compilation took 47 seconds (previous baseline: 12 seconds)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14:24 UTC&lt;/strong&gt; — Build completed successfully. No errors&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14:31 UTC&lt;/strong&gt; — Author noticed the longer build time while checking the Actions tab&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14:32 UTC&lt;/strong&gt; — Root cause identified&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="root-cause"&gt;Root Cause&lt;/h2&gt;
&lt;p&gt;Hugo&amp;rsquo;s SCSS pipeline recompiled all partials when new &lt;code&gt;@import&lt;/code&gt; statements were added to &lt;code&gt;main.scss&lt;/code&gt;. The extended build time was caused by Dart Sass processing three new files with nested selectors and media queries. This is normal behavior, not a bug.&lt;/p&gt;</description></item><item><title>CSS Failed to Load on Production</title><link>https://marianholly.com/incidents/css-failed-to-load/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate><guid>https://marianholly.com/incidents/css-failed-to-load/</guid><description>&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;The production site served unstyled HTML for approximately 3 minutes after a deploy that changed the SCSS fingerprint hash. Browsers with cached CSS received a 404 for the old filename, and the new file was not yet available on the CDN edge.&lt;/p&gt;
&lt;h2 id="impact"&gt;Impact&lt;/h2&gt;
&lt;p&gt;Any visitor who loaded the site during the 3-minute window saw unstyled content. The HTML was fully functional — all links, navigation, and content worked correctly. The site looked like it was from 1996. Given the blog&amp;rsquo;s traffic volume, the number of affected users is estimated at zero, but cannot be proven.&lt;/p&gt;</description></item><item><title>CCNA Notes: Subnetting Without a Calculator</title><link>https://marianholly.com/posts/ccna-notes-subnetting-without-a-calculator/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://marianholly.com/posts/ccna-notes-subnetting-without-a-calculator/</guid><description>The method that finally made subnetting click — working through it by hand until it becomes automatic.</description></item><item><title>Proxmox VLAN Setup for a Homelab</title><link>https://marianholly.com/posts/proxmox-vlan-setup-for-a-homelab/</link><pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate><guid>https://marianholly.com/posts/proxmox-vlan-setup-for-a-homelab/</guid><description>How I segmented my homelab traffic into VLANs using Proxmox&amp;rsquo;s Linux bridge — management, services, IoT, and guest networks on a single NIC.</description></item><item><title>Typo in Published Post Title</title><link>https://marianholly.com/incidents/typo-in-post-title/</link><pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate><guid>https://marianholly.com/incidents/typo-in-post-title/</guid><description>&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;A blog post was published with the title &amp;ldquo;Setting Up My First Homelba&amp;rdquo; instead of &amp;ldquo;Setting Up My First Homelab&amp;rdquo;. The typo was live for 1 hour and 12 minutes before being corrected.&lt;/p&gt;
&lt;h2 id="impact"&gt;Impact&lt;/h2&gt;
&lt;p&gt;The post content was correct. Navigation, links, and SEO metadata all reflected the typo. The Open Graph title shared on social media would have displayed &amp;ldquo;Homelba&amp;rdquo; to anyone who shared the URL during the window. No shares were recorded during this period.&lt;/p&gt;</description></item><item><title>React Server Components: What Actually Changed</title><link>https://marianholly.com/posts/react-server-components-what-actually-changed/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><guid>https://marianholly.com/posts/react-server-components-what-actually-changed/</guid><description>RSC is not just a performance optimization. It changes how you think about the boundary between server and client in a React app.</description></item><item><title>Django vs FastAPI for Side Projects</title><link>https://marianholly.com/posts/django-vs-fastapi-for-side-projects/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate><guid>https://marianholly.com/posts/django-vs-fastapi-for-side-projects/</guid><description>After building side projects in both frameworks, here&amp;rsquo;s when I reach for Django and when FastAPI is the better tool.</description></item><item><title>Setting Up My First Homelab</title><link>https://marianholly.com/posts/setting-up-my-first-homelab/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><guid>https://marianholly.com/posts/setting-up-my-first-homelab/</guid><description>How I turned three old workstations into a Proxmox cluster — hardware choices, network setup, and the mistakes I made so you don&amp;rsquo;t have to.</description></item><item><title>Learning Go as a Python Developer</title><link>https://marianholly.com/posts/learning-go-as-a-python-developer/</link><pubDate>Mon, 05 Jan 2026 00:00:00 +0000</pubDate><guid>https://marianholly.com/posts/learning-go-as-a-python-developer/</guid><description>Notes from my first month writing Go after years of Python. What felt familiar, what didn&amp;rsquo;t, and the things I wish someone had told me earlier.</description></item><item><title>Dog Shelter Website</title><link>https://marianholly.com/projects/dog-shelter-website/</link><pubDate>Mon, 22 Dec 2025 00:00:00 +0000</pubDate><guid>https://marianholly.com/projects/dog-shelter-website/</guid><description>Website for Trenčianský útulok, a dog shelter in Trenčín, Slovakia. Filterable dog profiles, Decap CMS for non-technical staff, Cloudinary for image hosting. Real client project.</description></item><item><title>Letterboxd Stats</title><link>https://marianholly.com/projects/letterboxd-stats/</link><pubDate>Mon, 10 Nov 2025 00:00:00 +0000</pubDate><guid>https://marianholly.com/projects/letterboxd-stats/</guid><description>Detailed viewing statistics from a Letterboxd export — genre breakdowns, directors, decades, ratings distribution. Built as a data exploration tool.</description></item><item><title>$ runner</title><link>https://marianholly.com/game/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marianholly.com/game/</guid><description/></item><item><title>Infrastructure</title><link>https://marianholly.com/infrastructure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marianholly.com/infrastructure/</guid><description>&lt;pre tabindex="0"&gt;&lt;code&gt; ┌─────────────────────────────────────────────────────────┐
 │ GitHub Actions │
 │ │
 │ ┌─────────┐ ┌─────────┐ ┌────────┐ ┌────────┐ │
 │ │ Lint │──▶│ Build │──▶│ Test │──▶│ Deploy │ │
 │ │ │ │ │ │ │ │ │ │
 │ │validate │ │metadata │ │security│ │artifact│ │
 │ │ front- │ │ inject │ │ scan │ │ upload │ │
 │ │ matter │ │ Hugo │ │ link │ │ OIDC │ │
 │ │template │ │ compile │ │ check │ │ auth │ │
 │ │ metrics │ │ minify │ │ │ │ │ │
 │ └─────────┘ └─────────┘ └────────┘ └────┬───┘ │
 │ │ │
 └─────────────────────────────────────────────────┼──────┘
 │
 ┌──────────────┐ ┌──────────────┐ │
 │ Developer │ │ GitHub │ ▼
 │ Laptop │──────▶│ Repository │ ┌──────────────────────────┐
 │ │ git │ │ │ GitHub Pages CDN │
 │ Hugo 0.152 │ push │ main │ │ │
 │ Docker │ │ │ │ Static HTML/CSS/JS │
 │ Make │ │ │ │ Fingerprinted assets │
 │ .githooks │ │ │ │ SRI integrity hashes │
 └──────────────┘ └──────┬───────┘ └────────────┬─────────────┘
 │ │
 │ │ HTTPS
 ┌──────┴───────┐ │
 │ Dependabot │ ▼
 │ │ ┌──────────────────────────┐
 │ weekly │ │ End User │
 │ action │ │ │
 │ version │ │ Browser │
 │ updates │ │ CSP enforced │
 └──────────────┘ │ SRI verified │
 └──────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Legend:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Runbook</title><link>https://marianholly.com/runbook/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marianholly.com/runbook/</guid><description>&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;A web browser&lt;/li&gt;
&lt;li&gt;Hugo 0.152.2 extended (or Docker)&lt;/li&gt;
&lt;li&gt;The ability to cope with the responsibility of a zero-user system&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="deploy"&gt;Deploy&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Push to &lt;code&gt;main&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Wait 45 seconds.&lt;/li&gt;
&lt;li&gt;There is no step 3.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The pipeline runs automatically. Lint, build, test, deploy — in that order. If any stage fails, the deploy does not happen. Check the &lt;a href="https://github.com/marianholly/blog/actions"&gt;Actions tab&lt;/a&gt; for status.&lt;/p&gt;
&lt;h2 id="rollback"&gt;Rollback&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Run &lt;code&gt;git revert HEAD&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Push to &lt;code&gt;main&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Wait 45 seconds.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There is no &amp;ldquo;rollback button.&amp;rdquo; The site is always built from the latest commit on &lt;code&gt;main&lt;/code&gt;. To undo a deploy, undo the commit.&lt;/p&gt;</description></item><item><title>Security</title><link>https://marianholly.com/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://marianholly.com/security/</guid><description>&lt;h2 id="preservation-and-integrity"&gt;Preservation and Integrity&lt;/h2&gt;
&lt;p&gt;A work of this nature — built to endure, maintained with deliberate care — depends on structural soundness as much as content. Security is not an afterthought appended to the margins; it is woven into the material from the first line of code. CSP enforced. SRI on every asset. No external scripts. No databases. No moving parts that do not need to move.&lt;/p&gt;
&lt;p&gt;Even so, no structure is beyond scrutiny. If you have found an imperfection — a crack in the surface, a structural risk invisible from the outside — this is the appropriate place to bring it.&lt;/p&gt;</description></item></channel></rss>