<?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: Liam Kirkland</title>
    <description>The latest articles on DEV Community by Liam Kirkland (@liamkirkland).</description>
    <link>https://dev.to/liamkirkland</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%2F694008%2F004fa728-702f-47f1-a779-4b4d4a20c6b0.png</url>
      <title>DEV Community: Liam Kirkland</title>
      <link>https://dev.to/liamkirkland</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/liamkirkland"/>
    <language>en</language>
    <item>
      <title>HAXtheWeb Project</title>
      <dc:creator>Liam Kirkland</dc:creator>
      <pubDate>Sun, 12 Dec 2021 22:33:23 +0000</pubDate>
      <link>https://dev.to/liamkirkland/haxtheweb-project-1ob0</link>
      <guid>https://dev.to/liamkirkland/haxtheweb-project-1ob0</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;For our final project, our group is making a "mark-the-words" card. The general function of our card is to present the user with a paragraph. The prompt above the paragraph will tell the user what words to pick out. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7YDuJPqo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7nbk5u1324j9zi9pt4rf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7YDuJPqo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7nbk5u1324j9zi9pt4rf.png" alt="Product Preview" width="880" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The user can then select what answers they believe are correct. They do so by clicking a word within the paragraph. They can also deselect words by clicking selected words.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZNaMIcWU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3oul0nvenfr2f83qncu9.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZNaMIcWU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3oul0nvenfr2f83qncu9.gif" alt="Selecting Preview GIF" width="880" height="211"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the user has selected all the words they think are correct, they can click the button labeled "Check". This will lock the paragraph so it is no longer interactable. It will then check the highlighted words, marking them correct or incorrect. Correct answers add a point, incorrect answers take away a point, missed answers have no effect. Their score is tallied and displayed next to the button. The check button turns into a "Try Again" button, which will clear the user's score, deselect all words, and set the board to it's original state.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RHVjE_JM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zgwk30a4tyb88a8vyjyo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RHVjE_JM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zgwk30a4tyb88a8vyjyo.gif" alt="Check Answers Preview GIF" width="880" height="211"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Source
&lt;/h2&gt;

&lt;p&gt;The project is not currently published to NPM as of 12/11/2021. By 12/14/2021 the project should be found in our group's organization found &lt;a href="https://www.npmjs.com/org/ist402groupf"&gt;here&lt;/a&gt;.&lt;br&gt;
The github link for the project can also be found &lt;a href="https://github.com/IST402-Group-F/proj3-haxtheweb"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Code
&lt;/h2&gt;

&lt;p&gt;This project was written in NodeJS, HTML, and CSS. In the HTML, it is split into 3 sections: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt Area&lt;/li&gt;
&lt;li&gt;Text Area (paragraph/work section)&lt;/li&gt;
&lt;li&gt;Results Area (button + scoring)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We imported the LitElement, HTML, and CSS libraries from lit for this project. &lt;br&gt;
When the tag is used, the prompt and answers are declared within the tag (shown below):&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;mark-the-words answers= "it'll,don't,you'll,i'm,we'll,can't,we've,wouldn't,didn't" promptContent= "Select all of the contractions (Words shortened using an apostrophe):"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The paragraph is put between the tags and parsed into individual spans that can be edited and interacted with. When a user clicks on one of the words, they apply an attribute to the span that lets the code know it is selected and should be checked if the button is pressed.&lt;br&gt;
Once the button is pressed, all words within the text area lose their pointer-events. This means the user can't add more selected words in "check mode". Any selected word gets run through a for loop to determine if it is contained within the correct answer list defined in the tag. Correct answers are marked with a green box and add a point, incorrect answers are marked with a red box and subtract a point.&lt;br&gt;
The points of a given test run can never go below 0 (zero), and their percentage correct is calculated to the nearest tenth of a percent. &lt;/p&gt;

&lt;p&gt;Once in check mode, the user may reset the board by pressing the button which changed its label from "Check" to "Try Again". This clears all right and wrong answers, sets scores equal to 0, and allows the user to try again.&lt;/p&gt;

&lt;h1&gt;
  
  
  -------------------------------
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Once styling is complete, I will insert a codepen.io link as a demo for the code.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ist402</category>
      <category>javascript</category>
      <category>css</category>
      <category>html</category>
    </item>
    <item>
      <title>My Dream App</title>
      <dc:creator>Liam Kirkland</dc:creator>
      <pubDate>Sun, 07 Nov 2021 19:24:01 +0000</pubDate>
      <link>https://dev.to/liamkirkland/my-dream-app-2oic</link>
      <guid>https://dev.to/liamkirkland/my-dream-app-2oic</guid>
      <description>&lt;p&gt;Ever since I was a kid, I've always loved computers, my parents say that I could use a laptop before I could walk. Ultimately my passion for computers and technology have driven me down the road I'm on now. &lt;/p&gt;

&lt;p&gt;I think that technology and coding should be introduced to kids sooner, as sometimes you don't find out what you want to do until much later, when it's harder to learn with limited time. &lt;/p&gt;

&lt;p&gt;I want to create an app or educational program that encourages kids interested in technology to venture further. Something that schools could use and integrate within their own program. With varying levels of complexity so that lower grade levels can still participate. It would specifically be designed for K through 12 teaching, as most colleges have the upper level learning that can get a student to where they need to be for their future. &lt;/p&gt;

&lt;p&gt;Putting more emphasis on exposing kids to technology early is important, as it can get swept under the rug in many cases. Implementing a small class in middle school that would expose kids to the potential, then having more advanced elective classes in high school.&lt;/p&gt;

&lt;p&gt;With no concern of time or money, I would promote the importance of tech and it's implications on developing society. It's an important thing to wield, and ensuring it's in the right hands with the right intentions is just as important. As easily that technology can make life easier/better, it can just as well make it worse, less private, less safe. &lt;br&gt;
I want to ensure that technology is advanced and developed for the good of society, rather than used as a way to use or manipulate it.&lt;/p&gt;

</description>
      <category>ist402</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Slots in Custom Web Components</title>
      <dc:creator>Liam Kirkland</dc:creator>
      <pubDate>Tue, 26 Oct 2021 05:43:28 +0000</pubDate>
      <link>https://dev.to/liamkirkland/slots-in-custom-web-components-5fgd</link>
      <guid>https://dev.to/liamkirkland/slots-in-custom-web-components-5fgd</guid>
      <description>&lt;p&gt;During development of any custom web component, slots can be extremely useful. Slots allow for use to pass in HTML into different parts of our card. &lt;/p&gt;

&lt;p&gt;Below we see the cards we are trying to replicate. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zlxS253V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lenytwyckhgj7ewmobg0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zlxS253V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lenytwyckhgj7ewmobg0.png" alt="Card Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Slots are ultimately useful in structuring a custom element. While our group is still trying to fully utilize slots in our component, we see the benefits of the structure they provide. We are on our way to properly using slots to their fullest.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;html&lt;/span&gt;&lt;span class="s2"&gt;`

    &amp;lt;div class="cardWhole"&amp;gt;
      &amp;lt;div class="cardHeader"&amp;gt;
        &amp;lt;slot name="top-header"&amp;gt;&amp;lt;/slot&amp;gt;
        &amp;lt;slot name="bottom-header&amp;gt;&amp;lt;/slot&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div class="cardBody"&amp;gt;
        &amp;lt;p&amp;gt; content body &amp;lt;/p&amp;gt;
        &amp;lt;ul&amp;gt;
          &amp;lt;li&amp;gt;1&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;2&amp;lt;/li&amp;gt;
          &amp;lt;li&amp;gt;3&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
    `&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://github.com/IST402-Group-F/Project-2-Card"&gt;Our Github Repo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ist402</category>
      <category>slots</category>
    </item>
    <item>
      <title>Building a Web Component</title>
      <dc:creator>Liam Kirkland</dc:creator>
      <pubDate>Sun, 10 Oct 2021 19:48:43 +0000</pubDate>
      <link>https://dev.to/liamkirkland/building-a-web-component-51j9</link>
      <guid>https://dev.to/liamkirkland/building-a-web-component-51j9</guid>
      <description>&lt;p&gt;A lot goes into building a web component, so it's important to plan beforehand. Thinking about each aspect of the component, as well as security, accessibility to those with disabilities, and stylization of it are all important to consider. &lt;/p&gt;

&lt;h3&gt;
  
  
  The Comp + Breakdown
&lt;/h3&gt;

&lt;p&gt;For this assignment, we are working on information cards (shown below).&lt;/p&gt;

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

&lt;p&gt;These cards are made up of 4 main elements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Banner&lt;/li&gt;
&lt;li&gt;Icon&lt;/li&gt;
&lt;li&gt;Header&lt;/li&gt;
&lt;li&gt;Body&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each one of these elements will be customizable, as shown in the image. The banner will go across the top of the card and will allow for color customization. This banner will server simply as a background for the icon and header. The icon will use an SVG, which makes it easily interchangeable. The icon will be placed on the left side of the banner. The header will be composed of a header and sub-header, placed on the banner next to the icon. The body will be placed under the banner. &lt;/p&gt;

&lt;h3&gt;
  
  
  Expected difficulties and What may be manageable
&lt;/h3&gt;

&lt;p&gt;Coming into this class, I have never touched CSS or HTML. I've done the most basic use of JavaScript, and using NodeJS is a whole new beast that I am still getting used it.&lt;br&gt;
So trying to learn then instantly apply what I've learned with little practice will be the hardest thing for me to overcome. Having the button project before this will help, as that provided me with some practice in those languages. &lt;/p&gt;

</description>
      <category>ist402</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Creating a CTA Button</title>
      <dc:creator>Liam Kirkland</dc:creator>
      <pubDate>Sun, 26 Sep 2021 18:41:08 +0000</pubDate>
      <link>https://dev.to/liamkirkland/creating-a-cta-button-90p</link>
      <guid>https://dev.to/liamkirkland/creating-a-cta-button-90p</guid>
      <description>&lt;h3&gt;
  
  
  Difficulties
&lt;/h3&gt;

&lt;p&gt;For my IST402 class, we were tasked to create Call to Action (CTA) buttons. I myself have never worked with HTML or CSS prior to the class, and have minimal JS knowledge. &lt;br&gt;
That has been the biggest hump for me to get over as I have to learn HTML and CSS basics while learning more advanced techniques at the same time. The CTA Button is also a brand new concept to both myself and my partner. There is a lot to learn for both of us and trying to adapt has been our biggest challenge&lt;/p&gt;

&lt;h3&gt;
  
  
  Successes
&lt;/h3&gt;

&lt;p&gt;Despite these challenges, we have managed to create the base of a functioning CTA button. It is very basic, but as we continue to learn we keep adding more intricate/advanced pieces to the button. Hopefully by the end of the project we've expanded our skill set to make a presentable and well functioning CTA button.&lt;/p&gt;

&lt;p&gt;Here's our &lt;a href="https://github.com/IST402-Group-F/CTA-Button"&gt;repo&lt;/a&gt; so you can track our progress as we learn more and more.&lt;/p&gt;

</description>
      <category>ist402</category>
      <category>ctabutton</category>
    </item>
    <item>
      <title>IST402 - Boilerplates</title>
      <dc:creator>Liam Kirkland</dc:creator>
      <pubDate>Mon, 13 Sep 2021 22:37:15 +0000</pubDate>
      <link>https://dev.to/liamkirkland/ist402-boilerplates-5dmj</link>
      <guid>https://dev.to/liamkirkland/ist402-boilerplates-5dmj</guid>
      <description>&lt;h3&gt;
  
  
  Commonalities between Boilerplates
&lt;/h3&gt;

&lt;p&gt;Between the boilerplates, there are a couple off files that carry over between the two (VueJS and Angular are the only two I can currently compare) such as package.json. Both have a lot of extra files used to hold dependencies or information. Both also contain an index.html file within their source code. Outside of that the Angular boilerplate has a lot more going on within it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which Seems Easier/My Choice
&lt;/h3&gt;

&lt;p&gt;Between VueJS and Angular, VueJS seems a lot simpler/easier DX. I would definitely start with using VueJS if I were to start a project tomorrow. I have very limited experience with Web Dev, so I'd prefer to stick with the easier one to get started (VueJS). &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/IST402-Group-F"&gt;Org Github&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;a href="https://github.com/juanmesa2097/angular-boilerplate"&gt;Angular Repo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>boilerplates</category>
      <category>ist402</category>
    </item>
    <item>
      <title>How to install open-wc</title>
      <dc:creator>Liam Kirkland</dc:creator>
      <pubDate>Sun, 29 Aug 2021 23:44:00 +0000</pubDate>
      <link>https://dev.to/liamkirkland/how-to-install-open-wc-1iih</link>
      <guid>https://dev.to/liamkirkland/how-to-install-open-wc-1iih</guid>
      <description>&lt;p&gt;To start, install the latest version of &lt;a href="https://nodejs.org/en/"&gt;Node LTS&lt;/a&gt; by first going to the prior link.&lt;br&gt;
After the download is finished, run the installer. Follow the instructions in the Node.js Setup Wizard (this should also install npm along with Node, which is what we need).&lt;/p&gt;

&lt;p&gt;Now install yarn which can be done by entering the following command into the Windows Command Prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install --global yarn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now navigate to whatever folder you are going to use in your command prompt, then type the following command in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm init @open-wc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This may take a minute to setup, but once options appear select the following (using the arrow keys and enter key):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scaffold a new project&lt;/li&gt;
&lt;li&gt;Web component&lt;/li&gt;
&lt;li&gt;Linting&lt;/li&gt;
&lt;li&gt;No (no typescript)&lt;/li&gt;
&lt;li&gt;Enter the name of your web component (in our case, "hello-world")&lt;/li&gt;
&lt;li&gt;Look over the file location, if it looks right select "Yes"&lt;/li&gt;
&lt;li&gt;Select "Yes, with yarn" for the dependencies install&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And you're all set! &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Introduction</title>
      <dc:creator>Liam Kirkland</dc:creator>
      <pubDate>Sun, 29 Aug 2021 23:28:44 +0000</pubDate>
      <link>https://dev.to/liamkirkland/introduction-3kb9</link>
      <guid>https://dev.to/liamkirkland/introduction-3kb9</guid>
      <description>&lt;h5&gt;
  
  
  About me
&lt;/h5&gt;

&lt;p&gt;Hello, my name is Liam Kirkland! I am from a suburb right outside of Philly. I've only moved once and it was to a house 5 minutes away from where we originally lived, so I've pretty much been in the same town my whole life. I am a senior at Penn State majoring in IST with a focus in Design and Development (which has since been replaced by HCCD). My hobbies basically revolve entirely around my PC (mostly just playing games), so I figured IST was a solid fit for my major).&lt;/p&gt;

&lt;h5&gt;
  
  
  Why Web Dev
&lt;/h5&gt;

&lt;p&gt;Web development seems like a field with very broad opportunity, meaning there is a lot of possible options to find a job that would interest me. I hope to learn more about the skills required for the field and want to see if it is a good fit for myself. Web development is constantly evolving (from what I can tell) and is still a fairly new and emerging field. It is something used in virtually every business with new positions opening up everyday. It is something that would be worth gaining experience in to get a head start on the rest of just about everyone looking for a job anymore.&lt;/p&gt;

&lt;p&gt;I hope to learn a lot from this class and am excited to work with everyone! :D&lt;/p&gt;

</description>
      <category>ist402</category>
      <category>intro</category>
    </item>
  </channel>
</rss>
