<?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: Jonas Jason</title>
    <description>The latest articles on DEV Community by Jonas Jason (@jonasjason).</description>
    <link>https://dev.to/jonasjason</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%2F565466%2F6c499359-0bc6-45d9-9a9d-1a9c5097c7df.png</url>
      <title>DEV Community: Jonas Jason</title>
      <link>https://dev.to/jonasjason</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jonasjason"/>
    <language>en</language>
    <item>
      <title>What I Learned From a Week of Code Walkthroughs</title>
      <dc:creator>Jonas Jason</dc:creator>
      <pubDate>Tue, 27 Apr 2021 19:03:13 +0000</pubDate>
      <link>https://dev.to/jonasjason/what-i-learned-from-a-week-of-code-walkthroughs-134k</link>
      <guid>https://dev.to/jonasjason/what-i-learned-from-a-week-of-code-walkthroughs-134k</guid>
      <description>&lt;h2&gt;
  
  
  What is a Code Walkthrough?
&lt;/h2&gt;

&lt;p&gt;A code walkthrough is basically just as it sounds; someone leading you through the process behind how a project or a particular aspect of that project functions.&lt;/p&gt;

&lt;p&gt;In my case, it was my professor walking us through his passion project:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/elmsln"&gt;
        elmsln
      &lt;/a&gt; / &lt;a href="https://github.com/elmsln/lrnwebcomponents"&gt;
        lrnwebcomponents
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      @lrnwebcomponents Monorepo for NPM based element definitions
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;From these walkthroughs, I learned 3 important lessons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don't worry so much about understanding everything&lt;/li&gt;
&lt;li&gt;Know what you want to get out of it beforehand&lt;/li&gt;
&lt;li&gt;Ask questions!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Don't worry so much about understanding everything
&lt;/h2&gt;

&lt;p&gt;You likely won't. This is okay. Just try and focus on what is being discussed and not necessarily all of the details. This key point goes hand-in-hand with the next one in that you should know what you want to get out of the walkthrough. &lt;/p&gt;

&lt;p&gt;Rather than kicking yourself mentally for not keeping up, just continue to participate in the walkthrough and isolate your focus to smaller segments of the code. Ask yourself: &lt;em&gt;"Do I understand the specific block of code that I am looking at?"&lt;/em&gt; or &lt;em&gt;"Can I see how this might interact with other parts of the code, regardless of what those use cases might be?"&lt;/em&gt; or my favorite; &lt;em&gt;"Can I think of an example of where I could use this technique or a similar pattern?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Those questions will be more meaningful than trying to understand &lt;strong&gt;exact&lt;/strong&gt; details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Know what you want to get out of it beforehand
&lt;/h2&gt;

&lt;p&gt;This is my personal favorite tip. On the first day of the walkthrough, I had no idea of what was going on and no real understanding of how the project worked. &lt;/p&gt;

&lt;p&gt;After realizing that this wasn't going to benefit me in any way, I changed my frame of mind. Instead of trying to manifest some deep understanding of the project, I made it my goal to learn how to become a better front-end developer. With this mindset, I began picking up little tips and techniques... and I mean &lt;strong&gt;little&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How and why to define a URL so that it works for both HTTP and HTTPS in testing environments (&lt;code&gt;"//www.example.com/testing.js"&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Practical examples of how to use the &lt;em&gt;"spread operator"&lt;/em&gt; (&lt;code&gt;...params&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;How to read a &lt;em&gt;"conditional (ternary) operator"&lt;/em&gt; (&lt;code&gt;condition ? value if true : value if false&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Many lessons about best practices and standards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There were some other things as well, but my point is this; be specific about what you want to get out of it. Do I remember the exact use cases for each of the aforementioned bullet points? &lt;strong&gt;No.&lt;/strong&gt; Am I ready to contribute to the core functions of the project? &lt;strong&gt;No!&lt;/strong&gt; But that is not the point. My goal was to come out on the other side as a better front-end developer, and by picking up the knowledge that I did, I'd say that I achieved that goal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ask Questions
&lt;/h2&gt;

&lt;p&gt;This is super important. This can be the difference between you sitting through an hour-long lecture on a topic that you have no clue as to what is going on &lt;strong&gt;or&lt;/strong&gt; you learning a hell of a lot more and being engaged in the conversation. It can be challenging at first to know what kinds of questions to ask or maybe you might even be embarrassed to ask them, but it is likely that someone else will be thinking the &lt;strong&gt;same question&lt;/strong&gt; and that the presenter is more than happy to both receive a question and explain their answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Don't be upset that you aren't understanding everything that is being shown. Each participant will have a different level of understanding of the project being walked through. To maximize the value of the walkthrough, set a specific goal for yourself; whether that be directly or indirectly related to the project in focus. And lastly, your questions will be appreciated -- and not just by yourself.&lt;/p&gt;

&lt;p&gt;Code walkthroughs can be a very valuable insight into a developer's mind. Talking to someone about something they've spent time on and dedicated themselves to is a great experience, so try and make the most of it! I hope that you've found some value within this post and if you have any of your own tips, be sure to leave a comment down below!&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How To Secure Your Zoom Meeting</title>
      <dc:creator>Jonas Jason</dc:creator>
      <pubDate>Tue, 13 Apr 2021 21:06:04 +0000</pubDate>
      <link>https://dev.to/jonasjason/how-to-secure-your-zoom-meeting-4bad</link>
      <guid>https://dev.to/jonasjason/how-to-secure-your-zoom-meeting-4bad</guid>
      <description>&lt;h2&gt;
  
  
  Know the Lingo
&lt;/h2&gt;

&lt;p&gt;You may have heard about &lt;strong&gt;&lt;em&gt;Zoom bombing&lt;/em&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;em&gt;Zoom raiding&lt;/em&gt;&lt;/strong&gt;, which;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;refers to the unwanted, disruptive intrusion, generally by Internet trolls, into a video-conference call (&lt;a href="https://en.wikipedia.org/wiki/Zoombombing"&gt;Wikipedia&lt;/a&gt;).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Zoom bombing can happen to unsecured, unprotected Zoom meetings. The unwanted visitors will relentlessly torment any &lt;em&gt;actual&lt;/em&gt; participants, thus rendering the meeting useless.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what should I do?
&lt;/h2&gt;

&lt;p&gt;Well, there's lots of ways to secure your meeting. Let's take a look at what security features Zoom has to offer when setting up a meeting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Don't use your Personal Meeting ID for public meetings
&lt;/h3&gt;

&lt;p&gt;This might not seem obvious on the surface. If you are going to send out a meeting invite that others will share, &lt;strong&gt;don't&lt;/strong&gt; use this one. Your Personal Meeting ID (PMI) does not change &lt;em&gt;unless&lt;/em&gt; you change it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Instead, schedule a new meeting
&lt;/h3&gt;

&lt;p&gt;Click on the &lt;strong&gt;+&lt;/strong&gt; icon, then select &lt;strong&gt;Schedule Meeting&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0DneWdY5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8yx21ext1dg0ojs0ed5s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0DneWdY5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8yx21ext1dg0ojs0ed5s.png" alt="schedule meeting"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, you will be able to set up the options for your meeting:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FyEWdqn_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6i6a3cv6s1dz856umhoq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FyEWdqn_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6i6a3cv6s1dz856umhoq.png" alt="options"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On this page, you are going to want to enable the password field, and use your own unique password. Another tip is to make sure to enable the &lt;strong&gt;waiting room&lt;/strong&gt;. This will ensure that any guests (either wanted or unwanted) don't just join straight into the main meeting room.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advanced Options
&lt;/h3&gt;

&lt;p&gt;Down at the bottom, if you click the &lt;strong&gt;Advanced Options&lt;/strong&gt; dropdown, you are able to enable a few more security features:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PZ-kbo1p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yfygvo96guup228wzn9j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PZ-kbo1p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yfygvo96guup228wzn9j.png" alt="advanced"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd suggest &lt;strong&gt;Mute participants upon entry&lt;/strong&gt; and if possible for your organization, &lt;strong&gt;Only authenticated users can join&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  In-Meeting Security
&lt;/h3&gt;

&lt;p&gt;Once the meeting has started, there are even more security features for you to choose from. These can be found by clicking on the &lt;strong&gt;Security&lt;/strong&gt; shield on the bottom. Options include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lock Meeting (does not let anyone else inside of the meeting)&lt;/li&gt;
&lt;li&gt;Enable Waiting Room (if you haven't already)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and options to limit participants' ability to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Share their screen&lt;/li&gt;
&lt;li&gt;Rename themselves&lt;/li&gt;
&lt;li&gt;Unmute themselves&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iRkym-N4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cd53felzk9f8s64gbewy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iRkym-N4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cd53felzk9f8s64gbewy.png" alt="more security"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are the basics to securing your Zoom meeting. There are far more options if you really want to limit other features within the meeting, but I won't get into every one. Be sure to consult &lt;a href="https://zoom.us/"&gt;Zoom's own website&lt;/a&gt; if you are interested in finding out more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://zoom.us/docs/doc/Securing%20Your%20Zoom%20Meetings.pdf"&gt;Best Practices for Securing Your Zoom Meetings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://zoom.us/trust/security"&gt;Zoom Security&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.zoom.us/keep-uninvited-guests-out-of-your-zoom-event/"&gt;How to Keep Uninvited Guests Out of Your Zoom Event&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>zoom</category>
    </item>
    <item>
      <title>Monolithic VS Microservice Architecture</title>
      <dc:creator>Jonas Jason</dc:creator>
      <pubDate>Sat, 10 Apr 2021 12:29:03 +0000</pubDate>
      <link>https://dev.to/jonasjason/monolithic-vs-microservice-architecture-2jp4</link>
      <guid>https://dev.to/jonasjason/monolithic-vs-microservice-architecture-2jp4</guid>
      <description>&lt;p&gt;The web is changing... as it always does. But this time, I will tell you how microservices are contributing to that change. To begin, we should first know what the old standard of &lt;strong&gt;&lt;em&gt;monolithic architecture&lt;/em&gt;&lt;/strong&gt; actually is. I found this helpful introduction on &lt;a href="https://whatis.techtarget.com/"&gt;whatis&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Monolithic architecture is the traditional unified model for the design of a software program. Monolithic, in this context, means composed all in one piece. According to the Cambridge dictionary, the adjective monolithic also means both too large and unable to be changed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;-- According to &lt;a href="https://whatis.techtarget.com/definition/monolithic-architecture"&gt;Ivy Wingmore&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's focus on that last sentence about being unable to be changed. In the case of software projects, this isn't actually the case. However, it does indicate the difficulty of which implementing change can be. Any change to one component has the capability of breaking the entire system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Microservices
&lt;/h3&gt;

&lt;p&gt;Microservice architecture is an architectural style that structures an application as a collection of microservices where communication between microservices is often performed using API calls.&lt;/p&gt;

&lt;p&gt;This image serves as an excellent example:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Cs9jjUNO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bphcrbm4f6budvwvejqw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Cs9jjUNO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bphcrbm4f6budvwvejqw.png" alt="mediamore microservices"&gt;&lt;/a&gt;&lt;br&gt;
-- &lt;a href="https://www.edureka.co/blog/microservices-tutorial-with-example"&gt;Sahiti Kappagantula&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mediamore is an entertainment company, using different microservices to power their app. They break it down into these services:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;most liked&lt;/li&gt;
&lt;li&gt;user info&lt;/li&gt;
&lt;li&gt;video uploading&lt;/li&gt;
&lt;li&gt;most trending&lt;/li&gt;
&lt;li&gt;content&lt;/li&gt;
&lt;li&gt;recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and many more that aren't featured in this graphic.&lt;/p&gt;
&lt;h3&gt;
  
  
  Making Changes
&lt;/h3&gt;

&lt;p&gt;Each microservice is likely maintained by its very own team (being a larger company). If the team working on video recommendations makes a change to their service, it only affects that one service. In terms of reliability, this means that a breaking change would only break the video recommendations. Users would still be able to browse videos, upload, comment, and everything else they'd normally do.&lt;/p&gt;

&lt;p&gt;While microservices certainly are flexible and resilient, the more you have the tougher it can get to manage all of them.&lt;/p&gt;

&lt;p&gt;This can definitely get a little convoluted if the microservices are obnoxiously fragmented or illogically compartmentalized. In a hilariously overexaggerated example:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/y8OnoxKotPQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Summary:
&lt;/h3&gt;

&lt;p&gt;Microservices are the new gold standard. They are more reliable and easier to change than typical monolithic projects. However, they aren't necessary in every case. Be sure to think about whether or not they're right for your project.&lt;/p&gt;

&lt;p&gt;I made a video walking you through deploying a Node.js To-do app on Docker. I also elaborate a little further on microservice architecture. Be sure to check it out:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/U_LJWsTo5kg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>microservices</category>
      <category>docker</category>
    </item>
    <item>
      <title>The Case For Web Components</title>
      <dc:creator>Jonas Jason</dc:creator>
      <pubDate>Mon, 29 Mar 2021 01:46:17 +0000</pubDate>
      <link>https://dev.to/jonasjason/the-case-for-web-components-3gb</link>
      <guid>https://dev.to/jonasjason/the-case-for-web-components-3gb</guid>
      <description>&lt;h1&gt;
  
  
  What are web components?
&lt;/h1&gt;

&lt;p&gt;Web components are, by definition; &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"a set of web platform APIs that allow you to create new custom, reusable, encapsulated HTML tags to use in web pages and web apps"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;-&lt;a href="https://www.webcomponents.org/introduction"&gt;Webcomponents.org introduction&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In terms of business, this means that the development team could create each &lt;em&gt;component&lt;/em&gt; of a website once and then anyone else who needs to use it can do so with ease.&lt;/p&gt;

&lt;p&gt;For example, let's say we are building a site for an organization. This organization prioritizes &lt;strong&gt;consistency&lt;/strong&gt; (as it should) and therefore wants certain components of their websites to be uniform; the header, footer, menus, and any other reusable components.&lt;/p&gt;

&lt;p&gt;Brigham Young University has a great example of what an organization's codebase should look like &lt;a href="https://webcomponents.byu.edu/index.html"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With each component being built and modified as needed, websites can be set up and deployed exponentially faster and cheaper than traditional methods and short-lived JS frameworks. &lt;strong&gt;Web components are here to stay&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rfo5nR7A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jsrqaz9h8zb0tfj2gxhk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rfo5nR7A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jsrqaz9h8zb0tfj2gxhk.png" alt="major browsers support"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;-&lt;a href="https://www.webcomponents.org"&gt;Webcomponents.org&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you're looking for a more in-depth look into getting started with web components, check out &lt;a href="https://dev.to/bennypowers/lets-build-web-components-part-1-the-standards-3e85"&gt;this 8 part blog series&lt;/a&gt; by Benny Powers.&lt;/p&gt;

&lt;h1&gt;
  
  
  So, who's using them?
&lt;/h1&gt;

&lt;h3&gt;
  
  
  As mentioned before, &lt;strong&gt;Brigham Young University:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yHPh4nPw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sbvspcobvaeumrmx5p90.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yHPh4nPw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sbvspcobvaeumrmx5p90.png" alt="BYU's header"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XvRYuTtn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eyhcj8jzqosw1q8pksku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XvRYuTtn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eyhcj8jzqosw1q8pksku.png" alt="BYU's header code"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Adobe
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://opensource.adobe.com/spectrum-web-components/"&gt;Adobe&lt;/a&gt; has been a big proponent in expanding the open source space for web components. They even have a playground space for you to try out:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nFVgtmYz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/djapm1issbbc8948kx6r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nFVgtmYz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/djapm1issbbc8948kx6r.png" alt="Adobe's web component playground"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;-&lt;a href="https://opensource.adobe.com/spectrum-web-components/storybook/index.html?path=/story/accordion--default"&gt;Adobe web components playground&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  YouTube
&lt;/h3&gt;

&lt;p&gt;YouTube uses tons of web components throughout their site. This is thanks in part to Google being a huge driving force in making web components the new standard.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pxHWygFq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p0xcuu5984qz3j3x8nc9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pxHWygFq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p0xcuu5984qz3j3x8nc9.png" alt="YouTube"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to watch a video explanation, I did make one, but bare with me as I was feeling under the weather:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/PDh93Xu01nU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>computerscience</category>
      <category>a11y</category>
    </item>
    <item>
      <title>How To Host Your Own GitLab Server</title>
      <dc:creator>Jonas Jason</dc:creator>
      <pubDate>Sun, 21 Feb 2021 19:10:24 +0000</pubDate>
      <link>https://dev.to/jonasjason/how-to-host-your-own-gitlab-server-1fag</link>
      <guid>https://dev.to/jonasjason/how-to-host-your-own-gitlab-server-1fag</guid>
      <description>&lt;h2&gt;
  
  
  Why GitLab?
&lt;/h2&gt;

&lt;p&gt;Unlike GitHub, GitLab is more optimized for setting up controlled environments. It's similar to GitHub Enterprise. This includes organizational sign-in, more customization capabilities, and better CI/CD.&lt;/p&gt;

&lt;p&gt;GitHub is great for personal projects and even team collaboration. GitHub thrives on its amazing community. But if you're looking for something with better change tracking and management tools, GitLab is the way to go.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;I used &lt;a href="https://reclaim.cloud/"&gt;Reclaim Cloud&lt;/a&gt; for this tutorial. This is not the only option, but Reclaim is a good choice for hosting since they only charge you for what you use.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DMrUCMe9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/scewoexv7jzqmbt741cn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DMrUCMe9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/scewoexv7jzqmbt741cn.png" alt="pricing"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  First Things First
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Head over to the Reclaim Cloud &lt;a href="https://reclaim.cloud/applications/"&gt;applications page&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Scroll down until you see &lt;strong&gt;DevOps Lab - GitLab Server&lt;/strong&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1vVjyqaK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dzbef925jsfiypw88h4s.png" alt="GitLab Server"&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;&lt;em&gt;Install&lt;/em&gt;&lt;/strong&gt; and enter your email. Make sure to check your junk folder just in case the confirmation email goes there.&lt;/li&gt;
&lt;li&gt;Click on the &lt;strong&gt;&lt;em&gt;DEPLOY NOW&lt;/em&gt;&lt;/strong&gt; button in the email. This will take you to the environment setup.&lt;/li&gt;
&lt;li&gt;Feel free to change your Environment name, Display Name, and Region if needed. Then click &lt;strong&gt;&lt;em&gt;Install&lt;/em&gt;&lt;/strong&gt; &lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: You will need to provide payment information as they are providing the server hosting.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;This will take a while&lt;/strong&gt; - but you can let that get set up and check your email to be notified whenever it's finished.&lt;/p&gt;
&lt;h2&gt;
  
  
  Configuration
&lt;/h2&gt;

&lt;p&gt;Once your environment is set up and ready to go, you can hover over it and click the &lt;strong&gt;&lt;em&gt;Change Environment Topology&lt;/em&gt;&lt;/strong&gt; button. It's the green cog with squares underneath:&lt;br&gt;
 &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ckvv4l23--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/klo8tfyvkl0u2mvjyojw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ckvv4l23--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/klo8tfyvkl0u2mvjyojw.png" alt="cog"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6Rk2IqWI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/emtbs4gu89rf8qb4uakp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Rk2IqWI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/emtbs4gu89rf8qb4uakp.png" alt="topology"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This page allows you to allocate resources to your server. I bumped mine up to 10 cloudlets minimum just go give myself a little more breathing room. Depending on the size of your organization, you may need more or less.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w1zYKVHB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oq91qspc1z8g9hfdd01i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w1zYKVHB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oq91qspc1z8g9hfdd01i.png" alt="cloudlets"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Start Using
&lt;/h2&gt;

&lt;p&gt;After you deploy, you'll get an email with the username and password for the root user, which allows you to configure the instance even further.&lt;/p&gt;

&lt;p&gt;If you want to import your existing GitHub repos, first sign in. Then on the main page at the top right you can choose &lt;strong&gt;&lt;em&gt;New project&lt;/em&gt;&lt;/strong&gt; which will take you to this screen:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xkizl-z7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/72poxztkxan8febm4ifk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xkizl-z7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/72poxztkxan8febm4ifk.png" alt="new project"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;&lt;em&gt;Import project&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;&lt;em&gt;GitHub&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you'll need to go to your GitHub &lt;a href="https://github.com/settings/tokens"&gt;profile settings&lt;/a&gt; and &lt;strong&gt;generate a new token&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Be sure to check the box that gives the token full access to your &lt;strong&gt;repos&lt;/strong&gt;:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--seqiD_ik--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mng4wbc7vpngcqcy2diu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--seqiD_ik--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mng4wbc7vpngcqcy2diu.png" alt="repo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate the token, copy it&lt;/li&gt;
&lt;li&gt;Switch back to your GitLab &lt;strong&gt;Authentication&lt;/strong&gt; page to use it&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;&lt;em&gt;Authenticate&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Import your GitHub repos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now all of your projects are backed up on your very own GitLab instance!&lt;/p&gt;
&lt;h2&gt;
  
  
  As a recap, check out this video:
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/r0sUrnSAfoA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>git</category>
      <category>gitlab</category>
    </item>
    <item>
      <title>Accessibility: Attention to Details</title>
      <dc:creator>Jonas Jason</dc:creator>
      <pubDate>Mon, 15 Feb 2021 01:15:08 +0000</pubDate>
      <link>https://dev.to/jonasjason/accessibility-attention-to-details-4e11</link>
      <guid>https://dev.to/jonasjason/accessibility-attention-to-details-4e11</guid>
      <description>&lt;h2&gt;
  
  
  What is a11y?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;a11y&lt;/strong&gt; is an abbreviation for "&lt;em&gt;accessibility&lt;/em&gt;" (a + 11 letters + y). The purpose of accessibility is to ensure as many people as possible are able to utilize a product or service. In the digital landscape, that means making websites that are able to be navigated by those with some disability or impairment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's take a look at a real world example
&lt;/h2&gt;

&lt;p&gt;The Governor's Pub; one of my favorite places to eat around State College, has a website. How does it stack up in terms of a11y? Let's see:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yugYs4tD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7kw6fp7xcnsleepzbpcv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yugYs4tD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7kw6fp7xcnsleepzbpcv.png" alt="picture of The Governor's Pub webdev results"&gt;&lt;/a&gt;&lt;br&gt;
Here's a screenshot of a &lt;a href="https://googlechrome.github.io/lighthouse/viewer/?psiurl=https%3A%2F%2Fyallahtacostatecollege.com%2F&amp;amp;strategy=mobile&amp;amp;category=performance&amp;amp;category=accessibility&amp;amp;category=best-practices&amp;amp;category=seo&amp;amp;category=pwa&amp;amp;utm_source=lh-chrome-ext#performance"&gt;lighthouse&lt;/a&gt; report, which grades a website based on different categories relating to accessibility.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Not too bad, right? It shows a score of 82 right there.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Well, not quite. While on the surface we interpret the term "&lt;em&gt;disability&lt;/em&gt;" as someone with some physical impairment such as being blind or deaf, when we're talking about the internet, that term extends to those with slow internet connections or those using nontraditional devices.&lt;/p&gt;

&lt;p&gt;When loading a website, having a slow connection &lt;strong&gt;is&lt;/strong&gt; a disability. So how can we help that? One suggestion given in the report to help performance issues is to serve images in different formats that are better with compression.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8cvin-2R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/19tsxzffr6muyca2ztna.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8cvin-2R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/19tsxzffr6muyca2ztna.png" alt="Image depicting the expected time savings by using different image types"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V6a2JQ-Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jmo8ef9rqbigoutrlbgb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V6a2JQ-Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jmo8ef9rqbigoutrlbgb.png" alt="Image showing details on time savings of images"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Unlabeled Links
&lt;/h2&gt;

&lt;p&gt;One of the greatest tools for blind and visually impaired computer users is the &lt;strong&gt;screen narrator&lt;/strong&gt;; which reads all of the text that appears on screen. However, not all elements of a website can be read verbatim. In our case we can see that there is an improperly labeled link. Here is a code snippet of a button that says "&lt;em&gt;Order Online&lt;/em&gt;" which sends you to another service where you can order food:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;img src="/uploads/2/5/2/6/25262348/editor/online-900.jpg?1586087123" alt="Picture" style="width:auto;max-width:100%"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When using screen narrator, it says "&lt;em&gt;Picture&lt;/em&gt;" rather than "&lt;em&gt;link to order online&lt;/em&gt;" or something more useful and informational. To fix this, links should contain &lt;strong&gt;alt text&lt;/strong&gt;. Here is a more helpful link:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;img src="/uploads/2/5/2/6/25262348/editor/online-900.jpg?1586087123" alt="Link to order online" style="width:auto;max-width:100%"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Navigation Trap
&lt;/h2&gt;

&lt;p&gt;One of the biggest issues I found during my audit of this site is that the embedded Facebook content can trap a user inside of it almost indefinitely. &lt;/p&gt;

&lt;p&gt;What do I mean by that? Well, when a blind user is on a website, they use the tab key to navigate and listen to what the screen narrator is telling them is on the page. Think of it like listening to the options given by a call center robot. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"For more options, press 9"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now imagine if that robot started reading every single sub-option before ever getting to the main option that you need. That's pretty much what's happening with this. The worst part about it though, is that it is blocking the "&lt;em&gt;contact us&lt;/em&gt;" link at the bottom of the page. When making reservations to eat out, this can be an especially useful link for a blind person. &lt;/p&gt;

&lt;p&gt;An easy workaround for this would be to simply reorder the page and move the &lt;em&gt;contact&lt;/em&gt; button up higher, at least above the Facebook content.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Now?
&lt;/h2&gt;

&lt;p&gt;It's our responsibility to assure that our services are usable by as many people as possible. Beyond just being kind, these people are prospective patrons! It benefits us &lt;strong&gt;all&lt;/strong&gt; to work together.&lt;/p&gt;

&lt;p&gt;That's about all I have to say for this blog post. Be kind, be accessible, and stay safe.&lt;/p&gt;

&lt;p&gt;P.S. I also made a &lt;a href="https://youtu.be/EMbJsHTUqWw"&gt;video&lt;/a&gt; about it.&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/EMbJsHTUqWw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>webdev</category>
      <category>lighthouse</category>
    </item>
    <item>
      <title>Intro to Vue.js</title>
      <dc:creator>Jonas Jason</dc:creator>
      <pubDate>Wed, 10 Feb 2021 18:38:18 +0000</pubDate>
      <link>https://dev.to/jonasjason/intro-to-vue-js-220b</link>
      <guid>https://dev.to/jonasjason/intro-to-vue-js-220b</guid>
      <description>&lt;h2&gt;
  
  
  What is Vue?
&lt;/h2&gt;

&lt;p&gt;Well, completely stolen from their website, Vue is defined as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Vue (pronounced /vjuː/, like view) is a progressive framework for building user interfaces. Unlike other monolithic frameworks, Vue is designed from the ground up to be incrementally adoptable. The core library is focused on the view layer only, and is easy to pick up and integrate with other libraries or existing projects. On the other hand, Vue is also perfectly capable of powering sophisticated Single-Page Applications when used in combination with modern tooling and supporting libraries.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  That's helpful... NOT
&lt;/h2&gt;

&lt;p&gt;I know. It's a little wordy. But to help break this definition down a little bit, you should first know what a framework is.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what is a framework?
&lt;/h2&gt;

&lt;p&gt;A framework is a building block for making websites or web apps. Think of it like somewhat of a template to use. There's a library of predefined functions that you can take advantage of rather than creating everything from scratch.&lt;/p&gt;

&lt;p&gt;My favorite analogy that I've heard is; if you're building a car, you're best off buying a wheel rather than try and reinvent it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do you have a super digestible and intelligently explained video that I can just watch instead?
&lt;/h2&gt;

&lt;p&gt;Funny you should ask that. I actually do. I made &lt;a href="https://youtu.be/8U40thKt1xA"&gt;this video&lt;/a&gt; demonstrating how I used Vue to build off of my resume that I made using HTML and CSS. If you want to know how I made that, you can watch &lt;a href="https://www.youtube.com/watch?v=DNbNcJ9LqnI&amp;amp;ab_channel=JonasJason"&gt;this video&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vue</category>
    </item>
    <item>
      <title>Who am I?</title>
      <dc:creator>Jonas Jason</dc:creator>
      <pubDate>Fri, 22 Jan 2021 23:32:53 +0000</pubDate>
      <link>https://dev.to/jonasjason/who-am-i-23nf</link>
      <guid>https://dev.to/jonasjason/who-am-i-23nf</guid>
      <description>&lt;h4&gt;
  
  
  Hello World
&lt;/h4&gt;

&lt;p&gt;My name is Jonas and I'm a junior at The Pennsylvania State University, pursuing my B.S. in Information Sciences &amp;amp; Technology: Design and Development. This degree involves designing software and integrating information technologies to meet users’ specific needs, as well as working with unfamiliar software programs and computer languages, developing applications, troubleshooting problems, and thinking logically to solve complex problems. Beyond the classroom, I am involved with multiple clubs and organizations, most of which relate to STEM.&lt;/p&gt;

&lt;h2&gt;
  
  
  Okay, so what?
&lt;/h2&gt;

&lt;p&gt;Well, I thought it would be nice to introduce myself so you can know a little more about the guy behind the tutorials I'm making. To start off, I recorded an explanation as to why the notorious "turn it off and on again" method works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Alright, tell me more 🤔
&lt;/h2&gt;

&lt;p&gt;Whenever our computers, smartphones, or [insert pretty much any device] freezes, oftentimes one of the many apps we have running is the culprit. Due to faulty programming, some apps get stuck in a dead-end. Though a series of logical twists and turns, if the user finds themselves in a situation that was unaccounted for during the programming phase, they might get stuck.&lt;/p&gt;

&lt;h2&gt;
  
  
  Can you put that into normal people speak, please?
&lt;/h2&gt;

&lt;p&gt;The example I used in my video was as follows:&lt;/p&gt;

&lt;p&gt;Imagine that you're hiking along a trail through the woods and you come across a fallen tree. No big deal, you can just climb over it or walk around it.&lt;/p&gt;

&lt;p&gt;Now, imagine that path leads to a bridge, stretching over a raging river. Just one thing… the bridge has collapsed. If that bridge was the only way to cross the river for 50 miles on either side, then you’ll just have to turn around, head back the way you came from, and start over.&lt;/p&gt;

&lt;p&gt;This is similar to how computers work in the event of errors. If the problem is small enough, like our fallen tree example, there might be another way for the program to “get around” the issue and execute the desired operation.&lt;/p&gt;

&lt;p&gt;However, when it comes to our bridge example, and the program encounters a very large problem, we’re then stuck in a never-ending loop left with no other choice but to start from the very beginning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;

&lt;p&gt;Let's say you're watching a YouTube video on your phone of somebody explaining this whole concept (linked below). Your phone is connected to Wi-Fi, but all of a sudden the signal fades. Instead of just stopping in place, your phone is "smart" enough to switch over to mobile data. You are able to watch your video fairly seamlessly. This is an example of a small "hiccup" like our fallen tree.&lt;/p&gt;

&lt;p&gt;However, in the event of a much more severe incident (a collapsed bridge), our device just cannot find a way through or around the problem and simply has to start back at square 1.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=lh9Ex2rDMIY&amp;amp;ab_channel=JonasJason"&gt;Just watch this video&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
