<?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: Manuel Fernandez</title>
    <description>The latest articles on Forem by Manuel Fernandez (@nelo_mf).</description>
    <link>https://forem.com/nelo_mf</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%2F5174%2Feee72380-dec2-4d81-8e7f-c8b61c7826fa.png</url>
      <title>Forem: Manuel Fernandez</title>
      <link>https://forem.com/nelo_mf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/nelo_mf"/>
    <language>en</language>
    <item>
      <title>Enter DockerGen: a CLI for creating projects with Docker</title>
      <dc:creator>Manuel Fernandez</dc:creator>
      <pubDate>Sun, 06 Apr 2025 22:28:37 +0000</pubDate>
      <link>https://forem.com/nelo_mf/enter-dockergen-a-cli-for-creating-projects-with-docker-i2a</link>
      <guid>https://forem.com/nelo_mf/enter-dockergen-a-cli-for-creating-projects-with-docker-i2a</guid>
      <description>&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;These past days I'm using Docker a lot, just to get some practice and improve my skills. It always bugged me that whenever I wanted to run an application using Docker, I would still had to install the necessary tools and dependencies to get the initial scaffolding and then dockerize the whole thing.&lt;br&gt;
"Enough is enough" I said one day. I had grown tired of all the unused tools, runtimes, and frameworks bloating my hard drive.&lt;/p&gt;
&lt;h2&gt;
  
  
   Enter DockerGen
&lt;/h2&gt;

&lt;p&gt;I knew it was possible to generate a scaffolding for any tool that had a Docker image available on DockerHub, but what if I took things one step further? What if I had a tool that allowed me to generate not only a sample project, but also the required files to run said project using Docker? &lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/MFernandez93" rel="noopener noreferrer"&gt;
        MFernandez93
      &lt;/a&gt; / &lt;a href="https://github.com/MFernandez93/dockergen-cli" rel="noopener noreferrer"&gt;
        dockergen-cli
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      CLI tool to quickly generate local development environments with Docker.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Dockergen&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Dockergen is a CLI tool that automates the creation of development environments using Docker. It generates the necessary Dockerfiles, &lt;code&gt;docker-compose.yml&lt;/code&gt; files, and initializes the project structure using a temporary Docker container.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Supports multiple programming languages: &lt;strong&gt;Node.js (Express), Python (Flask), PHP (Symfony)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Automatically generates Dockerfiles and &lt;code&gt;docker-compose.yml&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Creates the project skeleton using a temporary Docker container&lt;/li&gt;
&lt;li&gt;Simple installation and update commands&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Installation&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;To install DockerGen globally, run:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;curl -sSL https://raw.githubusercontent.com/MFernandez93/dockergen-cli/main/dockergen.sh -o dockergen.sh
chmod +x dockergen.sh
./dockergen.sh --install&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Usage&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;dockergen [PROJECT_NAME] [LANGUAGE]&lt;/pre&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;PROJECT_NAME&lt;/code&gt;: Name of the project (default: &lt;code&gt;my_project&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;LANGUAGE&lt;/code&gt;: Programming language (&lt;code&gt;node&lt;/code&gt;, &lt;code&gt;python&lt;/code&gt;, &lt;code&gt;php&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Example&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;dockergen myapp node&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;This will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a folder &lt;code&gt;myapp&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Download the corresponding Dockerfile and &lt;code&gt;docker-compose.yml&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Use Docker to initialize the project&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Commands&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;dockergen --install&lt;/code&gt; → Installs Dockergen globally&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dockergen --update&lt;/code&gt; → Updates Dockergen to the latest version&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dockergen -h&lt;/code&gt; → Shows the help message&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Requirements&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Docker installed…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/MFernandez93/dockergen-cli" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;As stated before, DockerGen is just a really simple Bash script that leverages the local Docker installation to create a temporary container where the project is created, and then the Docker Compose and Dockerfile files are pulled from a different repository!&lt;br&gt;
That's kinda awesome, I didn't know Bash scripts could do that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;p&gt;Honestly I had so much fun building this, I'll probably extend this in the future with support for different versions of the same tools (currently NodeJS, PHP and Python are supported), or maybe make it interactive so you can choose what would you like to add to your Docker setup (a frontend app, database, cache engine, you name it).&lt;br&gt;
This is my first Bash script, so comments and feedback are more than welcomed!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>bash</category>
      <category>docker</category>
    </item>
    <item>
      <title>Do you contribute to the Open Source culture? If so, how?</title>
      <dc:creator>Manuel Fernandez</dc:creator>
      <pubDate>Fri, 21 Jun 2019 16:03:15 +0000</pubDate>
      <link>https://forem.com/nelo_mf/do-you-contribute-to-the-open-source-culture-if-so-how-21bo</link>
      <guid>https://forem.com/nelo_mf/do-you-contribute-to-the-open-source-culture-if-so-how-21bo</guid>
      <description>&lt;p&gt;Hi everyone! I'm starting this debate because I want to know how do you contribute to the open source culture, if you do it at all. I just wanted to see if there are any other ways to help apart from fixing bugs or building new functionalities for an open source project.&lt;/p&gt;

&lt;p&gt;Don't be shy, I'm looking forward to reading your answers! :)&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>healthydebate</category>
    </item>
    <item>
      <title>Mentoring as a way of overcoming the impostor syndrome</title>
      <dc:creator>Manuel Fernandez</dc:creator>
      <pubDate>Sun, 12 May 2019 20:58:58 +0000</pubDate>
      <link>https://forem.com/nelo_mf/mentoring-as-a-way-of-overcoming-the-impostor-syndrome-298h</link>
      <guid>https://forem.com/nelo_mf/mentoring-as-a-way-of-overcoming-the-impostor-syndrome-298h</guid>
      <description>&lt;h2&gt;
  
  
  The ugly truth
&lt;/h2&gt;

&lt;p&gt;Having self-doubts about your accomplishments and your abilities, and having the fear of ever being exposed as a "fraud". Nowadays most people recognize the impostor syndrome as a psychological pattern that messes with our ability to achieve our goals and dreams.&lt;/p&gt;

&lt;p&gt;Altough most of us know what it is, we don't actually know a solution for every single case, and of course, there is no magical drug that can get your brain to stop getting in your way,  so escaping those thoughts might be a bit trickier than you wished.&lt;/p&gt;

&lt;p&gt;Being this my first ever online article, I wanted to share my experience on how I keep my very own I.S in check, and hopefully encourage you to find and try a solution for your own personal struggle. Hope you enjoy it :)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7mizi21lsb1gz4dllvg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7mizi21lsb1gz4dllvg.jpeg" alt="Picture of a blackboard with the word " width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So… let me put you in context. My name is Manuel, I'm 25 years old, and I've been working as a backend developer for the past year and a half for an Argentinian startup called Syloper.&lt;br&gt;
 &lt;br&gt;
On a daily basis, I divide the 8 hours I spend at the office between working in one of our major products (let's call it Product A for now), and dealing with some external clients. As the workflow never ends, I started to think that I wasn't doing enough, and that all the work I did in a full week had zero impact -  next week I would still be as busy as the week before - so I developed the above mentioned I.S.&lt;/p&gt;

&lt;p&gt;Somehow I kept this whole show running, until a new developer was hired. Not to replace me, but to work alongside me. The tricky part was that he was in a similar state as I was when I joined the company, and he was in need of some mentoring. So, in a bold move, my managers decided to assign him to Product A and make him work with me, easing my workload and giving him hands-on experience in a real project at the same time.&lt;/p&gt;
&lt;h2&gt;
  
  
  …And then things just clicked.
&lt;/h2&gt;

&lt;p&gt;My new partner needed to learn not only about the product he was working on, but also about the tools we work with (PHP 7 with the CakePHP 3 framework in this case), and I was tasked to help him out, show him the existing codebase, and basically being there for him in case he needed anything.&lt;/p&gt;

&lt;p&gt;What's my point here? &lt;strong&gt;Mentoring requires an unbiased self-assesment&lt;/strong&gt;. In order to transmit knowledge to someone else, you have to &lt;em&gt;get your facts straight&lt;/em&gt;, organize the things you know, so you can provide a solid foundation for the person you're mentoring when you communicate.&lt;/p&gt;

&lt;p&gt;For further reading, please have a look at Kaleb M's fantastic post, which explains more about this phenomenom called the &lt;em&gt;Dunning Kruger Effect&lt;/em&gt;.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/avatarkaleb" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F124370%2Fd5cce75d-27d0-47e3-912c-e3b63233e37a.png" alt="avatarkaleb"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/avatarkaleb/battling-imposter-syndrome-by-understanding-the-dunning-kruger-effect-904" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Battling Imposter Syndrome By Understanding the Dunning Kruger Effect&lt;/h2&gt;
      &lt;h3&gt;Kaleb M ・ Apr 29 '19&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#career&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How has this helped me?
&lt;/h2&gt;

&lt;p&gt;Things are going well so far, and I'm now much more confident in my abilities as a developer, and I get to exercise some soft-skills which are always welcome in our line of work.&lt;br&gt;
The bottom line here, is that if you are struggling with I.S, you should try to make an unbiased self-assesment of what you actually now: mentor a coworker, write some simple documentation for a plugin or tool that you tried for the first time... or just go to your favourite development community and write your first post, i'm getting that little sense of pride already :)&lt;/p&gt;

&lt;p&gt;That's it for this post, in case you made it to the end, thank you very much! let me know what you think down in the comments section.&lt;/p&gt;

</description>
      <category>mentoring</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
