<?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: Kevin K. Johnson</title>
    <description>The latest articles on DEV Community by Kevin K. Johnson (@recss).</description>
    <link>https://dev.to/recss</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%2F151123%2F5a946ef2-4618-4cdd-8a9f-d19938189c6d.png</url>
      <title>DEV Community: Kevin K. Johnson</title>
      <link>https://dev.to/recss</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/recss"/>
    <language>en</language>
    <item>
      <title>No Longer Tim Baker, Jane Fisher, Joe Taylor. What Would Be Your Chosen Occupational Last Name?</title>
      <dc:creator>Kevin K. Johnson</dc:creator>
      <pubDate>Wed, 04 Sep 2019 16:11:01 +0000</pubDate>
      <link>https://dev.to/recss/no-longer-tim-baker-jane-fisher-joe-taylor-what-would-be-your-chosen-occupational-last-name-566</link>
      <guid>https://dev.to/recss/no-longer-tim-baker-jane-fisher-joe-taylor-what-would-be-your-chosen-occupational-last-name-566</guid>
      <description>&lt;p&gt;I've yet to come up with a real good one, but maybe you will?&lt;br&gt;
¯\&lt;em&gt;(ツ)&lt;/em&gt;/¯&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Customize Your Reddit Feed 🏋️‍♀️</title>
      <dc:creator>Kevin K. Johnson</dc:creator>
      <pubDate>Thu, 01 Aug 2019 21:49:12 +0000</pubDate>
      <link>https://dev.to/recss/customize-your-reddit-feed-3p67</link>
      <guid>https://dev.to/recss/customize-your-reddit-feed-3p67</guid>
      <description>&lt;p&gt;I can't even remember where I learned this, but there's a neat little trick you can do with subreddits. Simply add a plus sign (+) between the names of subreddits, after the /r/, and you'll make a feed of everything you've concatenated.&lt;/p&gt;

&lt;p&gt;In a thread here, &lt;a href="https://dev.to/ben/comment/dj74"&gt;Ben Halpern mentioned he met a co-founder of DEV through reddit&lt;/a&gt;, so I figured I should be more active there too.&lt;/p&gt;

&lt;p&gt;I've made a custom feed for myself and this community: &lt;a href="https://www.reddit.com/r/Frontend+javascript+typography+userexperience+web_design+webdev"&gt;front-end reddit newsfeed&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if you want to go to each subreddit individually:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/javascript/"&gt;/r/javascript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/webdev/"&gt;/r/webdev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/web_design/"&gt;/r/web_design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/typography/"&gt;/r/typography&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/Frontend/"&gt;/r/frontend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/userexperience/"&gt;/r/userExperience&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>watercooler</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>What's Your Method of Finding a New Job? 🤔</title>
      <dc:creator>Kevin K. Johnson</dc:creator>
      <pubDate>Mon, 29 Jul 2019 00:12:57 +0000</pubDate>
      <link>https://dev.to/recss/what-s-your-method-of-finding-a-new-job-5301</link>
      <guid>https://dev.to/recss/what-s-your-method-of-finding-a-new-job-5301</guid>
      <description>&lt;p&gt;While it makes all the sense in the world to browse job boards, I've been more likely to do a search for local web design and development companies first.&lt;/p&gt;

&lt;p&gt;Sites like &lt;a href="https://clutch.co/web-developers/chicago"&gt;Clutch&lt;/a&gt; rank those companies—though its filters are impossible to use on mobile. That aggregation has been a good help.&lt;/p&gt;

&lt;p&gt;Who's doing it better? …or at least differently?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What Makes a Good DEV Post?</title>
      <dc:creator>Kevin K. Johnson</dc:creator>
      <pubDate>Wed, 24 Jul 2019 17:12:32 +0000</pubDate>
      <link>https://dev.to/recss/what-makes-a-good-dev-post-1bce</link>
      <guid>https://dev.to/recss/what-makes-a-good-dev-post-1bce</guid>
      <description>&lt;p&gt;What techniques have really helped your posts spark a conversation or get a bunch of reactions? Which things do you hate to see?&lt;/p&gt;

&lt;p&gt;I, for one, strongly prefer when all the article content is on DEV, rather than me needing to click-off to someone's personal website.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>meta</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Front-End Analogies: Closure's Coffee — Recursion</title>
      <dc:creator>Kevin K. Johnson</dc:creator>
      <pubDate>Wed, 24 Jul 2019 15:34:33 +0000</pubDate>
      <link>https://dev.to/recss/front-end-analogies-closure-s-coffee-recursion-2f5e</link>
      <guid>https://dev.to/recss/front-end-analogies-closure-s-coffee-recursion-2f5e</guid>
      <description>&lt;h3&gt;
  
  
  Cleaning Shop
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Recursion
&lt;/h4&gt;

&lt;p&gt;Jack is a clean freak. Leave him unattended, and the whole place will be spotless. Great and all, but, uh, we're actually trying to sell coffee here.&lt;/p&gt;

&lt;p&gt;Over time, we've gotten a good estimate of how long it'll take him to do his tasks. Give him a hard time limit and neither one of us will be driven up a wall. Or murdered.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;use strict&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;timeLimit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;45&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cleaningTasks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;tasksCompleted&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;

&lt;span class="c1"&gt;// Jack's thinking: "I've only got 45 minutes?!"&lt;/span&gt;
&lt;span class="c1"&gt;// "I'll just go down the list, one by one."&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;jackCleaning&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_tasks&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_timeLimit&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_tasksCompleted&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;_tasks&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;_tasks&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

            &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;taskTimeChecker&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;_tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;task&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="nx"&gt;_timeLimit&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="c1"&gt;// "Find the first one, get it done."&lt;/span&gt;

            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;taskTimeChecker&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;taskTimeChecker&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;taskTimeChecker&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nx"&gt;_timeLimit&lt;/span&gt; &lt;span class="o"&gt;-=&lt;/span&gt; &lt;span class="nx"&gt;taskTimeChecker&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;_timeLimit&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;_timeLimit&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                &lt;span class="c1"&gt;// "Runnin' out of time."&lt;/span&gt;

                &lt;span class="nx"&gt;_tasksCompleted&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;taskTimeChecker&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;_tasksCompleted&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;_tasksCompleted&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                &lt;span class="c1"&gt;// "Another one bites the dust."&lt;/span&gt;

                &lt;span class="nx"&gt;_tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;splice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;indexOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;taskTimeChecker&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                &lt;span class="c1"&gt;// "Check that one off the list."&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_tasksCompleted&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`_tasksCompleted: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;_tasksCompleted&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;

            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;jackCleaning&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_tasks&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="nx"&gt;_timeLimit&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="nx"&gt;_tasksCompleted&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="c1"&gt;// "All play and no work makes Jack a dull boy."&lt;/span&gt;
            &lt;span class="c1"&gt;// And he just keeps going down the list like a madman.&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;jackCleaning&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;cleaningTasks&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="nx"&gt;timeLimit&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="nx"&gt;tasksCompleted&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// "_tasks" [15, 10, 8, 5, 3, 25, 7]&lt;/span&gt;
&lt;span class="c1"&gt;// "taskTimeChecker" 15&lt;/span&gt;
&lt;span class="c1"&gt;// "_timeLimit" 30&lt;/span&gt;
&lt;span class="c1"&gt;// "_tasksCompleted" [15]&lt;/span&gt;

&lt;span class="c1"&gt;// He's done one 15-minute task, and has 30 minutes left…&lt;/span&gt;

&lt;span class="c1"&gt;// "_tasks" [10, 8, 5, 3, 25, 7]&lt;/span&gt;
&lt;span class="c1"&gt;// "taskTimeChecker" 10&lt;/span&gt;
&lt;span class="c1"&gt;// "_timeLimit" 20&lt;/span&gt;
&lt;span class="c1"&gt;// "_tasksCompleted" [15, 10]&lt;/span&gt;


&lt;span class="c1"&gt;// "_tasks" [8, 5, 3, 25, 7]&lt;/span&gt;
&lt;span class="c1"&gt;// "taskTimeChecker" 8&lt;/span&gt;
&lt;span class="c1"&gt;// "_timeLimit" 12&lt;/span&gt;
&lt;span class="c1"&gt;// "_tasksCompleted" [15, 10, 8]&lt;/span&gt;


&lt;span class="c1"&gt;// "_tasks" [5, 3, 25, 7]&lt;/span&gt;
&lt;span class="c1"&gt;// "taskTimeChecker" 5&lt;/span&gt;
&lt;span class="c1"&gt;// "_timeLimit" 7&lt;/span&gt;
&lt;span class="c1"&gt;// "_tasksCompleted" [15, 10, 8, 5]&lt;/span&gt;


&lt;span class="c1"&gt;// "_tasks" [3, 25, 7]&lt;/span&gt;
&lt;span class="c1"&gt;// "taskTimeChecker" 3&lt;/span&gt;
&lt;span class="c1"&gt;// "_timeLimit" 4&lt;/span&gt;
&lt;span class="c1"&gt;// "_tasksCompleted" [15, 10, 8, 5, 3]&lt;/span&gt;


&lt;span class="c1"&gt;// "_tasks" [25, 7]&lt;/span&gt;
&lt;span class="c1"&gt;// "taskTimeChecker" undefined&lt;/span&gt;
&lt;span class="c1"&gt;// [15, 10, 8, 5, 3]&lt;/span&gt;
&lt;span class="c1"&gt;// "_tasksCompleted: 15,10,8,5,3"&lt;/span&gt;

&lt;span class="c1"&gt;// With only 4 minutes left, neither one of those tasks is short enough.&lt;/span&gt;
&lt;span class="c1"&gt;// Mr. Scrubbing Bubbles has to go back to slingin' beans.&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Bonus Lesson!
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Variable Names
&lt;/h4&gt;

&lt;p&gt;Didn't all those examples seem real easy to follow with all 'em good names? If they weren't, I had no part in this and you never saw me.&lt;/p&gt;

&lt;h4&gt;
  
  
  On the way out, we pass a sign that says:
&lt;/h4&gt;

&lt;p&gt;A. always&lt;br&gt;
B. be&lt;br&gt;
C. coding&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Front-End Analogies: Closure's Coffee — Partial Application</title>
      <dc:creator>Kevin K. Johnson</dc:creator>
      <pubDate>Wed, 24 Jul 2019 15:34:11 +0000</pubDate>
      <link>https://dev.to/recss/front-end-analogies-closure-s-coffee-partial-application-155p</link>
      <guid>https://dev.to/recss/front-end-analogies-closure-s-coffee-partial-application-155p</guid>
      <description>&lt;h3&gt;
  
  
  Ordering Coffee
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Partial Application
&lt;/h4&gt;

&lt;p&gt;Joe has a coffee addiction. It's not in the DSM-5, so who cares? Time to make a profit.&lt;/p&gt;

&lt;p&gt;What do we know about this bozo? His name's Joe. He always gets two cups. One is going to be coffee with milk, but we'll say it in French—café au lait—to charge more. The second one, he likes to mix that up. Could be anything.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;use strict&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;customerName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_personName&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;_personName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; wants `&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;buyTwoDrinks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_firstCoffeeName&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;secondDrink&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_secondCoffeeName&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;_firstCoffeeName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; and &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;_secondCoffeeName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;secondDrink&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;Joe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;customerName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Joe&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// What kinda clown's name is this?&lt;/span&gt;
&lt;span class="c1"&gt;// Prolly doesn't know his order yet cuz he spent too much time honkin' his nose.&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;JoesUsual&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;buyTwoDrinks&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Cafe au Lait&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// Usual baristas [functions] are like,&lt;/span&gt;
&lt;span class="c1"&gt;// "I want both these drink orders [parameters] right damn now."&lt;/span&gt;
&lt;span class="c1"&gt;// This bro is chill about it. We've got the first one on-deck,&lt;/span&gt;
&lt;span class="c1"&gt;// but we know we have to wait a little bit.&lt;/span&gt;

&lt;span class="c1"&gt;// When Joe comes in over the course of the week to order,&lt;/span&gt;
&lt;span class="c1"&gt;// it might look a little like this:&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;Joe&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;JoesUsual&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Espresso&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// Joe wants Cafe au Lait and Espresso.&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;Joe&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;JoesUsual&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Nitro Cold Brew&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// Joe wants Cafe au Lait and Nitro Cold Brew.&lt;/span&gt;

&lt;span class="c1"&gt;// This is a lot easier and less error-prone than writing:&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;customerName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Joe&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;buyTwoDrinks&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Cafe au lait&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Chai latte&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// Joe wants Cafe au Lait and Chai latte.&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;customerName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Joe&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;buyTwoDrinks&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Cafe au lait&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Flat white&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// Joe wants Cafe au Lait and Flat white.&lt;/span&gt;

&lt;span class="c1"&gt;// Gotta save time. You ever seen Joe without his caffeine for too long?&lt;/span&gt;
&lt;span class="c1"&gt;// It's less clown college and more Dark Knight Returns.&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Front-End Analogies: Closure's Coffee — Currying</title>
      <dc:creator>Kevin K. Johnson</dc:creator>
      <pubDate>Wed, 24 Jul 2019 15:33:45 +0000</pubDate>
      <link>https://dev.to/recss/front-end-analogies-closure-s-coffee-currying-5b6j</link>
      <guid>https://dev.to/recss/front-end-analogies-closure-s-coffee-currying-5b6j</guid>
      <description>&lt;h3&gt;
  
  
  Roasting Coffee
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Currying
&lt;/h4&gt;

&lt;p&gt;Kona is struggling with a coffee roaster. It's so old all the instructions wore off. Every time she puts in a pound of beans: poof. Burnt to a crisp.&lt;/p&gt;

&lt;p&gt;Finally, management buys a roaster that isn't so terrible. Probably said it was their idea, too. One pound at a time? Sure thing, boss. It'll even tell you how much is left the the load, if you're real nice.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;use strict&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// I didn't tell you this, but:&lt;/span&gt;
&lt;span class="c1"&gt;// Currying is the same as unary, accepts one parameter…&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;coffeeRoaster_Multiary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_scoop1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;_scoop2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;_scoop3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;_scoop4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;_scoop5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;_scoop6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;_scoop7&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;_scoop1, _scoop2, _scoop3, _scoop4, _scoop5, _scoop6, _scoop7&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Roastin' time.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;coffeeRoaster_Unary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;_scoop1&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`6 more pounds.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;coffeeRoaster_Unary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;_scoop2&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`5 more pounds.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;coffeeRoaster_Unary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;_scoop3&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`4 more pounds.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;coffeeRoaster_Unary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;_scoop4&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`3 more pounds.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;coffeeRoaster_Unary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;_scoop5&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`2 more pounds.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

                    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;coffeeRoaster_Unary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;_scoop6&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`1 more pound.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

                        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;coffeeRoaster_Unary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;_scoop7&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`All &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;_scoop7&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; pounds loaded.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Roastin' time.`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                        &lt;span class="p"&gt;}&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;coffeeRoaster_Multiary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// "1, undefined, undefined, undefined, undefined, undefined, undefined"&lt;/span&gt;

&lt;span class="c1"&gt;// That one was incinerated, like Starbucks…&lt;/span&gt;

&lt;span class="nx"&gt;coffeeRoaster_Multiary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;2&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;4&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;6&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;7&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// "1, 2, 3, 4, 5, 6, 7"&lt;/span&gt;

&lt;span class="c1"&gt;// Finally works if you're able to put all 7 pounds in at once.&lt;/span&gt;
&lt;span class="c1"&gt;// That's one big scoop.&lt;/span&gt;

&lt;span class="nx"&gt;coffeeRoaster_Unary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;2&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// "6 more pounds"&lt;/span&gt;
&lt;span class="c1"&gt;// "5 more pounds"&lt;/span&gt;

&lt;span class="nx"&gt;coffeeRoaster_Unary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;4&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// "4 more pounds"&lt;/span&gt;
&lt;span class="c1"&gt;// "3 more pounds"&lt;/span&gt;

&lt;span class="nx"&gt;coffeeRoaster_Unary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;6&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;7&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// "2 more pounds."&lt;/span&gt;
&lt;span class="c1"&gt;// "1 more pound."&lt;/span&gt;
&lt;span class="c1"&gt;// "All 7 pounds loaded."&lt;/span&gt;

&lt;span class="c1"&gt;// With this newfangled machine, you can do it at your leisure.&lt;/span&gt;
&lt;span class="c1"&gt;// We were able to put a man on the moon,&lt;/span&gt;
&lt;span class="c1"&gt;// but this is so hard?&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Front-End Analogies: Closure's Coffee — Closures, Lexical Scope</title>
      <dc:creator>Kevin K. Johnson</dc:creator>
      <pubDate>Tue, 23 Jul 2019 02:23:57 +0000</pubDate>
      <link>https://dev.to/recss/front-end-analogies-closure-s-coffee-closures-scope-partial-application-currying-recursion-4bkp</link>
      <guid>https://dev.to/recss/front-end-analogies-closure-s-coffee-closures-scope-partial-application-currying-recursion-4bkp</guid>
      <description>&lt;h2&gt;
  
  
  Closure's Coffee
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Where Coffee's for Closures
&lt;/h4&gt;

&lt;p&gt;Today we're visiting an internationally franchised cafe chain specializing in serving cups of the jitters. We'll hop-around to several areas and roles to get a good sense of the place.&lt;/p&gt;

&lt;p&gt;The vibe is definitely PhD students working on their MacBooks while uniformed PhD students with 20 fewer dollars boil beans into a energetic goop. Just like all the other cafes. Try not to step on your own shoes, will ya?&lt;/p&gt;




&lt;h3&gt;
  
  
  A Visit from Corporate
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Lexical Scope, Inheritance, Privacy
&lt;/h4&gt;

&lt;p&gt;Some lifeless husks from headquarters are setting up two new stores. Gotta give 'em the rules and all. No tattoos out in the open, nobody phones, no nothin'. Then the suits are just going to copy their work for the next store.&lt;/p&gt;

&lt;p&gt;That second store has people that write-up press releases. Corporate wants to remind them the business name is always in caps. GREAT, now we're yelling.&lt;/p&gt;

&lt;p&gt;Oh yeah, those kids got real attached to their pocket computers. Just gotta be a little sneaky about it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;use strict&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;corp_storeOneRules&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;tattoosVisible&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;phoneAtRegister&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;pettyAnnoyance&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;corp_storeTwoRules&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;corp_storeOneRules&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;// Run it back.&lt;/span&gt;
    &lt;span class="c1"&gt;// Why half-ass two things when you can whole-ass one thing, repeatedly?&lt;/span&gt;
    &lt;span class="na"&gt;brandNameCaps&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;_brandName&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;_brandName&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toUpperCase&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;corp_storeOneRules&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="cm"&gt;/*
Object {
    pettyAnnoyance: true,
    phoneAtRegister: false,
    tattoosVisible: false
}
*/&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;corp_storeTwoRules&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="cm"&gt;/*
Object {
    brandNameCaps: _brandName =&amp;gt; _brandName.toUpperCase(),
    pettyAnnoyance: true,
    phoneAtRegister: false,
    tattoosVisible: false
}
*/&lt;/span&gt;

&lt;span class="c1"&gt;// Store two has rules nearly identical to store one,&lt;/span&gt;
&lt;span class="c1"&gt;// but with the rule about branding added.&lt;/span&gt;

&lt;span class="c1"&gt;// console.log(corp_storeOneRules.brandNameCaps("closure's coffee"));&lt;/span&gt;

&lt;span class="c1"&gt;// Come in the store talking about formatting press announcements&lt;/span&gt;
&lt;span class="c1"&gt;// and people will be looking at you studid.&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;corp_storeTwoRules&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;brandNameCaps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;closure's coffee&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;employees_storeRules&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;phoneAtRegister&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;phoneAtRegisterWithCorp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="c1"&gt;// Looks like the workers aren't going down without a fight.&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;corp_giveStoreRules&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;_rules&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;secretRules&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Fuggedaboutit.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="c1"&gt;// You couldn't change this if you wanted to.&lt;/span&gt;
    &lt;span class="c1"&gt;// Well, maybe with an obscene amount of money.&lt;/span&gt;
    &lt;span class="c1"&gt;// That can do anything.&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;existingRules&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;_ourRules&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;_rules&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;_ourRules&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;secret&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;secretRules&lt;/span&gt;
            &lt;span class="c1"&gt;// If you don't know, that's called the "spread operator".&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;existingRules&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;corp_giveStoreRules&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;corp_storeOneRules&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="nx"&gt;employees_storeRules&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="cm"&gt;/*
Object {
    pettyAnnoyance: true,
    phoneAtRegister: true,
    phoneAtRegisterWithCorp: false,
    secret: "Fuggedaboutit.",
    tattoosVisible: false
}
*/&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;corp_giveStoreRules&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;corp_storeTwoRules&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="nx"&gt;employees_storeRules&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="cm"&gt;/*
Object {
    brandNameCaps: _brandName =&amp;gt; _brandName.toUpperCase(),
    pettyAnnoyance: true,
    phoneAtRegister: true,
    phoneAtRegisterWithCorp: false,
    secret: "Fuggedaboutit.",
    tattoosVisible: false
}
*/&lt;/span&gt;

&lt;span class="c1"&gt;// Though we couldn't change or directly access the secret rules,&lt;/span&gt;
&lt;span class="c1"&gt;// we still have to worry about them. Well, they do.&lt;/span&gt;

&lt;span class="c1"&gt;// You know, no one ever wonders where the .toUpperCase() comes from.&lt;/span&gt;
&lt;span class="c1"&gt;// Thing is: it fell off a truck. That's how we inherit around here.&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How Loyal Should We Be to Our Employers?</title>
      <dc:creator>Kevin K. Johnson</dc:creator>
      <pubDate>Thu, 18 Jul 2019 14:23:55 +0000</pubDate>
      <link>https://dev.to/recss/how-loyal-should-we-be-to-our-employers-5cff</link>
      <guid>https://dev.to/recss/how-loyal-should-we-be-to-our-employers-5cff</guid>
      <description>&lt;p&gt;Ultimately, our employment is a transaction. We provide skills and knowledge; they compensate us financially—or with ping-pong and LaCroix.&lt;/p&gt;

&lt;p&gt;Beyond staying long enough, working hard enough to make sure the job is done: What do we owe? What, &lt;em&gt;if anything&lt;/em&gt;, has inspired you to give more of yourself? What has caused you to be defensive and lookout for yourself?&lt;/p&gt;

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