<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Patchy from FireHydrant</title>
    <description>The latest articles on DEV Community by Patchy from FireHydrant (@patchy).</description>
    <link>https://dev.to/patchy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F617407%2Ffb5c54eb-7e20-47f9-9364-bf068cb63c4c.png</url>
      <title>DEV Community: Patchy from FireHydrant</title>
      <link>https://dev.to/patchy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/patchy"/>
    <language>en</language>
    <item>
      <title>Rails without Webpacker</title>
      <dc:creator>Patchy from FireHydrant</dc:creator>
      <pubDate>Fri, 23 Jul 2021 05:13:17 +0000</pubDate>
      <link>https://dev.to/firehydrant/rails-without-webpacker-588o</link>
      <guid>https://dev.to/firehydrant/rails-without-webpacker-588o</guid>
      <description>&lt;p&gt;We recently removed webpacker from our Rails 5 application. While it was a great way to bootstrap a new Rails app with a significant amount of Javascript we encountered some serious performance problems that we felt really impacted our productivity. We build our application images after every git push and we’d like to be able to deploy them quickly.&lt;/p&gt;

&lt;p&gt;We started out using webpacker to build our Javascript bundles and eventually switched to using webpack directly after seeing our asset build times exceed eight minutes. The end result was a 75% reduction in time spent building assets. This is a summary of our findings and the steps you can take to use vanilla webpack in your Rails application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://firehydrant.io/blog/rails-without-webpacker/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=evergreen"&gt;Read the full post here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This post was originally published on the &lt;a href="https://firehydrant.io/blog/?utm_campaign=evergreen&amp;amp;utm_medium=referral&amp;amp;utm_source=devto"&gt;FireHydrant Blog&lt;/a&gt; on May 28, 2019 by &lt;a href="https://firehydrant.io/authors/robert-ross/"&gt;Robert Ross&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>rails</category>
      <category>webpack</category>
    </item>
    <item>
      <title>3 Defensive Programming Techniques for Rails</title>
      <dc:creator>Patchy from FireHydrant</dc:creator>
      <pubDate>Fri, 23 Jul 2021 05:10:03 +0000</pubDate>
      <link>https://dev.to/firehydrant/3-defensive-programming-techniques-for-rails-20d9</link>
      <guid>https://dev.to/firehydrant/3-defensive-programming-techniques-for-rails-20d9</guid>
      <description>&lt;p&gt;Incidents happen all the time because of bad code deploys. You write some code that passes code review, it then is automatically shipped to production after a test suite passes, and BAM, an outage happens. This fairly common occurrence has ways to prevent it entirely. Using some simple ideas we can defend ourselves from the hidden mistakes that code reviews and chaos engineering sometimes won’t catch.&lt;/p&gt;

&lt;p&gt;Defensive programming is great for codifying how a bug could be introduced, and raising an error right before it would happen, or choosing an alternative path.&lt;/p&gt;

&lt;p&gt;If you have a style guide that specifies things like&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Always use concurrent indexes”&lt;/li&gt;
&lt;li&gt;“Always have a timeout on a remote read”&lt;/li&gt;
&lt;li&gt;“Never constrain to the account model in a foreign key”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then this guide is for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://firehydrant.io/blog/3-defensive-programming-techniques-for-rails/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=evergreen"&gt;Read the full post here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This post was originally published on the &lt;a href="https://firehydrant.io/blog/?utm_campaign=evergreen&amp;amp;utm_medium=referral&amp;amp;utm_source=devto"&gt;FireHydrant Blog&lt;/a&gt; on July 20, 2019 by &lt;a href="https://firehydrant.io/authors/robert-ross/"&gt;Robert Ross&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>rails</category>
    </item>
    <item>
      <title>Pragmatic Incident Response: 3 Lessons Learned from Failures</title>
      <dc:creator>Patchy from FireHydrant</dc:creator>
      <pubDate>Fri, 16 Jul 2021 21:54:04 +0000</pubDate>
      <link>https://dev.to/firehydrant/pragmatic-incident-response-3-lessons-learned-from-failures-1mg5</link>
      <guid>https://dev.to/firehydrant/pragmatic-incident-response-3-lessons-learned-from-failures-1mg5</guid>
      <description>&lt;p&gt;In my past experience as an SRE I’ve learned some valuable lessons about how to respond and learn from incidents. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Declare and run retros for the small incidents.&lt;/em&gt;&lt;/strong&gt; It's less stressful, and action items become much more actionable. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Decrease the time it takes to analyze an incident.&lt;/em&gt;&lt;/strong&gt; You'll remember more, and will learn more from the incident. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Alert on pain felt by people — not computers.&lt;/em&gt;&lt;/strong&gt; The only reason we declare incidents at all is because of the people on the other side of them. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let’s dive into each of these lessons a little deeper, and how they can help you build a better system for pragmatic incident response.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://firehydrant.io/blog/pragmatic-incident-response/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=evergreen"&gt;Read the full post here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This post was originally published on the &lt;a href="https://firehydrant.io/blog/?utm_campaign=evergreen&amp;amp;utm_medium=referral&amp;amp;utm_source=devto"&gt;FireHydrant Blog&lt;/a&gt; on July 15, 2021 by &lt;a href="https://firehydrant.io/authors/robert-ross/"&gt;Robert Ross&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>incidentresponse</category>
    </item>
    <item>
      <title>Working Together (but Separately) with MirageJS</title>
      <dc:creator>Patchy from FireHydrant</dc:creator>
      <pubDate>Fri, 16 Jul 2021 21:46:43 +0000</pubDate>
      <link>https://dev.to/firehydrant/working-together-but-separately-with-miragejs-588l</link>
      <guid>https://dev.to/firehydrant/working-together-but-separately-with-miragejs-588l</guid>
      <description>&lt;p&gt;Front-end development and APIs — you’ll rarely see one without the other, but they don’t always get up and running at once. Maybe you’re developing a completely new feature that relies on a nonexistent endpoint, or perhaps the endpoint is just out of date, missing key chunks of data. Front-end and back-end are being built simultaneously, but one isn’t available to the other just yet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://firehydrant.io/blog/working-together-but-separately-with-miragejs?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=evergreen"&gt;Read the full post here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This post was originally published on the &lt;a href="https://firehydrant.io/blog/?utm_campaign=evergreen&amp;amp;utm_medium=referral&amp;amp;utm_source=devto"&gt;FireHydrant Blog&lt;/a&gt; on June 17, 2021 by &lt;a href="https://firehydrant.io/authors/hilary-beck"&gt;Hilary Beck&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>miragejs</category>
      <category>api</category>
    </item>
    <item>
      <title>Four things to consider when evaluating incident management platforms</title>
      <dc:creator>Patchy from FireHydrant</dc:creator>
      <pubDate>Thu, 10 Jun 2021 17:35:42 +0000</pubDate>
      <link>https://dev.to/firehydrant/four-things-to-consider-when-evaluating-incident-management-platforms-2c56</link>
      <guid>https://dev.to/firehydrant/four-things-to-consider-when-evaluating-incident-management-platforms-2c56</guid>
      <description>&lt;p&gt;When you’re feeling the stress and pain around incidents, making the decision to find an incident management tool is a no-brainer. But how do you choose the one that will work for you, your team, and your business? &lt;/p&gt;

&lt;p&gt;You might be asking yourself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where do I start?&lt;/li&gt;
&lt;li&gt;What do I need to know?&lt;/li&gt;
&lt;li&gt;What questions do I ask?&lt;/li&gt;
&lt;li&gt;What are the options?&lt;/li&gt;
&lt;li&gt;How can I be sure we’re choosing the right tool?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://fh.dev/zq9"&gt;Read the full post here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This post was originally published on the &lt;a href="https://firehydrant.io/blog/?utm_campaign=evergreen&amp;amp;utm_medium=referral&amp;amp;utm_source=devto"&gt;FireHydrant Blog&lt;/a&gt; on May 26, 2021 by &lt;a href="https://firehydrant.io/authors/robert-ross/"&gt;Robert Ross&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>incident</category>
      <category>sre</category>
      <category>incidentmanagement</category>
    </item>
    <item>
      <title>The MTTR that matters</title>
      <dc:creator>Patchy from FireHydrant</dc:creator>
      <pubDate>Thu, 10 Jun 2021 17:29:02 +0000</pubDate>
      <link>https://dev.to/firehydrant/the-mttr-that-matters-59b</link>
      <guid>https://dev.to/firehydrant/the-mttr-that-matters-59b</guid>
      <description>&lt;p&gt;“Mean time to X” is a common term used to describe how long, on average, a particular milestone takes to achieve in incident response. There’s mean time to detect, acknowledge, mitigate, etc. And then there’s the elusive “mean time to recover,” also known as “MTTR.”&lt;/p&gt;

&lt;p&gt;MTTR, a hotly debated acronym and concept, measures how long it takes to resolve an incident on average. The problem with MTTR, though, &lt;strong&gt;is that it doesn’t matter&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://fh.dev/mttr-dt"&gt;Read the full post here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This post was originally published on the &lt;a href="https://firehydrant.io/blog/?utm_campaign=evergreen&amp;amp;utm_medium=referral&amp;amp;utm_source=devto"&gt;FireHydrant Blog&lt;/a&gt; on June 10, 2021 by &lt;a href="https://firehydrant.io/authors/robert-ross/"&gt;Robert Ross&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Flexible Ruby on Rails Reader Objects</title>
      <dc:creator>Patchy from FireHydrant</dc:creator>
      <pubDate>Tue, 18 May 2021 16:39:41 +0000</pubDate>
      <link>https://dev.to/firehydrant/flexible-ruby-on-rails-reader-objects-from-the-firehydrant-blog-31kl</link>
      <guid>https://dev.to/firehydrant/flexible-ruby-on-rails-reader-objects-from-the-firehydrant-blog-31kl</guid>
      <description>&lt;p&gt;Rails and ActiveRecord are great at providing a simple interface for retrieving information from a database. With a few simple characters, I can retrieve all of my users with &lt;code&gt;User.all.&lt;/code&gt; While this simplicity is great, it breaks down when you want to start doing more advanced queries such as paginated results, filtered records, etc. Typically you start to see Rails models get a swath of scope definitions to implement this, but over time this just becomes incredibly difficult to maintain. This also gets hairy when you want to use the same reader object for different types of requests (API vs UI for example).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://firehydrant.io/blog/flexible-ruby-on-rails-reader-objects/?utm_campaign=evergreen&amp;amp;utm_medium=referral&amp;amp;utm_source=devto"&gt;Read the full post here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post was originally published on the &lt;a href="https://firehydrant.io/blog/?utm_campaign=evergreen&amp;amp;utm_medium=referral&amp;amp;utm_source=devto"&gt;FireHydrant Blog&lt;/a&gt; on May 1, 2019 by &lt;a href="https://firehydrant.io/authors/robert-ross/"&gt;Robert Ross&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>rails</category>
    </item>
    <item>
      <title>Using React Select with Redux Form</title>
      <dc:creator>Patchy from FireHydrant</dc:creator>
      <pubDate>Tue, 18 May 2021 16:30:17 +0000</pubDate>
      <link>https://dev.to/firehydrant/using-react-select-with-redux-form-from-the-firehydrant-blog-4m0g</link>
      <guid>https://dev.to/firehydrant/using-react-select-with-redux-form-from-the-firehydrant-blog-4m0g</guid>
      <description>&lt;p&gt;At FireHydrant we use Redux Form for all of our forms. It's extremely easy to build complex form logic with all sorts of added bonuses that make using it in our React/Redux front end a no brainer. &lt;/p&gt;

&lt;p&gt;However, when we started using React Select for our select fields we started running into some issues. You're likely running into some of the same issues we did and so this blog post will help get you off the ground and integrating these two libraries together.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://firehydrant.io/blog/using-react-select-with-redux-form/?utm_campaign=evergreen&amp;amp;utm_medium=referral&amp;amp;utm_source=devto"&gt;Read how here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://firehydrant.io/blog/?utm_campaign=evergreen&amp;amp;utm_medium=referral&amp;amp;utm_source=devto"&gt;FireHydrant Blog&lt;/a&gt; on April 23, 2019 by &lt;a href="https://firehydrant.io/authors/dylan-nielsen/?utm_campaign=evergreen&amp;amp;utm_medium=referral&amp;amp;utm_source=devto"&gt;Dylan Nielsen&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
