<?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: Francesca Ansell</title>
    <description>The latest articles on DEV Community by Francesca Ansell (@francescaansell).</description>
    <link>https://dev.to/francescaansell</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%2F564667%2Fde6083b6-70c3-4c26-8c16-199f5e564567.jpeg</url>
      <title>DEV Community: Francesca Ansell</title>
      <link>https://dev.to/francescaansell</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/francescaansell"/>
    <language>en</language>
    <item>
      <title>Week 11 Blog Post</title>
      <dc:creator>Francesca Ansell</dc:creator>
      <pubDate>Sun, 07 Nov 2021 22:45:47 +0000</pubDate>
      <link>https://dev.to/francescaansell/week-11-blog-post-76d</link>
      <guid>https://dev.to/francescaansell/week-11-blog-post-76d</guid>
      <description>&lt;p&gt;Time and money control everything in our lives. Have you ever thought about what you would do if neither where an issue? If I had the opportunity I would create an app to identify areas of need and direct supplies there. Now more than ever our healthcare industry is struggling to support the amount of people who need care, whether it be support with physical supplies or technologies to intake patient information. Often these 'supplies' are actually people like nurses. This application could help establish areas that need traveling nurses and connect potential employees there. In states of emergency hospitals could donate or sell extra equipment, ppe, etc. to hospitals in need. An application of this type would need multiple hospitals/facilities to adopt it for it to be useful. Or it could be used within networks of hospitals for example UPMC, or Allegany Health Network. I would not personally use this app but a company I work for in the future may use this app.  &lt;/p&gt;

&lt;p&gt;I have the programing skills, and knowledge of the healthcare industry to see this project through. I also have the user interface design, user experience, and software development life cycle skills. I know what areas of healthcare to target and the geographic areas that need the most attention, such as rural areas. I also have the leadership skills to identify what people, and resources are needed to make this app successful. &lt;/p&gt;

&lt;p&gt;I believe that technology has the power to improve the healthcare industry if used correctly. The most glaring issue now seems to be lack of communication between hospitals and doctor due to competition. Hospital administration often cares more about making money and bringing in new patients than perfecting the outcomes of their existing patients. Although this is not always true the bottom line is that hospitals need to make money to keep there doors open at all. &lt;/p&gt;

&lt;p&gt;I truly don't believe my life would drastically change if time and money where no issue. I would still want to be a UX/UI designer that works on the EHR system. Possibly I would pick a smaller, more patient oriented company that in the real world would offer less pay. If time where no issue I would be able to dedicate my life to my career and not have to worry about delegating my time for my family or friends.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Week 7 Blog Post</title>
      <dc:creator>Francesca Ansell</dc:creator>
      <pubDate>Mon, 11 Oct 2021 16:21:58 +0000</pubDate>
      <link>https://dev.to/francescaansell/week-7-blog-post-472k</link>
      <guid>https://dev.to/francescaansell/week-7-blog-post-472k</guid>
      <description>&lt;h5&gt;
  
  
  Write a blog post about considerations when building a web component and considerations when building the element's API (metacognition of the exercise we engaged in)
&lt;/h5&gt;

&lt;p&gt;In order to create a web component is is important to consider what parts and standards are needed. This is good practice when creating any sort of coding project. Some things that we are considering when building a webcomponent are: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What are the characteristics of the card?&lt;/li&gt;
&lt;li&gt;What design considerations must we take into account?&lt;/li&gt;
&lt;li&gt;What accessibility concerns do we potentially have?&lt;/li&gt;
&lt;li&gt;What security concerns do we potentially have?&lt;/li&gt;
&lt;li&gt;What "states" does this card have?&lt;/li&gt;
&lt;li&gt;What do we call it?&lt;/li&gt;
&lt;li&gt;What areas do we need to account for flexible content / HTML entry of any kind?&lt;/li&gt;
&lt;li&gt;Do we have room for additional reusable atoms to be produced? &lt;/li&gt;
&lt;li&gt;What should we call each of them?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of these consideration could be applied to different projects (such as how we used them in our button project.) &lt;/p&gt;

&lt;h6&gt;
  
  
  How you are going to break it down into multiple elements
&lt;/h6&gt;

&lt;p&gt;In this assignment our card will have a scaffold, banner, and icon. This will allow the card to be even more usable by the programmer. The banner and icon web components can be interchanged with different banners and icon. This allows for lots of personalization and reusability which is very important. &lt;/p&gt;

&lt;h6&gt;
  
  
  What do you expect to be difficult
&lt;/h6&gt;

&lt;p&gt;I expect splitting up the work for this assignment to be difficult. I do not understand how each person will be able to do a different part of the card and still distribute the work equally. The person working on the scaffold will have to wait until the icon is down etc. Because I am isolating it is also difficult to understand assignment descriptions because most include slang. &lt;/p&gt;

&lt;h6&gt;
  
  
  What's more manageable now that you made the button
&lt;/h6&gt;

&lt;p&gt;After completing the button I have a decent idea of how web components are constructed and then used as their own tag. I also understand the idea of properties and states which in the past I have found difficult. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/3B4B/project-two"&gt;https://github.com/3B4B/project-two&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Button Project Updates</title>
      <dc:creator>Francesca Ansell</dc:creator>
      <pubDate>Tue, 28 Sep 2021 14:41:01 +0000</pubDate>
      <link>https://dev.to/francescaansell/button-project-updates-13be</link>
      <guid>https://dev.to/francescaansell/button-project-updates-13be</guid>
      <description>&lt;p&gt;In my Webcomponents class I am making a button. My partner Jimmy and I decided to be unique we will be creating a circular button. So far the project is going okay. We continue to make small bursts of progress but I have yet to really make great strides with the project. I missed class last week because of the Fall Career Fair but I know that my partners used a CSS generator which helped us a lot. Last week was very chaotic for me but this week I will have lots of time to sit down and work on this button. Hopefully I will be able to find a laptop charger because I left mine in Pittsburgh. This week will be the final push to make sure all functionality is working and the styles are the way I want them. &lt;/p&gt;

&lt;p&gt;This is what our reusable button looks like right now. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xstvVgS6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jq3gxotqs1h25b3bkzm9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xstvVgS6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jq3gxotqs1h25b3bkzm9.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My goals for the project includes dynamic loading, checking all accessibility issues, and perfecting our CSS styles. Jimmy is working on getting disable to work right now. &lt;/p&gt;

&lt;p&gt;You can find our button &lt;a href="https://github.com/3B4B/circle-button-fj"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comparing Boilerplates</title>
      <dc:creator>Francesca Ansell</dc:creator>
      <pubDate>Mon, 13 Sep 2021 17:59:39 +0000</pubDate>
      <link>https://dev.to/francescaansell/comparing-boilerplates-3n8m</link>
      <guid>https://dev.to/francescaansell/comparing-boilerplates-3n8m</guid>
      <description>&lt;p&gt;In this blog post I will be comparing a React, Stencil, Vue, and Angular boiler-plates. A boilerplate is a reusable template to start your projects with. &lt;br&gt;
The stencil boiler plate included a readme file that explains the properties and their attributes which was extremely helpful in understanding the code. I was able to quickly install the dependencies and run the program without any issues. I do not recognize some of the folder conventions such as dist, and &lt;a href="http://www"&gt;www&lt;/a&gt;. It is easily understood this boilerplate creates a web component. Overall the boiler plates has lots of folders and files that I am unsure how to utilize. &lt;/p&gt;

&lt;p&gt;The Vue Boilerplate uses folder structure and naming conventions I immediately realize. The Vue boilerplate was much easier to digest and understand. This boilerplate was also very easy to start up. &lt;/p&gt;

&lt;p&gt;The angular boilerplate reminded me of a react project with a views, images, and styles folder. I had a lot of trouble getting this project to run due to 'gulp' which I have never used before.&lt;br&gt;&lt;br&gt;
I added the react boilerplate. This boilerplate had a large amount of miscellaneous files that I have never seen before and do not know how to utilize. It also had a large amount of folders and nested folders. I was able to install the dependencies and run the program without any trouble. This boilerplate includes lots of comments to help you navigate. &lt;/p&gt;

&lt;p&gt;I believe the best developer experience, and boiler plate I would choose to create an application with would be the VUEjs boilerplate. It was very easy to understand and navigate which allows the developer to focus on other things such as improved functionality. &lt;/p&gt;

&lt;p&gt;Group repo: &lt;a href="https://github.com/3B4B/boilerplates"&gt;https://github.com/3B4B/boilerplates&lt;/a&gt;&lt;br&gt;
React Boilerplate: &lt;a href="https://github.com/react-boilerplate/react-boilerplate"&gt;https://github.com/react-boilerplate/react-boilerplate&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>vue</category>
      <category>angular</category>
      <category>react</category>
    </item>
    <item>
      <title>Introduction #2 </title>
      <dc:creator>Francesca Ansell</dc:creator>
      <pubDate>Mon, 30 Aug 2021 02:27:28 +0000</pubDate>
      <link>https://dev.to/francescaansell/introduction-2-596n</link>
      <guid>https://dev.to/francescaansell/introduction-2-596n</guid>
      <description>&lt;p&gt;Hi everyone my name is Francesca and I am a student at penn state. This year I will be graduating with a major in Human Centered Design and Development with a minor in Health Policy Administration. Between both the classroom and an internship at Merck I have gained experience in Front End Development, User Experience, User Interface Design, and Project Management. This summer in my role at Merck I learned to communicate effectivity between IT and the Business. I used my problem-solving skills to organize information, streamline workflows and increased productivity. My greatest goal is to make an impact on the healthcare system by applying an exceptional user experience to consumer engagement. I have experience in front end development from multiple classes, but still have lots to learn. &lt;/p&gt;

&lt;p&gt;I want to get involved in front end development because I enjoy problem solving and creating highly versatile and enjoyable interfaces. Web development is necessary in every industry which gives me a multitude of future career paths. Web development makes me excited and ignites a passion in me that networking and hardware does not. I specifically enjoy languages like HTML, CSS, and javascript. Front end development allows me to use my design and user experience skills along with my coding skills. From this class I want to strengthen my javascript skills and be able to truly unpack concepts that I only understand on the surface level. I decided to take IST 402 again after really enjoying the last 3 weeks of last semesters IST 402 class.  &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Getting started using open-wc</title>
      <dc:creator>Francesca Ansell</dc:creator>
      <pubDate>Mon, 30 Aug 2021 02:23:43 +0000</pubDate>
      <link>https://dev.to/francescaansell/getting-started-using-open-wc-4cnm</link>
      <guid>https://dev.to/francescaansell/getting-started-using-open-wc-4cnm</guid>
      <description>&lt;p&gt;In this post I am going to go over how to get started setting up tooling to use open-wc. Open Web Components is a way to create boilerplate web components that can expanded to your needs. &lt;/p&gt;

&lt;h4&gt;
  
  
  Download all dependences
&lt;/h4&gt;

&lt;p&gt;In order to use Open-WC you will need to download Node.js and npm. Node.js is an open source javascript runtime environment and can be download &lt;a href="https://nodejs.org/en/download/"&gt;here&lt;/a&gt;. Npm (Node package module) is a package manager which will allows you to install dependencies necessary to your projects. You can also download yarn which is an alternative package manager. Installing node.js and a package manager are absolutely necessary to being able to create an open-wc web component. &lt;/p&gt;

&lt;h4&gt;
  
  
  Use the command prompt to create a web component
&lt;/h4&gt;

&lt;p&gt;Once you have downloaded the necessary software you can verify by running the following lines in your command prompt &lt;code&gt;node -v&lt;/code&gt; and &lt;code&gt;npm -v&lt;/code&gt;. If you get a version number back you are in good shape. Next create a project by running &lt;code&gt;npm init @open-wc&lt;/code&gt;. You can select options using the arrow keys and the space bar. To create a new webcomponents choose to scaffold a new project, and webcomponent. I choose to add linting, testing, and demo capabilities as well. Next choose whether or no to run typescript, I do not use typescript. Choose the tag name of your webcomponent. The name should contain a hyphen so it is apparent it is not a native tag.  &lt;/p&gt;

&lt;p&gt;Open-wc will display the proposed file structure and you should choose to write it to the your disk. Finally install dependencies using npm. &lt;/p&gt;

&lt;p&gt;Thanks it! Now you have your very own web components. To open and run this web component run &lt;code&gt;cd projectName&lt;/code&gt; and &lt;code&gt;npm start&lt;/code&gt; in the command prompt. In order to edit the webcomponent you will need to use an IDE such a VS code. &lt;/p&gt;

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

</description>
      <category>node</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Project Red Pill</title>
      <dc:creator>Francesca Ansell</dc:creator>
      <pubDate>Sat, 01 May 2021 16:54:20 +0000</pubDate>
      <link>https://dev.to/francescaansell/project-red-pill-1168</link>
      <guid>https://dev.to/francescaansell/project-red-pill-1168</guid>
      <description>&lt;p&gt;For the final project in IST 402, I created my very own web component. I took an issue ELMNSln and got to work. &lt;/p&gt;

&lt;p&gt;&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%2Fzyr1351w0rcga34jtmmi.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%2Fzyr1351w0rcga34jtmmi.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step I: Assess the task
&lt;/h3&gt;

&lt;p&gt;So the goal was to create a reusable web comment to promote a product. This web component needed to support &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Performance/Lazy_loading" rel="noopener noreferrer"&gt;Lazy Loading&lt;/a&gt;, &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_templates_and_slots" rel="noopener noreferrer"&gt;Slots&lt;/a&gt;, and user customization using props. Originally I tried to use &lt;a href="https://github.com/elmsln/WCFactory" rel="noopener noreferrer"&gt;wcfactory&lt;/a&gt; to create the skeleton for my web component but the tooling is currently not compatible with windows. So I had to use the backup.... open w-c. &lt;/p&gt;

&lt;h3&gt;
  
  
  Step II: Building the Skeleton
&lt;/h3&gt;

&lt;p&gt;I used open w-c to start my web component. Open w-c can be used to create a boilerplate template that developers can start building on. Features you can add to your scaffolding include Linting, Testing, Demoing, and Building. I choose to add all of these upgrades to my web component. &lt;/p&gt;

&lt;p&gt;When I actually started coding my goal was to create something that looked like the inspiration and work backward from there. &lt;/p&gt;

&lt;h3&gt;
  
  
  Step III: Realize you are doing everything wrong
&lt;/h3&gt;

&lt;p&gt;Originally I had a grid inside my web components and 4 of everything... title, picture, description, etc. &lt;/p&gt;

&lt;p&gt;Repitiion = Bad &lt;/p&gt;

&lt;h3&gt;
  
  
  Step IV: Finish
&lt;/h3&gt;

&lt;p&gt;To finish my web component I implemented the underlining of the first word, set the description to a slot, and change icon and color sources to more acceptable places for this particular project. &lt;/p&gt;

&lt;p&gt;During class, my professor was able to help me figure out how to underline only the first word in the title. We used the updated method and passed changed properties. The algorithm checks to see if the prop name is the title. Then if it is title it checks to see if when the title is split by spaces there is more than 1 output. Finally using temp variables and the split, shift, and join functions split the title into the first word and the rest of the words. &lt;/p&gt;

&lt;p&gt;To support the design pattern lazy loading I extended the IntersectionObserverMixin class from ELMNS. &lt;a href="https://github.com/elmsln/lrnwebcomponents/tree/master/elements/intersection-element" rel="noopener noreferrer"&gt;(Check it out here).&lt;/a&gt; Within my own code, all I had to do was make sure I import it, extend it, and conditionally render my HTML based on if the element is visible using a property from the IntersectionObserverMixin called &lt;code&gt;elementVisable&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In the final product, the user is able to update the title, image, accent color, icon, and description for their product offering. The description can be an actual HTML element because the description is a slot in the actual .js file.  &lt;/p&gt;

&lt;p&gt;This was an awesome learning experience for me to build something from start to finish, and problem solve along the way. &lt;/p&gt;

&lt;p&gt;Here is an example of what my web components look like in the browser and a few snippets of code. &lt;br&gt;
&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%2F43skplq94s0pl0xcq11d.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%2F43skplq94s0pl0xcq11d.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The webcomponet
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;get&lt;/span&gt; &lt;span class="nf"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;props&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;properties&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;props&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;properties&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="p"&gt;{&lt;/span&gt;
      &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;source&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;_titleOne&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;_titleTwo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;String&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;alt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;accentColor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;pink&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dark&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;updated&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;changedProperties&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;updated&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;updated&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;changedProperties&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nx"&gt;changedProperties&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;oldValue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;propName&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;propName&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;title&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;tmp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
          &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;_titleOne&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;tmp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
          &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;_titleTwo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;tmp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;_titleOne&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&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;`
      &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;elementVisible&lt;/span&gt;
        &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;html&lt;/span&gt;&lt;span class="s2"&gt;` &amp;lt;!-- Container --&amp;gt;
            &amp;lt;div class="container"&amp;gt;
              &amp;lt;img
                class="image"
                src="&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;source&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"
                alt="&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"
                height="150px"
                width="200px"
              /&amp;gt;

              &amp;lt;div class="square"&amp;gt;
                &amp;lt;!-- Icon, Header --&amp;gt;
                &amp;lt;div class="squareTitle"&amp;gt;
                  &amp;lt;!-- icon --&amp;gt;
                  &amp;lt;div class="icon-background"&amp;gt;
                    &amp;lt;simple-icon
                      id="simple-icon"
                      accent-color="&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;accentColor&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"
                      ?dark="&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dark&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"
                      icon="&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;icon&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"
                    &amp;gt;&amp;lt;/simple-icon&amp;gt;
                  &amp;lt;/div&amp;gt;
                  &amp;lt;!-- header --&amp;gt;
                  &amp;lt;h4&amp;gt;
                    &amp;lt;span class="underline"&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;_titleOne&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;lt;span
                      &amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;_titleTwo&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/span
                    &amp;gt;
                  &amp;lt;/h4&amp;gt;
                &amp;lt;/div&amp;gt;

                &amp;lt;!-- descripton --&amp;gt;
                &amp;lt;div class="sqaureDescription"&amp;gt;
                  &amp;lt;slot name="description"&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;description&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/slot&amp;gt;
                &amp;lt;/div&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="s2"&gt;``&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;
    `&lt;/span&gt;&lt;span class="p"&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;h3&gt;
  
  
  Demo page
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"grid-container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;product-offering&lt;/span&gt; 
      &lt;span class="na"&gt;source=&lt;/span&gt;&lt;span class="s"&gt;"../assets/Images/placeholder1.jpeg"&lt;/span&gt; 
      &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"Real-world projects from industry experts"&lt;/span&gt; 
      &lt;span class="na"&gt;accent-color = &lt;/span&gt;&lt;span class="s"&gt;"cyan"&lt;/span&gt;
      &lt;span class="na"&gt;description=&lt;/span&gt;&lt;span class="s"&gt;"With real world projects and immersive content built in partnership with top tier companies, you’ll master the tech skills companies want."&lt;/span&gt;
      &lt;span class="na"&gt;icon=&lt;/span&gt;&lt;span class="s"&gt;"communication:business"&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;slot=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;With real world projects and immersive content &lt;span class="nt"&gt;&amp;lt;b&amp;gt;&lt;/span&gt;built in partnership with top tier companies, &lt;span class="nt"&gt;&amp;lt;/b&amp;gt;&lt;/span&gt; you’ll master the tech skills companies want.&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/product-offering&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;product-offering&lt;/span&gt; 
      &lt;span class="na"&gt;source=&lt;/span&gt;&lt;span class="s"&gt;"../assets/Images/placeholder2.jpeg"&lt;/span&gt; 
      &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"Technical mentor support"&lt;/span&gt; 
      &lt;span class="na"&gt;icon = &lt;/span&gt;&lt;span class="s"&gt;"social:group"&lt;/span&gt; 
      &lt;span class="na"&gt;accent-color=&lt;/span&gt;&lt;span class="s"&gt;"pink"&lt;/span&gt;
      &lt;span class="na"&gt;description=&lt;/span&gt;&lt;span class="s"&gt;"With real world projects and immersive content built in partnership with top tier companies, you’ll master the tech skills companies want."&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;slot=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Our knowledgeable mentors guide your learning and are focused on answering your questions, motivating you and keeping you on track.&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/product-offering&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;product-offering&lt;/span&gt; 
      &lt;span class="na"&gt;source=&lt;/span&gt;&lt;span class="s"&gt;"../assets/Images/placeholder3.jpeg"&lt;/span&gt; 
      &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"Career services"&lt;/span&gt; 
      &lt;span class="na"&gt;icon = &lt;/span&gt;&lt;span class="s"&gt;"image:wb-incandescent"&lt;/span&gt; 
      &lt;span class="na"&gt;description=&lt;/span&gt;&lt;span class="s"&gt;"With real world projects and immersive content built in partnership with top tier companies, you’ll master the tech skills companies want."&lt;/span&gt;
      &lt;span class="na"&gt;accent-color=&lt;/span&gt;&lt;span class="s"&gt;"green"&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;slot=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;You’ll have access to resume support, Github portfolio review and LinkedIn profile optimization to help you advance your career and land a high-paying role.&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/product-offering&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;product-offering&lt;/span&gt; 
      &lt;span class="na"&gt;source=&lt;/span&gt;&lt;span class="s"&gt;"../assets/Images/placeholder4.jpeg"&lt;/span&gt; 
      &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"Flexible learning program"&lt;/span&gt; 
      &lt;span class="na"&gt;icon = &lt;/span&gt;&lt;span class="s"&gt;"timeline"&lt;/span&gt;  
      &lt;span class="na"&gt;description=&lt;/span&gt;&lt;span class="s"&gt;"With real world projects and immersive content built in partnership with top tier companies, you’ll master the tech skills companies want."&lt;/span&gt;
      &lt;span class="na"&gt;accent-color= &lt;/span&gt;&lt;span class="s"&gt;"blue"&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;slot=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Get a custom learning plan tailored to fit your busy life. Learn at your own pace and reach your personal goals on the schedule that works best for you.&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/product-offering&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;


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

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>github</category>
    </item>
    <item>
      <title>The Differences Between Monolithic and Microservice Architecture</title>
      <dc:creator>Francesca Ansell</dc:creator>
      <pubDate>Mon, 19 Apr 2021 03:47:29 +0000</pubDate>
      <link>https://dev.to/francescaansell/the-differences-between-monolithic-and-microservice-architecture-26fo</link>
      <guid>https://dev.to/francescaansell/the-differences-between-monolithic-and-microservice-architecture-26fo</guid>
      <description>&lt;p&gt;Big words I know. First in order to determine the difference between the two let's define each one. &lt;/p&gt;

&lt;h4&gt;
  
  
  Monolithic
&lt;/h4&gt;

&lt;p&gt;Monolithic architecture in the tech industry are services that are completed in a single unit. Each part of the program is contained within one unit. A great and common example of this is drupal. Within a drupal site, you have a theme, template reprocessing, views, entity APIs, fields API, and more all making up the CMS. &lt;/p&gt;

&lt;p&gt;Amazon, Netflix, and Apple used to be a monolithic server but has since switched. The downside of having such a singular server was that amazon had to be sure the server capacity was able to handle all the traffic &lt;strong&gt;possible&lt;/strong&gt;. This caused them to lose lots of money which no one wants. In addition, if a single part needed to be updated developers were required to rebuild and redeploy the entire server. &lt;/p&gt;

&lt;p&gt;Having a Monolithic server would be like having all the lights in your house be in a series circuit. You wouldn't be able to turn on just your bedroom light and instead would have to turn on all the lights in the house. This would make your electric bill very high and waste a lot of money. Not only this but if one light bulb in your house goes out then you can't use any lights in your house! Now I am not trying to say one bug will always bring down an entire monolithic server but you get the picture. &lt;/p&gt;

&lt;h4&gt;
  
  
  Microservice
&lt;/h4&gt;

&lt;p&gt;Microservices were built as the solution to the tedious and inefficient monolithic architecture. &lt;/p&gt;

&lt;p&gt;A Microservice breaks down each component into a smaller set of independent components. Each component is in charge of carrying out whatever process they are in charge of as a separate service. This inherently means that each component has its own logic and functions. Each of these components is independently deployable and small. So to fix a bug or update a component developers no longer need to rebuild and deploy the entire server, just the part they are working on. Microservices allow the servers to scale to anticipated captities and limit themselves during downtime to save money. &lt;/p&gt;

&lt;p&gt;So back to the house example. Instead, our house electric is made up of parallel circuits so that you can scale to capacity (turn on as many lights as you need) and fix one problem without updating the whole system (change one light bulb while the rest are still on). &lt;/p&gt;

&lt;p&gt;I think this image does a great job of visually comparing the two. &lt;/p&gt;

&lt;p&gt;&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%2Fdn68qjtnmhcfazi0q49k.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%2Fdn68qjtnmhcfazi0q49k.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out these articles I used to help understand these topics: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.leanix.net/en/blog/why-netflix-amazon-and-apple-care-about-microservices" rel="noopener noreferrer"&gt;Why Netflix, Amazon, and Apple Care About Microservices&lt;/a&gt;&lt;/p&gt;

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

</description>
      <category>devops</category>
      <category>aws</category>
      <category>architecture</category>
      <category>todayilearned</category>
    </item>
    <item>
      <title>Using web components and contributing to open source </title>
      <dc:creator>Francesca Ansell</dc:creator>
      <pubDate>Mon, 29 Mar 2021 13:50:38 +0000</pubDate>
      <link>https://dev.to/francescaansell/using-web-components-and-contribute-to-open-source-2pj5</link>
      <guid>https://dev.to/francescaansell/using-web-components-and-contribute-to-open-source-2pj5</guid>
      <description>&lt;h1&gt;
  
  
  What is a web component?
&lt;/h1&gt;

&lt;p&gt;If you have taken any software engineering or coding classes professor love to talk about encapsulation. Web components are real-life examples of encapsulation. If you don't know encapsulation is basically the reuse of code in order to create more organization and usable projects. Web components are a great way to reuse code and make your life easier! For example, the web component I will use in this demo was created by another programmer, but if I was say... building my own website I could use his web component in my own project. &lt;/p&gt;

&lt;h2&gt;
  
  
  Find a project
&lt;/h2&gt;

&lt;p&gt;For this example, I will be using Twitter Embed from &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 class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
lrnwebcomponents&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://opensource.org/licenses/Apache-2.0" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/1698104e976c681143eb0841f9675c6f802bb7aa832afc0c7a4e719b1f3cf955/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d417061636865253230322e302d626c75652e737667" alt="License: Apache 2.0"&gt;&lt;/a&gt;
&lt;a href="https://lerna.js.org/" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/3bc63f921dd60bac6d91aa900ef570c928b2aa4c2124ed23647e8fe9d2232853/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d61696e7461696e6564253230776974682d6c65726e612d6363303066662e737667" alt="lerna"&gt;&lt;/a&gt;
&lt;a href="https://lit.dev/" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/0bfaa1c84ba5d611a6ab1d9d5a2907e1914c9c3c57c8dbc8b5cfe5ecedc6f985/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d4c69742d3332346666663f7374796c653d666c6174266c6f676f3d646174613a696d6167652f737667253262786d6c3b6261736536342c50484e325a79426d615778735053496a5a6d5a6d4969423261575633516d393450534977494441674d545977494449774d43496765473173626e4d39496d6830644841364c79393364336375647a4d7562334a6e4c7a49774d44417663335a6e496a3438634746306143426b50534a744d54597749446777646a6777624330304d4330304d4870744c54517749445177646a6777624451774c545177656d30774c546777646a6777624330304d4330304d4870744c54517749445177646a6777624451774c545177656d30744e4441744e4442324f4442734e4441744e444236625451774c545177646a6777624330304d4330304d4870744c545177494445794d4859344d4777744e4441744e444236625330304d4330304d4859344d4777304d4330304d486f694c7a34384c334e325a7a34253344" alt="Lit"&gt;&lt;/a&gt;
&lt;a href="https://haxtheweb.org/" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/7167458bbac476314240ffa0d0772d83641a4c5fcffe7ebc9920ad2b50bd3a7a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d4841585468655765622d39393939393946463f7374796c653d666c6174266c6f676f3d646174613a696d6167652f737667253262786d6c3b6261736536342c50484e325a7942705a4430695a6d56684d5445785a5441744d6a45775a433030593251774c574a684d5751745a475a6d4f5451794f4463304e6a67314969426b595852684c57356862575539496b78686557567949444569494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a794967646d6c6c64304a76654430694d434177494445344e4334304944457a4e5334354e79492b5047526c5a6e4d2b50484e306557786c5069356c4d574a6a4d6a41794e5330784f4441774c54526b597a49744f4463344e53316a4e445a6c5a4445774d3259304f544a375a6d6c7362446f6a4d6a4d785a6a49774f3330384c334e306557786c506a77765a47566d637a3438634746306143426a6247467a637a30695a544669597a49774d6a55744d5467774d4330305a474d794c5467334f445574597a51325a5751784d444e6d4e446b794969426b50534a4e4e7a67754d4463734f444d754e4456574e5456494f4459754d6e59344c6a457a614445324c6a4932646a51754d44646f4e4334774e3159344d7934304e5567354f433430566a59334c6a4535534467324c6a4a574f444d754e4456614969382b5048427662486c6e6232346763473970626e527a505349784e544d754d544d674e6a4d754e7941784e544d754d544d674e5445754d7a6b674d5451774c6a5530494455784c6a4d35494445304d4334314e43417a4f5334774f5341784d6a63754f5455674d7a6b754d446b674d5449334c6a6b31494449324c6a6335494445774d6934334f4341794e6934334f5341784d4449754e7a67674d7a6b754d446b674d5445314c6a4d3249444d354c6a4135494445784e53347a4e6941314d53347a4f5341784d6a63754f5455674e5445754d7a6b674d5449334c6a6b314944597a4c6a63674d5451774c6a55304944597a4c6a63674d5451774c6a553049446332494445794e79347a4e6941334e6941784d6a63754d7a59674f4467754d7941784d5451754e7a67674f4467754d7941784d5451754e7a67674d5441774c6a5978494445774d6934784f5341784d4441754e6a45674d5441794c6a4535494445784d6934354d5341784d6a63754d7a59674d5445794c6a6b78494445794e79347a4e6941784d4441754e6a45674d544d354c6a6b31494445774d4334324d5341784d7a6b754f5455674f4467754d7941784e5449754e5451674f4467754d7941784e5449754e5451674e7a59674d5459314c6a637949446332494445324e5334334d6941324d793433494445314d7934784d7941324d7934334969382b5048427662486c6e6232346763473970626e527a5053497a4d7934784d7941324d79343349444d7a4c6a457a494455784c6a4d35494451314c6a6379494455784c6a4d35494451314c6a637949444d354c6a4135494455344c6a4d7849444d354c6a4135494455344c6a4d78494449324c6a63354944677a4c6a5134494449324c6a63354944677a4c6a513449444d354c6a4135494463774c6a673549444d354c6a4135494463774c6a6735494455784c6a4d35494455344c6a4d78494455784c6a4d35494455344c6a4d784944597a4c6a63674e4455754e7a49674e6a4d754e7941304e5334334d6941334e6941314f4334344f5341334e6941314f4334344f5341344f43347a494463784c6a5134494467344c6a4d674e7a45754e4467674d5441774c6a5978494467304c6a4133494445774d4334324d5341344e4334774e7941784d5449754f5445674e5467754f446b674d5445794c6a6b78494455344c6a6735494445774d4334324d5341304e69347a4d5341784d4441754e6a45674e4459754d7a45674f4467754d79417a4d7934334d6941344f43347a49444d7a4c6a637949446332494449774c6a553049446332494449774c6a55304944597a4c6a63674d7a4d754d544d674e6a4d754e794976506a777663335a6e50673d3d" alt="#HAXTheWeb"&gt;&lt;/a&gt;
&lt;a href="https://github.com/prettier/prettier"&gt;&lt;img src="https://camo.githubusercontent.com/8091bbf129a8b32d477a2c246ad58a0bf8c1539bccf71098604ecf78c7ca2206/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64655f7374796c652d70726574746965722d6638626334352e737667" alt="code style: prettier"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.npmjs.com/search?q=%40lrnwebcomponents" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/218ed692aea5313bc194ba72a5beace34df97d2c65b448684511ee7cda630607/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f406c726e776562636f6d706f6e656e74732f682d612d783f7374796c653d666c6174" alt="Published on npm"&gt;&lt;/a&gt;
&lt;a href="https://github.com/elmsln/lrnwebcomponents/actions?query=branch%3Amaster"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hnf6wFJd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/elmsln/lrnwebcomponents/workflows/build/badge.svg%3Fbranch%3Dmaster" alt="build"&gt;&lt;/a&gt;
&lt;a href="https://david-dm.org/elmsln/lrnwebcomponents" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/fed430f3bdb5150c27574523f47ab769ce7a9382e28808e54e7911890370f294/68747470733a2f2f696d672e736869656c64732e696f2f64617669642f656c6d736c6e2f6c726e776562636f6d706f6e656e74732e7376673f7374796c653d666c6174" alt="Dependency Status"&gt;&lt;/a&gt;
&lt;a href="https://www.webcomponents.org/author/elmsln" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/fa095f7c7b24972f3525b39a6f31c15626f3a4cc019314b4f19ad88ccfd47ddb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f776562636f6d706f6e656e74732e6f72672d7075626c69736865642d626c75652e737667" alt="Published on webcomponents.org"&gt;&lt;/a&gt;
&lt;a href="https://bit.ly/haxslack" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/2304fa52b2a58f1d8aa7c4394da6d65ca2d32b906f97c9c835fba875e76a5ce4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636861742532306f6e2d736c61636b2d3732383964612e737667" alt="Slack"&gt;&lt;/a&gt;
&lt;a href="https://twitter.com/intent/follow?screen_name=haxtheweb" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/2cf01ca81ef57f3b4b6a4e17abe245db72761f5a829de9c0a473789c4cef52ac/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f6861787468657765622e7376673f7374796c653d736f6369616c266c6162656c3d466f6c6c6f77" alt="Twitter"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
Welcome to the lrnwebcomponents project!&lt;/h1&gt;
&lt;p&gt;ELMS:LN produced web components for any project&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/elmsln/elmsln-logos/blob/master/haxtheweb/2019-08-14_13-05-52.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ScQqL_Va--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/elmsln/elmsln-logos/raw/master/haxtheweb/2019-08-14_13-05-52.png" alt="Logo"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
Quick-start&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Notice: You will need to use &lt;a href="https://nodejs.org/en/" rel="nofollow"&gt;Node&lt;/a&gt; version 6.0 or higher. Verify that you have yarn enabled — if not &lt;a href="https://yarnpkg.com/lang/en/docs/install/" rel="nofollow"&gt;install yarn globally&lt;/a&gt;. These web components are written in &lt;a href="http://es6-features.org/" rel="nofollow"&gt;ES6&lt;/a&gt; and build routines compile to es5 to encompass legacy browsers.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
Quick Install&lt;/h3&gt;
&lt;div class="highlight highlight-source-shell position-relative js-code-highlight"&gt;
&lt;pre&gt;$ curl -fsSL https://raw.githubusercontent.com/elmsln/lrnwebcomponents/master/scripts/lrnwebcomponentsme.sh -o lrnwebcomponentsme.sh &lt;span class="pl-k"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sh lrnwebcomponentsme.sh&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
Manual Install&lt;/h3&gt;
&lt;div class="highlight highlight-source-shell position-relative js-code-highlight"&gt;
&lt;pre&gt;$ git clone https://github.com/elmsln/lrnwebcomponents.git
$ &lt;span class="pl-c1"&gt;cd&lt;/span&gt; lrnwebcomponents
$ yarn global add @wcfactory/cli
$ yarn global add polymer-cli
$ yarn global add lerna
$ yarn global add web-component-analyzer
$ yarn install&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
Syncing Your Fork&lt;/h3&gt;
&lt;div class="snippet-clipboard-content position-relative"&gt;&lt;pre&gt;&lt;code&gt;$ git remote add upstream https://github.com/elmsln/lrnwebcomponents.git
$ git fetch upstream
$ git pull
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;
Windows&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://git-scm.com/" rel="nofollow"&gt;Git bash&lt;/a&gt; should already be installed on your Windows machine and can be found by searching through your computer's applications or by right-clicking anywhere inside of the File Explorer
&lt;a href="https://www.cygwin.com/" rel="nofollow"&gt;Cygwin command line&lt;/a&gt; is lightly tested,…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/elmsln/lrnwebcomponents"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
 The creator is my professor &lt;div class="ltag__user ltag__user__id__254952"&gt;
  
    .ltag__user__id__254952 .follow-action-button {
      background-color: #1aff00 !important;
      color: #000000 !important;
      border-color: #1aff00 !important;
    }
  
    &lt;a href="/btopro" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XlKkpnlG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--f04cE9aN--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_66%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/254952/93f883b0-267c-4890-8ee5-26a97655af02.gif" alt="btopro image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/btopro"&gt;Bryan Ollendyke&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/btopro"&gt;@elmsln @haxcamp @btopro #HAXTheWeb #drupal #webcomponents #edtech ✻ Full stack unicorn
Adjunct professor teaching about webdev, ethics, and everything in between&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Install necessary dependencies
&lt;/h2&gt;

&lt;p&gt;This project requires downloading and installing yarn, as well as forking the repo and cloning it locally. No matter what project you decided to contribute to be sure to check their readme page! Personally, I use npm all the time, but this project needs yarn and cannot run with npm. If you need git instructions see my git article &lt;a href="https://dev.to/francescaansell/getting-started-with-git-56k7"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Edit some code!
&lt;/h2&gt;

&lt;p&gt;I updated the demo page for the Twitter/embed web component. A demo page can help demonstrate what the web component is supposed to do and the syntax in which to do it. This is the tweet I decided to add &lt;br&gt;
&lt;/p&gt;
&lt;blockquote class="ltag__twitter-tweet"&gt;
    &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__two-pics"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pE6o0VUd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/Exa3UJ9U4AMvOFK.jpg" alt="unknown tweet media content"&gt;
    &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--y_z3TeM5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1351720980972933122/I3MnYUdm_normal.jpg" alt="WeRateDogs® profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        WeRateDogs®
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @dog_rates
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      This is Peyton. He was diagnosed with brain cancer back in January. He’s been so brave during his treatments and as of this week, he is officially a radiation graduate! You can help Peyton with the cost of his care by clicking below. 14/10&lt;br&gt;&lt;br&gt;&lt;a href="https://t.co/GYEW3pgqHO"&gt;gofundme.com/f/help-peyton-…&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      16:42 PM - 26 Mar 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1375488295526752259" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1375488295526752259" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1375488295526752259" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;p&gt;How sweet right? &lt;/p&gt;

&lt;h1&gt;
  
  
  Sumbitt to the development team
&lt;/h1&gt;

&lt;p&gt;Just because you changed one line of code does not mean you are done. Next, you have to submit a pull request to be reviewed by the project's main development team. Github will check for any conflicts etc. that could break their project. &lt;/p&gt;

&lt;p&gt;If you've come to this far and your request gets accepted congrats you have hopefully been able to contribute to an open-source project. Welcome to the real world. &lt;/p&gt;

&lt;p&gt;Check out my youtube video to go with this blog post. &lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webcomponents</category>
      <category>github</category>
      <category>vscode</category>
    </item>
    <item>
      <title>Getting started with Git!</title>
      <dc:creator>Francesca Ansell</dc:creator>
      <pubDate>Wed, 24 Feb 2021 01:15:50 +0000</pubDate>
      <link>https://dev.to/francescaansell/getting-started-with-git-56k7</link>
      <guid>https://dev.to/francescaansell/getting-started-with-git-56k7</guid>
      <description>&lt;p&gt;Using Git and GitHub is one of the most popular ways to collaborate on code with other team members. When using GitHub you will have a local and remote repository (or repo). &lt;/p&gt;

&lt;p&gt;Some key terms you should know are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clone&lt;/li&gt;
&lt;li&gt;pull &lt;/li&gt;
&lt;li&gt;add &lt;/li&gt;
&lt;li&gt;commit&lt;/li&gt;
&lt;li&gt;push&lt;/li&gt;
&lt;li&gt;branch&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cloning a repo creates a copy of a repo either locally or remotely. Git add puts changed files in a staging area so that they can be committed. A commit saves your changes and prepares then to be pushed. A push sends the code from your local repo to the remote repo in GitHub. A  pull retrieves the code from the remote repo and merges it with your local code. &lt;/p&gt;

&lt;p&gt;Branches are extremely useful when working with other team members. You can make different branches and then then merge them together later on. Say you want to work on a specific part of the project. If you make a branch from the current state of the project you can attempt to implement whatever you want without worry of making a catastrophic error.  &lt;/p&gt;

&lt;p&gt;This image gives an example of how merging effects your project. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3pCY67xV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5m02uj3hlwiad2qejeun.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3pCY67xV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5m02uj3hlwiad2qejeun.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Personally I prefer to use git in the command line. I think as a future software developer it is important to be familiar and confident in the command prompt; however, there are a variety of ways to use GitHub. Some of these ways include the command line, VS code extensions, git hub desktop, and github.com. In this video I explain using GitHub in the command line and in VS code. &lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>vscode</category>
    </item>
    <item>
      <title>Auditing lousalternator.com</title>
      <dc:creator>Francesca Ansell</dc:creator>
      <pubDate>Mon, 15 Feb 2021 04:17:42 +0000</pubDate>
      <link>https://dev.to/francescaansell/auditing-lousalternator-com-3ob4</link>
      <guid>https://dev.to/francescaansell/auditing-lousalternator-com-3ob4</guid>
      <description>&lt;p&gt;For this assignment, I choose to audit my dad's business's website... &lt;a href="http://www.lousalternator.com"&gt;lousalternator.com&lt;/a&gt;. I ran two reports, Lighthouse and WAVE. Before I ran these reports however I asked the owner of the website if they were happy with it. He stated that it was slow, but looked better than most other website options. He made these assumptions with no web development background. Based on these two reports three areas of the website that I believe should be improved are contrast, implementing HTTPS, and adding a description to the metadata. &lt;/p&gt;

&lt;p&gt;First relating to accessibility the contrast of the page is not high enough. The website includes only 4 colors: white, black, grey, and blue. The lack of contrast does not allow the significant difference between the background and foreground. Based on the WAVE report the element that creates the errors is light blue text against the white background. I suggest changing the color of the text to a dark blue or dark grey color. &lt;/p&gt;

&lt;p&gt;Second, relating to best web practices I suggest protecting this website with HTTPS. Even though you can not purchase anything on the site and cannot input any sensitive information it is still extremely important to protect the owners and users. This issue can be solved by obtaining a single certificate for a single secure origin. The article 'Secure your site with HTTPS' give good information on how to secure your website and issues after obtaining a certificate to avoid like blocking crawling and making sure the webserver supports SNI &lt;/p&gt;

&lt;p&gt;Third, relating to SEO, aka optimizing for search rankings, the website is missing an alternative text tag and missing metadata descriptions. These are important so that when the search engine returns a list of websites that lousalternator occurs as high as possible on the list. Both of these errors are very easy to fix just by adding alternative text to the image and inserting a description of the webpage in the metadata description. &lt;/p&gt;

&lt;p&gt;Overall the website scored well overall but bad in performance. These changes can easily be made to improve the quality of the website and possibly create more traffic to the site. &lt;/p&gt;

&lt;p&gt;Linked here is a video I made explaining this post and my design suggestions. &lt;/p&gt;

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

&lt;p&gt;References&lt;br&gt;
&lt;a href="https://developers.google.com/search/docs/advanced/security/https"&gt;Secure your site with HTTPS&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>React Framework vs. LitElement Library</title>
      <dc:creator>Francesca Ansell</dc:creator>
      <pubDate>Sun, 07 Feb 2021 17:46:35 +0000</pubDate>
      <link>https://dev.to/francescaansell/react-framework-vs-litelement-library-2jmp</link>
      <guid>https://dev.to/francescaansell/react-framework-vs-litelement-library-2jmp</guid>
      <description>&lt;h4&gt;
  
  
  First up React.
&lt;/h4&gt;

&lt;p&gt;React is a javascript framework used to created user interfaces. It is may up of isolated snippets of code called "components". You use react as an element within your code that you can either store in a variable or pass around. You pass information in 'props' or properties. Here is a method used in the React introduction tutorial.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Square extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      value: null,
    };
  }

  render() {
    return (
      &amp;lt;button
        className="square"
        onClick={() =&amp;gt; this.setState({value: 'X'})}
      &amp;gt;
        {this.state.value}
      &amp;lt;/button&amp;gt;
    );
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This class defines the squares in a Tic Tac Toe board. Value is the prop that defines the states (null or X). You can see this class also uses a constructor used to initialize the state. &lt;/p&gt;

&lt;h4&gt;
  
  
  Next LitElement.
&lt;/h4&gt;

&lt;p&gt;LitElement is a library that advertises itself as a fast and lightweight way to design user interfaces. You can use LitElement in your .js file, or in a framework like react or vue. LitElement follows web components standards which allow you to use it in many different ways. Like, React you use properties to keep track of the attributes and other necessary information related to your elements. Here is a template provided by LitElement.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { LitElement, html } from 'lit-element';

class MyElement extends LitElement {

  // Implement render to define a template for your element.
  render(){
    /**
     * Return a lit-html `TemplateResult`.
     *
     * To create a TemplateResult, tag a JavaScript template literal
     * with the html helper function.
     */
    return html
      &amp;lt;div&amp;gt;
        &amp;lt;p&amp;gt;A paragraph&amp;lt;/p&amp;gt;
      &amp;lt;/div&amp;gt;
    ;
  }
}
customElements.define('my-element', MyElement);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Okay, so what is the difference, and what's similar?
&lt;/h4&gt;

&lt;p&gt;A framework includes code libraries, scripting language, and other software needed to create a project. It is a skeleton of the application you are attempting to build, and as the developer, you fill out the skeleton to create your application. One popular framework you may already know is bootstrap.  Similar to using abstract classes in languages like java and python. &lt;/p&gt;

&lt;p&gt;A library providers smaller helper functions that the user calls, like LitElement. Another example of a library is jQuery. You call a library within your code which allows you to reuse code another developer has already created.  &lt;/p&gt;

&lt;p&gt;An important point of comparison is that a framework is abstract whereas in a library you reuse code that exists on its own.  &lt;/p&gt;

&lt;p&gt;React and LitElement both use keywords such as 'extend', 'super', 'return', and 'render'. Both of these are used in javascript so there are definitely going to be some similarities. Both also use properties to pass information. Both use keywords such as 'extend', 'super', 'return', and 'render'.&lt;/p&gt;

&lt;p&gt;Both can be installed locally fairly easily using npm in the command line. Both need to be imported into your .js file. &lt;/p&gt;

&lt;p&gt;Framework (React)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A collection of patterns and libraries&lt;/li&gt;
&lt;li&gt;Abstract&lt;/li&gt;
&lt;li&gt;Skeleton&lt;/li&gt;
&lt;li&gt;Similar to implementing a java abstract class&lt;/li&gt;
&lt;li&gt;An application in and of itself&lt;/li&gt;
&lt;li&gt;Calls your code &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Library (LitElement)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Well defined actions&lt;/li&gt;
&lt;li&gt;Code reuse&lt;/li&gt;
&lt;li&gt;Usually Require fewer dependencies&lt;/li&gt;
&lt;li&gt;Called within your code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is a popular image that I think gives a good visual of the difference between the two. &lt;/p&gt;

&lt;p&gt;&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%2Fi%2Fkjojte4b5btvq7elxm90.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%2Fi%2Fkjojte4b5btvq7elxm90.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is a video I made on the subject. &lt;/p&gt;

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

</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
