<?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: Chidi E. Egwu</title>
    <description>The latest articles on DEV Community by Chidi E. Egwu (@chidiesobe).</description>
    <link>https://dev.to/chidiesobe</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%2F824995%2F77fa5f8b-831b-4652-996c-39e1f175daef.JPG</url>
      <title>DEV Community: Chidi E. Egwu</title>
      <link>https://dev.to/chidiesobe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chidiesobe"/>
    <language>en</language>
    <item>
      <title>Introduction to Stripe Connect</title>
      <dc:creator>Chidi E. Egwu</dc:creator>
      <pubDate>Mon, 14 Nov 2022 15:14:39 +0000</pubDate>
      <link>https://dev.to/chidiesobe/introduction-to-stripe-connect-4klk</link>
      <guid>https://dev.to/chidiesobe/introduction-to-stripe-connect-4klk</guid>
      <description>&lt;p&gt;Stripe Connect offers the next best thing in a world where cashless exchanges drive transactions. Simple enough for non-technical everyday users but technologically advanced enough to appeal to businesses and their tech teams.&lt;/p&gt;

&lt;p&gt;The big question that might be going through your mind now is, &lt;strong&gt;what is Stripe Connect?&lt;/strong&gt;&lt;br&gt;
Stripe Connect offers the fastest, seamless payment infrastructure for software platforms and marketplaces. Put another way, they handle your financial transactions' heavy lifting so your company can focus on what it does best.&lt;/p&gt;

&lt;p&gt;Stripe Connect has several services and products that all work to make payment infrastructures easy to use and safe. Programmable APIs and tools allow for end-to-end payments and KYC onboarding, relieving the stress and troubles that come with KYC (know your customers).&lt;/p&gt;

&lt;p&gt;Another critical aspect of any payment system is its workings. Product consumers must have a good or clear understanding of how a product will meet their expectations. Two crucial aspects of business development, Time and Growth, can be significantly improved using Stripe Connect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Time:&lt;/strong&gt; The ease of integration offered by Stripe Connects will allow individuals or companies to go live as quickly as possible. They handle the overhead cost and debates required to set up payment systems while providing secure payments solution with a simple click.&lt;br&gt;
&lt;strong&gt;2. Growth:&lt;/strong&gt; With Stripe's access to more than 135 currencies, 35 countries and 14 languages, businesses are provided with borderless transactions and a global customer base. The question on your mind should be, how far are you willing to expand your business?&lt;/p&gt;

&lt;p&gt;It is best to understand that technically-minded users are not left out of Stripe as payment system development and customisation can be done more quickly, thanks to Stripe's features. The payment solution offers many options to get any business up and running without reinventing the wheel.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prebuild checkouts&lt;/li&gt;
&lt;li&gt;Customisable payment UIs&lt;/li&gt;
&lt;li&gt;No code payment UIs&lt;/li&gt;
&lt;li&gt;Fraud and risk management&lt;/li&gt;
&lt;li&gt;In-person payments&lt;/li&gt;
&lt;li&gt;Online invoices&lt;/li&gt;
&lt;li&gt;Subscription management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This list is not exhaustive, but it gives a general view of what Stripe Connect offers prebuilt under the hood. Stripe also has some plugins, code samples, libraries, and software development kits (SDKs) that can be used to speed up development and keep the codebase consistent. Best of all, it comes packaged with a well-documented guide that developers and end users can reference to get up and running with Stripe Connect.&lt;/p&gt;

&lt;p&gt;Stripe's use case is limitless, ranging from E-Commerce, SaaS, Marketplace, Embedded Finance, and Crypto. If you can think of a payment challenge not listed that requires seamless cash transactions, add it to the list, as Stripe is built to handle it.&lt;/p&gt;

&lt;p&gt;Another exciting aspect of Stripe revolves around how easy and fast it is to start with Stripe. The signup page only requires your email, full name, country, password and an optional box that allows you to decide to receive emails about product updates and resources. You can always return to your account using your email and password for login or the single sign-on (SSO) option instead.&lt;/p&gt;

&lt;p&gt;Stripe Connect is an all-in-one solution for payment that offers user onboarding, payment acceptance, payouts and general money management.&lt;/p&gt;

</description>
      <category>stripe</category>
      <category>payment</category>
      <category>technical</category>
      <category>writing</category>
    </item>
    <item>
      <title>A Quick Overview of Python Operators</title>
      <dc:creator>Chidi E. Egwu</dc:creator>
      <pubDate>Sat, 26 Mar 2022 06:22:38 +0000</pubDate>
      <link>https://dev.to/chidiesobe/a-quick-overview-of-python-operators-phm</link>
      <guid>https://dev.to/chidiesobe/a-quick-overview-of-python-operators-phm</guid>
      <description>&lt;p&gt;&lt;strong&gt;Operators&lt;/strong&gt;&lt;br&gt;
The Python programming language is equipped with several operators, each with its own set of applications and in this tutorial, we will evaluate the Python operators in no order of&lt;br&gt;
importance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Arithmetic Operators:&lt;/strong&gt; These are used in conjunction with numeric values to perform mathematical operations, and they include&lt;br&gt;
&lt;strong&gt;a.&lt;/strong&gt; Addition &lt;strong&gt;a + b&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;b.&lt;/strong&gt; Subtraction &lt;strong&gt;a - b&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;c.&lt;/strong&gt; Multiplication &lt;strong&gt;a * b&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;d.&lt;/strong&gt; Division &lt;strong&gt;a / b&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;e.&lt;/strong&gt; Modulus &lt;strong&gt;a % b&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;f.&lt;/strong&gt; Exponentiation &lt;strong&gt;a&lt;/strong&gt;b**&lt;br&gt;
&lt;strong&gt;g.&lt;/strong&gt; Floor division &lt;strong&gt;a // b&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Comparison Operators:&lt;/strong&gt; These are used to compare two values, with one value on each side of the operator.&lt;br&gt;
&lt;strong&gt;a.&lt;/strong&gt; Equal &lt;strong&gt;a == b&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;b.&lt;/strong&gt; Not equal &lt;strong&gt;a != b&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;c.&lt;/strong&gt; Greater than &lt;strong&gt;a &amp;gt; b&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;d.&lt;/strong&gt; Greater than or equal to &lt;strong&gt;a &amp;gt;= b&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;e.&lt;/strong&gt; Less than &lt;strong&gt;a &amp;lt; b&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;f.&lt;/strong&gt; Less than or equal to &lt;strong&gt;a &amp;lt;= b&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Logical Operators:&lt;/strong&gt; These are used to combine conditional statements; they are made up of three operators as shown below.&lt;br&gt;
&lt;strong&gt;a. and:&lt;/strong&gt; returns &lt;code&gt;True&lt;/code&gt; if both conditions are true and &lt;code&gt;False&lt;/code&gt; if one or both condition is false.&lt;br&gt;
Firstly, we create two variables &lt;strong&gt;x and z&lt;/strong&gt;, then assigned them the values of 5 and 3 respectively.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; x = 5
&amp;gt;&amp;gt;&amp;gt; z = 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then we check if x is equal to 5 and z is less than 3, while the evaluation of x is true the evaluation of z is false, so it returns False as earlier explained, the same applied to the other expressions below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; x == 5 and z &amp;lt; 3
False
&amp;gt;&amp;gt;&amp;gt; x == 5 and z == 3
True
&amp;gt;&amp;gt;&amp;gt; x &amp;gt; 6 and z &amp;lt; 4
False
&amp;gt;&amp;gt;&amp;gt; x &amp;gt; 6 and z &amp;lt;3
False
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;b. or:&lt;/strong&gt; unlike the true operator, the or operator only requires one of the criteria to be true to return True.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; a = 5
&amp;gt;&amp;gt;&amp;gt; b = 3
&amp;gt;&amp;gt;&amp;gt; a &amp;gt; 5 or b &amp;lt; 5
True
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;c. not:&lt;/strong&gt; this returns the opposite of the result, that is it returns False if the result is true.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; a = 5
&amp;gt;&amp;gt;&amp;gt; b = 3
&amp;gt;&amp;gt;&amp;gt; not(a &amp;gt; 5 or b &amp;lt; 5)
False
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Membership Operators:&lt;/strong&gt; This is used to determine whether a sequence exists in an object.&lt;br&gt;
&lt;strong&gt;a. in:&lt;/strong&gt; returns True, if the sequence being tested for is present in the object and the check is also case sensitive for strings.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; greeting = "Good morning Chidi, hope you had a good day"
&amp;gt;&amp;gt;&amp;gt; "chidi" in greeting
False
&amp;gt;&amp;gt;&amp;gt; "Chidi" in greeting
True
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;b. not in:&lt;/strong&gt; This operator is the inverse of the first, returning True if the sequence being tested for is not present in the object and False otherwise. It is also case sensitive.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; "Chidi" not in greeting
False
&amp;gt;&amp;gt;&amp;gt; "chidi" not in greeting
True
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. Identity Operator:&lt;/strong&gt; The identity operator compares objects, not based on equality but on being the same object existing as the same in memory location. It is used to compare values of the same type or class.&lt;br&gt;
&lt;strong&gt;a. is:&lt;/strong&gt; this will return True if both variables are the same object.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; a = "chidi"
&amp;gt;&amp;gt;&amp;gt; b = "1"
&amp;gt;&amp;gt;&amp;gt; c = "chidi"
&amp;gt;&amp;gt;&amp;gt; a is b
False
&amp;gt;&amp;gt;&amp;gt; a is c
True
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;b. is not:&lt;/strong&gt; this will return True if both variables are not the same object.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; a = "chidi"
&amp;gt;&amp;gt;&amp;gt; b = "1"
&amp;gt;&amp;gt;&amp;gt; a is not b
True
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;6.&lt;/strong&gt; &lt;strong&gt;Assignment Operator:&lt;/strong&gt;  The assignment operator, which is used to assign values to variables, is still one of the most used operators in any programming language. Its usage is as shown below.&lt;br&gt;
&lt;strong&gt;a. =&lt;/strong&gt; the equal assignment variable is used to assign values to a variable as shown in previous examples.&lt;br&gt;
&lt;strong&gt;b. +=, -=, *=, /=&lt;/strong&gt; same as writing z = z + 2 assuming z was originally assigned the value of 1 the result will be 3. This basically means applies to all other assignment operators.&lt;br&gt;
&lt;strong&gt;Examples:&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;&amp;gt;&amp;gt;&amp;gt; j = 3
&amp;gt;&amp;gt;&amp;gt; j *= 2
&amp;gt;&amp;gt;&amp;gt; print (j)
6

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note :&lt;/strong&gt; += and =+ while appearing similar operate and function in a different manner. &lt;strong&gt;i += 1&lt;/strong&gt; is the same as &lt;strong&gt;i = i + 1&lt;/strong&gt;, while &lt;strong&gt;i =+ 1&lt;/strong&gt; is the same as &lt;strong&gt;i = (+1)&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;c. %=&lt;/strong&gt; modulus operator returns the remainder of a division.&lt;br&gt;
&lt;strong&gt;d. //=&lt;/strong&gt; the floor division divides two numbers and rounds the result down to the nearest integer.&lt;br&gt;
&lt;strong&gt;e. **=&lt;/strong&gt; the exponent operator is used to raise the number on the left to the power of the exponent on the right.&lt;br&gt;
&lt;strong&gt;f. |=&lt;/strong&gt; carries out the logical OR operation of two operands Y | Z and returns the result to the first operand Y.&lt;br&gt;
&lt;strong&gt;g. &amp;amp;=&lt;/strong&gt; carries out the logical AND operation of two operands Y | Z and returns the result to the first operand Y.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; Though the remaining three ^=, &amp;gt;&amp;gt;=, and &amp;lt;&amp;lt;= are part of the assignment operator, a view of the bitwise operator creates a clearer picture of their application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Bitwise Operators:&lt;/strong&gt; These are used for binary numbers comparison.&lt;br&gt;
&lt;strong&gt;a. &amp;amp;&lt;/strong&gt; referred to as &lt;code&gt;AND&lt;/code&gt;, functions by setting each bit to 1 if both bits are 1 and 0 otherwise.&lt;br&gt;
&lt;strong&gt;b. |&lt;/strong&gt; referred to as &lt;code&gt;OR&lt;/code&gt;, functions by settings each bit to 1 if one of two bits is 1.&lt;br&gt;
&lt;strong&gt;c. ^&lt;/strong&gt; referred to as &lt;code&gt;XOR&lt;/code&gt;, but unlike the | operator, it sets each bit to 1 if only one of two bits is 1.&lt;br&gt;
&lt;strong&gt;d. ~&lt;/strong&gt; referred to as NOT, this operator returns an Invert of all the bits.&lt;br&gt;
&lt;strong&gt;e. &amp;lt;&amp;lt; Zero fill left shift&lt;/strong&gt;, this is a fancy way of saying that the positions vacated by the left shift are filled or replaced with 0 for unsigned (positive) numbers, but with 1 for signed (negative) numbers. That is 0 is used to replace positive numbers while 1 is used to replace negative numbers.&lt;br&gt;
&lt;strong&gt;f. &amp;gt;&amp;gt; Signed right shift&lt;/strong&gt;, like the previous shift explained, it assigned 0 bit from the left while removing the right-most bits. Meaning if you right shift the binary value &lt;code&gt;0101&lt;/code&gt; you will get a result of &lt;code&gt;0010&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br&gt;
This article looks at the operators used in the Python programming language; some are similar to regular mathematics operators you may be familiar with, while others are completely new to you. Regardless, the purpose of this article is to give you a good standing if you decide to use any of the listed operators or learn more about them. The later operators, namely the bitwise operators and the last three assignment operators, will require a separate writeup to provide a more detailed explanation of how they work, but most importantly, I hope I was able to bring you up to speed on the Python programming language operators.&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>ceedmedia</category>
      <category>beginners</category>
    </item>
    <item>
      <title>A look at the "this" Keyword in JavaScript</title>
      <dc:creator>Chidi E. Egwu</dc:creator>
      <pubDate>Mon, 21 Mar 2022 18:59:34 +0000</pubDate>
      <link>https://dev.to/chidiesobe/a-look-at-the-this-keyword-in-javascript-2nk4</link>
      <guid>https://dev.to/chidiesobe/a-look-at-the-this-keyword-in-javascript-2nk4</guid>
      <description>&lt;p&gt;How best would you describe JavaScript? To the regular joe, JavaScript often referred to as JS as we would in most parts of this article, is a scripting or programming language that allows for client-based interaction like animations and general web-based interactivity. Though JS can be used as a server-side technology, in the case of NodeJS, such conversation is beyond the scope of this article. The question that should be on your mind should be, what topic is within the scope of this article? If you answered &lt;code&gt;this&lt;/code&gt;, you will be 100% correct the &lt;code&gt;this&lt;/code&gt; keyword In JavaScript will be discussed to simplify its usage or application. &lt;/p&gt;

&lt;p&gt;While JS is in a love-hate relationship with the general programming community (especially with beginners), we will throw more light on why the &lt;code&gt;this&lt;/code&gt; keyword is unavoidable and important to know.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is this?&lt;/strong&gt;&lt;br&gt;
In the JavaScript programming language, &lt;code&gt;this&lt;/code&gt; refers to an object. The conflict usually arises from which object it refers to, but this totally depends on how it is invoked or called. Before proceeding, we have thrown around the word object, and understanding objects in JS are critical to properly understanding &lt;code&gt;this&lt;/code&gt;.&lt;br&gt;
Objects in JS are independent entities (form) with properties and type. For example, a dog can be an object with barking, walking, and running properties, with the colour of its fur also being one of its properties. In simple terms, properties define the characteristics of objects.&lt;br&gt;
&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
Right-click on your browser, select inspect then the console tab and enter the following codes below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const myCar = {
   make: ‘Honda’,
   model: ‘Accord’,
   year: 2006,
   color: ‘Black’
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can call or reference the property by entering the code below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;myCar.color
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it returns&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;‘Black’
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This is just one way of declaring objects in JavaScript and if a property that does not exist is called it returns undefined.&lt;/p&gt;

&lt;p&gt;We have spent some time discussing a non &lt;code&gt;this&lt;/code&gt; idea, but it was worth it, so let us head back to &lt;code&gt;this&lt;/code&gt; and the general concept behind it.&lt;br&gt;
In general terms &lt;code&gt;this&lt;/code&gt; references the object calling the function, meaning &lt;code&gt;this&lt;/code&gt; is defined by the object making the interrogation or call, and not the function.&lt;br&gt;
Following the previously mentioned steps above, type &lt;code&gt;this&lt;/code&gt; in your console and you will get the following output, referencing the windows global object.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Window {window: Window, self: Window, document: document, name: '', location:
Location, …}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can be expanded to see other properties tied to the global window object of your browser the window property of a Window object points to the Window object itself. This means the following codes below when entered in the console environment will all return the window object.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;window
window.window
window.window.window

Window {window: Window, self: Window, document: document, name: '', location:
Location, …}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If we were to type &lt;code&gt;this.location&lt;/code&gt;, it will return the current URL and other properties associated with it, same with &lt;code&gt;window.location&lt;/code&gt; as shown below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Location {ancestorOrigins: DOMStringList, href: 'https://esodora.com/', origin:
'https://esodora.com', protocol: 'https:', host: 'esodora.com', …}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To paint a clearer picture, the following points need to be understood and come to terms with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. this is a reserved keyword and cannot be used as a variable:&lt;/strong&gt; like other programming languages, reserved keywords are kept for the language and its internal running, users are not allowed to reference them for storage as variables and the same can be said about this keyword. The code below will throw a syntax error.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let this = 'you cannot use as variable'
Uncaught SyntaxError: Unexpected token 'this'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. When this is used in an object method, it references the object:&lt;/strong&gt; the code below clearly illustrates the title.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const myCar = {
   brand: "Honda",
   model: "accord",
   year: 2006,
   details : function() {
      return this.brand + " " + this.model + " " + this.year;
   }
};
myCar.details()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;returns&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;'Honda accord 2006'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. When this is used alone, it references the global object as shown in the widow example above:&lt;/strong&gt; this section requires no further explanation as it has already been shown above to return the global window object.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. When used in a function&lt;/strong&gt;, this references to the global window object, same as when used as a stand-alone.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function validate(){
   return this == window;
}
validate();
true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. In strict mode&lt;/strong&gt;, this keyword returns undefined, and this is because in strict mode the global object refers to undefined rather than the window object.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"use strict"
function callThis(){
   console.log(this);
}
undefined
callThis()
undefined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;6. In events&lt;/strong&gt;, this refers to the element that received the event, this might be a little tricky, we will need to go a little bit further and create a simple HTML page.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
   &amp;lt;body&amp;gt;
      &amp;lt;button onclick="this.style.backgroundColor='red'"&amp;gt; CHANGE COLOR &amp;lt;/button&amp;gt;
   &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can test out this markup by simply creating a &lt;code&gt;.html&lt;/code&gt; page and double-clicking on it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Methods like call(), apply(), and bind()&lt;/strong&gt; can refer to this in any object.&lt;br&gt;
• &lt;strong&gt;call() and apply():&lt;/strong&gt; the &lt;code&gt;call()&lt;/code&gt; and &lt;code&gt;apply()&lt;/code&gt; method with close similarities, meaning they can call an object while passing another object as the argument of the object initially called. The obvious difference between &lt;code&gt;call()&lt;/code&gt; and &lt;code&gt;apply()&lt;/code&gt; method lies with how they take arguments. The &lt;code&gt;call()&lt;/code&gt; method accepts arguments as separate values while the &lt;code&gt;apply()&lt;/code&gt; method makes use of arrays for arguments. As illustrated in the examples below:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;call() 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;const buyer = {
printForm: function() {
   return this.fullName + " bought a " + this.model + " for " +this.price ;
}
}
const details = {
   fullName:"Chidi E. Egwu",
   model: "Tesla",
   price: 50000,
}
buyer.printForm.call(details);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the above code returns&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;'Chidi E. Egwu bought a Tesla for 50000'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can see that the call() methods take a single object as an argument.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;apply() 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;const buyer = {
printForm: function(model, price) {
   return this.fullName + " bought a " + model + " for " + price;
   }
}
const details = {
   fullName:"Chidi E. Egwu",
}
buyer.printForm.apply(details, ['Tesla', 50000]);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the above code returns the same result as the call() method, but it does it using multiple arguments as earlier explained.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;'Chidi E. Egwu bought a Tesla for 50000'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;• bind():&lt;/strong&gt; the bind method allows you to borrow across functions, the example below will better explain this statement.&lt;br&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;const buyerForm = {
   fullName:"Chidi E. Egwu",
   model: "Tesla",
   printForm: function() {
   return this.fullName;
}
}
const salesAgent = {
   fullName:"Dorathy James",
}
let printAgent = buyerForm.printForm.bind(salesAgent);
printAgent();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The salesAgent object borrows printForm method from the buyerForm object and makes use of it in returning the fullName of the agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;br&gt;
This article draws your attention to the various applications and usage of the this keyword in JavaScript; while not exhaustive, it can be used as a reference or steppingstone for beginners encountering the JavaScript mysterious &lt;code&gt;this&lt;/code&gt; keyword for the first time. Whatever your reason for reading this article, I hope I was able to answer, if not all, at least the majority of your questions about getting started with and understanding the fundamentals of this keyword in JavaScript.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>ceedmedia</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How Best to Avoid or Escape Tutorial Hell</title>
      <dc:creator>Chidi E. Egwu</dc:creator>
      <pubDate>Tue, 15 Mar 2022 18:56:14 +0000</pubDate>
      <link>https://dev.to/chidiesobe/how-best-to-avoid-or-escape-tutorial-hell-365i</link>
      <guid>https://dev.to/chidiesobe/how-best-to-avoid-or-escape-tutorial-hell-365i</guid>
      <description>&lt;p&gt;&lt;strong&gt;INTRODUCTION&lt;/strong&gt;&lt;br&gt;
Keep an open mind and remember that many developers have experienced tutorial hell at some point in their development career, so you are not alone. There's not much to worry about, and if you're reading this article, you're either aware of the possibility of getting stuck in "tutorial hell" or you're just starting out as a programmer and want to make sure you don't get stuck there. This article will help you avoid tutorial hell, regardless of which category you fall into.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getting Started&lt;/strong&gt;&lt;br&gt;
Tutorial hell is the stage in one's development journey where you jump from one tutorial to another. This is usually the result of completing one tutorial or stopping halfway, then trying to reproduce what you have learned and because you struggle with reproducing or can’t recreate what you just learnt you quickly look for the next best tutorial that is expected to answer all your problems or satisfy your curiosity. The first step to breaking free from tutorial hell is realising that no one book or video tutorial will be all-encompassing, meaning there will be a need to keep updating your knowledge as you advance in your career. &lt;/p&gt;

&lt;p&gt;Still, there is a requirement to first fully grasp what you have already studied before moving on. I have come to understand something over the years, if you practice or take on challenges based on what you already know, over time, you will naturally move on to the subsequent knowledge required as the challenges or tasks ahead get tougher, or simply just step up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Struggle with Tutorial Hell&lt;/strong&gt;&lt;br&gt;
How is it that I can advise on tutorial hell? The answer is simple, I have been trapped in tutorial purgatory over the span of my career, and below is a list of things I did that kept me trapped.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I kept googling (searching) for the best books or tutorials to learn concepts or programming languages.&lt;/li&gt;
&lt;li&gt;I had a lot of YouTube videos I planned to watch all saved, though I never visited most.&lt;/li&gt;
&lt;li&gt;I believed paid videos always translate to a better tutorial or quicker teaching.&lt;/li&gt;
&lt;li&gt;Skipping the basics and trying out advanced concepts.&lt;/li&gt;
&lt;li&gt;Learning multiple programming languages or concepts at the same time as a beginner.&lt;/li&gt;
&lt;li&gt;Not knowing when to ask for help.&lt;/li&gt;
&lt;li&gt;Believing one tutorial will have all the answers concerning a programming language or documentation.&lt;/li&gt;
&lt;li&gt;Never referencing the official documentation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While the list may be longer and slightly different for different people, the general idea behind my being stuck in tutorial hell was that I kept seeking knowledge without stopping to consider what little understanding I had gained that should be tested.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reinvent Your Learning Approach&lt;/strong&gt;&lt;br&gt;
You must first understand that nobody ever gets anything done by planning alone, and knowledge not put into practice will soon be forgotten. So first, you must discover how to best retain things and work with them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Discover how you learn:&lt;/strong&gt; You first must discover how best you learn; do you learn best by reading books or simply watching others do it? If you love to read, there are many good online bookstores or hardcover books on the chosen programming language that you can get started with, but if the latter is the case, then YouTube should not be played down just like other paid tutorial platforms. Decide on your best learning approach and stick to it, using the other for references as you progress in your journey.&lt;br&gt;
&lt;strong&gt;2. Take Notes:&lt;/strong&gt; I found taking notes an essential aspect of my learning process when I first started learning to code. The notes don't have to be long, just enough to convey the message you're trying to keep handy or to serve as a reference.&lt;br&gt;
&lt;strong&gt;3. It is ok to not get it the first time:&lt;/strong&gt; I tell younger developers to cut themselves some slack. Nothing is wrong with not getting it the first time, the second time, the third time, or longer if the need arises.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How To Break Free&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1. Build your first app:&lt;/strong&gt; Don’t wait until everything is perfect before you start. Start building based on the little knowledge you already have. This will not only increase your knowledge, but it will also help build confidence.&lt;br&gt;
&lt;strong&gt;2. Bugs are your Friends:&lt;/strong&gt; A broken app only means you are trying, don’t let bugs or errors discourage you from trying. Remember, Google is always a click away.&lt;br&gt;
&lt;strong&gt;3. Set realistic goals:&lt;/strong&gt; Don’t put too much pressure on your achievements. Consistent little steps are far better than no steps or a few giant steps. Remember, perseverance is vital.&lt;br&gt;
&lt;strong&gt;4. Find a mentor:&lt;/strong&gt; get someone you can understudy or ask questions without being shy, work with them and grow under their wings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Teach what you already know to others:&lt;/strong&gt; breaking down what you already know reinforces your knowledge while contributing to others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Repetition cannot be overemphasized:&lt;/strong&gt; after learning, take time out and recreate what you have just learnt without following the instructor.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's the repetition of affirmations that leads to belief. And once that belief becomes a deep conviction, things begin to happen. – &lt;strong&gt;Mohammed Ali&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Every self-taught programmer will tell you that tutorials are essential; however, this article is not geared toward shelving tutorials but rather a general call on how to best approach tutorials and gain the most from them without going around in circles.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ceedmedia</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Understanding Typecasting Using Python</title>
      <dc:creator>Chidi E. Egwu</dc:creator>
      <pubDate>Sat, 12 Mar 2022 07:00:30 +0000</pubDate>
      <link>https://dev.to/chidiesobe/understanding-typecasting-using-python-3n9p</link>
      <guid>https://dev.to/chidiesobe/understanding-typecasting-using-python-3n9p</guid>
      <description>&lt;p&gt;Python is a dynamic programming language, which means it performs type checking at runtime, which opens the door to more errors at runtime and a higher likelihood of shipping code with errors. While typecasting is an essential part of any dynamic programming language, type conversion is often used with little recognition or understanding of its operations.&lt;br&gt;
Typecasting can be defined as the conversation or reassignment of datatypes, and it is known by various names depending on the author's preference or the programming language in use.&lt;br&gt;
Typecasting can also be referred to as type coercion, type conversion, and type juggling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The topics to be covered by this article includes:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Implicit Typecasting&lt;/li&gt;
&lt;li&gt;Explicit Typecasting&lt;/li&gt;
&lt;li&gt;Formatted String Literals&lt;/li&gt;
&lt;li&gt;Widening&lt;/li&gt;
&lt;li&gt;Advantages of typecasting&lt;/li&gt;
&lt;li&gt;Disadvantages of typecasting&lt;/li&gt;
&lt;li&gt;Summary&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;TYPES OF TYPECASTING&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Python offers two types of typecasting:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Implicit Typecasting:&lt;/strong&gt; This is an automatic type conversation; conversion without the need for direct user interaction; the conversion decision is handled by the Python interpreter.&lt;/li&gt;
&lt;/ol&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;number = 22
float_number = 22.8
new_number = number + float_number
print(f‘number datatype {type(number)}’)
print(f‘number datatype {type(float_number)}’)
print(f‘number datatype {type(new_number)}’)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We have three variables declared, number houses an integer, &lt;strong&gt;float_number&lt;/strong&gt; houses a float or decimal point integer, and new_number is used to store the sum of &lt;strong&gt;float_number&lt;/strong&gt; and number. When the type method is called against all variables they return their variable type, but you will notice that the new_number variable returns a floating-point value, this is because the interpreter carries out implicit typecasting and&lt;br&gt;
converts the number variable value to float before carrying out the summation. This is a result of python converting smaller datatype to large datatype to prevent data loss.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Explicit Typecasting: This refers to the direct conversion (casting) of object values through
the use of predefined methods such as:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;int()&lt;/li&gt;
&lt;li&gt;float()&lt;/li&gt;
&lt;li&gt;str()&lt;/li&gt;
&lt;li&gt;complex()&lt;/li&gt;
&lt;li&gt;bool()&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;INTEGER METHOD:&lt;/strong&gt; The Int() method returns an integer from numbers and strings with base -10 values. In addition, complex values cannot be converted to integers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example 1:&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;variable_1 = 22.2
variable_2 = int(variable_1)
print(f’data type for variable_1 before casting: {type(variable_1}’)
print(f’data type for variable_2 after casting {type(int(variable_2)}’)
data type for variable_1 before casting &amp;lt;class float&amp;gt;
data type for variable_2 after casting: &amp;lt;class 'int'&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If we print &lt;strong&gt;variable_2&lt;/strong&gt;, we will notice that the float has been converted (cast) to an integer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example 2:&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;&amp;gt;&amp;gt; print(int(20.22) 
20
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt;&lt;br&gt;
It is worth explaining the following points:&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;f(f-strings)&lt;/strong&gt; – In Python 3.6, the "formatted string literal" was introduced as a new way to format strings by replacing variables or values within the curly bracket, as shown above, and below.&lt;br&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;name = “Chidi”
print(f’Hello {name}, how is your day going?’)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the result will be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello Chidi, how is your day going?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;• &lt;strong&gt;Widening&lt;/strong&gt; – Python will automatically convert a smaller datatype to a datatype that can accommodate more values of the previous or original datatype during this process. For example, you can convert an int to a float or a char to a string.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FLOAT METHOD:&lt;/strong&gt; This method converts values to floating decimal points; values passed as strings must be in base -10.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; print(float(20)) 
20.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Python also supports Narrowing (not automatically), which is the conversion of larger datatypes to smaller datatypes. Typically, this results in data loss.
&lt;strong&gt;Example&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; print(int(20.22) 
20
&amp;gt;&amp;gt;&amp;gt; float(1) 
1.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;STRING METHOD:&lt;/strong&gt; this converts any data type into a string.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; str(1)
'1'
&amp;gt;&amp;gt;&amp;gt; str(a)
'1'
&amp;gt;&amp;gt;&amp;gt; str(True)
'True'
&amp;gt;&amp;gt;&amp;gt; str(False)
'False'
&amp;gt;&amp;gt;&amp;gt; str(50+112j)
'(50+112j)'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;BOOLEAN METHOD:&lt;/strong&gt; It converts any data type to a Boolean data type and returns True for all values except those listed below, which return False.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; bool(False)
False
&amp;gt;&amp;gt;&amp;gt; bool(None)
False
&amp;gt;&amp;gt;&amp;gt; bool(0)
False
&amp;gt;&amp;gt;&amp;gt; bool("")
False
&amp;gt;&amp;gt;&amp;gt; bool(())
False
&amp;gt;&amp;gt;&amp;gt; bool([])
False
&amp;gt;&amp;gt;&amp;gt; bool({})
False
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;COMPLEX METHOD:&lt;/strong&gt; The complex method returns a complex number when given a number. The complex method can take two numbers, a real number first an imaginary number second, then returns a complex number. Its applications include physics and&lt;br&gt;
mathematical calculations, to name a few.&lt;br&gt;
&lt;strong&gt;Syntax:&lt;/strong&gt; &lt;code&gt;complex([real[, imag]])&lt;/code&gt;&lt;br&gt;
If the &lt;strong&gt;real&lt;/strong&gt; or &lt;strong&gt;imag&lt;/strong&gt; is omitted the default value of 0 is used.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; complex(2)
(2+0j)
&amp;gt;&amp;gt;&amp;gt; complex()
0j
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When a string is passed to a complex method, the imaginary values do not need to be passed, but the values should be in the form &lt;strong&gt;'real+imag'&lt;/strong&gt;. The default imaginary values are used if a string value is passed, as shown below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; complex('1')
(1+0j)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;ADVANTAGES OF TYPECASTING&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Quick and convenient to make use of.&lt;/li&gt;
&lt;li&gt;Ensures values are properly handled.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;DISADVANTAGES OF TYPECASTING&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Error-prone from unexpected typecasting results.&lt;/li&gt;
&lt;li&gt;When bugs or errors occur, they are subtle and might be difficult to track down&lt;/li&gt;
&lt;li&gt;Option of complex types&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;SUMMARY&lt;/strong&gt;&lt;br&gt;
I believe I have successfully guided you through everything you need to know to understand or begin using typecasting in Python. While this knowledge can be applied to other programming languages, reading should be accompanied by practice; experiment with codes and purposefully start using typecasting in your code.&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>beginners</category>
      <category>ceedmedia</category>
    </item>
    <item>
      <title>Open Source Security: A Critical Aspect of Software Implementation</title>
      <dc:creator>Chidi E. Egwu</dc:creator>
      <pubDate>Tue, 08 Mar 2022 19:06:31 +0000</pubDate>
      <link>https://dev.to/chidiesobe/open-source-security-a-critical-aspect-of-softwareimplementation-2g8j</link>
      <guid>https://dev.to/chidiesobe/open-source-security-a-critical-aspect-of-softwareimplementation-2g8j</guid>
      <description>&lt;p&gt;It is easy to regard open source as the next best thing since the invention of the internet because it is free to use and modify. Regrettably, the freedom gained may come at a high cost.&lt;br&gt;
One major question that every developer or user should ask rhetorically is, "Who is responsible for the security of the open-source script or package you are about to use?" A question that a lot of people take too lightly.&lt;br&gt;
Open source security refers to a methodology or procedure structured to give the user the ability to&lt;br&gt;
thoroughly understand and interact with the codes being implemented. This process might be automated or conducted with direct supervision, but users should always be aware of the license restrictions that come with this kind of implementation. Encryption, security orchestration, and secure software update are examples of open source security approaches designed towards creating codes that will make it almost impossible to alter the expected outcome at the point of implementation and usage.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Open Source?
&lt;/h2&gt;

&lt;p&gt;The term "open source" refers to projects that allow for the modification and redistribution of their core components or technology, though such redistribution or modification may be hampered or restricted by the type of license that serves as the project's foundation.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Risk Comes with Open Source?
&lt;/h2&gt;

&lt;p&gt;There is nothing new about implementing open source scripts or plugins into applications created, but the level of risk involved can be mitigated by considering the following statements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All codes are written with varying degrees of competence and structure depending on the engineer’s skill level.&lt;/li&gt;
&lt;li&gt;Some open source projects rely on other open source projects not directly under their control.&lt;/li&gt;
&lt;li&gt;Vulnerabilities are usually made public before the developers get to know about them.&lt;/li&gt;
&lt;li&gt;A lot of open source projects are self-funded and updates are made at the easiest convenience of the developer.&lt;/li&gt;
&lt;li&gt;No properly drawn-out development pathway.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Is Implementing Open Source Tools Worth It?
&lt;/h2&gt;

&lt;p&gt;Yes, it is.&lt;br&gt;
We won’t leave a let a few bad eggs spoil the good jobs a lot of plugins and scripts are doing in the developer's sphere. Without the use of open source tools, it may be impossible to complete real work in many technological fields. The field of data science, for example, is heavily reliant on open source&lt;br&gt;
tools.&lt;br&gt;
While every good has a drawback, many security flaws in open source technologies can be addressed&lt;br&gt;
if developers maintain regular updates and make time to contribute their fair share to the success of the tools they use.&lt;br&gt;
While it is difficult to conclude that the benefit of open source technology outweighs the risk, no guarantee restricting an application's source code will provide better security than its open source counterpart.&lt;/p&gt;

&lt;h2&gt;
  
  
  Here are some of the benefits of open source technology:
&lt;/h2&gt;

&lt;p&gt;• Reduces the overhead cost that comes with code ownership.&lt;br&gt;
• Freedom and flexibility to make improvements and changes.&lt;br&gt;
• Opportunity to interact with the best minds in the field.&lt;br&gt;
• A large audience of code testers.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ceedmedia</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
