<?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: Ray</title>
    <description>The latest articles on DEV Community by Ray (@lrgranger).</description>
    <link>https://dev.to/lrgranger</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%2F17884%2F08810b03-5adb-4270-b16c-63d212a9c707.jpg</url>
      <title>DEV Community: Ray</title>
      <link>https://dev.to/lrgranger</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lrgranger"/>
    <language>en</language>
    <item>
      <title>Fearless In The Face Of My Ignorance</title>
      <dc:creator>Ray</dc:creator>
      <pubDate>Wed, 11 Aug 2021 06:08:50 +0000</pubDate>
      <link>https://dev.to/lrgranger/fearless-in-the-face-of-my-ignorance-53l4</link>
      <guid>https://dev.to/lrgranger/fearless-in-the-face-of-my-ignorance-53l4</guid>
      <description>&lt;p&gt;&lt;em&gt;I know so much more than I did when I started working as a software developer five years ago, but I seem to have forgotten something: How to remain fearless in the face of my ignorance.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When I started working in software development I got all the advice that we give junior devs - several small PRs are better than one big one, composition over inheritance, write your tests first (or at least concurrently) to your logic, coffee is good but adequate sleep is better. The top thing I heard? &lt;strong&gt;Don't be afraid to ask questions&lt;/strong&gt;. This one puzzled me because I wasn't afraid to ask questions. I was new after all and so of course I didn't know what I was doing. Of course I would be asking a lot of questions.&lt;/p&gt;

&lt;p&gt;Five years later and I can't in good faith call myself new at this anymore - I'm the one reminding the junior engineers to get enough sleep! I've been an Android developer for five years, adding in React Native and iOS for the past three. I am competent &amp;amp; comfortable with Java and Kotlin. I've grown to really love Typescript. I know enough Swift to be effective and enough Obj-C to get by. I am passionate about mobile tech and can talk your ear off about Native Modules and the React Native Bridge. But I seem to have forgotten how to remain unafraid of asking questions.&lt;/p&gt;

&lt;p&gt;Somewhere along the way I became afraid of saying, "I need help". Somewhere along the way I started avoiding saying, "I don't know". Somehow I got it in my head that I should know it all by now. That I will go to say the words "I need help" and it will come out sounding like "I am not smart enough to be a developer". That I will try to say "I don't know" and everyone will hear "I am incompetent".&lt;/p&gt;

&lt;p&gt;So I am choosing to stand fearlessly in the face of my ignorance, and to ask for help. How do you, especially the mid-level and up engineers, keep asking for help? How do you handle the pang of panic when you know you used to know this and now you don't? How do you silence the voice that says you are not good enough? How do you move forward when you can't?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
    </item>
    <item>
      <title>Using SSH &amp; SCP to Add Custom Remarkable Templates</title>
      <dc:creator>Ray</dc:creator>
      <pubDate>Fri, 04 Jun 2021 20:59:52 +0000</pubDate>
      <link>https://dev.to/lrgranger/using-ssh-scp-to-add-custom-remarkable-templates-4a7g</link>
      <guid>https://dev.to/lrgranger/using-ssh-scp-to-add-custom-remarkable-templates-4a7g</guid>
      <description>&lt;h6&gt;
  
  
  &lt;em&gt;Photo by &lt;a href="https://unsplash.com/@purzlbaum?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Claudio Schwarz | @purzlbaum&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/remarkable-tablet?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;
&lt;/h6&gt;

&lt;p&gt;Remarkable is an e-ink reading and writing tablet. It runs Codex, a custom Linux OS, and has a growing &lt;a href="https://www.reddit.com/r/RemarkableTablet/" rel="noopener noreferrer"&gt;community&lt;/a&gt; of &lt;a href="https://github.com/topics/remarkable-tablet" rel="noopener noreferrer"&gt;hackers&lt;/a&gt; and &lt;a href="https://remarkablewiki.com/tips/templates?s[]=templates#templates_by_other_users" rel="noopener noreferrer"&gt;template creators&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I use mine for reading PDFs, doing sudoku puzzles, taking notes, planning my week, and tracking my daily tasks. For the later two I built two custom templates based on how I best organize my tasks. &lt;/p&gt;

&lt;p&gt;Here's how I upload my custom templates and make them available on my tablet:&lt;/p&gt;

&lt;p&gt;Download or create an .svg and .png copy of each template that you want to add. Other than the file extensions, you want both of these files to have the same name. I made mine with Sketch, but you can also download ones from the community, buy some from folks on Etsy, or email yourself a pdf from your tablet that you've drawn. Make sure that if you're creating your own that they do not have transparent backgrounds, which cause erase issues.&lt;/p&gt;

&lt;p&gt;Look up your shh password &amp;amp; IP address. You'll find these on your tablet under Settings &amp;gt; Help &amp;gt; Copyrights and licenses &amp;gt; on the first page at the bottom.&lt;/p&gt;

&lt;p&gt;We're going to use ssh, the SecureSHell program to connect to the tablet over usb. If you look at the tablet's Copyrights and licenses section, the sentence with the password gives an explanation of what we're doing: "This device acts as an USB ethernet device, and you can connect using the SSH protocol using the username 'root' and the password 'your password'". Put another way, the operating system on your computer will see the USB connection between your tablet and itself as a network connection just like it would between itself and any other network connection, such as your wifi router.&lt;/p&gt;

&lt;p&gt;Lets test this connection. Attach your device to your computer via usb. Open terminal and type &lt;code&gt;ssh root@10.11.99.1&lt;/code&gt; and then when prompted your password. You should be rewarded with some pretty colors: &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqfq4vod0g6ymxrca6jt.png" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqfq4vod0g6ymxrca6jt.png" alt="Alt Text"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Take a few minutes to explore the file structure. We will be copying the template images to &lt;code&gt;../../usr/share/remarkable/templates/&lt;/code&gt;. Look around this folder and you'll see that there's a .png and a .svg for each of the templates. There's also some with an LS or P file name prefix, which denotes Landscape or Portrait, for templates with different layouts for each orientation. Exit your ssh session with &lt;code&gt;control + D&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Let's get to copying! Navigate in Terminal to the folder that your template images are saved in. From here we are going to copy both of the template files to the tablet with scp, the Secure CoPy program. To do so we need to know the source of the files and the destination for the files. Since we navigated to the folder with the template images, the source directory is &lt;code&gt;./&lt;/code&gt;. In order to copy both .svg and .png in one go, we'll use &lt;code&gt;.*&lt;/code&gt; as our file type. Together with the file name, this makes the source &lt;code&gt;./TemplateFileName.*&lt;/code&gt;. The destination is on our tablet, so we first need to use the username and IP address we used to shh, &lt;code&gt;root@10.11.99.1&lt;/code&gt;. This address is followed up with the file path at that location where scp should put the copied files, &lt;code&gt;../../usr/share/remarkable/templates/&lt;/code&gt;. This makes the destination &lt;code&gt;root@10.11.99.1:../../usr/share/remarkable/templates&lt;/code&gt;. The whole scp command is: &lt;/p&gt;

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

scp ./TemplateFileName.* root@10.11.99.1:../../usr/share/remarkable/templates


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

&lt;/div&gt;

&lt;p&gt;Confirm that your files copied by connecting back to your tablet with &lt;code&gt;ssh root@10.11.99.1&lt;/code&gt;. The .svg and .png files should be in the &lt;code&gt;usr/share/remarkable/templates/&lt;/code&gt; directory. 🎉 The party isn't quite done yet, it's time to edit the file the tablet uses to know which templates are there.&lt;/p&gt;

&lt;p&gt;In the templates folder you'll see the file &lt;code&gt;templates.json&lt;/code&gt;. We're going to edit it with vi. Type &lt;code&gt;vi templates.json&lt;/code&gt; and you'll open the vi text editor. The first object in the list of templates looks like this:&lt;/p&gt;

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

{
    "name": "Blank",
    "filename": "Blank",
    "iconCode": "\ue9fd",
    "landscape": true,
    "categories": [
        "Creative",
        "Lines",
        "Grids", 
        "Life/organize"
    ]
},


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

&lt;/div&gt;

&lt;p&gt;Let's break it down. "name" is the display name, this can have spaces in it and it doesn't need to match the filename. "filename" is the name of the template, without the .png or .svg extensions. "iconCode" refers to which thumbnail will be displayed with that template. You can pick which one you want for your template with &lt;a href="https://remarkablewiki.com/_detail/tips/template-icon-codes-2.3.0.16.png?id=tips%3Atemplates" rel="noopener noreferrer"&gt;this guide&lt;/a&gt;. "landscape" is true unless this is a portrait-only template, then it's false. "categories" lists which categories you'd like to have the template show up under.&lt;/p&gt;

&lt;p&gt;For our template to show up we need to add a JSON object that will represent it. &lt;a href="https://devhints.io/vim" rel="noopener noreferrer"&gt;Bust out your Vim moves&lt;/a&gt;, copy the Blank object, paste a copy back in, and then edit it to that it matches your template's name, filename, and other properties. Save &amp;amp; exit Vim.&lt;/p&gt;

&lt;p&gt;Now we need to tell our tablet to restart so it will re-read the templates.json file and "see" our new template. The Codex systemd is called xochitl. We'll tell it to restart with the command &lt;code&gt;systemctl restart xochitl&lt;/code&gt;. While the tablet restarts exit your ssh with cmd+D. Once your tablet is up and running you can find your custom template among all the others.&lt;/p&gt;

</description>
      <category>ssh</category>
      <category>scp</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Hack Your Brain to be a Better Developer - with Science!</title>
      <dc:creator>Ray</dc:creator>
      <pubDate>Sun, 02 Feb 2020 03:53:06 +0000</pubDate>
      <link>https://dev.to/lrgranger/hack-your-brain-to-be-a-better-developer-with-science-1np8</link>
      <guid>https://dev.to/lrgranger/hack-your-brain-to-be-a-better-developer-with-science-1np8</guid>
      <description>&lt;p&gt;At the 2020 AdieCon I spoke about 5 different issues that I’ve encountered in my 3.5 years of being a developer, my understanding of the science behind why those things happen, and what my best strategy is for dealing with that issue. I've broken them out into the following articles:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/lgranger/asking-for-help-1cl9"&gt;Asking For Help&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/lgranger/tracking-daily-activity-4el2"&gt;Tracking Daily Activity&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/lgranger/the-more-you-need-to-know-the-harder-it-is-to-remember-1nh7"&gt;The More You Need to Know, The Harder it is to Remember&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/lgranger/use-a-checklist-to-un-stuck-yourself-2cle"&gt;Use a Checklist to Un-Stuck Yourself&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/lgranger/success-is-a-feeling-1bma"&gt;Success Is A Feeling&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I had a blast at AdieCon and can't wait for next year!&lt;/p&gt;

</description>
      <category>brainhack</category>
      <category>adiecon</category>
      <category>adiecon2020</category>
    </item>
    <item>
      <title>Success Is A Feeling</title>
      <dc:creator>Ray</dc:creator>
      <pubDate>Sun, 02 Feb 2020 03:52:11 +0000</pubDate>
      <link>https://dev.to/lrgranger/success-is-a-feeling-1bma</link>
      <guid>https://dev.to/lrgranger/success-is-a-feeling-1bma</guid>
      <description>&lt;p&gt;&lt;em&gt;This is part 5 of &lt;a href="https://dev.to/lgranger/hack-your-brain-to-be-a-better-developer-with-science-1np8"&gt;Hack Your Brain to be a Better Developer&lt;/a&gt;, my talk from AdieCon 2020.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This section doesn't have the same research behind it as the first four parts, but it's important to me, and comes from my personal experience.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In my life before Software Development I worked in Social Services, specifically in a homeless shelter, and later in low-income housing. To say that the clients and residents were folks who had and were experiencing severe trauma somehow feels like a massive understatement.&lt;/p&gt;

&lt;p&gt;So I thought that when I came to work in software that my feelings of burnout would be easier to manage. The problem is that both careers have a commonality. Me.&lt;/p&gt;

&lt;p&gt;When I honestly look inside, what I want in life is to be successful, to be the person who always gives 110%.&lt;/p&gt;

&lt;p&gt;I wanted to be the best case manager. To give 110% meant being emotionally present for everyone. But I had 45 - 60 residents. Folks with histories of mental illness, disability and trauma. In a world that doesn’t believe housing is a human right. More than that, I’m human. And I couldn’t be everything for everyone.&lt;/p&gt;

&lt;p&gt;I want all of my code to be flawless and sail through code review. I want to understand new concepts on first pass. I want to design beautiful, elegant new features. But the definition of flawless code is up for debate, it takes me time to really understand things, and not everyone agrees that my designs are elegant. More than that, I’m human. And I can’t be everything to everyone, even myself.&lt;/p&gt;

&lt;p&gt;When we define success at giving 110% we are bound to be disappointed and to burn ourselves out trying. So here’s my best advice for my fellow folks who look inside themselves and see that what they want it to be successful. Success isn’t an outcome to be attained.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Success is a feeling. And it’s a feeling you get to define for yourself.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I've defined success for me this way:&lt;/p&gt;

&lt;p&gt;Success is the feeling of getting up and going to do work that matters, that does good, even in little ways, with people you care about and who care about you. Success is the feeling of sitting around a big table eating food, talking, and just being together. Or going out into the world and really experiencing, moving your body through the world. Success is the feeling of coming home at the end of the day tired, but fulfilled. For me that’s what success feels like.&lt;/p&gt;

&lt;p&gt;Go define success for yourself. You can.&lt;/p&gt;

</description>
      <category>brainhack</category>
      <category>adiecon</category>
      <category>success</category>
      <category>110percent</category>
    </item>
    <item>
      <title>Use a Checklist to Un-Stuck Yourself</title>
      <dc:creator>Ray</dc:creator>
      <pubDate>Sun, 02 Feb 2020 03:51:41 +0000</pubDate>
      <link>https://dev.to/lrgranger/use-a-checklist-to-un-stuck-yourself-2cle</link>
      <guid>https://dev.to/lrgranger/use-a-checklist-to-un-stuck-yourself-2cle</guid>
      <description>&lt;p&gt;&lt;em&gt;This is part 4 of &lt;a href="https://dev.to/lgranger/hack-your-brain-to-be-a-better-developer-with-science-1np8"&gt;Hack Your Brain to be a Better Developer&lt;/a&gt;, my talk from AdieCon 2020.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There’s a brain resources problem that is exposed when we get so stuck that we can’t think of what to do next. We don’t have the emotional and creative resources to save the code problem, so we also don’t have the emotional and creative resources to solve the get-unstuck problem.&lt;/p&gt;

&lt;p&gt;In times like this I turn to my three-part un-stuck yourself checklist (&lt;a href="https://www.jenunderwoodcoaching.com/"&gt;shout out to Coach Jennifer Underwood for the term un-stuck yourself&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Take Care of You&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Do you need to eat a sandwich?&lt;br&gt;
When was the last time you went outside?&lt;br&gt;
Would a short nap help?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Name the Problem&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Re-read the original task - are you &lt;a href="https://en.wiktionary.org/wiki/yak_shaving"&gt;shaving the yak&lt;/a&gt;?&lt;br&gt;
Enumerate what you do know - you've been thinking about what you don't know, refocus on what you do know&lt;br&gt;
Write one sentence that names where you are stuck&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Re-frame the Problem&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Have an attitude of &lt;a href="https://emilykarpinski.blog/why-we-avoid-what-we-can-do-about-it/"&gt;let’s see&lt;/a&gt;. Reframe your one sentence as curiosity - from I don't know, to I get to find out.&lt;br&gt;
What one thing can you do next? Pick the smallest unit of action you can do next. It doesn't have to solve the problem! In fact it probably won't, and that's ok, the goal is get going.&lt;br&gt;
Do it! &lt;/p&gt;

&lt;p&gt;Now you've gone from so stuck you can't think, to taking action towards your goal. Congrats!&lt;/p&gt;

</description>
      <category>brainhack</category>
      <category>adiecon</category>
      <category>getunstuck</category>
    </item>
    <item>
      <title>The More You Need to Know, The Harder it is to Remember</title>
      <dc:creator>Ray</dc:creator>
      <pubDate>Sun, 02 Feb 2020 03:51:26 +0000</pubDate>
      <link>https://dev.to/lrgranger/the-more-you-need-to-know-the-harder-it-is-to-remember-1nh7</link>
      <guid>https://dev.to/lrgranger/the-more-you-need-to-know-the-harder-it-is-to-remember-1nh7</guid>
      <description>&lt;p&gt;&lt;em&gt;This is part 3 of &lt;a href="https://dev.to/lgranger/hack-your-brain-to-be-a-better-developer-with-science-1np8"&gt;Hack Your Brain to be a Better Developer&lt;/a&gt;, my talk from AdieCon 2020.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There’s an error code that I get sometimes in Android Studio. I can remember now what it is, but for years - yes years - I’d see it, realize that I’d seen it before, and not be able to remember how to fix it.&lt;/p&gt;

&lt;p&gt;The issue with human long-term memory isn’t storage, &lt;a href="https://human-memory.net/memory-encoding/"&gt;it’s recall&lt;/a&gt;. The more often you remember something, the easier it is to remember it. The less often you deal with something, the harder it is to recall.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Keep your own personal Stack Overflow.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There are a plethora of note taking apps (make sure you’re not violating your work’s data privacy though!), but text files in a central location you can grep are just as good.&lt;/p&gt;

&lt;p&gt;Some of the things that I keep:&lt;/p&gt;

&lt;p&gt;Error Codes - group by IDE &amp;amp; language if you can&lt;br&gt;
Common APIs &amp;amp; requests - especially ones you use to answer customer tickets! &lt;br&gt;
“Basic” questions - I always have to look up ternary operator syntax!&lt;br&gt;
Good code examples - From code reviews or open source projects, tagged with why you liked them (ex: Clean Factory Setup, or Mocking Date/Time)&lt;br&gt;
Set up instructions for specific devices - Android vs iPhone, your different smart speakers, etc&lt;/p&gt;

&lt;p&gt;Workspace setup - your dot files, the settings of software you use on a regular basis if you can export them. These should definitely be backed up to an external HD or cloud. In the first 2.5 years at work I used the same computer. In the last year I’ve gone through two more. Trust me on the importance of backing up!&lt;/p&gt;

&lt;p&gt;Where you can update open source documentation, team or company specific wiki’s, do it, but a just-for-you source is also worthwhile.&lt;/p&gt;

</description>
      <category>brainhack</category>
      <category>adiecon</category>
      <category>longtermmemory</category>
      <category>notetaking</category>
    </item>
    <item>
      <title>Tracking Daily Activity</title>
      <dc:creator>Ray</dc:creator>
      <pubDate>Sun, 02 Feb 2020 03:51:06 +0000</pubDate>
      <link>https://dev.to/lrgranger/tracking-daily-activity-4el2</link>
      <guid>https://dev.to/lrgranger/tracking-daily-activity-4el2</guid>
      <description>&lt;p&gt;&lt;em&gt;This is part 2 of &lt;a href="https://dev.to/lgranger/hack-your-brain-to-be-a-better-developer-with-science-1np8"&gt;Hack Your Brain to be a Better Developer&lt;/a&gt;, my talk from AdieCon 2020.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You’re writing tests. You’ve got a mental map of how pieces of code work with each other, and an idea of what structures you’re going to set up for the test. You make mental note to change this var to that var. Then you realize you need to look something up, there’s a meeting, or the service you run tests through is suddenly down. You address the issue/attend the meeting, and switch back. Wait, what were you doing again?&lt;/p&gt;

&lt;p&gt;The work we as developers is working memory intensive -  make and track connections, update ideas, and task-switch. &lt;a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3721021/"&gt;Memory research shows these tasks use the same WMC - working memory capacity&lt;/a&gt;, and we all know what happens when more memory is required than what is available:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Brain Stack Overflow&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So aside from avoiding interruption, what can we do? I’ve tried a bunch of things and the best solution I’ve come across is to keep a timestamped diary. Note the time, what I’m working on, where in the code I’m working, and why I’m doing it. When my working memory capacity is hijaked by something else I’ve got a log to reference.&lt;/p&gt;

&lt;p&gt;I also find this helpful for validating how much time tasks are taking, so I can keep at something that’s difficult but I haven’t actually been at that long, or pivot to a new tactic when the log shows I’ve been at it for a while.&lt;/p&gt;

</description>
      <category>brainhack</category>
      <category>adiecon</category>
      <category>workingmemory</category>
      <category>dailylog</category>
    </item>
    <item>
      <title>Asking For Help</title>
      <dc:creator>Ray</dc:creator>
      <pubDate>Sun, 02 Feb 2020 03:50:12 +0000</pubDate>
      <link>https://dev.to/lrgranger/asking-for-help-1cl9</link>
      <guid>https://dev.to/lrgranger/asking-for-help-1cl9</guid>
      <description>&lt;p&gt;&lt;em&gt;This is part 1 of &lt;a href="https://dev.to/lgranger/hack-your-brain-to-be-a-better-developer-with-science-1np8"&gt;Hack Your Brain to be a Better Developer&lt;/a&gt;, my talk from AdieCon 2020.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You’re so stuck on this ticket, and need to ask for help, but you’re been working on this ticket for far to long, should have asked that senior dev for help days ago.&lt;br&gt;
Imagine starting to stand up to go talk to that person. How does that feel in your body? Stomach? Shoulders? For me this is a tightness in the middle of my chest.&lt;br&gt;
Suddenly you realize that there’s one more thing you could try, one more thing to search the internet for, and you sit back down.&lt;br&gt;
How does that feel in your body? Stomach? Shoulders?&lt;br&gt;
Good, better, right?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Bad News friends. Avoiding asking for help is increasing your fear of asking for help.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Studies have shown that people with lower back injury who cope with pain, that is they tolerate some pain while recovering or doing physical therapy, &lt;a href="https://insights.ovid.com/spine/spne/2003/12/010/effect-fear-avoidance-based-physical-therapy/2/00007632"&gt;recover quicker and have less long-term pain&lt;/a&gt; than people who avoid pain. &lt;br&gt;
In medicine this is called &lt;a href="https://link.springer.com/article/10.1007%2Fs10865-006-9085-0"&gt;Fear-Avoidance&lt;/a&gt;, in psychology it’s called &lt;a href="https://emilykarpinski.blog/the-fear-avoidance-feedback-loop/"&gt;Avoidance Coping&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So the question is, how do we avoid avoiding?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Knowledge is Power - knowing that avoiding will make it worse is often enough to help us do what we need to do. "This is no fun, but I don’t want to see what happens if it gets worse."&lt;/li&gt;
&lt;li&gt;Get comfortable being uncomfortable - take the time to just sit with and really feel your discomfort. When you’ve sat with a feeling before it’s still uncomfortable, but now you know it won’t kill you.&lt;/li&gt;
&lt;li&gt;Lower the Barrier - acknowledge that you will avoid at some point, saying you’ll never do this again isn’t realistic. What can you do to make it easier to ask &lt;em&gt;after&lt;/em&gt; you’ve avoided?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;My trick for lowering the barrier is to write out my question, and then leave in the text box of the DM or chat room where I should be asking the question. I hit send yet though - this is where I let my self avoid. I set a timer for a short but reasonable amount of time, 5 to 15 minutes. When the timer goes off, I flip over to the DM or chat room and press send. I don't re-read what I wrote, just hit send. It’s scary, but it’s worth it, and now the question has been asked!&lt;/p&gt;

</description>
      <category>brainhack</category>
      <category>adiecon</category>
      <category>career</category>
      <category>fear</category>
    </item>
    <item>
      <title>Dev 101: Unicode</title>
      <dc:creator>Ray</dc:creator>
      <pubDate>Wed, 06 Mar 2019 06:06:07 +0000</pubDate>
      <link>https://dev.to/lrgranger/dev-101-unicode-20ah</link>
      <guid>https://dev.to/lrgranger/dev-101-unicode-20ah</guid>
      <description>&lt;h3&gt;
  
  
  What is it?
&lt;/h3&gt;

&lt;p&gt;Unicode is a standard of encoding sets and characters established by &lt;a href="https://unicode.org/" rel="noopener noreferrer"&gt;The Unicode Consortium&lt;/a&gt;. It is the most widely used standard, makes internationalization easier, and the reason we can have emoji 😍&lt;/p&gt;

&lt;h3&gt;
  
  
  Why do we need it?
&lt;/h3&gt;

&lt;p&gt;If you gather, display, transmit or otherwise use strings on the internet, desktop software, or mobile apps, then you need to encode them. Unicode maintains the most popular standard, UTF-8 &lt;a href="https://w3techs.com/technologies/cross/character_encoding/ranking" rel="noopener noreferrer"&gt;[1]&lt;/a&gt;. Understanding it is key to being a competent developer&lt;a href="https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/" rel="noopener noreferrer"&gt;[2]&lt;/a&gt;). &lt;em&gt;(It was also named one of the 12 Things Every Junior Developer Should Learn&lt;a href="https://dev.to/ben/12-things-every-junior-developer-should-learn-lco"&gt;[3]&lt;/a&gt;)&lt;/em&gt; Failing to understand and properly use it can result in those empty boxes, odd-looking question marks, and general frustration for you and whoever wants to use whatever it is you've coded up.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where did it come from?
&lt;/h3&gt;

&lt;p&gt;Let's back up and talk about where letters come from. Spoken language is a way we humans have figured out how to encode meaning in sound. If I say "Hello" you understand that I'm greeting you. Written language encodes those sounds, so when I write "World", you understand I'm talking about our planet and all of humanity. That is if you understand the spoken and written language I'm using.&lt;/p&gt;

&lt;p&gt;If you don't understand the language I'm using then my sounds or arrangement of symbols mean nothing. Computers don't understand human languages, they operate using binary. So if we want to use a computer to gather, display, transmit or otherwise understand a human language we have to give the instructions to it in binary.&lt;/p&gt;

&lt;p&gt;Encodings between binaries and characters make this possible. Different types of computers used to have different encodings and this worked just fine until we wanted to share information between computers. To do that we need to have an encoding standard that both computers share so that when a set of binaries is received the correct letters are displayed or save. In 1963 the American Standard Code for Information Interchange (ASCII) became that standard.&lt;/p&gt;

&lt;p&gt;ASCII has uppercase, lowercase, punctuation, symbols, and control codes. It lacked accented characters like è, non-American symbols like £ or any non-latin characters, but it got the job done. The ASCII set was 128 8-bit characters which left 128 characters free. This lead to a hybrid of pre-standard and standard encoding evolved. The first 128 characters were the ASCII standard, the last 128 bits used by different groups to encode different symbols and letters.&lt;/p&gt;

&lt;p&gt;Clashes between the way different machines used those last 128 characters happened, but it was good enough, and ASCII was the standard for three decades. Support for many more languages and their characters lead to the publication of Unicode in 1991. Unicode has evolved a bit over the years, from all 16-bit characters to the current standard, UTF-8, which is variable length encoding.&lt;/p&gt;

&lt;p&gt;In UTF-8 the first 128 bytes are just like ASCII. This means that the most commonly used characters on the internet still just use one byte per character. After that characters aren't limited to one byte, instead they can be two, three or four! Having the set of characters supported by ASCII take up the least amount of space in UTF-8 makes sense given that most of the internet uses UTF-8 &lt;a href="https://w3techs.com/technologies/cross/character_encoding/ranking" rel="noopener noreferrer"&gt;(93% of websites)&lt;/a&gt;, but it still gives us access to all the other characters that Unicode supports.&lt;/p&gt;

&lt;p&gt;So what doesn't Unicode do well? Most of the Unicode issues relate to Unicode providing single characters which are then displayed in different ways depending on their fonts. Characters that are different but look similar make &lt;a href="https://dev.to/logan/homographs-attack--5a1p"&gt;homograph attacks possible&lt;/a&gt;. Chinese, Japanese, &amp;amp; Korean all share a character set in Unicode, relying on different fonts to differentiate between the way each language displays those characters. In languages like Arabic and Vietnamese single characters are &lt;a href="https://www.k-international.com/blog/what-is-unicode" rel="noopener noreferrer"&gt;connected with ligatures to make glyphs&lt;/a&gt;, meaning that any given character might look different depending on what characters it's connected to (think cursive writing in English). For these languages Unicode and fonts aren't enough and secondary processing needs to be done to display them correctly. &lt;/p&gt;

&lt;p&gt;And last, but not least, the new international language, emoji, are even subject to this font issue. Emoji are a bit more consistent &lt;a href="https://slate.com/human-interest/2016/02/emojis-on-apple-google-samsung-can-look-very-different-from-each-other-video.html" rel="noopener noreferrer"&gt;than they used to be&lt;/a&gt;, but differences still exist between platforms. The most notable difference is the the dizzy face, which reads more like death on some platforms. &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%2Fpsp9yy2pe65zqrcd2sds.png" 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%2Fpsp9yy2pe65zqrcd2sds.png" alt="Seven yellow emoji faces in a row. They are images of the same unicode character, 😵, but they look different. The first has x eyes, the next three swirl eyes, the next x eyes, then swirl eyes, and finally x eyes again."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Summary&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You should care about character encoding becuase it is how we store and display language on computers.&lt;/li&gt;
&lt;li&gt;Unicode, and specifically UTF-8 is the most widly used character encoding on the internet.&lt;/li&gt;
&lt;li&gt;It uses variable length encoding to give us fast loading for what we use most, while also providing us with more than 137,000 other characters.&lt;/li&gt;
&lt;li&gt;Unicode, like ASCII before it, is character encoding only, relying on fonts for language diferentiation and emoji style.&lt;/li&gt;
&lt;li&gt;Emoji are 🎉 🙌🏼 💻 🔥 😍&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Discuss&lt;/em&gt;&lt;br&gt;
What's your fav emoji? What are your top used emoji? What do they mean to you/what are you trying to say with them when you use them?&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>unicode</category>
    </item>
    <item>
      <title>Design Reviews for Existing Features</title>
      <dc:creator>Ray</dc:creator>
      <pubDate>Tue, 22 Jan 2019 04:58:16 +0000</pubDate>
      <link>https://dev.to/lrgranger/design-reviews-for-existing-features-3j3g</link>
      <guid>https://dev.to/lrgranger/design-reviews-for-existing-features-3j3g</guid>
      <description>&lt;p&gt;Recently I've taken on the project of helping organize my team's design review process. Part of what we want to do is have "design reviews" for our existing features, the outcome of which would be a desgin review meeting about that feature as well as new documentation about that feature.&lt;/p&gt;

&lt;p&gt;Currently we're asking folks writing design reviews for exisiting features to answer the following questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;What is this feature?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What was it initially designed to do?&lt;/li&gt;
&lt;li&gt;What do customers expect it to do?&lt;/li&gt;
&lt;/ul&gt;


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

&lt;p&gt;How does it work?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What are the components of this feature?&lt;/li&gt;
&lt;li&gt;What technologies do they use?&lt;/li&gt;
&lt;li&gt;How do they work together to create the feature?&lt;/li&gt;
&lt;/ul&gt;


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

&lt;p&gt;How does your team maintain knowledge about your existing features? How do you go about figuring them out in the absence of updated (or any) documentation? Are there any other questions you would ask in a design review for an existing features?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>design</category>
      <category>legacycode</category>
    </item>
  </channel>
</rss>
