<?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>Forem: Johannes Schröder</title>
    <description>The latest articles on Forem by Johannes Schröder (@scribblerockerz).</description>
    <link>https://forem.com/scribblerockerz</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%2F34963%2Ff1aff88a-77cd-4da1-9d44-cc7723658e0e.png</url>
      <title>Forem: Johannes Schröder</title>
      <link>https://forem.com/scribblerockerz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/scribblerockerz"/>
    <language>en</language>
    <item>
      <title>Finding the right tool for the job</title>
      <dc:creator>Johannes Schröder</dc:creator>
      <pubDate>Mon, 16 Oct 2017 21:28:16 +0000</pubDate>
      <link>https://forem.com/scribblerockerz/finding-the-right-tool-for-the-job-a3o</link>
      <guid>https://forem.com/scribblerockerz/finding-the-right-tool-for-the-job-a3o</guid>
      <description>

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mZ0Tc2Tt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kcyx1bsf2956st0ftibk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mZ0Tc2Tt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/kcyx1bsf2956st0ftibk.png" alt="micro-service screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From time to time you come across a real problem. Like a real one, not a "like to solve" one. And then you use your valuable resources —the time between your real job and the moment you fall asleep on your keyboard— to dig in and figure out how to solve it.&lt;/p&gt;

&lt;h4&gt;
  
  
  The Problem
&lt;/h4&gt;

&lt;p&gt;My problem was "&lt;strong&gt;unencrypted passwords&lt;/strong&gt; lying in clients emails for &lt;strong&gt;EVER&lt;/strong&gt;".&lt;/p&gt;

&lt;h4&gt;
  
  
  The Concept
&lt;/h4&gt;

&lt;p&gt;After a few weeks on brainstorming, a coworker and I found a way to deal with this problem: "encryption in the browser" — well, sounds kinda lame and obvious...&lt;/p&gt;

&lt;h4&gt;
  
  
  The Project
&lt;/h4&gt;

&lt;p&gt;My first attempt was to create a working prototype in Symofony, since it's the framework I'm most familiar with.&lt;/p&gt;

&lt;p&gt;The prototype was exactly how I wanted it to be, except the feeling that my micro-service was not micro at all.&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;38 Composer packages
393 NPM packages
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;After a while I tried to get rid of the packages I didn't use, but it got worse.&lt;/p&gt;

&lt;p&gt;My first intention was to throw everything away and pretend it never happened.&lt;/p&gt;

&lt;p&gt;But then, I decided to give it an other try and recreated the same application in &lt;a href="https://expressjs.com"&gt;express&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The amount of packages grew up to &lt;strong&gt;~610 NPM packages&lt;/strong&gt;, but the reward was great:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one ecosystem (node)&lt;/li&gt;
&lt;li&gt;bundled executable (thanks to &lt;a href="https://github.com/zeit/pkg"&gt;pkg&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;one language to deal with (js)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Result: &lt;a href="https://github.com/Scribblerockerz/cryptletter"&gt;cryptletter&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;The result of my work can be found at &lt;a href="https://github.com/Scribblerockerz/cryptletter"&gt;github&lt;/a&gt;. If you have tips, find bugs, or just want to give some feedback on the concept in general, feel free to contact me. Any feedback is appreciated.&lt;/p&gt;

&lt;h4&gt;
  
  
  Lessons learned
&lt;/h4&gt;

&lt;p&gt;The first "weapon of choice" might not be the best. Just using a framework for the sake of using it is most of the time not that good.&lt;/p&gt;

&lt;p&gt;I never used express for real project, since I am one from the PHP world. But learning new things is kinda awesome.&lt;/p&gt;




&lt;h4&gt;
  
  
  How do you choose a tool or framework for a project?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;"Check the requirements and decide"&lt;/li&gt;
&lt;li&gt;"Let's use [insert framework here] for anything"&lt;/li&gt;
&lt;li&gt;"Wordpress!" — "But you don't even know the requirements?"...&lt;/li&gt;
&lt;/ul&gt;


</description>
      <category>javascript</category>
      <category>node</category>
      <category>showdev</category>
      <category>devdiary</category>
    </item>
  </channel>
</rss>
