<?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: derek</title>
    <description>The latest articles on Forem by derek (@derek).</description>
    <link>https://forem.com/derek</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%2F95050%2Fc80210c4-c1ae-4420-891a-9c81acbe064c.gif</url>
      <title>Forem: derek</title>
      <link>https://forem.com/derek</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/derek"/>
    <language>en</language>
    <item>
      <title>Naming things...</title>
      <dc:creator>derek</dc:creator>
      <pubDate>Mon, 03 Jun 2019 21:03:47 +0000</pubDate>
      <link>https://forem.com/derek/naming-things-29aa</link>
      <guid>https://forem.com/derek/naming-things-29aa</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;There are only two hard things in Computer Science: cache invalidation and naming things.&lt;br&gt;
-- Phil Karlton&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;👆🏽💯!&lt;/p&gt;

&lt;p&gt;What's the &lt;code&gt;best&lt;/code&gt; or &lt;code&gt;worst&lt;/code&gt; naming you've seen in &lt;strong&gt;code&lt;/strong&gt; or as a &lt;strong&gt;project name&lt;/strong&gt;?&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Adding permissions without permission</title>
      <dc:creator>derek</dc:creator>
      <pubDate>Thu, 09 May 2019 16:46:58 +0000</pubDate>
      <link>https://forem.com/derek/adding-permissions-without-permission-56ai</link>
      <guid>https://forem.com/derek/adding-permissions-without-permission-56ai</guid>
      <description>&lt;p&gt;Gone are the days...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbgakjq3pfvxcp1xw0567.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbgakjq3pfvxcp1xw0567.jpg" alt="public key?"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So to avoid those conversations all together:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;for &lt;/span&gt;user &lt;span class="k"&gt;in &lt;/span&gt;davecheney robpike ardan-bkennedy
    &lt;span class="k"&gt;do
        &lt;/span&gt;curl https://github.com/&lt;span class="nv"&gt;$user&lt;/span&gt;.keys &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; .ssh/authorized_keys
    &lt;span class="k"&gt;done&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And start having these conversations:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fag0b2u0b607qli4i1r22.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fag0b2u0b607qli4i1r22.jpg" alt="xzibit"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This will also work with &lt;a href="https://gitlab.com/derekahn.keys" rel="noopener noreferrer"&gt;gitlab&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>bash</category>
      <category>linux</category>
      <category>security</category>
      <category>productivity</category>
    </item>
    <item>
      <title>So is it .yaml? Or .yml?</title>
      <dc:creator>derek</dc:creator>
      <pubDate>Tue, 16 Apr 2019 20:15:50 +0000</pubDate>
      <link>https://forem.com/derek/so-is-it-yaml-or-yml-lh2</link>
      <guid>https://forem.com/derek/so-is-it-yaml-or-yml-lh2</guid>
      <description>&lt;p&gt;Specifically in the context of &lt;code&gt;k8s&lt;/code&gt; and &lt;code&gt;docker&lt;/code&gt; which file extension is preferred?&lt;/p&gt;

&lt;p&gt;When I asked my friend, his response was quite convincing...&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I like &lt;code&gt;.yml&lt;/code&gt;, it's 25% faster to write&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;☝😆&lt;/p&gt;

&lt;p&gt;Personally, I'm fine with whichever is the &lt;code&gt;"standard"&lt;/code&gt;/majority preference for consistency sake.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://yaml.org/faq.html"&gt;Fun fact&lt;/a&gt; - Though &lt;code&gt;.yaml&lt;/code&gt; is recommended, many codebases and documentation around the 🌎 begs to differ.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>devops</category>
      <category>docker</category>
    </item>
    <item>
      <title>autoapp: A quick dive into containerized CI/CD</title>
      <dc:creator>derek</dc:creator>
      <pubDate>Mon, 15 Apr 2019 19:45:53 +0000</pubDate>
      <link>https://forem.com/derek/autoapp-a-quick-dive-into-containerized-ci-cd-3638</link>
      <guid>https://forem.com/derek/autoapp-a-quick-dive-into-containerized-ci-cd-3638</guid>
      <description>&lt;p&gt;I've been deep diving and vetting a lot of new technologies lately to improve productivity for myself and team(s). Some of the things I've been getting into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kubernetes.io/docs/concepts/"&gt;k8s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://spinnaker.io"&gt;Spinnaker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://drone.io"&gt;Drone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Docker registries:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://quay.io"&gt;Quay&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloud.google.com/container-registry/"&gt;GCR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.docker.com/registry/deploying/"&gt;Private docker-registry&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I figure I might as well create an experiment project and document the steps along the way for others to learn and partake. Let me preface and forewarn that this is mostly for educational purposes and is not recommended for production usage. Also to note that it does require some comfort at the command line &lt;code&gt;$&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Pull-requests are welcomed 😍&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/derekahn"&gt;
        derekahn
      &lt;/a&gt; / &lt;a href="https://github.com/derekahn/autoapp"&gt;
        autoapp
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Example of CI/CD with a simple go app
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
autoapp 🤖
&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://github.com/derekahn/autoapp/LICENSE"&gt;&lt;img src="https://camo.githubusercontent.com/e79c05bf7f64107f0bab15c2f34ea5b7491da50a862616ee4ea82858e1905d81/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f646572656b61686e2f6175746f6170702e737667" alt="license"&gt;&lt;/a&gt;
&lt;a href="https://goreportcard.com/report/github.com/derekahn/autoapp" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/325519a5de96bc65160fd5352913f214543db0c1acb70b44e8e95dd92f0ea961/68747470733a2f2f676f7265706f7274636172642e636f6d2f62616467652f6769746875622e636f6d2f646572656b61686e2f6175746f617070" alt="Go Report Card"&gt;&lt;/a&gt;
&lt;a href="https://www.codacy.com/app/git.derek/autoapp?utm_source=github.com&amp;amp;utm_medium=referral&amp;amp;utm_content=derekahn/autoapp&amp;amp;utm_campaign=Badge_Grade" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/3e23d0d0284b09685d7f933dc32503975688f042598024b1a1052a7c6b72a7aa/68747470733a2f2f6170692e636f646163792e636f6d2f70726f6a6563742f62616467652f47726164652f6133623336613761616234643433303838643435663231336563623161343233" alt="Codacy Badge"&gt;&lt;/a&gt;
&lt;a href="https://www.codacy.com/app/git.derek/autoapp?utm_source=github.com&amp;amp;utm_medium=referral&amp;amp;utm_content=derekahn/autoapp&amp;amp;utm_campaign=Badge_Coverage" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/8c7c851298c27a24353b72004ccd09cd60bc366d1ec589f22793ba163df11a5c/68747470733a2f2f6170692e636f646163792e636f6d2f70726f6a6563742f62616467652f436f7665726167652f6133623336613761616234643433303838643435663231336563623161343233" alt="Codacy Badge"&gt;&lt;/a&gt;
&lt;a href="https://cloud.drone.io/derekahn/autoapp" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/1ef40039667d67e5209d0f7923267d6d04a6f4a94521d3bd879fc9d918fafcfa/68747470733a2f2f636c6f75642e64726f6e652e696f2f6170692f6261646765732f646572656b61686e2f6175746f6170702f7374617475732e737667" alt="Build Status"&gt;&lt;/a&gt;
&lt;a href="https://quay.io/repository/derekahn/autoapp" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/7a46401f4d514bdd8cde877c0f70ecf02f7b102bb2f868a60c6065fb91a7b05f/68747470733a2f2f717561792e696f2f7265706f7369746f72792f646572656b61686e2f6175746f6170702f737461747573" alt="Docker Repository on Quay" title="Docker Repository on Quay"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/09d7775f8467a3a81e06a411ebfa27fa1e67b179eea14b9f68616954121eae1f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7461672f646572656b61686e2f6175746f6170702e737667"&gt;&lt;img src="https://camo.githubusercontent.com/09d7775f8467a3a81e06a411ebfa27fa1e67b179eea14b9f68616954121eae1f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f7461672f646572656b61686e2f6175746f6170702e737667" alt="GitHub tag (latest SemVer)"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;An example of CI/CD with a simple go application utilizing a multistage docker build.&lt;/p&gt;
&lt;h2&gt;
Run&lt;/h2&gt;
&lt;h3&gt;
🐳ized&lt;/h3&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; creates a new image&lt;/span&gt;
$ make build
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; runs the image&lt;/span&gt;
$ make run&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
🐹ized&lt;/h3&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; installs deps etc&lt;/span&gt;
$ make install

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; execute binary&lt;/span&gt;
$ ./bin/cmd&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
Example&lt;/h2&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/derekahn/autoapp./assets/example.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CbIU2cRv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/derekahn/autoapp./assets/example.png" alt="example view"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
Environment Variables&lt;/h2&gt;
&lt;div class="highlight highlight-text-shell-session notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;# &lt;span class="pl-s1"&gt;defaults to &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;8080&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="pl-c1"&gt;PORT=3000&lt;/span&gt;

# &lt;span class="pl-s1"&gt;defaults to &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Gopher&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="pl-c1"&gt;NAME="Edgar Allan Poe"&lt;/span&gt;

# &lt;span class="pl-s1"&gt;forces tests to fail&lt;/span&gt;
&lt;span class="pl-c1"&gt;FAILED=true&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
Commands&lt;/h2&gt;
&lt;p&gt;Run &lt;code&gt;make help&lt;/code&gt; to list available commands:&lt;/p&gt;
&lt;div class="highlight highlight-text-shell-session notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c1"&gt;  $  make help&lt;/span&gt;
&lt;span class="pl-c1"&gt;Choose a command run in autoapp:&lt;/span&gt;

&lt;span class="pl-c1"&gt;  install    Install missing dependencies. Builds binary in ./bin&lt;/span&gt;
&lt;span class="pl-c1"&gt;  build      Creates a docker image of the app&lt;/span&gt;
&lt;span class="pl-c1"&gt;  fail       Forces a failed docker build of the app due to failing tests&lt;/span&gt;
&lt;span class="pl-c1"&gt;  run        Runs the current docker image on port 8080&lt;/span&gt;
&lt;span class="pl-c1"&gt;  clean      Clean build files. Runs `go clean` internally&lt;/span&gt;
&lt;span class="pl-c1"&gt;  fmt        Runs gofmt on all source files&lt;/span&gt;
&lt;span class="pl-c1"&gt;  test       Runs all the tests.&lt;/span&gt;
&lt;span class="pl-c1"&gt;  coverage   Tests&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/derekahn/autoapp"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Opinions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I personally really 💚 &lt;a href="https://drone.io"&gt;Drone&lt;/a&gt;; It's ease of use, documentation, and containerization is Amazing! Well at least compared to &lt;a href="https://travis-ci.org/"&gt;travis&lt;/a&gt;, &lt;a href="https://circleci.com/"&gt;circle-ci&lt;/a&gt;, or &lt;a href="https://jenkins.io/"&gt;jenkins&lt;/a&gt;. Fun fact... it can pretty much be deployed on anything. Also it looks to be a perfect match for ephemeral pods on k8s.&lt;/li&gt;
&lt;li&gt;I definitely prefer &lt;a href="https://quay.io"&gt;Quay's&lt;/a&gt; UI/UX, it's also &lt;code&gt;"supposedly"&lt;/code&gt; the most battle-tested/preferred at the moment 🤷🏽‍♂️. But it's also the most expensive, so I guess you get what you pay for.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://spinnaker.io"&gt;Spinnaker&lt;/a&gt; is a 🐻. But needless to say it's super powerful and flexible. You can unlock that power once you've figured out how to navigate the esoteric documentation. They do have a &lt;a href="https://join.spinnaker.io/"&gt;slack&lt;/a&gt; and &lt;a href="https://community.spinnaker.io/"&gt;forum&lt;/a&gt;, but I still found it a tad bit difficult getting help/advice on configurations, etc. But once it's up and running everything is ✅.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>go</category>
      <category>docker</category>
      <category>devops</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
