<?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>Forem: Charalambos Ioannou</title>
    <description>The latest articles on Forem by Charalambos Ioannou (@charalambosioannou).</description>
    <link>https://forem.com/charalambosioannou</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%2F387414%2F495529ae-e893-47d2-bbb0-6a2ec674bfd9.jpg</url>
      <title>Forem: Charalambos Ioannou</title>
      <link>https://forem.com/charalambosioannou</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/charalambosioannou"/>
    <language>en</language>
    <item>
      <title>Getting Started with Git and GitHub: A simple roadmap</title>
      <dc:creator>Charalambos Ioannou</dc:creator>
      <pubDate>Sun, 04 Jun 2023 03:00:00 +0000</pubDate>
      <link>https://forem.com/charalambosioannou/getting-started-with-git-and-github-a-simple-roadmap-lfn</link>
      <guid>https://forem.com/charalambosioannou/getting-started-with-git-and-github-a-simple-roadmap-lfn</guid>
      <description>&lt;p&gt;This guide will offer a summary on how to get started and learn about Git and Github. &lt;/p&gt;

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

&lt;p&gt;Here is the roadmap in a simple image  representation:&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%2Fo9nu44hz0i4ajz27cxg2.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%2Fo9nu44hz0i4ajz27cxg2.png" alt="Git and GitHub Roadmap"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Roadmap:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;What is Git and Github&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn what is Git and GitHub.&lt;/li&gt;
&lt;li&gt;Understand why it is important for developers&lt;/li&gt;
&lt;li&gt;Install Git locally and create GitHub account.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Basic and Useful Git Commands&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn basic Git commands, such as &lt;code&gt;git init&lt;/code&gt;, &lt;code&gt;git add&lt;/code&gt;, and &lt;code&gt;git commit&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Link Git and GitHub together&lt;/li&gt;
&lt;li&gt;Learn about branches, for example creating and merging branches&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Collaborate with Git&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn about cloning repositories and forking repositories.&lt;/li&gt;
&lt;li&gt;Learn about pull requests and how they are used.&lt;/li&gt;
&lt;li&gt;Practise pulling and pushing changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Advanced Git and GitHub commands and features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn advanced Git commands, such as, &lt;code&gt;git rebase&lt;/code&gt;, and &lt;code&gt;git reset&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Learn to resolve merge conflicts &lt;/li&gt;
&lt;li&gt;Learn about GitHub workflows, actions and codespaces.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Learn Markdown&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Everything in GitHub is written in Markdown so it is a good idea to know the basics of how to write in Markdown.&lt;/li&gt;
&lt;li&gt;Useful rescources for this are: &lt;a href="https://www.markdownguide.org/cheat-sheet/" rel="noopener noreferrer"&gt;Markdown Cheatsheet&lt;/a&gt; and &lt;a href="https://dillinger.io/" rel="noopener noreferrer"&gt;Markdown Editor&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I hope you enjoyed reading this short guide and found the content helpful. If you want more information you can always reach out to me and I will help as best as I can  😄.&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Dream Job vs. Tech Job?</title>
      <dc:creator>Charalambos Ioannou</dc:creator>
      <pubDate>Wed, 01 Jun 2022 09:02:27 +0000</pubDate>
      <link>https://forem.com/charalambosioannou/dream-job-vs-tech-job-5fdj</link>
      <guid>https://forem.com/charalambosioannou/dream-job-vs-tech-job-5fdj</guid>
      <description>&lt;p&gt;Hello Devs!&lt;/p&gt;

&lt;p&gt;I have recently stumbled upon a dilemma which I would appreciate your input. &lt;/p&gt;

&lt;p&gt;Since I was a kid I had in mind a job which I would have liked to dedicate my life to. However the chances of getting that job were 15 out of 1000 people, so I gave up that dream because of the minimal odds of acceptance and followed my second passion which was technology. Now I have dedicated my entire studies and life to tech and managed to get a job in a FAANG company starting in &lt;strong&gt;September&lt;/strong&gt;. It’s worth noting that I am very passionate and love tech, coding and the community. &lt;/p&gt;

&lt;p&gt;However, one day I decided to interview for my dream job as well. This interview process is very lengthy and is done once every 2 years. Without believing it I got an offer again starting in &lt;strong&gt;September&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;So I am asking what would you do. Would you take a job at FAANG which you know dedicated and studied for a long time or would you reject the FAANG offer and accept your dream job?&lt;/p&gt;

&lt;p&gt;Any feedback is appreciated! 😀&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>help</category>
    </item>
    <item>
      <title>Create an Awesome Cover Letter with GPT-3</title>
      <dc:creator>Charalambos Ioannou</dc:creator>
      <pubDate>Wed, 27 Apr 2022 16:02:44 +0000</pubDate>
      <link>https://forem.com/charalambosioannou/create-an-awesome-cover-letter-with-gpt-3-4f65</link>
      <guid>https://forem.com/charalambosioannou/create-an-awesome-cover-letter-with-gpt-3-4f65</guid>
      <description>&lt;p&gt;In this tutorial I am going to show you how to use a deep learning model called GPT-3 to create a cover letter for you in seconds with tons of variation. This cover letter can be used when applying for new jobs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sections:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What is GPT-3?&lt;/li&gt;
&lt;li&gt;Is it cheating?&lt;/li&gt;
&lt;li&gt;What will we be coding?&lt;/li&gt;
&lt;li&gt;
Tutorial Steps

&lt;ol&gt;
&lt;li&gt;Step 1: Create a new account with OpenAI&lt;/li&gt;
&lt;li&gt;Step 2: Create new API key&lt;/li&gt;
&lt;li&gt;Step 3: Time To Code&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Full Code&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is GPT-3?
&lt;/h2&gt;

&lt;p&gt;GPT-3 stands for Generative Pre-trained Transformer 3 and is a transformer model created by OpenAI. In short this model was created and trained using text on the internet, and can be used to generate realistic human text.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is it cheating?
&lt;/h2&gt;

&lt;p&gt;Since all of us here are developers, having an algorithm generate realistic text for a cover letter shows innovation and staying up to date with all the latest trends in technology. So I do not believe this is cheating in any way but shows dedication and curiosity to learn new technologies.&lt;/p&gt;

&lt;p&gt;I have personally used this for a job application and the feedback that I got was that "Your application stood out to us..." and finally after passing the next interview steps got offered a job. &lt;/p&gt;

&lt;h2&gt;
  
  
  What will we be coding?
&lt;/h2&gt;

&lt;p&gt;What we will be coding is very simple, we are just utilizing the power of the GPT-3 algorithm. We will not be training or testing anything. We will simply supply the GPT-3 algorithm with some sample cover letters so that it will understand what we are trying to generate and then call a function which runs the GPT-3 algorithm and generates our cover letter.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Without further ado let’s dive into the tutorial.&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Create a new account with OpenAI
&lt;/h3&gt;

&lt;p&gt;Click &lt;a href="https://beta.openai.com/signup" rel="noopener noreferrer"&gt;here&lt;/a&gt; to go to OpenAI's sign up page and create a new account.&lt;/p&gt;

&lt;p&gt;After the account is created some free credits are given to you which expire &lt;strong&gt;within one month&lt;/strong&gt;. So be sure to create your cover letter within that month.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Create new API key
&lt;/h3&gt;

&lt;p&gt;By going to your account on the top right corner and clicking on "View API keys" you are redirected to the page where you can create a new key. This can be seen on the screenshot below. Go ahead and create a new API key.&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%2Fmypc0ecjbzth88shnwxi.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%2Fmypc0ecjbzth88shnwxi.png" alt="Create new API key"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Time To Code
&lt;/h3&gt;

&lt;p&gt;Open up your favourite code editor and follow along with me. We only need to do 5 steps. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; First we import the necessary libraries. Most probably you will need to install the openai library by typing &lt;code&gt;pip install openai&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;ai&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; Then we add our API key as a variable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY_HERE&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3)&lt;/strong&gt; Then we import our text file which contains some sample inputs along with responses so that GPT-3 will know what to generate.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prompt.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pro&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This file has the form of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Input: Generate a cover letter for a Management Consulting job at Goldman Sachs. 

Output: Dear Hiring Manager,

I would like .....

Input: "Generate a cover letter for a Management Consulting job at ABC company."

Output:

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

&lt;/div&gt;



&lt;p&gt;By leaving the output as blank in the last line, the algorithm will know and fill out the text by itself. By adding more input/output combinations the algorithm learns better what to generate.&lt;br&gt;
The full text file that I used can be found &lt;a href="https://github.com/CharalambosIoannou/GPT-3-Cover-Letter/blob/main/prompt.txt" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4)&lt;/strong&gt; We then create our model using the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;returns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Completion&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;engine&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;davinci&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# OpenAI has made four text completion engines available, named davinci, ada, babbage and curie. We are using davinci, which is the most capable of the four.
&lt;/span&gt;    &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# The text file we use as input (step 3)
&lt;/span&gt;    &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# how many maximum characters the text will consists of.
&lt;/span&gt;    &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# a number between 0 and 1 that determines how many creative risks the engine takes when generating text.,
&lt;/span&gt;    &lt;span class="n"&gt;top_p&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# an alternative way to control the originality and creativity of the generated text.
&lt;/span&gt;    &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# number of predictions to generate
&lt;/span&gt;    &lt;span class="n"&gt;frequency_penalty&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# a number between 0 and 1. The higher this value the model will make a bigger effort in not repeating itself.
&lt;/span&gt;    &lt;span class="n"&gt;presence_penalty&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt; &lt;span class="c1"&gt;# a number between 0 and 1. The higher this value the model will make a bigger effort in talking about new topics.
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All parameters this function takes are explained as comments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5)&lt;/strong&gt; Lastly we need to obtain the actual text return from the function. This is done using the following line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;returns&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;choices&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you choose to return more than 1 sample (set n&amp;gt;1 in the function above) you need to change the &lt;code&gt;[0]&lt;/code&gt; to the corresponding&lt;br&gt;
index.&lt;/p&gt;
&lt;h3&gt;
  
  
  Full Code:
&lt;/h3&gt;

&lt;p&gt;For those who just need the code here is the complete file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;ai&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY_HERE&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# Import text prompt
&lt;/span&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prompt.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pro&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# The Model
&lt;/span&gt;&lt;span class="n"&gt;returns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Completion&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;engine&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;davinci&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# OpenAI has made four text completion engines available, named davinci, ada, babbage and curie. We are using davinci, which is the most capable of the four.
&lt;/span&gt;    &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# The text file we use as input (step 3)
&lt;/span&gt;    &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# how many maximum characters the text will consists of.
&lt;/span&gt;    &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# a number between 0 and 1 that determines how many creative risks the engine takes when generating text.,
&lt;/span&gt;    &lt;span class="n"&gt;top_p&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# an alternative way to control the originality and creativity of the generated text.
&lt;/span&gt;    &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# number of predictions to generate
&lt;/span&gt;    &lt;span class="n"&gt;frequency_penalty&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# a number between 0 and 1. The higher this value the model will make a bigger effort in not repeating itself.
&lt;/span&gt;    &lt;span class="n"&gt;presence_penalty&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt; &lt;span class="c1"&gt;# a number between 0 and 1. The higher this value the model will make a bigger effort in talking about new topics.
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;returns&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;choices&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This along with the sample text file can be found on my &lt;a href="https://github.com/CharalambosIoannou/GPT-3-Cover-Letter" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt; as well.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;THAT’S IT!!!&lt;br&gt;
I hope you find this easy and useful.&lt;/p&gt;

&lt;p&gt;Hope you enjoyed it 😄.&lt;/p&gt;

&lt;p&gt;Happy Exploring!!&lt;/p&gt;

</description>
      <category>python</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>10+1 Useful Python Code Snippets for Everyday Problems</title>
      <dc:creator>Charalambos Ioannou</dc:creator>
      <pubDate>Thu, 06 Jan 2022 09:36:41 +0000</pubDate>
      <link>https://forem.com/charalambosioannou/10-useful-one-liner-python-code-snippets-to-make-your-everyday-coding-useful-javascript-code-snippets-for-common-problems-351</link>
      <guid>https://forem.com/charalambosioannou/10-useful-one-liner-python-code-snippets-to-make-your-everyday-coding-useful-javascript-code-snippets-for-common-problems-351</guid>
      <description>&lt;p&gt;Hello Everyone,&lt;/p&gt;

&lt;p&gt;Python is the most frequently used programming languages for Machine Learning, Data Science and Analytics and even Web Development. &lt;/p&gt;

&lt;p&gt;This post lists 10 + 1 bonus Python code snippets which will assist with common and everyday problems. Also, these code snippets are only a single line!&lt;/p&gt;

&lt;h2&gt;
  
  
  Here are the sections for quick navigation:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Variable Swapping&lt;/li&gt;
&lt;li&gt;Select a Random Element&lt;/li&gt;
&lt;li&gt;Remove Duplicates in a List&lt;/li&gt;
&lt;li&gt;Find All Indices of an Element in a List&lt;/li&gt;
&lt;li&gt;Display the Current Date and Time in String Format&lt;/li&gt;
&lt;li&gt;Filter a List&lt;/li&gt;
&lt;li&gt;One Line Dictionary from List&lt;/li&gt;
&lt;li&gt;String to Integer&lt;/li&gt;
&lt;li&gt;Flatten a list&lt;/li&gt;
&lt;li&gt;
Load file in a list &lt;/li&gt;
&lt;li&gt;Bonus&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  1. Variable Swapping
&lt;/h2&gt;

&lt;p&gt;One of the most common problems that we face each day is how to swap two variables. Algorithms and data structures have taught us that we need a third temporary variable in order to swap two variables. However this is not needed in Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Instead of this:
&lt;/span&gt;&lt;span class="n"&gt;tmp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;var1&lt;/span&gt;
&lt;span class="n"&gt;var1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;var2&lt;/span&gt;
&lt;span class="n"&gt;var2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tmp&lt;/span&gt;

&lt;span class="c1"&gt;# We can do this:
&lt;/span&gt;&lt;span class="n"&gt;var1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;var2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Select a Random Element
&lt;/h2&gt;

&lt;p&gt;The following code snippet yes depends on a library however it can provide &lt;strong&gt;cryptographically&lt;/strong&gt; secure random choices and a usage for this is for generating a passphrase from a wordlist.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;secrets&lt;/span&gt;
&lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;secrets&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s"&gt;'cat'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'dog'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'horse'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'car'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt; Note:&lt;/u&gt; secrets was added in Python 3.6. On older versions of Python you can use the &lt;code&gt;random.SystemRandom&lt;/code&gt; from the random library.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Remove Duplicates in a List
&lt;/h2&gt;

&lt;p&gt;This one liner is used to remove duplicates in a list when the ordering of the elements is not important.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Find All Indices of an Element in a List
&lt;/h2&gt;

&lt;p&gt;The following snippet uses list comprehension to return all the indices of the search element instead of just the first occurrence as done by &lt;code&gt;.index()&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;lst&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Alice'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Bob'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Alice'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lst&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;lst&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s"&gt;'Alice'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. Display the Current Date and Time in String Format
&lt;/h2&gt;

&lt;p&gt;This one liner imports the &lt;code&gt;datetime&lt;/code&gt; library, gets the current date and time and converts it into a string. This can be frequently used to integrate the date and time into various results shown to a user.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"%Y-%m-%d %H:%M:%S"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  6. Filter a List
&lt;/h2&gt;

&lt;p&gt;List comprehension has become the Pythonic way of filtering a list. Here is the code snippet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;lst&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;lst&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  7. One Line Dictionary from List
&lt;/h2&gt;

&lt;p&gt;The following code snippet creates a dictionary with the list indices as key and their elements as values.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;lst&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"a"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"b"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"c"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"d"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lst&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  8. String to Integer
&lt;/h2&gt;

&lt;p&gt;Using the &lt;code&gt;map&lt;/code&gt; method we can convert a string list containing numbers into integers. This can be useful when taking input from the user as a string and need to convert it into integer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;lst&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"6"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"8"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"9"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lst&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  9. Flatten a list
&lt;/h2&gt;

&lt;p&gt;Machine Learning experts, and Data Scientists frequently deal with multi-dimensional lists and might need to convert these data into one-dimensional. The following one-liner does this without the use of any libraries like &lt;code&gt;numpy&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;lst&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;sublist&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;lst&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;sublist&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  10. Load file in a list
&lt;/h2&gt;

&lt;p&gt;The following one liner reads a txt file and adds each line as a new element in a list.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;lst&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'input_file.txt'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'r'&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Bonus
&lt;/h2&gt;

&lt;p&gt;These libraries have saved me tons on time in my development process and can still be categorised as one-liners since just one command is needed for these to work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pipreqs
&lt;/h3&gt;

&lt;p&gt;This library comes in handy when you need to generate a requirements file. It automatically generates the &lt;code&gt;requirements.txt&lt;/code&gt; file with all the import libraries and versions you are using in your &lt;strong&gt;current&lt;/strong&gt; project only.&lt;br&gt;
Here's how to generate your &lt;code&gt;requirements.txt&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;pipreqs
pipreqs /path/to/project/location
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Pyforest
&lt;/h3&gt;

&lt;p&gt;With this library you are able to use all your favorite Python libraries without importing them before. It contains the most popular Python libraries such as &lt;code&gt;pandas&lt;/code&gt;, &lt;code&gt;matplotlib&lt;/code&gt;, &lt;code&gt;seaborn&lt;/code&gt;, &lt;code&gt;numpy&lt;/code&gt; and &lt;code&gt;sklearn&lt;/code&gt;. The best part of this package is that if you don't use a library, it won't be imported. &lt;br&gt;
Here's how to use Pyforest in your own project&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--upgrade&lt;/span&gt; pyforest
python &lt;span class="nt"&gt;-m&lt;/span&gt; pyforest install_extensions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then simply add &lt;code&gt;import pyforest&lt;/code&gt; in your project and you are good to go.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;
THATS ALL! I hope you enjoyed reading this article and found the content helpful 😃. &lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>programming</category>
    </item>
    <item>
      <title>Develop a mobile app with NO coding!!</title>
      <dc:creator>Charalambos Ioannou</dc:creator>
      <pubDate>Wed, 21 Apr 2021 00:45:50 +0000</pubDate>
      <link>https://forem.com/charalambosioannou/develop-a-mobile-app-without-one-line-of-code-oeh</link>
      <guid>https://forem.com/charalambosioannou/develop-a-mobile-app-without-one-line-of-code-oeh</guid>
      <description>&lt;p&gt;I have recently stumbled upon a website which allows you to create mobile apps for free without any coding. In fact, the first thing you see when you land on Glideapps &lt;a href="https://www.glideapps.com/"&gt;website&lt;/a&gt; is "Build an app from a Google Sheet in five minutes, for free".&lt;/p&gt;

&lt;p&gt;I was very intrigued by this statement, so I quickly signed up and started browsing around. I quickly saw that this was extremely easy, and the end result looks very professional. The only thing you need is just a spreadsheet with some data.&lt;/p&gt;

&lt;p&gt;Glideapps can quickly transform spreadsheets into beautiful, very easy-to-use and professional apps, without any code. You first create a spreadsheet and then you can build your app from scratch or with a template. Then you can share it with anyone without the need to install an APK. Its just a browser link. &lt;/p&gt;

&lt;p&gt;Here is a glimpse of what Glideapps can do, with my currently in development personal project of a price tracker for any product that exists in the web. You just need to add the link of the item to the spreadsheet!&lt;/p&gt;

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

&lt;p&gt;As you can see, the same spreadsheet data can be shown with different formats that best suits your needs. &lt;/p&gt;

&lt;p&gt;And the best part about it... The free tier is very generous if you are going to develop small personal projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.S:&lt;/strong&gt; If this seems like an interesting website and would like to know more about it, I can release a tutorial series about Glideapps. I welcome any comments 😀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Awesome typing effect overlay on images (CSS+JS)</title>
      <dc:creator>Charalambos Ioannou</dc:creator>
      <pubDate>Thu, 20 Aug 2020 12:05:57 +0000</pubDate>
      <link>https://forem.com/charalambosioannou/awesome-typing-effect-overlay-on-images-css-js-2nof</link>
      <guid>https://forem.com/charalambosioannou/awesome-typing-effect-overlay-on-images-css-js-2nof</guid>
      <description>&lt;p&gt;This is a tutorial on how to create a typing effect overlay on images. It was done with pure CSS and JS without any additional libraries. The result is this:&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/charalambosioannou/embed/LYNYrVm?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Here the typing effect was added on a hero image. A hero image is a large image that is prominently placed on a web page (Source: &lt;a href="https://en.wikipedia.org/wiki/Hero_image" rel="noopener noreferrer"&gt;wikipedia&lt;/a&gt;). It is used to immediately attract a visitor’s attention. &lt;/p&gt;

&lt;h1&gt;
  
  
  Sections:
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Step 1 - Finding the image&lt;/li&gt;
&lt;li&gt;Step 2 - Beautify it using CSS&lt;/li&gt;
&lt;li&gt;
Step 3 - Creating the typing effect using JS

&lt;ol&gt;
&lt;li&gt;
Explanation of JS code &lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;li&gt;Full code (codepen)&lt;/li&gt;

&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 1 - Finding the image
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;To start with, we first find a hero image that best suits our needs. My go to website for getting free stock images is &lt;a href="https://www.pexels.com/" rel="noopener noreferrer"&gt;https://www.pexels.com/&lt;/a&gt;. Once you have found your image, create a new HTML file and add the following script inside the body tag. Replace the hero_image.jpg with the path and name of your own image.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="container"&amp;gt;
        &amp;lt;img src="hero_image.jpg" alt="Hero Image"&amp;gt;
        &amp;lt;div class='console-container'&amp;gt;
            &amp;lt;span id='text'&amp;gt;&amp;lt;/span&amp;gt;
            &amp;lt;div class='console-underscore' id='cursor'&amp;gt;|&amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now your page should look like this:&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%2Ft98ymsyu7unqml55qe4a.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%2Ft98ymsyu7unqml55qe4a.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2 - Beautify it using CSS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Now we will add some CSS to make our image look like a hero image and attract more attention. Add the following code in your CSS file or in a style tab inside the HTML.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        @import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@700&amp;amp;display=swap');

        .console-container {
            font-family: 'Open Sans', sans-serif;
            font-size: 4vw;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }

        .console-underscore {
            display: inline-block;
            position: relative;
            color: white;
        }

        .container {
            position: relative;
            text-align: center;
        }
        img {
            width:100%;
        }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now your page should look like this:&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%2Ftyob92drz9ey0t38cttc.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%2Ftyob92drz9ey0t38cttc.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt; Don't mind the vertical bar. We will animate it and use it as a cursor in the next step &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Step 3 - Creating the typing effect using JS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The final step is to add the text we want to animate and actually animate it using JavaScript. To do that add the following block of code which is a function we can call: &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt; Important:&lt;/b&gt; Place this script &lt;u&gt;below&lt;/u&gt; the div tags which contain the image. Otherwise the typing effect will not work.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function typing_effect(words, colors) {

      var cursor = document.getElementById('cursor'); //cursor
      var text = document.getElementById('text') //text

      var blink = true;
      var wait = false;
      var letters_count = 1;
      var temp = 1;

      text.style.color = colors[0]
      window.setInterval(function () { //wait between words when it starts writting
        if (letters_count === 0 &amp;amp;&amp;amp; wait === false) {
          wait = true;

          text.innerHTML = '' // leave a blank
          window.setTimeout(function () {
            var usedColor = colors.splice(0, 1)[0] //remove first element and get it as str
            colors.push(usedColor);
            var usedWord = words.splice(0, 1)[0]
            words.push(usedWord);
            temp = 1;
            text.style.color = colors[0]
            letters_count += temp;
            wait = false;
          }, 1000)
        } else if (letters_count === words[0].length + 1 &amp;amp;&amp;amp; wait === false) {
          wait = true;
          window.setTimeout(function () { //wait a bit until words finished and start deleting
            temp = -1;
            letters_count += temp;
            wait = false;
          }, 1000)
        } else if (wait === false) { //write words                    
          text.innerHTML = words[0].substr(0, letters_count)
          letters_count += temp;
        }
      }, 120)
      window.setInterval(function () {
        if (blink) {
          cursor.style.opacity = "0";
          blink = false;
        } else {
          cursor.style.opacity = "1";
          blink = true;
        }
      }, 400)
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The call to the function is: &lt;code&gt;typing_effect(words , colors)&lt;/code&gt;. These parameters are lists. The first parameter is a list of strings containing all the phrases that will be displayed. The second parameter is a list of strings containing the colors that each phrase will have. &lt;u&gt; &lt;b&gt; Note: &lt;/b&gt; The two lists don't have to have the same length.&lt;/u&gt; The call in my example is:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;typing_effect(['Hello World', 'My name is Harry', 'I am a programmer', 'This is a JS+CSS example'],
            ['#FFFFFF', 'orange', 'blue', 'yellow']);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Explanation of JS code
&lt;/h3&gt;

&lt;p&gt;If you want to skip the explanation of the code just click here to go to the next section.&lt;/p&gt;

&lt;h4&gt;
  
  
  Parameters
&lt;/h4&gt;

&lt;p&gt;The code is a single function that takes 2 input parameters. They have been explained in the previous section. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The call to the function is: &lt;code&gt;typing_effect(words , colors)&lt;/code&gt;. These parameters are lists. The first parameter is a list of strings containing all the phrases that will be displayed. The second parameter is a list of strings containing the colors that each phrase will have. &lt;u&gt; &lt;b&gt; Note: &lt;/b&gt; The two lists don't have to have the same length.&lt;/u&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Variables
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;var cursor= document.getElementById('cursor');&lt;/code&gt; - gets the cursor&lt;br&gt;
&lt;code&gt;var text= document.getElementById('text');&lt;/code&gt; - gets the area which we will add the text&lt;br&gt;
&lt;code&gt;var blink= true;&lt;/code&gt; - flag that shows/hides cursor &lt;br&gt;
&lt;code&gt;var wait= false;&lt;/code&gt;- flag that waits between phrases&lt;br&gt;
&lt;code&gt;var letters_count= 1;&lt;/code&gt; - int which counts the letters&lt;br&gt;
&lt;code&gt;var temp= 1;&lt;/code&gt; - int used to increment/decrement &lt;code&gt;letters_count&lt;/code&gt; &lt;/p&gt;
&lt;h4&gt;
  
  
  Function
&lt;/h4&gt;

&lt;p&gt;The function consists of 2 &lt;code&gt;setTimeout&lt;/code&gt; and 2 &lt;code&gt;setInterval&lt;/code&gt; functions. The first &lt;code&gt;setInterval&lt;/code&gt; is used to type the phrases, delete them and then type the next one. &lt;br&gt;
This block of code waits between phrases before starting to type the next phrase.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  if (letters_count === 0 &amp;amp;&amp;amp; wait === false) {
          wait = true;

          text.innerHTML = '' // leave a blank
          window.setTimeout(function () {
            var usedColor = colors.splice(0, 1)[0] 
            colors.push(usedColor);
            var usedWord = words.splice(0, 1)[0]
            words.push(usedWord);
            temp = 1;
            text.style.color = colors[0]
            letters_count += temp;
            wait = false;
          }, 1000)
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This block of code waits 1 second after the phrase is typed and starts deleting it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; else if (letters_count === words[0].length + 1 &amp;amp;&amp;amp; wait === false) {
          wait = true;
          window.setTimeout(function () {
            temp = -1;
            letters_count += temp;
            wait = false;
          }, 1000)
        }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This block of code simply types the words&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;else if (wait === false) {                    
          text.innerHTML = words[0].substr(0, letters_count)
          letters_count += temp;
        }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lastly this block of code makes the cursor blink to simulate the cursor when typing.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;window.setInterval(function () {
        if (blink) {
          cursor.style.opacity = "0";
          blink = false;
        } else {
          cursor.style.opacity = "1";
          blink = true;
        }
      }, 400)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Full Code
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The full code in codepen is here:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/charalambosioannou/embed/LYNYrVm?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;THAT’S IT!!!&lt;br&gt;
I hope you find this easy and useful.&lt;/p&gt;

&lt;p&gt;Hope you enjoyed it 😄.&lt;/p&gt;

&lt;p&gt;Happy Exploring!!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Create a dynamic GitHub profile Readme</title>
      <dc:creator>Charalambos Ioannou</dc:creator>
      <pubDate>Mon, 03 Aug 2020 20:29:46 +0000</pubDate>
      <link>https://forem.com/charalambosioannou/create-a-dynamic-github-profile-readme-il5</link>
      <guid>https://forem.com/charalambosioannou/create-a-dynamic-github-profile-readme-il5</guid>
      <description>&lt;p&gt;GitHub recently released a feature that allows users to create a profile Readme markdown file. This has not been officially documented by GitHub but it is used by plenty of people. This profile Readme file acts like a portfolio for users and allows the users to convey important information about them to whoever is watching their profile. &lt;/p&gt;

&lt;p&gt;There are a lot of articles which show how to create a profile readme. In this article I will describe how to make it dynamic. For example, show some GitHub profile stats (stars, commits, etc), show the most used languages or even show the most recent blog posts of the user.  You can check my profile here here: &lt;a href="https://github.com/CharalambosIoannou"&gt;https://github.com/CharalambosIoannou&lt;/a&gt;. Now let’s begin:&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Create the profile readme
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go to GitHub and create a new repository with your username as the name of the repository as seen below. Also tick the box which says &lt;code&gt;Initialize this repository with a README&lt;/code&gt;. Mine shows a warning since I have already created the repo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uQTc1Dp_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ja0iiahovh7n7n700nmn.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uQTc1Dp_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ja0iiahovh7n7n700nmn.PNG" width="793" height="853"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Add the details you want to show to the rest of the world
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What I did was display my name in the top along with the link to my website for easy access by anyone.&lt;/li&gt;
&lt;li&gt;Then I completed the default information provided by GitHub once the readme file is created.&lt;/li&gt;
&lt;li&gt;Then I added links to social media and contact info for anyone who wants to contact me and afterwards I added icons to all the languages and tools I frequently use and I am familiar with. The code for these is seen below: (I removed most of the language links so that it does not take much space here. If you want the full list check my readme file from the link at the end of the article)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;## ✉️ Find me on:


&amp;lt;p align="center"&amp;gt;
 &amp;lt;a href="https://charalambosioannou.github.io/" target="_blank" rel="noopener noreferrer"&amp;gt; &amp;lt;img src="https://raw.githubusercontent.com/iconic/open-iconic/master/svg/globe.svg" alt="Python" height="40" style="vertical-align:top; margin:4px"&amp;gt; &amp;lt;/a&amp;gt;
 &amp;lt;a href="https://linkedin.com/in/charalambosioannou" target="_blank" rel="noopener noreferrer"&amp;gt; &amp;lt;img src="https://cdn.jsdelivr.net/npm/simple-icons@v3/icons/linkedin.svg" alt="Python" height="40" style="vertical-align:top; margin:4px"&amp;gt;&amp;lt;/a&amp;gt;
 &amp;lt;a href="mailto:cioannou1997@gmail.com"&amp;gt; &amp;lt;img src="https://cdn.jsdelivr.net/npm/simple-icons@v3/icons/gmail.svg" alt="Python" height="40" style="vertical-align:top; margin:4px"&amp;gt;&amp;lt;/a&amp;gt;
&amp;lt;/p&amp;gt;

&amp;lt;br /&amp;gt;

## 🧰 Languages and Tools:
&amp;lt;p align="center"&amp;gt;
&amp;lt;img src="https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/python/python.png" alt="Python" height="40" style="vertical-align:top; margin:4px"&amp;gt;
&amp;lt;img src="https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png" alt="Javascript" height="40" style="vertical-align:top; margin:4px"&amp;gt;
&amp;lt;img src="https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/visual-studio-code/visual-studio-code.png" alt="VS Code" height="40" style="vertical-align:top; margin:4px"&amp;gt;
&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I used html style for showing the images instead of markdown because I can center the images.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;My readme profile with those details is shown below&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dmjHIiAR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/26gi8gnamzdo47esbsve.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dmjHIiAR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/26gi8gnamzdo47esbsve.PNG" width="880" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Add dynamic data
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The dynamic data I use are:&lt;/p&gt;

&lt;p&gt;1) GitHub profile visitor count &lt;br&gt;
2) GitHub profile followers count&lt;br&gt;
3) Dev.to blog posts&lt;br&gt;
4) GitHub profile statistics (stars, commits, etc)&lt;br&gt;
5) Most used languages in my repositories&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  1) GitHub profile visitor count
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Add this line of code to the readme but replace my username &lt;code&gt;CharalambosIoannou&lt;/code&gt; with your github username.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;![](https://visitor-badge.laobi.icu/badge?page_id=CharalambosIoannou.CharalambosIoannou)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2) GitHub profile followers count
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Add this line of code to the readme but replace my username &lt;code&gt;CharalambosIoannou&lt;/code&gt; with your github username.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[![Github](https://img.shields.io/github/followers/CharalambosIoannou?label=Follow&amp;amp;style=social)](https://github.com/CharalambosIoannou)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3) Dev.to blog posts
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;In order to dynamically get the latest dev.to blog posts we have to create a YAML file and a GitHub action, however thanks to this repo &lt;a href="https://github.com/gautamkrishnar/blog-post-workflow"&gt;https://github.com/gautamkrishnar/blog-post-workflow&lt;/a&gt; this has never been easier.&lt;/li&gt;
&lt;li&gt;The first step to do this is to copy and paste this code section inside your readme file:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Blog posts
&amp;lt;!-- BLOG-POST-LIST:START --&amp;gt;
&amp;lt;!-- BLOG-POST-LIST:END --&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The next step is to create a folder named &lt;code&gt;.github&lt;/code&gt; and inside that create another folder named &lt;code&gt;workflows&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;code&gt;workflows&lt;/code&gt; folder create a file named &lt;code&gt;blog-post-workflow.yml&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;code&gt;blog-post-workflow.yml&lt;/code&gt; file copy and paste this code:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: Latest blog post workflow
on:
  schedule:
    # Runs every hour
    - cron: '0 * * * *'
  workflow_dispatch:

jobs:
  update-readme-with-blog:
    name: Update this repo's README with latest blog posts
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: gautamkrishnar/blog-post-workflow@master
        with:
          feed_list: "https://dev.to/feed/charalambosioannou"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the feed_list section replace my dev.to username &lt;code&gt;charalambosioannou&lt;/code&gt; with your own dev.to username.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There are a lot of other settings here like changing the number of posts shown (the default is 5) or adding multiple sources (dev.to, stackoverflow,etc). All these settings can be found here:  &lt;a href="https://github.com/gautamkrishnar/blog-post-workflow#options"&gt;https://github.com/gautamkrishnar/blog-post-workflow#options&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then push your changes if you have done them locally and go to the actions section.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bLHxYs5a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pt3g4yxy5c2hrtavn566.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bLHxYs5a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pt3g4yxy5c2hrtavn566.png" alt="Alt Text" width="880" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The next step is to click on the &lt;code&gt;Latest blog post workflow&lt;/code&gt; button, then &lt;code&gt;Run workflow&lt;/code&gt; and again &lt;code&gt;Run workflow&lt;/code&gt;. Then wait a few seconds and the task will run.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3CEgl37b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/h5krugijjz1cavbbl7c0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3CEgl37b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/h5krugijjz1cavbbl7c0.gif" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4) GitHub profile statistics (stars, commits, etc)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Add this line of code to the readme but replace my username &lt;code&gt;CharalambosIoannou&lt;/code&gt; with your github username.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;![GitHub stats](https://github-readme-stats.vercel.app/api?username=CharalambosIoannou&amp;amp;show_icons=true&amp;amp;theme=tokyonight)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;If you want to change the theme of the stats go to &lt;a href="https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md"&gt;https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md&lt;/a&gt; and choose the theme you like and replace the &lt;code&gt;tokyonight&lt;/code&gt; text in the url with the name of the theme you want.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  5) Most used languages in my repositories
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Add this line of code to the readme but replace my username &lt;code&gt;CharalambosIoannou&lt;/code&gt; with your github username.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=CharalambosIoannou&amp;amp;theme=tokyonight)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;If you want to change the theme of the stats go to &lt;a href="https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md"&gt;https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md&lt;/a&gt; and choose the theme you like and replace the &lt;code&gt;tokyonight&lt;/code&gt; text in the url with the name of the theme you want.&lt;/li&gt;
&lt;li&gt;You can also hide a language by adding the parameter &lt;code&gt;&amp;amp;hide=language&lt;/code&gt; in the url. Replace &lt;code&gt;language&lt;/code&gt; with the language name you want to hide.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;The end result looks like this: &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tfFh-OMq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/duqt070ld5ubntciaxab.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tfFh-OMq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/duqt070ld5ubntciaxab.PNG" alt="Alt Text" width="541" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I suggest for your own profile to make it concise and be creative with it. I hope you enjoyed this tutorial and found it useful. You can check mine here: &lt;a href="https://github.com/CharalambosIoannou"&gt;https://github.com/CharalambosIoannou&lt;/a&gt;. If you need some ideas on how to create your own readme you can find plenty of examples in this repo: &lt;a href="https://github.com/abhisheknaiidu/awesome-github-profile-readme"&gt;https://github.com/abhisheknaiidu/awesome-github-profile-readme&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you enjoyed reading this article and found the content helpful. You can support me by clicking the button below to buy me a cup of coffee. Your generosity will encourage me to write articles more frequently.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/Charalambos"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gB5HhZkA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.buymeacoffee.com/buttons/default-blue.png" alt="Buy Me A Coffee" width="434" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>markdown</category>
    </item>
    <item>
      <title>Create a static webpage with a contact form on Github pages</title>
      <dc:creator>Charalambos Ioannou</dc:creator>
      <pubDate>Mon, 18 May 2020 17:10:58 +0000</pubDate>
      <link>https://forem.com/charalambosioannou/create-a-static-webpage-with-a-contact-form-on-github-pages-3532</link>
      <guid>https://forem.com/charalambosioannou/create-a-static-webpage-with-a-contact-form-on-github-pages-3532</guid>
      <description>&lt;h2&gt;
  
  
  What are GitHub pages?
&lt;/h2&gt;

&lt;p&gt;GitHub pages allow you to host a website directly from your GitHub repository. It can host static websites that take HTML, CSS, and JavaScript files straight from your GitHub repository. It cannot execute server-side code like PHP so we can not add a contact form that redirects to a PHP file. That is where formspree comes in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Step 1: Create a new repository named &lt;code&gt;&amp;lt;username&amp;gt;.github.io&lt;/code&gt;. &lt;code&gt;&amp;lt;username&amp;gt;&lt;/code&gt; is your GitHub username.
&lt;/h4&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%2Fj7wukzt66oncohyemk53.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%2Fj7wukzt66oncohyemk53.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt; &lt;u&gt; Note:&lt;/u&gt;&lt;/b&gt; My repo name shows an error since I already have a repository named &lt;code&gt;CharalambosIoannou.github.io&lt;/code&gt;. Also, the repository must be set to public. &lt;/p&gt;

&lt;h4&gt;
  
  
  Step 2: Create your static page. Make sure the main html file is named &lt;code&gt;index.html&lt;/code&gt;.
&lt;/h4&gt;

&lt;p&gt;In my case I have created my portfolio website as can be seen from the image below. &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%2F1zmfgp5r1xikmbtsiwnh.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%2F1zmfgp5r1xikmbtsiwnh.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 3: Navigate to &lt;a href="https://formspree.io/" rel="noopener noreferrer"&gt;formspree&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;1) In &lt;a href="https://formspree.io/" rel="noopener noreferrer"&gt;formspree&lt;/a&gt; click the sign-up button in the top right corner and enter your email address along with a password.&lt;br&gt;
2) Verify your email&lt;br&gt;
3) Press the &lt;code&gt;+&lt;/code&gt; button and enter a form name. The email input box should be auto filled with the email address used to sign up to fromspree.&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%2Fhztdnbp1wsfkh2y2c4d6.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%2Fhztdnbp1wsfkh2y2c4d6.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4) You can then copy paste the code provided by formspree into your website.&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%2Fyqi2ns67v9vgl2wyjsfd.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%2Fyqi2ns67v9vgl2wyjsfd.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have altered this code slightly to allow visitors to add a message as well. The code used is:&lt;/p&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;"contact"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Get in Touch&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&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;"contact-form"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"https://formspree.io/mpzyqdng"&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;"POST"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"hidden"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"_subject"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Contact request from personal website"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"_replyto"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Your email"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;textarea&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"message"&lt;/span&gt; &lt;span class="na"&gt;placeholder=&lt;/span&gt;&lt;span class="s"&gt;"Type your message"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Send&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/div&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;

&lt;p&gt;And this code produces the following result:&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%2Fws1q3shlwucz5eql7tez.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%2Fws1q3shlwucz5eql7tez.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 4: Push your code to GitHub and navigate to your website by typing &lt;code&gt;https://&amp;lt;username&amp;gt;.github.io/&lt;/code&gt; in the URL.
&lt;/h4&gt;

&lt;p&gt;If you cannot see your website after some time has passed then go to your repository, click on settings, scroll down until you see a section named "GitHub Pages" and click on the None dropdown in the Source subsection and set it to master branch.&lt;/p&gt;

&lt;p&gt;You know if your website is published if you see this message in the "GitHub Pages" section:&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%2F76rio32cdzc0ykdwmcao.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%2F76rio32cdzc0ykdwmcao.PNG"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 5: Testing your form.
&lt;/h4&gt;

&lt;p&gt;If you want to test your form, then go to your website and fill out your form.&lt;br&gt;
When clicking the send button we get redirected and have to authenticate that we are not a robot 🤖. When ticking the box, soon enough you will receive an email with all the details the sender has provided.&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%2Fctyg7omwkioahgz7hst6.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%2Fctyg7omwkioahgz7hst6.PNG" alt="Final Step"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  THAT’S IT!!!
&lt;/h2&gt;

&lt;p&gt;I hope you find this easy and useful.&lt;/p&gt;

&lt;p&gt;P/S: This is my first post ever. Hope you enjoyed it 😄.&lt;/p&gt;

&lt;p&gt;Happy Exploring!!&lt;/p&gt;

&lt;p&gt;Resources: GitHub&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>github</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
