<?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: Jake Schwartz</title>
    <description>The latest articles on Forem by Jake Schwartz (@jakehschwartz).</description>
    <link>https://forem.com/jakehschwartz</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%2F17235%2F60a8e14e-5219-4201-abf9-3f3fa8d012e5.jpeg</url>
      <title>Forem: Jake Schwartz</title>
      <link>https://forem.com/jakehschwartz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jakehschwartz"/>
    <language>en</language>
    <item>
      <title>TIL How Easy It Is To Switch To Zsh</title>
      <dc:creator>Jake Schwartz</dc:creator>
      <pubDate>Fri, 06 Mar 2020 02:52:46 +0000</pubDate>
      <link>https://forem.com/jakehschwartz/til-how-easy-it-is-to-switch-to-zsh-45b4</link>
      <guid>https://forem.com/jakehschwartz/til-how-easy-it-is-to-switch-to-zsh-45b4</guid>
      <description>&lt;p&gt;With the latest MacOS release, Catalina, the default operating shell was switched from &lt;code&gt;bash&lt;/code&gt; to &lt;code&gt;zsh&lt;/code&gt;. This was announced pretty early on, so it wasn't a surprise and I had "Learn ZSH" on my to do list for quite some time but now that I have updated my machines, it reminds you that you need to switch to zsh. And while it is possible to hide that message, this is as good opportunity as ever to make the switch.&lt;/p&gt;

&lt;p&gt;There are several frameworks that make it easy to switch as well. The most popular of them is Robby Russell's Oh My Zsh. It seems easy to install and but at first glance, it doesn't have the customization and control I want. I instead chose to try Antigen first. It is similar to a Vim framework called Vundle in philosophy and even allows you to build off OMZ. Antigen is a package manager for &lt;code&gt;zsh&lt;/code&gt; and keeps its plugins in what it calls "bundles".&lt;/p&gt;

&lt;p&gt;Setting up Antigen took less than 10 minutes. I first installed all of the requirements:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ brew install zsh
$ brew install antigen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and then I copied the the &lt;code&gt;.zshrc&lt;/code&gt; example from the website:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source $(brew --prefix)/share/antigen/antigen.zsh
antigen use oh-my-zsh

antigen bundle git

# Syntax highlighting bundle.
antigen bundle zsh-users/zsh-syntax-highlighting

# Fish-like auto suggestions
antigen bundle zsh-users/zsh-autosuggestions

# Extra zsh completions
antigen bundle zsh-users/zsh-completions

# Load the theme
antigen theme robbyrussell

antigen apply
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This does several things. The first two lines start antigen and set it up with a default set of configurations. Then, I add several bundles to add functionality to the shell. These often come in the form of auto-completion or set up commands that are typically in a &lt;code&gt;.bash_profile&lt;/code&gt; or &lt;code&gt;.bashrc&lt;/code&gt; file. Lastly, I chose a built-in theme and told &lt;code&gt;antigen&lt;/code&gt; to apply those changes. When a session is started, it will install those bundles and themes, if they are not already installed, and then sets up the session.&lt;/p&gt;

&lt;p&gt;Now you can just start a &lt;code&gt;zsh&lt;/code&gt; session by running&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ zsh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This won't switch your shell permanently, it just starts a new session over your current session. This is nice because it allows you to add or remove things to your &lt;code&gt;.zshrc&lt;/code&gt; file before entering entering the command that Apple gives to switch your shell over permanently.&lt;/p&gt;

&lt;p&gt;That is just a basic zsh configuration. The next step is to move over the rest of my current bash shell functionality. My current set up is not too complex, so there are probably plugins or themes that have what I want out of the box.&lt;/p&gt;

</description>
      <category>zsh</category>
      <category>antigen</category>
    </item>
    <item>
      <title>TIL How To Add Scapegoat To IntelliJ's Build Process</title>
      <dc:creator>Jake Schwartz</dc:creator>
      <pubDate>Tue, 07 Jan 2020 03:11:51 +0000</pubDate>
      <link>https://forem.com/jakehschwartz/til-how-to-add-scapegoat-to-intellij-s-build-process-4j9c</link>
      <guid>https://forem.com/jakehschwartz/til-how-to-add-scapegoat-to-intellij-s-build-process-4j9c</guid>
      <description>&lt;p&gt;At &lt;a href="//zignallabs.com"&gt;work&lt;/a&gt;, we have been using &lt;a href="https://github.com/sksamuel/scapegoat"&gt;Scapegoat&lt;/a&gt; with &lt;a href="https://www.scala-sbt.org/"&gt;sbt&lt;/a&gt; to check for code smells. Scapegoat is a static code analyzer &lt;br&gt;
that has an &lt;a href="https://github.com/sksamuel/sbt-scapegoat"&gt;sbt plugin&lt;/a&gt; and we are using that to do our analysis on our build server. While it is possible to run locally as well, it is not built into&lt;br&gt;
&lt;a href="https://www.jetbrains.com/idea/"&gt;IntelliJ&lt;/a&gt;, which is what our team uses to develop all of our Scala codebases. Because it does not run whenever we compile, it is sometimes neglected to be run before checking in a change and developers, myself included, have to go back and make the appropriate changes.&lt;/p&gt;

&lt;p&gt;To include this in the compile stage, we will take advantage of the sbt plugin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// plugins.sbt
addSbtPlugin("com.sksamuel.scapegoat" %% "sbt-scapegoat" % "1.0.9")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we will create a separate sbt file for scapegoat, enable the compiler plugin and then configure the scapegoat settings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// scapegoat.sbt
addCompilerPlugin("com.sksamuel.scapegoat" % "scalac-scapegoat-plugin_2.12.10" % "1.4.0")

scapegoatVersion in ThisBuild := "1.3.11"

scapegoatDisabledInspections := Seq(
  "AsInstanceOf",
)

scalacOptions ++= Seq(
  "-P:scapegoat:dataDir:./target/scapegoat"
) ++ scapegoatDisabledInspections.value.map(x =&amp;gt; s"-P:scapegoat:disabledInspections:$x" )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The examples above may not be the most up-to-date versions, but hopefully you get the gist. The second part about the disable inspections is also not required, but it a nice way to define the list in a 'nice' way using the sbt plugin and easily converting it to being using by the compiler plugin. The only required part is the &lt;code&gt;-P:scapegoat:dataDir&lt;/code&gt; scalac option. Once you add this, you should see Scapegoat errors show up during both IntelliJ builds and when compiling through sbt.&lt;/p&gt;

</description>
      <category>scala</category>
      <category>sbt</category>
      <category>intellij</category>
      <category>todayilearned</category>
    </item>
    <item>
      <title>Hi, I'm Jake Schwartz</title>
      <dc:creator>Jake Schwartz</dc:creator>
      <pubDate>Sat, 22 Apr 2017 05:38:03 +0000</pubDate>
      <link>https://forem.com/jakehschwartz/hi-im-jake-schwartz</link>
      <guid>https://forem.com/jakehschwartz/hi-im-jake-schwartz</guid>
      <description>&lt;p&gt;I have been coding for 3 years professionally, but started during high school in 2007.&lt;/p&gt;

&lt;p&gt;You can find me on GitHub as &lt;a href="https://github.com/jakehschwartz" rel="noopener noreferrer"&gt;jakehschwartz&lt;/a&gt; and on Twitter &lt;a href="https://twitter.com/jakehschwartz" rel="noopener noreferrer"&gt;@jakehschwartz&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I live in San Francisco, but I am originally from Dover, NH.&lt;/p&gt;

&lt;p&gt;I work for &lt;a href="https://zignallabs.com" rel="noopener noreferrer"&gt;Zignal Labs&lt;/a&gt; on the Platform (backend) team.&lt;/p&gt;

&lt;p&gt;I almost exclusively program in &lt;a href="https://scala-lang.org" rel="noopener noreferrer"&gt;Scala&lt;/a&gt;, and use databases like MongoDB and Elasticsearch.&lt;/p&gt;

&lt;p&gt;I am currently learning more about Scala, vim, git, bash, zsh, tmux and whatever else I think can help make my life easier.&lt;/p&gt;

&lt;p&gt;Nice to meet all of you!&lt;/p&gt;

</description>
      <category>introduction</category>
      <category>scala</category>
      <category>vim</category>
      <category>git</category>
    </item>
  </channel>
</rss>
