<?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: Mahmoud Elmahdi</title>
    <description>The latest articles on DEV Community by Mahmoud Elmahdi (@mahmoudelmahdi).</description>
    <link>https://dev.to/mahmoudelmahdi</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%2F38097%2F8265d150-2fc8-410a-addd-befeeafa22c7.jpg</url>
      <title>DEV Community: Mahmoud Elmahdi</title>
      <link>https://dev.to/mahmoudelmahdi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mahmoudelmahdi"/>
    <language>en</language>
    <item>
      <title>I built a Chrome extension to pin GitHub items — here’s why and how it helps</title>
      <dc:creator>Mahmoud Elmahdi</dc:creator>
      <pubDate>Sun, 20 Apr 2025 10:20:42 +0000</pubDate>
      <link>https://dev.to/mahmoudelmahdi/i-built-a-chrome-extension-to-pin-github-items-heres-why-and-how-it-helps-i7e</link>
      <guid>https://dev.to/mahmoudelmahdi/i-built-a-chrome-extension-to-pin-github-items-heres-why-and-how-it-helps-i7e</guid>
      <description>&lt;p&gt;Hey Devs! 👋&lt;/p&gt;

&lt;p&gt;I recently built a small Chrome extension called &lt;a href="https://chromewebstore.google.com/detail/githubpin/hfedkfpmcmchjllbkhcaklaecghkmlab" rel="noopener noreferrer"&gt;GithubPin&lt;/a&gt; to solve a personal annoyance: keeping track of GitHub repos, issues, pull requests, and projects that I’m actively working on.&lt;/p&gt;

&lt;p&gt;Bookmarks? Too messy. GitHub notifications? Not enough control.&lt;br&gt;
So I thought — what if I could just pin important GitHub items right from the page and get back to them later with zero fuss?&lt;/p&gt;

&lt;p&gt;💡 What &lt;a href="https://chromewebstore.google.com/detail/githubpin/hfedkfpmcmchjllbkhcaklaecghkmlab" rel="noopener noreferrer"&gt;GithubPin&lt;/a&gt; does:&lt;br&gt;
Adds a pin button directly to GitHub pages (repos, issues, PRs, and project boards)&lt;br&gt;
Saves pinned items.&lt;br&gt;
Displays everything in a clean, GitHub-styled&lt;br&gt;
Organizes items by type and shows useful info like labels, status, etc.&lt;br&gt;
Works silently in the background — no login, no setup needed&lt;br&gt;
It’s a lightweight extension, built with a content script.&lt;/p&gt;

&lt;p&gt;🤖 Tech Stack:&lt;br&gt;
TypeScript for scripts and logic&lt;br&gt;
React + CSS&lt;br&gt;
Chrome Extensions API (storage, tabs, activeTab)&lt;/p&gt;

&lt;p&gt;🔗 Try it out:&lt;br&gt;
👉 &lt;a href="https://chromewebstore.google.com/detail/githubpin/hfedkfpmcmchjllbkhcaklaecghkmlab" rel="noopener noreferrer"&gt;https://chromewebstore.google.com/detail/githubpin/hfedkfpmcmchjllbkhcaklaecghkmlab&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’d love to hear your feedback, ideas, or wishlist for future features (folders? GitHub Enterprise support?).&lt;/p&gt;

&lt;p&gt;Thanks for reading — happy pinning!&lt;/p&gt;

</description>
      <category>extensions</category>
      <category>github</category>
      <category>tooling</category>
      <category>programming</category>
    </item>
    <item>
      <title>JavaScript AbortController - 3 use cases</title>
      <dc:creator>Mahmoud Elmahdi</dc:creator>
      <pubDate>Wed, 09 Oct 2024 22:39:00 +0000</pubDate>
      <link>https://dev.to/mahmoudelmahdi/javascript-abortcontroller-3-use-cases-3fcg</link>
      <guid>https://dev.to/mahmoudelmahdi/javascript-abortcontroller-3-use-cases-3fcg</guid>
      <description></description>
    </item>
    <item>
      <title>From chaos to order: How to plan projects like a Pro and deliver results</title>
      <dc:creator>Mahmoud Elmahdi</dc:creator>
      <pubDate>Fri, 16 Jun 2023 19:54:12 +0000</pubDate>
      <link>https://dev.to/mahmoudelmahdi/from-chaos-to-order-how-to-plan-projects-like-a-pro-and-deliver-results-1nj9</link>
      <guid>https://dev.to/mahmoudelmahdi/from-chaos-to-order-how-to-plan-projects-like-a-pro-and-deliver-results-1nj9</guid>
      <description>&lt;p&gt;Proven strategies for crushing deadlines and what to avoid!&lt;/p&gt;

&lt;p&gt;Are you tired of feeling overwhelmed by deadlines, frustrated with chaotic workflows, and constantly playing catch-up? If so, you’ve come to the right place.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--irz8rJpq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qdpfjw4ijmuwhkka1siq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--irz8rJpq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qdpfjw4ijmuwhkka1siq.png" alt="Image description" width="800" height="719"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this blog post, we’re going to unveil the secrets of successful project planning that will revolutionize your approach and skyrocket your productivity. Whether you’re a seasoned project manager or a driven professional looking to enhance your organizational skills, this is your ultimate guide to transforming your projects from stressful endeavors to seamless triumphs.&lt;/p&gt;

&lt;p&gt;We’ll delve into proven strategies and expert insights that will empower you to take control of your projects, stay ahead of schedule, and deliver exceptional results. From creating a well-defined project scope to mastering resource allocation and risk management, we’ve got you covered.&lt;/p&gt;

&lt;p&gt;So, if you’re ready to embark on a journey towards project planning excellence, buckle up and let’s dive in. Say goodbye to missed deadlines, stress-inducing chaos, and hello to a new era of efficiency and success. Get ready to unlock your full potential and propel your projects to new heights. Let’s get started!&lt;/p&gt;

&lt;p&gt;Writing a successful project plan involves several key steps. Here’s a general outline to help you get started:&lt;/p&gt;

&lt;h2&gt;
  
  
  Define the project scope
&lt;/h2&gt;

&lt;p&gt;Clearly identify the project’s objectives, deliverables, and boundaries. Determine what is within the project’s scope and what is not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conduct a thorough project analysis
&lt;/h2&gt;

&lt;p&gt;Gather all the relevant information about the project, including its goals, stakeholders, resources, constraints, and risks. Assess the feasibility and potential impact of the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set specific and measurable goals
&lt;/h2&gt;

&lt;p&gt;Establish clear and realistic goals that align with the project’s objectives. Goals should be specific, measurable, achievable, relevant, and time-bound (SMART).&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a work breakdown structure (WBS)
&lt;/h2&gt;

&lt;p&gt;Divide the project into manageable tasks and subtasks. Organize these tasks in a hierarchical structure to provide a clear understanding of the project’s components and their dependencies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Define project milestones
&lt;/h2&gt;

&lt;p&gt;Identify significant points or events in the project timeline that mark the completion of major deliverables or the achievement of key objectives. Milestones help track progress and provide a sense of accomplishment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Develop a project schedule
&lt;/h2&gt;

&lt;p&gt;Create a timeline that outlines when each task and milestone should be completed. Consider dependencies, resource availability, and any external constraints. Use project management tools or software to assist in scheduling and resource allocation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Allocate resources
&lt;/h2&gt;

&lt;p&gt;Identify and assign the necessary resources, including personnel, equipment, and materials, to each task. Ensure that resources are available when needed and that they have the required skills and expertise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Identify and manage risks
&lt;/h2&gt;

&lt;p&gt;Assess potential risks and uncertainties that may impact the project’s success. Develop a risk management plan that includes strategies for mitigating, avoiding, or accepting risks. Continuously monitor and update the plan throughout the project lifecycle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a communication plan
&lt;/h2&gt;

&lt;p&gt;Determine how project information will be shared and disseminated among stakeholders. Define the communication channels, frequency, and format of project updates and reporting. Foster open communication to ensure everyone is informed and aligned.&lt;/p&gt;

&lt;h2&gt;
  
  
  Establish a project budget
&lt;/h2&gt;

&lt;p&gt;Estimate the costs associated with the project, including labor, materials, equipment, and any other relevant expenses. Develop a budget that is realistic and aligned with the available resources. Monitor and control expenses throughout the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build a project team
&lt;/h2&gt;

&lt;p&gt;Assemble a team with the necessary skills and expertise to execute the project. Define roles and responsibilities, and foster collaboration and accountability among team members. Clearly communicate expectations and provide the necessary support and guidance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitor and control progress
&lt;/h2&gt;

&lt;p&gt;Continuously track the project’s progress against the established schedule, milestones, and goals. Use progress reports, key performance indicators (KPIs), and project management techniques to monitor and control the project. Take corrective actions if deviations occur.&lt;/p&gt;

&lt;h2&gt;
  
  
  Review and adapt the plan
&lt;/h2&gt;

&lt;p&gt;Regularly review and update the project plan as needed. As the project progresses, new information and insights may emerge that require adjustments to the plan. Be flexible and adaptable to changes while keeping the project’s objectives in focus.&lt;/p&gt;




&lt;p&gt;When planning a project, it’s important to be aware of potential pitfalls and avoid common mistakes. Here are some things to avoid when creating a project plan 🙅&lt;/p&gt;

&lt;h2&gt;
  
  
  Insufficient planning
&lt;/h2&gt;

&lt;p&gt;Rushing through the planning phase or neglecting to thoroughly analyze the project requirements and constraints can lead to inaccurate estimates, missed deadlines, and project failure. Take the time to gather all the necessary information and plan the project comprehensively.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lack of stakeholder involvement
&lt;/h2&gt;

&lt;p&gt;Failing to involve key stakeholders from the beginning can result in misalignment, misunderstandings, and resistance to the project. Engage stakeholders early on, gather their input, and address their concerns throughout the planning process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Unrealistic goals and expectations
&lt;/h2&gt;

&lt;p&gt;Setting overly ambitious or vague goals can set the project up for failure. Ensure that goals are realistic, achievable, and aligned with the project’s scope and resources. Clearly communicate the project’s limitations to manage expectations effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inadequate risk management
&lt;/h2&gt;

&lt;p&gt;Neglecting to identify and address potential risks can lead to project delays, cost overruns, and quality issues. Develop a comprehensive risk management plan, including risk identification, assessment, mitigation strategies, and contingency plans.&lt;/p&gt;

&lt;h2&gt;
  
  
  Poorly defined roles and responsibilities
&lt;/h2&gt;

&lt;p&gt;Ambiguity or confusion about roles and responsibilities can result in inefficiencies, duplication of efforts, and lack of accountability. Clearly define the roles and responsibilities of each team member and communicate them effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lack of communication and collaboration
&lt;/h2&gt;

&lt;p&gt;Ineffective communication can lead to misunderstandings, delays, and poor decision-making. Establish a communication plan that outlines the channels, frequency, and methods of communication among team members and stakeholders. Foster open and transparent communication throughout the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inadequate resource allocation
&lt;/h2&gt;

&lt;p&gt;Failing to allocate resources effectively can lead to resource shortages, bottlenecks, and compromised quality. Ensure that resources, including personnel, equipment, and materials, are adequately allocated and available when needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scope creep
&lt;/h2&gt;

&lt;p&gt;Allowing uncontrolled changes and additions to the project scope can disrupt the project timeline, increase costs, and strain resources. Clearly define the project scope and diligently manage any changes through a formal change control process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Poor risk assessment and mitigation
&lt;/h2&gt;

&lt;p&gt;Underestimating or ignoring potential risks can lead to project failures. Conduct a thorough risk assessment, identify potential risks, and develop proactive mitigation strategies to address them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inadequate monitoring and control
&lt;/h2&gt;

&lt;p&gt;Failing to monitor project progress and take corrective actions can result in deviations from the plan and missed deadlines. Regularly track and evaluate project performance against the established metrics, milestones, and goals. Take timely corrective actions to keep the project on track.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Autofill plugin for Figma</title>
      <dc:creator>Mahmoud Elmahdi</dc:creator>
      <pubDate>Sat, 24 Dec 2022 15:10:31 +0000</pubDate>
      <link>https://dev.to/mahmoudelmahdi/autofill-plugin-for-figma-4mij</link>
      <guid>https://dev.to/mahmoudelmahdi/autofill-plugin-for-figma-4mij</guid>
      <description>&lt;p&gt;I recently built &lt;a href="https://www.figma.com/community/plugin/1186090405060894565"&gt;Autofill Figma Plugin&lt;/a&gt;. It fills "Text" nodes with data automatically using dynamic variables. &lt;/p&gt;

&lt;h2&gt;
  
  
  See how it works
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/m9IVdefvimA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Data categories and dynamic variables
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Name - generate people's names and titles&lt;/li&gt;
&lt;li&gt;Internet - generate internet related entries&lt;/li&gt;
&lt;li&gt;Finance&lt;/li&gt;
&lt;li&gt;Animals&lt;/li&gt;
&lt;li&gt;Addresses&lt;/li&gt;
&lt;li&gt;...and more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;List of all available dynamic variables can be found &lt;a href="https://melmahdi.me/projects/autofill-figma-plugin"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>design</category>
      <category>figma</category>
      <category>tooling</category>
      <category>uiweekly</category>
    </item>
    <item>
      <title>React Utility Components</title>
      <dc:creator>Mahmoud Elmahdi</dc:creator>
      <pubDate>Mon, 05 Dec 2022 19:20:42 +0000</pubDate>
      <link>https://dev.to/mahmoudelmahdi/react-utility-components-eak</link>
      <guid>https://dev.to/mahmoudelmahdi/react-utility-components-eak</guid>
      <description>&lt;p&gt;&lt;a href="https://www.npmjs.com/package/@melmahdi/reactuc"&gt;Reusable react components&lt;/a&gt; to maximize your coding efficiency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i @melmahdi/reactuc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Components
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If&lt;/li&gt;
&lt;li&gt;Image&lt;/li&gt;
&lt;li&gt;Iterate&lt;/li&gt;
&lt;li&gt;Table&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  If
&lt;/h3&gt;

&lt;p&gt;Conditional rendering component&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;If&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@melmahdi/reactuc&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;If&lt;/span&gt; &lt;span class="nx"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;otherwise&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;otherwise&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ReactNode&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/If&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Image
&lt;/h3&gt;

&lt;p&gt;Component to handle broken images&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Image&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@melmahdi/reactuc&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Image&lt;/span&gt; &lt;span class="nx"&gt;fallback&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{...}&lt;/span&gt; &lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;alt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Iterate
&lt;/h3&gt;

&lt;p&gt;Component to handle iterations.&lt;/p&gt;

&lt;p&gt;Display list of paragraph (with html tag):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Iterate&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@melmahdi/reactuc&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Iterate&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;...&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;...&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;...&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]}&lt;/span&gt; &lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;p&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Display list of objects (with component):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Iterate&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@melmahdi/reactuc&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cards&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;75ebc192&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Lira Fresh Optimization&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Iterate&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;users&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;UserComponent&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Table
&lt;/h3&gt;

&lt;p&gt;Table component&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Table&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@melmahdi/reactuc&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;tableData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;head&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;First&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="kd"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;button&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Action&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&amp;gt;]&lt;/span&gt;&lt;span class="err"&gt;,
&lt;/span&gt;  &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;One&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Two&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;...,&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Table&lt;/span&gt; &lt;span class="p"&gt;{...&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>react</category>
      <category>npm</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Software development and programming tools</title>
      <dc:creator>Mahmoud Elmahdi</dc:creator>
      <pubDate>Thu, 03 Nov 2022 08:48:27 +0000</pubDate>
      <link>https://dev.to/mahmoudelmahdi/software-development-and-programming-tools-5258</link>
      <guid>https://dev.to/mahmoudelmahdi/software-development-and-programming-tools-5258</guid>
      <description>&lt;p&gt;In the previous post I described how &lt;a href="https://dev.to/mahmoudelmahdi/the-internet-2pl3"&gt;the Internet works&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In this post we'll see what are the most essential tools for programmers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Editors
&lt;/h2&gt;

&lt;p&gt;Writing computer code is basically a series of textual instructions for a computer to execute. This means that we can write code - in its simplest form - anywhere text can be captured. This includes a text editor, a document app, etc. But that does not mean that such a tool is the best place or the best way to write code.&lt;/p&gt;

&lt;p&gt;Since writing code can be more complex than just writing text, a Code Editor is a specialized environment with advanced options for this task. In other words, a Code Editor is a text editor with sophisticated built-in capabilities and special features that make editing code easier and faster.&lt;/p&gt;

&lt;p&gt;A Code Editor is one of the most essential tools for programmers. It was developed with the express purpose of making code editing more efficient and easier. A text editor is comparable to a Code Editor, but a Code Editor offers much more features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Integrated Development Environment (IDE)
&lt;/h2&gt;

&lt;p&gt;An Integrated Development Environment (IDE) is a software application that helps programmers develop software code efficiently. IDE is designed to combine all aspects of programming into a single application.&lt;/p&gt;

&lt;p&gt;IDEs come with a wide range of features. In their most basic form, they always contain at least one of the following components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code Editor&lt;/li&gt;
&lt;li&gt;Compiler or Interpreter: Compilers are responsible for converting source code that is written in a language that is readable and writable by humans into a format that computers can run.&lt;/li&gt;
&lt;li&gt;Debugger&lt;/li&gt;
&lt;li&gt;Syntax highlighter&lt;/li&gt;
&lt;li&gt;Graphical User Interface (GUI)&lt;/li&gt;
&lt;li&gt;Build automation tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nowadays, most Code Editors offer more or less the same features as IDEs with additional add-ons (or out of the box).&lt;/p&gt;

&lt;h2&gt;
  
  
  Popular Code Editors and IDE
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft &lt;a href="https://code.visualstudio.com"&gt;Visual Studio Code&lt;/a&gt; (Free)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.jetbrains.com"&gt;JetBrains IDEs&lt;/a&gt; (Paid)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The Internet</title>
      <dc:creator>Mahmoud Elmahdi</dc:creator>
      <pubDate>Thu, 03 Nov 2022 08:39:59 +0000</pubDate>
      <link>https://dev.to/mahmoudelmahdi/the-internet-2pl3</link>
      <guid>https://dev.to/mahmoudelmahdi/the-internet-2pl3</guid>
      <description>&lt;p&gt;&lt;strong&gt;Getting Started with the Web&lt;/strong&gt; is a post series on getting started with web development that will help you understand and learn the basic parts of the World Wide Web to create your own web pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Internet
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How does the Internet work&lt;/li&gt;
&lt;li&gt;Hypertext Transfer Protocol (HTTP)&lt;/li&gt;
&lt;li&gt;Domain&lt;/li&gt;
&lt;li&gt;How the web works&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How the Internet works
&lt;/h2&gt;

&lt;p&gt;The Internet is a collection of individual computers (and computer networks in businesses, schools, and organizations) that are generally all connected to each other, mainly through the network. The connections between computers are a mixture of old-fashioned copper cables, fiber-optic cables (which send messages in pulses of light), wireless radio connections (which transmit information via radio waves), and satellites.&lt;/p&gt;

&lt;h2&gt;
  
  
  The way the Internet functions
&lt;/h2&gt;

&lt;p&gt;There are two important concepts in how the Internet works: packets and protocols.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Packets&lt;/strong&gt;: In networks, a packet is a formatted unit of data transmitted over a network connection. It consists of control information and user data (payload).&lt;/p&gt;

&lt;p&gt;Control information includes source and destination addresses. The user data (payload) is the transmitted content, e.g. text, images or media files (audio, video).&lt;/p&gt;

&lt;p&gt;When the packets arrive at their destination (computer), they are reassembled into the original data. This process is called packet switching&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2st6M4_a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/icjvw3e0jyhdgb8wyjp4.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2st6M4_a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/icjvw3e0jyhdgb8wyjp4.jpeg" alt="Packets in networks - Mahmoud Elmahdi" width="880" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Protocols&lt;/strong&gt;: The Internet Protocol (IP) is simply the addressing system of the Internet. All connected computers on the Internet are identified by an Internet Protocol &lt;br&gt;
(IP) address. &lt;/p&gt;

&lt;p&gt;A protocol is a set of rules that control the format of data sent over the Internet.&lt;/p&gt;

&lt;p&gt;An IP address is a sequence of numbers separated by periods. IP addresses are expressed as a set of four numbers. Each number in this set can range from 0 to 255.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ofc-23aM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ercdt2u2htvd3lebnr99.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ofc-23aM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ercdt2u2htvd3lebnr99.jpeg" alt="IP address - Mahmoud Elmahdi" width="880" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  IP address examples
&lt;/h3&gt;

&lt;p&gt;150.107.195.151&lt;br&gt;
136.237.184.147&lt;br&gt;
253.196.6.213&lt;br&gt;
8.57.99.168&lt;br&gt;
225.244.249.141&lt;br&gt;
196.33.116.61&lt;/p&gt;

&lt;h2&gt;
  
  
  Web hosting
&lt;/h2&gt;

&lt;p&gt;Web hosting is a service that allows organizations and individuals to publish a website on the Internet. A web host, or web hosting service provider, is a company that provides the technologies and services necessary for the website to be displayed on the Internet. Websites are hosted, or stored, on special computers called servers, or web servers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Web server
&lt;/h2&gt;

&lt;p&gt;Simply put, a web server is a computer that stores, processes, and delivers the files of a website to the web browsers.&lt;/p&gt;

&lt;p&gt;Web servers consist of hardware and software that use the Hypertext Transfer Protocol (HTTP) to respond to requests made by web users browser&lt;/p&gt;

&lt;h2&gt;
  
  
  Hypertext Transfer Protocol (HTTP)
&lt;/h2&gt;

&lt;p&gt;The Hypertext Transfer Protocol (HTTP) is a set of rules that describe how information is exchanged over a network that allows a web client (browser) and web server to communicate with each other.&lt;/p&gt;

&lt;p&gt;Web clients (browsers) and web servers communicate by exchanging individual messages; The messages sent by a web client (browser) are called &lt;strong&gt;requests&lt;/strong&gt; and the messages sent by the web server (is response) are called &lt;strong&gt;responses&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ix_sdLFz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d7bimvldzev1gbovp7q2.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ix_sdLFz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d7bimvldzev1gbovp7q2.jpeg" alt="HTTP - Mahmoud Elmahdi" width="880" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Domain
&lt;/h2&gt;

&lt;p&gt;The Domain Name System (DNS) is the yellow pages of the Internet. People access information online through domain names. Web clients (browsers) interact using Internet Protocol (IP) addresses.&lt;/p&gt;

&lt;p&gt;A domain name can be any combination of letters and numbers, and it can be used in combination with the various domain name extensions, such as .com, .net, .co.uk and others.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jElIMjVH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kjuf4keyg20a6ei2qsd0.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jElIMjVH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kjuf4keyg20a6ei2qsd0.jpeg" alt="Domain - Mahmoud Elmahdi" width="880" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Domain Name System (DNS)
&lt;/h2&gt;

&lt;p&gt;A decentralized database that converts the domain name (e.g. google.com) into a corresponding computer-friendly IP address (e.g. 216.58.209.14).&lt;/p&gt;

&lt;p&gt;The Domain Name System (DNS) translates domain names into IP addresses so that browsers can load Internet (web) resources.&lt;/p&gt;

&lt;p&gt;Each device on the Internet is assigned an IP address, and this address is necessary to find the corresponding Internet device — just as a street address is used to find a particular house.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the web works
&lt;/h2&gt;

&lt;p&gt;When you type or click the Uniform Resource Locator (URL) of a website into a client, a request is sent to the Internet Service Provider (IPS), which connects the web browser (client) to the server. The IPS then communicates with the Domain Name System (DNS) and checks the IP address of the server hosting the website. After it receives the IP address of the destination server, it sends it to the web browser, and the client receives the provided resources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SoK84bTs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gaaat0o6ns0i32btlal7.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SoK84bTs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gaaat0o6ns0i32btlal7.jpeg" alt="The web - Mahmoud Elmahdi" width="880" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>web</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Operators in JavaScript</title>
      <dc:creator>Mahmoud Elmahdi</dc:creator>
      <pubDate>Mon, 15 Jun 2020 20:06:30 +0000</pubDate>
      <link>https://dev.to/mahmoudelmahdi/operators-in-javascript-5ha9</link>
      <guid>https://dev.to/mahmoudelmahdi/operators-in-javascript-5ha9</guid>
      <description>&lt;h2&gt;
  
  
  JavaScript Operators
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Topics covered in this video:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Types of operators in JavaScript&lt;/li&gt;
&lt;li&gt;Arithmetic operators&lt;/li&gt;
&lt;li&gt;Assignment operators&lt;/li&gt;
&lt;li&gt;Comparison operators&lt;/li&gt;
&lt;li&gt;Relational operators&lt;/li&gt;
&lt;li&gt;Logical operators&lt;/li&gt;
&lt;li&gt;Conditional (ternary) operator&lt;/li&gt;
&lt;li&gt;typeof operator&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/z-Cp6gdYK9A"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;📄 Check out the &lt;a href="https://dev.to/_elmahdim/destructuring-in-javascript-87n"&gt;Destructuring in JavaScript article&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;▶ &lt;a href="https://www.youtube.com/playlist?list=PLq2_2u8CDe3RSYnDqBlUNwHoJalovMK7j"&gt;Course Playlist&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UCWaZqFpykcDUwC3q7JPDZ8g?sub_confirmation=1"&gt;Subscribe&lt;/a&gt; for more videos, and stay tuned for &lt;a href="https://www.youtube.com/playlist?list=PLq2_2u8CDe3RSYnDqBlUNwHoJalovMK7j"&gt;updates&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>JavaScript Data Types</title>
      <dc:creator>Mahmoud Elmahdi</dc:creator>
      <pubDate>Wed, 27 May 2020 01:32:10 +0000</pubDate>
      <link>https://dev.to/mahmoudelmahdi/javascript-data-types-2bk7</link>
      <guid>https://dev.to/mahmoudelmahdi/javascript-data-types-2bk7</guid>
      <description>&lt;h2&gt;
  
  
  JavaScript data types and data structures
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Topics covered in this video:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Overview of data types&lt;/li&gt;
&lt;li&gt;Type system in programming languages&lt;/li&gt;
&lt;li&gt;High-level overview at the difference between dynamically typed languages and statically typed languages&lt;/li&gt;
&lt;li&gt;Data types and data structures&lt;/li&gt;
&lt;li&gt;Primitive data types: String, Number, Boolean, Undefined, Null, BigInt and Symbol&lt;/li&gt;
&lt;li&gt;Non-Primitive data types: referred to collectively as Objects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/AsJhjDirCUI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;📄 Check out the &lt;a href="https://dev.to/_elmahdim/javascript-string-methods-you-probably-havent-heard-of-and-thats-okay-23hc"&gt;JavaScript String Methods article&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;▶ &lt;a href="https://www.youtube.com/playlist?list=PLq2_2u8CDe3RSYnDqBlUNwHoJalovMK7j"&gt;Course Playlist&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UCWaZqFpykcDUwC3q7JPDZ8g?sub_confirmation=1"&gt;Subscribe&lt;/a&gt; for more videos, and stay tuned for &lt;a href="https://www.youtube.com/playlist?list=PLq2_2u8CDe3RSYnDqBlUNwHoJalovMK7j"&gt;updates&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>datatypes</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>JavaScript const</title>
      <dc:creator>Mahmoud Elmahdi</dc:creator>
      <pubDate>Sat, 23 May 2020 08:54:53 +0000</pubDate>
      <link>https://dev.to/mahmoudelmahdi/javascript-const-nof</link>
      <guid>https://dev.to/mahmoudelmahdi/javascript-const-nof</guid>
      <description>&lt;p&gt;Topics covered in this video:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is const (constants)?&lt;/li&gt;
&lt;li&gt;What they are used for?&lt;/li&gt;
&lt;li&gt;The let keyword behavior vs the const keyword behavior with an example&lt;/li&gt;
&lt;li&gt;Access const object's value and change its properties&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/4HARgRzDmXc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Stay tuned for &lt;a href="https://www.youtube.com/playlist?list=PLq2_2u8CDe3RSYnDqBlUNwHoJalovMK7j"&gt;updates&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>const</category>
      <category>beginners</category>
      <category>learn</category>
    </item>
    <item>
      <title>JavaScript Variables</title>
      <dc:creator>Mahmoud Elmahdi</dc:creator>
      <pubDate>Fri, 22 May 2020 11:39:13 +0000</pubDate>
      <link>https://dev.to/mahmoudelmahdi/javascript-variables-39cg</link>
      <guid>https://dev.to/mahmoudelmahdi/javascript-variables-39cg</guid>
      <description>&lt;p&gt;Check out my recent video about &lt;a href="https://youtu.be/me9j2vG0Ozo"&gt;Variables in JavaScript&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Topics I covered in this video:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is variable?&lt;/li&gt;
&lt;li&gt;Variables in JavaScript&lt;/li&gt;
&lt;li&gt;Variable declarations&lt;/li&gt;
&lt;li&gt;Declaring variables&lt;/li&gt;
&lt;li&gt;...and variable scope&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stay tuned for &lt;a href="https://www.youtube.com/playlist?list=PLq2_2u8CDe3RSYnDqBlUNwHoJalovMK7j"&gt;updated&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>variables</category>
    </item>
    <item>
      <title>Learn JavaScript FREE Course</title>
      <dc:creator>Mahmoud Elmahdi</dc:creator>
      <pubDate>Thu, 21 May 2020 22:00:25 +0000</pubDate>
      <link>https://dev.to/mahmoudelmahdi/learn-javascript-free-course-3oeo</link>
      <guid>https://dev.to/mahmoudelmahdi/learn-javascript-free-course-3oeo</guid>
      <description>&lt;p&gt;I've just published 🎉🥳 the first two videos in my first &lt;a href="https://www.youtube.com/watch?v=KsLTa--k0Ec&amp;amp;list=PLq2_2u8CDe3RSYnDqBlUNwHoJalovMK7j"&gt;online course&lt;/a&gt; ever, and man am so excited about it!&lt;/p&gt;

&lt;p&gt;It tooks a lots of efforts and learning curves on the go to get my head around, mapping the course out, and play around video/audio recording and editing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Course overview
&lt;/h2&gt;

&lt;p&gt;Here'a an overview about the course and what to expect from it&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/KsLTa--k0Ec"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Course content
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://www.youtube.com/playlist?list=PLq2_2u8CDe3RSYnDqBlUNwHoJalovMK7j"&gt;Learn JavaScript Playlist&lt;/a&gt; is going to be updated regularly, so &lt;a href="https://www.youtube.com/channel/UCWaZqFpykcDUwC3q7JPDZ8g?sub_confirmation=1"&gt;stay tuned&lt;/a&gt; for up coming lectures/videos. Make sure to &lt;a href="https://www.youtube.com/channel/UCWaZqFpykcDUwC3q7JPDZ8g?sub_confirmation=1"&gt;Subscribe&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Feedback are always welcome!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>learn</category>
      <category>course</category>
      <category>youtube</category>
    </item>
  </channel>
</rss>
