<?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: inversemetric</title>
    <description>The latest articles on DEV Community by inversemetric (@inversemetric).</description>
    <link>https://dev.to/inversemetric</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%2F157675%2F4e45ad45-6b05-44c7-a9d2-36735eb886d4.png</url>
      <title>DEV Community: inversemetric</title>
      <link>https://dev.to/inversemetric</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/inversemetric"/>
    <language>en</language>
    <item>
      <title>Missing: Universal Watch Mode</title>
      <dc:creator>inversemetric</dc:creator>
      <pubDate>Tue, 12 May 2020 14:20:44 +0000</pubDate>
      <link>https://dev.to/inversemetric/missing-universal-watch-mode-ho2</link>
      <guid>https://dev.to/inversemetric/missing-universal-watch-mode-ho2</guid>
      <description>&lt;p&gt;Having a tight feedback loop for development is essential. At some point, tools like nodemon, hot module reloading, and even codepen gave us the ability to immediately see the results of the code we write. &lt;/p&gt;

&lt;p&gt;The problem is that every tool does it differently, so you have to look it up for each case whether it's from react, vue, angular, webpack, parceljs, typescript, python, haskell, java, jest, jasmine, karma, mocha, nyc, gulp, bash...&lt;/p&gt;

&lt;p&gt;What would it take to get everyone using one solution for this?&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Kubernetes CI/CD - my experience</title>
      <dc:creator>inversemetric</dc:creator>
      <pubDate>Tue, 12 May 2020 05:17:06 +0000</pubDate>
      <link>https://dev.to/inversemetric/kubernetes-ci-cd-my-experience-jkf</link>
      <guid>https://dev.to/inversemetric/kubernetes-ci-cd-my-experience-jkf</guid>
      <description>&lt;p&gt;Kubernetes has been fun to learn!&lt;br&gt;
EXCEPT for CI/CD.&lt;/p&gt;

&lt;p&gt;Here's some constructive criticism: Out of all the tools I've tried, they all have such awful developer experience, that after weeks of failed attempts I chose to build my own CI/CD server which I run on my local machine using github webhooks, ngrok, and a thin koa server that runs commands for me.&lt;/p&gt;

&lt;p&gt;So far I've tried:&lt;/p&gt;

&lt;p&gt;Jenkins X&lt;br&gt;
Jenkins&lt;br&gt;
GoCD&lt;br&gt;
Flux&lt;br&gt;
Brigade&lt;br&gt;
Keel&lt;br&gt;
Spinnaker&lt;br&gt;
GitKube&lt;/p&gt;

&lt;p&gt;Maybe it's the fact that I insist on never downgrading from Helm 3, or some of the tools are pretty fresh, but as a developer wanting to get my idea to market, I just don't have time to mess with tools that take multiple days to understand or set up.&lt;/p&gt;

&lt;p&gt;I'm writing this as feedback, because I don't think I'm the only one. Something else that desperately needs addressed is that &lt;code&gt;docker in docker&lt;/code&gt; doesn't just automatically work for building images, which may have contributed to my failed experiences with the tools above. &lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>cicd</category>
      <category>docker</category>
    </item>
    <item>
      <title>Same Dockerfile for Production and Development</title>
      <dc:creator>inversemetric</dc:creator>
      <pubDate>Tue, 12 May 2020 05:02:19 +0000</pubDate>
      <link>https://dev.to/inversemetric/same-dockerfile-for-production-and-development-fd6</link>
      <guid>https://dev.to/inversemetric/same-dockerfile-for-production-and-development-fd6</guid>
      <description>&lt;p&gt;You want your servers to run on docker and you want a consistent developer experience locally.&lt;/p&gt;

&lt;p&gt;Great! &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In your Dockerfile, COPY your source files as normal.&lt;/li&gt;
&lt;li&gt;Create a docker-compose.yml file that mounts a volume from the host machine to the source directory (overriding the COPY from the dockerfile). Override the &lt;code&gt;command&lt;/code&gt; inside docker-compose.yml as needed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Build normally for production.&lt;br&gt;
Use &lt;code&gt;docker-compose up --build&lt;/code&gt; for development on your host machine.&lt;/p&gt;

&lt;p&gt;Example: &lt;/p&gt;

&lt;p&gt;Dockerfile&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; node:alpine&lt;/span&gt;
&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="s"&gt; /api&lt;/span&gt;
&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; package.json .&lt;/span&gt;
&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; yarn.lock .&lt;/span&gt;
&lt;span class="k"&gt;RUN &lt;/span&gt;yarn &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; . /api&lt;/span&gt;

&lt;span class="k"&gt;CMD&lt;/span&gt;&lt;span class="s"&gt; ["node", "src/index.js"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;docker-compose.yml&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;3.6'&lt;/span&gt;
&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;api&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;.&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./src:/api/src&lt;/span&gt;
    &lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npx nodemon src/index.js&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>docker</category>
    </item>
    <item>
      <title>create-react-app component library mode</title>
      <dc:creator>inversemetric</dc:creator>
      <pubDate>Thu, 12 Dec 2019 15:00:57 +0000</pubDate>
      <link>https://dev.to/inversemetric/create-react-app-component-library-mode-5d56</link>
      <guid>https://dev.to/inversemetric/create-react-app-component-library-mode-5d56</guid>
      <description>&lt;p&gt;How, after all these years, does create-react-app not have a "component library" mode?&lt;/p&gt;

&lt;h1&gt;
  
  
  It's been a huge pain point for a lot of people for a long time
&lt;/h1&gt;

&lt;p&gt;That's why there are a ton of libraries and articles about how to do it, which are drastically different from one another.&lt;/p&gt;

&lt;p&gt;All it needs is this&lt;br&gt;
• Full endorsement from the react team&lt;br&gt;
• Use the same webpack configuration as create-react-app&lt;br&gt;
• ...Except the entrypoint needs to NOT have a hash in the js filename&lt;/p&gt;

&lt;p&gt;What doesn't work&lt;br&gt;
• Anything built on rollup, because it's not the same configuration&lt;br&gt;
• Anything that's "manual" because it will have to be manually updated by the author when cra updates&lt;br&gt;
• Anything that doesn't have community support because no one new can find it (terrible developer experience)&lt;/p&gt;

</description>
      <category>react</category>
    </item>
  </channel>
</rss>
