<?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: Kyle Boe</title>
    <description>The latest articles on DEV Community by Kyle Boe (@kyleboe).</description>
    <link>https://dev.to/kyleboe</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%2F112504%2F52238064-381f-4b4f-9b5a-6e4831249591.jpeg</url>
      <title>DEV Community: Kyle Boe</title>
      <link>https://dev.to/kyleboe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kyleboe"/>
    <language>en</language>
    <item>
      <title>Who's looking for open source contributors? (January 31st edition)</title>
      <dc:creator>Kyle Boe</dc:creator>
      <pubDate>Fri, 31 Jan 2020 17:45:50 +0000</pubDate>
      <link>https://dev.to/kyleboe/who-s-looking-for-open-source-contributors-january-31st-edition-1p2o</link>
      <guid>https://dev.to/kyleboe/who-s-looking-for-open-source-contributors-january-31st-edition-1p2o</guid>
      <description>&lt;p&gt;After a few month hiatus we are back! Kicking off 2020 with some OSS.&lt;/p&gt;

&lt;p&gt;As always, find something to work on or shamelessly promote your project here.&lt;/p&gt;

&lt;p&gt;Everyone who posted in previous months is welcome back this month, as always.&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@ts_imagery?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Trent Szmolnik&lt;/a&gt;&lt;/p&gt;

</description>
      <category>contributorswanted</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Who's looking for open source contributors? (August 2nd edition)</title>
      <dc:creator>Kyle Boe</dc:creator>
      <pubDate>Fri, 02 Aug 2019 20:47:39 +0000</pubDate>
      <link>https://dev.to/kyleboe/who-s-looking-for-open-source-contributors-august-2nd-edition-1po0</link>
      <guid>https://dev.to/kyleboe/who-s-looking-for-open-source-contributors-august-2nd-edition-1po0</guid>
      <description>&lt;p&gt;Find something to work on or promote your project here.&lt;/p&gt;

&lt;p&gt;Please shamelessly promote your project. Everyone who posted in previous months is welcome back this month, as always.&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@ralics?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Christopher Rusev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>contributorswanted</category>
    </item>
    <item>
      <title>🔥 Hot Takes 🔥 One Sentence. No Explanation. </title>
      <dc:creator>Kyle Boe</dc:creator>
      <pubDate>Wed, 31 Jul 2019 17:25:43 +0000</pubDate>
      <link>https://dev.to/kyleboe/hot-takes-one-sentence-no-explanation-3ama</link>
      <guid>https://dev.to/kyleboe/hot-takes-one-sentence-no-explanation-3ama</guid>
      <description>&lt;p&gt;Title says it all.&lt;/p&gt;

&lt;p&gt;Sometimes we just need a break from the seriousness of software.&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>jokes</category>
    </item>
    <item>
      <title>Who's looking for open source contributors? (July 1st edition)</title>
      <dc:creator>Kyle Boe</dc:creator>
      <pubDate>Mon, 01 Jul 2019 16:06:30 +0000</pubDate>
      <link>https://dev.to/kyleboe/who-s-looking-for-open-source-contributors-july-1st-edition-d63</link>
      <guid>https://dev.to/kyleboe/who-s-looking-for-open-source-contributors-july-1st-edition-d63</guid>
      <description>&lt;p&gt;Find something to work on or promote your project here.&lt;/p&gt;

&lt;p&gt;Please shamelessly promote your project. Everyone who posted in previous months is welcome back this month, as always.&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@fezbot2000?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Fezbot2000&lt;/a&gt; on &lt;a href="https://unsplash.com/search/photos/beach?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>contributorswanted</category>
      <category>beginners</category>
      <category>discuss</category>
    </item>
    <item>
      <title>My macOS Dev Env Tools</title>
      <dc:creator>Kyle Boe</dc:creator>
      <pubDate>Fri, 07 Jun 2019 21:57:18 +0000</pubDate>
      <link>https://dev.to/kyleboe/my-macos-dev-env-tools-20pk</link>
      <guid>https://dev.to/kyleboe/my-macos-dev-env-tools-20pk</guid>
      <description>&lt;p&gt;In no particular order, listed below are the tools I use on a daily basis to write code and be productive. If you have strong opinions about why X should replace Y on this list, leave them in the comments because I am always looking to make my workflow faster and more efficient.&lt;/p&gt;

&lt;h1&gt;
  
  
  Terminal Tools
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.iterm2.com/version3.html" rel="noopener noreferrer"&gt;iTerm2 (v3)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxvm7kxgdlfwxcrg03cm5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxvm7kxgdlfwxcrg03cm5.jpg" alt="iTerm2 Logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Highly customizable compared to Terminal. I get a lot of mileage out of the natural text navigation configuration (holding option/alt to move between word breaks)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://brew.sh" rel="noopener noreferrer"&gt;Homebrew&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkmcjlwcb7casdkq89vl4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkmcjlwcb7casdkq89vl4.png" alt="Homebrew Logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My package manager of choice. I use &lt;a href="https://github.com/Homebrew/homebrew-bundle" rel="noopener noreferrer"&gt;&lt;code&gt;brew bundle&lt;/code&gt;&lt;/a&gt; quite a bit to ensure that my Dev Env dependencies can be easily migrated to a new machine if anything happens to my current one.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/tmux/tmux" rel="noopener noreferrer"&gt;Tmux&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;From their site:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you can get past the size of the config file (&lt;em&gt;psst. feel free to use &lt;a href="https://github.com/kyleboe/dotfiles/blob/master/.tmux.conf" rel="noopener noreferrer"&gt;mine&lt;/a&gt;&lt;/em&gt;), this tool is a must. If you've ever accidentally closed a terminal window where you needed something that was on it, you'll benefit from learning how to use Tmux.&lt;/p&gt;

&lt;h1&gt;
  
  
  Non-Terminal Tools
&lt;/h1&gt;

&lt;p&gt;I had to group things by functionality because there are some acknowledgements that need to be made. I'll mark the one I use, but know that I have at least tried the others.&lt;/p&gt;

&lt;h2&gt;
  
  
  Text Editor
&lt;/h2&gt;

&lt;p&gt;I am a Sublime Text convert after seeing how easily extensible VS Code is.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ffyc4ubtawnv1t7d7ncn3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ffyc4ubtawnv1t7d7ncn3.png" alt="VS Code Logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Easy Mode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;VS Code&lt;/a&gt; ⬅&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.sublimetext.com/" rel="noopener noreferrer"&gt;Sublime Text&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://atom.io/" rel="noopener noreferrer"&gt;Atom&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hard Mode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/vim/vim" rel="noopener noreferrer"&gt;Vim&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Window Manager
&lt;/h2&gt;

&lt;p&gt;While I only use Spectacle, there is a &lt;em&gt;huge&lt;/em&gt; honorable mention due to &lt;a href="https://github.com/koekeishiya" rel="noopener noreferrer"&gt;koekeishiya&lt;/a&gt;, the dev behind ChunkWM. He is a legend in terms of writing window managers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fvodevdsv7g4ywyms6pjy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fvodevdsv7g4ywyms6pjy.png" alt="Spectacle Logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Easy Mode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.spectacleapp.com/" rel="noopener noreferrer"&gt;Spectacle&lt;/a&gt; ⬅&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://magnet.crowdcafe.com/" rel="noopener noreferrer"&gt;Magnet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hard Mode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/koekeishiya/chunkwm" rel="noopener noreferrer"&gt;ChunkWM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Note-Taking
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxdx7frkd1z1owa4tl0gl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxdx7frkd1z1owa4tl0gl.png" alt="Notion Logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I cannot recommend Notion enough. Their feature set blows most everything out of the water. Just check out their product page and see for yourself.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.notion.so/" rel="noopener noreferrer"&gt;Notion&lt;/a&gt; ⬅&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.bear-writer.com/" rel="noopener noreferrer"&gt;Bear&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://evernote.com/" rel="noopener noreferrer"&gt;Evernote&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://macdown.uranusjr.com/" rel="noopener noreferrer"&gt;MacDown&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Misc Productivity
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.alfredapp.com/" rel="noopener noreferrer"&gt;Alfred&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Feozmdwqmx4bsxsert9l5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Feozmdwqmx4bsxsert9l5.png" alt="Alfred Logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This Spotlight Replacement (and a whole lot more) is the core of my productivity. Alfred is highly extensible and worth the price for the text snippet functionality alone.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.macbartender.com/" rel="noopener noreferrer"&gt;Bartender&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkwtzj5vauqelntn9uwi3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkwtzj5vauqelntn9uwi3.png" alt="Bartender Logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With everything having a menu bar icon, Bartender helps clean up the noise and only bring things to your attention on your terms.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://kapeli.com/dash" rel="noopener noreferrer"&gt;Dash&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fl8rh7kbw7jyog3khvp8u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fl8rh7kbw7jyog3khvp8u.png" alt="Dash Logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the site:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Dash is an API Documentation Browser and Code Snippet Manager. Dash stores snippets of code and instantly searches offline documentation sets for 200+ APIs, 100+ cheat sheets and more. You can even generate your own docsets or request docsets to be included.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Solid tool for offline documentation (and integrates with Alfred).&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Tools ≠ Practice&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;The TL;DR of any post like this is that tools do not equal development practice. This toolset has been built out of necessity; spending time refining my workflow to make it more efficient. If you use a different set of tools that works for you, great. The environment tools you use do not make you a better or worse developer. &lt;/p&gt;

</description>
      <category>showdev</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Who's looking for open source contributors? (May 31st edition)</title>
      <dc:creator>Kyle Boe</dc:creator>
      <pubDate>Fri, 31 May 2019 17:42:53 +0000</pubDate>
      <link>https://dev.to/kyleboe/who-s-looking-for-open-source-contributors-may-31st-edition-3lc</link>
      <guid>https://dev.to/kyleboe/who-s-looking-for-open-source-contributors-may-31st-edition-3lc</guid>
      <description>&lt;p&gt;Find something to work on or promote your project here.&lt;/p&gt;

&lt;p&gt;Please shamelessly promote your project. Everyone who posted in previous months is welcome back this month, as always.&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@arifriyanto?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Arif Riyanto&lt;/a&gt; on &lt;a href="https://unsplash.com/search/photos/code?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>contributorswanted</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Who's looking for open source contributors? (April 30th edition)</title>
      <dc:creator>Kyle Boe</dc:creator>
      <pubDate>Tue, 30 Apr 2019 19:02:04 +0000</pubDate>
      <link>https://dev.to/kyleboe/who-s-looking-for-open-source-contributors-april-30th-edition-14f4</link>
      <guid>https://dev.to/kyleboe/who-s-looking-for-open-source-contributors-april-30th-edition-14f4</guid>
      <description>&lt;p&gt;&lt;em&gt;Shamelessly copying Ben Halpern's &lt;a href="https://dev.to/ben/whos-looking-for-open-source-contributors-march-25th-edition-ocn"&gt;most recent post&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Find something to work on or promote your project here.&lt;/p&gt;

&lt;p&gt;Please shamelessly promote your project. Everyone who posted in previous months is welcome back this month, as always.&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>contributorswanted</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Moderate Parameters: The Path From Protected Attributes to Strong Parameters</title>
      <dc:creator>Kyle Boe</dc:creator>
      <pubDate>Wed, 24 Apr 2019 22:08:11 +0000</pubDate>
      <link>https://dev.to/hint/moderate-parameters-the-path-from-protected-attributes-to-strong-parameters-22il</link>
      <guid>https://dev.to/hint/moderate-parameters-the-path-from-protected-attributes-to-strong-parameters-22il</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://hint.io/blog/moderate-parameters" rel="noopener noreferrer"&gt;Hint's blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We all know Strong Parameters isn't exactly cutting edge technology in 2019. It was originally introduced in Rails 3.2 (March 20, 2012) and was made the default/standard in 4.0 (June 25, 2013).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F9qyd7fvs06wbjrabzowu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F9qyd7fvs06wbjrabzowu.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even with Strong Parameters 7 years in the rear view mirror, there was still legacy security support in the form of the &lt;code&gt;protected_attributes&lt;/code&gt; gem. However, with the release of Rails 5, this gem was officially unmaintained.&lt;/p&gt;

&lt;p&gt;Based on our &lt;a href="https://www.upgraderails.com" rel="noopener noreferrer"&gt;UpgradeRails&lt;/a&gt; experience helping clients move to the latest and greatest versions of Rails, this is still a large technical hurdle that many teams face.&lt;/p&gt;

&lt;p&gt;With this in mind, we built a tool that allows for safe and confident migration to strong parameters.&lt;/p&gt;

&lt;p&gt;We call it Moderate Parameters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Here's How It Works
&lt;/h2&gt;

&lt;p&gt;Moderate Parameters is a tool that provides safety nets and logging of data sources in the controller by extending &lt;code&gt;ActionController::Parameters&lt;/code&gt; functionality.&lt;/p&gt;

&lt;p&gt;Add the gem (&lt;a href="https://github.com/hintmedia/moderate_parameters" rel="noopener noreferrer"&gt;repo&lt;/a&gt;/&lt;a href="https://rubygems.org/gems/moderate_parameters" rel="noopener noreferrer"&gt;rubygems&lt;/a&gt;) to your application's Gemfile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'moderate_parameters'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, inside of the recommended strong parameters private method, replace &lt;code&gt;permit&lt;/code&gt; with &lt;code&gt;moderate&lt;/code&gt; and add a little context:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Note:&lt;/em&gt; &lt;code&gt;controller_path&lt;/code&gt; &lt;em&gt;and&lt;/em&gt; &lt;code&gt;action_name&lt;/code&gt; &lt;em&gt;need to be included as shown. They are methods that provide naming context for the logger.)&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UsersController&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActionController&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;

&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="nf"&gt;.&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="nf"&gt;private&lt;/span&gt;

&lt;span class="c1"&gt;# def user_params&lt;/span&gt;
&lt;span class="c1"&gt;#   params.require(:user).permit(:email, :first_name, . . .)&lt;/span&gt;
&lt;span class="c1"&gt;# end&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;user_params&lt;/span&gt;
    &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:user&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;moderate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;controller_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;action_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:first_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="nf"&gt;.&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And...that's it.&lt;/p&gt;

&lt;p&gt;Moderate Parameters will begin logging controller context and parameter keys that have not yet been whitelisted. This means that, in the above example, if you forgot to include &lt;code&gt;:last_name&lt;/code&gt; in the list of permitted parameters while creating a user, your log would look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Users#create is missing :last_name from the permitted parameters
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Test Like You Fly
&lt;/h2&gt;

&lt;p&gt;We have built Moderate Parameters to be deployed to production. This way we can ensure that all parameters are being accounted for every controller in the entire Rails app. Data will still flow through the app as expected, with the added benefit of painting a clear picture of what moving to Strong Parameters looks like.&lt;/p&gt;

&lt;p&gt;Once the full parameter list has been clearly outlined (meaning your Moderate Parameters logs are empty), switching over to Strong Parameters is as easy as swapping &lt;code&gt;moderate&lt;/code&gt; for &lt;code&gt;permit&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UsersController&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActionController&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;

&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="nf"&gt;.&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="nf"&gt;private&lt;/span&gt;

  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;user_params&lt;/span&gt;
    &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:user&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;permit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:first_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:last_name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="c1"&gt;# def user_params&lt;/span&gt;
&lt;span class="c1"&gt;#   params.require(:user).moderate(controller_path, action_name, :email, :first_name, :last_name)&lt;/span&gt;
&lt;span class="c1"&gt;# end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  We Can Help!
&lt;/h2&gt;

&lt;p&gt;We have built up a set of services that can run alongside Moderate Parameters in production to procedurally parse and generate exactly what Strong Parameters should look like.&lt;/p&gt;

&lt;p&gt;If Strong Parameters or something like it is preventing you or your team from enjoying the latest in Rails security and features, let us help you ensure your success. Our team has decades of experience helping teams turn unmanageable upgrades into cutting-edge products taking advantage of all that Rails has to offer.&lt;/p&gt;

</description>
      <category>rails</category>
      <category>showdev</category>
      <category>gem</category>
    </item>
    <item>
      <title>Monday Music Exchange</title>
      <dc:creator>Kyle Boe</dc:creator>
      <pubDate>Tue, 22 Jan 2019 00:34:59 +0000</pubDate>
      <link>https://dev.to/kyleboe/monday-music-exchange-4nff</link>
      <guid>https://dev.to/kyleboe/monday-music-exchange-4nff</guid>
      <description>&lt;p&gt;Hey fellow DEV's!&lt;/p&gt;

&lt;p&gt;I am always on the hunt for good music to listen to while programming and can quickly find myself in musical ruts. Let's all avoid musical ruts together and post some of our favorite tunes in the comments.&lt;/p&gt;

&lt;p&gt;I'd love to make this a weekly thing if there is enough interest. I'll post a playlist of everything shared from the previous week in the following week's post.&lt;/p&gt;

&lt;p&gt;P.S. Spotify URI's are &lt;a href="https://github.com/thepracticaldev/dev.to/pull/1573"&gt;now embeddable&lt;/a&gt; 😁&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>music</category>
      <category>musicexchange</category>
    </item>
    <item>
      <title>Keyboard Curiosity</title>
      <dc:creator>Kyle Boe</dc:creator>
      <pubDate>Tue, 13 Nov 2018 00:22:55 +0000</pubDate>
      <link>https://dev.to/kyleboe/keyboard-curiosity-3fj6</link>
      <guid>https://dev.to/kyleboe/keyboard-curiosity-3fj6</guid>
      <description>&lt;p&gt;What types of keyboard is your "daily driver"?&lt;br&gt;
Do you use a mechanical keyboard? Built-in laptop keyboard?&lt;br&gt;
Do you use different keyboards for work/personal use?&lt;/p&gt;

&lt;p&gt;Personally, I use a &lt;a href="http://www.vortexgear.tw/vortex2_2.asp?kind=47&amp;amp;kind2=225&amp;amp;kind3=&amp;amp;kind4=1042"&gt;Vortex 75 Race 3&lt;/a&gt; (pictured above). I like how compact and portable it is and am a big fan of the Cherry MX Clear switches. &lt;/p&gt;

&lt;p&gt;At home, I am hacking on a PCB from &lt;a href="https://olkb.com/"&gt;OLKB&lt;/a&gt; called the &lt;a href="https://olkb.com/planck/pcb"&gt;Planck&lt;/a&gt;. I had to buy all of the switches/caps/case separately but it was a fun project and ortholinear keyboards are fun to learn.&lt;/p&gt;

&lt;p&gt;Would love to see what the community uses!&lt;/p&gt;

</description>
      <category>mechanicalkeyboards</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
