<?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: Maxim Nosov ✪</title>
    <description>The latest articles on DEV Community by Maxim Nosov ✪ (@mnosov622).</description>
    <link>https://dev.to/mnosov622</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%2F921263%2Fb1aee5c4-058b-41b1-97e6-320707da4c4d.jpeg</url>
      <title>DEV Community: Maxim Nosov ✪</title>
      <link>https://dev.to/mnosov622</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mnosov622"/>
    <language>en</language>
    <item>
      <title>Final thoughts on contribution</title>
      <dc:creator>Maxim Nosov ✪</dc:creator>
      <pubDate>Sat, 10 Dec 2022 02:27:31 +0000</pubDate>
      <link>https://dev.to/mnosov622/final-thoughts-on-contribution-1e4o</link>
      <guid>https://dev.to/mnosov622/final-thoughts-on-contribution-1e4o</guid>
      <description>&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;This week I've been wrapping up and polishing my PRs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Today I would like to go over 3 PRs that I did.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Icons
&lt;/h3&gt;

&lt;p&gt;For the &lt;a href="https://github.com/humphd/my-photohub/pull/29"&gt;following PR&lt;/a&gt; I had to come up with logo for the project.&lt;/p&gt;

&lt;p&gt;Here is what I come to the end:&lt;/p&gt;

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

&lt;p&gt;I would say that creating a logo is very creative work to do. Of course, you might take a look at other logos for inspirations, but you need to create one from scratch, because you want the project to be unique and don't have any similarities with the ones that already exist.&lt;/p&gt;

&lt;p&gt;For another Full stack project I have been collaborating with project maintainer and discussed possible improvements. It was very nice talking to Full stack developer and listening to his ideas. &lt;strong&gt;How many great people around us, who seem to be total stranger but are very nice!&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  UI improvements
&lt;/h3&gt;

&lt;p&gt;For &lt;a href="https://github.com/thevahidal/novel/pull/38"&gt;another PR&lt;/a&gt; I was doing overall UI and accessibility improvements. Personally, I really like when people spent some time one designing the website and you can see the effort.&lt;/p&gt;

&lt;p&gt;In the following PR I made basic but very important improvements:&lt;/p&gt;

&lt;h4&gt;
  
  
  Added some hierarchy:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Positioned elements so that they are easily visible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wLvSsE1x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/phzyivhsi1xsebe3efb3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wLvSsE1x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/phzyivhsi1xsebe3efb3.png" alt="Sign up page" width="720" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Made certain elements attract your attention, so that you understand what to do on the website&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Added some beautiful animations, so that user understands that he interacts with buttons, links, etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;It's a great practice to give user sort of response on hovering over a card, link or a button&lt;/strong&gt;. It's such a pain to see some of these elements without any interactions. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pdI5-XAl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2uo64yblsc8tlff2q4mw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pdI5-XAl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2uo64yblsc8tlff2q4mw.gif" alt="Hover effect" width="880" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why it matters ?
&lt;/h3&gt;

&lt;p&gt;Because users want to be engaged. Nobody wants just a static website without any interactions with user. With animations, hierarchy, effects, etc. we make user stay on the website and continue exploring.&lt;/p&gt;

&lt;h3&gt;
  
  
  Remove useless interactions
&lt;/h3&gt;

&lt;p&gt;For &lt;a href="https://github.com/thevahidal/novel/pull/37"&gt;another PR&lt;/a&gt; after discussions with project maintainer we have come to agreement to remove useless alert of saying &lt;em&gt;you need to login in order to create a story&lt;/em&gt;. Instead we simply redirect the user to the log in page and showing error message asking to log in first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final words
&lt;/h3&gt;

&lt;p&gt;It's amazing that people are kind and willing to help you if you struggle with something. It's been a great experience working with Full stack developer and implementing features. &lt;/p&gt;

&lt;p&gt;P.S. &lt;strong&gt;Networking and connecting with people from your industry is amazing&lt;/strong&gt;, who knows what knowing this person might lead in the future. Maybe we end up working together :)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9gkJSqs---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://media1.giphy.com/media/qgQUggAC3Pfv687qPC/giphy.gif%3Fcid%3Decf05e47404796prfuc8au2zfrkoqfr20b4altjdf1whlqfd%26rid%3Dgiphy.gif%26ct%3Dg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9gkJSqs---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://media1.giphy.com/media/qgQUggAC3Pfv687qPC/giphy.gif%3Fcid%3Decf05e47404796prfuc8au2zfrkoqfr20b4altjdf1whlqfd%26rid%3Dgiphy.gif%26ct%3Dg" alt="Logo" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading and have a great week!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Progress on contribution</title>
      <dc:creator>Maxim Nosov ✪</dc:creator>
      <pubDate>Sun, 04 Dec 2022 18:42:14 +0000</pubDate>
      <link>https://dev.to/mnosov622/progress-on-contribution-21po</link>
      <guid>https://dev.to/mnosov622/progress-on-contribution-21po</guid>
      <description>&lt;p&gt;Hi,&lt;/p&gt;

&lt;h3&gt;
  
  
  Progress on logo
&lt;/h3&gt;

&lt;p&gt;This week I've made some progress regarding the tasks, that I've been assigned to.&lt;/p&gt;

&lt;p&gt;First of all, I created a logo for the new project, it looks like that:&lt;/p&gt;

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

&lt;p&gt;I created it with the help of Adobe photoshop. Here I needed to come up with the main colors for the logo. I went for blue color, which is usually represents calmness and trust.&lt;/p&gt;

&lt;h3&gt;
  
  
  Psychology of colors
&lt;/h3&gt;

&lt;p&gt;Choosing the right color, and learning how to combine it correctly with another, is a hurdle that many designers struggle with, especially when starting out.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why is that so?
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;As every color has a meaning&lt;/strong&gt;. Colors help us to feel our emotions, they enable us to make quick associations, they dictate our reaction to things. Knowing how this works is a&lt;br&gt;
powerful tool to have in your toolkit when taking on the world of branding and design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My favourite quote about colors:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Colors are power and designers are the artists that blend them to perfection. They create a story without words and build a connection in one glance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Waiting for approval
&lt;/h3&gt;

&lt;p&gt;After creating a logo, I'm waiting for approval from project maintainers. Once they approve I will go and create different sizes of the logo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Improving UI
&lt;/h3&gt;

&lt;p&gt;For &lt;a href="https://thenovel.netlify.app/"&gt;another project&lt;/a&gt;, I have been enhancing the UI and made minor accessibility modifications.&lt;/p&gt;

&lt;h3&gt;
  
  
  Remove useless action
&lt;/h3&gt;

&lt;p&gt;For the following project, if user wants to create a post but he is not logged in, he will see an alert saying "You need to log in to create a post". &lt;/p&gt;

&lt;p&gt;I think this is not necessary, as most of the applications just redirect you to log in page without alert. Though, UX could be improved by saying you need to log in first in the sign in form.&lt;/p&gt;

&lt;h3&gt;
  
  
  Improve UI with CSS
&lt;/h3&gt;

&lt;p&gt;Also, I have &lt;a href="https://github.com/thevahidal/novel/pull/38"&gt;improved the UI&lt;/a&gt; by including CSS animations, hover effects, and overall content readability.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

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

&lt;p&gt;Putting sign in form in the center is a great approach, I think:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IJi2LiLx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a1c7v2uvgvsbtilkiznx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IJi2LiLx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a1c7v2uvgvsbtilkiznx.png" alt="Log in form" width="880" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are so many things that could be improved on the website in terms of design. I would work on it next week.&lt;/p&gt;

&lt;p&gt;Have a wonderful and productive week !&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>design</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Plan first, then implement</title>
      <dc:creator>Maxim Nosov ✪</dc:creator>
      <pubDate>Sun, 27 Nov 2022 16:27:37 +0000</pubDate>
      <link>https://dev.to/mnosov622/plan-first-then-implement-1epk</link>
      <guid>https://dev.to/mnosov622/plan-first-then-implement-1epk</guid>
      <description>&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;For this week, I will be working on 3(or more) issues for 2 projects: &lt;/p&gt;

&lt;p&gt;1) Designing the logo for the &lt;a href="https://github.com/humphd/my-photohub" rel="noopener noreferrer"&gt;photohub&lt;/a&gt; project.&lt;/p&gt;

&lt;p&gt;2) Enhancing the UI for the &lt;a href="https://github.com/thevahidal/novel" rel="noopener noreferrer"&gt;novel project&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Issue #1
&lt;/h2&gt;

&lt;p&gt;In the &lt;a href="https://github.com/humphd/my-photohub/issues/14" rel="noopener noreferrer"&gt;issue&lt;/a&gt; I started talking with project maintainers and listened to their preferences.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding what client wants ✍
&lt;/h2&gt;

&lt;p&gt;Firstly, before designing a logo, I need to understand what kind of project developers are working on. After that, I need to think of the audience (people who will visit the website).&lt;/p&gt;

&lt;p&gt;Hence, I need to think of the colors that would match the audience. For searching the best color match I will use &lt;a href="https://www.canva.com/colors/color-palettes/" rel="noopener noreferrer"&gt;color pallete &lt;/a&gt;from Canva.&lt;/p&gt;

&lt;p&gt;There, I can see what colors work together.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It's crucial not to fail here&lt;/em&gt; No matter how your logo is creative, if you find a great match, it's half work done.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software to use 🖥️
&lt;/h2&gt;

&lt;p&gt;I will use &lt;strong&gt;Adobe photoshop&lt;/strong&gt; for creating a logo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project # 2
&lt;/h2&gt;

&lt;p&gt;For second project, I will take multiple issues from the project and improve the UI. Also, I might work on the backend as well, if the contributor will allow me to do that.&lt;/p&gt;

&lt;p&gt;For now I'm assigned for a couple of issues: &lt;a href="https://github.com/thevahidal/novel/issues/7" rel="noopener noreferrer"&gt;Issue#1&lt;/a&gt;, &lt;a href="https://github.com/thevahidal/novel/issues/17" rel="noopener noreferrer"&gt;Issue#2&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I'm waiting for project maintainer to create a guidance to run the project locally.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  More improvements 🔥
&lt;/h2&gt;

&lt;p&gt;There are a lot of ideas how to improve the &lt;a href="https://thenovel.netlify.app/" rel="noopener noreferrer"&gt;website&lt;/a&gt; from the UI perspective. Since, I have some experience in web design, I might be useful. &lt;/p&gt;

&lt;p&gt;I will file more issues, that I think could make a project look more appealing later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Floating labels 🔥
&lt;/h2&gt;

&lt;p&gt;For example, let's consider making floating labels on the input. I think you saw something like that before.&lt;/p&gt;

&lt;p&gt;When we click on input, the placeholder moves above the input smoothly and creates great UX.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F3z7rzoolyh201p3zro0d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F3z7rzoolyh201p3zro0d.png" alt="input labels" width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Appealing modal window  🔥
&lt;/h2&gt;

&lt;p&gt;When not logged in user clicks on create a story button, he sees the regular alert:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fhssr7qdz1qepbyi9cybe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fhssr7qdz1qepbyi9cybe.png" alt="Alert" width="563" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This could also be improved. First, I would design a modal window in Figma and then create one.&lt;/p&gt;

&lt;p&gt;I will be working on these projects for the following 2 weeks. I will make a new post regarding the progress and potential issues that could reveal 💯&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Have a wonderful day and let's keep up!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/mnosov622N" rel="noopener noreferrer"&gt;Buy me a coffee&lt;/a&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>Importance of hierarchy on website</title>
      <dc:creator>Maxim Nosov ✪</dc:creator>
      <pubDate>Wed, 23 Nov 2022 17:51:51 +0000</pubDate>
      <link>https://dev.to/mnosov622/importance-of-hierarchy-on-website-38c0</link>
      <guid>https://dev.to/mnosov622/importance-of-hierarchy-on-website-38c0</guid>
      <description>&lt;p&gt;Hi !&lt;/p&gt;

&lt;p&gt;I would love to talk about the importance of hierarchy on the website. I would give you some examples of real projects that you can learn from. I will show what is considered to be a good web design practice and bad.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it's useful to know 🔥
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;This blog would be very useful for designers and software engineers&lt;/strong&gt;. As I realized, it's a good practice to know the basics of what other specialist do in other departments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example&lt;/strong&gt;, If you are a front end engineer, it would be great to know the basics of web design. This way, you can have much more thorough communication with other specialist in the project ☝&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I'm not here to judge other project, but to learn from them.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to overwhelm user 😁
&lt;/h2&gt;

&lt;p&gt;Hierarchy on the website is crucial. I'm sure that you had experience visiting websites when everything is being thrown at you at a one time and it "shouts" with lots of colors, actions and text at you. It's so easy to get confused and lose the point what am I supposed to do here.&lt;/p&gt;

&lt;p&gt;If you want your website to be successful and easy-to-use you need to "point" the user where he should look first, second and third, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bad practice #1
&lt;/h2&gt;

&lt;p&gt;Let's take a look at &lt;a href="https://www.lingscars.com/" rel="noopener noreferrer"&gt;this &lt;/a&gt;website:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fmavytp1nv3x9mj0qpap7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fmavytp1nv3x9mj0qpap7.png" alt="bad design" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tell us about your feelings.&lt;/strong&gt; &lt;strong&gt;Are you confused?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Let's go deeply into the website structure:&lt;/p&gt;

&lt;p&gt;1) How am I supposed to look through the website ? Top to bottom or left to right ?&lt;/p&gt;

&lt;p&gt;2) Too many colors and fonts&lt;/p&gt;

&lt;p&gt;3) Give more space to the elements (in the good examples you can see what I mean by that)&lt;/p&gt;

&lt;h2&gt;
  
  
  Bad practice #2:
&lt;/h2&gt;

&lt;p&gt;Now, let's take a look at another &lt;a href="https://eqv.co.uk/" rel="noopener noreferrer"&gt;website&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fmamdj8y6dwdcgwd9qmi2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fmamdj8y6dwdcgwd9qmi2.png" alt="bad design" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1) What's wrong with navigation bar ? It's taking 30% of the screen size. &lt;/p&gt;

&lt;p&gt;2) Action is happening on the background that just distracts the user from understanding the content.&lt;/p&gt;

&lt;p&gt;3) What's with the text shadow?&lt;/p&gt;

&lt;p&gt;I think your website structure is great, when you can see an answer to a question: &lt;strong&gt;What do you want me to do on your website?&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In the examples above there are no clear indications of paths that I need to follow on the website. &lt;em&gt;&lt;strong&gt;You just get lost.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Good example #1
&lt;/h2&gt;

&lt;p&gt;Now, let's take a look at &lt;a href="https://staylime.com/" rel="noopener noreferrer"&gt;good&lt;/a&gt; examples.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F1eojynmh42bq8ykzad3n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F1eojynmh42bq8ykzad3n.png" alt="good design" width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here let's talk about the way developers want us to look through the website.&lt;/p&gt;

&lt;p&gt;1) Background image&lt;/p&gt;

&lt;p&gt;2) Big text &lt;strong&gt;We help ecommerce evolve&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;3) Button&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F34cqodow05wqvy6i61ww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F34cqodow05wqvy6i61ww.png" alt="Navigation" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Good example #2
&lt;/h2&gt;

&lt;p&gt;Another great &lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;example&lt;/a&gt; - React JS website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fcyeok090hfil1ux0ms2s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fcyeok090hfil1ux0ms2s.png" alt="good design" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are your feelings now ?&lt;/strong&gt; 😍&lt;/p&gt;

&lt;p&gt;1) Great CTA(Call-to-action) asking user to click the button&lt;/p&gt;

&lt;p&gt;2) Amazing color contrast&lt;/p&gt;

&lt;p&gt;3) Clear and concise nav bar&lt;/p&gt;

&lt;p&gt;I think you can see the difference and the effort that was put into design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you have any ideas about the design of the websites above, drop them in the comments.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Stay tuned and have a wonderful week !&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/mnosov622N" rel="noopener noreferrer"&gt;Buy me a coffee&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>Implementing a feature with Vanilla JavaScript</title>
      <dc:creator>Maxim Nosov ✪</dc:creator>
      <pubDate>Sun, 20 Nov 2022 16:54:03 +0000</pubDate>
      <link>https://dev.to/mnosov622/implementing-a-feature-with-vanilla-javascript-ook</link>
      <guid>https://dev.to/mnosov622/implementing-a-feature-with-vanilla-javascript-ook</guid>
      <description>&lt;p&gt;This week I've been contributing to open source project &lt;a href="https://github.com/ashavijit/Meetify" rel="noopener noreferrer"&gt;Meetify&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feature
&lt;/h2&gt;

&lt;p&gt;My idea was that on the &lt;a href="https://meetify-web-app.netlify.app/" rel="noopener noreferrer"&gt;website&lt;/a&gt; user could click on &lt;strong&gt;Screen share button&lt;/strong&gt; and share his screen.&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%2Flo5mwmttobu020oqf9kd.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%2Flo5mwmttobu020oqf9kd.png" alt="screen share"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I implemented this functionality with vanilla Javascript.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vanilla JavaScript 😍
&lt;/h2&gt;

&lt;p&gt;To be honest, I truly enjoy vanilla JS. Without a doubt, there are so many useful JavaScript frameworks that could save a lot of time. Yet, it's amazing what kind of things we can do with vanilla JavaScript: speech recognition, video recording, slider, carousel, etc.  &lt;/p&gt;

&lt;p&gt;Most of this things could be done with JQuery and other frameworks, &lt;strong&gt;but isn't it great to know how to build same thing in multiple ways ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I think it will make you better as a developer 😊&lt;/p&gt;

&lt;p&gt;There is a &lt;a href="https://javascript30.com/" rel="noopener noreferrer"&gt;great course&lt;/a&gt; from WesBos, who builds 30 projects with vanilla JS. I learnt a lot from this one. Not sponsoring, just sharing a great course. If you are interested, you won't regret!&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementation 💻
&lt;/h2&gt;

&lt;p&gt;For my &lt;a href="https://github.com/ashavijit/Meetify/pull/47" rel="noopener noreferrer"&gt;PR&lt;/a&gt; I wrote the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function dumpOptionsInfo() {
    const videoTrack = videoElem.srcObject.getVideoTracks()[0];
    console.log(videoTrack);

    console.info("Track settings:");
    console.info(JSON.stringify(videoTrack.getSettings(), null, 2));
    console.info("Track constraints:");
    console.info(JSON.stringify(videoTrack.getConstraints(), null, 2));
  }

  const videoElem = document.getElementById("video");
  let displayMediaOptions = {
    video: {
      cursor: "always",
      height: 1000,
      width: 1200,
    },
    audio: false,
  };

  async function startCapture() {
    try {
      videoElem.srcObject = await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
      dumpOptionsInfo();
    } catch (err) {
      console.error("Error: " + err);
    }
  }


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

&lt;/div&gt;



&lt;p&gt;For HTML we can use the following code:&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;body&amp;gt;
    &amp;lt;div&amp;gt;
        &amp;lt;video id="video" autoplay playsinline muted&amp;gt;&amp;lt;/video&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div&amp;gt;
        &amp;lt;button id="start"&amp;gt; Start Screen Sharing&amp;lt;/button&amp;gt;
        &amp;lt;button id="stop"&amp;gt; Stop&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When clicking on Start Screen Sharing button you should have a popup like that:&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%2F2i9gtkwqw46ggrrs6qjk.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%2F2i9gtkwqw46ggrrs6qjk.png" alt="popup"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can click on the window and screen sharing will start.&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%2Fzi5wp95zxghptzwne9oi.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%2Fzi5wp95zxghptzwne9oi.png" alt="screen sharing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazing, right ?&lt;/strong&gt; ✨&lt;/p&gt;

&lt;p&gt;You can check more detailed blog about screen sharing with Javascript &lt;a href="https://hackernoon.com/creating-a-screen-sharing-application-with-javascript" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you would like to support me, you can&lt;a href="https://www.buymeacoffee.com/mnosov622N" rel="noopener noreferrer"&gt; buy me a coffee&lt;/a&gt;. It will motivate me to write better blogs and share knowledge.&lt;/p&gt;

&lt;p&gt;Let us know what do you think in the comments :) If you have any other vanilla JavaScript courses you want to share, let us know :)&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Code review best practices</title>
      <dc:creator>Maxim Nosov ✪</dc:creator>
      <pubDate>Sat, 19 Nov 2022 20:49:43 +0000</pubDate>
      <link>https://dev.to/mnosov622/code-review-3l14</link>
      <guid>https://dev.to/mnosov622/code-review-3l14</guid>
      <description>&lt;p&gt;Hi everyone,&lt;/p&gt;

&lt;p&gt;This week I've been doing some code reviews for &lt;a href="https://github.com/Seneca-CDOT/telescope"&gt;Telescope&lt;/a&gt; project.&lt;/p&gt;

&lt;p&gt;I would love to share some tips for code review that I figured out.&lt;/p&gt;

&lt;p&gt;I've reviewed 2 PRs. &lt;a href="https://github.com/Seneca-CDOT/telescope/pull/3700"&gt;PR#1&lt;/a&gt; and &lt;a href="https://github.com/Seneca-CDOT/telescope/pull/3769"&gt;PR#2&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Don't take it personally
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;People review the code, not your personality&lt;/em&gt;. Project maintainers might be very strict. Hence, they might request changes for almost every line if they see it could be written better.&lt;/p&gt;

&lt;p&gt;We have to remember that with code reviews we are just &lt;strong&gt;eliminating common mistakes and making ourselves better as developers&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow code review checklist
&lt;/h2&gt;

&lt;p&gt;List at least 3 things you need to check in the code. For example, it could be the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Security &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reusability (e.g. can we reuse the written functions)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code simplicity&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Multiple reviewers
&lt;/h2&gt;

&lt;p&gt;Code review is a team work, meaning it's better when multiple people review a little piece of code.&lt;/p&gt;

&lt;p&gt;It will help to stay focused and not feel overwhelmed. As a beginner, &lt;strong&gt;If you review only 50 lines of code, it will be much easier comparing to reviewing 1000 lines of code&lt;/strong&gt;, where at some point, you might lose concentration. Programmers are humans, not robots :)&lt;/p&gt;

&lt;h2&gt;
  
  
  Leave proper comments
&lt;/h2&gt;

&lt;p&gt;In the comments, **leave clear and concise comments **about what should be changed and why it's a best practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automate code styling
&lt;/h2&gt;

&lt;p&gt;We need to use automation for repetitive tasks as much as we can. &lt;strong&gt;Use prettier and linter&lt;/strong&gt; to make sure that code is easy to read.&lt;/p&gt;

&lt;p&gt;If you enjoy blogs, you could &lt;a href="https://www.buymeacoffee.com/mnosov622N"&gt;buy me a coffee&lt;/a&gt;. It will motivate to write better blogs :)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What else do you think could be considered as code review best practice ?&lt;/strong&gt; Let me know in the comments :)&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Little things lead to a big effect</title>
      <dc:creator>Maxim Nosov ✪</dc:creator>
      <pubDate>Wed, 16 Nov 2022 00:44:37 +0000</pubDate>
      <link>https://dev.to/mnosov622/little-changes-lead-to-a-big-effect-ce2</link>
      <guid>https://dev.to/mnosov622/little-changes-lead-to-a-big-effect-ce2</guid>
      <description>&lt;p&gt;In this article I would love to talk about the design and its importance on the website.&lt;/p&gt;

&lt;p&gt;This week I've been contributing to open source project &lt;a href="https://github.com/Seneca-CDOT/telescope"&gt;telescope&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Little bug
&lt;/h2&gt;

&lt;p&gt;The issue I noticed is that on the &lt;a href="https://telescope.cdot.systems/search/"&gt;search page&lt;/a&gt; typography is different from the typography that is used on other pages of the website.&lt;/p&gt;

&lt;p&gt;My suggestion was to be consistent and use the same text font all over across the website.&lt;/p&gt;

&lt;p&gt;Here is how it looked before:&lt;/p&gt;

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

&lt;p&gt;And here is how it looks now:&lt;/p&gt;

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

&lt;p&gt;Looks more appealing, right ?&lt;/p&gt;

&lt;h2&gt;
  
  
  Why design matters
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;- First impression&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Basically, the design of the website is the first thing we see once we visit any webpage. Studies say, that we need only 0.5 seconds to decide whether we will stay on the website or leave. Hence, please never neglect the web design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- SEO&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This will help search engine spiders craw and index the website correctly. If we want our website to get higher in the search results, we should consider practicing SEO-friendly code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Consistency&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's essential to have consistent design(e.g. font, color of the button, etc.). It shows the professionalism. For example, if CTA(Call-to-action) button on one page is blue and on another page it's orange, that gives a bad UX.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some programmers are so picky
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;You never know what type of user is on the other side of the screen&lt;/strong&gt;. What if it's a very picky person, perfectionist, trying to find bugs, and basically trying to break the system (in a good way of course).&lt;/p&gt;

&lt;p&gt;Sure thing, there are regular users who just use the website as it should be used, but there are a lot of people who enjoy finding issues and improving the websites.&lt;/p&gt;

&lt;h2&gt;
  
  
  Little things are not little things
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;We should never underestimate little things&lt;/em&gt;. You might be surprised how little things could dramatically lead to something big.&lt;/p&gt;

&lt;p&gt;Even though, the whole website may look perfect, one little bug could spoil user experience. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That brings us to an interesting point&lt;/strong&gt;: we should never think of something as not important, because we all different and someone will find things important while others may not even notice your new feature that you have been working on for 6 months. &lt;/p&gt;

&lt;h2&gt;
  
  
  Users see your commitment
&lt;/h2&gt;

&lt;p&gt;I think you can see when the website was built for 2 hours or for 2 months. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Whenever you visit a website, you can see how you want to be treated&lt;/em&gt;. I would say that web design is all about the psychology, because you need to know what influences people, what colors are better for your website audience, how to make user stay on the website and many more aspects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Great way to test your website
&lt;/h2&gt;

&lt;p&gt;Ask your friend or relative to open your website and look through it. You can ask their thoughts about the ease of use and get independent opinion. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I guarantee you will be surprised how people do things differently&lt;/strong&gt;  and what kind of experience they get on the website.&lt;/p&gt;

&lt;p&gt;Let me know what you think about web design in the comments.&lt;/p&gt;

&lt;p&gt;Let's talk about the web design, connect with me on &lt;a href="https://www.linkedin.com/in/maxim-nosov-828894220/"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>design</category>
      <category>css</category>
    </item>
    <item>
      <title>Continuous integration pipeline</title>
      <dc:creator>Maxim Nosov ✪</dc:creator>
      <pubDate>Mon, 14 Nov 2022 18:30:11 +0000</pubDate>
      <link>https://dev.to/mnosov622/continuous-integration-pipeline-3dcd</link>
      <guid>https://dev.to/mnosov622/continuous-integration-pipeline-3dcd</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;This week I've been working on setting github CI(Continuous integration) workflow, as well as wrote tests for another project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Workflow set up
&lt;/h2&gt;

&lt;p&gt;To set up &lt;a href="https://github.com/mnosov622/simple-ssg1/actions/runs/3402442050"&gt;workflow&lt;/a&gt; I added nodeJS.yml file that &lt;strong&gt;runs on any push or PR to main branch.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;nodeJS.yml file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: Node.js CI

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [14.x, 16.x, 18.x]
        # See supported Node.js release schedule at https://nodejs.org/en/about/releases/

    steps:
    - uses: actions/checkout@v3
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v3
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - run: npm ci
    - run: npm run build --if-present
    - run: npm test

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

&lt;/div&gt;



&lt;p&gt;The structure of the file may look complex at first glance, but it turned out it's very easy-to-read.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing tests to another project
&lt;/h2&gt;

&lt;p&gt;It was very enjoyable process: talking with maintainer, making the suggestions in the code that he asks.&lt;/p&gt;

&lt;p&gt;For me, I was very lucky to have a great partner, who has a very clean and concise project with appropriate code. It didn't take much time to understand how the code works.&lt;/p&gt;

&lt;p&gt;For my &lt;a href="https://github.com/gulyapulya/SSGulnur/pull/18"&gt;PR&lt;/a&gt; I did basic tests checking the functions for unexpected output.&lt;/p&gt;

&lt;p&gt;I got experience writing tests for another project, fixing the code, while maintainer got experience reviewing my code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tests, test and tests
&lt;/h2&gt;

&lt;p&gt;As I see, it's never enough of writing tests, but we can and we should cover the basics of testing to prevent our tool from unexpected behavior. &lt;/p&gt;

&lt;p&gt;It's very important to collaborate with your peers, so they can test your project. They might find some issues, that you could never find on your own :)&lt;/p&gt;

&lt;h2&gt;
  
  
  Continuous integration is a must
&lt;/h2&gt;

&lt;p&gt;CI saves us a lot of time. For example, if someone makes a PR to the project, he can see that his code didn't pass the tests. Hence, he could immediately go and make necessary changes in the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automation
&lt;/h2&gt;

&lt;p&gt;It's a great practice to automate repetitive things. With the help of github CI workflow we could save our time, write the code once and let it do the work for us.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>javascript</category>
      <category>jest</category>
      <category>node</category>
    </item>
    <item>
      <title>Software release using npm</title>
      <dc:creator>Maxim Nosov ✪</dc:creator>
      <pubDate>Thu, 10 Nov 2022 00:31:16 +0000</pubDate>
      <link>https://dev.to/mnosov622/software-release-using-npm-52l9</link>
      <guid>https://dev.to/mnosov622/software-release-using-npm-52l9</guid>
      <description>&lt;p&gt;Hi,&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;This week I've been working on releasing my &lt;a href="https://www.npmjs.com/package/simple-ssg1"&gt;tool&lt;/a&gt;using &lt;a href="https://www.npmjs.com/"&gt;npm&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To install the tool, run &lt;code&gt;npm i simple-ssg1&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to prepare your project for publishing
&lt;/h2&gt;

&lt;p&gt;1) Sign up for npmjs&lt;br&gt;
2) Make sure you have package.json file&lt;br&gt;
3) Add README.md, so that users will be able to understand what is your project about and how to set it up.&lt;br&gt;
4) run &lt;code&gt;npm publish&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Each time you need to update your package, you can run &lt;code&gt;npm version &amp;lt;update-type&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Update types
&lt;/h3&gt;

&lt;p&gt;Each digit in the version (e.g. &lt;strong&gt;2.3.0&lt;/strong&gt;) has it's own meaning:&lt;/p&gt;

&lt;p&gt;1) First digit (2) means major release.&lt;/p&gt;

&lt;p&gt;2) Second digit means minor change in the software(resetting last digit to 0)&lt;/p&gt;

&lt;p&gt;3) Last digit means patch release.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reviewing the tool
&lt;/h3&gt;

&lt;p&gt;It's very important that somebody checks how your tools works. One view is good, but multiple is better. Another people may find issues that you could never think of, because we all look at software from different perspectives.&lt;/p&gt;

&lt;p&gt;It's very good when people try to break your tool to see how it's going to work in hard times. &lt;/p&gt;

&lt;h3&gt;
  
  
  Feedback and failures
&lt;/h3&gt;

&lt;p&gt;It's crucial not to take feedback personally. We should thank people when they give us the feedback, because are literally pointing where we need to improve.&lt;/p&gt;

&lt;p&gt;Mistakes and failures are part of project. I believe that if a project is going great and doesn't give you any challenges, then I would question this project :)&lt;/p&gt;

&lt;p&gt;I know a lot of people love comfort and prefer easy things to complicated ones. However, do we grow personally and as developers? Problem-solving - that's what drives most of us. As for me, I genuinely enjoy resolving problems (even though they can &lt;br&gt;
drive me crazy).&lt;/p&gt;

&lt;h3&gt;
  
  
  Part of community
&lt;/h3&gt;

&lt;p&gt;It's a great feeling when you see your package in the npm publicly. You are feeling yourself as a part of a big community. People can use it all around the world and that makes you feel very useful :)&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>npm</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Testing the tool</title>
      <dc:creator>Maxim Nosov ✪</dc:creator>
      <pubDate>Sat, 05 Nov 2022 17:20:18 +0000</pubDate>
      <link>https://dev.to/mnosov622/testing-the-tool-4kp</link>
      <guid>https://dev.to/mnosov622/testing-the-tool-4kp</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;For my &lt;a href="https://github.com/mnosov622/simple-ssg1"&gt;SSG &lt;/a&gt;tool I used &lt;a href="https://jestjs.io/"&gt;Jest&lt;/a&gt;, because it was made for JavaScript language(language my tool is using) and pretty straightforward to use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set up
&lt;/h2&gt;

&lt;p&gt;1) To start using jest simply run:&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 --save-dev jest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2) Create JavaScript file(e.g. sum.js) and add the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function sum(a, b) {
  return a + b;
}
module.exports = sum;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3) Create testing file(sum.test.js) and add the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const sum = require('./sum');

test('adds 1 + 2 to equal 3', () =&amp;gt; {
  expect(sum(1, 2)).toBe(3);
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4) Add the following to your package.json file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
    "test": "jest"
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;6) Run&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Testing the tool
&lt;/h3&gt;

&lt;p&gt;It was quite fun to test the tool for unpredictable behavior by passing invalid parameters to the function and checking the output.&lt;/p&gt;

&lt;p&gt;Testing requires a lot of code, we need to consider covering most of testing scenarios to make sure that application doesn't crash.&lt;/p&gt;

&lt;h3&gt;
  
  
  Testing is crucial
&lt;/h3&gt;

&lt;p&gt;I never worked with testing libraries before, but it's very important for any application.&lt;/p&gt;

&lt;p&gt;People say, that it could be never guaranteed that your application will be bug free, but we can reduce amount of bugs by having significant amount of test cases. &lt;/p&gt;

&lt;p&gt;To make sure we are testing all lines of code, we can use &lt;strong&gt;jest coverage&lt;/strong&gt;. It makes possible to spot untested paths in our code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sum up
&lt;/h3&gt;

&lt;p&gt;Testing application requires a lot of time, but it's required to provide high quality software. For future projects I will consider writing test.&lt;/p&gt;

&lt;p&gt;Lastly, it's important not to overuse jest: run tests for your tests :)&lt;/p&gt;

&lt;p&gt;Thank you for reading!&lt;/p&gt;

</description>
      <category>testing</category>
      <category>opensource</category>
      <category>javascript</category>
      <category>jest</category>
    </item>
    <item>
      <title>Static analysis tools</title>
      <dc:creator>Maxim Nosov ✪</dc:creator>
      <pubDate>Sun, 30 Oct 2022 20:45:55 +0000</pubDate>
      <link>https://dev.to/mnosov622/static-analysis-tools-3de0</link>
      <guid>https://dev.to/mnosov622/static-analysis-tools-3de0</guid>
      <description>&lt;p&gt;Hi !&lt;/p&gt;

&lt;h3&gt;
  
  
  Static Analysis tools
&lt;/h3&gt;

&lt;p&gt;This week I've been setting up code formatters for my &lt;a href="https://github.com/mnosov622/simple-ssg1"&gt;project&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To format the code I used &lt;a href="https://prettier.io/"&gt;prettier&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;To remove lints from the code I used &lt;a href="https://eslint.org/"&gt;Eslint&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Setting up these tools for your project is not complicated at all. I will briefly cover steps to do that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prettier:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1) Run &lt;code&gt;npm install --save-dev --save-exact prettier&lt;/code&gt; to install prettier&lt;/p&gt;

&lt;p&gt;2) Create empty config file for your rules with the following command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;echo {}&amp;gt; .prettierrc.json&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;3) Create &lt;code&gt;.prettierignore&lt;/code&gt; file and write files and folders you want prettier not to format&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ESLint:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Setting up is very similar to prettier.&lt;/p&gt;

&lt;p&gt;1) Run &lt;code&gt;npm init @eslint/config&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;2) Open created &lt;code&gt;.eslintrc.{js,yml,json}&lt;/code&gt; file&lt;/p&gt;

&lt;p&gt;3) Write rules for ESLint&lt;/p&gt;

&lt;h3&gt;
  
  
  Overview
&lt;/h3&gt;

&lt;p&gt;These tools are very powerful and make our life easier. You just code and don't worry about formatting. To be honest, previously when I didn't know about code formatters, I used to manually fix the indentation in files. Uh, that was a work :D&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I added &lt;code&gt;"prettier": "npx prettier --write ."&lt;/code&gt; to the scripts of package.json file in order to run prettier from command line with &lt;code&gt;npm run prettier&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Also, added &lt;code&gt;"eslint": "npx eslint ."&lt;/code&gt; to the scripts of package.json file, so I can run &lt;code&gt;npm run eslint&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After I run these tools, code becomes more readable and structured.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to integrate tools with IDE?
&lt;/h3&gt;

&lt;p&gt;To integrate these tools with IDE we need to add &lt;code&gt;.vscode&lt;/code&gt; folder to the root of project and add &lt;code&gt;settings.json&lt;/code&gt; file, specifying which prettier we would like to use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code formatters are great!
&lt;/h3&gt;

&lt;p&gt;I truly enjoy that tools like prettier exists, they simplify the process of coding. You just save and all formatting is done automatically!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>github</category>
    </item>
    <item>
      <title>Hacktoberfest Summary</title>
      <dc:creator>Maxim Nosov ✪</dc:creator>
      <pubDate>Sun, 30 Oct 2022 17:42:14 +0000</pubDate>
      <link>https://dev.to/mnosov622/hacktoberfest-summary-2nmb</link>
      <guid>https://dev.to/mnosov622/hacktoberfest-summary-2nmb</guid>
      <description>&lt;p&gt;Hi!&lt;/p&gt;

&lt;h3&gt;
  
  
  Overview
&lt;/h3&gt;

&lt;p&gt;This was my first ever participation in Hacktoberfest and I really glad I knew about that. It's amazing how people are contributing to all projects, even if some are pretty straightforward. With every project, there are so many features popping into the head. &lt;strong&gt;Everyone wants to feel himself as a part of software.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;git commands&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Git is very tricky sometimes, but it turns out it's not complicated once you practice it for a while. Commands that are better to know before you start contributing:&lt;br&gt;
&lt;/p&gt;

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

git commit

git status

git push

git merge

git clone

git fetch

git pull

git rebase -i HEAD~3 // e.g. for squashing last 3 commits into one

git checkout -b &amp;lt;branch-name&amp;gt; // to create a new branch from current branch and jump into it

git reset // e.g. git reset --hard ~HEAD, to move the pointer to the HEAD, meaning all your current changes will be gone.

git stash // to stash your changes and pop them another time

git remote add &amp;lt;name&amp;gt; &amp;lt;link&amp;gt; // to add remote repo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One blog is not even enough for must know git commands, but these are the most important once to me.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Competitions for issues&lt;/strong&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are a lot of people that want to take issue. It's just a matter of who is the first one :)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;People are more likely to take easy issues and not go with challenging&lt;/strong&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is very interesting topic, that's what I noticed for myself. People are tend to take the issues, that they are familiar with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you know if you are capable of fixing certain issue? What if you are just underestimating your abilities(which is mostly like to be true) ?&lt;/strong&gt; Great questions to ask yourself :)&lt;/p&gt;

&lt;p&gt;Yes, big projects require you a lot of time to understand how everything works, it's just not a comfort zone for us yet, and, of course, brain treats it as a threat :) &lt;/p&gt;

&lt;p&gt;However, once you spend some time working on big project, you will get used to it and pull it into your comfort zone.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Improve your skills&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It will never be that you will have to solve same issue, that you already solved in the past. It might be similar but requires another look at it. All of them are different and give you some challenge!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prettier is a must&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you leave prettier out of the box for your project, you will encounter different code style, and eventually it worsens understanding of the code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best practice is to make sure that code is written in one style and formatted in the same way.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Too many issues&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The point of that, is that you might struggle a lot with the amount of issue that are there. To make it less overwhelming, the best thing to do is sort the issues based on your language and issue type(e.g. feature, bug, good-first-issue).&lt;/p&gt;

&lt;p&gt;Instead of randomly scrolling through the bunch of issues, it's better to stick with one language and some labels that fit you. This way you are more likely to find a good one, that is for your abilities.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Open source projects teach you&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you contribute to certain project, it's very likely to be that you are not familiar yet with framework or any other technology they are using. That's where you have a chance to learn it. When, if not know ?&lt;/p&gt;

&lt;p&gt;Open source projects push you to learn new things and develop yourself. &lt;strong&gt;All you have to do is be persistent and not give up once something is not working with first try&lt;/strong&gt;. &lt;/p&gt;

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

&lt;p&gt;I would love to thank all project maintainers for their time and PRs accepted. &lt;strong&gt;Best morning starts with PR have been merged&lt;/strong&gt; :D&lt;/p&gt;

&lt;p&gt;Hacktoberfest gave me such a pleasant time. Next year, I will contribute again, but with more experience :) &lt;/p&gt;

&lt;p&gt;I hope you enjoyed your Hacktoberfest and thank you for reading :)&lt;/p&gt;

&lt;p&gt;Let's connect on &lt;a href="https://www.linkedin.com/in/maxim-nosov-828894220/"&gt;LinkedIn &lt;/a&gt;to share experience. I'm open to everyone :)&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>opensource</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
