<?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: دادا الدودي</title>
    <description>The latest articles on DEV Community by دادا الدودي (@p622yceoxqdycaj).</description>
    <link>https://dev.to/p622yceoxqdycaj</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%2F508935%2Fcb4777ac-1872-4fbb-9bf0-a09d601cc07a.jpg</url>
      <title>DEV Community: دادا الدودي</title>
      <link>https://dev.to/p622yceoxqdycaj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/p622yceoxqdycaj"/>
    <language>en</language>
    <item>
      <title>This repository on ML operations has free talks, books, papers and more</title>
      <dc:creator>دادا الدودي</dc:creator>
      <pubDate>Thu, 05 Nov 2020 22:46:48 +0000</pubDate>
      <link>https://dev.to/p622yceoxqdycaj/this-repository-on-ml-operations-has-free-talks-books-papers-and-more-55p4</link>
      <guid>https://dev.to/p622yceoxqdycaj/this-repository-on-ml-operations-has-free-talks-books-papers-and-more-55p4</guid>
      <description>&lt;p&gt;This repository on ML operations has free talks, books, papers and more: &lt;a href="https://thepythoncoding.blogspot.com/2020/11/memory-life-cycle-heap-stack-and-call.html"&gt;https://thepythoncoding.blogspot.com/2020/11/memory-life-cycle-heap-stack-and-call.html&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  MLOps #Python #programming #100DaysOfCode #MachineLearning  #100DaysOfMLCode #&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hKW74MFj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/irswt27i7y7cnpao8qtt.png" alt="ElhLi8iWkAAK-TF"&gt;
&lt;/h1&gt;

&lt;p&gt;#javascript #womenwhocode #RStats #CodeNewbie #DataScience #DEVCommunity&lt;/p&gt;

</description>
      <category>mlops</category>
      <category>programming</category>
      <category>mmachinelearning</category>
      <category>ai</category>
    </item>
    <item>
      <title>Password Hashing with bcrypt (easiest explanation) </title>
      <dc:creator>دادا الدودي</dc:creator>
      <pubDate>Thu, 05 Nov 2020 22:38:35 +0000</pubDate>
      <link>https://dev.to/p622yceoxqdycaj/password-hashing-with-bcrypt-easiest-explanation-32a4</link>
      <guid>https://dev.to/p622yceoxqdycaj/password-hashing-with-bcrypt-easiest-explanation-32a4</guid>
      <description>&lt;p&gt;Password Hashing with bcrypt (easiest explanation) &lt;br&gt;
&lt;a href="https://thepythoncoding.blogspot.com/2020/11/password-hashing-with-bcrypt-easiest.html"&gt;https://thepythoncoding.blogspot.com/2020/11/password-hashing-with-bcrypt-easiest.html&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  AI, #Analytics, #BigData, #CloudComputing, #DataScience, #DataScientist, #IoT, #Java, #JavaScript, #Linux, #MachineLearning, #Programming, #Python, #ReactJS, #RStats, #Serverless, #TensorFlow
&lt;/h1&gt;

</description>
      <category>bigdata</category>
      <category>javascript</category>
      <category>react</category>
      <category>tensorflow</category>
    </item>
    <item>
      <title>coding challenge websites Down pointing backhand index
</title>
      <dc:creator>دادا الدودي</dc:creator>
      <pubDate>Thu, 05 Nov 2020 22:23:39 +0000</pubDate>
      <link>https://dev.to/p622yceoxqdycaj/coding-challenge-websites-down-pointing-backhand-index-899</link>
      <guid>https://dev.to/p622yceoxqdycaj/coding-challenge-websites-down-pointing-backhand-index-899</guid>
      <description>&lt;p&gt;coding challenge websites Down pointing backhand index&lt;br&gt;
-Codewars&lt;br&gt;
-Hackerrank&lt;br&gt;
-Projecteuler&lt;br&gt;
-Top coder&lt;br&gt;
-Coderbyte&lt;br&gt;
-Codechef&lt;br&gt;
-Leetcode&lt;br&gt;
Do you know any other?&lt;br&gt;
 #CodeNewbie #javascript #NodeJS #reactjs #Python #technology #DataScience #AI &lt;br&gt;
&lt;a href="https://thepythoncoding.blogspot.com"&gt;https://thepythoncoding.blogspot.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>python</category>
    </item>
    <item>
      <title>JavaScript Tools and Libraries for Creating, Customizing and Validation Forms</title>
      <dc:creator>دادا الدودي</dc:creator>
      <pubDate>Thu, 05 Nov 2020 21:50:09 +0000</pubDate>
      <link>https://dev.to/p622yceoxqdycaj/javascript-tools-and-libraries-for-creating-customizing-and-validation-forms-4f1f</link>
      <guid>https://dev.to/p622yceoxqdycaj/javascript-tools-and-libraries-for-creating-customizing-and-validation-forms-4f1f</guid>
      <description>&lt;p&gt;&lt;a href="https://thepythoncoding.blogspot.com/2020/11/javascript-tools-and-libraries-for.html"&gt;https://thepythoncoding.blogspot.com/2020/11/javascript-tools-and-libraries-for.html&lt;/a&gt;&lt;br&gt;
In the past, we already wrote about datepickers, calendar plugins and tables that will help in building a web application. This time we will talk about tools that will help in the development, validation, and forms customization.&lt;/p&gt;

&lt;p&gt;Forms are an essential part of almost every web application. They serve as a basic medium for users to interact with your app. But why does such a simple element as a form take such a long time to develop? The answer is simple: it takes a lot of code to build neat forms. That’s why many developers prefer to use ready-made libraries.&lt;/p&gt;

&lt;p&gt;It is important to develop a high-quality form for several reasons:&lt;/p&gt;

&lt;p&gt;Higher conversion rate. Good forms won’t frustrate users with the filling process. Remember how many times you have left a shopping cart because of a bad form.&lt;/p&gt;

&lt;p&gt;Better user experience. Good forms help the company look more professional and mature.&lt;/p&gt;

&lt;p&gt;Libraries for building forms are divided according to the following principle:&lt;br&gt;
Form validation libraries&lt;br&gt;
Validation is an essential part of any form of a library. Modern-day forms have validations that have evolved greatly from the olden days. There are a variety of validations we can see in day to day web applications.&lt;/p&gt;

&lt;p&gt;Form builders with UI&lt;br&gt;
These tools allow you to create forms almost without coding. Basically, you just download a tool and start creating a form using various pre-built blocks.&lt;/p&gt;

&lt;p&gt;Form extension libraries&lt;br&gt;
There are a lot of plugins and libraries that help to extend forms. For instance, libraries with prebuilt checkboxes and text inputs: you can integrate these into existing forms.&lt;/p&gt;

&lt;p&gt;Form builder from JSON/XML&lt;br&gt;
A form builder allows developers to dynamically generate form controls (text fields, select boxes, radio buttons, checkboxes) from structured data models defined using JSON Schema. It also has the ability to encode a set of form controls as a JSON object for manipulation and submission when needed.&lt;/p&gt;

&lt;p&gt;How to choose the best form of a library?&lt;br&gt;
We interact with forms almost every day while working with information: login forms, online purchases, registration forms, etc. The main concern of every developer when working with them is to make forms accessible and usable. A poorly designed form can easily turn visitors away from your site.&lt;/p&gt;

&lt;p&gt;Thus choosing the right form library for your application is crucial and depends on:&lt;/p&gt;

&lt;p&gt;How easy is it to create custom input elements?&lt;br&gt;
How easy is it to extract and change form values?&lt;br&gt;
How easy is it to write custom validation logic?&lt;br&gt;
Quality of user experience and design.&lt;br&gt;
In this post, we’ve gathered some useful Javascript libraries you can use to set up a form validation for your projects, as well as create and extend forms.&lt;/p&gt;

&lt;p&gt;Tools&lt;br&gt;
Javascript Form Libraries&lt;br&gt;
In this section of the article, we’ll review libraries that are written and must be used in vanilla JavaScript.&lt;/p&gt;

&lt;p&gt;Parsley Js&lt;br&gt;
Web-site: &lt;a href="https://parsleyjs.org/"&gt;https://parsleyjs.org/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/guillaumepotier/Parsley.js/"&gt;https://github.com/guillaumepotier/Parsley.js/&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://parsleyjs.org/doc/examples.html"&gt;https://parsleyjs.org/doc/examples.html&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT license&lt;br&gt;
Type: Form validation library&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Parsley is a javascript form validation library. It helps developers to provide users with feedback on their form submission before sending it to the server. The library is totally free to download and it’s one of the most complete plugins made for data validation. What’s unique with Parsley.js is that instead of validating forms with Javascript it uses data attributes embedded in the DOM to achieve the same function. The library also comes with a great number of examples and very accurate documentation.&lt;/p&gt;

&lt;p&gt;The product comes with built-in validators for all types of inputs like:&lt;/p&gt;

&lt;p&gt;Phone numbers;&lt;br&gt;
Credit cards;&lt;br&gt;
Addresses;&lt;br&gt;
Emails.&lt;br&gt;
Formvalidation&lt;br&gt;
Web-site: &lt;a href="https://formvalidation.io/"&gt;https://formvalidation.io/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/formvalidation/formvalidation"&gt;https://github.com/formvalidation/formvalidation&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://formvalidation.io/guide/examples/"&gt;https://formvalidation.io/guide/examples/&lt;/a&gt;&lt;br&gt;
Price and License: Commercial, from $50 to $200&lt;br&gt;
Type: Form validation library&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;This library used to be made with jQuery, but now it’s completely rewritten with ES6 and Typescript. The library has zero dependencies and no jQuery at all. There are 50 built-in validators inside such as credit cards, date, id, phone, VAT. Additionally, the library is highly customizable, you can even develop your own validators. All validators can be used independently. Inspired by the functional programming paradigm, all built-in validators are just functions, so you can use it in browsers, with ES6 module, as well as server-side frameworks such as Express. The product was built with a plugin architecture.&lt;/p&gt;

&lt;p&gt;The product works on all the major frameworks including Foundation and Bootstrap. Plus the online docs are pretty straightforward, so even non-coders should be able to figure them out.&lt;/p&gt;

&lt;p&gt;Validate JS&lt;br&gt;
Web-site: &lt;a href="https://validatejs.org/"&gt;https://validatejs.org/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/ansman/validate.js"&gt;https://github.com/ansman/validate.js&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://validatejs.org/examples.html"&gt;https://validatejs.org/examples.html&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT&lt;br&gt;
Type: Form validation library&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Validate.js provides a declarative way of validating javascript objects. It augments native HTML5 form validation elements and attributes, providing a better user experience and giving more control. It is unit tested with 100% code coverage and can be considered fit for production.&lt;/p&gt;

&lt;p&gt;The goal of validate.js is to provide a cross framework and cross-language way of validating data. The validation constraints can be declared in JSON and shared between clients and server.&lt;/p&gt;

&lt;p&gt;Validate.js works with any ECMAScript 5.1 runtime which means it works in both the browser and in node.js. All modern browsers are supported (IE9+, Firefox 3+, Opera 10.5+, Safari 4+, Chrome).&lt;/p&gt;

&lt;p&gt;The documentation is very comprehensive and will help you write your own validators or install the solution in your project without any difficulties.&lt;/p&gt;

&lt;p&gt;Formbuilder&lt;br&gt;
Web-site: &lt;a href="http://dobtco.github.io/formbuilder/"&gt;http://dobtco.github.io/formbuilder/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/dobtco/formbuilder"&gt;https://github.com/dobtco/formbuilder&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="http://dobtco.github.io/formbuilder/"&gt;http://dobtco.github.io/formbuilder/&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: Online tool with a graphical interface for building forms&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Formbuilder is a graphic interface that lets users build their own web forms. Formbuilder.js only handles the client-side logic of creating a form. It will output a structured JSON representation of your form, but saving the form, rendering it on the server, and storing user responses is all up to you.&lt;/p&gt;

&lt;p&gt;Formbuilder itself is a pretty small codebase (6kb gzipped javascript) but it does rely on some external libraries, namely Backbone &amp;amp; Rivets. The solution uses bower to manage dependencies.&lt;/p&gt;

&lt;p&gt;Formbuilder consists of just a few different components. Because of its modular nature, Formbuilder is easy to customize. Most of the configuration lives in class variables, which means you can simply override a template or method.&lt;/p&gt;

&lt;p&gt;React Form Libraries&lt;br&gt;
Formbuilder.dev&lt;br&gt;
Web-site: &lt;a href="https://formbuilder.dev/"&gt;https://formbuilder.dev/&lt;/a&gt;&lt;br&gt;
Github: –&lt;br&gt;
Demo: &lt;a href="https://formbuilder.dev/demo/"&gt;https://formbuilder.dev/demo/&lt;/a&gt;&lt;br&gt;
Price and License: Free&lt;br&gt;
Type: Online form builder&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Formbuilder.dev is a tool for a user interface and debugging panel where you can design and test forms for your web projects. The system is React-based and is compliant with every web app based on React.&lt;/p&gt;

&lt;p&gt;It includes 4 groups of elements (Containers, Collections, Controls, Charts) by default, but you can add more elements. FormBuilder uses JSON to describe forms. The product is event-based, so you can define the set of events and handlers for each of these events. Form data can be displayed in the elements. For example, type “Hello, {Name}!” in the Header control, and FormBuilder will automatically replace {Name} with the Name setting value.&lt;/p&gt;

&lt;p&gt;React hook form&lt;br&gt;
Web-site: &lt;a href="https://react-hook-form.com/"&gt;https://react-hook-form.com/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/react-hook-form/react-hook-form"&gt;https://github.com/react-hook-form/react-hook-form&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://react-hook-form.com/"&gt;https://react-hook-form.com/&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: Form builder and validation library&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;React Hook Form is a new builder and validation library for React and React Native applications. It has a wide community of contributors and is open to new changes. Like Formik, it was developed in TypeScript. With no dependencies and only 5.7kB gzipped in size, it makes an appealing alternative.&lt;/p&gt;

&lt;p&gt;Notable features:&lt;/p&gt;

&lt;p&gt;Built with performance and DX in mind;&lt;br&gt;
Embrace uncontrolled form validation;&lt;br&gt;
Simple integration with UI libraries;&lt;br&gt;
Tiny size without any dependency;&lt;br&gt;
Follows HTML standard for validation;&lt;br&gt;
Compatible with React Native;&lt;br&gt;
Supports Yup, Joi, Superstruct or custom;&lt;br&gt;
Build forms quickly with the form builder.&lt;br&gt;
Formik&lt;br&gt;
Web-site: &lt;a href="https://jaredpalmer.com/formik"&gt;https://jaredpalmer.com/formik&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/jaredpalmer/formik"&gt;https://github.com/jaredpalmer/formik&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://codesandbox.io/s/zKrK5YLDZ"&gt;https://codesandbox.io/s/zKrK5YLDZ&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: React form builder and validation library&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Formik was developed in TypeScript and released in July 2018, having grown to 22,000 stars on GitHub since then. It’s also the biggest package, with almost 15kB gzipped in size and 8 dependencies. The relatively small library helps you organize, test, refactor and reason about your forms.&lt;/p&gt;

&lt;p&gt;The product has a lot of examples from its authors and quite a comprehensive documentation. Formik does not use external state management libraries like Redux or MobX. This also makes Formik easy to adopt incrementally and keeps bundle size to a minimum. The library is used by such companies as Airbnb, PWC, Sony, and others.&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;p&gt;Getting values in and out of form state;&lt;br&gt;
Validation and error messages;&lt;br&gt;
Handling form submission.&lt;br&gt;
Formsy&lt;br&gt;
Web-site: –&lt;br&gt;
Github: &lt;a href="https://github.com/formsy/formsy-react/"&gt;https://github.com/formsy/formsy-react/&lt;/a&gt;&lt;br&gt;
Demo: –&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: A form input builder and validator for React JS&lt;/p&gt;

&lt;p&gt;Formsy-react is designed as a form builder along with inputs and validations required for forms.&lt;/p&gt;

&lt;p&gt;As validations across react projects are done differently, formsy-react provides components that are flexible and reusable.&lt;/p&gt;

&lt;p&gt;Notable features:&lt;/p&gt;

&lt;p&gt;Build any kind of form element, without restriction to traditional input types. formsy-react will provide the validations;&lt;br&gt;
Manage validations with simple syntax;&lt;br&gt;
Have separate handlers for each state (onSubmit, onValid, etc.) of your forms;&lt;br&gt;
Parse external validations such as server responses to invalidate inputs;&lt;br&gt;
Dynamically add form elements and have them register/unregister automatically.&lt;br&gt;
Formsy architecture is pretty simple and direct. Input components inside of a formsy form are provided with get_&lt;em&gt;() and set&lt;/em&gt;_() methods from formsy mixin (or HOC in case of ES6). Using get and set methods we can communicate the data of the form with the library.&lt;/p&gt;

&lt;p&gt;Formsy provides callbacks for all the form related events such as when form becomes valid, invalid, or pristine. Over those callbacks we can define the behavior of components.&lt;/p&gt;

&lt;p&gt;React final form&lt;br&gt;
Web-site: &lt;a href="https://final-form.org/react"&gt;https://final-form.org/react&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/final-form/react-final-form"&gt;https://github.com/final-form/react-final-form&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://final-form.org/docs/react-final-form/examples"&gt;https://final-form.org/docs/react-final-form/examples&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: Form State Management for React\&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;React Final Form is a High-performance subscription-based form state management for React. Its main goal is to fix complaints developers had with the Redux Form.&lt;/p&gt;

&lt;p&gt;React Final Form provides strong typing via both Flow and Typescript to allow you to catch common bugs at coding time. React Final Form and Final Form break out complex functionality into separate packages, so the form state management core doesn’t get bloated by complicated use cases.&lt;/p&gt;

&lt;p&gt;The product has famous users: Netflix, Cisco, Vodafone, and others.&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;p&gt;Zero dependencies;&lt;br&gt;
Modular;&lt;br&gt;
Only peer dependencies: React and Final Form;&lt;br&gt;
Opt-in subscriptions – only update on the state you need.&lt;br&gt;
jQuery Form Libraries&lt;br&gt;
Formbuilder.online&lt;br&gt;
Web-site: &lt;a href="https://formbuilder.online/"&gt;https://formbuilder.online/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/kevinchappell/formBuilder"&gt;https://github.com/kevinchappell/formBuilder&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://formbuilder.online/"&gt;https://formbuilder.online/&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: Online form builder&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;jQuery Form Builder is one of the most widely known and used plugins to create a dynamic form builder with JavaScript. It has many options and is localizable. The jQuery formBuilder is a 100% client-side plugin that gives users the power to create forms using an intuitive drag and drop interface. FormBuilder supports a number of form fields and some HTML tags. The library has good documentation and a tiny community that will help with the issues. To install the library you need to use yarn.&lt;/p&gt;

&lt;p&gt;The plugin by itself is:&lt;/p&gt;

&lt;p&gt;Customizable – enable only the fields you need, use your own notifications, append or prepend content, and more;&lt;br&gt;
Bootstrap ready, but not dependent;&lt;br&gt;
Translatable;&lt;br&gt;
Export the structure of the form in JSON or XML.&lt;br&gt;
Notable features:&lt;/p&gt;

&lt;p&gt;Create and edit form templates;&lt;br&gt;
39 configurable options;&lt;br&gt;
11 action methods;&lt;br&gt;
28 languages;&lt;br&gt;
Custom controls;&lt;br&gt;
XML and JSON data.&lt;br&gt;
iCheck&lt;br&gt;
Web-site: &lt;a href="http://icheck.fronteed.com/"&gt;http://icheck.fronteed.com/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/fronteed/iCheck"&gt;https://github.com/fronteed/iCheck&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="http://icheck.fronteed.com/"&gt;http://icheck.fronteed.com/&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: Library for customizing forms&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Checkboxes and radio buttons are crucial for web forms. iCheck plugin is just about it: customized checkboxes and radio buttons. It works on jQuery and comes with a handful of pre-designed themes you can edit with ease.&lt;/p&gt;

&lt;p&gt;Notable features:&lt;/p&gt;

&lt;p&gt;Identical inputs across different browsers and devices;&lt;br&gt;
Touch devices support;&lt;br&gt;
Keyboard accessible inputs;&lt;br&gt;
Lightweight size — 1 kb gzipped;&lt;br&gt;
32 options to customize checkboxes and radio buttons;&lt;br&gt;
11 callbacks to handle changes;&lt;br&gt;
9 methods to make changes programmatically;&lt;br&gt;
Saves changes to original inputs to work carefully with any selectors.&lt;br&gt;
The website says that iCheck is verified to work in Internet Explorer 6+, Firefox 2+, Opera 9+, Google Chrome and Safari browsers. It should also work in many others.&lt;/p&gt;

&lt;p&gt;Chosen&lt;br&gt;
Web-site: &lt;a href="https://harvesthq.github.io/chosen/"&gt;https://harvesthq.github.io/chosen/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/harvesthq/chosen"&gt;https://github.com/harvesthq/chosen&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://harvesthq.github.io/chosen/"&gt;https://harvesthq.github.io/chosen/&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: Library for making select boxes&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Chosen is a library for making long, unwieldy select boxes more user friendly. This plugin supports a custom search filter where the user can type letters and automatically filter the results. The Chosen plugin has options for multi-select along with a “no results” display for search.&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;p&gt;Chosen automatically highlights selected options and removes disabled options;&lt;br&gt;
Chosen automatically sets the default field text (“Choose a country…”) by reading the select element’s data-placeholder value;&lt;br&gt;
You can easily limit how many options the user can select;&lt;br&gt;
All modern desktop browsers are supported (Firefox, Chrome, Safari, and IE9). Legacy support for IE8 is also enabled. Chosen is disabled on iPhone, iPod Touch, and Android mobile devices.&lt;br&gt;
Selectize&lt;br&gt;
Web-site: &lt;a href="https://selectize.github.io/selectize.js/"&gt;https://selectize.github.io/selectize.js/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/selectize/selectize.js"&gt;https://github.com/selectize/selectize.js&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://selectize.github.io/selectize.js/"&gt;https://selectize.github.io/selectize.js/&lt;/a&gt;&lt;br&gt;
Price and License: Free, Apache License 2.0&lt;br&gt;
Type: Textbox creator&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Selectize is the hybrid of a textbox and box. It’s jQuery-based and is useful for tagging, contact lists, country selectors, and so on. The Selectize.js plugin also works on select menus, but it combines the idea of a textbox with a dropdown select. This way users can pick many different items and submit your form with many options selected. But the input UX performs just like a select so it should feel familiar to everyone. It clocks in at around ~7kb (gzipped).&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;p&gt;Skinnable — Comes with LESS stylesheets;&lt;br&gt;
Clean API &amp;amp; Code + Extensible;&lt;br&gt;
Smart Ranking / Multi-Property Searching &amp;amp; Sorting;&lt;br&gt;
Caret Between Items;&lt;br&gt;
RTL supported;&lt;br&gt;
Remote Data Loading.&lt;br&gt;
Vue Form Libraries&lt;br&gt;
Vuelidate&lt;br&gt;
Web-site: &lt;a href="https://vuelidate.js.org/"&gt;https://vuelidate.js.org/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/vuelidate/vuelidate"&gt;https://github.com/vuelidate/vuelidate&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://jsfiddle.net/b5v4faqf/"&gt;https://jsfiddle.net/b5v4faqf/&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: Form validation library&lt;/p&gt;

&lt;p&gt;Vuelidate is a simple, lightweight model-based validation for Vue.js 2.0. Here’s what the creators write in their introduction post: “The biggest difference from other libraries you will notice is that the validations are completely decoupled from the template. It means that instead of providing rules for different inputs inside a template, you declare those rules for your data model. This is similar to how Ember does it.”&lt;/p&gt;

&lt;p&gt;Features &amp;amp; characteristics:&lt;/p&gt;

&lt;p&gt;Model-based;&lt;br&gt;
Decoupled from templates;&lt;br&gt;
Dependency free, minimalistic library;&lt;br&gt;
Support for collection validations;&lt;br&gt;
Support for nested models;&lt;br&gt;
Support for function composition;&lt;br&gt;
Validates different data sources: Vuex getters, computed values, etc.&lt;br&gt;
Vue select&lt;br&gt;
Web-site: &lt;a href="https://vue-select.org/"&gt;https://vue-select.org/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/sagalbot/vue-select"&gt;https://github.com/sagalbot/vue-select&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://codepen.io/sagalbot/pen/NpwrQO"&gt;https://codepen.io/sagalbot/pen/NpwrQO&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: Dropdown component&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Vue Select is a feature-rich select/dropdown/typeahead component. It provides a default template that fits most use cases for a filterable select dropdown. The component is designed to be as lightweight as possible while maintaining high standards for accessibility, developer experience, and customization.&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;p&gt;Tagging;&lt;br&gt;
Filtering / Searching;&lt;br&gt;
Vuex Support;&lt;br&gt;
AJAX Support;&lt;br&gt;
SSR Support;&lt;br&gt;
Zero dependencies.&lt;br&gt;
Vee-validate&lt;br&gt;
Web-site: &lt;a href="https://logaretm.github.io/vee-validate/"&gt;https://logaretm.github.io/vee-validate/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/logaretm/vee-validate"&gt;https://github.com/logaretm/vee-validate&lt;/a&gt;&lt;br&gt;
Demo: –&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: Form validation library&lt;/p&gt;

&lt;p&gt;VeeValidate is a template-based validation framework for Vue.js that allows you to validate inputs and display errors.&lt;/p&gt;

&lt;p&gt;Being template-based you only need to specify for each input what kind of validators should be used when the value changes. The errors will be automatically generated with 40+ locales supported. Many rules are available out of the box.&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;p&gt;Template-based validation that is both familiar and easy to set up;&lt;br&gt;
i18n Support and error Messages in 40+ locales;&lt;br&gt;
Async and Custom Rules Support;&lt;br&gt;
Written in TypeScript;&lt;br&gt;
No dependencies.&lt;br&gt;
VeeValidate tackles the major pain points of form validation and addresses them in the most flexible way possible:&lt;/p&gt;

&lt;p&gt;Ability to craft complicated UX for your users;&lt;br&gt;
Most common validations are built-in;&lt;br&gt;
Cross Field validation;&lt;br&gt;
Utilities to enhance the accessibility and styling of your form;&lt;br&gt;
Localization is built-in to the core.&lt;br&gt;
Angular Form Libraries&lt;br&gt;
Formly&lt;br&gt;
Web-site: &lt;a href="https://formly.dev/"&gt;https://formly.dev/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/ngx-formly/ngx-formly"&gt;https://github.com/ngx-formly/ngx-formly&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://formly.dev/examples/introduction"&gt;https://formly.dev/examples/introduction&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: Angular Form Builder&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Formly is a dynamic (JSON powered) form library for Angular that brings unmatched maintainability to your application’s forms.&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;p&gt;Automatic forms generation;&lt;br&gt;
Easy to extend with custom field type, validation, wrapper and extension;&lt;br&gt;
Support multiple schemes;&lt;br&gt;
A bunch of themes out of the box.&lt;br&gt;
Advantages of using Angular Formly:&lt;/p&gt;

&lt;p&gt;No need to write template code as it’s all in the form fields in the component typescript file;&lt;br&gt;
Easy custom validation and error messages.&lt;br&gt;
Schemaform&lt;br&gt;
Web-site: &lt;a href="http://schemaform.io/"&gt;http://schemaform.io/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/json-schema-form/angular-schema-form"&gt;https://github.com/json-schema-form/angular-schema-form&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="http://schemaform.io/examples/bootstrap-example.html"&gt;http://schemaform.io/examples/bootstrap-example.html&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: Form builder&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Schema Form is a form builder library for Angular to generate complex web forms from JSON Schema. It can also validate form fields against that same JSON schema. There are also many third-party add-ons you can integrate with Schema Form, such as WYSIWYG editors, datepickers, color pickers, font-pickers.&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;p&gt;Validates the form using a JSON Schema;&lt;br&gt;
Fine tune presentation with a form definition, change field types, change order;&lt;br&gt;
Lots of basic form types out of the box;&lt;br&gt;
Supports array with drag and drop or in tabs.&lt;br&gt;
Form Libraries for multiple frameworks&lt;br&gt;
Surveyjs&lt;br&gt;
Web-site: &lt;a href="https://surveyjs.io/Library"&gt;https://surveyjs.io/Library&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/surveyjs/survey-library"&gt;https://github.com/surveyjs/survey-library&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://surveyjs.io/Examples/Library"&gt;https://surveyjs.io/Examples/Library&lt;/a&gt;&lt;br&gt;
Price and License: Commercial, 499 Euro&lt;br&gt;
Type: Survey and Forms Library&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Survey.js is a javascript form and survey library. The SurveyJS Library has versions for several popular JavaScript Frameworks. Examples are available for Angular2+, jQuery, Knockout, React, and Vue.js.&lt;/p&gt;

&lt;p&gt;Main Features:&lt;/p&gt;

&lt;p&gt;A lot of question types with a lot of built-in functionalities;&lt;br&gt;
Multiple Pages Support;&lt;br&gt;
Dynamically change survey logic and questions content;&lt;br&gt;
Localization and Multiple language support;&lt;br&gt;
Custom Rendering;&lt;br&gt;
Bootstrap support.&lt;br&gt;
Multiple-select&lt;br&gt;
Web-site: &lt;a href="http://multiple-select.wenzhixin.net.cn/"&gt;http://multiple-select.wenzhixin.net.cn/&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/wenzhixin/multiple-select"&gt;https://github.com/wenzhixin/multiple-select&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="http://multiple-select.wenzhixin.net.cn/examples"&gt;http://multiple-select.wenzhixin.net.cn/examples&lt;/a&gt;&lt;br&gt;
Price and License: Free, MIT License&lt;br&gt;
Type: Forms Extension Library&lt;/p&gt;

&lt;p&gt;Learn JavaScript&lt;/p&gt;

&lt;p&gt;Multiple Select gives web developers a massive and well-documented jQuery solution for implementing forms with checkboxes that would require mass selection or multiple orientations for a single purpose.&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;p&gt;Default option allows showing a checkbox;&lt;br&gt;
Ability to group elements;&lt;br&gt;
Supports showing multiple items in a single row;&lt;br&gt;
Select all options.&lt;br&gt;
Feature to show the placeholder.&lt;br&gt;
Conclusion&lt;br&gt;
We’ve had a look at key products that help create and validate forms. A common feature of libraries is that all of them usually allow not only building forms but also validating them. Our collection also includes several libraries that extend the functionality of forms: checkboxes, text boxes and radio buttons.&lt;/p&gt;

&lt;p&gt;This is worth mentioning again: it’s important to look at the features of each library and select one that is most suitable for your needs.&lt;/p&gt;

&lt;p&gt;If you notice that we missed an important product in our selection, please write to us.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>devop</category>
      <category>python</category>
      <category>angular</category>
    </item>
    <item>
      <title>need help</title>
      <dc:creator>دادا الدودي</dc:creator>
      <pubDate>Thu, 05 Nov 2020 21:37:31 +0000</pubDate>
      <link>https://dev.to/p622yceoxqdycaj/need-help-1d65</link>
      <guid>https://dev.to/p622yceoxqdycaj/need-help-1d65</guid>
      <description>&lt;p&gt;If you are here to help then this is the deal!!! &lt;br&gt;
We are looking for software developper who are interested to develop an opensource software in the field of GIS.&lt;br&gt;
This software should containing the most important tools integrated in esri product as well as Qgis.&lt;/p&gt;

&lt;p&gt;If you are intersted, don't hesitate to comment &lt;br&gt;
&lt;a href="https://thepythoncoding.blogspot.com/2020/11/memory-life-cycle-heap-stack-and-call.html"&gt;https://thepythoncoding.blogspot.com/2020/11/memory-life-cycle-heap-stack-and-call.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://thepythoncoding.blogspot.com/2020/11/react-redux-in-typescript-complete.html"&gt;https://thepythoncoding.blogspot.com/2020/11/react-redux-in-typescript-complete.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>help</category>
      <category>python</category>
      <category>django</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Memory Life cycle, Heap, Stack and Call Stack in JavaScript </title>
      <dc:creator>دادا الدودي</dc:creator>
      <pubDate>Thu, 05 Nov 2020 20:28:28 +0000</pubDate>
      <link>https://dev.to/p622yceoxqdycaj/memory-life-cycle-heap-stack-and-call-stack-in-javascript-d6h</link>
      <guid>https://dev.to/p622yceoxqdycaj/memory-life-cycle-heap-stack-and-call-stack-in-javascript-d6h</guid>
      <description>&lt;p&gt;&lt;a href="https://thepythoncoding.blogspot.com/2020/11/memory-life-cycle-heap-stack-and-call.html"&gt;https://thepythoncoding.blogspot.com/2020/11/memory-life-cycle-heap-stack-and-call.html&lt;/a&gt;&lt;br&gt;
There are topics in JavaScript you as a developer may not know. Knowing about these topics can help you write better code. Memory life cycle, heap, stack and call stack are some of them. In this tutorial, you will learn about these topics and a bit about how JavaScript works.&lt;/p&gt;

&lt;p&gt;A quick introduction&lt;/p&gt;

&lt;p&gt;JavaScript is a very forgiving programming language. It allows you to do a lot, in many ways. It also does a lot of work for you. Memory management is one of these things. Ask yourself: how many times did you have to think about allocating memory for your variables or functions?&lt;/p&gt;

&lt;p&gt;How many times did you have to think about releasing that memory when you no longer needed those variables or functions? Chances are not even once. The same applies to knowing how is heap, stack and call stack work, or what it even is. And yet, you can still work with JavaScript. You can still write code that works every day.&lt;/p&gt;

&lt;p&gt;These things are not necessary for you to know. Nor are they required. However, knowing about them and how they work can help you understand how JavaScript works. This, in turn, can help you write better code and become a better JavaScript.&lt;/p&gt;

&lt;p&gt;Memory life cycle&lt;br&gt;
Let's start with the easiest part. What is a memory life cycle, what it is about and how it works in JavaScript? Memory life cycle refers to how a programming language works with memory. Regardless of the language, memory life cycle is almost always the same. It is composed of three steps.&lt;/p&gt;

&lt;p&gt;The first step is memory allocation. When you assign a variable or create a function or object some amount of memory has to be allocated for it. The second step is memory use. When you work with data in your code, read or write, you are using memory. Reading from variables or changing values is reading from, and write to, memory.&lt;/p&gt;

&lt;p&gt;The third step is memory release. When you no longer use some function or object, that memory is can be released. Once it is released it can be used again. This is the memory life cycle in a nutshell. The nice thing on JavaScript is that it makes these three steps for you.&lt;/p&gt;

&lt;p&gt;JavaScript allocates memory as you need and want. It makes it easier for you to work with that allocated memory. Lastly, it also does the heaving lifting and cleans up all the mess. It uses garbage collection to continuously check memory and release it when it is no longer in use. The result?&lt;/p&gt;

&lt;p&gt;As a JavaScript developer, you don't have to worry about allocating memory to your variables or functions. You also don't have to worry about selecting correct memory address before reading from it. And, you don't have to worry about releasing the memory you used somewhere in the past.&lt;/p&gt;

&lt;p&gt;The stack and memory heap&lt;br&gt;
Now you know about the steps of memory life cycle. You know about memory allocation, use and release. One question you may ask is where are those variables, functions and objects actually stored? The answer is: it depends. JavaScript doesn't store all these things at the same place.&lt;/p&gt;

&lt;p&gt;What JavaScript does instead is it uses two places. These places are stack and memory heap. Which of these places will be used depends on what you are currently working with.&lt;/p&gt;

&lt;p&gt;The stack&lt;br&gt;
The stack is a place that JavaScript uses to store only static data. This includes primitive data types values. For example, numbers, strings, booleans, undefined and null. These static data also include references. These references point to objects and functions you've created.&lt;/p&gt;

&lt;p&gt;These data have one thing in common. The size of these data is fixed and JavaScript knows this size at compile time. This also means that JavaScript knows how much memory it should allocate, and allocates that amount. This type of memory allocation is called "static memory allocation". It happens right before the code is executed.&lt;/p&gt;

&lt;p&gt;There is one important thing about static data and memory. There is a limit to how large these primitive values can be. This is also true for the stack itself. That too has limits. How high these limits are depends on specific browser and engine.&lt;/p&gt;

&lt;p&gt;// Declare and assign some variables&lt;br&gt;
// and assign them primitive data types&lt;br&gt;
// All these variables are stored in stack&lt;br&gt;
const firstName = 'Jill'&lt;br&gt;
const lastName = 'Stuart'&lt;br&gt;
const age = 23&lt;br&gt;
const selfEmployed = true&lt;br&gt;
const dateOfMarriage = null&lt;/p&gt;

&lt;p&gt;// The stack after declaring&lt;br&gt;
// and assigning those variables:&lt;/p&gt;

&lt;p&gt;// Stack:&lt;br&gt;
// dateOfMarriage = null&lt;br&gt;
// selfEmployed = true&lt;br&gt;
// age = 23&lt;br&gt;
// lastName = 'Stuart'&lt;br&gt;
// firstName = 'Jill'&lt;br&gt;
The memory heap&lt;br&gt;
The second place where JavaScript can store data is memory heap. This storage is more dynamic. When it comes to memory heap, JavaScript doesn't allocate fixed amount of memory. Instead, it allocates memory as needed at the moment. This type of memory allocation is called "dynamic memory allocation".&lt;/p&gt;

&lt;p&gt;Which data are stored in memory heap? While the stack is a place where JavaScript stores static data, memory heap is a place where JavaScript stores objects and functions. So, remember, when you create with primitives, you are working with static data. JavaScript stores these static data in the stack.&lt;/p&gt;

&lt;p&gt;These data has always fixed allocated memory. When, on the other hand, you create objects or functions JavaScript stores them in memory heap. Allocated memory for these is not fixed. It is allocated dynamically as necessary.&lt;/p&gt;

&lt;p&gt;// Declare a variable and assign it an object&lt;br&gt;
const terryP = {&lt;br&gt;
  firstName: 'Terry',&lt;br&gt;
  lastName: 'Pratchett',&lt;br&gt;
  profession: 'author'&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function introduceTerry() {&lt;br&gt;
  return &lt;code&gt;Hi, my name is ${terryP.firstName}.&lt;/code&gt;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;const series = ['Discworld', 'Johnny Maxwell', 'Long Earth']&lt;/p&gt;

&lt;p&gt;const isDone = true&lt;/p&gt;

&lt;p&gt;// Stack:&lt;br&gt;
// isDone = true&lt;br&gt;
// introduceTerry (reference to function)&lt;br&gt;
// terryP (reference to "terryP" object)&lt;br&gt;
// series (reference to "series" array)&lt;/p&gt;

&lt;p&gt;// Memory heap:&lt;br&gt;
//  {&lt;br&gt;
//    firstName: 'Terry',&lt;br&gt;
//    lastName: 'Pratchett',&lt;br&gt;
//    profession: 'author&lt;br&gt;
//  }&lt;br&gt;
//  function introduceTerry() {&lt;br&gt;
//    return &lt;code&gt;Hi, my name is ${terryP.firstName}.&lt;/code&gt;&lt;br&gt;
// }&lt;br&gt;
//  ['Discworld', 'Johnny Maxwell', 'Long Earth']&lt;/p&gt;

&lt;p&gt;// NOTE:&lt;br&gt;
// the "terryP" in stack points&lt;br&gt;
// to the "terryP" object in memory heap&lt;br&gt;
// the "introduceTerry" in stack points&lt;br&gt;
// to introduceTerry() function in memory heap&lt;br&gt;
// the "series" in stack points&lt;br&gt;
// to the "series" array in memory heap&lt;br&gt;
// arrays are objects in JavaScript&lt;br&gt;
Stack, heap and references&lt;br&gt;
When you create a variable and assign it a primitive value, it will be stored in stack. Something different happens when you try the same, but with an object. If you declare a variable and assign it an object, two things will happen. First, JavaScript will allocate memory in stack for that variable.&lt;/p&gt;

&lt;p&gt;When it comes to the object itself, JavaScript will store it in the memory heap. That variable that exists in the stack will only point to this object in memory heap. That variable will be a reference to this object. You can think of references as shortcuts, or aliases, for existing things.&lt;/p&gt;

&lt;p&gt;These references are not those things themselves. They are only links to those "real" things. You can use those links to access those things they reference (they are linked to) and manipulate with them.&lt;/p&gt;

&lt;p&gt;// Declare variable and assign it an object&lt;br&gt;
// The "cat" variable will be stored in stack&lt;br&gt;
// It will hold the reference to the "cat" object&lt;br&gt;
const cat = {&lt;br&gt;
  name: 'Kitty'&lt;br&gt;
  breed: 'Abyssinian'&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;// The "cat" object itself will be stored in memory heap.&lt;/p&gt;

&lt;p&gt;// Memory heap:&lt;br&gt;
//  {&lt;br&gt;
//    name: 'Kitty',&lt;br&gt;
//    breed: 'Abyssinian'&lt;br&gt;
//  }&lt;br&gt;
Copying objects and primitives&lt;br&gt;
This is also why creating copies of objects is not actually that simple in JavaScript. Trying to create a copy of an object stored in a variable by referencing it will not create real copy. It will not copy the object itself. It will copy only reference to that object. This is called shallow copy.&lt;/p&gt;

&lt;p&gt;When you then change the original object, the copy will change as well. This is because there is still only one object. However, there are two references (aliases or links) to that one object. When you use one of these references to change the object, the other reference still points to the same object, the one you just changed.&lt;/p&gt;

&lt;p&gt;// Declare a variable and assign it an object&lt;br&gt;
const bookShelf = {&lt;br&gt;
  read: 'Colour Of Magic',&lt;br&gt;
  reading: 'Night Watch',&lt;br&gt;
  toRead: 'Going Postal'&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;// Create a copy of the "bookShelf"&lt;br&gt;
const newBookShelf = bookShelf&lt;/p&gt;

&lt;p&gt;// Update the "bookShelf"&lt;br&gt;
bookShelf.reading = 'Mort'&lt;br&gt;
bookShelf.justFinished = 'Night Watch'&lt;/p&gt;

&lt;p&gt;// Log the value of "bookShelf"&lt;br&gt;
console.log(bookShelf)&lt;br&gt;
// Output:&lt;br&gt;
// {&lt;br&gt;
//   read: 'Colour Of Magic',&lt;br&gt;
//   reading: 'Mort',&lt;br&gt;
//   toRead: 'Going Postal',&lt;br&gt;
//   justFinished: 'Night Watch'&lt;br&gt;
// }&lt;/p&gt;

&lt;p&gt;// Log the value of "newBookShelf"&lt;br&gt;
// Since "newBookShelf" and "bookShelf"&lt;br&gt;
// points to the same object&lt;br&gt;
// the output will be the same&lt;br&gt;
console.log(newBookShelf)&lt;br&gt;
// Output:&lt;br&gt;
// {&lt;br&gt;
//   read: 'Colour Of Magic',&lt;br&gt;
//   reading: 'Mort',&lt;br&gt;
//   toRead: 'Going Postal',&lt;br&gt;
//   justFinished: 'Night Watch'&lt;br&gt;
// }&lt;br&gt;
This will not happen when you try to copy primitive value. When you try to copy primitive value, and you change the original, the copy will remain unchanged. The reason: there are no references. You are creating real copies and you are working directly with those copies.&lt;/p&gt;

&lt;p&gt;// Declare a variable with some primitive value&lt;br&gt;
let book = 'Guards! Guards! (Paperback)'&lt;/p&gt;

&lt;p&gt;// Create a copy of the "book"&lt;br&gt;
const bookToRead = book&lt;/p&gt;

&lt;p&gt;// Update the value of "book"&lt;br&gt;
book = 'Guards! Guards! (Kindle Edition)'&lt;/p&gt;

&lt;p&gt;// Log the value of "book"&lt;br&gt;
// This will log the updated value&lt;br&gt;
console.log(book)&lt;br&gt;
// Output:&lt;br&gt;
// 'Guards! Guards! (Kindle Edition)'&lt;/p&gt;

&lt;p&gt;// Log the value of "bookToRead"&lt;br&gt;
// This will log the old value because the "bookToRead"&lt;br&gt;
// is a real copy of "book"&lt;br&gt;
console.log(bookToRead)&lt;br&gt;
// Output:&lt;br&gt;
// 'Guards! Guards! (Paperback)'&lt;br&gt;
Creating a real copy, deep copy, is a bit more complicated. One option, less effective one, is writing that object from again scratch. Another option is using Object.assign(). Another one is using combination of JSON.parse() and JSON.stringify().&lt;/p&gt;

&lt;p&gt;// Declare a variable and assign it an object&lt;br&gt;
const bookShelf = {&lt;br&gt;
  read: 'Colour Of Magic',&lt;br&gt;
  reading: 'Night Watch',&lt;br&gt;
  toRead: 'Going Postal'&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;// Create a copy of the "bookShelf"&lt;br&gt;
const newBookShelf = Object.assign({}, bookShelf)&lt;/p&gt;

&lt;p&gt;// Update the "bookShelf"&lt;br&gt;
bookShelf.reading = 'Mort'&lt;br&gt;
bookShelf.justFinished = 'Night Watch'&lt;/p&gt;

&lt;p&gt;// Log the value of "bookShelf"&lt;br&gt;
console.log(bookShelf)&lt;br&gt;
// Output:&lt;br&gt;
// {&lt;br&gt;
//   read: 'Colour Of Magic',&lt;br&gt;
//   reading: 'Mort',&lt;br&gt;
//   toRead: 'Going Postal',&lt;br&gt;
//   justFinished: 'Night Watch'&lt;br&gt;
// }&lt;/p&gt;

&lt;p&gt;// Log the value of "newBookShelf"&lt;br&gt;
// The output will be different this time&lt;br&gt;
// because the "newBookShelf" points&lt;br&gt;
// to a different object than the "bookShelf"&lt;br&gt;
console.log(newBookShelf)&lt;br&gt;
// Output:&lt;br&gt;
// {&lt;br&gt;
//   read: 'Colour Of Magic',&lt;br&gt;
//   reading: 'Night Watch',&lt;br&gt;
//   toRead: 'Going Postal'&lt;br&gt;
// }&lt;br&gt;
The call stack&lt;br&gt;
Chances are that you've already heard about something called "call stack". This is not the same as the stack we previously discussed in this tutorial. As you know, stack is a place JavaScript uses to store variables assigned with primitive values. Call stack is something different.&lt;/p&gt;

&lt;p&gt;Call stack is a mechanism JavaScript uses to keep track of functions. When you call a function JavaScript will add that function to the call stack. If this function calls another function, JavaScript will add that function to the call stack as well, above the first function.&lt;/p&gt;

&lt;p&gt;This process will repeat with any other function that will be called by the previous function. When one function is finished, JavaScript will remove that function from the call stack. There are two important things. The first thing is that every new function in the stack will be added to the top of the call stack.&lt;/p&gt;

&lt;p&gt;The second thing is that the call stack is executed from the top to the bottom. The last function added to the stack will be executed as first. The first function added to the stack will be executed as last. This is also called LIFO principle (Last-In-First-Out). Let's illustrate this in code on one simple example.&lt;/p&gt;

&lt;p&gt;function myFuncOne() {&lt;br&gt;
  return 'This is the end.'&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function myFuncTwo() {&lt;br&gt;
  myFuncOne()&lt;/p&gt;

&lt;p&gt;return 'Knock knock.'&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;// Call stack is still empty here&lt;/p&gt;

&lt;p&gt;myFuncTwo()&lt;/p&gt;

&lt;p&gt;// Call stack:&lt;br&gt;
// Step 1: myFuncTwo() is invoked&lt;br&gt;
// Step 2: myFuncTwo() added to the call stack&lt;br&gt;
// Step 3: myFuncTwo() calls myFuncOne()&lt;br&gt;
// Step 4: myFuncOne() is added to the call stack&lt;br&gt;
// Step 5: myFuncOne(), is executed&lt;br&gt;
// Step 6: myFuncOne() removed from the stack&lt;br&gt;
// Step 7: JavaScript goes back to myFuncTwo()&lt;br&gt;
// Step 8: any code left inside myFuncTwo() after myFuncOne() call is executed&lt;br&gt;
// Step 9: myFuncTwo() is removed from the stack&lt;br&gt;
// Step 10: call stack is empty&lt;br&gt;
Conclusion: Memory Life cycle, Heap, Stack and Call Stack in JavaScript&lt;br&gt;
Memory life cycle, heap, stack and call stack are topics that are not discussed that often. There is not much material one can use to learn more about them. I hope that this tutorial helped you understand what memory life cycle, heap, stack and call stack are and how they work.&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>react</category>
      <category>javascrip</category>
    </item>
  </channel>
</rss>
