<?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: xe-non</title>
    <description>The latest articles on Forem by xe-non (@sithumonline).</description>
    <link>https://forem.com/sithumonline</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%2F345736%2F5947b09b-b13a-4ea3-97d6-b5a83bba8639.jpeg</url>
      <title>Forem: xe-non</title>
      <link>https://forem.com/sithumonline</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sithumonline"/>
    <language>en</language>
    <item>
      <title>React 17 JSX, react-scripts with TypeScript</title>
      <dc:creator>xe-non</dc:creator>
      <pubDate>Thu, 29 Oct 2020 02:09:53 +0000</pubDate>
      <link>https://forem.com/sithumonline/react-17-jsx-react-scripts-with-typescript-30ap</link>
      <guid>https://forem.com/sithumonline/react-17-jsx-react-scripts-with-typescript-30ap</guid>
      <description>&lt;p&gt;With new React 17 offers JSX, it's mean no longer needs to import React on every page &lt;a href="https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html"&gt;read more&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the React 16:&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="nx"&gt;React&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;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;TestPara&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&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;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Fragment&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;I&lt;/span&gt; &lt;span class="nx"&gt;love&lt;/span&gt; &lt;span class="nx"&gt;FOSS&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h1&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/React.Fragment&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the React 17:&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;Fragment&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;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;TestPara&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&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;Fragment&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;I&lt;/span&gt; &lt;span class="nx"&gt;love&lt;/span&gt; &lt;span class="nx"&gt;FOSS&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h1&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Fragment&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;According to &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-1-beta/#jsx-factories"&gt;this post&lt;/a&gt; If you use TypeScript rather than JavaScript, you must switch to &lt;code&gt;4.1.0-beta&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yarn add typescript@beta
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then make a change in &lt;code&gt;tsconfig.json&lt;/code&gt; look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&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;"react-jsx"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After switching to &lt;code&gt;4.1.0-beta&lt;/code&gt; react-scripts will give this error:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.../node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js:239
      appTsConfig.compilerOptions[option] = value;
                                          ^

TypeError: Cannot assign to read only property 'jsx' of object '#&amp;lt;Object&amp;gt;'
    at verifyTypeScriptSetup (.../node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js:239:43)
    at Object.&amp;lt;anonymous&amp;gt; (.../node_modules/react-scripts/scripts/start.js:31:1)
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you have two options.&lt;br&gt;
&lt;strong&gt;Option 1&lt;/strong&gt;&lt;br&gt;
You can wait for the react-scripts &lt;code&gt;4.0.1&lt;/code&gt; which comes with &lt;a href="https://github.com/facebook/create-react-app/pull/9869"&gt;this pull&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 2&lt;/strong&gt;&lt;br&gt;
If you can't wait for &lt;code&gt;4.0.1&lt;/code&gt; like me, you can do &lt;a href="https://github.com/facebook/create-react-app/issues/9429#issuecomment-669615656"&gt;this fix&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;change this code block in &lt;code&gt;node_modules/react-scripts/scripts/utils/verifyTypeScriptSetup.js&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;parsedTsConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;immer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;readTsConfig&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;config&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;parseJsonConfigFileContent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nx"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dirname&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;paths&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;appTsConfig&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="nx"&gt;parsedTsConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{...&lt;/span&gt;&lt;span class="nx"&gt;readTsConfig&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;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;parseJsonConfigFileContent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nx"&gt;parsedTsConfig&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="nx"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dirname&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;paths&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;appTsConfig&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Congratulations you now successfully fix the issue...!! &lt;/p&gt;

</description>
      <category>react</category>
      <category>typescript</category>
      <category>reactscripts</category>
    </item>
    <item>
      <title>Apple ARM කියන්නේ මොකක්ද?</title>
      <dc:creator>xe-non</dc:creator>
      <pubDate>Mon, 29 Jun 2020 00:28:16 +0000</pubDate>
      <link>https://forem.com/sithumonline/apple-arm-2183</link>
      <guid>https://forem.com/sithumonline/apple-arm-2183</guid>
      <description>&lt;p&gt;කාලෙකට පස්සේ නිදහසේ article ලියන්න වෙලාවක් හම්බුනා. WWDC දි දැකපු මං කාලයක් තිස්සේ දකින්න ආස කරපු , මං හිතන්නේ මට  වැඩිපුරම බලපාන , මට වැදගත් එකම news තමයි Apple Silicon කියලා කියන්නේ.&lt;/p&gt;

&lt;h2&gt;
  
  
  මොකක්ද ඉතිං මේ Apple Silicon කියලා කියන්නේ?
&lt;/h2&gt;

&lt;p&gt;Apple Silicon එහෙමත් නැත්නම් මේ වෙනකොට තියෙන A12Z Bionic කියලා කියන්නේ ARM Cortex based processor.&lt;/p&gt;

&lt;p&gt;දැං හිතෙනවා නේද &lt;em&gt;මොකක්ද මේ ARM කියන්නේ&lt;/em&gt; කියලා? හරි ඒක කියන්න කලින් මුලින්ම පොඩි කතාවක් කියන්න තියෙනවා.&lt;/p&gt;

&lt;p&gt;Instruction set architecture (ISA) මූලික වශයෙන් ආකාර තුනක් තියෙනවා.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduced Instruction Set Computer (RISC)&lt;/li&gt;
&lt;li&gt;Complex Instruction Set Computer (CISC)&lt;/li&gt;
&lt;li&gt;Scalable Processor Architecture (SPARC)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;අද අපි අපේ පරිගණක වල භාවිතයට ගන්න Intel process වල තියෙන x86-64 / x64 architecture කියලා කියන්නේ CISC පාදක කරගත්තු architecture.&lt;/p&gt;

&lt;p&gt;හරි ඒ කතාව එතනින් ඉවරයි. දැං අපහු බහිමු silicon කතාවට.&lt;/p&gt;

&lt;h2&gt;
  
  
  එතකොට Apple Silicon වල විශේෂත්වය මොකක්ද?
&lt;/h2&gt;

&lt;p&gt;Apple Silicon කියලා එන්නේ අද අපි mobile device වලට වැඩිපුරම පාවිච්චි කරන ජාතියේ process ක්. එහෙමත් නැත්නම් කියන්න පුළුවන් RISC පාදක කරගත්තු AArch64 architecture තියෙන ARM process .&lt;/p&gt;

&lt;h2&gt;
  
  
  හරි දැං බලමු ARM කොහොමද Intel වලට වඩා හොද වෙන්නේ කියලා.
&lt;/h2&gt;

&lt;p&gt;ARM , Intel වලින් වෙනස් වෙන්නේ ARM RISC , Intel CISC . ඉතිං ඒ ඒ process ඒ ඒ architectures වලට අදාල ගුණ පෙන්වනවා. RISC වලයි CISC වලයි තියෙන ප්‍රධානම වෙනස තමයි RISC වලට වැඩි commands ප්‍රමාණයක් දෙන්න වෙනවා CISC වලට වඩා වැඩක් කරගන්න ගියාම.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;දැං හිතන්නේ එහෙනම් යකෝ RISC කොහොමද CISC වලට වඩා speed වෙන්නේ කියලා නේද?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Speed වෙන්නේ CISC වල එක command දුන්නම ඒක සේරම වැඩ ටික කරලා එනකම් අනිත් command ඉනට අත තියාගෙන බලන් ඉන්න ඕනි හැබැයි RISC වල එක command කරන්නේ එක වැඩක් විතරක් නිසා ආයි බලන් ඉන්න දෙයක් නෑ ආපු අනිත් පැත්තට වැඩේ කරන්න පුළුවන් command වලට.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;දැං හිතෙනවා නේද අප්පට හුඩු අපිටත් ARM process වැඩ කරන්න තිබුනා නං කියලා?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;බය වෙන්න එපා ඒක මේ කපේට වෙන දෙයක් නෙමෙයි. මොකද Windows ARM try කරපු හැම සැරේම වැඩේ fail උනා.&lt;/p&gt;

&lt;p&gt;ඇත්තම කිව්වොත් Mac OS කියන්නේ *BSD OS නිසා ARM වලට compile කරන්න පුළුවන් උනාට windows එහෙම කරන්න බෑ එයාලා emulator හදලා ඒකේ ඇතුලේ දුවන්න හදන්නේ.&lt;/p&gt;

&lt;p&gt;ඔය වැඩෙන් අගතියට පත් වෙන අතින් පාර්ශවය Linux community . Linux ආපු කාලේ ඉදන් ARM වලට support කලාට hardware manufactures ලා hardware හදන්නේ නෑ මොකද windows users ලට ARM පාවිච්චි කරන්න බැරි නිසා.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ඔයාලා දන්නවද?&lt;/strong&gt; &lt;em&gt;Apple ලගේ " Developer Transition Kit " හැර වෙන හරිහමන් ARM box නෑ කියලා general use වලට තියා development වත්.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;තාම ඉවර නෑ තව පොඩි සිද්ධියක් තියෙනවා කියන්න.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Process speed රදා පවතින්නේ transistor size (transistor කියලා කිව්වාට ඒක ඇත්තටම MOSFET) මත ඉතිං process මේ වෙනකොට 7nm සීමාවට ඇවිත් තියෙන්නේ Intel ලට 5nm හදන්න පුළුවන් උනත් කවදාවත් 4nm - 2nm සීමාවට එන්න බෑ මොකද ඒ සීමාවට එනකොට &lt;strong&gt;Quantum tunneling&lt;/strong&gt; කියන සංසිද්ධිය ට මුහුණ දෙන්න වෙනවා ඉතිං 3nm transistor කවදාවත් හදන්න පුළුවන් දෙයක් නෙමෙයි. බැරිවෙලාවත් එහෙම හැදුවොත් ඒක Quantum processor වෙනවා. සරලවම කිව්වොත් තව අවුරුදු දෙකකින් විතර පස්සෙ Intel process වල දියුණු කරන්න පුළුවන් උපරිම ලක්ෂ ට එනවා.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;දැං ඉතිං තියෙන්නෙ ඉනට අත තියාගෙන ඊගාවට මොකක්ද වෙන්නේ කියලා බලාගෙන ඉන්න එක&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;ඇත්තම කිව්වොත් ඊගාව MacBook නෙමෙයි Apple ලාගේ පලවෙනි ARM lap.&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CbVF-PLm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/media/EbLwYTrXsAIfdp9.jpg" alt="unknown tweet media content"&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--2k6s_m0m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1259891005848981504/wLMNuJqT_normal.jpg" alt="@aldroid@mastodon.social profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        @aldroid@mastodon.social
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @aldroid
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      I know you're all excited for the first ever apple laptop running on ARM, but I actually own it 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      08:32 AM - 23 Jun 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1275345955106283520" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1275345955106283520" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1275345955106283520" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Don't forget to say hello to the search box for further details.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;/blockquote&gt;

</description>
      <category>arm</category>
      <category>apple</category>
    </item>
    <item>
      <title>What is WebAssembly?</title>
      <dc:creator>xe-non</dc:creator>
      <pubDate>Sat, 02 May 2020 00:14:15 +0000</pubDate>
      <link>https://forem.com/sithumonline/what-is-webassembly-33bj</link>
      <guid>https://forem.com/sithumonline/what-is-webassembly-33bj</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NhBd4Dsc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.w3.org/comm/assets/logos/web-assembly-logo-black-150px.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NhBd4Dsc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.w3.org/comm/assets/logos/web-assembly-logo-black-150px.png" alt="webassembly black and white logo"&gt;&lt;/a&gt;&lt;br&gt;
WebAssembly aka wasm යනු JavaScript හැර වෙනත් programming languages වලින් ලියලා තියෙන code call/import කරන්න හා browser ඇතුලේ ඒ code run කරන්න හදපු විදිය. ඉතිං JavaScript එක්ක බැලුවහම wasm වේගවත්. Mozilla research වැඩ කරන Luke Wagner කියන මහත්තයා 2015 දී තමයි මුලින්ම WebAssembly කියනදේ ලෝකෙට හදුන්වා දෙන්නේ.&lt;/p&gt;

&lt;p&gt;2019 දෙසැම්බර් 5 - World Wide Web Consortium (W3C) නිවේදනය කලා Browser run කරන්න ඉඩ දෙන හතරවෙනි භාෂාව විදියට WebAssembly. ඉතිං Developers ලා එකම application WebAssembly සහ JavaScript යන දෙකම පාවිච්චි කරාවි. හරියට නිකං CSS import කරලා පාවිච්චි කරනවා වගේ.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i47r1Epb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://flint-prodcms-forge.s3.amazonaws.com/prod/s3fs-public/inline-images/29D1AE11-D43C-4BAB-AD42-87EFBD38E36B.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i47r1Epb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://flint-prodcms-forge.s3.amazonaws.com/prod/s3fs-public/inline-images/29D1AE11-D43C-4BAB-AD42-87EFBD38E36B.jpeg" alt="Load encrypted model data with WebAssembly and Rust | Autodesk Forge"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How does it work?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iLJ_pF70--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://research.mozilla.org/files/2018/03/2018.02.22.WASM-diagram1-600x290.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iLJ_pF70--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://research.mozilla.org/files/2018/03/2018.02.22.WASM-diagram1-600x290.png" alt=""&gt;&lt;/a&gt;&lt;br&gt;
C/C++ හෝ Rust code, wasm වලට compile කරලා JavaScript app load කරලා වැඩ කරගන්න පුලුවම්.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4so3LcyB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2019/08/01-03-star-diagram-500x394.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4so3LcyB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2019/08/01-03-star-diagram-500x394.png" alt="A wasm file with arrows pointing to and from: logos for different runtimes (Ruby, php, and Python), other wasm files compiled from Rust and Go, and host systems like the OS or browser"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Compiling to .wasm
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  C/C++ - LLVM වල &lt;code&gt;clang&lt;/code&gt; front-end / Emscripten &lt;code&gt;emcc&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  Rust - Cargo වල &lt;code&gt;wasm-pack&lt;/code&gt; package&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--msGyI-Fp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2017/02/04-03-toolchain07-500x411.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--msGyI-Fp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2017/02/04-03-toolchain07-500x411.png" alt="Diagram of the compiler toolchain"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6FFXhAi4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.postimg.cc/RhF1VZ1m/Untitled0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6FFXhAi4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.postimg.cc/RhF1VZ1m/Untitled0.png" alt="https://i.postimg.cc/RhF1VZ1m/Untitled0.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  WASI - WebAssembly Interface Types
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9Vp7AvgJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://wasi.dev/polyfill/WASI-small.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9Vp7AvgJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://wasi.dev/polyfill/WASI-small.png" alt="WASI |"&gt;&lt;/a&gt;&lt;br&gt;
Browser පිටත WebAssembly run කරන්න පුලුවම් වෙන්න ඕනි.&lt;/p&gt;

&lt;p&gt;WebAssembly තමන්ගේම standalone runtime run විතරක් නෙමෙයි. Python, Ruby, and Rust languages වලිනුත් WebAssembly run ඕනි.&lt;/p&gt;

&lt;p&gt;එහෙම කරන්න ඕනි ඇයි?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  “native” modules වල සංකිරණ තාවය අඩු කරන්න&lt;/li&gt;
&lt;li&gt;  Native code sandbox කරීම පහසු කරන්න&lt;/li&gt;
&lt;li&gt;  Platforms අතර native code share කරන්න&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x04As8Xk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2019/08/04-06-types-as-IR-500x321.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x04As8Xk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2019/08/04-06-types-as-IR-500x321.png" alt="Diagram showing WebAssembly interface types in the middle. On the left is a wasm module, which could be compiled from Rust, Go, C, etc. Arrows point from these options to the types in the middle. On the right are host languages like JS, Python, and Ruby; host platforms like .NET, Node, and operating systems, and more wasm modules. Arrows point from these options to the types in the middle."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Don't forget to say hello to the search box for further details.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.w3.org/2019/12/pressrelease-wasm-rec.html.en"&gt;https://www.w3.org/2019/12/pressrelease-wasm-rec.html.en&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hacks.mozilla.org/2017/02/a-cartoon-intro-to-webassembly/"&gt;https://hacks.mozilla.org/2017/02/a-cartoon-intro-to-webassembly/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hacks.mozilla.org/2017/02/creating-and-working-with-webassembly-modules/"&gt;https://hacks.mozilla.org/2017/02/creating-and-working-with-webassembly-modules/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://research.mozilla.org/webassembly/"&gt;https://research.mozilla.org/webassembly/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/"&gt;https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hacks.mozilla.org/2019/08/webassembly-interface-types/"&gt;https://hacks.mozilla.org/2019/08/webassembly-interface-types/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://blog.mozilla.org/luke/2015/06/17/webassembly/"&gt;https://blog.mozilla.org/luke/2015/06/17/webassembly/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wasi</category>
      <category>webassembly</category>
      <category>rust</category>
      <category>c</category>
    </item>
    <item>
      <title>What is wrong with NodeJs and Js? Why Deno and Ts?</title>
      <dc:creator>xe-non</dc:creator>
      <pubDate>Thu, 30 Apr 2020 01:23:57 +0000</pubDate>
      <link>https://forem.com/sithumonline/what-is-wrong-with-nodejs-and-js-why-deno-and-ts-2co6</link>
      <guid>https://forem.com/sithumonline/what-is-wrong-with-nodejs-and-js-why-deno-and-ts-2co6</guid>
      <description>&lt;h2&gt;
  
  
  Java script කියන්නේ මොනවද?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DOhgmvu6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://mdn.mozillademos.org/files/13502/cake.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DOhgmvu6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://mdn.mozillademos.org/files/13502/cake.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JavaScript කියන්නේ scripting හෝ programming language web complex features එකතු කරන්න පාවිච්චි කරන. &lt;a href="https://en.wikipedia.org/wiki/ECMAScript"&gt;ECMAScript&lt;/a&gt; specification අනුකුලව නිර්මාණය කරමපු &lt;a href="https://en.wikipedia.org/wiki/Programming_language"&gt;programming language&lt;/a&gt; විදියටත් හදුන්වා දෙන්න පුලුවම්. JavaScript &lt;a href="https://en.wikipedia.org/wiki/High-level_programming_language"&gt;high-level&lt;/a&gt;, often &lt;a href="https://en.wikipedia.org/wiki/Just-in-time_compilation"&gt;just-in-time compiled&lt;/a&gt;, හා &lt;a href="https://en.wikipedia.org/wiki/Programming_paradigm"&gt;multi-paradigm&lt;/a&gt; වෙනවා . Js වලට තියෙනවා &lt;a href="https://en.wikipedia.org/wiki/List_of_programming_languages_by_type#Curly-bracket_languages"&gt;curly-bracket syntax&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Dynamic_typing"&gt;dynamic typing&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Prototype-based_programming"&gt;prototype-based&lt;/a&gt;&lt;a href="https://en.wikipedia.org/wiki/Object-oriented_programming"&gt;object-orientation&lt;/a&gt; හා &lt;a href="https://en.wikipedia.org/wiki/First-class_function"&gt;first-class functions&lt;/a&gt; තියෙනවා.&lt;/p&gt;

&lt;h2&gt;
  
  
  True Script කියන්නේ මොකක්ද?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DDHQ4Li9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://4.bp.blogspot.com/-pYn2LAUvMNQ/WtWXBIT2IRI/AAAAAAAACK8/n9pH7ikTpo4xqIl8odqkJ7kfnbfpcsbxACLcBGAs/s1600/typescript.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DDHQ4Li9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://4.bp.blogspot.com/-pYn2LAUvMNQ/WtWXBIT2IRI/AAAAAAAACK8/n9pH7ikTpo4xqIl8odqkJ7kfnbfpcsbxACLcBGAs/s1600/typescript.png" alt="TypeScript Introduction"&gt;&lt;/a&gt;&lt;br&gt;
TypeScript කියන්නේ &lt;a href="https://en.wikipedia.org/wiki/Open-source_software"&gt;open-source&lt;/a&gt;&lt;a href="https://en.wikipedia.org/wiki/Programming_language"&gt;programming language&lt;/a&gt; develop හා maintain by &lt;a href="https://en.wikipedia.org/wiki/Microsoft"&gt;Microsoft&lt;/a&gt; කරන. &lt;a href="https://en.wikipedia.org/wiki/Static_typing"&gt;static typing&lt;/a&gt; තියෙන JavaScript වල &lt;a href="https://en.wikipedia.org/wiki/Superset"&gt;superset&lt;/a&gt; විදියට හදුන්වන්න පුලුවම්.&lt;/p&gt;
&lt;h2&gt;
  
  
  Java script vs True script
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z-YynW5O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://hackr.io/blog/typescript-vs-javascript/thumbnail/large" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z-YynW5O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://hackr.io/blog/typescript-vs-javascript/thumbnail/large" alt="Typescript vs Javascript: Difference You Should Know"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JavaScript + more features = TypeScript&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.typescriptlang.org/docs/handbook/advanced-types.html"&gt;Static Type Checker&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.typescriptlang.org/docs/handbook/interfaces.html"&gt;Interfaces&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.typescriptlang.org/docs/handbook/generics.html"&gt;Generics&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.typescriptlang.org/docs/handbook/namespaces.html"&gt;Namespaces&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-0.html"&gt;Null checking&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.typescriptlang.org/docs/handbook/classes.html"&gt;Access Modifiers&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;කියන features ටික මුලික වශයෙන් වලට JavaScript එකතු කරලා තමයි TypeScript හදලා තියෙන්නේ. ඊට අමතරව maintain හා debug කරන්න ලේසි Ts Js වඩා.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  NodeJs කියන්නේ මොකක්ද?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Eh1hmkbk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Node.js_logo.svg/1024px-Node.js_logo.svg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Eh1hmkbk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Node.js_logo.svg/1024px-Node.js_logo.svg.png" alt="File:Node.js logo.svg - Wikimedia Commons"&gt;&lt;/a&gt;&lt;br&gt;
Node.js කියන්නේ &lt;a href="https://en.wikipedia.org/wiki/Open-source_software"&gt;open-source&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Cross-platform"&gt;cross-platform&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/JavaScript"&gt;JavaScript&lt;/a&gt; runtime environment JavaScript code &lt;a href="https://en.wikipedia.org/wiki/Web_browser"&gt;web browser&lt;/a&gt; පිටතින් executes කරන්න හදපු. Node.js ගන්නේ මුලිකවම command line tools හා for server-side scripting වලට. 2009 දී Ryan Dahl තමයි Node.js ලියන්නේ.&lt;/p&gt;
&lt;h2&gt;
  
  
  Deno කියන්නේ මොකක්ද?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g0kGAS14--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://upload.wikimedia.org/wikipedia/commons/8/84/Deno.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g0kGAS14--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://upload.wikimedia.org/wikipedia/commons/8/84/Deno.svg" alt="File:Deno.svg - Wikipedia"&gt;&lt;/a&gt;&lt;br&gt;
deno කියන්නේ &lt;a href="https://en.wikipedia.org/wiki/Runtime_system"&gt;runtime&lt;/a&gt; &lt;a href="https://en.wikipedia.org/wiki/JavaScript"&gt;JavaScript&lt;/a&gt; හා &lt;a href="https://en.wikipedia.org/wiki/TypeScript"&gt;TypeScript&lt;/a&gt; වල &lt;a href="https://en.wikipedia.org/wiki/Chrome_V8"&gt;V8&lt;/a&gt; JavaScript ජින්ජිම base කරන් Rust (මගේ Rust serie කියවන්න අමතක කරන්න එපා) වලින් ලියපු. May , 2018 මැයි 13 Ryan Dahl deno ලියන්න පන්ගන්නවා. ඔව් ඔව් Node.js ලියපු කෙනාම තමයි.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;del&gt;NodeJs vs deno&lt;/del&gt;
&lt;/h2&gt;
&lt;h2&gt;
  
  
  10 Things I Regret About Node.js
&lt;/h2&gt;

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

&lt;h2&gt;
  
  
  &lt;strong&gt;package.json&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  NPM ඇතුළුව Node distribution standard Node විසින්ම නිර්මාණය කිරීම.&lt;/li&gt;
&lt;li&gt;  modules සදහා Centralized (privately controlled) repository යොදාගැනීම.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;require(“sommodule”)&lt;/code&gt; මේවා සදහා නිශ්චිත: package.json, local node_modules folder, NPM ලගේ database.&lt;/li&gt;
&lt;li&gt;  files directory ලෙස “module” යන සංකල්පය ඉහළ නැංවීමට අනවශ්‍ය වියුක්ත කිරීමක් සිදු කිරීම. web නොපවතින.&lt;/li&gt;
&lt;li&gt;  license, repository වැනි අනවශ්‍ය තොරතුරු ඇතුළත් වේ.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;node_modules&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Module resolution algorithm අතිශයින්ම සංකීර්ණයි.&lt;/li&gt;
&lt;li&gt;  Vendored-by-default හොද intentions තිබුනත් $NODE_PATH ක්‍රියා කරීම.&lt;/li&gt;
&lt;li&gt;  browserයෙන් බැහැර වීම.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Require without the extension&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  අනවශ්‍ය ලෙස explicit අඩු වීම.&lt;/li&gt;
&lt;li&gt;  browser ක්‍රියා කරන ආකාරය නොවීම.&lt;/li&gt;
&lt;li&gt;  module loader guess කිරීමට සිදිවිම.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;index.js&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  module loading system අනවශ්‍ය ලෙස සංකීර්ණ වීම.&lt;/li&gt;
&lt;li&gt;  package.json සහාය ලබාගැනීමෙන් පසු කොහෙත්ම අවශ්‍ය නොවීම.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Project Status / Disclaimer
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Philosophy
&lt;/h3&gt;

&lt;p&gt;Deno වල අරමුණ modern programmer ලාට productive හා secure scripting environment ලබාදීමය.&lt;/p&gt;

&lt;p&gt;Deno සෑම විටම single executable ලෙස distribut කරයි. Deno program URL දුනහම, ඒක run කරන්න පුලුවම් ~15 megabyte වඩා අඩු zipped executable. Deno runtime හා package manager යන දෙයාකාරයෙන්ම ක්‍රියා කරයි. modules load: URLs කරන්න එය standard browser-compatible protocol භාවිතා කරයි.&lt;/p&gt;

&lt;p&gt;Deno යනු ඓතිහාසිකව bash හෝ python වලින් ලියා ඇති utility scripts සඳහා හොඳ ආදේශනයකි.&lt;/p&gt;

&lt;h3&gt;
  
  
  Goals
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  single executable (deno) පමණක් ලබා දේ.&lt;/li&gt;
&lt;li&gt;  Secure Defaultම ලබා දේ.&lt;/li&gt;
&lt;li&gt;  විශේෂයෙන් අවසර දී නොමැති විට, scripts වලට files, environment, හෝ network ප්‍රවේශ වෙන්න බෑ.&lt;/li&gt;
&lt;li&gt;  Browser compatible: Deno programs වල subset (හෝ ඒ සඳහා feature test) JavaScript වලින් සම්පූර්ණයෙන්ම ලියා ඇත්තේ global Deno namespace භාවිතා නොකරය , වෙනසක් කරන්නේ නැතුව web browser වල run කරන්න පුලුවම්.&lt;/li&gt;
&lt;li&gt;  developer experience වැඩි කරන්න unit testing, code formatting, and linting වගේ built-in tooling සපයයි.&lt;/li&gt;
&lt;li&gt;  V8 concepts user land leak නොකරයි.&lt;/li&gt;
&lt;li&gt;  HTTP efficiently serve කරන්න පුලුවම්.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Comparison to Node.js
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Deno npm භාවිතා නොකරයි&lt;/li&gt;
&lt;li&gt;  URLs හෝ file paths විදියට දීල තියෙන modules එක පාවිච්චි පාවිච්චි කරන්නේ.&lt;/li&gt;
&lt;li&gt;  Deno module resolution algorithm package.json පාවිච්චි කරන්නේ නෑ.&lt;/li&gt;
&lt;li&gt;  Deno වල හැම async actions promise return කරනවා. මේ අනුව Deno Node වලට වඩා වෙනස් APIs දෙන්නේ.&lt;/li&gt;
&lt;li&gt;  Deno වලට file, network, හා environment access වලට explicit permissions තියෙන්න ඕනි.&lt;/li&gt;
&lt;li&gt;  Deno හැම වෙලාවේම වැඩ කරන්නේ නැතුව යන්නේ uncaught errors වලදී (විතරයි).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;"ES Modules" ගන්නේ, require() support කරන්නේ නෑ. Third party modules URL හරහා import කරන්නේ.&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="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;log&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;https://deno.land/std/log/mod.ts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Other key behaviors
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  first execution දී Remote code අරන් cached කර ගන්නවා &lt;code&gt;--reload flag&lt;/code&gt; දාල code run වෙනකම් update වෙන්නේ නෑ. (ඉතින්, මේකට plane උනත් වැඩ කරන්න පුලුවම්.)&lt;/li&gt;
&lt;li&gt;  remote URL වලින් load කරපු Modules/files immutable වෙනවා වගේම cache කරනවා.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Don't forget to say hello to the search box for further details.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript"&gt;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript&lt;/a&gt;&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/JavaScript"&gt;https://en.wikipedia.org/wiki/JavaScript&lt;/a&gt;&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/TypeScript"&gt;https://en.wikipedia.org/wiki/TypeScript&lt;/a&gt;&lt;br&gt;
&lt;a href="https://stackify.com/typescript-vs-javascript-migrate/"&gt;https://stackify.com/typescript-vs-javascript-migrate/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hackr.io/blog/typescript-vs-javascript"&gt;https://hackr.io/blog/typescript-vs-javascript&lt;/a&gt;&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/Node.js"&gt;https://en.wikipedia.org/wiki/Node.js&lt;/a&gt;&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/Deno_(software)"&gt;https://en.wikipedia.org/wiki/Deno_(software)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://medium.com/@imior/10-things-i-regret-about-node-js-ryan-dahl-2ba71ff6b4dc"&gt;https://medium.com/@imior/10-things-i-regret-about-node-js-ryan-dahl-2ba71ff6b4dc&lt;/a&gt;&lt;br&gt;
&lt;a href="https://deno.land/std/manual.md"&gt;https://deno.land/std/manual.md&lt;/a&gt;&lt;/p&gt;

</description>
      <category>deno</category>
      <category>typescript</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>Dennis Ritchie and Origin of C language</title>
      <dc:creator>xe-non</dc:creator>
      <pubDate>Thu, 30 Apr 2020 00:37:19 +0000</pubDate>
      <link>https://forem.com/sithumonline/dennis-ritchie-and-origin-of-c-language-4j5g</link>
      <guid>https://forem.com/sithumonline/dennis-ritchie-and-origin-of-c-language-4j5g</guid>
      <description>&lt;h2&gt;
  
  
  කවුද මේ Dennis Ritchie කියන්නේ?
&lt;/h2&gt;

&lt;p&gt;ඔයාලා බලනවා ඇති කවුද මේ රැවුලා කියලා. ඔව් ඔව් ඉතිං රැවුල තියෙනවා තමයි. අපිට රැවුලෙන් වැඩක් නැනේ, අපි බලමු මෙයා මොනවා ද කරලා තියෙන්නේ කියලා. මං දැන් මෙතන ඉදං මේක ලියන්නෙයි ඔයා ඔතන ඉගෙන මේක කියවන්නෙයි මේ මහත්තයා හිදා තමයි. මේ කතාව පටන්ගන්නේ B වලින්. ඔව් ඔව් Aට පස්සේ තියෙන B තමයි. හැබැයි B කිව්වට &lt;a href="https://en.wikipedia.org/wiki/B_(programming_language)"&gt;B language&lt;/a&gt;. දැන් ඔයා බලනවා ඇති මොකක් ද යකෝ මේ B language කියන්නේ කියලා. B language කියන්නේ C language කලින් තිබුණ එක. ඔව් ඔව් Bට පස්සේ තියෙන C තමයි. 1972 මේ මහත්තයා &lt;a href="https://en.wikipedia.org/wiki/Bell_Labs"&gt;Bell Labs&lt;/a&gt; වලදී B language වැඩි දියුණු කරලා තමයි &lt;a href="https://en.wikipedia.org/wiki/C_(programming_language)"&gt;C language&lt;/a&gt; හැදුවේ. ආන්.... හරි ඒ C language තමා. ඔව් ඔව් අද අපි පාවිච්චි කරන ඔක්කොම හදන්න මුල් උනේ මේයා තමා.&lt;/p&gt;

&lt;p&gt;තාම් ඉවර නැ කියලා. 1970 දී &lt;a href="https://en.wikipedia.org/wiki/Ken_Thompson"&gt;Ken Thompson&lt;/a&gt; කියන මහත්තයයි මේ මහත්තයයි තව මහත්වරු කීප දෙනෙකුයි එකතු වෙලා තමයි Bell Labs වලදී වලදී &lt;a href="https://en.wikipedia.org/wiki/Unix"&gt;Unix OS&lt;/a&gt; ලිව්වේ. හම්.... එකත් හදලා තියෙන්නේ මේ යෝදයාම තමයි. මට කියන්න අමතක උනානේ Ken Thompson කියන මහත්තයා තමයි B language හැදුවේ.&lt;/p&gt;

&lt;p&gt;1973 දී මේ මහත්තයා B ලියලා තිබුණු Unix kernel අමුතුවෙන්ම C වලිව්වා &lt;a href="https://en.wikipedia.org/wiki/Version_4_Unix"&gt;Version 4 Unix&lt;/a&gt; වලට.&lt;/p&gt;

&lt;p&gt;2011 ඔක්තෝම්බර් 12 මේ මහත්තයා අපි අතරින් සමු ගන්නවා.&lt;/p&gt;




&lt;h2&gt;
  
  
  Origin of C language
&lt;/h2&gt;

&lt;p&gt;Ken Thompson මහත්තයා ලියපු B language තිබුණේ typeless (everything is a word) ක්‍රමයක් ඉතිං ඒ වෙනුවට static types system හදපු එක තමයි Dennis Ritchie මහත්තයා කලේ.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;strcopy(sl,s2)
{
    auto i;
    i = 0;
    while (lchar(sl,i,char(s2,i)) != '*e') i++;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ඔය උඩ තියෙන්නේ B වලින් ලියපු code උදහරණයක්. auto කියන keyword තමයි veritable හදලා තියෙන්නේ. C වල වගේ void, int, char, double හ float වගේ data types නෑ ඔක්කොටම තියෙන්නේ auto විතරයි. ඒ කාලේ හැටියට C වලින් ලැබුණු ලොකුම ප්‍රයෝජනය තමයි Assembly language වලින් කලින් ලියපු apps C වලින් හුගක් හොදට ගොඩක් කාලයක් තියෙන විදියට ලියන්න පුලුවම් උන එක.&lt;/p&gt;

&lt;p&gt;Unix kernel තමයි assembly වලින් නැතුව C වලින් ලියපු පලවෙනි kernel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Timeline of language development&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Year&lt;/th&gt;
&lt;th&gt;C Standard&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1972&lt;/td&gt;
&lt;td&gt;Birth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1978&lt;/td&gt;
&lt;td&gt;K&amp;amp;R C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1989/1990&lt;/td&gt;
&lt;td&gt;ANSI C and ISO C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1999&lt;/td&gt;
&lt;td&gt;C99&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011&lt;/td&gt;
&lt;td&gt;C11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2017/2018&lt;/td&gt;
&lt;td&gt;C18&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XOMpGQ1o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/960/1%2ADbgPt0izylkbD7qP13mQlQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XOMpGQ1o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/960/1%2ADbgPt0izylkbD7qP13mQlQ.jpeg" alt="Other Variations of C - Christian Rey Ompad - Medium"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  K&amp;amp;R C
&lt;/h2&gt;

&lt;p&gt;1978 Brian Kernighan හා Dennis Ritchie කියන මහත්වරු දෙන්නා එකතු වෙලා ලියපු The C Programming Language කියන පොත අනුව හදපු C version තමයි K&amp;amp;R C කියලා කියන්නේ.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j6XAytMH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.lavandeira.net/wp-content/uploads/2015/03/c_books-635x476.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j6XAytMH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.lavandeira.net/wp-content/uploads/2015/03/c_books-635x476.jpg" alt="lavandeira.net – Relearning MSX #16: Roadmap"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Void_type"&gt;&lt;code&gt;void&lt;/code&gt;&lt;/a&gt; functions (i.e., functions with no return value)&lt;/li&gt;
&lt;li&gt;  functions returning &lt;a href="https://en.wikipedia.org/wiki/Struct_(C_programming_language)"&gt;&lt;code&gt;struct&lt;/code&gt;&lt;/a&gt; or &lt;a href="https://en.wikipedia.org/wiki/Union_(computer_science)"&gt;&lt;code&gt;union&lt;/code&gt;&lt;/a&gt; types (rather than pointers)&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Assignment_(computer_science)"&gt;assignment&lt;/a&gt; for &lt;code&gt;struct&lt;/code&gt; data types&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Enumerated_type"&gt;enumerated types&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;වගේ දේවල් මුලිනම එලි දක්වන්නේ K&amp;amp;R C වලදී තමයි.&lt;br&gt;
ඒ පොතේ දෙවෙනි edition දී ANSI C ප්‍රමිතියට අනුව තමයි එලි දක්වන්නේ.&lt;/p&gt;

&lt;h2&gt;
  
  
  ANSI C and ISO C
&lt;/h2&gt;

&lt;p&gt;1983 දී  American National Standards Institute (ANSI) පත්  කරපු X3J11 කමිටුව තමයි ANSI සම්මුතිය නිර්මාණය කලේ.1990 දී  International Organization for Standardization (ISO) ANSI C ISO/IEC 9899:1990 ව්දියට හදලා එලියට දැම්මා. C89 හා C90 කියලා හදුන්වන්නෙත් ඔය ISO C තමා. අද අපි පාවිච්චි කරන හුගක් C compilers පාදක කරගෙන තියෙන්නේ C89 තමා.&lt;/p&gt;

&lt;p&gt;ANSI C වලදී හදුන්වා දුන් දෑ :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Inline functions &lt;/li&gt;
&lt;li&gt;Several new data types :long long int හාcomplex තවත් කිහිපයක්. &lt;/li&gt;
&lt;li&gt;Variable-length arrays
&lt;/li&gt;
&lt;li&gt;Flexible array members&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  C99 and C11
&lt;/h2&gt;

&lt;p&gt;1999 C99 (ISO/IEC 9899:1999) ත් 2011 දී C11 නුත් හදුන්වා දුන්නා.&lt;/p&gt;

&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Don't forget to say hello to the search box for further details.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Dennis_Ritchie"&gt;https://en.wikipedia.org/wiki/Dennis_Ritchie&lt;/a&gt;&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/Ken_Thompson"&gt;https://en.wikipedia.org/wiki/Ken_Thompson&lt;/a&gt;&lt;br&gt;
&lt;a href="https://medium.com/@christianreyompad/other-variations-of-c-3a78634e7891"&gt;https://medium.com/@christianreyompad/other-variations-of-c-3a78634e7891&lt;/a&gt;&lt;br&gt;
&lt;a href="https://yurichev.com/blog/typeless/"&gt;https://yurichev.com/blog/typeless/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/C_(programming_language)"&gt;https://en.wikipedia.org/wiki/C_(programming_language)&lt;/a&gt;&lt;/p&gt;

</description>
      <category>c</category>
    </item>
    <item>
      <title>What is wrong with C? Why Rust?</title>
      <dc:creator>xe-non</dc:creator>
      <pubDate>Wed, 29 Apr 2020 23:16:22 +0000</pubDate>
      <link>https://forem.com/sithumonline/what-is-wrong-with-c-why-rust-20on</link>
      <guid>https://forem.com/sithumonline/what-is-wrong-with-c-why-rust-20on</guid>
      <description>&lt;h2&gt;
  
  
  Origin of Rust
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qCT7Wvjz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://upload.wikimedia.org/wikipedia/commons/thumb/2/20/Rustacean-orig-noshadow.svg/1280px-Rustacean-orig-noshadow.svg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qCT7Wvjz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://upload.wikimedia.org/wikipedia/commons/thumb/2/20/Rustacean-orig-noshadow.svg/1280px-Rustacean-orig-noshadow.svg.png" alt="A bright orange crab icon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Rust users ලා එයාලව් Rustaceans විදියට හදුන්වන අතර Ferris එයාලග් mascot විදියට පාවිච්චි කරනවා.
&lt;/h5&gt;

&lt;p&gt;2006 Mozilla වැඩ කරන Graydon Hoare කියන මහත්තයාගේ personal project විදිහට පටගත්තු Rust language 2009 දී Mozilla sponsor කරන්න පන්ගන්න්වා. 2011 OCaml වලින් ලියලා තිබුණු Rust compiler ආපහු අමුතුවෙන්ම Rust වලින් ලියලා rustc කියන අලුත් Rust compiler හදනවා. 2012 දී pre-alpha release කරන අතර Rust 1.0 එහෙමත් නැත්නම් පළවෙනි stable release 2015 මැයි 15 නිකුත් කරනවා.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is the biggest wrong with C?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Memory Safety&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Memory Safety?
&lt;/h2&gt;

&lt;p&gt;Program executions වෙනකොට වැරදි මතකයකට (invalid memory) ඇතුල් වෙන්න බැ. එහෙම ඇතුල වීම Memory violations විදියට අපි හදුන්වා දෙනවා.&lt;/p&gt;

&lt;p&gt;Violations :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use after free&lt;/li&gt;
&lt;li&gt;null pointer dereference&lt;/li&gt;
&lt;li&gt;using uninitialized memory&lt;/li&gt;
&lt;li&gt;double free&lt;/li&gt;
&lt;li&gt;buffer overflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;මේ Memory violations ,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;programs unexpectedly crash වෙන්න.&lt;/li&gt;
&lt;li&gt;අපේක්ෂිත හැසිරීම (intended behavior) ඇතිවෙන්න exploit කිරීම.&lt;/li&gt;
&lt;li&gt;Information leakage ඇතුළු memory ආශිත bugs&lt;/li&gt;
&lt;li&gt;Arbitrary code execution&lt;/li&gt;
&lt;li&gt;Remote code execution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;වලට හේතු වෙනවා.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ACHyyh-3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://msrc-blog.microsoft.com/wp-content/uploads/2019/07/image-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ACHyyh-3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://msrc-blog.microsoft.com/wp-content/uploads/2019/07/image-1.png" alt="We need a safer systems programming language - Microsoft Security ..."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Microsoftලගේ vulnerabilities වලින් ~70% ඇතිවෙන්නේ memory safety issues නිසා.
&lt;/h5&gt;

&lt;h2&gt;
  
  
  Why Rust?
&lt;/h2&gt;

&lt;p&gt;Rust කියන්නේ modern systems programming language type-safe හා memory-safe තියෙන්න. Rust වල තියෙන මේ safety guarantees නිසා compile time වලදී thread-safe තියෙනවා කියලා සලකනවා. මේ නිසා Rust පහත දේවල් වලට විශේෂයෙන් හොදයි.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Untrusted input safely processes කිරීමට.&lt;/li&gt;
&lt;li&gt;Performance improve කරන්න parallelism පාවිච්චි කරන්න.&lt;/li&gt;
&lt;li&gt;Isolated components සමග පවතින (existing) codebase ඒකාබද්ධ (integrating) කරන්න.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rbn0Gf5z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2019/01/with-great-performance-500x383.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rbn0Gf5z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2019/01/with-great-performance-500x383.jpg" alt="With great performance comes great memory responsibility"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cargo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ddCrn0dK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://doc.bccnsoft.com/docs/rust-1.36.0-docs-html/cargo/images/Cargo-Logo-Small.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ddCrn0dK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://doc.bccnsoft.com/docs/rust-1.36.0-docs-html/cargo/images/Cargo-Logo-Small.png" alt=""&gt;&lt;/a&gt;&lt;br&gt;
Rust වල තියෙන ප්‍රදාන වාසියක් තමයි central package management කියන්නේ. cargo build වලින් ඔයාට ඕනි කරන dependencies සේරම ටික download කරලා compile ලුත් කරලා ඔයාගේ ඔයාගේ code link කුත් කරලා දෙනවා. ඔව් ටිකක් npm / yarn වගේ හුකම Go ලාගේ go build වගේ. C/C++ වල නම් dependencies ඔයාට manually download කරල install කරන්න ඕනි නැත්නම් make ලියලා හෙන නැටුමක් නටන්න ඕනි.&lt;/p&gt;




&lt;h2&gt;
  
  
  Servo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g3MGHe_V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://upload.wikimedia.org/wikipedia/en/thumb/d/d9/Servo_logo.png/240px-Servo_logo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g3MGHe_V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://upload.wikimedia.org/wikipedia/en/thumb/d/d9/Servo_logo.png/240px-Servo_logo.png" alt="File:Servo logo.png - Wikipedia"&gt;&lt;/a&gt;&lt;br&gt;
Mozilla Research develop කරන browser engine. මේක ලියන්නේ Rust වලින්. මේකට Quantum CSS කියලත් කියනව.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1vkApav8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2017/08/01-500x317.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1vkApav8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2017/08/01-500x317.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Quantum CSS aka Stylo?
&lt;/h2&gt;

&lt;p&gt;Rust වලින් ප්‍රතිනිර්මාණය Quantum CSS නිර්මාණය කරන්න මුලිකම හේතුව තමයි page performance හා security වැඩිදියුණු කරන්න එක.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4F7v2Rh8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2019/02/successrust-250x250.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4F7v2Rh8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2019/02/successrust-250x250.jpg" alt="Rewrites code to make it faster; also makes it more secure"&gt;&lt;/a&gt;&lt;br&gt;
Firefox Quantum නිර්මාණය කරන්නේ ඒ Stylo browser engine දාල.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pcVVMZcC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://fossbytes.com/wp-content/uploads/2017/11/Disconnect-Study-Blog-Post-Graph-01-1-768x384.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pcVVMZcC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://fossbytes.com/wp-content/uploads/2017/11/Disconnect-Study-Blog-Post-Graph-01-1-768x384.jpg" alt="https://fossbytes.com/wp-content/uploads/2017/11/Disconnect-Study-Blog-Post-Graph-01-1-768x384.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;කලින් තිබුණු browser engine තිබුණු security bugs 69 යෙන් 51ම (&lt;strong&gt;73.9%&lt;/strong&gt;) Stylo browser engine Rust වලින් නිර්මාණය කරපු නිසා නැති කරගන්න පුලුවම් වෙලා තියෙනවා.&lt;/p&gt;




&lt;h2&gt;
  
  
  Projects
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Web browser
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Firefox"&gt;Firefox&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Servo_(software)"&gt;Servo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Quantum_(software)"&gt;Quantum&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Operating systems
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Magic Pocket&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Redox_(operating_system)"&gt;Redox&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Stratis_(configuration_daemon)"&gt;Stratis&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Railcar&lt;/li&gt;
&lt;li&gt;  Firecracker&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Other
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Exa_(command-line_utility)"&gt;exa&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Microsoft_Azure"&gt;Microsoft Azure&lt;/a&gt; IoT Edge&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/OpenDNS"&gt;OpenDNS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Tor_(anonymity_network)"&gt;Tor&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  TiKV &lt;/li&gt;
&lt;li&gt;  &lt;em&gt;&lt;a href="https://en.wikipedia.org/wiki/Wargroove"&gt;Wargroove&lt;/a&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;  Xi&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Deno_(software)"&gt;Deno&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://linkerd.io/2/overview/"&gt;Linkerd 2.x&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://terminusdb.com/"&gt;TerminusDB&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://en.wikipedia.org/wiki/Discord_(software)"&gt;Discord&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&amp;gt;&amp;gt; Don't forget to say hello to the search box for further details.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Rust_(programming_language)"&gt;https://en.wikipedia.org/wiki/Rust_(programming_language)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hacks.mozilla.org/2019/01/fearless-security-memory-safety/"&gt;https://hacks.mozilla.org/2019/01/fearless-security-memory-safety/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://msrc-blog.microsoft.com/2019/07/18/we-need-a-safer-systems-programming-language/"&gt;https://msrc-blog.microsoft.com/2019/07/18/we-need-a-safer-systems-programming-language/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/Servo_(software)"&gt;https://en.wikipedia.org/wiki/Servo_(software)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/"&gt;https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://blog.mozilla.org/press-uk/2017/11/20/1811/"&gt;https://blog.mozilla.org/press-uk/2017/11/20/1811/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>c</category>
      <category>mozzilla</category>
      <category>memorysafety</category>
    </item>
  </channel>
</rss>
