<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.5">Jekyll</generator><link href="https://matsie.net/feed.xml" rel="self" type="application/atom+xml" /><link href="https://matsie.net/" rel="alternate" type="text/html" /><updated>2024-05-27T01:32:42+00:00</updated><id>https://matsie.net/feed.xml</id><title type="html">MatsieFTW!</title><subtitle>Frontend Software Engiqueer in Portland, OR</subtitle><entry><title type="html">Clearing Your Shell With Only The Return Key</title><link href="https://matsie.net/clearing-your-shell-with-only-the-return-key/" rel="alternate" type="text/html" title="Clearing Your Shell With Only The Return Key" /><published>2016-11-05T00:00:00+00:00</published><updated>2016-11-05T00:00:00+00:00</updated><id>https://matsie.net/clearing-your-shell-with-only-the-return-key</id><content type="html" xml:base="https://matsie.net/clearing-your-shell-with-only-the-return-key/"><![CDATA[<p>I am a die hard command line user. I am not highly opinionated on whether or not everyone else should be working solely out of the command line, but my own personal idiosyncrasies kind of demand it – I <em>hate</em> having multiple windows open. This means, I use a lot of tabs and splits and my preferred text editor is Vim. I work from my terminal and I love it because it provides me with both simplicity (one window) and complexity (text editor, shell, <a href="https://github.com/michael-lazar/rtv">reddit browser</a>).</p>

<h2 id="so-many-typos">So Many Typos</h2>

<p>That being said, I end up entering a lot of commands into my terminal and now I’ve got a cluttered screen where all my relevant text is at the bottom. I’ve gotten into the habit of typing <code class="language-plaintext highlighter-rouge">clear</code> <em>a lot</em>. But this leaves room for typos…sometimes so many typos. Ugh. SO. MANY. TYPOS.</p>

<p><img src="/images/clearScreenTypo.png" alt="Clear Shell Typo - MatsieFTW!" /></p>

<p>My deskmate is a ‘return key’ guy. He just presses return a bunch until he’s got some whitespace on the screen and continues running commands. This got me thinking on how to combine these two methods to make one Super Method<sup>TM</sup>.</p>

<h2 id="enter-the-return-key-clear-shell-script">Enter the Return Key Clear Shell Script</h2>

<p>So now I looked for a solution that cleared my shell whenever I pressed the return key twice. And behold, <a href="https://github.com/matsieftw/matsie-tools/tree/master/return-key-clear">return_key_clear.sh</a>:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>declare empty_counter=0

precmd_hook() {
    if [[ $empty_count -gt 1 ]]; then
        /usr/bin/clear
        let empty_count=0
    fi

    let empty_count=$empty_count+1
}

preexec_hook() {
    let empty_count=0
}

autoload -U add-zsh-hook

add-zsh-hook precmd precmd_hook
add-zsh-hook preexec preexec_hook
</code></pre></div></div>

<p><small>**This shell script works reliably and predictably for <code class="language-plaintext highlighter-rouge">zsh</code> on both macOS and Ubuntu Linux.</small></p>

<p><small><strong>Update 2016-11-16 - The original version of this post used <code class="language-plaintext highlighter-rouge">MacOS</code> instead <code class="language-plaintext highlighter-rouge">macOS</code>. For this, I am eternally regretful of the internet points I lost. As we all know, they can never be regained.</strong></small></p>]]></content><author><name></name></author><summary type="html"><![CDATA[I am a die hard command line user. I am not highly opinionated on whether or not everyone else should be working solely out of the command line, but my own personal idiosyncrasies kind of demand it – I hate having multiple windows open. This means, I use a lot of tabs and splits and my preferred text editor is Vim. I work from my terminal and I love it because it provides me with both simplicity (one window) and complexity (text editor, shell, reddit browser).]]></summary></entry><entry><title type="html">How I Learned to Love `tmux`</title><link href="https://matsie.net/how-i-learned-to-love-tmux/" rel="alternate" type="text/html" title="How I Learned to Love `tmux`" /><published>2016-05-29T00:00:00+00:00</published><updated>2016-05-29T00:00:00+00:00</updated><id>https://matsie.net/how-i-learned-to-love-tmux</id><content type="html" xml:base="https://matsie.net/how-i-learned-to-love-tmux/"><![CDATA[<p>My coworker, <a href="http://github.com/wheresmyjetpack">Paul</a> and I were discussing the virtues of <a href="https://github.com/tmux/tmux">tmux</a> a few days ago and both of us were at a loss at to why it was useful. tmux brands itself as a “terminal multiplexer”. It gives you the ability to have multiple terminals instances opened at once without having to use multiple windows.</p>

<p>This seems useful at first, but both Paul and I use <a href="https://www.iterm2.com/">iTerm2</a> as our terminal app and iTerm2 already provides tabbed windows and split panes. This weekend provided me with the motivation to learn tmux more fully and try it out in my workflow – and boy am I enjoying it.</p>

<p>What’s amazing about my change of heart is that I’m using tmux only in the most basic implementation right now. I use it to background apps and to afford myself more screen real estate on my cramped Macbook Air screen.</p>

<p>I now have a tmux session that handles my <code class="language-plaintext highlighter-rouge">top</code> and <code class="language-plaintext highlighter-rouge">rails server</code> screens and I don’t have to worry about if my ssh connection breaks or about losing a little bit of screen real estate. I even keep a split in the session for man pages I’m looking at.</p>

<p>So why use it over iTerm2’s splits and tabs? iTerm won’t keep your session going. If you’re pulling a particularly large repo or installing something big, iTerm could lose that connection and your session is over, as is that download. With tmux, you’re not just getting a way to manage your multiple windows – <strong>you’re gaining a way to manage multiple sessions</strong>. And that makes a WORLD of difference once you incorporate it into your workflow.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[My coworker, Paul and I were discussing the virtues of tmux a few days ago and both of us were at a loss at to why it was useful. tmux brands itself as a “terminal multiplexer”. It gives you the ability to have multiple terminals instances opened at once without having to use multiple windows.]]></summary></entry><entry><title type="html">Creating a Git Repository Remotely</title><link href="https://matsie.net/creating-a-git-repository-remotely/" rel="alternate" type="text/html" title="Creating a Git Repository Remotely" /><published>2016-05-26T00:00:00+00:00</published><updated>2016-05-26T00:00:00+00:00</updated><id>https://matsie.net/creating-a-git-repository-remotely</id><content type="html" xml:base="https://matsie.net/creating-a-git-repository-remotely/"><![CDATA[<p>I have been banging my head on my keyboard for quite some time trying to figure out why using <code class="language-plaintext highlighter-rouge">git push origin master</code> has never seemed to work for me when trying to push the few local repos I have to github via the command line. I knew I was missing something essential about the process, but was struggling to put my finger on it.</p>

<p>Finally, I’ve found out there is no established git command that creates the repo when you attempt to push a local repo up. <strong>The repo has to have already been created.</strong> This posed a bit of an issue for me because I try to do as much of my work as possible via the command line.</p>

<p>Turns out, <code class="language-plaintext highlighter-rouge">curl</code> is perfect for just such a situation.</p>

<p><code class="language-plaintext highlighter-rouge">curl -u 'USERNAME' https://api.github.com/user/repos -d '{"name":"REPO_NAME"}'</code></p>

<p>This command will create a new repo in your profile using the github API.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I have been banging my head on my keyboard for quite some time trying to figure out why using git push origin master has never seemed to work for me when trying to push the few local repos I have to github via the command line. I knew I was missing something essential about the process, but was struggling to put my finger on it.]]></summary></entry><entry><title type="html">Collision Conf 2016 - Day 2</title><link href="https://matsie.net/collision-conf-2016-day-2/" rel="alternate" type="text/html" title="Collision Conf 2016 - Day 2" /><published>2016-05-01T00:00:00+00:00</published><updated>2016-05-01T00:00:00+00:00</updated><id>https://matsie.net/collision-conf-2016-day-2</id><content type="html" xml:base="https://matsie.net/collision-conf-2016-day-2/"><![CDATA[<p><a href="/"><img src="/images/madeinALX.jpg" alt="Made in ALX Conference Booth" style="width: 450px; display: block; margin: 0 auto 5px auto" /></a></p>

<p>This recap is coming several days late, but day two of the conference was amazing! The second day’s talks were much more relevant to my work as a developer and I remained incredibly engaged the whole time. I basically lived at the Builders Stage! So many great talks that were relevant to my work as a developer.</p>

<p>My networking skills are definitely in need of some work, though. I would get nervous and scramble for things to say or ask instead of letting the conversation just flow. The most embarrassing moment was when after I shook hands with someone and made to leave, I sidehugged the man for absolutely no reason at all. I was mortified and walk ran away as fast as I could! Aside from that horror story of a moment, my nervousness while networking didn’t seem to be too detrimental.</p>

<p>Some highlights from Day 2:</p>

<ol>
  <li>
    <p><a href="https://twitter.com/marcusustwo">Marcus Woxneryd</a> of <a href="https://ustwo.com">ustwo</a>’s talk about the real human value of employees and company culture was amazing and quite uplifting. Watch a recorded version of this talk from Web Summit <a href="https://www.youtube.com/watch?v=DhzNTNlQS34">here</a>.</p>
  </li>
  <li>
    <p>The panel on Open Source software was really amazing. And the tag question at the very end about how to create a culture in open source that is much more open to women and other underrepresented minorities was just as valuable as the rest of the talk. It’s good to know IBM and jQuery are actively thinking about these communities and how the embedded culture in technology can be prohibitive of truly open participation.</p>
  </li>
  <li>
    <p><a href="https://twitter.com/bryanl">Bryan Liles</a>’ talk about continuous app deployment and the common mistakes companies — especially start ups — make while trying to push their updates was incredibly useful for me.</p>
  </li>
  <li>
    <p><a href="https://www.silentcircle.com/our-story/">Mike Janke of Silent Circle</a> gave a great talk about cryptography and privacy in the modern era and how government influence is constantly butting up against user privacy rights.</p>
  </li>
</ol>

<p>Honestly, the whole second day was a real home run. I’m incredibly glad that I was able to attend two days of <a href="https://collisionconf.com">Collision Conference</a> and can’t wait to start utilizing what I learned (and improving my networking skills).</p>]]></content><author><name></name></author><summary type="html"><![CDATA[]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://matsie.net/images/madeinALX.jpg" /><media:content medium="image" url="https://matsie.net/images/madeinALX.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Collision Conf 2016 - Day 1</title><link href="https://matsie.net/collision-conf-2016-day-1/" rel="alternate" type="text/html" title="Collision Conf 2016 - Day 1" /><published>2016-04-26T00:00:00+00:00</published><updated>2016-04-26T00:00:00+00:00</updated><id>https://matsie.net/collision-conf-2016-day-1</id><content type="html" xml:base="https://matsie.net/collision-conf-2016-day-1/"><![CDATA[<p><a href="/"><img src="/images/collisionconf.png" alt="Mattie Kenny Holding Collision Conf Badge" style="width: 450px; display: block; margin: 0 auto 5px auto" /></a></p>

<p>I have been eagerly anticipating today since I got my <a href="http://collisionconf.com">Collision</a> ticket back in October of last year. I have never been to an industry conference and the naive nerd inside of me was squeeing in utter delight that I finally get to go to a conference. My coworker, <a href="https://github.com/wheresmyjetpack">Paul</a>, and I took a whole hour to pore over the seminar descriptions and set up our joint schedules.</p>

<p>Day one of the conference definitely did not disappoint. We got plenty of schwag and saw quite a few really fantastic talks.</p>

<p>Some highlights from today…</p>

<ol>
  <li>
    <p>Schwag! Got some pretty neat socks from <a href="http://gitlab.com">GitLab</a> and a cute desk shark and tote from ♥<a href="http://digitalocean.com">Digital Ocean</a>♥. We were also able to get a book on learning the <a href="https://www.wolfram.com/language/">Wolfram Programming Language</a>, which was new to both Paul and I.</p>
  </li>
  <li>
    <p><a href="https://mikko.hypponen.com/">Mikko Hypponen</a>’s talk about web security and the reasons cybercrime occurs was incredibly interesting and thought provoking.</p>
  </li>
  <li>
    <p><a href="https://www.twilio.com/company/management">Jeff Lawson</a>’s talk about making mistakes along your career path and finding the work that you have conviction in was inspiring to me. He was an animated speaker and was not so subtly nudging me and everyone else in the audience in the right direction for our careers.</p>
  </li>
</ol>

<p>You can follow my live tweets of the conference <a href="http://twitter.com/matsie">here</a>.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://matsie.net/images/collisionconf.png" /><media:content medium="image" url="https://matsie.net/images/collisionconf.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>