<?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: Khaled Taymour</title>
    <description>The latest articles on DEV Community by Khaled Taymour (@khaledtaymour).</description>
    <link>https://dev.to/khaledtaymour</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%2F464690%2Fc0ccef2e-5258-40bb-8ac2-611765d497a8.jpeg</url>
      <title>DEV Community: Khaled Taymour</title>
      <link>https://dev.to/khaledtaymour</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/khaledtaymour"/>
    <language>en</language>
    <item>
      <title>(Part-2) Internationaliztion Design &amp; implementation tips</title>
      <dc:creator>Khaled Taymour</dc:creator>
      <pubDate>Thu, 22 Sep 2022 18:58:14 +0000</pubDate>
      <link>https://dev.to/khaledtaymour/internationaliztion-design-implementation-tips-35hf</link>
      <guid>https://dev.to/khaledtaymour/internationaliztion-design-implementation-tips-35hf</guid>
      <description>&lt;ul&gt;
&lt;li&gt;I18N Design and UX Consideration tips:&lt;/li&gt;
&lt;li&gt;I18N implementation tips:&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;I18N Design and UX Consideration tips:&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Allow for the expansion of UI elements:&lt;/strong&gt; All UI elements that include text — strings and integers displayed to the user—must be flexible to accommodate longer or shorter words. Usually German words are longer than English strings while Asian languages are usually shorter. 
As a general rule, if the English text is less than 10 characters, plan for at least a 300% expansion for translated strings. If the English text is more than 10 characters, 30% expansion should suffice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Font size &amp;amp; emphasis (italics &amp;amp; bold):&lt;/strong&gt; A font size less than 8 point font is really hard to read in English, but it’s impossible to read in Chinese. Also font emphasis don’t register in most East Asian fonts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UTF-8&lt;/strong&gt;: Use UTF-8 everywhere. This includes in your HTML, server-side language, database, etc. Unlike other encodings, UTF-8 encoding handles almost all languages really well.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep graphics, icons, and images separate from the text.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep images regionally related:&lt;/strong&gt; A simple example is if there is a picture of a car displayed, updating the picture for regions where cars have the driver side on the left or right and drive on the left or right side of the road would be a good idea for a fully localized app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep colors culturally relevant and appropriate:&lt;/strong&gt; In the West, red often signals danger but in parts of East Asia, red is associated with happiness. Notice &lt;strong&gt;+8&lt;/strong&gt; in the below image.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--beG8Q3Ab--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nnjg9t5gxb9hyb7peobq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--beG8Q3Ab--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nnjg9t5gxb9hyb7peobq.png" alt="Colors indications in different cultures" width="374" height="152"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Use generic versions for contact details:&lt;/strong&gt; Using more optional fields and not marking all fields as required, e.g. Many countries such as Hong Kong don’t have post codes. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avoid using countries flags to represent languages or locales:&lt;/strong&gt; Many languages are used across different countries. For this reason, it’s advisable not to use a single flag to represent various languages, such as the Portuguese flag for both Portugal and Brazil. A more culturally considerate option is to use regions, like “Brazil,” or specific languages, like “Brazilian Portuguese.”
&lt;strong&gt;Law/Policy:&lt;/strong&gt; For example, in EU Cookies should be noted to the users.
-----
## &lt;strong&gt;I18N implementation tips:&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avoid “Just concatenating strings”&lt;/strong&gt;: Translating languages is more than converting individual words. The way sentences are structured differ across languages, and concatenating strings makes it difficult for translators who must consider &lt;em&gt;word order,&lt;/em&gt; gendered words, abbreviations, and more! Best practices recommend building layouts and strings for translation, that let translators change the order of words if needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep keyboard short-keys alphanumeric:&lt;/strong&gt; Example: Although Spain &amp;amp; Mexico both speak spanish, they have &lt;strong&gt;different keyboard layouts&lt;/strong&gt;. For example, the “@” symbol on a Mexican keyboard is on a number key, whereas on the Spanish keyboard the same symbol is on a letter key.Keeping short keys alphanumeric minimizes user error, improving the overall user experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sorting and filtering across different locales:&lt;/strong&gt;  A table that sorts columns of strings by A-Z using ascending and descending characters does not always work across all locales, particularly with languages that have different dictionary orders than English — such as Chinese, Arabic, and Russian. In Javascript, String.prototype.localeCompare()  is one simple solution to resolve this issue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Units &amp;amp; Maps:&lt;/strong&gt; e.g. weight units differ from a country to another e.g. in US pounds is the default weight unit while in Egypt it is kilos. Also for japanese user it is more relevant to show a map Tokyo instead of LA. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test across multiple languages:&lt;/strong&gt; To ensure an app is capable of displaying locale-specific content of varying lengths and formats, instead of just using basic &lt;strong&gt;Lorem Ipsum&lt;/strong&gt;, use the &lt;a href="http://randomtextgenerator.com/"&gt;Random Text Generator&lt;/a&gt; to get test data similar to Lorem Ipsum, but in different languages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Continuous localization:&lt;/strong&gt; Continuous localization optimizes the process of Continuous Integration / Continuous Deployment (CI/CD) by including machine-translated strings for testing. This helps with local development quality checks, particularly for common I18N bugs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B_ZUDomV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i43ujfg09o4wf6du28ml.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B_ZUDomV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i43ujfg09o4wf6du28ml.png" alt="" width="468" height="213"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RpxsRL0M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/awitv6uyhyuoep1wu4df.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RpxsRL0M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/awitv6uyhyuoep1wu4df.png" alt="" width="468" height="147"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>internationaliztion</category>
      <category>localization</category>
      <category>i18n</category>
      <category>l10n</category>
    </item>
    <item>
      <title>(Part-1) Internationalization &amp; Localization Definitions</title>
      <dc:creator>Khaled Taymour</dc:creator>
      <pubDate>Thu, 22 Sep 2022 18:34:10 +0000</pubDate>
      <link>https://dev.to/khaledtaymour/internationalization-localization-definitions-3i2m</link>
      <guid>https://dev.to/khaledtaymour/internationalization-localization-definitions-3i2m</guid>
      <description>&lt;h1&gt;
  
  
  &lt;strong&gt;Internationalization (I18N) &amp;amp; Localization (L10N)&lt;/strong&gt;
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
Definitions: &lt;/li&gt;
&lt;li&gt;Technical Notes:&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Definitions:&lt;/strong&gt;
&lt;/h2&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Globalization (G11N): 🌍&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Includes non-engineering business units and categories like marketing, legal, sales, etc.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Internationalization (I18N): 🗺️&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;is the design and development of a product, application or document content that &lt;strong&gt;enables&lt;/strong&gt; easy localization for target audiences that vary in culture, region, or language.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Translation (T9N): ✍️&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;is the most granular level, the &lt;strong&gt;process of converting text strings from one language into another&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Localization (L10N): 🎌&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;refers to the &lt;strong&gt;adaptation&lt;/strong&gt; of a product, application or document content to meet the language, cultural and other requirements of a &lt;strong&gt;specific target market&lt;/strong&gt; (a &lt;em&gt;locale&lt;/em&gt;). is the process of translating the internationalized app into specific languages for particular locales, such as Arabic in Egypt (ar-EG) or English in the UK (en-UK).&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Technical Notes:&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Internationalization&lt;/strong&gt; typically entails:

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Separating localizable elements from source code&lt;/em&gt; or content, such that localized alternatives can be loaded or selected based on the user's international preferences as needed.&lt;/li&gt;
&lt;li&gt;Enabling the use of &lt;em&gt;Unicode&lt;/em&gt;, or ensuring the proper handling of legacy &lt;em&gt;character encodings&lt;/em&gt; where appropriate, taking care over the concatenation of strings, &lt;em&gt;avoiding dependance in code of user-interface string values&lt;/em&gt;, etc.&lt;/li&gt;
&lt;li&gt;Support &lt;em&gt;bidirectional text,&lt;/em&gt; or for identifying language. Or adding to CSS support for &lt;em&gt;vertical text or other non-Latin typographic features.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Enabling code to support local, regional, language, or culturally related preferences. Examples include &lt;em&gt;date and time formats, local calendars, number formats and numeral systems, sorting and presentation of lists, handling of personal names and forms of address&lt;/em&gt;, etc.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Notice that the above items do not necessarily include the localization of the content, application, or product into another language; &lt;strong&gt;they are design and development practices&lt;/strong&gt; which allow such a migration to take place easily in the future but which may have significant utility even if no localization ever takes place.&lt;/p&gt;

&lt;p&gt;Internationalization significantly affects the ease of the product's localization. Retrofitting a linguistically- and culturally-centered deliverable for a global market is obviously much more difficult and time-consuming than designing a deliverable with the intent of presenting it globally. (Think back to the Y2K -Year 2000 problem- effort and trying to "undo" two-character year fields that were built on the assumption of "19xx").&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Localization&lt;/strong&gt; is not only synonym for translation of the user interface and documentation, it is more complex issue. It can entail customization related to:

&lt;ul&gt;
&lt;li&gt;Numeric, date and time formats&lt;/li&gt;
&lt;li&gt;Use of currency&lt;/li&gt;
&lt;li&gt;Keyboard usage&lt;/li&gt;
&lt;li&gt;Collation and sorting&lt;/li&gt;
&lt;li&gt;Symbols, icons and colors&lt;/li&gt;
&lt;li&gt;Text and graphics containing references to objects, actions or ideas which, in a given culture, may be subject to misinterpretation or viewed as insensitive.&lt;/li&gt;
&lt;li&gt;Varying legal requirements.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

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

</description>
      <category>internationalization</category>
      <category>localization</category>
      <category>i18n</category>
      <category>l10n</category>
    </item>
    <item>
      <title>VSCode Remote Connection</title>
      <dc:creator>Khaled Taymour</dc:creator>
      <pubDate>Mon, 26 Apr 2021 15:55:33 +0000</pubDate>
      <link>https://dev.to/khaledtaymour/vscode-remote-connection-4kif</link>
      <guid>https://dev.to/khaledtaymour/vscode-remote-connection-4kif</guid>
      <description>&lt;p&gt;In this article I will go through how to connect remotely in VSCode using SSH remote extension.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In both &lt;strong&gt;local&lt;/strong&gt; and &lt;strong&gt;server&lt;/strong&gt;: check that you have open SSH installed by searching Manage Optional Features in the Windows start menu.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In both &lt;strong&gt;local&lt;/strong&gt; and &lt;strong&gt;server&lt;/strong&gt;: open &lt;code&gt;services.msc&lt;/code&gt; and make sure that the services of ssh are running.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In &lt;strong&gt;Server&lt;/strong&gt; cmd: &lt;code&gt;run netstat -a | findstr 22&lt;/code&gt; You must see something like this (Listening):&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dF6iZhtF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k2eyhdnk76n0cqugl0qe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dF6iZhtF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k2eyhdnk76n0cqugl0qe.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;its default port is 22.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;From &lt;strong&gt;Local&lt;/strong&gt; cmd: To go to the server run &lt;code&gt;ssh &amp;lt;SERVER_USERNAME&amp;gt;@&amp;lt;SERVER_IP&amp;gt;&lt;/code&gt;&lt;br&gt;
You’ll be asked to enter the server password.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In &lt;strong&gt;Local&lt;/strong&gt; cmd: Now I am in a cmd seeing the Server&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In &lt;strong&gt;Remote&lt;/strong&gt; in &lt;code&gt;C:\Users\&amp;lt;USERNAME&amp;gt;.ssh&lt;/code&gt;: run &lt;code&gt;ssh-keygen&lt;/code&gt; and name the file of the ssh e.g. &lt;code&gt;testSSH&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In &lt;strong&gt;Local&lt;/strong&gt;: Create a &lt;strong&gt;config&lt;/strong&gt; file (with no extension) in &lt;code&gt;C:\Users\&amp;lt;USERNAME&amp;gt;.ssh&lt;/code&gt;.&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;Host &amp;lt;AnyName&amp;gt;
  HostName &amp;lt;IP&amp;gt;
  User &amp;lt;USERNAME&amp;gt;
  IdentityFile ~/.ssh/&amp;lt;name of the ssh file on the server made in previous step (e.g. ~/.ssh/testSSH)&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  In VSCode in &lt;strong&gt;Local&lt;/strong&gt;:
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In &lt;strong&gt;Local&lt;/strong&gt;: Make Sure to install Remote extension by Microsoft. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on its icon (1)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;(2) select &lt;code&gt;Remote-SSH: Connect to Host&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Either do one of the following&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose the just configured SSH Host &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2c5wr33C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/727y8hghj8uxi3l3nnmi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2c5wr33C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/727y8hghj8uxi3l3nnmi.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;or &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;(3) Enter e.g.:  &lt;code&gt;ssh &amp;lt;SERVER-USERNAME&amp;gt;@&amp;lt;SERVER-IP&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;(4) Choose as below in the image&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zmBP4Yjn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/plbgt9c24y5rylo1ykt1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zmBP4Yjn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/plbgt9c24y5rylo1ykt1.png" alt="Alt Text"&gt;&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A new instance of VSCode will be open.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You’ll be asked for the Operating System, the Server Password.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You’ll find that you’re connected to the Server &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RwbYGP78--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kulgy4av4vihj3q6xnf9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RwbYGP78--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kulgy4av4vihj3q6xnf9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can open terminal in VSCode but firstly make sure that the server has Git downloaded.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You are now in the Server terminal: &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now you can download plugins and extensions as &lt;code&gt;Live Server&lt;/code&gt; on the server from your opened VSCode window.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In &lt;strong&gt;Local&lt;/strong&gt; VSCode: File → Open Folder → type your project path on the server. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can run Live Server extension and it will show that it is running on a port e.g. 5501 so now you can browse to http://:5501/ to see live dev.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for your time, and I am happy to get feedbacks.&lt;br&gt;
Khaled Taymour&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>remote</category>
      <category>ssh</category>
    </item>
  </channel>
</rss>
