<?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: Hannah Balenda</title>
    <description>The latest articles on DEV Community by Hannah Balenda (@hbalenda).</description>
    <link>https://dev.to/hbalenda</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%2F61106%2Fead3a991-d2f0-4e6e-a7f0-05ef8adef63f.gif</url>
      <title>DEV Community: Hannah Balenda</title>
      <link>https://dev.to/hbalenda</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hbalenda"/>
    <language>en</language>
    <item>
      <title>Beginner’s Guide to Executables and Where To Store Them</title>
      <dc:creator>Hannah Balenda</dc:creator>
      <pubDate>Sun, 31 Mar 2019 22:38:34 +0000</pubDate>
      <link>https://dev.to/hbalenda/beginner-s-guide-to-usr-local-bin-4fe2</link>
      <guid>https://dev.to/hbalenda/beginner-s-guide-to-usr-local-bin-4fe2</guid>
      <description>&lt;p&gt;Maybe I should be more embarrassed to admit this, but I always kind of just pray to god when I install CLIs, and it usually works. But I recently go a new computer, so I’ve had to install a lot of things, and as I’m following the install instructions for Sublime 3’s CLI for OS X, I read this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The first task is to make a symlink to subl. Assuming you've placed Sublime Text in the Applications folder, and that you have a ~/bin directory in your path, you can run:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" ~/bin/subl&lt;/code&gt;  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now I’d like to say I’m not guilty of copy and pasting things I don’t fully understand, but sometimes there’s only so much space in this brain.  It looks like we’re making a symlink from the &lt;code&gt;subl&lt;/code&gt; file that comes packaged with Sublime 3 to &lt;code&gt;~/bin&lt;/code&gt;, where we’ll be able to execute it from the command line, which feels familiar enough. So I &lt;code&gt;mkdir bin&lt;/code&gt; and copy/paste their command and get command not found.&lt;/p&gt;

&lt;p&gt;And then I’m like, yeah, maybe I don't really know what's going on here. Also don't I sometimes put this stuff in &lt;code&gt;/usr/local/bin&lt;/code&gt;?&lt;/p&gt;

&lt;p&gt;So I did some research and took a look at the file system hierarchy manual page by running &lt;code&gt;man hier&lt;/code&gt;, and boy howdy, we’ve got some confusing duplicate directory names:&lt;/p&gt;

&lt;p&gt;The modern OS X file system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/&lt;/code&gt; Root directory of the filesystem&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/bin&lt;/code&gt; User utilities fundamental to both single-user and multi-user environments&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/dev&lt;/code&gt; Device files&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/etc&lt;/code&gt; System configuration files&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/mach_kernel&lt;/code&gt;  Kernel executable (the operating system loaded into memory at boot time)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/sbin&lt;/code&gt; System programs and administration utilities fundamental to both single-user and multi-user environments&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/tmp&lt;/code&gt; Temporary files&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/usr&lt;/code&gt; System-wide, read-only files. All installed software goes here.

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/bin&lt;/code&gt; Common utilities, programming tools, and applications provided by the OS.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/lib&lt;/code&gt; Archive libraries provided by the OS.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/local&lt;/code&gt; System-wide, read-only files, but only the ones provided by the user i.e. you.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/bin&lt;/code&gt; Executables&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/lib&lt;/code&gt; Libraries&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/var&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, executables and libraries provided by the OS are going to be in &lt;code&gt;/bin&lt;/code&gt;, &lt;code&gt;/sbin&lt;/code&gt;, &lt;code&gt;/usr/bin&lt;/code&gt;, and &lt;code&gt;/usr/lib&lt;/code&gt;. Anything in addition to that we want to install system-wide and that should be available for all users should go in &lt;code&gt;/usr/local&lt;/code&gt;, and executables (like the sublime CLI I was trying symlink) should go in &lt;code&gt;/usr/local/bin&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;So, I &lt;strong&gt;could&lt;/strong&gt; edit the original command to install the Sublime CLI to this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;But if we take a closer look at the original Sublime command, they're pointing to &lt;code&gt;~/bin&lt;/code&gt;, which is shorthand for &lt;code&gt;/Users/&amp;lt;username&amp;gt;/bin&lt;/code&gt;. It's a common convention to store executables that only need to be available to the current user here, and better practice to avoid using sudo and installing things at the root when we don't need to. But in order to use it, I need to add &lt;code&gt;~/bin&lt;/code&gt; (or, &lt;code&gt;$HOME/bin&lt;/code&gt;) to my path variable (which is a list of directories where executables are stored) by editing my &lt;code&gt;.bash_profile&lt;/code&gt; to include:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export PATH="$HOME/bin:$PATH"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now running original Sublime command will work as intended. And voila! Now I can &lt;code&gt;subl&lt;/code&gt; to my heart’s content, and even better, I understand a little more about what’s going on in my &lt;code&gt;/usr&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;Side note: For some history into why there’s a &lt;code&gt;/bin&lt;/code&gt; and &lt;code&gt;/lib&lt;/code&gt; in both  &lt;code&gt;/&lt;/code&gt; and &lt;code&gt;/usr&lt;/code&gt;, I recommend checking out &lt;a href="http://lists.busybox.net/pipermail/busybox/2010-December/074114.html"&gt;this post by Rob Landley from 2010&lt;/a&gt;. Spoiler alert, it’s a holdover from working around limited disk space, and it isn’t a reason anymore! Explanations for the continued existence of this split have been repeatedly made in retrospect! If that doesn’t make you feel better about yourself as a developer, I don’t know what will.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>bash</category>
      <category>osx</category>
      <category>cli</category>
    </item>
    <item>
      <title>Nevertheless, It Still Sucks To Be A Woman In Tech</title>
      <dc:creator>Hannah Balenda</dc:creator>
      <pubDate>Fri, 08 Mar 2019 18:47:43 +0000</pubDate>
      <link>https://dev.to/hbalenda/nevertheless-it-still-sucks-to-be-a-woman-in-tech-1ghh</link>
      <guid>https://dev.to/hbalenda/nevertheless-it-still-sucks-to-be-a-woman-in-tech-1ghh</guid>
      <description>&lt;p&gt;I've been working as a web developer for 2.5 years. I arrived here via an increasingly common path, a BA in the humanities and a 9 month coding bootcamp several years later when I couldn't figure out how to get a job. &lt;/p&gt;

&lt;p&gt;But it turns out, I love this work. We get to solve puzzles all day, and by the end of it we've (hopefully) built something useful. That's why I keep doing it, but &lt;strong&gt;here's some reasons it's still hard for me&lt;/strong&gt;:&lt;/p&gt;

&lt;h4&gt;
  
  
  1.) I feel stupid every day
&lt;/h4&gt;

&lt;p&gt;Sure, part of this is the nature of the job always changing and requiring you to learn something new, and that's fine. What I'm talking about is something I guess you could call "computer literacy", a vast and undefined thing, gained over many years of computer one on one time at home. I often find myself in the situation where my peers assume a term or process is common knowledge and I have to fess up that I don't know what they're talking about and look dumb even though it's often a) extremely easy and learnable, and b) not integral to my ability to do my job.&lt;/p&gt;

&lt;h4&gt;
  
  
  2.) There are gendered assumptions around front-end vs. back-end development
&lt;/h4&gt;

&lt;p&gt;This has already been &lt;a href="https://www.theguardian.com/technology/2017/mar/14/tech-women-code-workshops-developer-jobs"&gt;talked&lt;/a&gt; &lt;a href="https://medium.com/@melissamcewen/is-frontend-development-sexist-220040c952b1"&gt;about&lt;/a&gt; at length, but it bears repeating because it still happens. Jobs are often de-valued when women do them. In tech, we've seen similar gender and value assumptions in the past with terms like hardware/software, and engineering/programming (if you haven't already read the New York Times' &lt;a href="https://www.nytimes.com/2019/02/13/magazine/women-coding-computer-programming.html"&gt;The Secret History of Women in Coding&lt;/a&gt;, do it now!). Anyway, if I had a nickel for every time someone assumed I was a web designer. &lt;/p&gt;

&lt;h4&gt;
  
  
  3.) The culture is exclusive... and weird
&lt;/h4&gt;

&lt;p&gt;Guys, this is just a job. It's a job you can learn to do by using your brain, and the abilities of that brain are not dictated by your gender, race, or sexuality. &lt;br&gt;
But the coder #brand would have you think it takes more than that, and that you gotta hack and blog and snark and be more right than everyone else 18 hours a day to be a real dev. These rules have been largely dictated by cis white men, and so it's always felt like a struggle to be a part of this community, but whoops, here I am. Instead of bending ourselves to fit the mold, or being boxed out, let's keep doing our thing and expand the definition of what it means to be a developer. Then let's go home to our friends and loved ones and buy art and make dinner and whatever else we need to be ourselves. &lt;/p&gt;

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