<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[bradsturkie.com]]></title><description><![CDATA[Sports. Tech. Stuff.]]></description><link>https://bradsturkie.com/</link><image><url>https://bradsturkie.com/favicon.png</url><title>bradsturkie.com</title><link>https://bradsturkie.com/</link></image><generator>Ghost 5.24</generator><lastBuildDate>Thu, 16 Apr 2026 14:51:27 GMT</lastBuildDate><atom:link href="https://bradsturkie.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Triumph Cyclops LED Headlight Upgrade]]></title><description><![CDATA[<p>I recently ended up with a Triumph motorcycle and one thing I thought odd bout this bike, a 2022 model, was that it still had an old school halogen headlight. The headlight does have LEDs already installed in the lower half, but the main bulb remains halogen. So to remedy</p>]]></description><link>https://bradsturkie.com/triumph-cyclops-led-headlight-upgrade/</link><guid isPermaLink="false">63c49334097cf24189c9d1cf</guid><category><![CDATA[triumph]]></category><category><![CDATA[stuff]]></category><category><![CDATA[led]]></category><category><![CDATA[cyclops led]]></category><category><![CDATA[modern classic]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Mon, 16 Jan 2023 01:15:48 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2023/01/IMG_1367.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://bradsturkie.com/content/images/2023/01/IMG_1367.jpg" alt="Triumph Cyclops LED Headlight Upgrade"><p>I recently ended up with a Triumph motorcycle and one thing I thought odd bout this bike, a 2022 model, was that it still had an old school halogen headlight. The headlight does have LEDs already installed in the lower half, but the main bulb remains halogen. So to remedy this issue, albeit minor and nitpicky, I decided to install a <a href="https://www.cyclopsadventuresports.com/Cyclops-100-H4-LED-headlight-bulb_p_192.html">Cyclops 10.0 H4 LED headlight</a> with the &quot;Ultra&quot; option. I had previously became aware of this LED light for a recent dual-sport install and I was pleased with the outcome. Indeed Cyclops gears it&apos;s hardware more towards the dirt-orientated crowd so I hadn&apos;t seen anyone stuff one of these bulbs into a Triumph modern classic motorcycle. Here&apos;s a bit of a how-to for this job. </p><h4 id="light-specs">Light Specs</h4><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Type</th>
<th>Lumens</th>
<th>Color Temp</th>
</tr>
</thead>
<tbody>
<tr>
<td>Philips H4 12342 BV+</td>
<td>900</td>
<td>3200K</td>
</tr>
<tr>
<td>Cyclops 10.0 H4 w/ Ultra</td>
<td>~2500</td>
<td>5600K</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><h4 id="install">Install</h4><p>We need to get the Triumph headlight apart so that we can swap in the new bulb. This is actually a bit easier that I had expected. Rather than take the entire light housing off the bike, we can just open the housing and pull our the headlamp assembly by removing the two 6MM allen screws (one on each side) shown below.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1343-1.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1343-1.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1343-1.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1343-1.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>With both of those allen screws removed, we can get the light away from the light housing. You will need to rotate the light a bit (either direction should work) to clear the notch shown below. One clear from that notch, the light will just open. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1347.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1347.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1347.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1347.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>Pulling the light apart, we can see two connections. One is for the LED controller and the other is for the H4 headlight bulb. The headlight bulb is a simple plug connection and just pulls apart. The LED controller cable is taught and requires a tool to push a pin in order to release the connection. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1349.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1349.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1349.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1349.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>Both connections are now free, shown below.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1350.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1350.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1350.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1350.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>With the headlight free we can move to a more comfortable surface to do this work. I used a terry cloth towel on a table to help prevent scratching the front of the headlight. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1351.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1351.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1351.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1351.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>Remove the dust boot by lifting it off the light. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1352-1.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1440" height="1080" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1352-1.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1352-1.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1352-1.jpg 1440w" sizes="(min-width: 720px) 720px"></figure><p>Open the retention clasp for the halogen bulb.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1353.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1353.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1353.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1353.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>Remove the halogen bulb...pretty easy.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1354.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1354.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1354.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1354.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>Next, we need to get this monster into the headlight. As you can, there&apos;s much more to this LED light overall, including a built-in fan. Note that the fan creates some new noise for this bike. When the bike is on (without the engine started), it&apos;s audible but not intolerable. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1355--1-.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1355--1-.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1355--1-.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1355--1-.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>Smartly, Cyclops has setup their LED light to have a removable base. This really helps with the install. The base twists off easily. Also note that I have separated the bulb from its power supply. This is a nice touch by Cyclops so props to them!</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1356.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1356.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1356.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1356.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>We can then insert the LED light through the dust boot, similar to what is shown below. Note I have flipped the boot inside out to make it easier to work with.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1357.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1357.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1357.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1357.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>Now install the base and right the dust boot. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1358.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1358.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1358.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1358.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1359.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1359.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1359.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1359.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>You will need to be aware of the how the light and booth are orientated with one another. The LED light only installs one way, same as the boot. It should look something like the photo below. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1361.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1361.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1361.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1361.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>With the boot roughly in the correct orientation, I then had to inside-out the boot again to get it installed into the headlight. You will need to work somewhat carefully on both sides and coerce the boot to get the LED light seated correctly. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1362.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1362.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1362.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1362.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>With the LED light seated correctly, you should be able to close the retention clasp.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1363.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1363.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1363.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1363.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>You can then set the booth right-side out once more and push it into place. Note that my boot didn&apos;t quite fit as well as it did with the halogen light installed. This is somewhat expected as the Cyclops LED light is just more substantial at this position. The dust boot covered the opening enough that I am not worried about it. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1366.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1080" height="1440" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1366.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1366.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1366.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>The whole setup.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1368-2.jpg" class="kg-image" alt="Triumph Cyclops LED Headlight Upgrade" loading="lazy" width="1440" height="1080" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1368-2.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1368-2.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1368-2.jpg 1440w" sizes="(min-width: 720px) 720px"></figure><h4 id="reinstallation">Reinstallation</h4><p>The reinstall is not too bad either, but we need to account for the LED bulb&apos;s power supply. I ended up using a piece of velcro with double-sided to tape to hold this thing in place. I reckon that I will have to redo this some years from now! The Triumph headlight housing is fairly roomy and everything will just fit. If you feel like you&apos;re forcing the light back into the housing, something is wrong. It should all fit together easily! </p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1369-1.jpg" width="1080" height="1440" loading="lazy" alt="Triumph Cyclops LED Headlight Upgrade" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1369-1.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1369-1.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1369-1.jpg 1080w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1370.jpg" width="1080" height="1440" loading="lazy" alt="Triumph Cyclops LED Headlight Upgrade" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1370.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1370.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1370.jpg 1080w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1371.jpg" width="1080" height="1440" loading="lazy" alt="Triumph Cyclops LED Headlight Upgrade" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1371.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1371.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1371.jpg 1080w" sizes="(min-width: 720px) 720px"></div></div><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1372.jpg" width="1080" height="1440" loading="lazy" alt="Triumph Cyclops LED Headlight Upgrade" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1372.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1372.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1372.jpg 1080w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1373.jpg" width="1080" height="1440" loading="lazy" alt="Triumph Cyclops LED Headlight Upgrade" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1373.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1373.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1373.jpg 1080w" sizes="(min-width: 720px) 720px"></div></div></div></figure><h4 id="conclusion-and-results">Conclusion and Results</h4><p>I had two goals with this install and that was to increase the light output and to increase the color temperature. The style might not work for everyone, I understand that but I do enjoy the look. The output is a lot brighter, so much so that it mostly drowns out the Triumph OEM LEDs in the lower light but the improvement is worth it and my goals were accomplished. &#xA0;</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1339.jpg" width="1080" height="1440" loading="lazy" alt="Triumph Cyclops LED Headlight Upgrade" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1339.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1339.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1339.jpg 1080w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1379.jpg" width="1080" height="1440" loading="lazy" alt="Triumph Cyclops LED Headlight Upgrade" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1379.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1379.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1379.jpg 1080w" sizes="(min-width: 720px) 720px"></div></div><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1341-1.jpg" width="1080" height="1440" loading="lazy" alt="Triumph Cyclops LED Headlight Upgrade" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1341-1.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1341-1.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1341-1.jpg 1080w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2023/01/IMG_1381-1.jpg" width="1080" height="1440" loading="lazy" alt="Triumph Cyclops LED Headlight Upgrade" srcset="https://bradsturkie.com/content/images/size/w600/2023/01/IMG_1381-1.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2023/01/IMG_1381-1.jpg 1000w, https://bradsturkie.com/content/images/2023/01/IMG_1381-1.jpg 1080w" sizes="(min-width: 720px) 720px"></div></div></div></figure>]]></content:encoded></item><item><title><![CDATA[Owner Review: Floyd Shelving System]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2022/08/ezgif.com-gif-maker.gif" class="kg-image" alt loading="lazy" width="1200" height="800" srcset="https://bradsturkie.com/content/images/size/w600/2022/08/ezgif.com-gif-maker.gif 600w, https://bradsturkie.com/content/images/size/w1000/2022/08/ezgif.com-gif-maker.gif 1000w, https://bradsturkie.com/content/images/2022/08/ezgif.com-gif-maker.gif 1200w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><h4 id="overview">Overview</h4>
<!--kg-card-end: markdown--><p>I had been looking for a media console and bookshelf combination for some time, for probably over a year and nothing really stood out. Some stuff I liked was hyper expensive while other cheaper items weren&apos;t exactly what I wanted. I was familiar with Floyd as I</p>]]></description><link>https://bradsturkie.com/owner-review-floyd-shelving-system/</link><guid isPermaLink="false">62eede9520251d0524d3ff0d</guid><category><![CDATA[floyd]]></category><category><![CDATA[shelves]]></category><category><![CDATA[stuff]]></category><category><![CDATA[owner review]]></category><category><![CDATA[review]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Sat, 06 Aug 2022 23:04:18 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2022/08/ezgif.com-gif-maker.gif" class="kg-image" alt loading="lazy" width="1200" height="800" srcset="https://bradsturkie.com/content/images/size/w600/2022/08/ezgif.com-gif-maker.gif 600w, https://bradsturkie.com/content/images/size/w1000/2022/08/ezgif.com-gif-maker.gif 1000w, https://bradsturkie.com/content/images/2022/08/ezgif.com-gif-maker.gif 1200w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><h4 id="overview">Overview</h4>
<!--kg-card-end: markdown--><p>I had been looking for a media console and bookshelf combination for some time, for probably over a year and nothing really stood out. Some stuff I liked was hyper expensive while other cheaper items weren&apos;t exactly what I wanted. I was familiar with Floyd as I have their <a href="https://bradsturkie.com/owner-review-floyd-table/">table</a> so I decided to shop them. Floyd&apos;s shelving system is very modular and fits many decors. I had decided I&apos;d give them a go again. I planned what items I would want and what would fit my space via their website and then waited until they had one of their many annual sales and received %15 off my order. In the end, I went with the following:</p><ul><li>Tall Shelf (White + Walnut)</li><li>Media Console - Expansion Add On (White + Walnut)</li><li>Short Shelf (White + Walnut)</li></ul><p>The total was somewhere around $3200 in May 2022. </p><p><em>Note: No entity paid me to write this. I bought this stuff with my own money. I do these because reviews by uncompensated humans are really hard to find and helping even just one person out is worth it.</em></p><!--kg-card-begin: markdown--><h4 id="shipping">Shipping</h4>
<p>The system I purchased ended up consisting of eight (8) total boxes and over 150 pounds of cargo! It&apos;s a lot. As such, I had to work with XPO Logistics here in SoCal to get things delivered. XPO Logistics did a good job and working with them was easy to setup a time window for delivery. Their online tracking is also modern feeling and kept me in the loop.</p>
<p>Delivery took about 17 days from order to arrival. I think Floyd promised 2-5 weeks, so I was on the low end of their estimate.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2022/08/IMG_0971-2.jpg" class="kg-image" alt loading="lazy" width="2000" height="2667" srcset="https://bradsturkie.com/content/images/size/w600/2022/08/IMG_0971-2.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2022/08/IMG_0971-2.jpg 1000w, https://bradsturkie.com/content/images/size/w1600/2022/08/IMG_0971-2.jpg 1600w, https://bradsturkie.com/content/images/size/w2400/2022/08/IMG_0971-2.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><h4 id="packaging-and-unboxing">Packaging and Unboxing</h4>
<!--kg-card-end: markdown--><p>Previous Floyd items I had received were always packaged extremely well and this time was no different. This shipment might be the most elaborate and well thought out packaging of any product I&apos;ve ever received. Everything is boxed amazingly well and appeared to take no damage via shipping. It&apos;s almost a feat of engineering in which the items are packaged and supported by the custom cardboard pieces. Moreover, there&apos;s almost no plastic in the packaging. This is huge as plastic is horrible for everyone. Also, some bits of the packaging are also cleverly designed to prop up the media console during assembly so be careful before tossing the boxes aside.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2022/08/IMG_0972.jpg" class="kg-image" alt loading="lazy" width="2000" height="2667" srcset="https://bradsturkie.com/content/images/size/w600/2022/08/IMG_0972.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2022/08/IMG_0972.jpg 1000w, https://bradsturkie.com/content/images/size/w1600/2022/08/IMG_0972.jpg 1600w, https://bradsturkie.com/content/images/size/w2400/2022/08/IMG_0972.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>After unboxing, I did a quick examination on all the components. Everything was in good order except one of the media console cabinet frames. It had some small scratches on the backside which would face a wall. Given how this item was packaged, I think this scratch came from the factory unfortunately. It was fairly small but sort of a bummer to find. See below:</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2022/08/IMG_0973.jpg" class="kg-image" alt loading="lazy" width="2000" height="2667" srcset="https://bradsturkie.com/content/images/size/w600/2022/08/IMG_0973.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2022/08/IMG_0973.jpg 1000w, https://bradsturkie.com/content/images/size/w1600/2022/08/IMG_0973.jpg 1600w, https://bradsturkie.com/content/images/size/w2400/2022/08/IMG_0973.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><h4 id="assembly">Assembly</h4>
<p>Assembling the entire system took some time. I would estimate at least two hours. Prepare to work! There&apos;s no included paper instructions which is fine by me, but be warned you will have to go online to find documentation. The hardest part of assembly comes when you need to really get low - on the ground low - and run the various hardware through the mounting holes to get each support corner and shelve attached to one another. I also made the mistake of fastening the media console&apos;s outside supports completely BEFORE I had attached the side shelves. I had to back track a bit because of this issue. You will have to be deliberate and aware when assembling this thing. The system also comes with a few magnetic cable management devices, but I found that I wished it had come with more. The cable management outside of those items is non-existant and a real issue overall. As far as I can tell, they are supplied by <a href="https://magdaddyusa.com/products/cable-holders/">this company</a> and aren&apos;t exactly cheap. Lastly, I assembled the thing by myself, but a helper would be highly recommended.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2022/08/IMG_0974.jpg" class="kg-image" alt loading="lazy" width="2000" height="2667" srcset="https://bradsturkie.com/content/images/size/w600/2022/08/IMG_0974.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2022/08/IMG_0974.jpg 1000w, https://bradsturkie.com/content/images/size/w1600/2022/08/IMG_0974.jpg 1600w, https://bradsturkie.com/content/images/size/w2400/2022/08/IMG_0974.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><h4 id="impressions">Impressions</h4>
<p>The whole system is well built. The metal shelves are heavy and should last forever. The plywood support system is a little less robust. Moreover, the way the shelves attached to each support/corcer allows for a small amount of play. This movement gives the completed system a bit of wobbly feel, especially loaded with books. It&apos;s not super stable, monolithic, unyielding structure - be warned! If you have kids or want the peace of mind, you will need to use the wall attachment/bracing kit which is included for the tall shelf.</p>
<p>The appearance of the finished product is what I was really liked and had envisioned. It fit the space I had set aside for it perfectly and it should fit with many decors for many years (or until walnut isn&apos;t cool). The media console will fit a 65&quot; TV (55&quot; shown below).</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2022/08/DSC03447.JPG" class="kg-image" alt loading="lazy" width="2000" height="1333" srcset="https://bradsturkie.com/content/images/size/w600/2022/08/DSC03447.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2022/08/DSC03447.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2022/08/DSC03447.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2022/08/DSC03447.JPG 2400w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><h4 id="overall">Overall</h4>
<!--kg-card-end: markdown--><p>I would buy this system again, definitely. It was expensive but I do think it was worth it. Another plus is that I should be able to expand or reinvent the layout of this system as its so modular (assuming Floyd stays in business). This will be good for me as I tend to move around. From the furniture I had previously, this system is a huge improvement. </p>]]></content:encoded></item><item><title><![CDATA[Review: Factor75 Pre-made Meals]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h4 id="about">About</h4>
<!--kg-card-end: markdown--><p><a href="https://go.factor75.com">Factor75</a> is a pre-made meal delivery service. They specialize in ready-to-eat meals rather than sending you a bunch of ingredients you have to concoct yourself. We had previously tried Hello Fresh before and weren&apos;t fans of making it yourself and the immense amount of packaging and waste</p>]]></description><link>https://bradsturkie.com/review-factor/</link><guid isPermaLink="false">61a5a892ccff12099c60ebfa</guid><category><![CDATA[factor]]></category><category><![CDATA[factor75]]></category><category><![CDATA[premade]]></category><category><![CDATA[food]]></category><category><![CDATA[meals]]></category><category><![CDATA[stuff]]></category><category><![CDATA[owner review]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Tue, 30 Nov 2021 06:20:40 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2021/11/IMG_0581.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h4 id="about">About</h4>
<!--kg-card-end: markdown--><img src="https://bradsturkie.com/content/images/2021/11/IMG_0581.jpg" alt="Review: Factor75 Pre-made Meals"><p><a href="https://go.factor75.com">Factor75</a> is a pre-made meal delivery service. They specialize in ready-to-eat meals rather than sending you a bunch of ingredients you have to concoct yourself. We had previously tried Hello Fresh before and weren&apos;t fans of making it yourself and the immense amount of packaging and waste involved. Here&apos;s a quick review of the Factor meal service and some notes you might be interested in as my girlfriend and I just completed a one month stint. Lastly, as with my other stuff, I wasn&apos;t paid to write any of this and only hope someone out in the wild finds this information useful.</p><!--kg-card-begin: markdown--><h4 id="the-food">The Food</h4>
<p>Factor offers a variety of different, already made, ready-to-eat meals from keto, low-calorie and vegetarian options. Specifically, there&apos;s &quot;Chef&apos;s Choice&quot;, &quot;Keto&quot;, &quot;Calorie Smart&quot; and &quot;Vegan &amp; Veggie&quot; options to choose from. We chose the Keto option for the month and mostly enjoyed everything we received.</p>
<!--kg-card-end: markdown--><p>Each meal comes individually packaged in a cardboard sleeve and a black plastic tray. We chose not to use the tray to heat our food since we mostly ate them at home. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/11/IMG_0583-1.jpg" class="kg-image" alt="Review: Factor75 Pre-made Meals" loading="lazy" width="1471" height="1961" srcset="https://bradsturkie.com/content/images/size/w600/2021/11/IMG_0583-1.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2021/11/IMG_0583-1.jpg 1000w, https://bradsturkie.com/content/images/2021/11/IMG_0583-1.jpg 1471w" sizes="(min-width: 720px) 720px"></figure><p>The meals look sort of gimmicky when first unpacked, but once heated, they look a bit more appetizing.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/11/IMG_0591-2.jpg" width="1471" height="1961" loading="lazy" alt="Review: Factor75 Pre-made Meals" srcset="https://bradsturkie.com/content/images/size/w600/2021/11/IMG_0591-2.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2021/11/IMG_0591-2.jpg 1000w, https://bradsturkie.com/content/images/2021/11/IMG_0591-2.jpg 1471w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/11/IMG_0592-1.jpg" width="1471" height="1961" loading="lazy" alt="Review: Factor75 Pre-made Meals" srcset="https://bradsturkie.com/content/images/size/w600/2021/11/IMG_0592-1.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2021/11/IMG_0592-1.jpg 1000w, https://bradsturkie.com/content/images/2021/11/IMG_0592-1.jpg 1471w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/11/IMG_0593-1.jpg" width="1471" height="1961" loading="lazy" alt="Review: Factor75 Pre-made Meals" srcset="https://bradsturkie.com/content/images/size/w600/2021/11/IMG_0593-1.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2021/11/IMG_0593-1.jpg 1000w, https://bradsturkie.com/content/images/2021/11/IMG_0593-1.jpg 1471w" sizes="(min-width: 720px) 720px"></div></div></div></figure><p>Each meal had its qualities. Overall the food seemed fresh and most things were tasty and palatable. Sometimes the chicken would be dry, or not hot enough, but those were minor gripes. This food isn&apos;t going to win any awards, but it&apos;s way better than cafeteria slop. It was rarely better than eating out however. But for around $12 a pop, that&apos;s not too bad. </p><p>Below is a table of the meals we had. We had a few duplicates. Again, no meal was ever inedible. We ate them all!</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Meal</th>
<th>Rating</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>Middle Eastern Spiced Beef</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td>Great flavor</td>
</tr>
<tr>
<td>Chorizo Tostada Bake</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td>Tasty!</td>
</tr>
<tr>
<td>Spicy Turkey Pablano Bowl</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td></td>
</tr>
<tr>
<td>Keto White Cheddar Beef Bowl</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td></td>
</tr>
<tr>
<td>Keto Turkey Chili &amp; Zucchini</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td></td>
</tr>
<tr>
<td>Queso Fundido</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td></td>
</tr>
<tr>
<td>White Cheddar Chicken</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td>Good sides, had some crunch</td>
</tr>
<tr>
<td>Spicy Turkey Pablano Bowl</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td></td>
</tr>
<tr>
<td>Parmesan Pesto Chicken</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td>Good veggies</td>
</tr>
<tr>
<td>Keto Monterey Spinach Chicken</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td></td>
</tr>
<tr>
<td>Keto Ranch Chicken</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td>Good</td>
</tr>
<tr>
<td>Grilled Chicken &amp; Cheesy Brussels</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td></td>
</tr>
<tr>
<td>Keto Poblano Bowl</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td>Not as good as Spicy Turkey Pablano Bowl</td>
</tr>
<tr>
<td>Peruvian Shrimp Bowl</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td></td>
</tr>
<tr>
<td>Keto Ranch Chicken</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td></td>
</tr>
<tr>
<td>Chicken Picatta</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td></td>
</tr>
<tr>
<td>Shrimp Alfredo</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td></td>
</tr>
<tr>
<td>Creamy Parmesan Chicken</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td></td>
</tr>
<tr>
<td>Sun-Dried Tomato Chicken</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td>Potatoes would be a good side here</td>
</tr>
<tr>
<td>Apricot Mustard Grilled Chicken</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td>Felt more gourmet than others</td>
</tr>
<tr>
<td>Blackened Salmon</td>
<td>&#x2605;&#x2605;&#x2605;&#x2605;</td>
<td>Generous salmon portion</td>
</tr>
<tr>
<td>Jalapeno Popper Burger</td>
<td>&#x2605;&#x2605;&#x2605;</td>
<td>Eh</td>
</tr>
<tr>
<td>Keto Mushroom Burger</td>
<td>&#x2605;&#x2605;&#x2605;</td>
<td>All over the place</td>
</tr>
<tr>
<td>Chicken &amp; Mushroom Marsala</td>
<td>&#x2605;&#x2605;&#x2605;</td>
<td>Mushrooms were too mushy</td>
</tr>
<tr>
<td>Grilled Chicken a la Vodka</td>
<td>&#x2605;&#x2605;&#x2605;</td>
<td>All over the place, messy, dry chicken</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>Overall, the burger patties were the least favorite. They were just too generic to enjoy. Really only four (4) less than average meals out of 32 total is a pretty good average. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://bradsturkie.com/content/images/2021/11/IMG_0585-1.jpg" class="kg-image" alt="Review: Factor75 Pre-made Meals" loading="lazy" width="1471" height="1961" srcset="https://bradsturkie.com/content/images/size/w600/2021/11/IMG_0585-1.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2021/11/IMG_0585-1.jpg 1000w, https://bradsturkie.com/content/images/2021/11/IMG_0585-1.jpg 1471w" sizes="(min-width: 720px) 720px"><figcaption>Chorizo Tostada Bake - Prettay, prettay, prettay good!</figcaption></figure><!--kg-card-begin: markdown--><h4 id="convenience">Convenience</h4>
<!--kg-card-end: markdown--><p>The biggest draw for the Factor meals is the overall convenience. When they come by FedEx, you put them in the fridge and they are ready to go for the next few days. Dinner for two is a no-brainer when there&apos;s Factor in the fridge. Go pick your meal, heat it up and eat. It does take some of the fun out of dinner in that regard I suppose. My girlfriend commented that it made her life easier as she does the bulk of the shopping. Overall, she had far fewer trips to the grocery store when we had the Factor meals ready-to-go. </p><!--kg-card-begin: markdown--><h4 id="weight-loss">Weight Loss</h4>
<!--kg-card-end: markdown--><p>We didn&apos;t really lose any noticeable weight. Factor doesn&apos;t really market their meals as a weight loss instrument but does tout them as healthy. I suppose they are mostly whole foods with minimal processing outside of the sauces and creams. Regardless, there is considerable portion control at play here. If you struggle with portions, the Factor meals can help put into perspective what a reasonably sized meal is supposed to look like. I wouldn&apos;t expect most people to lose a ton of weight with the Factor meals unless you only eat the &quot;calorie smart&quot; options. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/11/IMG_0586-1.jpg" class="kg-image" alt="Review: Factor75 Pre-made Meals" loading="lazy" width="1471" height="1961" srcset="https://bradsturkie.com/content/images/size/w600/2021/11/IMG_0586-1.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2021/11/IMG_0586-1.jpg 1000w, https://bradsturkie.com/content/images/2021/11/IMG_0586-1.jpg 1471w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><h4 id="worth-the-money">Worth the money?</h4>
<!--kg-card-end: markdown--><p>The credit card charges will show up as FACTORXXXXXXXXXX. Yes, ten Xs. We chose the eight (8) meal plan for $99 per week. For two people, we got most of the week covered with Factor meals for one month. As an added bonus, a friend referred us and our first week was only $39 dollars. So for the month, at eight (8) meals a week, we paid a grand total of $336 &#x2013; or about $10.5 dollars per meal. This might seem like a lot, but for two people, in California, it&apos;s cheap. We can&apos;t eat out for two people for less than $30 dollars anymore. At their cheapest (not Factor-ing discounts) you can get meals for $11 each if you order 18 meals at a time. In the end, Factor is likely worth the money in most situations. </p><!--kg-card-begin: markdown--><h4 id="other-stuff">Other Stuff</h4>
<!--kg-card-end: markdown--><p>Factor will absolutely murder your inbox with coupons and promotions you won&apos;t even qualify for after your first week as a customer. There&apos;s a huge disconnect between their marketing emails and their actual invoicing systems. It&apos;s annoying.</p><p>The Factor meals didn&apos;t seem to spoil too quickly. You have about seven (7) days to eat them. I wouldn&apos;t push it much further though. &#xA0;</p><p>The packaging is fairly low yield. The shipping box isn&apos;t massive and the insulation isn&apos;t that huge. However, the ice packs that come included with the eight (8) meal package are absolutely enormous. I kept two, but threw the rest out. It&apos;s still more packaging that going to the grocery store, that&apos;s for sure. Conversely, it&apos;s way less packaging than eating takeout these days. Takeout should be considered the worst offender in terms of waste. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/11/IMG_0580-1.jpg" class="kg-image" alt="Review: Factor75 Pre-made Meals" loading="lazy" width="1471" height="1961" srcset="https://bradsturkie.com/content/images/size/w600/2021/11/IMG_0580-1.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2021/11/IMG_0580-1.jpg 1000w, https://bradsturkie.com/content/images/2021/11/IMG_0580-1.jpg 1471w" sizes="(min-width: 720px) 720px"></figure><!--kg-card-begin: markdown--><h4 id="conclusion">Conclusion</h4>
<!--kg-card-end: markdown--><p>Would I recommend Factor meals? Sure. Would I solely rely on Factor meals for long periods? No. If you need a week or two to get some meals pre-made for you, Factor is one of the better players in this space currently. &#xA0;Just don&apos;t count on making Factor you&apos;re only meal solution for any long period of time as you&apos;ll get bored with the flavors and the process of making those meals. Eating should be enjoyed, and Factor allows reprieve for busy people and tastes well-enough for the occasional week or two of meals from time-to-time. </p>]]></content:encoded></item><item><title><![CDATA[Terraform AWS Account Bootstrap]]></title><description><![CDATA[<p>Our goal with this article is to provision a brand new AWS account with a Terraform state backend and a Terraform user, and/or role(s), that can be used to manage AWS resources. In the past, I&apos;ve done terrible things like give full AWS admin access for</p>]]></description><link>https://bradsturkie.com/terraform-aws-account-bootstrap/</link><guid isPermaLink="false">619552c4ccff12099c60ebdc</guid><category><![CDATA[terraform]]></category><category><![CDATA[tech]]></category><category><![CDATA[aws]]></category><category><![CDATA[terragrunt]]></category><category><![CDATA[cloud]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Wed, 17 Nov 2021 19:08:42 GMT</pubDate><content:encoded><![CDATA[<p>Our goal with this article is to provision a brand new AWS account with a Terraform state backend and a Terraform user, and/or role(s), that can be used to manage AWS resources. In the past, I&apos;ve done terrible things like give full AWS admin access for a single IAM user. From a best practices standpoint, it&apos;s better to user IAM assumable roles and a basic user that can assume roles to establish Terraform access to the AWS environment.</p><h2 id="manual-steps"><strong><strong>Manual Steps</strong></strong></h2><p>Several AWS resources must be created before integration of Terraform can be achieved. Let&apos;s run through those. For housekeeping, I tag manually created resources with <code>Terraform =false</code> so that I can easily find resources and add them to Terraform later, where prudent. It&apos;s possible that you can somewhat automate this process if you have scale issues, but for me I just needed to accommodate two AWS accounts.</p><h4 id="create-iam-user"><strong><strong>Create IAM User</strong></strong></h4><p>First, we need a user that can use the STS Assume Role functionality. Create a <code>Programatic access</code> user of your choice and use the built-in IAM policy generator to create a policy. The policy below allows the user to assume any role in the account. We will tighten this up later.&#x200C;</p><pre><code>{
    &quot;Version&quot;: &quot;2012-10-17&quot;,
    &quot;Statement&quot;: [
        {
            &quot;Sid&quot;: &quot;VisualEditor0&quot;,
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Action&quot;: &quot;sts:AssumeRole&quot;,
            &quot;Resource&quot;: &quot;arn:aws:iam::&lt;account&gt;:role/*&quot;
        }
    ]
}</code></pre><p>Your user ARN should look something like:&#x200C;</p><pre><code>arn:aws:iam::&lt;your_account_id&gt;:user/tf_user</code></pre><h4 id="create-terraform-s3-backend-bucket"><strong><strong>Create Terraform S3 Backend Bucket</strong></strong></h4><p>Before we can properly create more IAM role policies, we need a S3 bucket object in which those role policies can target. We will use the bucket name and ARN later. It will look something like the following:&#x200C;</p><pre><code>arn:aws:s3:::&lt;your_terraform_backend_bucket_name&gt;</code></pre><h4 id="create-iam-policies-and-roles"><strong><strong>Create IAM Policies and Roles</strong></strong></h4><p>Now we need to create some useful roles in which the Terraform user can assume. We will need two roles, one for the S3 Terraform state backend and one for AWS resource provisioning and resource management.</p><p>But first, we need some custom policies to attach to the roles. Below is an example of the policy required by Terraform for S3 backend operations [2].</p><p><strong><strong>IAM Custom S3 Policy</strong></strong>&#x200C;</p><pre><code>{
    &quot;Version&quot;: &quot;2012-10-17&quot;,
    &quot;Statement&quot;: [
        {
            &quot;Sid&quot;: &quot;VisualEditor0&quot;,
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Action&quot;: [
                &quot;s3:PutObject&quot;,
                &quot;s3:GetObject&quot;,
                &quot;s3:ListBucketVersions&quot;,
                &quot;s3:ListBucket&quot;,
                &quot;s3:GetBucketVersioning&quot;,
                &quot;s3:PutBucketVersioning&quot;
            ],
            &quot;Resource&quot;: [
                &quot;arn:aws:s3:::&lt;your_s3_backend&gt;&quot;,
                &quot;arn:aws:s3:::&lt;your_s3_backend&gt;/*&quot;
            ]
        }
    ]
}</code></pre><p>Now we can create the IAM role and attach the above policy. We end up with an ARN for the S3 Terraform backend role, like so:&#x200C;</p><pre><code>arn:aws:iam::&lt;your_account_id&gt;:role/tf_s3_backend_role</code></pre><p>Now, for the tricky part. We need to create an assumable role for Terraform provisioning operations. For now, I am going to cheat and give the role the <code>AdministratorAcess</code> pre-canned, AWS policy. We will scale this level of access back <em>in another article</em> as it&apos;s a fussy process but ideally we want to use the least amount of privilege as possible. With that, we end up with a role for provisioning, like so:&#x200C;</p><pre><code>arn:aws:iam::&lt;your_account_id&gt;:role/tf_provisioning_role</code></pre><h4 id="cleanup-user-iam-policy"><strong><strong>Cleanup User IAM Policy</strong></strong></h4><p>Go back and modify the IAM policy for your IAM user to explicitly use the role ARNs we just created. Your IAM user policy should look something like this:&#x200C;</p><pre><code>{
    &quot;Version&quot;: &quot;2012-10-17&quot;,
    &quot;Statement&quot;: [
        {
            &quot;Sid&quot;: &quot;VisualEditor0&quot;,
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Action&quot;: &quot;sts:AssumeRole&quot;,
            &quot;Resource&quot;: [
                &quot;arn:aws:iam::&lt;your_account_id&gt;:role/tf_s3_backend_role&quot;,
                &quot;arn:aws:iam::&lt;your_account_id&gt;:role/tf_provisioning_role&quot;
            ]
        }
    ]
}</code></pre><h2 id="setup-terraform-with-terragrunt"><strong><strong>Setup Terraform with Terragrunt</strong></strong></h2><p>Now we need to inform Terraform how to use the new S3 backend. For my purposes, I use the Terragrunt binary to generate the S3 backend configuration per Terraform workspace. It works pretty well. Below is the contents of a file named <code>terragrunt.hcl</code>where our Terragrunt configuration resides. More about Terragrunt can be found here: <a href="https://terragrunt.gruntwork.io/docs/getting-started/quick-start/#keep-your-backend-configuration-dry">https://terragrunt.gruntwork.io/docs/getting-started/quick-start/#keep-your-backend-configuration-dry</a>.&#x200C;</p><pre><code>generate &quot;s3_backend&quot; {
  path      = &quot;tg-backend.tf&quot;
  if_exists = &quot;overwrite_terragrunt&quot;
  contents = &lt;&lt;EOF
terraform {
  backend &quot;s3&quot; {
    access_key  = &quot;${get_env(&quot;TF_VAR_aws_access_key_id&quot;)}&quot;
    secret_key  = &quot;${get_env(&quot;TF_VAR_aws_secret_access_key&quot;)}&quot;
    bucket      = &quot;${get_env(&quot;TF_VAR_s3_backend_bucket&quot;)}&quot;
    key         = &quot;terraform.tfstate&quot;
    region      = &quot;us-west-2&quot;
    encrypt     = true
    role_arn    = &quot;arn:aws:iam::${get_env(&quot;TF_VAR_account_id&quot;)}:role/tf_s3_backend_role&quot;
    external_id = &quot;&lt;random_identifier_can_be_anything&gt;&quot;
  }
}
EOF
}</code></pre><p>From the above file contents, we can see that sensitive items are pulled from the shell&apos;s environment variables. We can also see our previously configured S3 backend role being referenced. This configuration works well for solo developers or installed in some CI/CD process. Now, we should be able to <code>terragrunt init</code>, like so:&#x200C;</p><pre><code>&gt;terragrunt init 
Initializing modules...

Initializing the backend...

Initializing provider plugins...
- Reusing previous version of hashicorp/aws from the dependency lock file
- Using previously-installed hashicorp/aws v3.65.0

Terraform has been successfully initialized!</code></pre><p>After init, we can try to apply to ensure it all works:&#x200C;</p><pre><code>&gt; terragrunt apply

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # module.vpc_usw2_network_public.aws_internet_gateway.this[0] will be created
  + resource &quot;aws_internet_gateway&quot; &quot;this&quot; {
      + arn      = (known after apply)
      + id       = (known after apply)
      + owner_id = (known after apply)
      + tags     = {
          + &quot;Name&quot; = &quot;vpc-us-west-2-public&quot;
        }
      + tags_all = {
          + &quot;Name&quot; = &quot;vpc-us-west-2-public&quot;
        }
      + vpc_id   = (known after apply)
    }

 &lt;...redacted...&gt;
 
  # module.vpc_usw2_network_public.aws_vpc.this[0] will be created
  + resource &quot;aws_vpc&quot; &quot;this&quot; {
      + arn                              = (known after apply)
      + assign_generated_ipv6_cidr_block = false
      + cidr_block                       = &quot;10.0.1.0/24&quot;
      + default_network_acl_id           = (known after apply)
      + default_route_table_id           = (known after apply)
      + default_security_group_id        = (known after apply)
      + dhcp_options_id                  = (known after apply)
      + enable_classiclink               = (known after apply)
      + enable_classiclink_dns_support   = (known after apply)
      + enable_dns_hostnames             = true
      + enable_dns_support               = true
      + id                               = (known after apply)
      + instance_tenancy                 = &quot;default&quot;
      + ipv6_association_id              = (known after apply)
      + ipv6_cidr_block                  = (known after apply)
      + main_route_table_id              = (known after apply)
      + owner_id                         = (known after apply)
      + tags                             = {
          + &quot;Name&quot; = &quot;vpc-us-west-2-public&quot;
        }
      + tags_all                         = {
          + &quot;Name&quot; = &quot;vpc-us-west-2-public&quot;
        }
    }

Plan: 8 to add, 0 to change, 0 to destroy.

Do you want to perform these actions in workspace &quot;prod&quot;?
  Terraform will perform the actions described above.
  Only &apos;yes&apos; will be accepted to approve.

  Enter a value: </code></pre><p>Looks like it all works!</p><h2 id="references"><strong><strong>References</strong></strong></h2><ol><li><a href="https://8thlight.com/blog/mike-knepper/2021/05/11/minimally-privileged-terraform.html">https://8thlight.com/blog/mike-knepper/2021/05/11/minimally-privileged-terraform.html</a></li><li><a href="https://www.terraform.io/docs/language/settings/backends/s3.html">https://www.terraform.io/docs/language/settings/backends/s3.html</a></li></ol><p></p><aside><br></aside>]]></content:encoded></item><item><title><![CDATA[Egypt]]></title><description><![CDATA[<figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03142.JPG" width="2000" height="1333" loading="lazy" alt srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03142.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03142.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03142.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03142.JPG 2400w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03163.JPG" width="2000" height="3000" loading="lazy" alt srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03163.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03163.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03163.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03163.JPG 2400w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03189.JPG" width="2000" height="1333" loading="lazy" alt srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03189.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03189.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03189.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03189.JPG 2400w" sizes="(min-width: 720px) 720px"></div></div><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03205.JPG" width="2000" height="1333" loading="lazy" alt srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03205.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03205.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03205.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03205.JPG 2400w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03167.JPG" width="2000" height="1333" loading="lazy" alt srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03167.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03167.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03167.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03167.JPG 2400w" sizes="(min-width: 720px) 720px"></div></div><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03160.JPG" width="2000" height="1333" loading="lazy" alt srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03160.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03160.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03160.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03160.JPG 2400w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03155.JPG" width="2000" height="1333" loading="lazy" alt srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03155.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03155.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03155.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03155.JPG 2400w" sizes="(min-width: 720px) 720px"></div></div></div></figure>]]></description><link>https://bradsturkie.com/egypt/</link><guid isPermaLink="false">612f00469e1242287ac77999</guid><category><![CDATA[stuff]]></category><category><![CDATA[egypt]]></category><category><![CDATA[pics]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Wed, 01 Sep 2021 04:29:06 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2021/09/DSC03179.JPG" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03142.JPG" width="2000" height="1333" loading="lazy" alt="Egypt" srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03142.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03142.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03142.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03142.JPG 2400w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03163.JPG" width="2000" height="3000" loading="lazy" alt="Egypt" srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03163.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03163.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03163.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03163.JPG 2400w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03189.JPG" width="2000" height="1333" loading="lazy" alt="Egypt" srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03189.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03189.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03189.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03189.JPG 2400w" sizes="(min-width: 720px) 720px"></div></div><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03205.JPG" width="2000" height="1333" loading="lazy" alt="Egypt" srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03205.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03205.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03205.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03205.JPG 2400w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03167.JPG" width="2000" height="1333" loading="lazy" alt="Egypt" srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03167.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03167.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03167.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03167.JPG 2400w" sizes="(min-width: 720px) 720px"></div></div><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03160.JPG" width="2000" height="1333" loading="lazy" alt="Egypt" srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03160.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03160.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03160.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03160.JPG 2400w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2021/09/DSC03155.JPG" width="2000" height="1333" loading="lazy" alt="Egypt" srcset="https://bradsturkie.com/content/images/size/w600/2021/09/DSC03155.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2021/09/DSC03155.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/09/DSC03155.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/09/DSC03155.JPG 2400w" sizes="(min-width: 720px) 720px"></div></div></div></figure>]]></content:encoded></item><item><title><![CDATA[Pi-hole: 0 to 100]]></title><description><![CDATA[<p>We&apos;re going to setup a <a href="https://www.pishop.us/product/raspberry-pi-4-model-b-4gb/">Raspberry Pi 4B</a> computer as a Pi-hole device. The goal is to minimize annoying ad traffic, especially as <a href="https://www.eff.org/deeplinks/2020/07/why-eff-doesnt-support-cal-prop-24">Proposition 24</a> in California has passed. Since I&apos;m not up for paying for quality-of-service or &quot;play-to-play,&quot; I&apos;ve decided to</p>]]></description><link>https://bradsturkie.com/pi-hole/</link><guid isPermaLink="false">5ff50d07a3c4324549b53b3e</guid><category><![CDATA[raspberry pi]]></category><category><![CDATA[pi]]></category><category><![CDATA[pi-hole.net]]></category><category><![CDATA[pi-hole]]></category><category><![CDATA[ads]]></category><category><![CDATA[tech]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Wed, 06 Jan 2021 04:23:50 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2021/01/DSC02731--4-.JPG" medium="image"/><content:encoded><![CDATA[<img src="https://bradsturkie.com/content/images/2021/01/DSC02731--4-.JPG" alt="Pi-hole: 0 to 100"><p>We&apos;re going to setup a <a href="https://www.pishop.us/product/raspberry-pi-4-model-b-4gb/">Raspberry Pi 4B</a> computer as a Pi-hole device. The goal is to minimize annoying ad traffic, especially as <a href="https://www.eff.org/deeplinks/2020/07/why-eff-doesnt-support-cal-prop-24">Proposition 24</a> in California has passed. Since I&apos;m not up for paying for quality-of-service or &quot;play-to-play,&quot; I&apos;ve decided to try rid myself of the annoyances in another way.</p><p>If you&apos;re not familiar with the Pi-hole project, check it out here: <a href="https://pi-hole.net/">https://pi-hole.net/</a></p><h4 id="os-installation">OS Installation</h4><p>Our Pi needs an operating system. From their official documentation, this is the route I took: <a href="https://www.raspberrypi.org/documentation/installation/noobs.md">https://www.raspberrypi.org/documentation/installation/noobs.md</a></p><ul><li>Download the Raspberry Pi Imager software, run it, and install your flavor of OS. I choose Ubuntu Server 20.10 since I&apos;m familiar with it. </li></ul><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/01/choose_os.PNG" class="kg-image" alt="Pi-hole: 0 to 100" loading="lazy" width="682" height="466" srcset="https://bradsturkie.com/content/images/size/w600/2021/01/choose_os.PNG 600w, https://bradsturkie.com/content/images/2021/01/choose_os.PNG 682w"></figure><ul><li>Next, select your microSD from the list. I used a Sony camera as a medium since that&apos;s all I had as a reader/writer device!</li></ul><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/01/choose_drive.PNG" class="kg-image" alt="Pi-hole: 0 to 100" loading="lazy" width="682" height="466" srcset="https://bradsturkie.com/content/images/size/w600/2021/01/choose_drive.PNG 600w, https://bradsturkie.com/content/images/2021/01/choose_drive.PNG 682w"></figure><ul><li>Write!</li></ul><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/01/select_write.png" class="kg-image" alt="Pi-hole: 0 to 100" loading="lazy" width="682" height="466" srcset="https://bradsturkie.com/content/images/size/w600/2021/01/select_write.png 600w, https://bradsturkie.com/content/images/2021/01/select_write.png 682w"></figure><ul><li>Writing the OS to the microSD card might take some time. For me, it took about 15 minutes. Once the OS is on the card, you can just slap it into the Pi.</li></ul><p>Next, we need to physically setup the Pi and start it up. The Pi immediately starts when connected to power and the Ubuntu OS just loads and prompts you for a login. I ended up connecting to it via the tty and set a password initially. I then immediately went back to my desktop and connected via SSH. </p><p>I wanted to test the speed of this SD card. It&apos;s not going to break any records. Note that the microSD card I used is an older 16GB U1 device. </p><pre><code>root@ubuntu:~# dd if=/dev/zero of=1gb_file bs=1024k count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 68.4339 s, 15.3 MB/s</code></pre><p>It should suffice, let&apos;s check the space real quick:</p><pre><code>root@ubuntu:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           383M  4.0M  379M   2% /run
/dev/mmcblk0p2   15G  2.9G   11G  21% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           4.0M     0  4.0M   0% /sys/fs/cgroup
/dev/mmcblk0p1  253M   58M  195M  23% /boot/firmware
tmpfs           383M  4.0K  383M   1% /run/user/1000</code></pre><p>Lastly, I ran apt update and set the hostname. </p><pre><code>root@ubuntu:~# hostnamectl set-hostname pi</code></pre><p>Good enough to proceed!</p><h4 id="pi-hole-installation">Pi-hole Installation</h4><p>Next, let&apos;s install the Pi-hole service. Their <a href="https://github.com/pi-hole/pi-hole/#one-step-automated-install">documentation</a> makes it really simple. The install is launched with a shell command, and throughout some TUIs are shown. I ended up choosing mostly default options for this initial setup just to breeze through. </p><pre><code>root@ubuntu:~# curl -sSL https://install.pi-hole.net | bash

  [&#x2713;] Root user check

        .;;,.
        .ccccc:,.
         :cccclll:.      ..,,
          :ccccclll.   ;ooodc
           &apos;ccll:;ll .oooodc
             .;cll.;;looo:.
                 .. &apos;,&apos;.
                .&apos;,,,,,,&apos;.
              .&apos;,,,,,,,,,,.
            .&apos;,,,,,,,,,,,,....
          ....&apos;&apos;&apos;,,,,,,,&apos;.......
        .........  ....  .........
        ..........      ..........
        ..........      ..........
        .........  ....  .........
          ........,,,,,,,&apos;......
            ....&apos;,,,,,,,,,,,,.
               .&apos;,,,,,,,,,&apos;.
                .&apos;,,,,,,&apos;.
                  ..&apos;&apos;&apos;.

  [&#x2713;] Update local cache of available packages

  [&#x2713;] Checking apt-get for upgraded packages... up to date!

  [i] Installer Dependency checks...
  [i] Checking for dhcpcd5 (will be installed)
  [&#x2713;] Checking for git
  [&#x2713;] Checking for iproute2
  [&#x2713;] Checking for whiptail
  [i] Checking for dnsutils (will be installed)
  [i] Processing apt-get install(s) for: dhcpcd5 dnsutils, please wait...
--------------------------------------------------------------------------------
</code></pre><p>First TUI which presents some choices that you go through. Again, I went mostly default. If you need to changes settings post install, Pi-hole is totally flexible and will allow it via the CLI or web admin UI. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/01/install2.PNG" class="kg-image" alt="Pi-hole: 0 to 100" loading="lazy" width="1419" height="1484" srcset="https://bradsturkie.com/content/images/size/w600/2021/01/install2.PNG 600w, https://bradsturkie.com/content/images/size/w1000/2021/01/install2.PNG 1000w, https://bradsturkie.com/content/images/2021/01/install2.PNG 1419w" sizes="(min-width: 720px) 720px"></figure><p>More output...I also chose to install the web UI. Seems cool enough and the Pi I have is powerful enough. </p><pre><code>
  [&#x2713;] Enabling lighttpd service to start on reboot...
  [&#x2713;] Creating user &apos;pihole&apos;

  [i] FTL Checks...

  [&#x2713;] Detected ARMv7 processor (with hard-float support)
  [i] Checking for existing FTL binary...
  [&#x2713;] Downloading and Installing FTL
  [&#x2713;] Installing scripts from /etc/.pihole

  [i] Installing configs from /etc/.pihole...
  [&#x2713;] No dnsmasq.conf found... restoring default dnsmasq.conf...
  [&#x2713;] Copying 01-pihole.conf to /etc/dnsmasq.d/01-pihole.conf

  [i] Installing blocking page...
  [&#x2713;] Creating directory for blocking page, and copying files
  [&#x2713;] Backing up index.lighttpd.html

  [&#x2713;] Installing sudoer file

  [&#x2713;] Installing latest Cron script

  [&#x2713;] Installing latest logrotate script
  [i] Backing up /etc/dnsmasq.conf to /etc/dnsmasq.conf.old
  [&#x2713;] man pages installed and database updated
  [i] Testing if systemd-resolved is enabled
  [&#x2713;] Disabling systemd-resolved DNSStubListener and restarting systemd-resolved
  [&#x2713;] Restarting lighttpd service...
  [&#x2713;] Enabling lighttpd service to start on reboot...
  [i] Restarting services...
  [&#x2713;] Enabling pihole-FTL service to start on reboot...
  [&#x2713;] Restarting pihole-FTL service...
  [i] Creating new gravity database
  [i] Migrating content of /etc/pihole/adlists.list into new database
  [&#x2713;] Deleting existing list cache
  [i] Neutrino emissions detected...
  [&#x2713;] Pulling blocklist source list into range

  [&#x2713;] Preparing new gravity database
  [i] Using libz compression

  [i] Target: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
  [&#x2713;] Status: Retrieval successful
  [i] Received 58501 domains

  [i] Target: https://mirror1.malwaredomains.com/files/justdomains
  [&#x2717;] Status: Not found
  [&#x2717;] List download failed: no cached list available

  [&#x2713;] Storing downloaded domains in new gravity database
  [&#x2713;] Building tree
  [&#x2713;] Swapping databases
  [i] Number of gravity domains: 58501 (58501 unique domains)
  [i] Number of exact blacklisted domains: 0
  [i] Number of regex blacklist filters: 0
  [i] Number of exact whitelisted domains: 0
  [i] Number of regex whitelist filters: 0
  [&#x2713;] Flushing DNS cache
  [&#x2713;] Cleaning up stray matter

  [&#x2713;] DNS service is listening
     [&#x2713;] UDP (IPv4)
     [&#x2713;] TCP (IPv4)
     [&#x2713;] UDP (IPv6)
     [&#x2713;] TCP (IPv6)

  [i] Pi-hole blocking will be enabled
  [i] Enabling blocking
  [&#x2713;] Flushing DNS cache
  [&#x2713;] Pi-hole Enabled
  [i] Web Interface password: HCK7tZ5_
  [i] This can be changed using &apos;pihole -a -p&apos;

  [i] View the web interface at http://pi.hole/admin or http://192.168.1.155/admin

  [i] You may now configure your devices to use the Pi-hole as their DNS server
  [i] Pi-hole DNS (IPv4): 192.168.1.155
  [i] Pi-hole DNS (IPv6): fd65:2ee2:5c65:0:dea6:32ff:fe7f:c555
  [i] If you set a new IP address, please restart the server running the Pi-hole

  [i] The install log is located at: /etc/pihole/install.log
Installation Complete!</code></pre><p>Finally, you will get one final TUI, like so:</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/01/install3_LI.jpg" class="kg-image" alt="Pi-hole: 0 to 100" loading="lazy" width="1419" height="1482" srcset="https://bradsturkie.com/content/images/size/w600/2021/01/install3_LI.jpg 600w, https://bradsturkie.com/content/images/size/w1000/2021/01/install3_LI.jpg 1000w, https://bradsturkie.com/content/images/2021/01/install3_LI.jpg 1419w" sizes="(min-width: 720px) 720px"></figure><p>That&apos;s it! The installer is very well polished and a joy to use. </p><p>Lastly, I updated the web UI password, like so:</p><pre><code>root@pi:~# pihole -a -p
Enter New Password (Blank for no password):
Confirm Password:
  [&#x2713;] New password set</code></pre><h4 id="setup-router-to-use-pi-hole-as-dns-server">Setup Router to Use Pi-hole as DNS Server</h4><p>With the pi-hole service running, I need to setup my clients to use it. I&apos;m running a device with OpenWRT installed. To adjust the DNS settings, you have to modify the LAN interface, similar to the images below. This will force the router to send modified &#xA0;DHCP options to the clients. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/01/dhcp_v4.PNG" class="kg-image" alt="Pi-hole: 0 to 100" loading="lazy" width="1383" height="808" srcset="https://bradsturkie.com/content/images/size/w600/2021/01/dhcp_v4.PNG 600w, https://bradsturkie.com/content/images/size/w1000/2021/01/dhcp_v4.PNG 1000w, https://bradsturkie.com/content/images/2021/01/dhcp_v4.PNG 1383w" sizes="(min-width: 720px) 720px"></figure><p>...and</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/01/dhcp_v6.PNG" class="kg-image" alt="Pi-hole: 0 to 100" loading="lazy" width="1381" height="929" srcset="https://bradsturkie.com/content/images/size/w600/2021/01/dhcp_v6.PNG 600w, https://bradsturkie.com/content/images/size/w1000/2021/01/dhcp_v6.PNG 1000w, https://bradsturkie.com/content/images/2021/01/dhcp_v6.PNG 1381w" sizes="(min-width: 720px) 720px"></figure><p>Once that is done, you can apply the change and your clients <em>should</em> start getting their DNS request forwarded to the pi-hole service (you may need to refresh the DHCP leases via reboot or manually). I also setup the pi-hole to have a static lease so its IP doesn&apos;t change. This is an important step as you could just accidentally send DNS requests to some other host if the IP were to change and things would be...very broken. </p><h4 id="testing-effectiveness">Testing Effectiveness</h4><p>I didn&apos;t test too much with any quantitative metrics, but here&apos;s some screen caps showing improvement. </p><p>Before adjusting the DNS server in router, not much going on. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/01/web_ui_not_applied.PNG" class="kg-image" alt="Pi-hole: 0 to 100" loading="lazy" width="1922" height="1554" srcset="https://bradsturkie.com/content/images/size/w600/2021/01/web_ui_not_applied.PNG 600w, https://bradsturkie.com/content/images/size/w1000/2021/01/web_ui_not_applied.PNG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/01/web_ui_not_applied.PNG 1600w, https://bradsturkie.com/content/images/2021/01/web_ui_not_applied.PNG 1922w" sizes="(min-width: 720px) 720px"></figure><p>After adjusting DNS server in router, we can see the traffice rolling in. It comes quickly!</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/01/its_working.PNG" class="kg-image" alt="Pi-hole: 0 to 100" loading="lazy" width="1922" height="1554" srcset="https://bradsturkie.com/content/images/size/w600/2021/01/its_working.PNG 600w, https://bradsturkie.com/content/images/size/w1000/2021/01/its_working.PNG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/01/its_working.PNG 1600w, https://bradsturkie.com/content/images/2021/01/its_working.PNG 1922w" sizes="(min-width: 720px) 720px"></figure><p>Also, as we can see, the cnn.com site is less cancerous. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/01/old_school.PNG" class="kg-image" alt="Pi-hole: 0 to 100" loading="lazy" width="2000" height="1094" srcset="https://bradsturkie.com/content/images/size/w600/2021/01/old_school.PNG 600w, https://bradsturkie.com/content/images/size/w1000/2021/01/old_school.PNG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/01/old_school.PNG 1600w, https://bradsturkie.com/content/images/size/w2400/2021/01/old_school.PNG 2400w" sizes="(min-width: 720px) 720px"></figure><p>I also found this page: <a href="http://fuzzthepiguy.tech/adtest/">http://fuzzthepiguy.tech/adtest/</a> </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2021/01/fuzz.PNG" class="kg-image" alt="Pi-hole: 0 to 100" loading="lazy" width="1922" height="1554" srcset="https://bradsturkie.com/content/images/size/w600/2021/01/fuzz.PNG 600w, https://bradsturkie.com/content/images/size/w1000/2021/01/fuzz.PNG 1000w, https://bradsturkie.com/content/images/size/w1600/2021/01/fuzz.PNG 1600w, https://bradsturkie.com/content/images/2021/01/fuzz.PNG 1922w" sizes="(min-width: 720px) 720px"></figure><p>Seems good! I&apos;ll start driving my network around more and see what other improvements I notice, but so far, so good. </p><h4 id="conclusion">Conclusion</h4><p>I was expecting this install and deployment to take a lot of time. Surprisingly, this took about an hour without much ado. Assuming you&apos;re familiar with all the technologies involved, it&apos;s not terribly difficult to accomplish. I would seriously recommend this setup. The Raspberry Pi is a cool device and the Pi-hole service is perfect for it. I may slap some more services on the Raspberry Pi in the near future but Pi-hole was the killer service I wanted first. </p><p>Lastly, I&apos;d recommend donating the Pi-hole project: <a href="https://pi-hole.net/donate/">https://pi-hole.net/donate/</a></p>]]></content:encoded></item><item><title><![CDATA[Replacing Brake Pads on Sondors Fold X]]></title><description><![CDATA[<p>At about 650 miles of riding, it was time for new brake pads on my <a href="https://bradsturkie.com/sondors-fold-x-review/">Sondors Fold X</a>. I had completely worn out the rear brake pads to the point where there was nearly zero stopping power. It was a little dangerous to ride like that to be honest. Moreover,</p>]]></description><link>https://bradsturkie.com/untitled/</link><guid isPermaLink="false">5f868e02a992d41817b6fab4</guid><category><![CDATA[shimano]]></category><category><![CDATA[shimano b01s]]></category><category><![CDATA[stuff]]></category><category><![CDATA[sondors fold x]]></category><category><![CDATA[sondors]]></category><category><![CDATA[tektro e10.11]]></category><category><![CDATA[tektro]]></category><category><![CDATA[brakes]]></category><category><![CDATA[brake pads]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Wed, 14 Oct 2020 05:55:22 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2020/10/DSC02622.JPG" medium="image"/><content:encoded><![CDATA[<img src="https://bradsturkie.com/content/images/2020/10/DSC02622.JPG" alt="Replacing Brake Pads on Sondors Fold X"><p>At about 650 miles of riding, it was time for new brake pads on my <a href="https://bradsturkie.com/sondors-fold-x-review/">Sondors Fold X</a>. I had completely worn out the rear brake pads to the point where there was nearly zero stopping power. It was a little dangerous to ride like that to be honest. Moreover, the front pads were squealing loud enough to wake up the entire neighborhood. They both needed replacement. Unfortunately that was more difficult than it needed to be. </p><p>In stock form, the Sondors Fold X from 2019 comes with Tektro brake components. Given that, the stock pads are Tektro E10.11 pads. They are not uncommon in theory. But given the circumstance of things today &#x2013; like Covid delays &#x2013; they were hard to find from a reputable source. Sondor&apos;s own website didn&apos;t even carry the parts. Super lame!</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/10/DSC02621.JPG" class="kg-image" alt="Replacing Brake Pads on Sondors Fold X" loading="lazy" width="2000" height="1333" srcset="https://bradsturkie.com/content/images/size/w600/2020/10/DSC02621.JPG 600w, https://bradsturkie.com/content/images/size/w1000/2020/10/DSC02621.JPG 1000w, https://bradsturkie.com/content/images/size/w1600/2020/10/DSC02621.JPG 1600w, https://bradsturkie.com/content/images/size/w2400/2020/10/DSC02621.JPG 2400w" sizes="(min-width: 720px) 720px"></figure><p>At first I assumed I needed those exact Tektro brake pads. But after some searching I found the following information: <em>Shimano B01S pads are direct drop-in replacments for Tektro E10.11 pads. </em>Some people even remark that they are superior.</p><p>Once I installed these new pads, which also come with the opening spring and extra Cotter pins, I was imediately impressed with the new found stopping power. Additionally, the lame squealing was also cured. These new pads are quiet, for now at least. I bought two pairs for about $30 from Ebay. While this price seems high, the peace of mind of getting a known quality part was worth it. </p><p></p>]]></content:encoded></item><item><title><![CDATA[Owner Review - Floyd Table]]></title><description><![CDATA[<p>As with all my owner reviews, I bought this item on my own volition. I want other real people to stumble upon this page and make their own conclusions. Here&apos;s what I discovered.</p><h5 id="shipping-and-unboxing">Shipping and Unboxing</h5><p>The Floyd table comes in two packages. If you&apos;re lucky</p>]]></description><link>https://bradsturkie.com/owner-review-floyd-table/</link><guid isPermaLink="false">5f45ef937f2c350fe124927f</guid><category><![CDATA[owner review]]></category><category><![CDATA[floyd]]></category><category><![CDATA[floyd table]]></category><category><![CDATA[made in detroit]]></category><category><![CDATA[review]]></category><category><![CDATA[stuff]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Wed, 26 Aug 2020 05:46:58 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2020/08/DSC02570.JPG" medium="image"/><content:encoded><![CDATA[<img src="https://bradsturkie.com/content/images/2020/08/DSC02570.JPG" alt="Owner Review - Floyd Table"><p>As with all my owner reviews, I bought this item on my own volition. I want other real people to stumble upon this page and make their own conclusions. Here&apos;s what I discovered.</p><h5 id="shipping-and-unboxing">Shipping and Unboxing</h5><p>The Floyd table comes in two packages. If you&apos;re lucky they will arrive together. Floyd appears to ship via FedEx and my packages arrived on different days. I received the top first and the legs the next day which was sort of annoying. Also, the tracking numbers were switched so box one arrived under the tracking number of box two and vice versa. This sort of scared me into thinking the second box would never find itself to my door. But it did!</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/08/DSC02558.JPG" class="kg-image" alt="Owner Review - Floyd Table" loading="lazy"></figure><p>The box makes it hard to miss what&apos;s inside. It&apos;s a table! The table weights about 70 lbs. It might be a two person lift, you&apos;ve been warned! The packaging is nice enough and far from ho-hum boring. Let&apos;s see what&apos;s inside. </p><h4 id="unboxing">Unboxing</h4><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/08/DSC02559.JPG" class="kg-image" alt="Owner Review - Floyd Table" loading="lazy"></figure><p>Inside box one is the beautiful belly of the table top. It&apos;s even nice on this side, a side where no one may ever see (create your own meaning here). The bulk and mass of the top is clearly apparent here. Per Floyd instructions, it&apos;s best to assemble it from this starting position so I left it here and opened box two.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/08/DSC02560.JPG" class="kg-image" alt="Owner Review - Floyd Table" loading="lazy"></figure><p>This box is gorgeous in its own right. It&apos;s not overstuffed or intimidating. The legs are cinched together with nice velcro straps. Reuse these things for your unruly cables! After each box is open and available, it&apos;s time to assemble!</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/08/DSC02561.JPG" class="kg-image" alt="Owner Review - Floyd Table" loading="lazy"></figure><h4 id="assembly">Assembly</h4><p>Really not much to slow you down in assembling this table. Legs align with holes and hand bolts fasten the legs to the table. You really have to be drunk to mess this up. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/08/DSC02566.JPG" class="kg-image" alt="Owner Review - Floyd Table" loading="lazy"></figure><p>After about 3 minutes of screwing...you&apos;re done. Typical Tuesday. You now have an upside down table. Cool, let&apos;s flip it!</p><h5 id="impressions-and-build-quality">Impressions and Build Quality</h5><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/08/DSC02567.JPG" class="kg-image" alt="Owner Review - Floyd Table" loading="lazy"></figure><p>This thing is really nicely done. It&apos;s very stout. The legs are solid and weighty. There&apos;s no sharp edges or metal burrs to harm your hands. It&apos;s so stout, you can lay on it. I&apos;d say up to 300 LBS is safe. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/08/DSC02568.JPG" class="kg-image" alt="Owner Review - Floyd Table" loading="lazy"></figure><p>You can see the amazing layering of wood material here. It&apos;s not your typical Ikea landfill merchandise. The routing and sanding along the edges is top notch. There&apos;s no excess dust or roughness to be found.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/08/DSC02569.JPG" class="kg-image" alt="Owner Review - Floyd Table" loading="lazy"></figure><p>I chose the &quot;Fog&quot; linoleum surface. It&apos;s not white which is good. White table tops for eating are not appetizing. The surface seems like it would be porous but it does not appear to hold moisture. Hopefully no asbestos here!</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/08/DSC02571.JPG" class="kg-image" alt="Owner Review - Floyd Table" loading="lazy"></figure><p>The Floyd Table fits the space nicely. I bounced around a bit and the Table was the right thing for this space.</p><h5 id="dinner-time">Dinner Time</h5><p>Overall, the Floyd Table is a well made, American made, beautiful table. It can double as a desk as well. For me, I purchased it fully intending to turn it into a desk at some point. It&apos;s not my forever dining table. But today, it&apos;s perfect for what I need it to do. I dressed it up with Ikea Odger chairs in blue. It works. I&apos;m not a designer but the look and fit is good and only slightly feels like a cafeteria. I&apos;d buy this product again. In fact, I might try to snag some round side tables soon which they also make. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/08/DSC02575.JPG" class="kg-image" alt="Owner Review - Floyd Table" loading="lazy"></figure>]]></content:encoded></item><item><title><![CDATA[Owner Review: Vuori Transit Jogger Pants]]></title><description><![CDATA[<h2 id="about-vuori">About Vuori</h2><p> Vuoris is pretty new on the scene. They make higher margin products and have a strong presence in San Diego&apos;s brick-and-mortar stores. The first product I bought from them were a pair of <a href="https://vuoriclothing.com/products/meta-pant-charcoal">Meta</a> pants from REI as I needed some casual but stylish pants for</p>]]></description><link>https://bradsturkie.com/owner-review-vuori-transit-jogger-pants/</link><guid isPermaLink="false">5e6d83f0f3c4df08c4614b51</guid><category><![CDATA[vuori]]></category><category><![CDATA[stuff]]></category><category><![CDATA[owner review]]></category><category><![CDATA[jogger]]></category><category><![CDATA[transit jogger]]></category><category><![CDATA[pants]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Wed, 08 Apr 2020 05:34:02 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2020/04/20200314_103247.jpg" medium="image"/><content:encoded><![CDATA[<h2 id="about-vuori">About Vuori</h2><img src="https://bradsturkie.com/content/images/2020/04/20200314_103247.jpg" alt="Owner Review: Vuori Transit Jogger Pants"><p> Vuoris is pretty new on the scene. They make higher margin products and have a strong presence in San Diego&apos;s brick-and-mortar stores. The first product I bought from them were a pair of <a href="https://vuoriclothing.com/products/meta-pant-charcoal">Meta</a> pants from REI as I needed some casual but stylish pants for a trip. I didn&apos;t know what Vuori was at that time or that were based out of Encinitas which is just a stone&apos;s throw away from San Diego proper. Being a So Cal native myself, I decided to keep supporting their product offering and buy more items. One of those recent buys was the Vuori Transit Jogger in black. </p><h2 id="the-transit-jogger">The Transit Jogger</h2><p>The <a href="https://vuoriclothing.com/products/transit-jogger-black">Vuori Transit joggers</a> were everything I was looking for in a casual pant. They work in a variety of scenarios. I&apos;ve already run in them, went to work in them and wore them out to a restaurant. They are stylish and comfortable and can be worn almost anywhere really. They skew towards the athletic wear side in look and feel and won&apos;t pass as anything formal. They are basically a modern take on sweat pants but without the attached negative associations. </p><h2 id="highlights">Highlights</h2><ul><li>Great style &#x2013; They are black high ankle pants. Can&apos;t really gripe about this. You might get made fun by Trumpers</li><li>Comfortable - No major seams or hard points to annoy you. Way better than denim. Even with zippered pockets, so much care and thought tucks them away so you don&apos;t notice them.</li><li>Mobility - The pants are 9% elastane (fancy for spandex). I can bend and stretch and drink beer without issue.</li><li>Construction - They are made pretty well with strong stitching everywhere I can find. For the price, I would hope that is the case. They seem to be double layered too. The should be durable</li></ul><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/20200314_103300_HDR.jpg" class="kg-image" alt="Owner Review: Vuori Transit Jogger Pants" loading="lazy"></figure><h2 id="lowlights">Lowlights</h2><ul><li>Polyester. Plastic pants will make you sweat. Summer will probably give you some sweaty knee caps.</li><li>Made in China. It&apos;s 2020, we don&apos;t need to do this anymore.</li><li>Questionable waist elastic durability. Time will tell if the elastic lasts more than a few months.</li><li>Hard to get take off -- When removing the pants the ankle elastic is tight and makes taking the pants off a little bit...acrobatic.</li></ul><p>Overall the Transit Jogger is a good piece of every day clothing. The price is high but it almost always found cheaper. There are coupons and sales to be found. &#xA0;I&apos;d recommend them! &#xA0;</p>]]></content:encoded></item><item><title><![CDATA[Adding Hour Meter to a Honda EU2200i Generator]]></title><description><![CDATA[<p>I like to camp a few times a year and one item I&apos;ve never had was a portable generator. With everything happening in the world currently, what better time to sink some money into portable power. Out of the box, the Honda EU2200i does not come with an</p>]]></description><link>https://bradsturkie.com/adding-hour-meter-to-a-honda-eu2200i-generator/</link><guid isPermaLink="false">5e8d4bdd1efa241b741fa83c</guid><category><![CDATA[honda generator]]></category><category><![CDATA[honda]]></category><category><![CDATA[generator]]></category><category><![CDATA[eu2200i]]></category><category><![CDATA[hardline]]></category><category><![CDATA[hour meter]]></category><category><![CDATA[stuff]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Wed, 08 Apr 2020 05:22:17 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2020/04/DSC02440.JPG" medium="image"/><content:encoded><![CDATA[<img src="https://bradsturkie.com/content/images/2020/04/DSC02440.JPG" alt="Adding Hour Meter to a Honda EU2200i Generator"><p>I like to camp a few times a year and one item I&apos;ve never had was a portable generator. With everything happening in the world currently, what better time to sink some money into portable power. Out of the box, the Honda EU2200i does not come with an easy to use hour meter. Moreover, all maintenance schedules are predicated on hour intervals. What gives? Granted, it does have an LED indicator that will display hour ranges, but nothing in any detail. Being a new generator I wanted some more granularity for the hour reading moving forward. Enter the <a href="https://www.hardlineproducts.com/product/hour-meter/">Hardline hour meter</a>. This device works on all sorts of motors and is right at home working with the Honda. Here&apos;s what you will need to get started.</p><p>Tools</p><ul><li>Phillips screwdriver</li><li>8MM socket</li></ul><p>Parts List</p><ul><li>Hardline hour meter - Part number HR-8063-3</li><li><a href="https://smile.amazon.com/Yoursme-Universal-Mounting-Bracket-Generator/dp/B07G8ZYKG6/ref=sr_1_1?dchild=1&amp;keywords=yoursme+tach+hour&amp;qid=1586318815&amp;s=lawn-garden&amp;sr=1-1">Yoursme hour meter mounting bracket</a></li><li>Small zip ties</li><li>Two (2) 3/4&quot; #8 machine screws with nut</li></ul><p>Now, let&apos;s get to installing. Take off the side and top maintenance covers. You only need a Phillips screwdriver on the side. The top maintenance door requires no tools. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02421.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>...and the top cover</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02423.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>With the maintenance panels removed, we can get started. Remove the two 8MM bolts that hold part of the air intake assembly in place. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02422-1.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>With those bolts out of the way, let&apos;s unbox our stuff.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02418.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02419.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>The hour meter comes with a few items but we won&apos;t use the double-sided tape of the tiny screws. The stickers are a nice touch. </p><p>In order to mount the Hardline hour meter to the mounting plate, I used #8 1.5&quot; machine screws with a nut. The setup looks like this:</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02426.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>Before I could mount the meter to the plate, I had to run and connect the wire. That process is straightforward as the wire snakes into the meter and then loops into a housing. Pull the slack firmly but not too hard. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02428.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>After the wire is run, we can then snake it through the plate and then bolt down our meter. The result is shown below</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02430.JPG" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>...and the back (I had to trim the nuts with a hacksaw because they were too long. 3/4&quot; is the right size!)</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02431.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>With the plate and meter now combined, I affixed the duo to back on to the generator, like so:</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02437.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>Next, I ran all the slack up behind the air boxes and towards the spark plug maintenance door. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02433.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>This is a ton of slack for this application. Next, pop-off the spark plug boot as this makes it easier to wind the meter wire around the cable. Essentially, pull out any extra slack in the meter wire and make a few loops around the spark plug wire. I did about four loops and came up with the following:</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02439.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>As you can see, there is a ton of slack. Hardline says you can cut off this excess, so I did with this result:</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02440.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>Next, let&apos;s reattach the spark plug wire.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02441.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>With everything all connected and tied, it&apos;s time to test. The hour meter displays tenths of hour, so six minutes. I ran a quick test and the meter works! It&apos;s hard to see but the meter incremented to &quot;0.1&quot; hours. Replace your panels and you&apos;re all set. Happy power generation!</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2020/04/DSC02442.png" class="kg-image" alt="Adding Hour Meter to a Honda EU2200i Generator" loading="lazy"></figure><p>Overall, this is a simple modification that adds a ton of usefulness. The meter should last for several years. Hardline states on their website that the battery should run for 10 years. Why Honda does not include this functionality out of the box is odd. While not super cheap, at over $40 for both parts, this mod is well worth the peace of mind year after year. </p>]]></content:encoded></item><item><title><![CDATA[Owner Review: Sondors Fold X (2019) Review]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><strong>Note:</strong> This is a product I actually researched and purchased with my own money. No one paid me to say these things. Look for other &quot;<a href="https://bradsturkie.com/tag/owner-review/">Owner Reviews</a>&quot; on this page.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h1 id="background">Background</h1>
<!--kg-card-end: markdown--><p>I spent a significant amount of time wading the mid-level electronic bike realm pool. Since this niche</p>]]></description><link>https://bradsturkie.com/sondors-fold-x-review/</link><guid isPermaLink="false">5d3d23d4e432a21081ff7884</guid><category><![CDATA[owner review]]></category><category><![CDATA[sondors]]></category><category><![CDATA[fold x]]></category><category><![CDATA[stuff]]></category><category><![CDATA[ebike]]></category><category><![CDATA[mate]]></category><category><![CDATA[radmini]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Sun, 15 Sep 2019 07:52:42 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2019/09/DSC01836-s.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://bradsturkie.com/content/images/2019/09/DSC01836-s.jpg" alt="Owner Review: Sondors Fold X (2019) Review"><p><strong>Note:</strong> This is a product I actually researched and purchased with my own money. No one paid me to say these things. Look for other &quot;<a href="https://bradsturkie.com/tag/owner-review/">Owner Reviews</a>&quot; on this page.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h1 id="background">Background</h1>
<!--kg-card-end: markdown--><p>I spent a significant amount of time wading the mid-level electronic bike realm pool. Since this niche is relatively new and ever expanding, it was difficult to figure out which products were worth a look. Let&apos;s start with the appearance of the bike itself.</p><!--kg-card-begin: markdown--><h1 id="style">Style</h1>
<!--kg-card-end: markdown--><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2019/09/DSC01817.png" width="1080" height="720" loading="lazy" alt="Owner Review: Sondors Fold X (2019) Review" srcset="https://bradsturkie.com/content/images/size/w600/2019/09/DSC01817.png 600w, https://bradsturkie.com/content/images/size/w1000/2019/09/DSC01817.png 1000w, https://bradsturkie.com/content/images/2019/09/DSC01817.png 1080w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2019/09/DSC01826.png" width="1080" height="720" loading="lazy" alt="Owner Review: Sondors Fold X (2019) Review" srcset="https://bradsturkie.com/content/images/size/w600/2019/09/DSC01826.png 600w, https://bradsturkie.com/content/images/size/w1000/2019/09/DSC01826.png 1000w, https://bradsturkie.com/content/images/2019/09/DSC01826.png 1080w" sizes="(min-width: 720px) 720px"></div></div></div></figure><p>The Fold X, especially in matte black, looks like something Batman would deploy out of his recently disabled Batmobile as a quick, surefire backup to pursue his foe. It&apos;s a head turner for the young and old alike. People will literally holler at you with such things as &quot;Is that electric?!&quot; to &quot;I need me one of those!&quot; and my favorite &quot;Can I rent that!?&quot; &#xA0;The Fold X and maybe the Mate (<a href="https://mate.bike/en/">https://mate.bike/en/</a>) are the best looking bikes in this segment. The look was a huge draw for myself. While a bike like the RadMini might actually be a better and more utilitarian appliance, the Fold X is styled so much better. The hidden, frame-installed battery and the ultra styled frame are absolutely superior to any of the Rad Power bikes.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2019/09/DSC01828.png" width="1080" height="720" loading="lazy" alt="Owner Review: Sondors Fold X (2019) Review" srcset="https://bradsturkie.com/content/images/size/w600/2019/09/DSC01828.png 600w, https://bradsturkie.com/content/images/size/w1000/2019/09/DSC01828.png 1000w, https://bradsturkie.com/content/images/2019/09/DSC01828.png 1080w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://bradsturkie.com/content/images/2019/09/DSC01825.png" width="1080" height="720" loading="lazy" alt="Owner Review: Sondors Fold X (2019) Review" srcset="https://bradsturkie.com/content/images/size/w600/2019/09/DSC01825.png 600w, https://bradsturkie.com/content/images/size/w1000/2019/09/DSC01825.png 1000w, https://bradsturkie.com/content/images/2019/09/DSC01825.png 1080w" sizes="(min-width: 720px) 720px"></div></div></div></figure><p>Another style point to consider is the purpose of the bike. It&apos;s a cruiser. Don&apos;t be mistaken, this is not a hardcore commuter. Going 20 plus miles on this bike is absolutely murder on your body. As a last mile commuter? Sure! As an everyday messenger/commuter? No way! It&apos;s just not shaped right to allow for long seat times. It&apos;s way better on the boardwalk and cruising downtown. </p><!--kg-card-begin: markdown--><h1 id="functionality">Functionality</h1>
<!--kg-card-end: markdown--><p>The bike itself features some cool functionality. The major selling point is that it folds. It shrinks so much in size when folded. It will absolutely fit in a regular car. It&apos;s about 60 pounds so it&apos;s pretty heavy but it&apos;s manageable. </p><p>The bike LCD screen is able to display basic information such as MPH, an overall odometer and some other metrics that might be useful. There&apos;s supposedly some buried, unused, functionality that I&apos;ve yet to explore. </p><p>Also, the battery locks inside the body. It comes with its own key. An average thief would have an absolute conniption trying to steal your battery. Rest assured, a hardcore thief will steal everything!</p><!--kg-card-begin: markdown--><h1 id="2019changes">2019 Changes</h1>
<!--kg-card-end: markdown--><p>It seems as if there are several changes to the 2019 model as compared to earlier versions. I don&apos;t have an exact list but I have ridden a &quot;launch&quot; Fold X for reference.</p><!--kg-card-begin: markdown--><p>Here&apos;s some changes:</p>
<ul>
<li>2019 Fold X frame is larger, and of better quality than the earliest launch model</li>
<li>2019 Fold X now routes &quot;unsightly&quot; cables through the frame rather than underneath it</li>
<li>2019 Fold X throttle is different than earlier models</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h1 id="assembly">Assembly</h1>
<!--kg-card-end: markdown--><p>Assembly is fairly easy if you&apos;re familiar with basic tools and bikes in general. If either of those are false for you, you&apos;ll likely need to recruit someone to help put it together. &#xA0;Honestly though, give the assembly a shot. It&apos;s fairly well documented (albeit somewhat outdated) on YouTube here: <a href="https://www.youtube.com/watch?v=63h8f-KxwI0">https://www.youtube.com/watch?v=63h8f-KxwI0</a>. All parts come in one box, including a small tool set and I would say the bike is 70 percent assembled. The hard stuff is done at the factory such as bottom brackets, motor hubs, derailleurs and wiring. What is not done is the following:</p><!--kg-card-begin: markdown--><ul>
<li>Front tire attachment</li>
<li>Handle bar attachment</li>
<li>LCD attachment</li>
<li>Goose neck adjustment</li>
</ul>
<!--kg-card-end: markdown--><p>If you notice in some of the pictures, I have the goose neck actually facing backwards (at least according to the specification). You could leave it how it&apos;s shown on this page, but when folded, it folds...awkwardly. </p><!--kg-card-begin: markdown--><h1 id="accessories">Accessories</h1>
<p>Unfotunately this bike has no lights in any configuration. It DOES have an optional rear-mounted rack but that&apos;s about it. Not a lot to choose from and that&apos;s a shame. I&apos;ve added my own lights for night riding but they are the furthest thing from what I would conside &quot;integrated.&quot; The LCD has some sort of light support too but nothing officially from Sondors as of this post.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h1 id="support">Support</h1>
<!--kg-card-end: markdown--><p>I did have to recruit support since I actually bought two of these bikes. One bike has a squeaky hub and/or cassette. The issue as of this posting is yet unresolved. Sondors touts a 90-day warranty. This is pretty shitty. Other companies will do better. The support can be best described as generic. You send an e-mail, some ticket in some shit system is created and some random person answers your ticket with scripted, generic responses. It&apos;s the absolute epitome of what happens when companies scrape for every dollar. Since my issue is yet to be resolved, I&apos;d say support for the bike is &quot;average&quot; at best. As a side note, I did have a friend who had his Fold X have not one, but TWO badly bent forks during shipping. His bike was made whole eventually so reaching to support CAN work it appears. Your mileage may vary here! </p><!--kg-card-begin: markdown--><h1 id="bonusplayabike">Bonus: Playa Bike</h1>
<!--kg-card-end: markdown--><p>The Fold X made it to Burning Man 2019. The folding capability was huge. A friend and I were able to fit two Fold Xs in one of those over-cab truck campers. It took some extra muscle to get them through the door, but they fit just fine. Moreover, this bike is more than capable of handling the conditions at Burning Man. The range is more than enough to get through the week with just one or two charges. This year, I got by with just one charge. Overall I did about 35 miles on Playa. Is that a lot or a little? I don&apos;t know. I do know that it was way easier to cross the city and it was way easier than peddling the slow ass Huffy Cranbrook I had for four years prior (I still love you &quot;Gold Dust&quot;).</p><p>Post burn bike cleanup was fairly easy for year one. I simply used a soap gun with Dr. Bronner&apos;s and sprayed the entire thing down. With the ever present Playa rust dust, I made sure to wipe down immediately with dry towels and then start applying silicone lube...everywhere. I basically had a towel with that lube saturating it and made sure to hit all the metal components while missing the rubber and such. I then made sure to grease all the moving parts, including the chain. I think after about two years on Playa, a complete tear down and maintenance may be necessary. &#xA0;Consider year one the easy year!</p><!--kg-card-begin: markdown--><h1 id="overall">Overall</h1>
<!--kg-card-end: markdown--><p>In the end, I&apos;d purchase the Sondors Fold X again. It&apos;s pretty good. At about $1500, it&apos;s cost performance is on par for this segment. It&apos;s one of the better looking bikes here and it shows. The support issues I&apos;ve had are minor and in the end, it&apos;s mostly a normal bike that demands regular normal bike maintenance. The only real competition to this bike is the the Mate X. If I really went back in time, I&apos;d buy a Mate X and a Fold X for an even better comparison of each. Having accumulated about 200 miles of riding, I&apos;m happy with the purchase so far! </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/09/DSC01814.png" class="kg-image" alt="Owner Review: Sondors Fold X (2019) Review" loading="lazy"></figure>]]></content:encoded></item><item><title><![CDATA[Kwon Alexander and the 49ers Linebacker Legacy]]></title><description><![CDATA[<p></p><p>From 2011 to 2013 the San Francisco 49ers had the most dominant linebacker corps in the NFL. Patrick Willis and Navarro Bowman highlighted a squad that also featured a now disgraced Aldon Smith and wily veteran Ahmad Brooks. This squad decided games, helping the 49ers go 36-11-1 over that three</p>]]></description><link>https://bradsturkie.com/kwon-alexander-and-the-49ers-linebacker-legacy/</link><guid isPermaLink="false">5c874138e432a21081ff7720</guid><category><![CDATA[49ers]]></category><category><![CDATA[nfl]]></category><category><![CDATA[kwon alexander]]></category><category><![CDATA[sports]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Fri, 15 Mar 2019 23:58:43 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2019/03/usatsi_11278479.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://bradsturkie.com/content/images/2019/03/usatsi_11278479.jpg" alt="Kwon Alexander and the 49ers Linebacker Legacy"><p></p><p>From 2011 to 2013 the San Francisco 49ers had the most dominant linebacker corps in the NFL. Patrick Willis and Navarro Bowman highlighted a squad that also featured a now disgraced Aldon Smith and wily veteran Ahmad Brooks. This squad decided games, helping the 49ers go 36-11-1 over that three season span. &#xA0;To boot, San Francisco was a top three defense by DVOA in 2011 and 2012 with only Chicago and Seattle doin better [1]. This squad, however, was only assembled for a very short time and they never the snagged the sport&apos;s highest pinnacle.</p><p>Since Jim Harbaugh left after 2014, the 49ers linebacker squads have faded. Navarro Bowman&apos;s 2015 season is the lone bright spot for a linebacker corps in decline. A number of coaching changes (3) and a mix-match of mediocrity, such as Chris Borland retiring after one year, led to some poor defenses. From 2016-2018 the Niners were without a linebacker with more than 100 combined tackles.<br></p><p>Enter 2019 free agency and the 49ers are trying to build something. Ruben Foster is out. The team&apos;s patience wore thin and he&apos;s now in Washington. This is for the best. A new glimmer of hope arrives in Kwon Alexander, the Tampa Bay ILB looking to get paid. Kwon signed a deal with the team for $54 million over 4 years. The contact looks like this:</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th style="text-align:center">Term</th>
<th style="text-align:center">Average Salary</th>
<th style="text-align:center">Guaranteed</th>
<th style="text-align:center">Total</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">4 years</td>
<td style="text-align:center">$13.5 million</td>
<td style="text-align:center">$25 million</td>
<td style="text-align:center">$54 million</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>This makes him the top paid linebacker in the league and will obviously put great expectations upon Alexander. &#xA0;For me, it immediately creates nostalgia for days when Niner linebackers were brutalizing the NFL. Before we look into Kwon in further detail, let&apos;s revisit some of that good old nostalgia. </p><!--kg-card-begin: markdown--><h2 id="patrickwillis">Patrick Willis</h2>
<!--kg-card-end: markdown--><p> Willis instantly landed atop the league as a rookie in 2007. He amassed a staggering 174 combined tackles, still a rookie record as we enter 2019 free agency. 135 of those tackles were solo, which is the highest total in the NFL this century [2]. The combined total of 174 ranks 19th all time. ALL TIME! Willis was the real deal coming out of Mississippi. While P-Will would never hit that high again, it can easily be said he was one of the most dominant linebackers during his short career. Willis called it quits after the 2014 season at just 29 years old. He&apos;s doing stuff in Silicon Valley these days. A smart move long term. </p><p>Kwon Alexander hopes to bring some of that talent back to the Niners LB squad and his stats so far in his career are encouraging. His 2016 year is his highlight thus far. He played all 16 games and racked up 145 combined tackles which was tops in the league that year. The big question for Kwon is whether he can return to form after an ACL injury and play a complete season. Navarro Bowman was unfortunately never the same after his gruesome ACL tear but it can be said Kwon&apos;s injury was a non-contact freak injury. The Niners have placed a lot of faith in Kwon&apos;s knee and are hoping he can make an impact. </p><ol><li><a href="https://www.footballoutsiders.com/stats/teamdef2012">https://www.footballoutsiders.com/stats/teamdef2012</a></li><li><a href="https://www.pro-football-reference.com/players/W/WillPa98.htm">https://www.pro-football-reference.com/players/W/WillPa98.htm</a></li></ol>]]></content:encoded></item><item><title><![CDATA[Owner Review: Thuma Bed]]></title><description><![CDATA[<p>Quickly before I get started, I like to qualify these reviews as <em>owner</em> reviews. They are meant to be honest reviews of products I actually own &#x2013; no paid advertisements and no marketing fluff. I also like to do these because real reviews of these products can be hard to</p>]]></description><link>https://bradsturkie.com/owner-review-thuma-bed/</link><guid isPermaLink="false">5c74e71c6deefb5f60a2aed6</guid><category><![CDATA[thuma]]></category><category><![CDATA[bed]]></category><category><![CDATA[review]]></category><category><![CDATA[owner review]]></category><category><![CDATA[stuff]]></category><category><![CDATA[thuma.co]]></category><category><![CDATA[ikea]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Wed, 27 Feb 2019 05:19:13 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2019/02/DSC016981.JPG" medium="image"/><content:encoded><![CDATA[<img src="https://bradsturkie.com/content/images/2019/02/DSC016981.JPG" alt="Owner Review: Thuma Bed"><p>Quickly before I get started, I like to qualify these reviews as <em>owner</em> reviews. They are meant to be honest reviews of products I actually own &#x2013; no paid advertisements and no marketing fluff. I also like to do these because real reviews of these products can be hard to find, especially with how curated everything on the Internet is becoming. Let&apos;s get going.</p><!--kg-card-begin: markdown--><h1 id="timetogrowup">Time to grow up</h1>
<!--kg-card-end: markdown--><p>I&apos;ve always had Ikea beds my entire adult life. They worked well since I tend to move often and are somewhat modular. The current bed being replaced was the now discontinued <a href="https://www.google.com/search?q=ikea+nyvoll&amp;source=lnms&amp;tbm=isch&amp;sa=X&amp;ved=0ahUKEwi3jL_w7djgAhUMCTQIHdK6CHkQ_AUIDygC&amp;biw=1702&amp;bih=998">Ikea Nyvoll</a>. It was an okay bed. It was cheap (not real wood) and it wore like a cheap bed. I had it about 4 years and it creaked, squeaked and wasn&apos;t very sturdy. I needed a new bed frame and was now willing to spend a little extra for something better.</p><!--kg-card-begin: markdown--><h2 id="algorithmprey">Algorithm Prey</h2>
<p>I&apos;ll admit I first saw ads for this bed on Instagram in Q4 2018. The bed looked pretty nice in the ads so I decided to look further. I&apos;ve been guilty of falling for these &quot;up and coming&quot; furniture companies before. I also have a Campaign Living modular couch, so these advertisers know I&apos;m their target. Nevertheless, I took the plunge.</p>
<h2 id="cost">Cost</h2>
<p>This bed isn&apos;t super cheap, or super pricey. It&apos;s in a pricing sweet spot and comes out to about $900 or so in the queen size. It&apos;s definiely more than that $280 Ikea Nyvoll. Let&apos;s see why.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="presentationdesignandconstruction">Presentation, design and construction</h2>
<!--kg-card-end: markdown--><p>This is likely the best designed bed frame I&apos;ve personally seen. It&apos;s clear that this whole thing was well thought out and lots of time went into the bed frame and even the whole presentation. The website, the thoughtful emails, the pre-arrival gift candle and even the packaging are all very well done. The Thuma team is going for that custom tailored, &quot;millennial marketing&quot; experience and they are doing a good job. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/20190220_130524.jpg" class="kg-image" alt="Owner Review: Thuma Bed" loading="lazy"></figure><p>A quick peek in the box...</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01686.JPG" class="kg-image" alt="Owner Review: Thuma Bed" loading="lazy"></figure><p>The bed is made of some leftover rubber wood trees. It&apos;s apparently sustainable. It looks nice, has a nice color and comes with a subtle varnish smell. &#xA0;It seems strong enough to be sure. Thuma claims the frame can hold 1,500 lbs. They might be right, as there is a nice a &quot;third leg&quot; for extra support.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01690.JPG" class="kg-image" alt="Owner Review: Thuma Bed" loading="lazy"></figure><p>The leg is pretty beefy!</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01691-1.JPG" class="kg-image" alt="Owner Review: Thuma Bed" loading="lazy"></figure><p>The color is &quot;medium.&quot; It&apos;s not dark and it&apos;s not light. It should go with most decors and match most other furniture. It sort of clashes with my lame apartment floors a bit, but I won&apos;t live here forever hopefully. </p><p>Lastly, the tool-less design is itself a work of art. The Japanese joinery is delightful to use and everything just fits together immediately. Absolutely no sweat in assembling this bed. This bed is completely the opposite of an Ikea bed, in which mine had approximately 30 screws and other various hardware. Good job Thuma!</p><!--kg-card-begin: markdown--><h2 id="packagingandassembly">Packaging and assembly</h2>
<!--kg-card-end: markdown--><p>The Thuma bed comes in three boxes. Unboxing it all takes infinitely longer than assembling the bed. Each piece is individually wrapped. It&apos;s a fairly luxurious unboxing experience for any product, let alone a bed. The bad thing is that there is a lot of plastic and cardboard waste. Thuma claims that they are trying to be sustainable in regards to packaging but I think they could lose some of the plastic.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01680.JPG" class="kg-image" alt="Owner Review: Thuma Bed" loading="lazy"></figure><p>A nice welcome envelope awaits.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01687.JPG" class="kg-image" alt="Owner Review: Thuma Bed" loading="lazy"></figure><p>Assembling the bed took literally 5 minutes and that matches their claim on their website. The center slats are a bit heavy but they are very sturdy. Inspired by Ikea designs, the slats are easily twice as thick and a third as wide as the Ikea stuff. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01699.JPG" class="kg-image" alt="Owner Review: Thuma Bed" loading="lazy"></figure><p>The assembly instructions are also well designed and look like art.</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01689-2.JPG" class="kg-image" alt="Owner Review: Thuma Bed" loading="lazy"></figure><!--kg-card-begin: markdown--><h2 id="notsogreatstuff">Not so great stuff</h2>
<!--kg-card-end: markdown--><p>When I got the bed all assembled and plopped the mattress I have down, I noticed the mattress didn&apos;t sink down at all compared to my last bed. This makes the Thuma almost a platform bed. Due this lack on inset, we get some odd looking details. </p><p>Below we can see the odd joining of all three materials. It&apos;s not ideal. &#xA0;</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01703.JPG" class="kg-image" alt="Owner Review: Thuma Bed" loading="lazy"></figure><p>Another not so great thing was this random scuff out-of-the-box. Not a big deal, but keep in mind there is a lot of wood that can take abuse. This was likely done where the frame was made. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01694.JPG" class="kg-image" alt="Owner Review: Thuma Bed" loading="lazy"></figure><p>Also, there is this plastic ball and a small mountain of cardboard. Not so great and I could see some improvements in future deliveries here. Maybe some felt or cardboard spacers instead of all this plastic?</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01705-1.JPG" class="kg-image" alt="Owner Review: Thuma Bed" loading="lazy"></figure><p>Finally, I can&apos;t determine where this bed frame was actually made. I&apos;m assuming some far off land. I hope Thuma follows through with their &quot;ethical&quot; partnerships they mentions on their site. </p><!--kg-card-begin: markdown--><h2 id="overall">Overall</h2>
<!--kg-card-end: markdown--><p>In the end, this is easily one of the best pieces of furniture I now own. I plan to keep it for as long as it allows, which I hope is years and years. I&apos;d easily recommend this frame to anyone. Thuma is just getting started and they will likely offer other furniture, other headboards (as they mention in their packaging) and probably other colors. One night down on the bed already and it was awesome!</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01704.JPG" class="kg-image" alt="Owner Review: Thuma Bed" loading="lazy"></figure>]]></content:encoded></item><item><title><![CDATA[Owner Review: Bellroy Shift Backpack (2019)]]></title><description><![CDATA[<p>Bellroy first caught my eye a couple years ago while shopping for a wallet. I never ended up with a wallet from them but they remained in my mind. Since that search, Bellroy has expanded their product offering to include most common daily carry items. A new search of mine</p>]]></description><link>https://bradsturkie.com/review-bellroy/</link><guid isPermaLink="false">5c58cbaa6deefb5f60a2aec4</guid><category><![CDATA[bellroy]]></category><category><![CDATA[review]]></category><category><![CDATA[shift]]></category><category><![CDATA[bellroy shift]]></category><category><![CDATA[backpack]]></category><category><![CDATA[stuff]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Tue, 05 Feb 2019 00:33:16 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2019/02/DSC01674-1.JPG" medium="image"/><content:encoded><![CDATA[<img src="https://bradsturkie.com/content/images/2019/02/DSC01674-1.JPG" alt="Owner Review: Bellroy Shift Backpack (2019)"><p>Bellroy first caught my eye a couple years ago while shopping for a wallet. I never ended up with a wallet from them but they remained in my mind. Since that search, Bellroy has expanded their product offering to include most common daily carry items. A new search of mine had arrived as I broke the main zipper of my <a href="https://www.thenorthface.com/shop/surge-nf0a3etv#hero=0">North Face Surge</a> backpack. After lots of looking around, I settled on the <a href="https://bellroy.com/products/shift-backpack/venture/black">Bellroy Shift</a>. The style is the primary factor that drew me in. Also, I wanted a bag that could carry some clothes as I had small gym bag that I also carried around. &#xA0;Let&apos;s take a look at some of the details of this new daily pack.</p><h2 id="size">Size</h2><p>Compared to my prior North Face Surge, I&apos;ve sacrificed some capacity (approximately 9 liters). This pack comes in at an advertised 22 liters but it seems radically smaller than the NF pack. This was okay for me though as that multi-pocket, multi-zipper, cake-style North Face pack was overkill and kind of &quot;utilitarian&quot; in design. The Bellory Shift really specializes as a nice looking daily carry pack. It is good at the day-to-day items but anything specialized, like a camera tripod, will have a hard time fitting well in here. Be warned. </p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01677.JPG" class="kg-image" alt="Owner Review: Bellroy Shift Backpack (2019)" loading="lazy"></figure><p>We can see, everything fits snugly. Your main capacity is not layered or horizontal, but vertical. Pile it high!</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01678.jpeg" class="kg-image" alt="Owner Review: Bellroy Shift Backpack (2019)" loading="lazy"></figure><h2 id="function-style-and-longevity">Function, Style and Longevity</h2><p>The Shift features one main pocket which holds everything. This design seems to be the hipster style du-jour. It&apos;s very minimal, which I do like. No zippers exist for the main pocket. To close, insert the pin through the loop that fits best. &#xA0;It&apos;s really easy and I think it&apos;s faster than a zipper. If you have a zipper &quot;zip&quot; phobia, this bag works for you.</p><p>Inside the bag is one zip pocket and two slide pockets. The zip pockets is ideal for loose articles. Bellroy advertises that this pack can hold a 15&quot; laptop. I would venture to say, unless it&apos;s a MacBook or Dell XPS (or something similarly thin), some 15&quot; laptops might struggle to fit here (looking at you Lenovo T series). &#xA0;Two round, top-loading pockets also exist on the inside and hold a water and umbrella really well. &#xA0;</p><p>The Shift is well built and should hold up as a daily carry. In one month of 9-to-5 cubicle life, it hasn&apos;t shown any wear. &#xA0;Take note that this is not a hardcore pack to be used traversing the Siberian tundra. The Shift is for yuppie office types. &#xA0;</p><figure class="kg-card kg-image-card"><img src="https://bradsturkie.com/content/images/2019/02/DSC01674.JPG" class="kg-image" alt="Owner Review: Bellroy Shift Backpack (2019)" loading="lazy"></figure><!--kg-card-begin: markdown--><h2 id="comfort">Comfort</h2>
<!--kg-card-end: markdown--><p>I&apos;ve had no issues with comfort having owned this pack for about a month now. The back padding is sufficient. I&apos;m 5&apos;10&quot; and the pack isn&apos;t overly small or large. It&apos;s a good fit. There is one issue in terms of strap adjustment. When the pack is picked up by a single strap, the strap sometimes slides out of adjustment. This leads to loose straps that have to be readjusted. This happens almost weekly. Sort of annoying but tolerable. Lastly, it comes with a chest strap that I removed (it&apos;s removable) as I never use it. &#xA0;</p><!--kg-card-begin: markdown--><h2 id="pros">Pros</h2>
<ul>
<li>Great minimal style</li>
<li>Color options</li>
<li>Simple use</li>
<li>Well built</li>
</ul>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="cons">Cons</h2>
<!--kg-card-end: markdown--><ul><li>Straps sometimes slide when picked up</li><li>Stuff at the bottom of the bag, might forever stay at the bottom</li><li>Tight laptop pouch</li><li>Somewhat pricey ($220)</li></ul><!--kg-card-begin: markdown--><h2 id="overall">Overall</h2>
<!--kg-card-end: markdown--><p>I&apos;ve been pleased with my ownership of this bag so far. I would buy it again, no problem. The Shift has forced me to adjust my workflow to something more efficient by eliminating my second gym bag entirely. One bag is all I need now. This has turned out to be a pretty great everyday carry pack. It has enough space and enough style to move around town or the office and get work done. &#xA0;</p>]]></content:encoded></item><item><title><![CDATA[Using CertBot to Automatically Secure Your Nginx Site]]></title><description><![CDATA[<p>CertBot is a nifty tool created by the EFF the help leverage the power of free certificate authorities like <a href="https://letsencrypt.org/">Let&apos;s Encrypt.</a> Its primary goal is to help configure popular web servers to use a SSL/TLS certificate. There&apos;s really no excuse this day and age to</p>]]></description><link>https://bradsturkie.com/using-certbot-to-secure-your-site/</link><guid isPermaLink="false">5bf322166deefb5f60a2aea7</guid><category><![CDATA[nginx]]></category><category><![CDATA[certbot]]></category><category><![CDATA[linux]]></category><category><![CDATA[ssl]]></category><category><![CDATA[tls]]></category><category><![CDATA[centos7]]></category><category><![CDATA[tech]]></category><dc:creator><![CDATA[Bradley Sturkie]]></dc:creator><pubDate>Wed, 21 Nov 2018 05:10:52 GMT</pubDate><media:content url="https://bradsturkie.com/content/images/2018/11/Screen-Shot-2018-11-20-at-9.11.26-PM.png" medium="image"/><content:encoded><![CDATA[<img src="https://bradsturkie.com/content/images/2018/11/Screen-Shot-2018-11-20-at-9.11.26-PM.png" alt="Using CertBot to Automatically Secure Your Nginx Site"><p>CertBot is a nifty tool created by the EFF the help leverage the power of free certificate authorities like <a href="https://letsencrypt.org/">Let&apos;s Encrypt.</a> Its primary goal is to help configure popular web servers to use a SSL/TLS certificate. There&apos;s really no excuse this day and age to have an insecure site. Here, we&apos;re going to secure a site running behind <strong>Nginx</strong> on the <strong>CentOS 7</strong> platform.</p><h2 id="assumptions">Assumptions</h2><p> I&apos;m assuming Nginx is already installed and configured for whatever site you might be running. &#xA0;</p><h2 id="install-dependencies">Install Dependencies</h2><p>CertBot is available through the EPEL CentOS repositories. It&apos;s usually a good idea to have EPEL enabled anyways, so let&apos;s do that.</p><pre><code>[user@host ~]$ sudo yum install epel-release -y
...
Installed:
  epel-release.noarch 0:7-11

Complete!</code></pre><h2 id="install-certbot">Install CertBot</h2><p>With the EPEL repositories enabled, we can now install CertBot.</p><pre><code>[user@host ~]$ sudo yum install certbot -y
...
Installed:
  certbot.noarch 0:0.27.1-1.el7

Complete!</code></pre><p>Since we are using Nginx, we also need that specific CertBot plugin. &#xA0;Install it like so:</p><pre><code>[user@host ~]$ sudo yum install python2-certbot-nginx -y
...
Installed:
  python2-certbot-nginx.noarch 0:0.27.1-1.el7

Complete!</code></pre><h2 id="request-a-new-cert-and-allow-certbot-to-configure-nginx">Request a new Cert and allow CertBot to Configure Nginx</h2><p>Now we should be able to tell CertBot to generate new certificates from Let&apos;s Encrypt for the site(s) we want. Here I&apos;m also allowing CertBot to modify my Nginx configuration.</p><pre><code>[user@host ~]$ sudo certbot --nginx -d yoursitename.com,www.yoursitename.com --preferred-challenges http
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for yoursitename.com
http-01 challenge for www.yoursitename.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/nginx.conf
Deploying Certificate to VirtualHost /etc/nginx/nginx.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you&apos;re confident your site works on HTTPS. You can undo this
change by editing your web server&apos;s configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press &apos;c&apos; to cancel): 2
Redirecting all traffic on port 80 to ssl in /etc/nginx/nginx.conf
Redirecting all traffic on port 80 to ssl in /etc/nginx/nginx.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://yoursitename.com and
https://www.yoursitename.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=yoursitename.com
https://www.ssllabs.com/ssltest/analyze.html?d=www.yoursitename.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/yoursitename.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/yoursitename.com/privkey.pem
   Your cert will expire on 2019-02-19. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the &quot;certonly&quot; option. To non-interactively renew *all* of
   your certificates, run &quot;certbot renew&quot;
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let&apos;s Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
</code></pre><p>At this point, you should have a working certificate configured in Nginx. &#xA0;A section of &#xA0;/<strong>etc/nginx/nginx.conf</strong> configuration should look something like this:</p><pre><code>    server {
    server_name www.yoursitename.com yoursitename.com; # managed by Certbot
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }


    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/yoursitename.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/yoursitename.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

    server {
    if ($host = www.yoursitename.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = yoursitename.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


        listen       80 ;
        listen       [::]:80 ;
    server_name www.yoursitename.com yoursitename.com;
    return 404; # managed by Certbot

    }
}</code></pre><h2 id="viewing-current-certificates">Viewing Current Certificates</h2><p>If you would like to inspect your certificates, do this:</p><!--kg-card-begin: markdown--><pre><code>user@host ~]$ sudo certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: yoursitename.com
    Domains: yoursitename.com www.yoursitename.com
    Expiry Date: 2019-02-19 03:17:41+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/yoursitename.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/yoursitename.com/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</code></pre>
<!--kg-card-end: markdown--><h2 id="automating-certificate-updates">Automating Certificate Updates</h2><p>Be aware that Let&apos;s Encrypt only will give you certificates for 90 days. That&apos;s not a lot of time. The whole goal here is to automate this task. Using the guidance from the CertBot official docs [1], let&apos;s add a cron job that runs twice a day that can renew our certificate(s). It&apos;s important to note that an actual renewal will not happen until the certificate(s) have 30 days or less before expiration.</p><pre><code>[user@host ~]$ echo &quot;python -c &apos;import random; import time; time.sleep(random.random() * 3600)&apos; &amp;&amp; certbot renew&quot; | sudo tee /etc/cron.daily/certbot_renew
[user@host cron.daily]# chmod +x /etc/cron.daily/certbot_renew</code></pre><p>Verify that the daily file is accurate:</p><pre><code>[user@host ~]$ cat /etc/cron.daily/certbot_renew
python -c &apos;import random; import time; time.sleep(random.random() * 3600)&apos; &amp;&amp; certbot renew</code></pre><p>At this point, we should be all set. It&apos;s always prudent to check back from time to time that this task is running error free. &#xA0;</p><h2 id="references">References</h2><ol><li><a href="https://certbot.eff.org/lets-encrypt/centosrhel7-nginx">https://certbot.eff.org/lets-encrypt/centosrhel7-nginx</a></li></ol>]]></content:encoded></item></channel></rss>