<?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: Anri</title>
    <description>The latest articles on DEV Community by Anri (@anraiki).</description>
    <link>https://dev.to/anraiki</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%2F91439%2Fedc7bc3e-d8ad-4c32-bd74-d74563c15055.jpg</url>
      <title>DEV Community: Anri</title>
      <link>https://dev.to/anraiki</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anraiki"/>
    <language>en</language>
    <item>
      <title>The wall behind the wall</title>
      <dc:creator>Anri</dc:creator>
      <pubDate>Fri, 29 Oct 2021 20:10:00 +0000</pubDate>
      <link>https://dev.to/anraiki/the-wall-behind-the-wall-16bj</link>
      <guid>https://dev.to/anraiki/the-wall-behind-the-wall-16bj</guid>
      <description>&lt;p&gt;Here is a paradigm or a pattern that many programmers journey throughout their careers.&lt;/p&gt;

&lt;p&gt;It can also be applied to life in general.&lt;/p&gt;

&lt;p&gt;So let's get started with a simple problem: A wall.&lt;/p&gt;

&lt;p&gt;And once you get over that wall, there is another wall.&lt;/p&gt;

&lt;p&gt;And then, after that wall, another wall.&lt;/p&gt;

&lt;p&gt;I call this &lt;strong&gt;The wall behind the wall&lt;/strong&gt;. &lt;/p&gt;




&lt;p&gt;One day, my manager came asking for help troubleshooting a problem on a WordPress site.&lt;/p&gt;

&lt;p&gt;The contact form was not working on the homepage, but it would work on a private page.&lt;/p&gt;

&lt;p&gt;I investigated to see what was going on. What was missing? Why didn't it work on the homepage?&lt;/p&gt;

&lt;p&gt;The contact form on the private page had events attached to the form while the homepage did not.&lt;/p&gt;

&lt;p&gt;In conclusion, the contact form was not loading properly on the homepage. Still, but why?&lt;/p&gt;

&lt;p&gt;Further investigation lead to that form loading on the private page required a script. That script was being minimized from a plugin. We disabled that plugin, but that did not fix the issue.&lt;/p&gt;

&lt;p&gt;After prodding and poking around, we found another plugin that was "unloading assets" on the page.&lt;/p&gt;

&lt;p&gt;Configuring the plugin on the homepage allowed the script to load and fixed the issue.&lt;/p&gt;

&lt;p&gt;We were finally over the wall.&lt;/p&gt;

&lt;p&gt;But it worked half heartily.&lt;/p&gt;

&lt;p&gt;The form could be submitted but it would error:&lt;/p&gt;

&lt;p&gt;"Your submission is considered spam"&lt;/p&gt;

&lt;p&gt;A wall behind the wall.&lt;/p&gt;

&lt;p&gt;After enough head banging on the wall, we found that there was a invisible reCAPTCHA (anti-spam feature) on the form. &lt;/p&gt;

&lt;p&gt;Disabling reCAPTCHA all together solve our problem and we were finally over two walls.&lt;/p&gt;

&lt;p&gt;We are free!!!&lt;/p&gt;




&lt;p&gt;Two days later, I get a text message from my client: &lt;/p&gt;

&lt;p&gt;"Did you disabled the reCAPTCHA on the site? I am getting a TON of spam"&lt;/p&gt;

&lt;p&gt;I realized I have just hit an invisible wall.&lt;/p&gt;

&lt;p&gt;I had to reactivate the reCAPTCHA but that would mean the form would break on the homepage.&lt;/p&gt;

&lt;p&gt;How do I get the best of both worlds? That is getting reCAPTCHA and the form to work without fighting each other.&lt;/p&gt;

&lt;p&gt;After wallowing on my bed for some time, I get back up and worked on the issue.&lt;/p&gt;

&lt;p&gt;Utilizing the plugin that unloaded assets on the homepage, I targeted the reCAPTCHA script on the form. &lt;/p&gt;

&lt;p&gt;It worked.&lt;/p&gt;

&lt;p&gt;Now we were truly free.&lt;/p&gt;




&lt;p&gt;As you can see, I had traversed two extra walls behind one wall. &lt;/p&gt;

&lt;p&gt;Why did I tell you this story? Because you are going to face what is called, the "Unknown unknown".&lt;/p&gt;

&lt;p&gt;That is when you can only see one wall but not the many problems or walls that hide behind it. Possibly an infinite number of walls.&lt;/p&gt;

&lt;p&gt;And that infinite number can burn you out.&lt;/p&gt;




&lt;p&gt;When it comes to estimating a project, there is a reason why it should be normalize to "double" the quote.&lt;/p&gt;

&lt;p&gt;We are charging for the &lt;strong&gt;Unknown unknown&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Most developers do not have the insight to see behind the wall.&lt;/p&gt;

&lt;p&gt;In my recollection, it's with experience that we are able to deduce that there are many walls behind the wall. &lt;/p&gt;

&lt;p&gt;That experience is usually from being burned by exploring many walls. &lt;/p&gt;




&lt;p&gt;Hey look, a simple task!&lt;/p&gt;

&lt;p&gt;"A simple task like putting a border on a box? Yea! Done."&lt;br&gt;
"Henry, this doesn't look good on the phone. Look how it collapse the contest beyond the phone's width"&lt;br&gt;
"Okay. Media Query."&lt;br&gt;
"Good. Oh wait, it doesn't look good on the iPad"&lt;br&gt;
"Okay... More media query"&lt;br&gt;
"Oh yeah, it doesn't look good on my watch too..."&lt;br&gt;
"(Internally scream)"&lt;/p&gt;

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