<?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: almasi-y</title>
    <description>The latest articles on DEV Community by almasi-y (@almasiy).</description>
    <link>https://dev.to/almasiy</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%2F3289722%2F46d31064-5358-4af7-8315-29560680937d.png</url>
      <title>DEV Community: almasi-y</title>
      <link>https://dev.to/almasiy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/almasiy"/>
    <language>en</language>
    <item>
      <title>Django: Figuring out the MVT Architecture Versus the MVC</title>
      <dc:creator>almasi-y</dc:creator>
      <pubDate>Tue, 01 Jul 2025 17:48:54 +0000</pubDate>
      <link>https://dev.to/almasiy/django-figuring-out-the-mvt-architecture-versus-the-mvc-43dp</link>
      <guid>https://dev.to/almasiy/django-figuring-out-the-mvt-architecture-versus-the-mvc-43dp</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;What exactly is an architecture in a framework&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You might be wondering: why do we need an architecture in a framework.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Well, an architecture in a framework in layman's term it's the way the framework is layered or arranged, how it will be operating and interacting with its components for example view in this case has to be interacting with models and templates&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Model View and Template&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Model&lt;/em&gt; –  A model is an object  that defines the structure of the data in that particular app it is in. It's responsible for maintaining the data and handling the logical data structure for the entire web application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Views&lt;/em&gt; – A view is a function that handles the Http requests and responses. It will accept the requests, process them and return the Http responses. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Templates&lt;/em&gt; - Templates are files that define the structure of the entire User Interface completely. It handles the static components of the webpage, including the HTML that users encounter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;So now that we know what an architecture is and the definition of each component in a MVT architecture, it's much easier then to introduce the fact that the MVT is sort of a control flow.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-This control flow starts immediately when a user interacts with a Django web page as shown below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8e3dq1ugphw232p784rl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8e3dq1ugphw232p784rl.png" alt="Control Flow in MVC architecture" width="800" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Control Flow&lt;/strong&gt;&lt;br&gt;
Here are the steps that fall into place when a user interacts with a Django application:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;For a user to interact with the django app they have to use a url, so the user sends a url request&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using a URL mapper, the request will be redirected to the appropriate view if it is there &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once the view is found it is then called because again it is a function, remember&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The view now communicates with the model to retrieve or for the model to give the data requested by the url &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The view also communicates with the template and populates it with the data it has received from the models and sends it to the user interface&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;MVT VERSUS MVC&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You have now gotten the jist of what MVT architecture is and how it essentially works, so now how is the conventional MVC(Model View Controller) different from this.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Handling user input and updating model and views:- In MVC the controller is responsible for this role while in MVT the role is shared between handling of routes that is in-built in django and the views functions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The view in MVC depends on the controller for data as it defines what the user sees while the view in MVT interacts directly with the model hence combining logic and user interface&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;MVT overtakes MVC when it comes to simplicity. Because MVT does not have a controller that separates the logic, routing and user interface, there is less boilerplate code hence simplifying development &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.educative.io/answers/what-is-mvt-structure-in-django" rel="noopener noreferrer"&gt;https://www.educative.io/answers/what-is-mvt-structure-in-django&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.askpython.com/python-modules/django/django-mvt-architecture" rel="noopener noreferrer"&gt;https://www.askpython.com/python-modules/django/django-mvt-architecture&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Basic Structure for a Django Project</title>
      <dc:creator>almasi-y</dc:creator>
      <pubDate>Mon, 30 Jun 2025 19:04:27 +0000</pubDate>
      <link>https://dev.to/almasiy/basic-structure-for-a-django-project-1jk7</link>
      <guid>https://dev.to/almasiy/basic-structure-for-a-django-project-1jk7</guid>
      <description>&lt;p&gt;To learn about the Django structure we first need to initialize a project&lt;br&gt;
For that we need to write the command below in a terminal&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;django-admin startproject config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Of course this is assuming that the name of your django project is called config, it should look like this&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffw31as2nmtc9knbp00us.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffw31as2nmtc9knbp00us.png" alt="Image description" width="800" height="130"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Files in the project directory&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In the config directory we see the following files:

&lt;ul&gt;
&lt;li&gt;asgi.py: This is the file responsible for asynchronous server gateway interface&lt;/li&gt;
&lt;li&gt;settings.py: This is the file where we will configure the settings that apply to our entire django project&lt;/li&gt;
&lt;li&gt;urls.py: Here we configure the urls in our django project&lt;/li&gt;
&lt;li&gt;wsgi.py: This file is responsible for rendering pages in the web&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;init&lt;/strong&gt;.py: This file tells python that the files in this folder are a python package and that they can be imported in other files too&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Applications in the django project&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;For this particular config project, I have created 2 apps in it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;users&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;posts&lt;br&gt;
Notice the naming convection of the apps, they are in plural so that their respective models will be in singular that is: User and Post respectively.&lt;br&gt;
So to create the apps we simply run the following commands&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;cd config
manage.py startapp users
manage.py startapp posts

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

&lt;/div&gt;



&lt;p&gt;Once you run the following you should get something that looks like this&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr8qln2uiyrp3840wqcg9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr8qln2uiyrp3840wqcg9.png" alt="Image description" width="740" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In each of the following apps we have these files and a folder

&lt;ul&gt;
&lt;li&gt;views.py: This file has views which receive a web request and returns a web response&lt;/li&gt;
&lt;li&gt;admin.py: This is the default layout of the admin page which ius already pre-built in django&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;init&lt;/strong&gt;.py: This file marks this  particular file as a python package&lt;/li&gt;
&lt;li&gt;apps.py: This file allows you to define metadata specific to this app&lt;/li&gt;
&lt;li&gt;models.py: This is the file that contains your database layout&lt;/li&gt;
&lt;li&gt;tests.py: This file contains tests for debugging the app&lt;/li&gt;
&lt;li&gt;migrations folder:&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Templates&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;After creating our apps we have to create template folders in each of them.&lt;br&gt;
In the templates, respectively there should be another folder with the same name as the app and within this folder is where we can place the html files&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjez9zr2kafzucbmczi2q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjez9zr2kafzucbmczi2q.png" alt="Image description" width="342" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>django</category>
    </item>
    <item>
      <title>Python Data Types</title>
      <dc:creator>almasi-y</dc:creator>
      <pubDate>Fri, 27 Jun 2025 09:07:53 +0000</pubDate>
      <link>https://dev.to/almasiy/python-data-types-53ii</link>
      <guid>https://dev.to/almasiy/python-data-types-53ii</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;PYTHON DATA TYPES😄&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Types of data types&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1️⃣ &lt;strong&gt;Numeric data types&lt;/strong&gt;&lt;br&gt;
  int&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An integer, is a whole number, positive or negative, without decimals, of unlimited length.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt; &lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;A float is a number, positive or negative, containing one or more decimals.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt; &lt;span class="n"&gt;my_float&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;20.5&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;A complex is a number made up of some parts that are unknown
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt; &lt;span class="n"&gt;my_complex&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;1j&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_complex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_complex&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2️⃣ &lt;strong&gt;Sequence Types&lt;/strong&gt;&lt;br&gt;
  lists&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lists are used to store multiple items in a single variable.&lt;/li&gt;
&lt;li&gt;Take note of the square brackets&lt;/li&gt;
&lt;li&gt;Unlike a set, a list can allow duplicate values&lt;/li&gt;
&lt;li&gt;They can contain different data types
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt; &lt;span class="n"&gt;fruits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;apple&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;banana&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cherry&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fruits&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;Tuples are used to store multiple items in a single variable.&lt;/li&gt;
&lt;li&gt;Take note of the round brackets&lt;/li&gt;
&lt;li&gt;Unlike lists, tuples are unchangeable. &lt;/li&gt;
&lt;li&gt;Allows duplicate members.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt; &lt;span class="n"&gt;cars&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;toyota&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;porsche&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mercedes&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cars&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cars&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;A range is a sequence of numbers starting from 0 by default and increments by one
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt; &lt;span class="n"&gt;my_range&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_range&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_range&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3️⃣ &lt;strong&gt;Mapping types&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
 dict&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dictionaries are used to store data values in key:value pairs.&lt;/li&gt;
&lt;li&gt;Dictionaries are ordered and changeable&lt;/li&gt;
&lt;li&gt;Like sets they do not allow duplication of items
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt; &lt;span class="n"&gt;my_dict&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;John&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;age&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_dict&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
 &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_dict&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4️⃣ &lt;strong&gt;Set types&lt;/strong&gt;&lt;br&gt;
  set&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sets are used to store multiple items in a single variable.&lt;/li&gt;
&lt;li&gt;Sets are unindexed, unordered and unchangeable however you can add or remove items from a set&lt;/li&gt;
&lt;li&gt;Sets also do not allow duplicates&lt;/li&gt;
&lt;li&gt;Take note of the curly braces
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;my_set&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;silver&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;titanium&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_set&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_set&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;frozen set&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Similar to a set but completely immutable; you cannot add or remove items
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;my_frozenset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;frozenset&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;apple&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;banana&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cherry&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_frozenset&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_frozenset&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5️⃣ &lt;strong&gt;Boolean types&lt;/strong&gt;&lt;br&gt;
  boolean&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A boolean is a value that can be true or false
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;my_bool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_bool&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_bool&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;6️⃣ Binary types&lt;br&gt;
  bytes&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Bytes represent an immutable sequence of 8-bit values
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;Bytesarray represents a mutable sequence of 8-bit values.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;my_bytearray&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;bytearray&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_bytearray&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_bytearray&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt; A memoryview object provides a view into the memory of a bytes-like object (like bytes or bytearray) without copying the underlying data.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;my_memoryviews&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;memoryview&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_memoryviews&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_memoryviews&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;7️⃣ &lt;strong&gt;None types&lt;/strong&gt;&lt;br&gt;
  NoneTypes&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is simply a data type that represents an absence of value
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;8️⃣ &lt;strong&gt;Text types&lt;/strong&gt;&lt;br&gt;
  string&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A string is a collection of characters
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;greetings&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello World&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;greetings&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;greetings&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>python</category>
    </item>
    <item>
      <title>What is Version Control and How does it Work</title>
      <dc:creator>almasi-y</dc:creator>
      <pubDate>Thu, 26 Jun 2025 11:15:23 +0000</pubDate>
      <link>https://dev.to/almasiy/what-is-version-control-and-how-does-it-work-4f39</link>
      <guid>https://dev.to/almasiy/what-is-version-control-and-how-does-it-work-4f39</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;🌠VERSION CONTROL&lt;/strong&gt; 🌠
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Version Control is a lifesaver or rather software development lifecycle saver, without it software development would be dirty mess. My favorite analogy is an 100-piece orchestra without a conductor; chaotic, huh! 🤔&lt;/li&gt;
&lt;li&gt;So version control systems are basically systems that track and manage changes made to source code. &lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The most widely used VCS is Github, which I use. Github is a distributed VCS that: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Users access the repository from any location hence distributed&lt;/li&gt;
&lt;li&gt; Contributors can work on the same codebase without being on the same network&lt;/li&gt;
&lt;li&gt; Each developer has a local copy of the entire repository and history on their device&lt;/li&gt;
&lt;li&gt; Users can commit, branch, and merge changes locally without reliance on the central server&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;🤖WHAT TO KNOW ABOUT GITHUB🤖&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Forking&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Forking comes in handy when you are trying to fix an issue or propose some changes in the upstream repository, that is the repository in which changes are pushed to. &lt;/li&gt;
&lt;li&gt;A fork then is basically a copy of another user's repository in your own account&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To fork:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Head on to the github repository you would like to fork&lt;/li&gt;
&lt;li&gt;On the top left corner click the button, fork&lt;/li&gt;
&lt;li&gt;Click create a fork&lt;/li&gt;
&lt;li&gt;Now you have your own copy of that repository&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqlrlj3kk0jl66f7q713r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqlrlj3kk0jl66f7q713r.png" alt="Image description" width="621" height="201"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Collaboration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Collaboration is when users can invite collaborators(anyone with read and write access to a repository who has been invited to contribute by the repository owner) to a repository, manage their access permissions, and track changes through commits and pull requests. 

&lt;ul&gt;
&lt;li&gt;Allowing teams to work together on projects, review each other's code, and integrate changes efficiently. &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pull requests&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pull requests are proposed changes to a repository to be merged, that are submitted by a user.&lt;/li&gt;
&lt;li&gt;The proposed changes can be accepted or rejected by a repository's collaborators.&lt;/li&gt;
&lt;li&gt;The collaborators can also choose who to give permissions to pull requests.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Merge Conflicts&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First off what is a conflict, it's when different changes have been done by different collaborators on the same file, thus a conflict.&lt;/li&gt;
&lt;li&gt;When this happens, the developer has to merge, that is to choose which changes to keep or discard for a harmonious merge.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Code Review&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Code reviewing is the examining of code changes proposed in a pull request to identify potential issues, suggest improvements, and ensure that the code is not going to negatively interfered with.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The work reviewers do&lt;/li&gt;
&lt;li&gt;Reviewers analyze the code changes, looking for potential bugs, issues, or areas for improvement. &lt;/li&gt;
&lt;li&gt;They can leave comments directly on the code, highlighting specific lines or sections that need attention. &lt;/li&gt;
&lt;li&gt;Comments can be general feedback, specific suggestions, or requests for clarification. &lt;/li&gt;
&lt;li&gt;Reviewers can also initiate a formal review, which allows them to bundle multiple comments and submit them together. &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Github Issues&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Issues are used to track ideas, feedback, tasks, or bugs.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Also there are a number of ways to create an issue like via Github CLI or via projects, via discussions, from repo, from code, from comments and from URL query&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub CLI is an open source tool for using GitHub from your computer's command line. When you're working from the command line, you can use the GitHub CLI to save time and avoid switching context. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To create an issue, use the gh issue create subcommand. To skip the interactive prompts, include the --body and the --title flags.&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;gh issue create --title "My new issue" --body "Here are more details."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also specify assignees, labels, milestones, and projects.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gh issue create --title "My new issue" --body "Here are more details." --assignee @me,monalisa --label "bug,help wanted" --project onboarding --milestone "learning codebase"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Github commands&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;There are many commands used but the most common ones are these&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git clone&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git push&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git pull&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git commit -m "message"&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git add&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pushing changes to github&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To push the changes you made  on your local branch to the remote repository just use the git push command like so:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep in mind the git push command takes two arguments: A remote name, for example, origin and a branch name, for example main&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;git push REMOTE-NAME BRANCH-NAME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Installing key components in kickstarting a 20-day bootstrap for Django</title>
      <dc:creator>almasi-y</dc:creator>
      <pubDate>Tue, 24 Jun 2025 21:34:33 +0000</pubDate>
      <link>https://dev.to/almasiy/installing-key-components-in-kickstarting-a-20-day-bootstrap-for-django-f96</link>
      <guid>https://dev.to/almasiy/installing-key-components-in-kickstarting-a-20-day-bootstrap-for-django-f96</guid>
      <description>&lt;h2&gt;
  
  
  We will need to install and or set up the following:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Text Editor (VS Code)&lt;/li&gt;
&lt;li&gt;Python 3.10 +&lt;/li&gt;
&lt;li&gt;WSL&lt;/li&gt;
&lt;li&gt;Connect github with github ssh&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Text Editor(VS Code)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;What to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download VS Code by following the link &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;https://code.visualstudio.com/download&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Be sure to choose a version that is compatible with your hardware&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Run it on your computer and voila&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Python 3.10+&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;What to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Head over to &lt;a href="https://www.python.org/downloads/" rel="noopener noreferrer"&gt;https://www.python.org/downloads/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Select to download the version of python you would prefer preferably the latest on 3.13 and again check for compatibility&lt;/li&gt;
&lt;li&gt;Run the package and now you have these installed -the IDLE
                                               -the Module Docs
                                               -the python cli&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;WSL&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;What to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open PowerShell or Windows Command Prompt in administrator mode by right-clicking and selecting "Run as administrator"&lt;/li&gt;
&lt;li&gt;Enter the &lt;code&gt;wsl --install&lt;/code&gt; command, then restart your machine.
-This command will enable the features necessary to run WSL and install the Ubuntu distribution of Linux. (This default distribution can be changed).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Connect github with github ssh&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;What to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Check for existing SSH Keys&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;ls -al ~/.ssh&lt;/code&gt;.&lt;br&gt;
This lists the files in your .ssh directory. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Looked for files like id_rsa.pub, id_ecdsa.pub, or id_ed25519.pub.        If they are not there generate them.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Generating keys&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run ssh-keygen -t ed25519 -C "&lt;a href="mailto:almasavrl@gmail.com"&gt;almasavrl@gmail.com&lt;/a&gt;"
Replace "&lt;a href="mailto:almasavrl@gmail.com"&gt;almasavrl@gmail.com&lt;/a&gt;" with your actual GitHub email address.&lt;/li&gt;
&lt;li&gt;Put a passphrase(optional) or press enter &lt;/li&gt;
&lt;li&gt;Enter for the location of the ssh files to be in default location.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Add the SSH Key to the SSH Agent&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start the SSH agent in the background:
&lt;code&gt;eval "$(ssh-agent -s)&lt;/code&gt;
&lt;code&gt;ssh-add ~/.ssh/id_ed25519&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adding the SSH Key to my GitHub Account&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;cat ~/.ssh/id_ed25519.pub&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Copy the ssh key in github&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Head to my profile, settings then SSH and GPG settings added the new SSH key.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Test Your SSH Connection:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;ssh -T git@github.com&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You should see a success message as such:
Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;GIT&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;What to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Head on over to &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;https://git-scm.com/downloads&lt;/a&gt; on your browser&lt;/li&gt;
&lt;li&gt;Download the version required by respective operating system&lt;/li&gt;
&lt;li&gt;Run the execute file and you should have git installed in a folder containing -git bash
       -git gui
       -git cmd&lt;/li&gt;
&lt;li&gt;Further setting up of github email and username can be done in the bash&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Docker&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;What to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Head on over to &lt;a href="https://www.docker.com/get-started/" rel="noopener noreferrer"&gt;https://www.docker.com/get-started/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Click on download Docker desktop&lt;/li&gt;
&lt;li&gt;Run the executable files and docker should be installed &lt;/li&gt;
&lt;li&gt;Of course create an account or sign up via google or github&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Installing key components to kickstart a 20-day bootcamp for django</title>
      <dc:creator>almasi-y</dc:creator>
      <pubDate>Tue, 24 Jun 2025 19:39:11 +0000</pubDate>
      <link>https://dev.to/almasiy/installing-key-components-to-kickstart-a-20-day-bootcamp-for-django-1d3a</link>
      <guid>https://dev.to/almasiy/installing-key-components-to-kickstart-a-20-day-bootcamp-for-django-1d3a</guid>
      <description>&lt;h2&gt;
  
  
  CONNECT GITHUB WITH GITHUB SSH KEYS
&lt;/h2&gt;

&lt;p&gt;For this step, check for existing SSH Keys and I did that on ubuntu bash and wrote &lt;code&gt;ls -al ~/.ssh&lt;/code&gt;. This lists the files in your .ssh directory. Looked for files like id_rsa.pub, id_ecdsa.pub, or id_ed25519.pub. They were not there so next is generating them.&lt;br&gt;
Have to run &lt;code&gt;ssh-keygen -t ed25519 -C "youremail@gmail.com"&lt;/code&gt;&lt;br&gt;
Replace "&lt;a href="mailto:your_email@example.com"&gt;your_email@example.com&lt;/a&gt;" with your GitHub email address.&lt;br&gt;
Personally I did not put a passphrase and the location of the ssh files are in the default location.&lt;br&gt;
Add the SSH Key to the SSH Agent&lt;br&gt;
Start the SSH agent in the background:&lt;br&gt;
&lt;code&gt;eval "$(ssh-agent -s)&lt;/code&gt;&lt;br&gt;
Add your SSH private key to the agent:&lt;br&gt;
&lt;code&gt;ssh-add ~/.ssh/id_ed25519&lt;/code&gt;&lt;br&gt;
Finally to have the ssh keys set up:&lt;br&gt;
Adding the SSH Key to my GitHub Account&lt;br&gt;
&lt;code&gt;cat ~/.ssh/id_ed25519.pub&lt;/code&gt;&lt;br&gt;
I copied the ssh key then headed to my profile,settings then ssh and gpg settings added the new ssh key.&lt;br&gt;
Test Your SSH Connection:&lt;br&gt;
&lt;code&gt;ssh -T git@github.com&lt;/code&gt;&lt;br&gt;
But I got a message about fingerprints I did not understand, eventually I got the message &lt;br&gt;
Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.&lt;/p&gt;

&lt;h2&gt;
  
  
  DOCKER
&lt;/h2&gt;

&lt;p&gt;At this point I feel like I am an expert because I know that docker is; a container, see expert. Headed to google typed in docker install windows because my laptop has windows 64 bits but what is the difference between ARM and AMG, food for thought. Run it, and either create a docker account or sign in via google or github, I used google easy.&lt;/p&gt;

&lt;h2&gt;
  
  
  WSL
&lt;/h2&gt;

&lt;p&gt;I installed Windows Subsytem for Linux by first installing ubuntu 24.0.0 via microsoft store, and it installed wsl by default, set up ubuntU and I had wsl.&lt;/p&gt;

&lt;h2&gt;
  
  
  VS Code
&lt;/h2&gt;

&lt;p&gt;Prior to this bootcamp I had VS Code already installed and these were the steps I took.&lt;br&gt;
So go straight ahead to google, type in vs code install and after it downloads run it and voila you have vs code app ready to go&lt;/p&gt;

&lt;h2&gt;
  
  
  GIT
&lt;/h2&gt;

&lt;p&gt;Then later into my learning journey I installed git. Basically same steps as I did with vs code only this time type git install windows, run it and now you have; git bash, git gui and some git documentation as well.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
