<?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: scoutchorton</title>
    <description>The latest articles on DEV Community by scoutchorton (@scoutchorton).</description>
    <link>https://dev.to/scoutchorton</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%2F195007%2F16232fdf-aa71-4510-bdb9-8bd2ac0ce8ec.png</url>
      <title>DEV Community: scoutchorton</title>
      <link>https://dev.to/scoutchorton</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/scoutchorton"/>
    <language>en</language>
    <item>
      <title>Oh, Give Me a Break!</title>
      <dc:creator>scoutchorton</dc:creator>
      <pubDate>Mon, 20 Jan 2020 02:10:21 +0000</pubDate>
      <link>https://dev.to/scoutchorton/oh-give-me-a-break-3lf0</link>
      <guid>https://dev.to/scoutchorton/oh-give-me-a-break-3lf0</guid>
      <description>&lt;p&gt;I felt like doing a quick post about the importance of taking a break from some projects. My English teachers would all like to slap me for that kind of intro, but I'm a computer science major, not writing.&lt;/p&gt;

&lt;p&gt;As someone who's been learning programming on my own (except for one semester of college) for 6 years and counting, I've started many projects and "given up" on many. Very few projects I actually start come to completion. Granted, that may not look good, but it's been the primary source for everything I've learned so far. I would not be where I am today without projects that I've given up on.&lt;/p&gt;

&lt;p&gt;Some of those lucky projects, I pick back up later. For instance, I have a Google Docs Addon (which I don't update since Google is annoying for submitting addons). I wanted to insert a line of text into the user's document, and have a portion in bold. At the time, I was in 10th grade, and was still somewhat new to programming. I was at the point where I knew I wanted to do programming as a career, but not at the point where I knew a whole lot of experience. It was sort of a tipping point. For the life of me, I wasn't able to decipher Google's documentation for Google Apps Script (GAS). Google documentation in general was like Greek to me, where I could go to w3schools and be comfortable.&lt;/p&gt;

&lt;p&gt;Around a year went by and I decided to check back in on the addon, and I was able to figure out what I needed to do! It turns out, GAS has builtin types for G Suite products which I didn't quite understand. For instance, Google Docs, has &lt;code&gt;paragraph&lt;/code&gt; types. You can 'new up' a paragraph, decide to set it's italics state, and insert it into the document. Coming from HTML, paragraphs are separate elements that should be separated by something like a line break (since you press enter in the document to create a new paragraph). Turns out, paragraphs can be merged! You can create a paragraph with certain styles, create a new paragraph with different styles, merge them, and bam!&lt;/p&gt;

&lt;p&gt;While that may seem somewhat simple for a seasoned programmer to comprehend, especially after &lt;em&gt;actually reading&lt;/em&gt; the documentation, I was only in my third/fourth year of programming and was learning everything on my own. I didn't have a teacher for GAS to teach me any of this, but it was on my own experience that I had to learn a lot of programming knowledge.&lt;/p&gt;

&lt;p&gt;That's just one example of me taking a break from a project and coming back better. Just now, I came back and redesigned a portion of the current project I'm working on, and it made me feel a lot better about my code. I can put this code to production and feel content about it.&lt;/p&gt;

&lt;p&gt;Long story short, I run my own Biblical blog and I want to move away from the fact that Google Firebase (my current database system) has limits. Even though I am nowhere near hitting the data cap (and potentially never will be), I find pleasure in knowing that I have complete control over my project. As I gain experience with technology, I am slowly able to move toward complete control, especially with hosting my own website. Static pages are cool, but you can do so much more when you have a backend that you have 100% control over.&lt;/p&gt;

&lt;p&gt;I am using MongoDB for my database, and Node.js for serving the page and as the backend. I decided when I went back to working on the upgrade that I wanted to use HTTP requests to get data about the posts. I could generate the site's data before sending it to the user, but for some reason I don't like that idea. (Would dynamically serving the page technically not be as secure, or does it matter unless evidence of my backend is leaked through the responses?) Eventually, I changed my mind and went to Socket.io, which I found when making (a now abandoned) real time multiplayer Pong game using Node.js, Express, and Socket.io. To make a long story short, I used the design of the original HTTP request code and applied it to Socket.io which some more complexity due to how I designed my other bits of code, but still was able to decrease the lines of code used.&lt;/p&gt;

&lt;p&gt;I've heard that it's not necessarily better to have less lines of code, but I think it can depend on the situation. A student (who was new to programming) in my programming class this past semester wrote some code that sort of drove me insane. Granted, this was his first time writing a larger program, but as someone who has some experience, it still got to me. He was using quite a bit of if statements, and was copy-pasting a lot of code (and seemed quite proud of it). To me, there are things called variables and functions which are pretty nice, which allow for a programmer to not repeat a lot of code. He had multiple modes to a simple text game he was designing, and copied the logic for each mode over. I would have had a variable for the mode, and use that for changing calculations later in the game, thus saving lots of code. Also, if he changed the logic in one part, more copy-pasting had to be done. In this instance, I think that less code would be better and allows for a more logical flow to the code rather than a verbose flow of thought. Granted, this student has never really wrote code before, so I put my rant aside and applaud him for his efforts.&lt;/p&gt;

&lt;p&gt;A simple case of when less code is better is obfuscated JavaScript. Nobody wants to see a program with  10,000 lines of code squished into one line while already being obfuscated. Thank the Lord for Chrome's DevTools which has Pretty Print. That's just unnecessary and crazy to have a one-liner program for something as complex as 10,000 lines.&lt;/p&gt;

&lt;p&gt;While I've jabbered on about different things, back to the Biblical blog project. I went from 44 lines of code with my HTTP request method to 31 lines of code with my Socket.io method. Even though 13 lines of code isn't really all too much and probably will free the processor for like 500 milliseconds, I still feel a lot better with a new system in place, which compacted the earlier system. Also, the new system is "more secure", so it's an upgrade in space and also security.&lt;/p&gt;

&lt;p&gt;If you're stuck in a project, or just want a "second wind" on it, don't be afraid to take a break. Granted, not every project has time for a year long break like I took for my Google Apps Script addon, but even just taking a quick moment to take a walk, binge watch LGR or another related YouTuber, or even just get something to eat could be enough to help relax the brain to catch new inspiration. If the project has many parts like mine, switch between parts every so often. My project has frontend code and backend code to be worked on, so if I'm deep into backend code and getting frustrated, then maybe switch to designing an interface.&lt;/p&gt;

&lt;p&gt;Being burned out sucks, and the only remedy for being burned out is to have some new oil to burn. Take a break, refresh, reload, recharge, and don't be afraid to relax if you need it. Recoding and revision isn't an enemy, but can help in great ways on the end result. Just make sure to commit!&lt;/p&gt;

&lt;p&gt;God Bless,&lt;br&gt;
scoutchorton&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>break</category>
      <category>issues</category>
    </item>
    <item>
      <title>Introduction: Creating Sudoku Using eZ80 Assembly (While Learning ASM) [Puzzled Assembly #0]</title>
      <dc:creator>scoutchorton</dc:creator>
      <pubDate>Sun, 20 Oct 2019 22:39:54 +0000</pubDate>
      <link>https://dev.to/scoutchorton/introduction-creating-sudoku-using-ez80-assembly-while-learning-asm-puzzled-assembly-0-ano</link>
      <guid>https://dev.to/scoutchorton/introduction-creating-sudoku-using-ez80-assembly-while-learning-asm-puzzled-assembly-0-ano</guid>
      <description>&lt;p&gt;Hello internet! My name is scoutchorton, and I am a proud, self-taught programmer of almost six years (as of early December). Here's the path I took to self-teach programming:&lt;/p&gt;

&lt;h4&gt;
  
  
  7th Grade (2013-2014)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;ProcessingJS/JavaScript on Khan Academy (which is not strictly JavaScript nor is actual ProcessingJS)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  8th Grade (2014-2015)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Python 2&lt;/li&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;CSS (little knowledge)&lt;/li&gt;
&lt;li&gt;JavaScript (little knowledge in a DOM environment)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9th Grade (2015-2016)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;li&gt;Started with Linux (Ubuntu 12.04/14.04, Raspbian for my Raspberry Pi 2 B+)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10th Grade (2016-2017)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Google Apps Script (basically an API for JavaScript to work with GSuite products like Google Drive)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  11th Grade (2017-2018)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Google Firebase (a Google product which offers database services, which has limits but is free, and has a JavaScript API for web applications)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  12th Grade (2018-2019)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;eZ80 Assembly (both using an editor and entering raw hexadecimal instructions to my TI 84+ CE)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  College (present)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Powershell&lt;/li&gt;
&lt;li&gt;Python 3 (basically using Python 2 knowledge and ironing out different errors as I go)&lt;/li&gt;
&lt;li&gt;More eZ80 Assembly, Python 2, and HTML/CSS/JavaScript/Node.js&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have a ton of all over the place knowledge. Not to mention, I also learned some Lua, Bash, and TI Basic while throwing in some electronics knowledge over the last summer. I'm literally all over the place, but I love it. Computers are pretty much my life, as with most people in the 21st century, but in a deep understanding and desire to know how they work. I honestly wish more people shared my same desire to learn.&lt;/p&gt;

&lt;p&gt;Over the last two to four years, I have developed the skill of reading documentation. While it has been a rough journey (thanks Google), it has been an essential step and skill to learn.&lt;/p&gt;

&lt;p&gt;The way I have been focusing my learning has been through many, many, many projects that don't normally become complete. Despite not finishing, I have learned so much. I recently wanted to get into eZ80 asm (assembly) for my TI 84+ CE. I was going to try to hijack Texas Instrument's OS (operating system), but it was becoming too much of a project. I was going to make a disassembler to help parse and understand the not-so-documented code to aid in the project. If you know the TI 83/84 line of graphing calculators, they have a catalog which shows different tokens you can use within the OS. We used a couple of these in my Calculus 2 class, and I was getting irritated because I would have to scroll through large sections to get to the function I needed. Since I am a programmer, let's solve that. Create an assembly program to hijack the catalog code and make a favorite system! Problem is, I didn't know where the code for the catalog is, and I wasn't sorting through the disassembly in the amazing emulator, CEmu, just to find the code. That project got a little out of hand (let me tell you, parsing PDF's with Python more difficult than you'd imagine), so I switched to a theoretically easier project.&lt;/p&gt;

&lt;p&gt;I wanted to make Sudoku for the TI 84+ CE in eZ80 asm. Now, this project probably already exists by someone else, but this is &lt;em&gt;my&lt;/em&gt; version. (I feel like this is something only a programmer could understand.) I have started working on the project, but I really wanted to blog and document my journey on this project. It will give me motivation to discover, learn, teach, reach out, and keep going until the project is complete.&lt;/p&gt;

&lt;p&gt;I will publish in this series, and will try to include code examples and hopefully explain how eZ80 asm works. I would hope someone reading this would have some sort of knowledge about eZ80 asm, asm in general, and maybe even electronics (to understand things like a register or CPU cycles).&lt;/p&gt;

&lt;p&gt;This has been an introduction to me and my project, so I hope you are interested in my progress to a (hopefully) fun and working game as a result! Stay tuned!&lt;/p&gt;




&lt;p&gt;God Bless,&lt;br&gt;
scoutchorton&lt;/p&gt;

</description>
      <category>assembly</category>
      <category>sudoku</category>
      <category>calculator</category>
    </item>
  </channel>
</rss>
