<?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: goatmale</title>
    <description>The latest articles on DEV Community by goatmale (@goatmale).</description>
    <link>https://dev.to/goatmale</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%2F190158%2Faa1b6af3-dba5-4944-ab17-f390d94e1724.jpg</url>
      <title>DEV Community: goatmale</title>
      <link>https://dev.to/goatmale</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/goatmale"/>
    <language>en</language>
    <item>
      <title>Three things for 12/31</title>
      <dc:creator>goatmale</dc:creator>
      <pubDate>Fri, 31 Dec 2021 17:19:23 +0000</pubDate>
      <link>https://dev.to/goatmale/three-things-for-1231-36o2</link>
      <guid>https://dev.to/goatmale/three-things-for-1231-36o2</guid>
      <description>&lt;p&gt;Three things from this week:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;/etc/.skel&lt;/code&gt; has files related to &lt;code&gt;.bash_logout&lt;/code&gt; and &lt;code&gt;.bashrc&lt;/code&gt; which are created for new users - I needed to remove the &lt;code&gt;.bash_logout&lt;/code&gt; file for the issues with clearing screen that caused problems with the Gitlab runner and this seemed like the best way to do it.&lt;/li&gt;
&lt;li&gt;Slack is actually an acronym that stands for &lt;code&gt;Searchable Log of All Conversation and Knowledge&lt;/code&gt; useless, but fun :)&lt;/li&gt;
&lt;li&gt;All about &lt;a href="https://docs.docker.com/develop/develop-images/build_enhancements/"&gt;BuildKit&lt;/a&gt; in Docker - a simple environment variable &lt;code&gt;DOCKER_BUILDKIT=1&lt;/code&gt; enables performance improvements.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;See you party people next week!!&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>linux</category>
    </item>
    <item>
      <title>Three things from today - 9/10</title>
      <dc:creator>goatmale</dc:creator>
      <pubDate>Tue, 10 Sep 2019 19:48:55 +0000</pubDate>
      <link>https://dev.to/goatmale/three-things-from-today-9-10-1dfn</link>
      <guid>https://dev.to/goatmale/three-things-from-today-9-10-1dfn</guid>
      <description>&lt;h1&gt;
  
  
  9/10/2019
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Tuesday.
&lt;/h3&gt;

&lt;p&gt;A quote from Kahlil Gibran:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Work is love made visible. And if you can't work with love, but only with distaste, it is better that you should leave your work and sit at the gate of the temple and take alms of the people who work with joy”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Three things simply from today:&lt;/p&gt;

&lt;h2&gt;
  
  
  1.  &lt;a href="https://www.linkedin.com/pulse/its-later-than-you-think-j-r-storment/"&gt;"It's later than you think"&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A seriously heartbreaking but moving story about loss. Helps keep perspective about what is important. Warning that this could make you tear up during a meeting.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. &lt;a href="https://cloud.google.com/dataproc/"&gt;Google's dataproc service is in alpha.&lt;/a&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Cloud Dataproc is a managed Apache Spark and Apache Hadoop service that &lt;br&gt;
lets you take advantage of open source data tools for batch processing, &amp;gt; querying, streaming, and machine learning.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a really interesting alternative to HDInsights or Databricks. I will need to toy with this later.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. &lt;a href="https://littleblah.com/post/2019-09-01-senior-engineer-checklist/"&gt;Senior Engineer checklist&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A great list of standards to print out and aspire to if you're looking to grow your career.&lt;/p&gt;

&lt;p&gt;See you party people Tomorrow!!&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>datascience</category>
      <category>career</category>
    </item>
    <item>
      <title>Three things from today - 9/9</title>
      <dc:creator>goatmale</dc:creator>
      <pubDate>Mon, 09 Sep 2019 19:30:13 +0000</pubDate>
      <link>https://dev.to/goatmale/three-things-from-today-9-9-j6p</link>
      <guid>https://dev.to/goatmale/three-things-from-today-9-9-j6p</guid>
      <description>&lt;h1&gt;
  
  
  9/9/2019
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Monday - last Monday before vacay :D
&lt;/h3&gt;

&lt;p&gt;Hello everyone, I am just a week out from a week long Vegas vacation!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - what can I say, i'm excited.&lt;/p&gt;

&lt;p&gt;Hopefully your 9/9 is filled with nine nines of uptime.&lt;/p&gt;

&lt;p&gt;OK - As the kids say (they don't) - let's get "learnt" up 🤢🤢&lt;/p&gt;

&lt;p&gt;Three things that I learned &amp;amp; found handy today:&lt;/p&gt;

&lt;h2&gt;
  
  
  1.  Handy reverse interview reference questions
&lt;/h2&gt;

&lt;p&gt;This was posted on HN. I am a big fan of asking questions during interviews, this is a nice starter list of questions to ask. Don't be the guy that says "I don't have any questions". It makes you look like you don't care and it just generally doesn't lead to good discussion.&lt;br&gt;
&lt;a href="https://github.com/viraptor/reverse-interview"&gt;reverse-interview&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One question that I don't see listed here that I saw posted on the Chicago tech community slack a while back was to ask the interviewer what brought you in. This kind of gives you an idea of what they think your strong suits are and you're able to reinforcece that to them.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Ubuntu and bluetooth issues
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://medium.com/p/d4b8dbf7ddd6"&gt;Some seriously helpful tips with getting bluetooth issues resolved.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Great info on how bluetooth works, and how to fix the darn headset when it's not working right.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Azure / AWS tips
&lt;/h2&gt;

&lt;p&gt;Some quick Azure / AWS issues / tips I found today.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Azure - If you are unable to see the full list of VM sizes when trying to resize a VM in Azure, you may need to fully deallocate the VM. My thought is that this is probably limited to only the Hyper-V cluster that the machine is running on when the VM is running but deallocating allows it to be pushed to any host.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AWS - I found out today that you aws eks update-kubeconfig MERGES CONFIGS!!!&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;aws eks update-kubeconfig --name my-awesome-cluster
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is super handy if you use kubectx to manage multiple kubeconfigs as I do. Also pretty handy if you have a terminal like spacefish which displays the current context.&lt;/p&gt;

&lt;p&gt;See you party people Tomorrow!!&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>ubuntu</category>
      <category>azure</category>
      <category>aws</category>
    </item>
    <item>
      <title>Three things from today - 9/6</title>
      <dc:creator>goatmale</dc:creator>
      <pubDate>Fri, 06 Sep 2019 21:56:01 +0000</pubDate>
      <link>https://dev.to/goatmale/three-things-from-today-9-6-3a0j</link>
      <guid>https://dev.to/goatmale/three-things-from-today-9-6-3a0j</guid>
      <description>&lt;h1&gt;
  
  
  9/6/2019
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Friddddddddday
&lt;/h3&gt;

&lt;p&gt;Friday - nuff said.&lt;/p&gt;

&lt;h2&gt;
  
  
  1.  Undo git commit
&lt;/h2&gt;

&lt;p&gt;...because I always end up looking it up -&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git reset HEAD~
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. &lt;a href="https://github.com/gnunn1/tilix"&gt;Tilix&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I finally found a terminal manager that I like better than Terminiator!&lt;/p&gt;

&lt;h2&gt;
  
  
  3. &lt;a href="https://en.wikipedia.org/wiki/OODA_loop"&gt;OODA loop&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Useful cycle for troubleshooting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Observe &lt;/li&gt;
&lt;li&gt;Orient &lt;/li&gt;
&lt;li&gt;Decide&lt;/li&gt;
&lt;li&gt;Act&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See you party people Monday!&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>kubernetes</category>
      <category>spark</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Three things from today - 9/5</title>
      <dc:creator>goatmale</dc:creator>
      <pubDate>Thu, 05 Sep 2019 20:42:11 +0000</pubDate>
      <link>https://dev.to/goatmale/three-things-from-today-9-5-99j</link>
      <guid>https://dev.to/goatmale/three-things-from-today-9-5-99j</guid>
      <description>&lt;h1&gt;
  
  
  9/5/2019
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Spark it up!
&lt;/h3&gt;

&lt;p&gt;Today has been rough, but it's looking up. Three things incoming - ALL Spark related :)&lt;/p&gt;

&lt;h2&gt;
  
  
  1.  &lt;a href="https://info.cnvrg.io/spark-on-kubernetes"&gt;cnvrg.io - spark-on-kubernetes webinar&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;I hope to finish this tonight it seems like a nice intro to Spark on Kubernetes and I'm digging it so far.&lt;/p&gt;

&lt;p&gt;Cnvrg.io seems to be a botique data science platform similar to Databricks, I'll definitely have my eye on them.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Spark tuning for shuffles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/a/30801877/2184401"&gt;Found this gem for spark tuning - a great outline on why shuffles occur and what you can do to tune them.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Spark exit status and exit codes.
&lt;/h2&gt;

&lt;p&gt;Another great StackOverflow find regarding &lt;a href="https://stackoverflow.com/questions/45428145/do-exit-codes-and-exit-statuses-mean-anything-in-spark/45524760#45524760"&gt;Spark exit status and exit codes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;See you party people tomorrow!&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>kubernetes</category>
      <category>spark</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Three things from today - 9/4</title>
      <dc:creator>goatmale</dc:creator>
      <pubDate>Wed, 04 Sep 2019 20:00:18 +0000</pubDate>
      <link>https://dev.to/goatmale/three-things-from-today-9-4-bk1</link>
      <guid>https://dev.to/goatmale/three-things-from-today-9-4-bk1</guid>
      <description>&lt;h1&gt;
  
  
  9/4/2019
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Back to being busy all the time!
&lt;/h3&gt;

&lt;p&gt;Today has flown by as i'm trying to keep up with everything!!! &lt;/p&gt;

&lt;p&gt;I feel like i'm learning new things about how I work as I get older. One of the things i've realized recently is how the most important skill for anyone being overwhelmed is to break everything down into smaller chunks, focus on one priority chunk and work slower and more deliberately. &lt;/p&gt;

&lt;p&gt;It feels counter intuitive but it's really the only thing that makes sense. Working slower, you can still take time to learn things and work smarter which ultimately pays off in the long run. :)&lt;/p&gt;

&lt;p&gt;Anyway - three things!&lt;/p&gt;

&lt;h2&gt;
  
  
  1.  Azure AKS known issues list
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/andyzhangx/demo/tree/master/issues"&gt;known k8s on azure issues and fixes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An Azure engineer who goes by the handle &lt;code&gt;andyzhangx&lt;/code&gt; has a great resource of common issues when using AKS. Anyone interested in Azure Kubernetes Service or Azure Kubernetes Engine should keep this handy for when they run into a wall troubleshooting an issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Docker / R package install gotchas.
&lt;/h2&gt;

&lt;p&gt;Working on updating a Docker image I noticed that some of the dependencies that we thought were in the image were not working. Our Rscript was super simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;repourl &amp;lt;- "http://cran.rstudio.com/"

install.packages("randomForest", repos = repourl)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Turns out - &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;RScript doesn't care whatever happens in the script, the return code is always 0!&lt;/li&gt;
&lt;li&gt;The randomForest package was missing the "gfortan" package (blast from the past)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I fixed the issue by installing the package but I also had to update our Rscript to tryCatch and quit with exit code 1 on any errors so that Docker would exit if any package installs failed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;repourl &amp;lt;- "http://cran.rstudio.com/"
tryCatch(
         {
                 install.packages("randomForest", repos = repourl)
         },
         warning=function(warning_message) {
         message(warning_message)
         quit("yes",1)
                },
         error=function(error_message) {
         message(error_message)
         quit("yes",1)
                }
         )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Darknet Diaries - Xbox Underground
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://darknetdiaries.com/episode/45/"&gt;Darknet Diaries - Xbox underground&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I finished a podcast I enjoyed immensely this morning. &lt;/p&gt;

&lt;p&gt;It's a two part story on a hacking group who hacked around with the Xbox 360. &lt;/p&gt;

&lt;p&gt;It's a wild ride including hacking, drugs, friendship and video games. I highly recommend it.&lt;/p&gt;

&lt;p&gt;Also on my reading list is the &lt;a href="https://www.wired.com/story/xbox-underground-videogame-hackers/"&gt;Wired article&lt;/a&gt; for the same story.&lt;/p&gt;

&lt;p&gt;See you party people tomorrow!&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>kubernetes</category>
      <category>security</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Three things from today - 9/3</title>
      <dc:creator>goatmale</dc:creator>
      <pubDate>Tue, 03 Sep 2019 21:39:54 +0000</pubDate>
      <link>https://dev.to/goatmale/three-things-from-today-9-3-2kbd</link>
      <guid>https://dev.to/goatmale/three-things-from-today-9-3-2kbd</guid>
      <description>&lt;h1&gt;
  
  
  9/3/2019
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Happy Post-Labor day!
&lt;/h3&gt;

&lt;p&gt;Hope everyone's Labor day was wonderful.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Overwrite entrypoint for Non-interactive Docker container
&lt;/h2&gt;

&lt;p&gt;Monkeying around with a Docker image today I found I needed to run some commands on a non-interactive container. &lt;/p&gt;

&lt;p&gt;Luckily I was able to find the exact command I needed to shell in and do my work.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -it --entrypoint /bin/bash &amp;lt;image&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. What the heck is R?
&lt;/h2&gt;

&lt;p&gt;As I am finding myself being drug (dragged?) into the world of data science kicking and screaming i'm finding the world is wrought with acronyms, disparate and similar programming languages, and all sorts of other demons.&lt;/p&gt;

&lt;p&gt;Today's demon is R.&lt;/p&gt;

&lt;p&gt;R is a interpreted language (yay no compiling) which is used primary for statistical computing.&lt;/p&gt;

&lt;p&gt;I was able to install the Deb for &lt;a href="https://dev.toRStudio"&gt;https://www.rstudio.com/&lt;/a&gt; - which seems like the best IDE for the platform.&lt;/p&gt;

&lt;p&gt;From there I was able to draw a pretty graph with some of the demos.&lt;/p&gt;

&lt;p&gt;First, I pulled some data from here regarding the &lt;a href="https://basketball.realgm.com/nba/teams/Chicago-Bulls/4/Rosters/Regular/1993"&gt;Bulls in '93&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;I saved it as a CSV and was able to load it into RStudio and show a pretty Pie chart with the commands below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Read data from CSV
data = read.csv("bulls.csv")
#Let's see the data with just Player and points.
data.frame(x=data$Player,y=data$PTS)
#Pretty piechart!
pie(data$PTS,labels=data$Player)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s5Mskks3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ogcugq4e5sp69rpj6gkm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s5Mskks3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ogcugq4e5sp69rpj6gkm.png" alt="piechart" width="610" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, data science can tell us who the best Bulls player is!&lt;/p&gt;

&lt;h2&gt;
  
  
  3. &lt;a href="https://github.com/txn2/kubefwd"&gt;Kubefwd&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  "Bulk port forwarding Kubernetes services for local development."
&lt;/h3&gt;

&lt;p&gt;Putting a pin in this project - this seems to be super handy for developing locally on minikube. &lt;/p&gt;

&lt;p&gt;It's benefit seems to be its simplicity. &lt;/p&gt;

&lt;p&gt;Only one command and you can forward all of the service ports associated with the specified namespace.&lt;/p&gt;

&lt;p&gt;Instead of messing around with host entries of forwarding ports, you can let this do it for you.&lt;/p&gt;

&lt;p&gt;See you all tomorrow!&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>datascience</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Three things from today - 8/30</title>
      <dc:creator>goatmale</dc:creator>
      <pubDate>Fri, 30 Aug 2019 21:12:51 +0000</pubDate>
      <link>https://dev.to/goatmale/three-things-from-today-8-30-57ok</link>
      <guid>https://dev.to/goatmale/three-things-from-today-8-30-57ok</guid>
      <description>&lt;h1&gt;
  
  
  8/30/2019
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Happy Friday!
&lt;/h3&gt;

&lt;p&gt;I had a bit too much 🍷 yesterday so i'm a bit foggy, however that's not stopping me from learning today!&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Spark S3 tweaking
&lt;/h2&gt;

&lt;p&gt;Spark appears to use ParquetOutputCommitter - a function of Hadoop to write parquet files to S3.&lt;/p&gt;

&lt;p&gt;Digging into an issue we've had writing Spark to S3 we &lt;a href="http://agrajmangal.in/blog/big-data/spark-parquet-s3/"&gt;came across a fix described here&lt;/a&gt; which involves setting a config value in hadoop:&lt;/p&gt;

&lt;p&gt;Testing it - it appears to work.&lt;/p&gt;

&lt;p&gt;I made a PR to set this going forward from the Hadoop / Hive side of things.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; hadoop_conf.set('spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version', '2')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can also be set in Spark with the following property:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;'spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version':2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Helm 3 beta 2 is released
&lt;/h2&gt;

&lt;p&gt;The buzz around the office is that Helm 3 beta 2 has been released. Helm 3 is an important release for Helm as it removes the dependency on Tiller.&lt;br&gt;
It is so important it seems to have warranted a 7 part blog series on their &lt;a href="https://helm.sh/blog/helm-3-preview-pt1/"&gt;website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also Microsoft has a great article describing &lt;a href="https://cloudblogs.microsoft.com/opensource/2019/05/21/helm-3-release/"&gt;why Helm 3 is important.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. What is Apache Zeppelin? How is it different than Jupyter?
&lt;/h2&gt;

&lt;p&gt;Apache Zeppelin and Jupyter are both interactive notebooks that you can use to do data science things like perform calculation, plot graphs, etc.&lt;/p&gt;

&lt;p&gt;Jupyter notebooks run python in the background. Apache Zeppelin uses JVM underneath the hood.&lt;/p&gt;

&lt;p&gt;As for features I enjoy, Jupyter is an offshoot of iPython, which I enjoy quite a bit for doing Python work.&lt;br&gt;
Apache Zeppelin seems to be a little more robust for non-python languages, and also their demo is pretty sweet, being able to use their sweet Angular graph UI is pretty swell.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.zepl.com/viewer/notebooks/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0xlZW1vb25zb28vemVwcGVsaW4tZXhhbXBsZXMvbWFzdGVyLzJCMlhLRkNETS9ub3RlLmpzb24"&gt;Check out these graphs!&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Bonus thing!!
&lt;/h2&gt;

&lt;p&gt;I have been promising myself i'm going to learn prometheus for too long. It's time to dig into the &lt;a href="https://github.com/roaldnefs/awesome-prometheus"&gt;awesome-prometheus&lt;/a&gt; list.... &lt;/p&gt;

&lt;p&gt;I also created a new GKE cluster on my own Google Cloud account for testing.. Compared to Azure and AWS it's Kubernetes easy mode. More to come with monitoring and my new test cluster next week :)&lt;/p&gt;

&lt;p&gt;Happy Labor day - seeya Tuesday!&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>spark</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Three things from today - 8/29</title>
      <dc:creator>goatmale</dc:creator>
      <pubDate>Thu, 29 Aug 2019 18:50:18 +0000</pubDate>
      <link>https://dev.to/goatmale/three-things-from-today-8-29-2ai9</link>
      <guid>https://dev.to/goatmale/three-things-from-today-8-29-2ai9</guid>
      <description>&lt;h1&gt;
  
  
  8/29
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Back at it again.
&lt;/h3&gt;

&lt;p&gt;Hello everyone! Hope you're having a great Thursday. I know I am. I have the joy of sharing with you three things I learned or found interesting today.&lt;/p&gt;

&lt;h5&gt;
  
  
  1. What does Kubernetes kube-proxy actually do?
&lt;/h5&gt;

&lt;p&gt;As i've been learning K8s i've been trying to break down each component into quick understandable parts. Today I did a quick dive into kube-proxy.&lt;/p&gt;

&lt;h3&gt;
  
  
  So what does kube-proxy actually do?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Kube-proxy exists as a pod on each node. &lt;/li&gt;
&lt;li&gt;Kube-proxy manages the virtual IPs for services. &lt;/li&gt;
&lt;li&gt;In most versions, by default, Kube-proxy uses iptables to do this. 

&lt;ul&gt;
&lt;li&gt;iptable rules interact with the Linux "netfilter" kernel hooks to make &lt;/li&gt;
&lt;li&gt;this happen quickly and without much overhead.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;This allows you to use a virtual IP to route service traffic to various backend pods.&lt;/li&gt;
&lt;li&gt;Kube-proxy acts as a watchdog watching the k8s api and if a service changes it updates the associated IPtables rules.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By viewing the logs of a kube-proxy pod you can see which mode you are using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl logs kube-proxy-qfqxk
W0804 15:49:33.304448       1 server.go:198] WARNING: all flags other than --config, --write-config-to, and --cleanup are deprecated. Please begin using a config file ASAP.
I0804 15:49:33.618663       1 server_others.go:148] Using iptables Proxier.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neat!&lt;/p&gt;

&lt;h5&gt;
  
  
  2. &lt;a href="http://man7.org/tlpi/index.html"&gt;Linux programming interface&lt;/a&gt; - New book i'm reading
&lt;/h5&gt;

&lt;p&gt;Ok, i'll be honest, having a ton of books at your disposal with a service like Safari leaves you reading the first chapter and really not much else for a lot of books. I'm hoping to actually keep this up and learn a lot of the low level magic that makes Linux work.&lt;/p&gt;

&lt;h5&gt;
  
  
  3. &lt;a href="http://slgobinath.github.io/SafeEyes/"&gt;SafeEyes&lt;/a&gt; 👀 - FOSS Linux Eye strain prevention tool
&lt;/h5&gt;

&lt;p&gt;This tool has been really helping my eyes lately. Every 15 minutes it asks you to do things such as stare off into the distance for 15 seconds which helps not only your eyes, but also to take a quick break and empty your mind. I was worried about the context switching, but for me this doesn't seem to impact my productivity negatively, in fact I think it's actually helping.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Three things from today - 8/28</title>
      <dc:creator>goatmale</dc:creator>
      <pubDate>Wed, 28 Aug 2019 20:50:48 +0000</pubDate>
      <link>https://dev.to/goatmale/three-things-from-today-8-28-33h5</link>
      <guid>https://dev.to/goatmale/three-things-from-today-8-28-33h5</guid>
      <description>&lt;h1&gt;
  
  
  8/28
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Another day in the life.
&lt;/h3&gt;

&lt;p&gt;I want to get into the habit of sharing with the community so i'm starting a week-daily post where I share three(ish) things i've learned or found interesting while I nurse my afternoon tea.&lt;/p&gt;

&lt;h5&gt;
  
  
  1. &lt;a href="https://kubernetes.academy/"&gt;Kubernetes.Academy&lt;/a&gt;
&lt;/h5&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; Coworker&lt;br&gt;
&lt;em&gt;Why I like it:&lt;/em&gt; This launched recently and seems like a great way to get started with Kubernetes. Between Octant and this, they seem to be killing it at VMWare.&lt;/p&gt;
&lt;h5&gt;
  
  
  2. Csysdig tool
&lt;/h5&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href="https://sysdig.com/blog/csysdig-explained-visually/"&gt;Csysdig blog post I stumbled on.&lt;/a&gt;&lt;br&gt;
I have been using the standard Sysdig command line tool to capture traces for the other engineers to review however today I just discovered the interactive ncurses interface that you can use with csysdig.&lt;br&gt;
You can easily use &lt;code&gt;F2&lt;/code&gt; to jump over to containers and then &lt;code&gt;F6&lt;/code&gt; to dig as you normally would, but now there are a ton of other things to play around with. &lt;/p&gt;

&lt;p&gt;Also, pretty colors:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PXFstptf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://478h5m1yrfsa3bbe262u7muv-wpengine.netdna-ssl.com/wp-content/uploads/2016/01/Spectrogram-picture-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PXFstptf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://478h5m1yrfsa3bbe262u7muv-wpengine.netdna-ssl.com/wp-content/uploads/2016/01/Spectrogram-picture-1.png" alt="Pretty colors" width="880" height="335"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h5&gt;
  
  
  3. "Negative" subprocess error codes in Python.
&lt;/h5&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;/em&gt; &lt;a href="https://stackoverflow.com/questions/24139389/unable-to-find-out-what-return-code-of-11-means"&gt;This Stackoverflow page I found while troubleshooting an issue.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Often times I troubleshoot exit codes as a means to determine why something failed. Today's issue was with a Python exit code of &lt;code&gt;-11&lt;/code&gt;. Hidden in the comments it's written that these negative return codes correspond to the typical Linux signals. This is specifically when using the Python subprocess module, nevertheless handy to note these signals for troubleshooting.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Signal    Name    Description
SIGHUP    1    Hangup (POSIX)
SIGINT    2    Terminal interrupt (ANSI)
SIGQUIT    3    Terminal quit (POSIX)
SIGILL    4    Illegal instruction (ANSI)
SIGTRAP    5    Trace trap (POSIX)
SIGIOT    6    IOT Trap (4.2 BSD)
SIGBUS    7    BUS error (4.2 BSD)
SIGFPE    8    Floating point exception (ANSI)
SIGKILL    9    Kill(can't be caught or ignored) (POSIX)
SIGUSR1    10    User defined signal 1 (POSIX)
SIGSEGV    11    Invalid memory segment access (ANSI)
SIGUSR2    12    User defined signal 2 (POSIX)
SIGPIPE    13    Write on a pipe with no reader, Broken pipe (POSIX)
SIGALRM    14    Alarm clock (POSIX)
SIGTERM    15    Termination (ANSI)
SIGSTKFLT    16    Stack fault
SIGCHLD    17    Child process has stopped or exited, changed (POSIX)
SIGCONTv    18    Continue executing, if stopped (POSIX)
SIGSTOP    19    Stop executing(can't be caught or ignored) (POSIX)
SIGTSTP    20    Terminal stop signal (POSIX)
SIGTTIN    21    Background process trying to read, from TTY (POSIX)
SIGTTOU    22    Background process trying to write, to TTY (POSIX)
SIGURG    23    Urgent condition on socket (4.2 BSD)
SIGXCPU    24    CPU limit exceeded (4.2 BSD)
SIGXFSZ    25    File size limit exceeded (4.2 BSD)
SIGVTALRM    26    Virtual alarm clock (4.2 BSD)
SIGPROF    27    Profiling alarm clock (4.2 BSD)
SIGWINCH    28    Window size change (4.3 BSD, Sun)
SIGIO    29    I/O now possible (4.2 BSD)
SIGPWR    30    Power failure restart (System V)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h5&gt;
  
  
  4. Bonus! - Kubectl describe pod
&lt;/h5&gt;

&lt;p&gt;This is kind of silly, but I figured out that I don't need to type the full pod name when using "describe pod" it seems to glob the name :D&lt;/p&gt;

&lt;p&gt;Doesn't work.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get pod kubernetes-dashboard
Error from server (NotFound): pods "kubernetes-dashboard" not found

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Works!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Name:               kubernetes-dashboard-7947fffdf5-f9vz5
Namespace:          kube-system
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>python</category>
      <category>devops</category>
      <category>sre</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>What's the best way to report a security hole to a small company?</title>
      <dc:creator>goatmale</dc:creator>
      <pubDate>Fri, 26 Jul 2019 21:47:12 +0000</pubDate>
      <link>https://dev.to/goatmale/what-s-the-best-way-to-report-a-security-hole-to-a-small-company-27ji</link>
      <guid>https://dev.to/goatmale/what-s-the-best-way-to-report-a-security-hole-to-a-small-company-27ji</guid>
      <description>&lt;p&gt;I was looking for some help on an issue I was facing and I accidentally stumbled upon a service from another company which was exposed to the public internet. &lt;/p&gt;

&lt;p&gt;This service allowed exporting the raw configuration,  API keys, usernames, passwords, urls, etc. D:&lt;/p&gt;

&lt;p&gt;I tried to find a contact to reach out to, but I wasn't able to find anything on their site. The contact on their site is only for sales and press, of which I want neither.&lt;/p&gt;

&lt;p&gt;How would you handle this situation?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>security</category>
    </item>
  </channel>
</rss>
