<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Articles on quobix</title>
    <link>https://quobix.com/articles/</link>
    <description>Recent content in Articles on quobix</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 20 Apr 2026 09:08:43 -0400</lastBuildDate>
    <atom:link href="https://quobix.com/articles/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>OpenAPI Doctor Spring 2026 Update</title>
      <link>https://quobix.com/articles/doctor-spring2026/</link>
      <pubDate>Mon, 20 Apr 2026 04:30:38 -0500</pubDate>
      <guid>https://quobix.com/articles/doctor-spring2026/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;Oh god, another article about OpenAPI. Please, quobix, &lt;em&gt;shut up&lt;/em&gt;.&amp;rdquo;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;No. I will not&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Until this problem is solved and I no longer need to think about OpenAPI tools and products, because OpenAPI has been&#xA;buried as a commodity… I will not shut up.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;tldr-whats-new&#34;&gt;TLDR; What&amp;rsquo;s new&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-diagramatron&#34;&gt;The Diagramatron&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#focused-view&#34;&gt;Focused View&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#openapi-doctor-github-app&#34;&gt;OpenAPI Doctor GitHub App&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#visual-bundler&#34;&gt;Visual Bundler&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#upgraded-explorer&#34;&gt;Upgraded Explorer&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#visual-task-system&#34;&gt;Visual Task System&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#themes-for-the-colorblind&#34;&gt;Themes for the Colorblind!&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#compare-two-openapi-specs&#34;&gt;Compare two OpenAPI Specs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;once-upon-a-time&#34;&gt;Once upon a time&lt;/h2&gt;&#xA;&lt;p&gt;In 2019, we were looking at this problem in detail because the company I worked at (&lt;a href=&#34;https://vmware.com&#34;&gt;VMware&lt;/a&gt;) was&#xA;drowning in piles of absolute dogshit APIs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>openapi-changes sucks</title>
      <link>https://quobix.com/articles/openapi-changes-sucks/</link>
      <pubDate>Sat, 18 Apr 2026 04:30:38 -0500</pubDate>
      <guid>https://quobix.com/articles/openapi-changes-sucks/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;“&lt;a href=&#34;https://github.com/pb33f/openapi-changes&#34;&gt;openapi-changes&lt;/a&gt; is a big pile of tangled shit, and I would avoid it for now. It works, but it’s janky-ass software.“&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;what-a-quote&#34;&gt;What a quote!&lt;/h2&gt;&#xA;&lt;p&gt;It’s not verbal bashing from a customer or a competitor - it’s &lt;strong&gt;my own&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;openapi-changes-sucks&#34;&gt;openapi-changes sucks&lt;/h2&gt;&#xA;&lt;p&gt;Hearing someone bash your baby, insult your labor of love, or crush your creativity is never easy. And quite frankly,&#xA;if we’re honest, it hurts.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;“Your work is bad, and you are not worthy.”&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automating screenshots with Claude Code</title>
      <link>https://quobix.com/articles/screenshots-with-claude-code/</link>
      <pubDate>Sun, 18 Jan 2026 04:30:38 -0500</pubDate>
      <guid>https://quobix.com/articles/screenshots-with-claude-code/</guid>
      <description>&lt;p&gt;Taking screenshots can be seamless in Claude Code with this &lt;strong&gt;simple automation&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-problem&#34;&gt;The problem&lt;/h2&gt;&#xA;&lt;p&gt;I take a lot of screenshots to show Claude just how &lt;strong&gt;far off the rails&lt;/strong&gt; it has run.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;It is &lt;strong&gt;slow and annoying&lt;/strong&gt; to drag and drop images into my terminals and clutter up my desktop with hundreds of screenshots.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;There is a simple way to &lt;strong&gt;automate taking screenshots and pasting them directly into my terminal&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenAPI 3.2 is here</title>
      <link>https://quobix.com/articles/openapi-3.2/</link>
      <pubDate>Tue, 23 Sep 2025 04:30:38 -0500</pubDate>
      <guid>https://quobix.com/articles/openapi-3.2/</guid>
      <description>&lt;h2 id=&#34;i-love-that-new-feature-smell&#34;&gt;I love that new feature smell&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;40,248&lt;/strong&gt; hours, or&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;1,677&lt;/strong&gt; days, or&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;55&lt;/strong&gt; months, or&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;4&lt;/strong&gt; years.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;That&amp;rsquo;s how long we had to wait between &lt;a href=&#34;https://spec.openapis.org/oas/v3.1.0.html&#34;&gt;OpenAPI 3.1&lt;/a&gt; and &lt;a href=&#34;https://spec.openapis.org/oas/v3.2.0.html&#34;&gt;OpenAPI 3.2&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Was it worth it?&lt;/em&gt; Let&amp;rsquo;s find out!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;upgraded-tags&#34;&gt;Upgraded tags&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;Tag&lt;/code&gt; object can now operate &lt;strong&gt;hierarchically&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;summary&lt;/code&gt; field to allow additional metadata to be supplied for a tag.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;parent&lt;/code&gt; field that points to the &lt;strong&gt;parent&lt;/strong&gt; tag.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;kind&lt;/code&gt; field that provides the ability to &lt;em&gt;categorize&lt;/em&gt; or &lt;em&gt;group&lt;/em&gt; tags.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;pb33f-attention-box type=&#34;info&#34;&gt;&#xA; &lt;p&gt;The &lt;code&gt;kind&lt;/code&gt; field is freeform, but really the goal is to establish a&#xA;&lt;a href=&#34;https://spec.openapis.org/registry/tag-kind/index.html&#34;&gt;registry&lt;/a&gt; of known types like &lt;strong&gt;nav&lt;/strong&gt; or &lt;strong&gt;badge&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>vacuum gets a facelift</title>
      <link>https://quobix.com/articles/vacuum-facelift/</link>
      <pubDate>Wed, 17 Sep 2025 03:30:38 -0500</pubDate>
      <guid>https://quobix.com/articles/vacuum-facelift/</guid>
      <description>&lt;h2 id=&#34;i-hate-this&#34;&gt;I hate this&lt;/h2&gt;&#xA;&lt;p&gt;Running the &lt;code&gt;lint&lt;/code&gt; command on &lt;a href=&#34;https://quobix.com/vacuum/&#34;&gt;vacuum&lt;/a&gt; would result in the same ugly mess spewed out of&#xA;my terminal; haphazard, uncoordinated, and higgledy-piggledy. Not to mention the quite awful &lt;code&gt;dashboard&lt;/code&gt; command would&#xA;frustrate the pants off anyone trying to depend on it.&lt;/p&gt;&#xA;&lt;p&gt;Sloppy and slapdash, it looked like &lt;strong&gt;AI had generated it&lt;/strong&gt;, except it &lt;em&gt;hadn&amp;rsquo;t&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I had generated it and created that &lt;strong&gt;mess&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Time to &lt;strong&gt;fix&lt;/strong&gt; that.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/yCXahKEcNXU?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;More specifically, time to fix the fact that vacuum&amp;rsquo;s terminal experience was built &lt;em&gt;without any design in mind&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Time Travel for OpenAPI</title>
      <link>https://quobix.com/articles/the-tardis/</link>
      <pubDate>Sat, 03 May 2025 03:30:38 -0500</pubDate>
      <guid>https://quobix.com/articles/the-tardis/</guid>
      <description>&lt;h2 id=&#34;doctor-who&#34;&gt;Doctor, Who?&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/The_Doctor&#34;&gt;The Doctor&lt;/a&gt; has always fascinated me as a character or concept.&#xA;They are a one-off, unique lifeform unlike any other in the universe, and each generation of the Doctor is also unique.&lt;/p&gt;&#xA;&lt;pb33f-attention-box type=&#34;info&#34;&gt;&#xA; &lt;p&gt;&lt;p&gt;The &lt;a href=&#34;https://pb33f.io/doctor/&#34;&gt;OpenAPI Doctor&lt;/a&gt; is named partially after my love of character, as well as because it&amp;rsquo;s a literal heath-check, testing, and monitoring&#xA;application for OpenAPI.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;FYI: I am not a fan of the current generation of Doctor Who.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenAPI is hard</title>
      <link>https://quobix.com/articles/openapi-is-hard/</link>
      <pubDate>Sat, 04 Jan 2025 03:30:38 -0500</pubDate>
      <guid>https://quobix.com/articles/openapi-is-hard/</guid>
      <description>&lt;h1 id=&#34;openapi-is-hard&#34;&gt;OpenAPI is hard&lt;/h1&gt;&#xA;&lt;p&gt;About three years ago, in early 2022, I was sitting at my desk at 6 a.m. with my head in my hands.&lt;/p&gt;&#xA;&lt;p&gt;I was absolutely sure it was going to work this time—I was sure I had nailed it. But alas, it turned out to be just another way to fail.&lt;/p&gt;&#xA;&lt;p&gt;The problem staring me in the face was the same one every engineer encounters early on when pursuing this mission:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introducing: The Doctor</title>
      <link>https://quobix.com/articles/introducing-the-doctor/</link>
      <pubDate>Sat, 26 Oct 2024 05:30:38 -0500</pubDate>
      <guid>https://quobix.com/articles/introducing-the-doctor/</guid>
      <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;the-reason-why-all-this-exists&#34;&gt;The reason why all this exists&lt;/h2&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/8B7kgL7YJgQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;As a massive fan of &lt;a href=&#34;https://en.wikipedia.org/wiki/Doctor_Who&#34;&gt;Doctor Who&lt;/a&gt;, a &amp;lsquo;Whovian&amp;rsquo; as we&amp;rsquo;re called, I had already picked the name for this product years ago.&#xA;I can&amp;rsquo;t think of a better name for what the &lt;a href=&#34;https://pb33f.io/doctor/&#34;&gt;Doctor&lt;/a&gt; does.&lt;/p&gt;&#xA;&lt;pb33f-attention-box type=&#34;info&#34;&gt;&#xA; &lt;p&gt;In the &lt;a href=&#34;https://pb33f.io/doctor/&#34;&gt;Doctor&lt;/a&gt; Who universe, The &lt;a href=&#34;https://pb33f.io/doctor/&#34;&gt;Doctor&lt;/a&gt; is a time lord that travels the universe throughout all time and space, &lt;strong&gt;helping&lt;/strong&gt; people in need and &lt;strong&gt;standing up&lt;/strong&gt; for the little guy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introducing wiretap</title>
      <link>https://quobix.com/articles/introducing-wiretap/</link>
      <pubDate>Thu, 05 Oct 2023 03:19:38 -0500</pubDate>
      <guid>https://quobix.com/articles/introducing-wiretap/</guid>
      <description>&lt;p&gt;If you know nothing about OpenAPI or don&amp;rsquo;t care about developer experience, engineering tools, or APIs, I&amp;rsquo;d skip this&#xA;article as It will &lt;strong&gt;&lt;em&gt;bore the shit out of you&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Now, if you &lt;strong&gt;do care&lt;/strong&gt; about sexy productivity tools for developers, then read on. I have something to share with you.&lt;/p&gt;&#xA;&lt;p&gt;But before I do, let me ask you three questions:&lt;/p&gt;&#xA;&lt;pb33f-attention-box type=&#34;question&#34; headerText=&#34;Can you answer yes to these questions?&#34;&gt;&#xA;  &lt;p&gt;&lt;p&gt;&lt;strong&gt;Question 1:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Do you &lt;strong&gt;&lt;em&gt;know&lt;/em&gt;&lt;/strong&gt; if your UI/client sends the &lt;strong&gt;&lt;em&gt;correct&lt;/em&gt;&lt;/strong&gt; data to your backend/API?&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Question 2:&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introducing openapi-changes</title>
      <link>https://quobix.com/articles/introducing-openapi-changes/</link>
      <pubDate>Wed, 04 Oct 2023 08:19:38 -0500</pubDate>
      <guid>https://quobix.com/articles/introducing-openapi-changes/</guid>
      <description>&lt;p&gt;You&amp;rsquo;re probably thinking, &lt;strong&gt;&lt;em&gt;&amp;ldquo;wow what a boring name&amp;rdquo;&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I know it&amp;rsquo;s boring. It&amp;rsquo;s also the best thing I could come up with.&lt;/p&gt;&#xA;&lt;p&gt;All the other tools with similar functionality (but nowhere near as sexy) had already taken all the variations I could come up with.&lt;/p&gt;&#xA;&lt;p&gt;So, I named it &lt;em&gt;literally&lt;/em&gt;. Boring, but &lt;strong&gt;practical&lt;/strong&gt;! Like a minivan.&lt;/p&gt;&#xA;&lt;pb33f-attention-box type=&#34;success&#34;&gt;Except this minivan has a &lt;strong&gt;bar&lt;/strong&gt; and a &lt;strong&gt;disco&lt;/strong&gt; inside it, with room for &lt;strong&gt;100&lt;/strong&gt; of your friends.&lt;/pb33f-attention-box&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;so-what-is-it&#34;&gt;So what is it?&lt;/h2&gt;&#xA;&lt;p&gt;A new tool from &lt;a href=&#34;https://pb33f.io&#34;&gt;pb33f&lt;/a&gt; that I created. Essentially, it&amp;rsquo;s a &lt;strong&gt;time machine&lt;/strong&gt; that allows you to&#xA;discover what has changed between two versions of an OpenAPI contract.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to check your API is compliant with an OpenAPI specification</title>
      <link>https://quobix.com/articles/openapi-compliance-testing/</link>
      <pubDate>Wed, 04 Oct 2023 05:19:38 -0500</pubDate>
      <guid>https://quobix.com/articles/openapi-compliance-testing/</guid>
      <description>&lt;p&gt;This is a walkthrough of how you can check the compliance of an OpenAPI specification against a client (like a UI, CLI, or SDK) and server or actual API endpoint.&lt;/p&gt;&#xA;&lt;p&gt;We will use an application called &lt;a href=&#34;https://pb33f.io/wiretap/&#34;&gt;wiretap&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;watch-the-video&#34;&gt;Watch the video&lt;/h2&gt;&#xA;&lt;p&gt;This video will walk you through the steps of checking the compliance of an OpenAPI specification against a client and server.&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/njlnguiS-LA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-is-wiretap&#34;&gt;What is wiretap?&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pb33f.io/wiretap/&#34;&gt;wiretap&lt;/a&gt; is an API compliance testing tool that allows us to &lt;strong&gt;&amp;rsquo;tap-into&amp;rsquo;&lt;/strong&gt; requests and responses between clients and servers and validate that those requests and responses comply with the OpenAPI specification defined.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to check for breaking changes in an OpenAPI specification</title>
      <link>https://quobix.com/articles/openapi-changes-walkthrough/</link>
      <pubDate>Tue, 03 Oct 2023 03:19:38 -0500</pubDate>
      <guid>https://quobix.com/articles/openapi-changes-walkthrough/</guid>
      <description>&lt;p&gt;I assume you&amp;rsquo;re trying to compare an original and an updated spec or want to check a single spec against a previous commit in a Git repo.&lt;/p&gt;&#xA;&lt;p&gt;We will use an application called &lt;a href=&#34;https://pb33f.io/openapi-changes/&#34;&gt;openapi-changes&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;watch-the-video&#34;&gt;Watch the video&lt;/h2&gt;&#xA;&lt;p&gt;This video will walk you through how to use &lt;a href=&#34;https://pb33f.io/openapi-changes/&#34;&gt;openapi-changes&lt;/a&gt; and will showcase all&#xA;the available commands and how to use them.&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/sNalT1RIF4w?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-is-openapi-changes&#34;&gt;What is openapi-changes?&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pb33f.io/openapi-changes/&#34;&gt;openapi-changes&lt;/a&gt; is the world&amp;rsquo;s sexiest OpenAPI breaking change detector.&#xA;It allows you to compare two OpenAPI specifications and see what changed. It&amp;rsquo;s like &lt;code&gt;git diff&lt;/code&gt; for OpenAPI (but way, way sexier)&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to get nothing done</title>
      <link>https://quobix.com/articles/how-to-get-nothing-done/</link>
      <pubDate>Wed, 09 Aug 2023 05:30:38 -0500</pubDate>
      <guid>https://quobix.com/articles/how-to-get-nothing-done/</guid>
      <description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;a-day-in-the-life&#34;&gt;A day in the life&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Finally&lt;/em&gt;&lt;/strong&gt;, I have a clear afternoon!&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s time to get some actual work done, &lt;em&gt;finally&lt;/em&gt;! I&amp;rsquo;m excited about coding and being productive for a change.&lt;/p&gt;&#xA;&lt;p&gt;My brain is engaged. I am in the zone and in a state of flow. I can see the matrix.&lt;/p&gt;&#xA;&lt;p&gt;My phone buzzes in my pocket 30 minutes into my session.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s a Slack message.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Immediately my entire train of thought is interrupted, like a record needle scratching across an in-motion record.&#xA;It feels like an &lt;strong&gt;electric bolt&lt;/strong&gt; of annoyance surging through my whole body.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rise of the builder</title>
      <link>https://quobix.com/articles/rise-of-the-builder/</link>
      <pubDate>Fri, 24 Feb 2023 11:17:41 -0500</pubDate>
      <guid>https://quobix.com/articles/rise-of-the-builder/</guid>
      <description>&lt;p&gt;As we knew it, the world stopped operating according to standard operating procedures in 2016.&lt;/p&gt;&#xA;&lt;p&gt;And then, suddenly, it came to a &lt;strong&gt;complete halt&lt;/strong&gt; in 2020.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-happened-in-2016&#34;&gt;What happened in 2016?&lt;/h2&gt;&#xA;&lt;p&gt;We reached a boiling point in the west driven by the &lt;strong&gt;&lt;em&gt;extreme left and right politics&lt;/em&gt;&lt;/strong&gt; that dominated media outlets,&#xA;mainly social media, and &lt;strong&gt;terrible&lt;/strong&gt; cable news networks like &lt;a href=&#34;https://www.foxnews.com&#34;&gt;Fox News&lt;/a&gt; and &lt;a href=&#34;https://www.cnn.com&#34;&gt;CNN&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The outcome led to events like &lt;a href=&#34;https://en.wikipedia.org/wiki/Brexit&#34;&gt;Brexit&lt;/a&gt; and the&#xA;&lt;a href=&#34;https://www.justice.gov/usao-dc/24-months-january-6-attack-capitol&#34;&gt;January 6th Capitol Attack&lt;/a&gt; — a &lt;strong&gt;pivotal point in history&lt;/strong&gt;&#xA;for the modern world.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to give a better demo</title>
      <link>https://quobix.com/articles/demo-tips/</link>
      <pubDate>Wed, 15 Feb 2023 05:19:38 -0500</pubDate>
      <guid>https://quobix.com/articles/demo-tips/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re looking to level up your skills as a software engineer, &lt;strong&gt;one thing&lt;/strong&gt; you need to pay attention to is the&#xA;importance of giving a &lt;em&gt;great&lt;/em&gt; demonstration of new features or code that you&amp;rsquo;ve created.&lt;/p&gt;&#xA;&lt;p&gt;If you prefer a video format, you can &lt;a href=&#34;https://www.youtube.com/watch?v=MyLdT-joADc&#34;&gt;watch the video version of this article on YouTube&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/MyLdT-joADc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;it-boils-down-to-one-thing&#34;&gt;It boils down to one thing&lt;/h2&gt;&#xA;&lt;p&gt;There&amp;rsquo;s a &lt;strong&gt;single&lt;/strong&gt; overarching guiding principle that brings all the following advice together.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Parsing OpenAPI files using go</title>
      <link>https://quobix.com/articles/parsing-openapi-using-go/</link>
      <pubDate>Tue, 13 Dec 2022 15:54:43 -0500</pubDate>
      <guid>https://quobix.com/articles/parsing-openapi-using-go/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;Updated Jun 24th 2024&lt;/em&gt;: The API for iterating over maps in &lt;code&gt;libopenapi&lt;/code&gt; was changed in &lt;code&gt;v0.14&lt;/code&gt; to use ordered&#xA;maps, instead of regular maps. This change was made to ensure that the order of items in the map is preserved when&#xA;rendering back out the OpenAPI specification. A few folks reported issues with this blog &lt;a href=&#34;https://github.com/pb33f/libopenapi/issues/263&#34;&gt;here&lt;/a&gt;&#xA;and &lt;a href=&#34;https://github.com/pb33f/libopenapi/issues/304&#34;&gt;here&lt;/a&gt;. So I updated the code in this blog to reflect those changes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Updated Sept 22nd 2025&lt;/em&gt;: In &lt;code&gt;v0.28+&lt;/code&gt; []error is no longer returned at the high level interfaces&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introducing vacuum</title>
      <link>https://quobix.com/articles/introducing-vacuum/</link>
      <pubDate>Mon, 25 Jul 2022 06:46:55 -0500</pubDate>
      <guid>https://quobix.com/articles/introducing-vacuum/</guid>
      <description>&lt;p&gt;I want to take you back to the fizzy and exciting times of 2016.&lt;/p&gt;&#xA;&lt;p&gt;I had just exited the &lt;a href=&#34;https://quobix.com/articles/marvin/&#34;&gt;M.A.R.V.I.N project&lt;/a&gt; at VMware and was a &lt;em&gt;little lost&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I had &lt;strong&gt;no mission&lt;/strong&gt; and &lt;strong&gt;no goals&lt;/strong&gt;. I was floating in the ether, looking for gaps, holes, anything that I could&#xA;fill up with and hide for a while so that I could collect my thoughts.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;a-stranger-with-a-smile&#34;&gt;A stranger with a smile&lt;/h2&gt;&#xA;&lt;p&gt;One afternoon in February or March, a gentleman named &lt;em&gt;Akmal Khan&lt;/em&gt; approached me. Akmal has over 40 years of engineering&#xA;and leadership experience.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to beat Impostor Syndrome</title>
      <link>https://quobix.com/articles/impostor-syndrome/</link>
      <pubDate>Tue, 08 Mar 2022 10:46:55 -0500</pubDate>
      <guid>https://quobix.com/articles/impostor-syndrome/</guid>
      <description>&lt;h2 id=&#34;ah-we-meet-again-my-old-friend&#34;&gt;Ah, we meet again, my old friend.&lt;/h2&gt;&#xA;&lt;p&gt;After recently &lt;strong&gt;&lt;a href=&#34;https://quobix.com/articles/hello-splunk/&#34;&gt;joining Splunk&lt;/a&gt;&lt;/strong&gt;, I got to experience a bit of an &lt;em&gt;old nemesis&lt;/em&gt;&#xA;of mine after being bombarded by firehoses of new data and information. It&amp;rsquo;s been a &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt; since I felt it,&#xA;but it&amp;rsquo;s &lt;strong&gt;no less awful&lt;/strong&gt; than I remember.&lt;/p&gt;&#xA;&lt;p&gt;Over the years, I&amp;rsquo;ve learned how to &lt;strong&gt;re-orient my thinking&lt;/strong&gt; when that &lt;em&gt;feeling&lt;/em&gt; appears.&#xA;This article describes how I deal with it and some techniques that might be helpful to you.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hello, Splunk!</title>
      <link>https://quobix.com/articles/hello-splunk/</link>
      <pubDate>Mon, 07 Feb 2022 14:19:38 -0500</pubDate>
      <guid>https://quobix.com/articles/hello-splunk/</guid>
      <description>&lt;h2 id=&#34;a-distinguished-engineer&#34;&gt;A distinguished engineer&lt;/h2&gt;&#xA;&lt;p&gt;Today I started a brand new role at &lt;a href=&#34;https://www.splunk.com&#34;&gt;Splunk&lt;/a&gt;. I&amp;rsquo;ve joined as &lt;strong&gt;Distinguished Engineer&lt;/strong&gt; in the &lt;strong&gt;&lt;em&gt;Security&lt;/em&gt;&lt;/strong&gt; group as UI Architect of SaaS Applications.&lt;/p&gt;&#xA;&lt;p&gt;In 1997 I founded &lt;strong&gt;hack-net.com&lt;/strong&gt; (don&amp;rsquo;t visit the site). It was one of the most significant security-related websites on the internet for a while. We used to get millions of visitors a week and had 20+ contributors on the platform.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-happened-to-it&#34;&gt;What happened to it?&lt;/h2&gt;&#xA;&lt;p&gt;Music, Girls, and Alcohol got in the way. Like a fool, I closed it down in 2002.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to build a React based pub-sub client using WebSockets and JavaScript</title>
      <link>https://quobix.com/articles/react-pubsub-websockets/</link>
      <pubDate>Mon, 24 Jan 2022 09:14:17 -0500</pubDate>
      <guid>https://quobix.com/articles/react-pubsub-websockets/</guid>
      <description>&lt;h2 id=&#34;watch-the-video&#34;&gt;Watch the video&lt;/h2&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/JkxsTLZIofY?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;This is quick tutorial to help you understand the basic mechanics of how &lt;strong&gt;Pub-Sub&lt;/strong&gt; works and how you can call an asynchronous API from a browser using JavaScript, &lt;a href=&#34;https://stomp.github.io/&#34;&gt;STOMP&lt;/a&gt;, and &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API&#34;&gt;WebSockets&lt;/a&gt;. We&amp;rsquo;re going to build a simple&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re not familiar with &lt;a href=&#34;https://stomp.github.io/&#34;&gt;STOMP&lt;/a&gt;, it stands for (&lt;strong&gt;&lt;em&gt;S&lt;/em&gt;&lt;/strong&gt;)imple (&lt;strong&gt;&lt;em&gt;T&lt;/em&gt;&lt;/strong&gt;)ext (&lt;strong&gt;&lt;em&gt;O&lt;/em&gt;&lt;/strong&gt;)riented (&lt;strong&gt;&lt;em&gt;M&lt;/em&gt;&lt;/strong&gt;)essaging (&lt;strong&gt;&lt;em&gt;P&lt;/em&gt;&lt;/strong&gt;)rotocol. It&amp;rsquo;s a straightforward but stable protocol that makes interacting with a message or event-based APIs a breeze.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Thank you, VMware.</title>
      <link>https://quobix.com/articles/thanks-vmware/</link>
      <pubDate>Mon, 17 Jan 2022 08:06:56 -0500</pubDate>
      <guid>https://quobix.com/articles/thanks-vmware/</guid>
      <description>&lt;p&gt;This is my story about the most incredible time I had at VMware. I want to tell you about the most valuable experience I had; it&amp;rsquo;s the one thing that I can &lt;strong&gt;never&lt;/strong&gt; thank VMware &lt;em&gt;enough&lt;/em&gt; for.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;a-bumpy-arrival&#34;&gt;A bumpy arrival&lt;/h2&gt;&#xA;&lt;p&gt;In early 2012, I was the CTO of a failing start-up that I co-founded. Money had dried up; I had to let go of everything.&lt;/p&gt;&#xA;&lt;p&gt;I had recently emigrated to the USA from the UK, and my (ex) wife was divorcing me because she had fallen in love with another man she had met while I was trying to build a business.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to create a streaming AsyncAPI microservice using golang.</title>
      <link>https://quobix.com/articles/asyncapi-streaming-using-golang/</link>
      <pubDate>Tue, 21 Dec 2021 13:07:35 -0400</pubDate>
      <guid>https://quobix.com/articles/asyncapi-streaming-using-golang/</guid>
      <description>&lt;h2 id=&#34;watch-the-video&#34;&gt;Watch the video&lt;/h2&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/TnxSlopBYgk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;If you want to learn more about AsyncAPI, head over to &lt;a href=&#34;https://asyncapi.com&#34;&gt;AsyncAPI.com&lt;/a&gt; and find out more about the standard and the power it provides us.&lt;/p&gt;&#xA;&lt;p&gt;Moving forward, I will &lt;em&gt;assume&lt;/em&gt; that you already know what AsyncAPI is and &lt;strong&gt;&lt;em&gt;want to use it in your golang applications&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to create an event-driven API via AsyncAPI using golang.</title>
      <link>https://quobix.com/articles/asyncapi-pubsub-using-golang/</link>
      <pubDate>Thu, 16 Dec 2021 13:07:35 -0400</pubDate>
      <guid>https://quobix.com/articles/asyncapi-pubsub-using-golang/</guid>
      <description>&lt;h2 id=&#34;watch-the-video&#34;&gt;Watch the video&lt;/h2&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/NawZ-lCTl70?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;If you want to learn more about AsyncAPI, head over to &lt;a href=&#34;https://asyncapi.com&#34;&gt;AsyncAPI.com&lt;/a&gt; and find out more about the standard and the power it provides us.&lt;/p&gt;&#xA;&lt;p&gt;Moving forward, I will &lt;em&gt;assume&lt;/em&gt; that you already know what AsyncAPI is and &lt;strong&gt;&lt;em&gt;want to use it in your golang applications&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>M.A.R.V.I.N</title>
      <link>https://quobix.com/articles/marvin/</link>
      <pubDate>Tue, 09 Nov 2021 09:17:42 -0400</pubDate>
      <guid>https://quobix.com/articles/marvin/</guid>
      <description>&lt;p&gt;It was February 2013, and I had just moved to San Francisco. I had been working for VMware for around eight months.&lt;/p&gt;&#xA;&lt;p&gt;I was excited to be working (finally) in Silicon Valley; A dream of mine since childhood.&lt;/p&gt;&#xA;&lt;p&gt;One wintery afternoon, &lt;a href=&#34;https://www.linkedin.com/in/mornay-van-der-walt&#34;&gt;Mornay Van Der Walt&lt;/a&gt; Called me into his office. He asked me&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;Do you think we could build a prototype that installs and configures an entire SDDC in a hyper-converged infrastructure appliance format and do it in&#xA;&lt;strong&gt;&lt;em&gt;under 15 Minutes&lt;/em&gt;&lt;/strong&gt;&amp;rdquo;?&lt;/p&gt;</description>
    </item>
    <item>
      <title>TrashBox, Engineering a solution to memory loss.</title>
      <link>https://quobix.com/articles/trashbox/</link>
      <pubDate>Thu, 30 Sep 2021 15:23:07 -0400</pubDate>
      <guid>https://quobix.com/articles/trashbox/</guid>
      <description>&lt;p&gt;&amp;ldquo;&lt;strong&gt;&lt;em&gt;Dammit, why am I unable to get this under control!&lt;/em&gt;&lt;/strong&gt;&amp;rdquo; I thought to myself as I ran, dragging two weeks worth of hot, stinking garbage toward the collection truck that was just about to drive past my house &lt;strong&gt;again&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s late August in Virginia in 2017, which &lt;em&gt;isn&amp;rsquo;t great&lt;/em&gt; for storing garbage outside your house. My wife is newly pregnant and understandably losing her patience with me.&lt;/p&gt;&#xA;&lt;p&gt;Hot and annoyed at myself, I reach for my pocket &lt;em&gt;(and remember I&amp;rsquo;m still in my underpants)&lt;/em&gt;, &lt;strong&gt;suddenly it dawns on me&lt;/strong&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>What is Experience Engineering?</title>
      <link>https://quobix.com/articles/experience-engineering/</link>
      <pubDate>Sun, 26 Sep 2021 13:07:35 -0400</pubDate>
      <guid>https://quobix.com/articles/experience-engineering/</guid>
      <description>&lt;p&gt;OK, so I know I just said that it&amp;rsquo;s an actual term. It&amp;rsquo;s a term that I&amp;rsquo;ve &lt;em&gt;kind of&lt;/em&gt; made up. It is, however, composed of real things that all revolve around designing&#xA;and building &lt;strong&gt;experiences&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;more-than-just-user-interface&#34;&gt;More than just user interface&lt;/h3&gt;&#xA;&lt;p&gt;It&amp;rsquo;s easy to default to &amp;ldquo;&lt;em&gt;&amp;hellip;oh you mean UI, right?&lt;/em&gt;&amp;rdquo; when talking about engineering experiences.&lt;/p&gt;&#xA;&lt;p&gt;The reality, however, is the term &amp;lsquo;UI&amp;rsquo; means &lt;strong&gt;more&lt;/strong&gt; than a browser-based application. UI goes &lt;em&gt;way beyond&lt;/em&gt; that. &amp;lsquo;UI&amp;rsquo; could be a reference to one of the following:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
