<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Mohammed Salah</title>
    <description>The latest articles on Forem by Mohammed Salah (@mhmd-salah).</description>
    <link>https://forem.com/mhmd-salah</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%2F1186898%2Fa6d33525-22cf-4530-adfd-79afce85095a.png</url>
      <title>Forem: Mohammed Salah</title>
      <link>https://forem.com/mhmd-salah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mhmd-salah"/>
    <language>en</language>
    <item>
      <title>VS Code settings that every front-end developer should know</title>
      <dc:creator>Mohammed Salah</dc:creator>
      <pubDate>Thu, 04 Jul 2024 00:59:22 +0000</pubDate>
      <link>https://forem.com/mhmd-salah/vs-code-settings-that-every-front-end-developer-should-know-2c1h</link>
      <guid>https://forem.com/mhmd-salah/vs-code-settings-that-every-front-end-developer-should-know-2c1h</guid>
      <description>&lt;p&gt;In today's world of web development, Visual Studio Code (VS Code) is considered one of the most powerful and popular integrated development environments (IDEs) among developers. It is known for its great flexibility and support for a wide range of accessories that make the programming process an enjoyable and efficient experience. However, to get the most out of this powerful tool, developers need to customize its settings to suit their specific needs.&lt;br&gt;
Whether you are a novice developer or an expert in front-end development, properly adjusting your VS Code settings can greatly improve your productivity and make the development process much smoother. In this article, we will review a set of optimal settings that will help you improve your programming experience, by using tools such as ESLint, Prettier, Live Server and others.&lt;br&gt;
Get ready to discover how you can turn VS Code into an IDE that meets all your needs as a front-end developer.&lt;/p&gt;
&lt;h3&gt;
  
  
  Steps to open Visual Studio Code:
&lt;/h3&gt;

&lt;p&gt;1 - Make sure you have Visual Studio Code installed on your machine. If you don't have it, you can download it from the official website.&lt;br&gt;
2 - Open the Command Palette:&lt;br&gt;
 Press Ctrl+Shift+P (or Cmd+Shift+P on macOS) to open the command panel.&lt;br&gt;
3 - Find JSON settings:&lt;br&gt;
 In the command panel, start typing “Preferences: Open Settings (JSON)” until the option appears in the drop-down menu.&lt;br&gt;
 Click this option to open the settings JSON file.&lt;br&gt;
4 - Edit settings:&lt;br&gt;
 The settings.json file will open, you can now copy and paste the settings you want to add or modify.&lt;br&gt;
 Make sure to save the file after making your edits using Ctrl+S (or Cmd+S on macOS).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can copy these settings&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.tabSize"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.insertSpaces"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.formatOnSave"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.codeActionsOnSave"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"source.fixAll.eslint"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"files.autoSave"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"onFocusChange"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"files.associations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"*.js"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"javascriptreact"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"*.jsx"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"javascriptreact"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"eslint.alwaysShowStatus"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"prettier.singleQuote"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"prettier.semi"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"prettier.trailingComma"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"es5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"liveServer.settings.port"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"liveServer.settings.root"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"liveServer.settings.ignoreFiles"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;".vscode/**"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"**/*.scss"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"**/*.sass"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"emmet.includeLanguages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"javascript"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"javascriptreact"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"html"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"html"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"css"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"css"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.quickSuggestions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"strings"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.suggestSelection"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"first"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"explorer.confirmDelete"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"explorer.confirmDragAndDrop"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"workbench.colorTheme"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Default Light+"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"workbench.iconTheme"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"vscode-icons"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Explanation of settings:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;editor.tabSize:&lt;/strong&gt; Set the tab size to 2 spaces.&lt;br&gt;
&lt;strong&gt;editor.insertSpaces:&lt;/strong&gt; Use spaces instead of tabs.&lt;br&gt;
&lt;strong&gt;editor.formatOnSave:&lt;/strong&gt; Automatically format code on save.&lt;br&gt;
&lt;strong&gt;editor.codeActionsOnSave:&lt;/strong&gt; Automatically run ESLint fixes on save.&lt;br&gt;
&lt;strong&gt;files.autoSave:&lt;/strong&gt; Auto save when focus changes.&lt;br&gt;
&lt;strong&gt;files.associations:&lt;/strong&gt; Set .js and .jsx files as javascriptreact.&lt;br&gt;
&lt;strong&gt;eslint.alwaysShowStatus:&lt;/strong&gt; Always show ESLint status.&lt;br&gt;
&lt;strong&gt;prettier.*:&lt;/strong&gt; Prettier settings for code formatting.&lt;br&gt;
&lt;strong&gt;liveServer.settings.*:&lt;/strong&gt; Live Server settings to run the project locally.&lt;br&gt;
&lt;strong&gt;emmet.includeLanguages:&lt;/strong&gt; Include Emmet to support multiple languages.&lt;br&gt;
&lt;strong&gt;editor.quickSuggestions:&lt;/strong&gt; Enable quick text suggestions.&lt;br&gt;
&lt;strong&gt;editor.suggestSelection:&lt;/strong&gt; Selects the first suggestion by default.&lt;br&gt;
&lt;strong&gt;explorer.confirmDelete:&lt;/strong&gt; Disable confirmation of deletion.&lt;br&gt;
&lt;strong&gt;explorer.confirmDragAndDrop:&lt;/strong&gt; Disable drag-and-drop confirmation.&lt;br&gt;
&lt;strong&gt;workbench.colorTheme:&lt;/strong&gt; Set the default color theme.&lt;br&gt;
&lt;strong&gt;workbench.iconTheme:&lt;/strong&gt; Set the theme for the icons.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>frontend</category>
      <category>feather</category>
      <category>advanced</category>
    </item>
    <item>
      <title>The importance of TypeScript, its uses, and types</title>
      <dc:creator>Mohammed Salah</dc:creator>
      <pubDate>Sun, 30 Jun 2024 16:25:59 +0000</pubDate>
      <link>https://forem.com/mhmd-salah/the-importance-of-typescript-its-uses-and-types-507e</link>
      <guid>https://forem.com/mhmd-salah/the-importance-of-typescript-its-uses-and-types-507e</guid>
      <description>&lt;h4&gt;
  
  
  In the world of software development, TypeScript stands out as one of the most powerful and influential tools for improving code quality and development speed. Developed by Microsoft, TypeScript is an open source programming language based on JavaScript with powerful Type Annotations. In this article, we will review the importance of TypeScript, its uses, and its different types.
&lt;/h4&gt;

&lt;p&gt;TypeScript is a powerful tool that can significantly improve code quality and development speed. By catching errors early, improving the developer experience, and making maintenance easier, TypeScript provides an ideal development environment for large, complex projects. Whether you're developing web, server, mobile, or even games applications, TypeScript gives you the tools you need to succeed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The importance of TypeScript
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Early detection of errors:
One of the biggest advantages of TypeScript is its ability to detect errors early during the development process. Using qualitative feedback, syntactic and logical errors can be detected before the code is run, reducing debugging time and increasing application reliability.&lt;/li&gt;
&lt;li&gt;Improve developer experience:
TypeScript provides a better development experience by offering features such as Autocomplete and Intelligent Suggestions. These features make writing code faster and more accurate.&lt;/li&gt;
&lt;li&gt;Maintenance improvement:
Thanks to qualitative comments, the code becomes clearer and easier to understand. This makes it easier for large teams to work on the same project and makes maintenance and adding new features smoother.&lt;/li&gt;
&lt;li&gt;JavaScript compatibility:
TypeScript is fully compatible with JavaScript, which means that any JavaScript code can be used within a TypeScript project. This makes it easier to switch to TypeScript gradually without having to rewrite the entire code.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  TypeScript uses
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Web application development:
TypeScript is widely used in developing large and complex web applications. Many popular frameworks like Angular are primarily based on TypeScript.&lt;/li&gt;
&lt;li&gt;Server-side application development:
TypeScript can be used with Node.js to develop server applications. TypeScript provides powerful features that make developing server applications safer and easier.&lt;/li&gt;
&lt;li&gt;Mobile application development:
Using frameworks like React Native, TypeScript can be used to develop mobile applications for iOS and Android.&lt;/li&gt;
&lt;li&gt;Game development:
TypeScript is also used in game development with engines like Phaser, providing a powerful and flexible development environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  TypeScript types
&lt;/h2&gt;

&lt;p&gt;1 - Type Annotations:&lt;br&gt;
Type comments are used to specify the type of variables, parameters, and return values ​​from functions. This helps in catching errors and makes the code more clear.&lt;/p&gt;

&lt;p&gt;2 - Interfaces:&lt;br&gt;
Interfaces are used to define the appearance of objects. Interfaces help ensure that objects follow a specific structure, making it easier to work with code.&lt;/p&gt;

&lt;p&gt;3 - Classes:&lt;br&gt;
Classes are used to define objects and provide object-oriented programming (OOP) features such as inheritance and encapsulation.&lt;/p&gt;

&lt;p&gt;4 - Enums:&lt;br&gt;
Enumerations are used to define a set of constant values. Enumerations help make the code clearer and easier to understand.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>website</category>
      <category>node</category>
    </item>
    <item>
      <title>The Lifecycle of a JavaScript File in the Browser: Request, Load, Execute1</title>
      <dc:creator>Mohammed Salah</dc:creator>
      <pubDate>Thu, 27 Jun 2024 02:31:14 +0000</pubDate>
      <link>https://forem.com/mhmd-salah/the-lifecycle-of-a-javascript-file-in-the-browser-request-load-execute-1j24</link>
      <guid>https://forem.com/mhmd-salah/the-lifecycle-of-a-javascript-file-in-the-browser-request-load-execute-1j24</guid>
      <description>&lt;h2&gt;
  
  
  Lifecycle of a JavaScript file in the browser: request, load, and execution
&lt;/h2&gt;

&lt;p&gt;In this article, we'll walk through the life of a JavaScript file and see the full version of a file request, from its download, all the way to its execution. Understanding this method can help developers improve the performance of web pages and thus the user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Request:
&lt;/h3&gt;

&lt;p&gt;When the browser encounters a script tag in an HTML document, it sends an HTTP request to the server to get the JavaScript file specified in the src attribute. This request can be synchronous or asynchronous depending on how the tag is set up.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Load:
&lt;/h3&gt;

&lt;p&gt;Once the request is sent, the browser starts loading the JavaScript file. During this phase, the browser can load multiple files in parallel to improve performance. However, the browser must be careful in the order in which files are loaded and executed to ensure that the page functions correctly.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Execute:
&lt;/h3&gt;

&lt;p&gt;After the JavaScript file is fully loaded, the browser starts executing it. If the tag contains an async property, the file is executed immediately after it is uploaded. If it contains the defer property, the file is executed after the entire page is fully loaded and parsed.&lt;/p&gt;

&lt;p&gt;1 - Request: The browser sends an HTTP request to the server to obtain a JavaScript file.&lt;br&gt;
2 - Load: The browser starts loading the JavaScript file after receiving the request.&lt;br&gt;
3 - Execute: The browser executes the JavaScript file after it has completed loading.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Large or multiple JavaScript files can cause page loading delays. Therefore, it is important to use techniques such as async and defer to improve performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developers need to be aware of how the order in which JavaScript files are loaded and executed affects the page's cross-browser compatibility.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Understanding the life cycle of a JavaScript file in a browser can help developers write more efficient code and improve user experience. By optimizing the request, load, and fulfillment process, page load time can be reduced and overall performance improved.
&lt;/h3&gt;

</description>
      <category>javascript</category>
      <category>execution</category>
      <category>backstage</category>
      <category>browser</category>
    </item>
    <item>
      <title>javascript exeuction context</title>
      <dc:creator>Mohammed Salah</dc:creator>
      <pubDate>Sat, 22 Jun 2024 16:23:21 +0000</pubDate>
      <link>https://forem.com/mhmd-salah/javascript-exeuction-context-12le</link>
      <guid>https://forem.com/mhmd-salah/javascript-exeuction-context-12le</guid>
      <description>&lt;p&gt;javascript execution context&lt;br&gt;
That is, execution context in JavaScript&lt;br&gt;
The first means an environment in which the code is executed, and in order to imagine it, we put in our minds that it is a large container that contains something that we can use, for example, variables.&lt;/p&gt;

&lt;p&gt;Inside the large container, we may have small containers. Each container, of course, contains the code that will be executed, and with the code there are also the needs that the code may need in order to execute, as well as the variables.&lt;/p&gt;

&lt;p&gt;There is something that manages this&lt;/p&gt;

&lt;p&gt;This engine provides JavaScript, which varies from browser to browser&lt;/p&gt;

&lt;p&gt;When the JavaScript engine receives the code, it downloads it and starts creating a code tree&lt;/p&gt;

&lt;p&gt;It starts to work automatically on the large container that we talked about, and it contains every thing in the code and every thing that the code can need.&lt;/p&gt;

&lt;p&gt;If you tried to debug the browser and it got a breakpoint&lt;/p&gt;

&lt;p&gt;The debug will of course start from breakpoint and will remain, for example, function&lt;/p&gt;

&lt;p&gt;While you are monitoring the stack we talked about, you will find that put the global execution context in the stack&lt;/p&gt;

&lt;p&gt;Then creates something called the Function Execution Context for the function, which is a breakpoint.&lt;/p&gt;

&lt;p&gt;This is the small container we talked about&lt;/p&gt;

&lt;p&gt;But apart from debug, every invoke function is executed by an execution context&lt;/p&gt;

&lt;p&gt;This means that every caller on a function, this function creates an execution context in which the code for the function and anything needed in the function.&lt;/p&gt;

&lt;p&gt;There is another execution context called eval function execution context, and this is executed when the engine finds the breakpoint called eval()&lt;/p&gt;

&lt;p&gt;Where do these context exeuctions go to be implemented?&lt;/p&gt;

&lt;p&gt;When the engine finds a function, it creates the execution context for this function&lt;/p&gt;

&lt;p&gt;Then he puts it in the stack to be executed&lt;/p&gt;

&lt;p&gt;Of course, the global execution context is created automatically and placed in the stack first&lt;/p&gt;

&lt;p&gt;This is a simplified explanation of the execution context&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%2Fkub1yjilps8okzs1qs62.gif" 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%2Fkub1yjilps8okzs1qs62.gif" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>context</category>
      <category>webdev</category>
      <category>interview</category>
    </item>
    <item>
      <title>Profiles in Visual Studio Code (VSCode)</title>
      <dc:creator>Mohammed Salah</dc:creator>
      <pubDate>Fri, 21 Jun 2024 02:04:22 +0000</pubDate>
      <link>https://forem.com/mhmd-salah/profiles-in-visual-studio-code-vscode-3j9l</link>
      <guid>https://forem.com/mhmd-salah/profiles-in-visual-studio-code-vscode-3j9l</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;Profiles in VSCode allow you to create and manage personalized setups for your coding environment. This feature is especially useful if you work on different projects that require distinct configurations, extensions, and settings. With profiles, you can quickly switch between different setups without manually changing your settings each time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Customizable Setup:
Each profile can have its own set of extensions, themes, keybindings, and settings.&lt;/li&gt;
&lt;li&gt;Easy Switching:
Quickly switch between profiles to adapt your development environment to different projects or workflows.&lt;/li&gt;
&lt;li&gt;Export and Share:
Export your profiles and share them with team members to ensure a consistent development environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Use Profiles
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Creating a New Profile:
Open the Command Palette (Ctrl+Shift+P or Cmd+Shift+P on macOS).
Type and select "Preferences: Create Profile".
Give your profile a name and customize it as needed.&lt;/li&gt;
&lt;li&gt;Switching Between Profiles:
Open the Command Palette.
Type and select "Preferences: Switch Profile".
Choose the desired profile from the list.&lt;/li&gt;
&lt;li&gt;Managing Profiles:
Open the Command Palette.
Type and select "Preferences: Manage Profiles".
Here, you can rename, delete, or export profiles.&lt;/li&gt;
&lt;li&gt;Exporting and Importing Profiles:
To export a profile, use the "Preferences: Export Profile" command from the Command Palette.
To import a profile, use the "Preferences: Import Profile" command and select the exported profile file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Example Use Cases
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Different Project Types:
Web Development: A profile with extensions and settings for HTML, CSS, JavaScript, and frameworks like React or Angular.
Python Development: A profile with Python-specific extensions, linters, and settings.&lt;/li&gt;
&lt;li&gt;Different Workflows:
Debugging: A profile optimized with debugging tools and configurations.
Writing Documentation: A profile with Markdown preview extensions and focus mode settings.&lt;/li&gt;
&lt;li&gt;Team Collaboration:
Share a standardized profile with your team to ensure everyone has the same development environment, reducing setup time and inconsistencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benefits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Productivity: Quickly switch between different setups tailored to your current task, saving time and reducing context switching.&lt;/li&gt;
&lt;li&gt;Consistency: Maintain a consistent environment across different projects and team members.&lt;/li&gt;
&lt;li&gt;Customization: Tailor your coding environment to match your preferences and requirements for each specific task or project.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>vscode</category>
    </item>
    <item>
      <title>The &lt;map&gt; Tag in HTML</title>
      <dc:creator>Mohammed Salah</dc:creator>
      <pubDate>Thu, 20 Jun 2024 14:39:37 +0000</pubDate>
      <link>https://forem.com/mhmd-salah/the-tag-in-html-2691</link>
      <guid>https://forem.com/mhmd-salah/the-tag-in-html-2691</guid>
      <description>&lt;h2&gt;
  
  
  The  Tag in HTML
&lt;/h2&gt;

&lt;p&gt;The  tag in HTML is used to define an image map. An image map is a way of defining multiple clickable areas (regions) within a single image. Each of these clickable areas can be associated with different links or actions.&lt;/p&gt;

&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;p&gt;The  tag is used in conjunction with the  tag to define these clickable regions. The  tag itself does not display any content; it simply provides a container for the  tags that define the clickable regions.&lt;br&gt;
Here’s a step-by-step breakdown of how to use the  tag:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define the Image:
You first need an image to apply the map to. Use the &lt;img&gt; tag for this.&lt;/li&gt;
&lt;li&gt;Define the Map:
Use the  tag to define the map and give it a unique name using the name attribute.&lt;/li&gt;
&lt;li&gt;Define the Clickable Areas:
Inside the  tag, use the  tags to define the clickable regions. Each  tag uses attributes to specify the shape, coordinates, and link for each region.&lt;/li&gt;
&lt;/ul&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%2Fs9hoakjxuitj4haszsoh.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%2Fs9hoakjxuitj4haszsoh.png" alt="Image description" width="800" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Attributes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;name (required):
Specifies the name of the map. This name is referenced by the usemap attribute in the &lt;img&gt; tag.&lt;/li&gt;
&lt;li&gt;shape (in ):
Defines the shape of the clickable area. Possible values are rect (rectangle), circle (circle), and poly (polygon).&lt;/li&gt;
&lt;li&gt;coords (in ):
Specifies the coordinates that define the shape of the clickable area. The format of the coordinates depends on the shape:
rect: "x1,y1,x2,y2"
circle: "x,y,radius"
poly: "x1,y1,x2,y2,x3,y3,..."&lt;/li&gt;
&lt;li&gt;href (in ):
Defines the URL to which the user will be redirected when they click the area.&lt;/li&gt;
&lt;li&gt;alt (in ):
Provides alternative text for the clickable area, useful for accessibility.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;p&gt;Image maps are useful when you want to create interactive images, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Geographic maps where each region links to a different page.&lt;/li&gt;
&lt;li&gt;Interactive diagrams where each part of the diagram links to more detailed information.&lt;/li&gt;
&lt;li&gt;Any scenario where multiple links are needed within a single image.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>html</category>
      <category>webdev</category>
      <category>website</category>
    </item>
  </channel>
</rss>
