<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://www.isaacbroyles.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.isaacbroyles.com/" rel="alternate" type="text/html" /><updated>2026-11-13T01:44:41+00:00</updated><id>https://www.isaacbroyles.com/feed.xml</id><title type="html">isaac broyles | home</title><subtitle>Isaac Broyles&apos; personal site featuring articles about Software Engineering</subtitle><author><name>Isaac Broyles</name></author><entry><title type="html">Art Links</title><link href="https://www.isaacbroyles.com/art-links" rel="alternate" type="text/html" title="Art Links" /><published>2022-06-12T20:18:16+00:00</published><updated>2022-06-12T22:20:46+00:00</updated><id>https://www.isaacbroyles.com/art-links</id><content type="html" xml:base="https://www.isaacbroyles.com/art-links"><![CDATA[<p>Here’s links to art resources I’ve found valuable.</p>

<!--more-->

<p>NOTE: Some of the links below may be affiliate links. Nevertheless, I don’t put affiliate links to things unless I’ve personally used/vetted them. Feel free to contact me if you have any questions.</p>

<h2 id="books">Books</h2>

<ul>
  <li>
    <p><a href="https://amzn.to/3xH5d72" target="\_blank">Figure Drawing for All It’s Worth - Andrew Loomis</a> - This has been my primary study material for figure drawing. I worked through this book page by page, redrawing many of the poses in here as per Loomis’ method. I feel like my figure drawing improved significantly after going through this book.</p>
  </li>
  <li>
    <p><a href="https://amzn.to/3zzeiA1" target="\_blank">Drawing on the Right Side of the Brain</a> - I have mixed feelings about this book, but I would still recommend it to very early beginners. It has some good lessons, but I personally felt like I needed to quickly move on from the lessons in this book.</p>
  </li>
</ul>

<h2 id="supplies">Supplies</h2>

<p>TBD</p>

<h2 id="online-resources">Online Resources</h2>

<ul>
  <li><a href="https://www.reddit.com/r/learnart/comments/dapk62/from_the_guy_who_made_the_most_comprehensive_list/" target="\_blank">RadioRunner’s Curriculum for the Solo Artist - Original Post</a> - RadioRunner compiled an awesome list of online resources a few years back, and posted it to Reddit. I’ve used this list as a hub to find some of the best resources for the topics I want to study. Strongly recommend going through it.</li>
  <li><a href="https://www.brendanmeachen.com/soloartist" target="\_blank">RadioRunner’s Curriciulum for the Solo Artist - Online Version</a> - The above hosted in web format, with clickable links.</li>
  <li><a href="https://croquis.cafe/" target="\_blank">Croquis Cafe</a> - Really helpful resource for quality poses.</li>
</ul>]]></content><author><name>Isaac Broyles</name></author><category term="art" /><category term="art" /><summary type="html"><![CDATA[Here’s links to art resources I’ve found valuable.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" /><media:content medium="image" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Building Unity with GitHub Actions</title><link href="https://www.isaacbroyles.com/gamedev/2020/07/04/unity-github-actions.html" rel="alternate" type="text/html" title="Building Unity with GitHub Actions" /><published>2021-07-31T21:19:22+00:00</published><updated>2021-07-31T21:19:22+00:00</updated><id>https://www.isaacbroyles.com/gamedev/2020/07/04/unity-github-actions</id><content type="html" xml:base="https://www.isaacbroyles.com/gamedev/2020/07/04/unity-github-actions.html"><![CDATA[<p>I recently began doing some work on a personal project in <a href="https://prf.hn/click/camref:1100ldaXB/destination:https://store.unity.com/products/unity-plus" target="\_blank">Unity Engine</a>. As with any of my projects, the first thing I set up is a working CI pipeline for it. I find doing this early reinforces best practices. I liked the option of using GitHub Actions, since it is a relatively small project. Here’s how I did it!</p>

<!--more-->

<h2 id="getting-started">Getting Started</h2>

<p>First, familiarize yourself with the community offerings for GitHub Actions - <a href="https://github.com/game-ci/unity-actions" target="\_blank">game-ci/unity-actions</a>. There’s a good overview here in the readme of the supported actions.</p>

<p>The other thing to check would be the official <a href="https://game.ci/docs/github/getting-started">game-ci getting starting docs</a>.</p>

<h2 id="setting-up-license">Setting up License</h2>

<p>The instructions in the official docs aren’t the most verbose, but it’s actually quite simple.</p>

<p>I’ll just go into a little more detail here to try to make things super clear.</p>

<h3 id="step-1---request-activation-file-on-github">Step 1 - Request Activation File on GitHub</h3>

<p>This is an action that is intended to be a one-time use. Its purpose is to create a “license request file” that will be needed for the next step. This is what will allow unity to run builds on the GitHub Actions servers.</p>

<p>The file should end up looking something like this:</p>

<p><code class="language-plaintext highlighter-rouge">.github/workflows/activation.yml:</code></p>

<!-- prettier-ignore-start -->

<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="na">name</span><span class="pi">:</span> <span class="s">Acquire activation file</span>
<span class="na">on</span><span class="pi">:</span>
  <span class="na">workflow_dispatch</span><span class="pi">:</span> <span class="pi">{}</span>
<span class="na">jobs</span><span class="pi">:</span>
  <span class="na">activation</span><span class="pi">:</span>
    <span class="na">name</span><span class="pi">:</span> <span class="s">Request manual activation file 🔑</span>
    <span class="na">runs-on</span><span class="pi">:</span> <span class="s">ubuntu-latest</span>
    <span class="na">steps</span><span class="pi">:</span>
      <span class="c1"># Request manual activation file</span>
      <span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Request manual activation file</span>
        <span class="na">id</span><span class="pi">:</span> <span class="s">getManualLicenseFile</span>
        <span class="na">uses</span><span class="pi">:</span> <span class="s">game-ci/unity-request-activation-file@v2</span>
      <span class="c1"># Upload artifact (Unity_v20XX.X.XXXX.alf)</span>
      <span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Expose as artifact</span>
        <span class="na">uses</span><span class="pi">:</span> <span class="s">actions/upload-artifact@v2</span>
        <span class="na">with</span><span class="pi">:</span>
          <span class="na">name</span><span class="pi">:</span> <span class="s">${{ steps.getManualLicenseFile.outputs.filePath }}</span>
          <span class="na">path</span><span class="pi">:</span> <span class="s">${{ steps.getManualLicenseFile.outputs.filePath }}</span></code></pre></figure>

<!-- prettier-ignore-end -->

<p>After you push it up, you can <a href="https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow">manually run the worfklow</a> to generate your license.</p>

<p>To find this file, go to <code class="language-plaintext highlighter-rouge">GitHub</code> &gt; <code class="language-plaintext highlighter-rouge">Your Repository</code> &gt; <code class="language-plaintext highlighter-rouge">Actions</code>. Click on the commit that last ran. You should find a file named something like <code class="language-plaintext highlighter-rouge">Unity_v2019.3.14f1.alf</code>. (The exact name depends on the version string that you put in <code class="language-plaintext highlighter-rouge">unityVersion</code> above.)</p>

<p>You’ll need to save this file locally for use in the next step.</p>

<h3 id="step-2---request-license-from-unity">Step 2 - Request License from Unity</h3>

<p>Head over to the <a href="https://license.unity3d.com/manual" target="\_blank">Unity Manual Activation</a> link.</p>

<p>Here you simply upload your <code class="language-plaintext highlighter-rouge">.alf</code> file from the previous step. Fill out the form with your license details.</p>

<p>On the last step you should be able to download a file that ends in <code class="language-plaintext highlighter-rouge">.ulf</code>.</p>

<p>This is your license you will put in GitHub secrets for use in your build actions.</p>

<h3 id="step-3---save-license-in-github-secrets">Step 3 - Save License in GitHub Secrets</h3>

<p>Open <code class="language-plaintext highlighter-rouge">GitHub</code> &gt; <code class="language-plaintext highlighter-rouge">Your Repository</code> &gt; <code class="language-plaintext highlighter-rouge">Settings</code> &gt; <code class="language-plaintext highlighter-rouge">Secrets</code>.</p>

<p>Create a secret called <code class="language-plaintext highlighter-rouge">UNITY_LICENSE</code> and add the contents of the obtained license file (<code class="language-plaintext highlighter-rouge">.ulf</code>). Yes, add the entire XML contents to the GitHub secret.</p>

<p>Now that this step is done, you can delete the <code class="language-plaintext highlighter-rouge">.github/workflows/activation.yml</code> file.</p>

<h2 id="set-up-workflow">Set up workflow</h2>

<p>Now’s the fun stuff! Now that you have your license ready to go, you can start setting up actions.</p>

<p>A couple of best practice recommendations:</p>

<ul>
  <li>Cache your <code class="language-plaintext highlighter-rouge">Library</code> folder. This is where all your cached packages and large files end up during builds.
    <ul>
      <li>Note caches created on branches are scoped to that branch, regardless of key matches. Same goes for tags.</li>
    </ul>
  </li>
  <li>Use GitHub Releases to store your file, <em>not</em> actions artifacts. You will quickly run into free limits using artifacts</li>
  <li>Due to the size and time of full builds, I like to generate target builds only on tags.</li>
</ul>

<p>Here’s an example of a couple of workflow files.</p>

<h3 id="test---runs-on-every-commit">Test - Runs on every commit</h3>

<p><code class="language-plaintext highlighter-rouge">.github/workflows/test.yml:</code></p>

<!-- prettier-ignore-start -->

<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="na">name</span><span class="pi">:</span> <span class="s">Test</span>

<span class="na">on</span><span class="pi">:</span>
  <span class="na">pull_request</span><span class="pi">:</span> <span class="pi">{}</span>
  <span class="na">push</span><span class="pi">:</span> <span class="pi">{</span> <span class="nv">branches</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">master</span><span class="pi">]</span> <span class="pi">}</span>

<span class="na">env</span><span class="pi">:</span>
  <span class="na">UNITY_LICENSE</span><span class="pi">:</span> <span class="s">${{ secrets.UNITY_LICENSE }}</span>

<span class="na">jobs</span><span class="pi">:</span>
  <span class="na">build</span><span class="pi">:</span>
    <span class="na">name</span><span class="pi">:</span> <span class="s">Test project</span>
    <span class="na">runs-on</span><span class="pi">:</span> <span class="s">ubuntu-latest</span>
    <span class="na">steps</span><span class="pi">:</span>

      <span class="c1"># Checkout</span>
      <span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Checkout repository</span>
        <span class="na">uses</span><span class="pi">:</span> <span class="s">actions/checkout@v2</span>
        <span class="na">with</span><span class="pi">:</span>
          <span class="na">lfs</span><span class="pi">:</span> <span class="kc">true</span>
    
      <span class="c1"># Cache</span>
      <span class="pi">-</span> <span class="na">uses</span><span class="pi">:</span> <span class="s">actions/cache@v2</span>
        <span class="na">with</span><span class="pi">:</span>
          <span class="na">path</span><span class="pi">:</span> <span class="s">Library</span>
          <span class="na">key</span><span class="pi">:</span> <span class="s">Library</span>

      <span class="c1"># Test</span>
      <span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Run tests</span>
        <span class="na">uses</span><span class="pi">:</span> <span class="s">game-ci/unity-test-runner@v2</span>
        <span class="na">with</span><span class="pi">:</span>
          <span class="na">unityVersion</span><span class="pi">:</span> <span class="s">2020.3.15f2</span></code></pre></figure>

<!-- prettier-ignore-end -->

<h3 id="build---runs-on-tagged-commits">Build - Runs on tagged commits</h3>

<p>This file uses this <code class="language-plaintext highlighter-rouge">on.push.tags</code> trigger to only run when tags are pushed.</p>

<p>It then uploads artifacts, zips up the binaries, creates a GitHub release for the tag, and uploads the release assets to it.</p>

<p>Depending on your usage, you might not want to upload the artifacts. You’ll quickly run into limits if you use it too much.</p>

<p><code class="language-plaintext highlighter-rouge">.github/workflows/main.yml:</code></p>

<!-- prettier-ignore-start -->

<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="na">name</span><span class="pi">:</span> <span class="s">Build</span>

<span class="na">on</span><span class="pi">:</span>
  <span class="na">push</span><span class="pi">:</span>
    <span class="na">tags</span><span class="pi">:</span>
      <span class="pi">-</span> <span class="s1">'</span><span class="s">*'</span>

<span class="na">env</span><span class="pi">:</span>
  <span class="na">UNITY_LICENSE</span><span class="pi">:</span> <span class="s">${{ secrets.UNITY_LICENSE }}</span>

<span class="na">jobs</span><span class="pi">:</span>
  <span class="na">build</span><span class="pi">:</span>
    <span class="na">name</span><span class="pi">:</span> <span class="s">Build my project</span>
    <span class="na">runs-on</span><span class="pi">:</span> <span class="s">ubuntu-latest</span>
    <span class="na">steps</span><span class="pi">:</span>

      <span class="c1"># Checkout</span>
      <span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Checkout repository</span>
        <span class="na">uses</span><span class="pi">:</span> <span class="s">actions/checkout@v2</span>
        <span class="na">with</span><span class="pi">:</span>
          <span class="na">lfs</span><span class="pi">:</span> <span class="kc">true</span>
    
      <span class="c1"># Cache</span>
      <span class="pi">-</span> <span class="na">uses</span><span class="pi">:</span> <span class="s">actions/cache@v2</span>
        <span class="na">with</span><span class="pi">:</span>
          <span class="na">path</span><span class="pi">:</span> <span class="s">Library</span>
          <span class="na">key</span><span class="pi">:</span> <span class="s">Library</span>

      <span class="c1"># Test</span>
      <span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Run tests</span>
        <span class="na">uses</span><span class="pi">:</span> <span class="s">game-ci/unity-test-runner@v2</span>
        <span class="na">with</span><span class="pi">:</span>
          <span class="na">unityVersion</span><span class="pi">:</span> <span class="s">2020.3.15f2</span>

      <span class="c1"># Build</span>
      <span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Build project</span>
        <span class="na">uses</span><span class="pi">:</span> <span class="s">game-ci/unity-builder@v2</span>
        <span class="na">with</span><span class="pi">:</span>
          <span class="na">unityVersion</span><span class="pi">:</span> <span class="s">2020.3.15f2</span>
          <span class="na">targetPlatform</span><span class="pi">:</span> <span class="s">StandaloneWindows64</span> 

      <span class="c1"># Output </span>
      <span class="pi">-</span> <span class="na">uses</span><span class="pi">:</span> <span class="s">actions/upload-artifact@v2</span>
        <span class="na">with</span><span class="pi">:</span>
          <span class="na">name</span><span class="pi">:</span> <span class="s">Build</span>
          <span class="na">path</span><span class="pi">:</span> <span class="s">build</span>

      <span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Zip build</span>
        <span class="na">run</span><span class="pi">:</span> <span class="pi">|</span>
          <span class="s">pushd build/StandaloneWindows64</span>
          <span class="s">zip -r ../../StandaloneWindows64.zip .</span>
          <span class="s">popd</span>

      <span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Release</span>
        <span class="na">uses</span><span class="pi">:</span> <span class="s">softprops/action-gh-release@v1</span>
        <span class="na">with</span><span class="pi">:</span>
          <span class="na">files</span><span class="pi">:</span> <span class="s">StandaloneWindows64.zip</span>
          <span class="na">name</span><span class="pi">:</span> <span class="s">Release ${{ github.ref }}</span></code></pre></figure>

<!-- prettier-ignore-end -->

<p>Note: If you’re using the above workflow, and experience an error on the build step like this:</p>

<!-- prettier-ignore-start -->

<figure class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span class="na">Warning: Changes were made to the following files and folders</span><span class="pi">:</span>

<span class="na">Warning</span><span class="pi">:</span> <span class="s">?? artifacts/</span>

<span class="na">Error</span><span class="pi">:</span> <span class="s">Branch is dirty. Refusing to base semantic version on uncommitted changes</span></code></pre></figure>

<!-- prettier-ignore-end -->

<p>You will need to add the artifacts folder to your <code class="language-plaintext highlighter-rouge">.gitignore</code> file, as referenced in <a href="https://github.com/game-ci/unity-builder/issues/241">this GitHub issue</a>.</p>

<p>Another option would be using the <a href="https://game.ci/docs/github/builder#allowdirtybuild">allowDirtyBuild</a> flag if you are still running into dirty branch issues.</p>

<p>Feel free to customize for your use case, as this workflow only outputs windows binaries. However, as mentioned in <a href="https://github.com/game-ci/unity-actions" target="\_blank">game-ci/unity-actions</a>, there’s a ton more supported actions/options.</p>

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

<p>Setting up a CI flow early tends to keep me honest in following best practices. I like to do it even for my hobby projects.</p>

<p>A good side effect, is if I have to let projects idle for a while, I can always come back and expect my builds to work.</p>

<h2 id="related-links">Related Links</h2>

<ul>
  <li><a href="https://prf.hn/click/camref:1100ldaXB/destination:https://store.unity.com/products/unity-plus" target="\_blank">Unity Plus</a> - <a href="https://prf.hn/click/camref:1100ldaXB/destination:https://store.unity.com/products/unity-pro" target="\_blank">Unity Pro</a></li>
  <li><a href="https://github.com/game-ci/unity-actions" target="\_blank">Github - Unity Actions</a> - Unity Actions for GitHub</li>
</ul>

<p>Note: Unity referral links are used in product links.</p>]]></content><author><name>Isaac Broyles</name></author><category term="gamedev" /><category term="unity" /><category term="github" /><category term="github actions" /><category term="gamedev" /><summary type="html"><![CDATA[I recently began doing some work on a personal project in Unity Engine. As with any of my projects, the first thing I set up is a working CI pipeline for it. I find doing this early reinforces best practices. I liked the option of using GitHub Actions, since it is a relatively small project. Here’s how I did it!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.isaacbroyles.com/assets/images/2020-07-04-unity-github-actions/unity.png" /><media:content medium="image" url="https://www.isaacbroyles.com/assets/images/2020-07-04-unity-github-actions/unity.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Small Form Factor PC Build Part 2</title><link href="https://www.isaacbroyles.com/video-games/2020/06/06/small-form-factor-pc-build-part-2.html" rel="alternate" type="text/html" title="Small Form Factor PC Build Part 2" /><published>2020-06-06T20:18:16+00:00</published><updated>2022-06-12T20:18:16+00:00</updated><id>https://www.isaacbroyles.com/video-games/2020/06/06/small-form-factor-pc-build-part-2</id><content type="html" xml:base="https://www.isaacbroyles.com/video-games/2020/06/06/small-form-factor-pc-build-part-2.html"><![CDATA[<p>Update on the small form factor build.</p>

<!--more-->

<p>There is good and bad news with this post. Bad news first: this build was actually completed about a year and a half ago, now. So the build wont be cutting edge as of today’s tech.</p>

<p>However, the good news: this build was tested hard over the past year. Including playing multiple hundred hours of FFXIV at max settings, The Witcher 3: Blood and Wine expansion in its entirety on max settings, etc.</p>

<p>I ended up diverging from my <a href="/video-games/2018/07/29/small-form-factor-pc-build.html">previous post</a>.</p>

<p>Here is the build I ended up with:</p>

<p><a href="https://pcpartpicker.com/list/Ys4Phy">PCPartPicker Part List</a></p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">Type</th>
      <th style="text-align: left">Item</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left"><strong>CPU</strong></td>
      <td style="text-align: left"><a href="https://amzn.to/3xuQ0Vs" target="\_blank">Intel Core i7-8700K 3.7 GHz 6-Core Processor</a></td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>CPU Cooler</strong></td>
      <td style="text-align: left"><a href="https://amzn.to/3NLZ7b4" target="\_blank">Noctua NH-U9S 46.44 CFM CPU Cooler</a></td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Motherboard</strong></td>
      <td style="text-align: left"><a href="https://amzn.to/3NYiWfa" target="\_blank">Gigabyte Z370N WIFI Mini ITX LGA1151 Motherboard</a></td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Memory</strong></td>
      <td style="text-align: left"><a href="https://amzn.to/3zxQxZb" target="\_blank">Corsair Vengeance LPX 16 GB (2 x 8 GB) DDR4-2400 CL16 Memory</a></td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Storage</strong></td>
      <td style="text-align: left"><a href="https://amzn.to/3MGUOfL" target="\_blank">Crucial MX500 1 TB M.2-2280 Solid State Drive</a></td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Video Card</strong></td>
      <td style="text-align: left"><a href="https://amzn.to/3zwXXfe" target="\_blank">EVGA GeForce GTX 1080 Ti 11 GB Black Edition Video Card</a></td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Case</strong></td>
      <td style="text-align: left"><a href="https://amzn.to/39iLrp7" target="\_blank">Thermaltake Core V1 Mini ITX Desktop Case</a></td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Power Supply</strong></td>
      <td style="text-align: left"><a href="https://amzn.to/3O6UKqQ" target="\_blank">Silverstone 450 W 80+ Bronze Certified SFX Power Supply</a></td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Case Fan</strong></td>
      <td style="text-align: left"><a href="https://amzn.to/3HhfwBS" target="\_blank">Noctua NF-A20 PWM 86.46 CFM 200 mm Fan</a></td>
    </tr>
    <tr>
      <td style="text-align: left"><em>Total is approximate price of all components as of time of this writing</em></td>
      <td style="text-align: left"> </td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Total</strong></td>
      <td style="text-align: left"><strong>$1820.00</strong></td>
    </tr>
  </tbody>
</table>

<p>Here is the finished product, nicely tucked in my entertainment center under my primary TV. The PS4 goes unused nowadays!</p>

<p><img src="/assets/images/2020-06-06-small-form-factor-pc-build-part-2/IMG_2133.jpg" alt="Thermaltake Core V1 build in entertainment center" /></p>

<p>I also recommend some of the following accessories for comfortable couch gaming.</p>

<p><img src="/assets/images/2020-06-06-small-form-factor-pc-build-part-2/IMG_2138.jpg" alt="Couch gaming accessories" /></p>

<p>The Corsair Lapboard got 100+ hours of use recently on a playthrough of Pillars of Eternity, so I can strongly recommend that as well.</p>

<p>The accessories are (from left-to-right, top-to-bottom):</p>

<ul>
  <li><a href="https://www.amazon.com/gp/product/B07GHWHFR5/ref=as_li_ss_tl?ie=UTF8&amp;psc=1&amp;linkCode=ll1&amp;tag=isaacbroyle07-20&amp;linkId=d412568cb95ba12bf12b662845c74136&amp;language=en_US" target="\_blank">Xbox Wireless Controller - Grey and Blue</a></li>
  <li><a href="https://www.amazon.com/Steam-Controller-SteamOS/dp/B016KBVBCS/ref=as_li_ss_tl?crid=1QJP6NITNE3GG&amp;dchild=1&amp;keywords=steam+controller&amp;qid=1592066367&amp;s=videogames&amp;sprefix=steam+contro,videogames,203&amp;sr=1-3&amp;linkCode=ll1&amp;tag=isaacbroyle07-20&amp;linkId=14ca514c04bf94e22e299ec2c3a6bfaa&amp;language=en_US" target="\_blank">Steam Controller</a></li>
  <li><a href="https://www.amazon.com/gp/product/B00KVP780Y/ref=as_li_ss_tl?ie=UTF8&amp;psc=1&amp;linkCode=ll1&amp;tag=isaacbroyle07-20&amp;linkId=59409730607ce0608e2d5033b94cb31c&amp;language=en_US" target="\_blank">DualShock 4 - Wave Blue</a></li>
  <li><a href="https://www.amazon.com/gp/product/B077ZGRY9V/ref=as_li_ss_tl?ie=UTF8&amp;psc=1&amp;linkCode=ll1&amp;tag=isaacbroyle07-20&amp;linkId=e37096ebb9d20d5d3ca36aa54e2f663e&amp;language=en_US" target="\_blank">HyperX Cloud Flight Headset</a></li>
  <li><a href="https://www.amazon.com/CORSAIR-Wireless-Mechanical-Keyboard-Backlit/dp/B07CL8B7RN/ref=as_li_ss_tl?dchild=1&amp;keywords=corsair+lapboard&amp;qid=1592066645&amp;sr=8-2&amp;linkCode=ll1&amp;tag=isaacbroyle07-20&amp;linkId=cacb69870762fbf9d86e5ee1782790d4&amp;language=en_US" target="\_blank">Corsair K63 Wireless Mechanical Keyboard with Lapboard</a></li>
  <li><a href="https://www.amazon.com/Logitech-Lightspeed-PowerPlay-Compatible-Lightsync/dp/B07L4BM851/ref=as_li_ss_tl?crid=3JW3N298URSHY&amp;dchild=1&amp;keywords=logitech+g502+lightspeed&amp;qid=1592066755&amp;sprefix=logitech+g50,aps,211&amp;sr=8-3&amp;linkCode=ll1&amp;tag=isaacbroyle07-20&amp;linkId=263d1893d6a3c8fbfa5507b7cf2644ef&amp;language=en_US" target="\_blank">Logitech G502 Lightspeed</a></li>
</ul>

<p>Note: Amazon referral links are used in product links.</p>]]></content><author><name>Isaac Broyles</name></author><category term="video-games" /><category term="pc build" /><category term="small form factor" /><category term="sff build" /><category term="mini itx" /><summary type="html"><![CDATA[Update on the small form factor build.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.isaacbroyles.com/assets/images/2020-06-06-small-form-factor-pc-build-part-2/IMG_2136.jpg" /><media:content medium="image" url="https://www.isaacbroyles.com/assets/images/2020-06-06-small-form-factor-pc-build-part-2/IMG_2136.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Cool Stuff I Found This Week</title><link href="https://www.isaacbroyles.com/cool-stuff/2018/11/04/cool-stuff-this-week.html" rel="alternate" type="text/html" title="Cool Stuff I Found This Week" /><published>2018-11-04T00:00:00+00:00</published><updated>2018-11-04T00:00:00+00:00</updated><id>https://www.isaacbroyles.com/cool-stuff/2018/11/04/cool-stuff-this-week</id><content type="html" xml:base="https://www.isaacbroyles.com/cool-stuff/2018/11/04/cool-stuff-this-week.html"><![CDATA[<p>This is all the cool stuff I found this week.</p>

<!--more-->

<ul>
  <li><a href="https://l.cncf.io/">cncf/landscape</a> - Cloud Native Computing Foundation interactive landscape. A great resource for finding popular projects in the cloud space.
    <ul>
      <li>Also take a look at their <a href="https://github.com/cncf/landscape">github repository</a>. Their included cloud native trail map is a really cool resource for anyone looking to transition into cloud technologies.</li>
    </ul>
  </li>
  <li><a href="https://github.com/Microsoft/windows-dev-box-setup-scripts">microsoft/windows-dev-box-setup-scripts</a> - Microsoft provided dev box setup scripts. I strongly encourage anybody on a team to leverage something like this for boostrapping developers machines. Great for onboarding! I plan on using this heavily for reference next time I need to build a dev PC.</li>
  <li><a href="https://github.com/ahmetb/kubectx">kubectx</a> - This tool got mentioned to me by an engineer at work. Quickly change between contexts and namespaces. This will be a keystroke saver for those constantly switching between kubernetes contexts.</li>
</ul>]]></content><author><name>Isaac Broyles</name></author><category term="cool-stuff" /><summary type="html"><![CDATA[This is all the cool stuff I found this week.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" /><media:content medium="image" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Working in GatsbyJS with Typescript Pt. 1</title><link href="https://www.isaacbroyles.com/2018/08/19/gatsbyjs-typescript.html" rel="alternate" type="text/html" title="Working in GatsbyJS with Typescript Pt. 1" /><published>2018-08-19T00:00:00+00:00</published><updated>2018-08-19T00:00:00+00:00</updated><id>https://www.isaacbroyles.com/2018/08/19/gatsbyjs-typescript</id><content type="html" xml:base="https://www.isaacbroyles.com/2018/08/19/gatsbyjs-typescript.html"><![CDATA[<p>I am spinning up my first GatsbyJS site using Typescript. These are my findings while doing so.</p>

<!--more-->

<p>I’m a fan of strongly typed languages. So as I started my excursion into GatsbyJS, I definitely wanted to use Typescript instead of Javascript.</p>

<p>One of the first issues I ran across was getting strongly typed GraphQL query types in my <code class="language-plaintext highlighter-rouge">.tsx</code> (Typescript React) files.</p>

<h2 id="prerequisites">Prerequisites</h2>

<p>I used a community gatsby starter to start my project:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gatsby new gatsby-starter-typescript https://github.com/haysclark/gatsby-starter-typescript
</code></pre></div></div>

<p>There are other starters for typescript, but they have quite a bit more “features”. I wanted to learn a bit about GatsbyJS myself, so I started with a minimal project.</p>

<h2 id="using-gql-gen-to-generate-type-files">Using gql-gen to generate type files</h2>

<p>After some investigation, it appeared the recommended way for strongly-typing your GraphQL query models, was to generate types using the <a href="https://github.com/dotansimha/graphql-code-generator">gql-gen</a> tool.</p>

<p>Following the <a href="https://github.com/dotansimha/graphql-code-generator#installation" target="_blank">graphql-code-generator installation docs</a>, I installed a few dev dependencies into my project:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>npm <span class="nb">install</span> <span class="nt">--save-dev</span> graphql-code-generator graphql
npm <span class="nb">install</span> <span class="nt">--save-dev</span> graphql-codegen-typescript-template
</code></pre></div></div>

<p>Now, the way <code class="language-plaintext highlighter-rouge">gql-gen</code> works is by analyzing a schema. This can be done a couple of different ways, either by passing a json schema file on the command line, or by passing a graphql server endpoint to the tool.</p>

<p>It feels like a chicken-egg scenario, but I chose to go ahead and pass the GatsbyJS hosted graphql endpoint to the gql-gen tool.</p>

<p>You can do so by serving up your GatsbyJS site, e.g. <code class="language-plaintext highlighter-rouge">gatsby develop</code>, and using the <code class="language-plaintext highlighter-rouge">http://localhost:8000/___graphql</code> endpoint as your source:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gql-gen <span class="nt">--schema</span> http://localhost:8000/___graphql  <span class="nt">--template</span> graphql-codegen-typescript-template <span class="nt">--out</span> ./src/graphql.d.ts <span class="se">\"</span>./src/<span class="k">**</span>/<span class="k">*</span>.graphql<span class="se">\"</span>
</code></pre></div></div>

<p>As you can see here, I’m outputting my type definitions to <code class="language-plaintext highlighter-rouge">/src/graphql.d.ts</code>.</p>

<h2 id="using-the-generated-types-in-your-components">Using the generated types in your components</h2>

<p>From here, it’s pretty simple to import the types into your React components:</p>

<div class="language-typescript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">import</span> <span class="p">{</span> <span class="nx">MyType</span> <span class="p">}</span> <span class="k">from</span> <span class="dl">'</span><span class="s1">../graphql</span><span class="dl">'</span><span class="p">;</span>
</code></pre></div></div>

<p>Now you have strongly typed models in your Typescript React components!</p>

<div class="language-typescript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kr">interface</span> <span class="nx">IndexPageProps</span> <span class="p">{</span>
  <span class="nl">theme</span><span class="p">:</span> <span class="nx">Theme</span><span class="p">;</span>
  <span class="nl">data</span><span class="p">:</span> <span class="p">{</span>
    <span class="na">site</span><span class="p">:</span> <span class="p">{</span>
      <span class="na">siteMetadata</span><span class="p">:</span> <span class="p">{</span>
        <span class="na">title</span><span class="p">:</span> <span class="kr">string</span><span class="p">,</span>
      <span class="p">},</span>
    <span class="p">},</span>
    <span class="na">myData</span><span class="p">:</span> <span class="nx">MyType</span><span class="p">,</span>
  <span class="p">};</span>
<span class="p">}</span>

<span class="k">export</span> <span class="k">default</span> <span class="kd">class</span> <span class="nc">IndexPage</span> <span class="kd">extends</span> <span class="nc">React</span><span class="p">.</span><span class="nx">Component</span><span class="o">&lt;</span><span class="nx">IndexPageProps</span><span class="p">,</span> <span class="p">{}</span><span class="o">&gt;</span> <span class="p">{</span>
  <span class="k">public</span> <span class="nf">render</span><span class="p">()</span> <span class="p">{</span>
    <span class="kd">const</span> <span class="p">{</span> <span class="nx">title</span> <span class="p">}</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">props</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">site</span><span class="p">.</span><span class="nx">siteMetadata</span><span class="p">;</span>
    <span class="k">return </span><span class="p">(</span>
      <span class="o">&lt;</span><span class="nx">Layout</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="nx">ResponsiveDrawer</span> <span class="nx">theme</span><span class="o">=</span><span class="p">{</span><span class="nx">theme</span><span class="p">}</span> <span class="nx">data</span><span class="o">=</span><span class="p">{</span><span class="k">this</span><span class="p">.</span><span class="nx">props</span><span class="p">.</span><span class="nx">data</span><span class="p">.</span><span class="nx">myData</span><span class="p">}</span> <span class="sr">/</span><span class="err">&gt;
</span>      <span class="o">&lt;</span><span class="sr">/Layout</span><span class="err">&gt;
</span>    <span class="p">);</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>]]></content><author><name>Isaac Broyles</name></author><category term="typescript" /><category term="gatsbyjs" /><summary type="html"><![CDATA[I am spinning up my first GatsbyJS site using Typescript. These are my findings while doing so.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" /><media:content medium="image" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Podcasts to Listen to</title><link href="https://www.isaacbroyles.com/cool-stuff/2018/08/04/podcasts-to-listen-to.html" rel="alternate" type="text/html" title="Podcasts to Listen to" /><published>2018-08-04T00:00:00+00:00</published><updated>2018-08-04T00:00:00+00:00</updated><id>https://www.isaacbroyles.com/cool-stuff/2018/08/04/podcasts-to-listen-to</id><content type="html" xml:base="https://www.isaacbroyles.com/cool-stuff/2018/08/04/podcasts-to-listen-to.html"><![CDATA[<p>These are the current developer podcasts in my rotation.</p>

<!--more-->

<p>I’ve tried quite a few developer podcasts, and I’ve finally wittled down to a few that I consider excellent.</p>

<ol>
  <li>
    <p><a href="http://www.se-radio.net/" target="_blank">Software Engineering Radio</a> - This one sounds generic, but it has actually grown into a favorite of mine. The hosts usually ask great questions, and the guests always seem to be capable enough of getting into some really good technical discussions. Highly recommend this podcast.</p>
  </li>
  <li>
    <p><a href="https://changelog.com/podcast" target="_blank">Changelog</a> - This is a podcast focused on open-source development. I usually enjoy the topics quite a bit. Every now and then I’ll skip a show though, when the topics get too “high-level.”</p>
  </li>
  <li>
    <p><a href="https://dotnetrocks.com/" target="_blank">.NET Rocks</a> - Great for keeping up with the .NET ecosystem. They have the clout to get some heavy-hitters in here. Guests have included Mads Torgerson, Scott Guthrie, Eric Lippert, and more. As with Changelog, from time-to-time I skip an episode of this, as they can get a little off topic.</p>
  </li>
  <li>
    <p><a href="http://runasradio.com/" target="_blank">RunAs Radio</a> - Ops/DevOps in the Microsoft ecosystem. Has some good guests and topics on occasion, but I skip many along the way. This one is in danger of dropping off my list, but still gets a mention here because there are still gems that pop up here.</p>
  </li>
</ol>]]></content><author><name>Isaac Broyles</name></author><category term="cool-stuff" /><category term="podcasts" /><summary type="html"><![CDATA[These are the current developer podcasts in my rotation.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" /><media:content medium="image" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Cool Stuff I Found This Week</title><link href="https://www.isaacbroyles.com/cool-stuff/2018/07/29/cool-stuff-this.week.html" rel="alternate" type="text/html" title="Cool Stuff I Found This Week" /><published>2018-07-29T00:00:00+00:00</published><updated>2018-07-29T00:00:00+00:00</updated><id>https://www.isaacbroyles.com/cool-stuff/2018/07/29/cool-stuff-this.week</id><content type="html" xml:base="https://www.isaacbroyles.com/cool-stuff/2018/07/29/cool-stuff-this.week.html"><![CDATA[<p>This is all the cool stuff I found this week.</p>

<!--more-->

<ul>
  <li><a href="https://github.com/gatsbyjs/gatsby">GatsbyJS</a> - After listening to the interview on <a href="https://changelog.com/">Changelog</a> podcast, episode <a href="https://changelog.com/podcast/306">#306</a>, it has my interest piqued. I might try it out for some personal projects.</li>
  <li>A couple of maven plugins I’m exploring to improve my personal workflow:
    <ul>
      <li><a href="https://github.com/spotify/dockerfile-maven">dockerfile-maven</a> - From spotify, can be used to set up targets to build/deploy docker containers from Dockerfiles in your modules.</li>
      <li><a href="https://github.com/fabric8io/fabric8-maven-plugin">fabric8-maven-plugin</a> - Seems a little more “full-featured” than dockerfile-maven. I have yet to fully dig in on this one.</li>
    </ul>
  </li>
  <li><a href="https://github.com/commandlineparser/commandline">commandline</a> parser - A commandline parser for .NET.</li>
</ul>]]></content><author><name>Isaac Broyles</name></author><category term="cool-stuff" /><summary type="html"><![CDATA[This is all the cool stuff I found this week.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" /><media:content medium="image" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Small Form Factor PC Build Part 1</title><link href="https://www.isaacbroyles.com/video-games/2018/07/29/small-form-factor-pc-build.html" rel="alternate" type="text/html" title="Small Form Factor PC Build Part 1" /><published>2018-07-29T00:00:00+00:00</published><updated>2018-07-29T00:00:00+00:00</updated><id>https://www.isaacbroyles.com/video-games/2018/07/29/small-form-factor-pc-build</id><content type="html" xml:base="https://www.isaacbroyles.com/video-games/2018/07/29/small-form-factor-pc-build.html"><![CDATA[<p>I’m considering building a “Small Form Factor” PC build. After a long day of working at a desk, the last thing I want to do is go home to my desk to play games on. So I thought I’d build a PC so I could play games on my favorite place - the couch.</p>

<!--more-->

<p>I know this is essentially an “overpriced” console, but I enjoy it, so leave me alone.</p>

<p>Here was my first stab at a build, with about as high end stuff as I could pick:</p>

<p><a href="https://pcpartpicker.com/list/KBwtCb">PCPartPicker part list</a> / <a href="https://pcpartpicker.com/list/KBwtCb/by_merchant/">Price breakdown by merchant</a></p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">Type</th>
      <th style="text-align: left">Item</th>
      <th style="text-align: left">Price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left"><strong>CPU</strong></td>
      <td style="text-align: left"><a href="https://pcpartpicker.com/product/VKx9TW/intel-core-i7-7700k-42ghz-quad-core-processor-bx80677i77700k">Intel - Core i7-7700K 4.2GHz Quad-Core Processor</a></td>
      <td style="text-align: left">$309.79 @ OutletPC</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>CPU Cooler</strong></td>
      <td style="text-align: left"><a href="https://pcpartpicker.com/product/vfw323/cooler-master-cpu-cooler-rrgmm416pkr2">Cooler Master - GeminII M4 58.4 CFM Sleeve Bearing CPU Cooler</a></td>
      <td style="text-align: left">$29.99 @ Newegg</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Motherboard</strong></td>
      <td style="text-align: left"><a href="https://pcpartpicker.com/product/VJqbt6/asrock-h270m-itxac-mini-itx-lga1151-motherboard-h270m-itxac">ASRock - H270M-ITX/ac Mini ITX LGA1151 Motherboard</a></td>
      <td style="text-align: left">$91.23 @ Newegg</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Memory</strong></td>
      <td style="text-align: left"><a href="https://pcpartpicker.com/product/P4wqqs/gskill-ns-16gb-2-x-8gb-ddr4-2400-memory-f4-2400c15d-16gns">G.Skill - NS 16GB (2 x 8GB) DDR4-2400 Memory</a></td>
      <td style="text-align: left">$143.98 @ Newegg</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Storage</strong></td>
      <td style="text-align: left"><a href="https://pcpartpicker.com/product/fgZFf7/crucial-mx500-500gb-m2-2280-solid-state-drive-ct500mx500ssd4">Crucial - MX500 500GB M.2-2280 Solid State Drive</a></td>
      <td style="text-align: left">$92.89 @ OutletPC</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Video Card</strong></td>
      <td style="text-align: left"><a href="https://pcpartpicker.com/product/62KhP6/asus-geforce-gtx-1070-ti-8gb-rog-strix-video-card-rog-strix-gtx1070ti-a8g-gaming">Asus - GeForce GTX 1070 Ti 8GB ROG STRIX Video Card</a></td>
      <td style="text-align: left">$548.99 @ Amazon</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Case</strong></td>
      <td style="text-align: left"><a href="https://pcpartpicker.com/product/6wR48d/cooler-master-case-rc130kkn1">Cooler Master - Elite 130 Mini ITX Tower Case</a></td>
      <td style="text-align: left">$40.47 @ Amazon</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Power Supply</strong></td>
      <td style="text-align: left"><a href="https://pcpartpicker.com/product/9q4NnQ/evga-power-supply-220g20650y1">EVGA - SuperNOVA G2 650W 80+ Gold Certified Fully-Modular ATX Power Supply</a></td>
      <td style="text-align: left">$83.76 @ Newegg Marketplace</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Operating System</strong></td>
      <td style="text-align: left"><a href="https://pcpartpicker.com/product/wtgPxr/microsoft-os-kw900140">Microsoft - Windows 10 Home OEM 64-bit</a></td>
      <td style="text-align: left">$94.89 @ OutletPC</td>
    </tr>
    <tr>
      <td style="text-align: left"> </td>
      <td style="text-align: left"><em>Prices include shipping, taxes, rebates, and discounts</em></td>
      <td style="text-align: left"> </td>
    </tr>
    <tr>
      <td style="text-align: left"> </td>
      <td style="text-align: left">Total (before mail-in rebates)</td>
      <td style="text-align: left">$1450.99</td>
    </tr>
    <tr>
      <td style="text-align: left"> </td>
      <td style="text-align: left">Mail-in rebates</td>
      <td style="text-align: left">-$15.00</td>
    </tr>
    <tr>
      <td style="text-align: left"> </td>
      <td style="text-align: left"><strong>Total</strong></td>
      <td style="text-align: left"><strong>$1435.99</strong></td>
    </tr>
    <tr>
      <td style="text-align: left"> </td>
      <td style="text-align: left">Generated by <a href="https://pcpartpicker.com">PCPartPicker</a> 2018-07-29 13:12 EDT-0400</td>
      <td style="text-align: left"> </td>
    </tr>
  </tbody>
</table>

<p>I then started reading a bit about small-form factor builds, and thought I might be able to get away with something more built around the Thermaltake Core V21, with a GTX mini instead of a full size.</p>

<p>I’m still very much is “design” mode now, while I’m saving up my budget to afford it.</p>

<p>I’ll post more as I progress and settle on a build.</p>]]></content><author><name>Isaac Broyles</name></author><category term="video-games" /><category term="pc build" /><summary type="html"><![CDATA[I’m considering building a “Small Form Factor” PC build. After a long day of working at a desk, the last thing I want to do is go home to my desk to play games on. So I thought I’d build a PC so I could play games on my favorite place - the couch.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" /><media:content medium="image" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Cool Stuff I Found This Week</title><link href="https://www.isaacbroyles.com/cool-stuff/2018/07/22/cool-stuff-this-week.html" rel="alternate" type="text/html" title="Cool Stuff I Found This Week" /><published>2018-07-22T00:00:00+00:00</published><updated>2018-07-22T00:00:00+00:00</updated><id>https://www.isaacbroyles.com/cool-stuff/2018/07/22/cool-stuff-this-week</id><content type="html" xml:base="https://www.isaacbroyles.com/cool-stuff/2018/07/22/cool-stuff-this-week.html"><![CDATA[<p>This is all the cool stuff I found this week.</p>

<!--more-->

<ul>
  <li><a href="https://scottlilly.com/how-to-create-a-fluent-interface-in-c/">How to create a fluent interface in C#</a> - Cool blog post about creating fluent interfaces in C#.</li>
  <li><a href="https://github.com/Azure/azure-service-bus-dotnet">azure-service-bus-dotnet</a> - Not new, but with 3.1.0, a new <a href="https://github.com/Azure/azure-service-bus-dotnet/pull/481">ManagementClient</a> is included.</li>
  <li><a href="https://blogs.taiga.nl/martijn/2018/06/14/lean-asp-net-core-2-1-manually-setup-a-razor-pages-project-with-bootstrap-npm-and-webpack/">Lean ASP.NET Core 2.1 – manually setup a Razor Pages project with Bootstrap, NPM and webpack</a> - Found this article for setting up webpack with ASP.NET core. It proved useful in a project I was working on.</li>
</ul>]]></content><author><name>Isaac Broyles</name></author><category term="cool-stuff" /><summary type="html"><![CDATA[This is all the cool stuff I found this week.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" /><media:content medium="image" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Cool Stuff I Found This Week</title><link href="https://www.isaacbroyles.com/cool-stuff/2018/07/16/cool-stuff-this-week.html" rel="alternate" type="text/html" title="Cool Stuff I Found This Week" /><published>2018-07-16T00:00:00+00:00</published><updated>2018-07-22T23:09:22+00:00</updated><id>https://www.isaacbroyles.com/cool-stuff/2018/07/16/cool-stuff-this-week</id><content type="html" xml:base="https://www.isaacbroyles.com/cool-stuff/2018/07/16/cool-stuff-this-week.html"><![CDATA[<p>This is all the cool stuff I found this week.</p>

<!--more-->

<p>Bear with me as I am reintroducing myself to Java at the moment, so some of the things mentioned here may be common knowledge.</p>

<ul>
  <li><a href="https://github.com/Netflix/Hystrix">Hystrix</a> - Obviously, this thing has been around for a while. I fully understand I’m late to the party on this one. Ironically enough, I was introduced to this while listening to a .NET podcast <a href="https://www.dotnetrocks.com/?show=1556">(.NET Rocks #1556)</a> about <a href="https://github.com/App-vNext/Polly">Polly</a>. I’ve used Polly in the past, but not Hystrix… yet.</li>
  <li><a href="https://github.com/jekyll/jekyll-sitemap">jekyll-sitemap</a> - Planning to start using this on my website to auto-generate a compliant sitemap.</li>
  <li><a href="https://github.com/fongandrew/hydeout">hydeout</a> - The theme I’m now using for this site.</li>
  <li>MacOS bootstrap projects. These projects made it easy for me to bootstrap my new macbook. I took some ideas from these and generated my own reusable boostrap script:
    <ul>
      <li><a href="https://github.com/bignerdranch/macOS-bootstrap">macOS-boostrap</a></li>
      <li><a href="https://github.com/thoughtbot/laptop">laptop</a></li>
    </ul>
  </li>
</ul>]]></content><author><name>Isaac Broyles</name></author><category term="cool-stuff" /><summary type="html"><![CDATA[This is all the cool stuff I found this week.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" /><media:content medium="image" url="https://www.isaacbroyles.com/assets/images/Profile.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>