diff --git a/.gitignore b/.gitignore index 32d54b2..7ca3c2f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /public* +.idea* diff --git a/README.md b/README.md index e877dfc..8537115 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![wercker status](https://app.wercker.com/status/869c3599ae2b088beafa8aeca93b1483/s/master "wercker status")](https://app.wercker.com/project/byKey/869c3599ae2b088beafa8aeca93b1483) -# [TutsWiki.com](http://tutswiki.com) +# [TutsWiki.com](https://tutswiki.com) Collaborative tutorials for the internet ![collaborate](https://github.com/TutsWiki/source/blob/master/static/img/collaborate.png "Collaborate") diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..034e848 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,21 @@ +# Security Policy + +## Supported Versions + +Use this section to tell people about which versions of your project are +currently being supported with security updates. + +| Version | Supported | +| ------- | ------------------ | +| 5.1.x | :white_check_mark: | +| 5.0.x | :x: | +| 4.0.x | :white_check_mark: | +| < 4.0 | :x: | + +## Reporting a Vulnerability + +Use this section to tell people how to report a vulnerability. + +Tell them where to go, how often they can expect to get an update on a +reported vulnerability, what to expect if the vulnerability is accepted or +declined, etc. diff --git a/ads.txt b/ads.txt new file mode 100644 index 0000000..fb8654a --- /dev/null +++ b/ads.txt @@ -0,0 +1 @@ +google.com, pub-9878675755379402, DIRECT, f08c47fec0942fa0 \ No newline at end of file diff --git a/archetypes/default.md b/archetypes/default.md index 6d6497c..00e77bd 100644 --- a/archetypes/default.md +++ b/archetypes/default.md @@ -1,6 +1,6 @@ -+++ -weight = 5 -[menu] - [menu.main] - parent = "x" -+++ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +--- + diff --git a/config.toml b/config.toml index 5364e09..35ad52b 100644 --- a/config.toml +++ b/config.toml @@ -1,16 +1,79 @@ -baseurl = "http://tutswiki.com/" -MetaDataFormat = "yaml" -disableHugoGeneratorInject = true - +baseURL = "https://tutswiki.com/" +languageCode = "en-us" +title = "TutsWiki Beta" +theme = "tutswiki-theme-v2" +disqusShortname = "tutswiki" +# For search functionnality +[outputs] +home = [ "HTML", "RSS", "JSON"] +[markup] + defaultMarkdownHandler = "blackfriday" [params] - description = "Collaborative tutorials for the internet" - author = "Chankey Pathak (@chankeypathak)" + # Prefix URL to edit current page. Will display an "Edit this page" button on top right hand corner of every page. + # Useful to give opportunity to people to create merge request for your doc. + # See the config.toml file from this documentation site to have an example. + editURL = "https://github.com/TutsWiki/source/edit/master/content/" + # Author of the site, will be used in meta information + author = "Chankey Pathak" + # Description of the site, will be used in meta information + description = "TutsWiki :: Collaborative tutorials for the internet" + # Shows a checkmark for visited pages on the menu + showVisitedLinks = false + # Disable search function. It will hide search bar + disableSearch = false + # Javascript and CSS cache are automatically busted when new version of site is generated. + # Set this to true to disable this behavior (some proxies don't handle well this optimization) + disableAssetsBusting = false + # Set this to true to disable copy-to-clipboard button for inline code. + disableInlineCopyToClipBoard = true + # A title for shortcuts in menu is set by default. Set this to true to disable it. + disableShortcutsTitle = false + # When using mulitlingual website, disable the switch language button. + disableLanguageSwitchingButton = true + # Order sections in menu by "weight" or "title". Default to "weight" + ordersectionsby = "weight" + # Change default color scheme with a variant one. Can be "red", "blue", "green". + themeVariant = "" + +[[Languages.en.menu.shortcuts]] +name = " Tags" +url = "/tags/" +weight = 5 + +[[Languages.en.menu.shortcuts]] +name = " GitHub" +identifier = "ds" +url = "https://github.com/TutsWiki/source/" +weight = 10 + +[[Languages.en.menu.shortcuts]] +name = " Credits" +url = "https://github.com/TutsWiki/source/graphs/contributors/" +weight = 30 -[taxonomies] - tag = "tags" - group = "groups" +[[Languages.en.menu.shortcuts]] +name = " Facebook" +url = "https://www.facebook.com/TutsWiki/" +weight = 30 -[[menu.main]] - name = "Pandas Cookbook" - identifier = "pandas" - weight = -100 +[privacy] + [privacy.disqus] + disable = false + [privacy.googleAnalytics] + anonymizeIP = false + disable = false + respectDoNotTrack = false + useSessionStorage = false + [privacy.instagram] + disable = false + simple = false + [privacy.twitter] + disable = false + enableDNT = false + simple = false + [privacy.vimeo] + disable = false + simple = false + [privacy.youtube] + disable = false + privacyEnhanced = false diff --git a/content/R/_index.md b/content/R/_index.md new file mode 100644 index 0000000..aaab93b --- /dev/null +++ b/content/R/_index.md @@ -0,0 +1,13 @@ +--- +title: R +weight: 15 +pre: "" +chapter: true +description: A complete guide to R programming language. +--- + +### R + +# Introduction + +A complete guide to R programming language. \ No newline at end of file diff --git a/content/R/average.md b/content/R/average.md new file mode 100644 index 0000000..fe0f546 --- /dev/null +++ b/content/R/average.md @@ -0,0 +1,85 @@ +--- +date: 2020-09-02 +linktitle: Average +menu: + main: + parent: R +next: /r/mean-median-mode +title: Calculating Average (Mean, Median, Mode) in R +weight: 26 +url: /r/average-mean-median-mode +description: In this article we'll look at various measures of central tendencies like mean, median, mode and deviation of various sample values from the central point in the distribution. +keywords: + - R +tags: [R] +--- +Statistics is a branch of mathematics that deals with numerical data analysis. Statistics is the study of the collection, analysis, organization, interpretation and presentation of data. + +R language has been an excellent tool for statistical computation of data which includes statistical modeling, data oriented strategies and use of probability distribution and randomization in analysis. R provides various tools and functions to perform the statistical analysis of data with ease. + +In this article we'll look at various measures of central tendencies like `mean`, `median`, `mode` and `deviation` of various sample values from the central point in the distribution. + +## Average +An average is defined as the number in statistics that measures the central tendency of a given a set of numbers. The various types of averages that will be used in statistical computations are + +- Mean +- Mode +- Median + +Let's have a look at each of these measures of central tendency one by one. + +### Mean +Mean is defined as the sum of all the observations divided by total number of sample observations. The basic formula for the mean of all the observations y1, y2, y3,…yn is given by + +`X = y1+ y2 + y3 + ... + yn / n` + +Let us consider an example of dataset containing 7 datapoints `3, 5, 7, 9, 11, 13, 15` + +The Mean in this case would be `X = (3 + 5 + 7 + 9 + 11 + 13 + 15 ) / 7 = 9` + +R provides an in-built function `mean()` to compute the mean of all values in the dataset. The function takes numeric or integer vector as an argument and returns the result. + +![Mean in R](/images/R/R-mean.png "Mean") + +- `x` is a variable that takes the integer vectors using `c()` function +- The result of `mean(x)` is displayed using `print` + +#### Syntax of mean() +- `mean(x, na.rm)` + +Here, `x` is the numeric/integer vector and `na.rm` is a `Boolean` value to remove `NA` (undefined values) from the given dataset. + +### Mode +Mode is defined as a number in a set of numbers that occurs the most (maximum frequency) in the given dataset. + +Let us consider an example of dataset containing 12 datapoints `2, 4, 6, 4, 9, 5, 4, 2, 4, 4, 2, 6` + +In the above example, 4 has the maximum frequency among the set of numbers. Hence, 4 is the mode of this dataset. + +R does not have an in-built function to compute the mode for a given set of numbers. So, a user defined function is created. + +- `mode(x)` is a user defined function here. +- The body of the function contains call to `unique(x)` function to filter out all the duplicate elements and in the next step `which.max(tabulate(match(x,u)))` is contained in the body to determine the mode of the given dataset. +- `mode(x)` function is then invoked and return value is stored in the variable `result` + +![Mode in R](/images/R/R-mode.png "Mode") + +### Median +Median is defined as the middle value among the set of numbers when all the numbers are sorted. + +- If the total numbers in dataset are odd, the median will lie at `(n+1)/2` location. +- If the total numbers in dataset are even, the medians will lie at `(n/2)` and `(n/2)+1` locations. + +Let us consider an example of dataset containing 9 datapoints `3, 12, 4, 8, 15, 1, 23, 11, 7` + +- Arrange the numbers in ascending order such that the above example looks like `1, 3, 4, 7, 8, 11, 12, 15, 23`. +- Find the middle value, that will be at `(9+1)/2` i.e. at 5th position. Hence, 8 is our median. + +R provides an in-built function `median()` to compute the median or middle value of all values in the dataset. The function takes numeric or integer vector as an argument and returns the median value. + +![Median in R](/images/R/R-median.png "Median") + +- `x` is a variable that takes the integer vectors using `c()` function +- The result of `median(x)` is displayed using `print` + +In the next section we'll look at [Variance](/r/variance) diff --git a/content/R/installation.md b/content/R/installation.md new file mode 100644 index 0000000..f7513a4 --- /dev/null +++ b/content/R/installation.md @@ -0,0 +1,66 @@ +--- +date: 2020-08-22 +linktitle: Installation +menu: + main: + parent: R +next: /r/basic_syntax +title: Installing R and RStudio in Windows & Linux +weight: 2 +url: /r/install-env-setup +description: Detailed steps with screenshots on how to install R and RStudio IDE in Windows, Ubuntu and CentOS. +keywords: + - R +tags: [R] +--- +R is a very popular and most interactive programming language and has been an important toolbox for Data Scientists and Business Analysts. To work and create projects on R, you just need to install two important tools– **R** and **RStudio**. Both of these software work in parallel to create various projects and Markdown Documents in R. + +Installing R to a local computer consists of various easy steps. The steps for installation of R vary with different operating systems like Windows, Linux and MacOS. The official site for the installation [cloud.r-project.org](https://cloud.r-project.org) provides various pre-compiled binary versions and libraries for the above mentioned various operating systems. To install R, you can get the package either from the given official site or can use commands from the terminal or command prompt. In some Linux Distributions, R is installed by default, which you can easily verify by entering R in the console. + +## Installing R in Windows + +There are some steps you need to follow to install R and RStudio. Let's have a look at those steps. + +1. Firstly you have to download R setup by directly clicking on the link https://cloud.r-project.org OR https://cran.r-project.org. You will be directed to a page containing downloads for various operating systems. +![Download R for Windows](/images/R/download-R-windows.png "Download R for Windows") +2. Click on "base" and then click on R for the first time, it will direct you to the page containing the latest version of R. Click on **Download R 4.0.2 for Windows** (This is the latest version as of this writing). +![Download R 4.0.2 for Windows](/images/R/download-R-402-windows.png "Download R 4.0.2 for Windows") +3. Once the download is finished, run the setup file. +4. License information will be displayed on the next screen. R uses GPL license. Click on Next. +![R GPL license](/images/R/R-license.png "R GPL license") +5. Select the path where we want to download our R Software and proceed to Next. ![Download R 4.0.2 for Windows](/images/R/R-install-path.png "Download R 4.0.2 for Windows") +6. Select all the components like 32 bit file, 64 bit file and core files which you want to install and then click on Next. ![R 32 and 64 bit files](/images/R/R-32-64-bit.png "R 32 and 64 bit files") +7. In the next step, we have to select either customized startup or we go on with the default and proceed to Next. +![R customized startup](/images/R/R-customized-startup.png "R customized startup") +8. On clicking next, the installation of R in our system will get started in the designated path. +![R Installing](/images/R/R-installing-step.png "R Installing") +9. At last, we will click on Finish to successfully install R in our system. +![R Setup Finished](/images/R/R-setup-finished.png "R Setup Finished") + +## Installing RStudio IDE in Windows +1. [Download RStudio](https://rstudio.com/products/rstudio/download/) from the official website. +2. Download the free version by clicking on **Download RStudio**. +![R Setup Finished](/images/R/R-studio-various-versions.png "R Setup Finished") +3. In the next step, we will select the appropriate installer. When we select the installer, our downloading of RStudio will take place and setup will start. +![RStudio free version](/images/R/R-studio-free-version.png "RStudio free version") +4. Once the setup file is downloaded, run it and click on Next. +![RStudio Setup](/images/R/R-studio-install.png "RStudio Setup") +5. Click on Install and proceed for extracting files and installing RStudio. +![RStudio Installing](/images/R/R-studio-installing.png "RStudio Installing") +6. Click on Finish at last. +![RStudio Installed](/images/R/R-studio-installed.png "RStudio Installed") +7. Open RStudio from the installed location or lookup in Start Screen. +![RStudio Welcome Screen](/images/R/R-studio-welcome-screen.png "RStudio Welcome Screen") +8. Now as a demonstration, a sample query has been written in the R script (`File` -> `New File` -> `R Script`). The result will appear in the console section below. +![RStudio Hello World](/images/R/R-studio-hello-world.png "RStudio Hello World") + +## Installing R in Ubuntu 20.04/19.04/18.04/16.04 +1. Let's first update the packages +```bash +sudo apt update +sudo apt –y upgrade +``` +2. Once that's done, install **r-base** +```bash +sudo apt –y install r-base +``` diff --git a/content/R/introduction.md b/content/R/introduction.md new file mode 100644 index 0000000..cf21aad --- /dev/null +++ b/content/R/introduction.md @@ -0,0 +1,41 @@ +--- +date: 2020-08-22 +linktitle: Introduction +menu: + main: + parent: R +next: /r/install-env-setup +title: Introduction +weight: 1 +url: /r/introduction +description: A gentle introduction to R programming language. +keywords: + - R +tags: [R] +--- +## What is R? +R is a programming language that is gaining its importance in software development, machine learning and data science. R is free and open source software under GNU General public license and pre-compiled binary versions and libraries are also provided for various operating systems like MAC, Linux and Windows. R provides a software environment for Statistical Modeling of data, Exploratory Data Analysis, Graphics Representation and Reproducible Researches. + +## Evolution of R +R is considered to be the dialect of S language. S language was founded in 1976 by John Chambers and later on at Bell Laboratories as an Internal Statistical Analysis Environment with its implementation of Fortran Libraries. Earlier versions of the language failed in containing various useful functions for Statistical Modeling which led to the development of R language. R Language was founded in 1991 by Ross Ihaka and Robert Gentleman at the University of Auckland, New Zealand, and is currently developed by R Development Core Team. + +## Features of R + +1. R is a well developed, simple and most interactive programming language which includes conditional and looping statements, user defined functions and libraries. +2. R contains a variety of atomic data types like Numeric, Characters, Logical, Integer and Complex and thereby providing integrated and coherent collection of tools for data analysis. +3. R provides a suite of operators for manipulations of array, data frames, vectors, matrices, strings and lists. +4. Functionality is divided into various modular packages available in R. +5. Graphics capabilities are more sophisticated and contain more Stat Packages for Base plotting system, Lattice systems and ggplots systems. +6. R has its very largely active and vibrant user community. + +## Overview of its applications +R has its majority of applications in the field of data science and machine learning algorithms. Some of its applications include: + +- Descriptive Analysis +- Exploratory Data Analysis +- Statistical Inferences +- Predictive Modeling +- Causal and Random Analysis +- Mechanistic Analysis and Reproducible Research + +As a conclusion, R is proving to be world’s most widely used Statistical Programming Language. It is always the first choice of Data Scientists and also deployed in various critical Business Applications. diff --git a/content/R/standard-deviation.md b/content/R/standard-deviation.md new file mode 100644 index 0000000..7d70638 --- /dev/null +++ b/content/R/standard-deviation.md @@ -0,0 +1,38 @@ +--- +date: 2020-09-02 +linktitle: Standard Deviation +menu: + main: + parent: R +next: /r/standard-deviation +title: Calculating Standard Deviation in R +weight: 27 +url: /r/standard-deviation +description: In this section we'll look at how to calculate **Standard Deviation in R**. +keywords: + - R +tags: [R] +--- +In this section we'll look at how to calculate **Standard Deviation in R**. + +It is a measure of spread of statistical data from its mean or average value. It determines how the data is deviated from its central value. In mathematical terms, it is simply defined as the square root of the variance and is denoted by `σ`. + +![Standard Deviation in R](/images/R/R-standard-dev.png?width=10pc "Standard Deviation") + +- The smallest value of the standard deviation is zero since it cannot be negative. +- When the data values are very close to each other, then standard deviation is considered to be very low or zero. Similarly when the data values are apart, the standard deviation is high or far from zero. + +Let's take the same example that we used in last section to calculate [variance](/r/variance) + +- Dataset = `3, 5, 7, 9, 11, 13, 15`. +- Mean = `(3 + 5 + 7 + 9 + 11 + 13 + 15 ) / 7 = 9` +- Squares of deviation = `(3-9)^2 = 36, (5-9)^2 = 16, (7-9)^2 = 4, (9-9)^2 = 0, (11-9)^2 = 4, (13-9)^2 = 16, (15-9)^2 = 36` +- Variance = `(36 + 16 + 4 + 0 + 4 + 16 + 36 ) / 7 = 16` +- Standard Deviation = σ = square root of 16 = 4 + +R provides an in-built function `sd()` to compute the standard deviation of all the data in the dataset from the central point. The function takes numeric or integer vector as an argument and returns the standard deviation value. + +![Standard Deviation in R](/images/R/R-sd.png "sd") + +- `x` is a variable that takes the integer vectors using `c()` function +- The result of `sd(x)` is displayed using `print` diff --git a/content/R/variance.md b/content/R/variance.md new file mode 100644 index 0000000..838d146 --- /dev/null +++ b/content/R/variance.md @@ -0,0 +1,42 @@ +--- +date: 2020-09-02 +linktitle: Variance +menu: + main: + parent: R +next: /r/mean-median-mode +title: Calculating Variance in R +weight: 26 +url: /r/variance +description: In this section we'll look at how to calculate **Variance in R**. Variance is defined as the sum of squares of deviations of the set of numbers from the mean value. +keywords: + - R +tags: [R] +--- +In this section we'll look at how to calculate **Variance in R**. + +Variance is defined as the sum of squares of deviations of the set of numbers from the mean value. It is a measure of how far a set of data are dispersed out from their mean value . It is always a non -negative number. It is generally denoted by sigma squared `σ2` (sigma squared) +![Variance in R](/images/R/R-variance.png?width=10pc "Variance") + +Where + +- `x` = Data set values +- `µ` = Mean value +- `N` = Total number of observations + +Let's have a look at an example that we considered for calculation of mean `3, 5, 7, 9, 11, 13, 15`. + +The mean value in this case is `(3 + 5 + 7 + 9 + 11 + 13 + 15 ) / 7 = 9` + +- Squares of the deviations from the mean value µ is calculated as +`(3-9)^2 = 36, (5-9)^2 = 16, (7-9)^2 = 4, (9-9)^2 = 0, (11-9)^2 = 4, (13-9)^2 = 16, (15-9)^2 = 36` +- Sum all the squares of deviation and divide it by the number of observations `(36 + 16 + 4 + 0 + 4 + 16 + 36 ) / 7 = 16`. Hence the variance in this example is `16`. + +R provides an in-built function `var()` to compute the variance of all data values in the dataset with respect to the mean. The function takes numeric or integer vector as an argument and returns the result. + +![Variance in R](/images/R/R-var.png "var") + +- `x` is a variable that takes the integer vectors using `c()` function +- The result of `var(x)` is displayed using `print` + +In the next section we'll look at [Standard Deviation](/r/standard-deviation) diff --git a/content/blog/_index.md b/content/blog/_index.md new file mode 100644 index 0000000..27ec810 --- /dev/null +++ b/content/blog/_index.md @@ -0,0 +1,7 @@ +--- +title: Blog +weight: 20 +pre: "" +description: Programming articles on Tuts Wiki. Includes Python, Java, Linux, Clojure, NodeJS, GitHub and more. +chapter: false +--- diff --git a/content/blog/angular/angular6-features.md b/content/blog/angular/angular6-features.md new file mode 100644 index 0000000..7c53cf7 --- /dev/null +++ b/content/blog/angular/angular6-features.md @@ -0,0 +1,167 @@ +--- +date: 2018-06-11 +linktitle: Angular 6 features +title: What's new in Angular 6 (Features List) +weight: 10 +url: /angular6-features +description: List of major changes in Angular 6. ng-add, ng-update, material, cdk and starter components. +keywords: + - angular 6 + - angular 6 features + - angular 6 release date + - angular cli + - angular cdk + - bootstrap + - ng update + - ng add + - rxjs + - material + - release notes + - components +tags: [angular] +--- + +[Angular 6](https://angular.io/) is out with all new features. It is a major release in which Angular team has synchronized many of the important framework packages to make most out of cross compatibility. All the major framework packages like [@angular/core](https://angular.io/api/core), [@angular/compiler](https://angular.io/api/core/Compiler), [@angular/common](https://angular.io/api/common) etc., are reworked and released as version 6.0.0. Below is the list of major changes in Angular 6, let's explore them one by one. + +![Angular version 6](/images/Angular6.png "Angular 6.0.0") + +## Angular 6 Features: + - New CLI commands + - ng update + - ng add + - Referencing providers + - Angular Elements + - Angular Material + CDK Components + - Tree + - Badge + - Bottom-Sheet + - Overlay + - Starter Components + - Dashboard + - Side-Nav + - Datatable + - Library Support + - CLI Workspaces + - RxJS v6 + - Long Term Support + +### ng update + +A new command is introduced in Angular CLI which analyzes package.json and recommends any updates (if needed) on the installed packages. + +This is going to make your life easy as now you don't have to manually synchronize your dependencies. This will work using [Schematics](https://blog.angular.io/schematics-an-introduction-dc1dfbc2a2b2), a workflow tool which is based on Tree data structure. For example a tree has base, scripts following schematics will also have a base and that base will be the root structure. Any modification has first have to pass from staging area to make its way to the root. If any of the dependency provide a schematic then it can automatically update your code whenever there are major changes. + +So now if you run ```ng update @angular/common``` it will update the package and run any schematic available for this package. + + + + + +![ng-update in angular 6](/images/ng-update.png "ng-update") + +To get more details on ng update usage, refer the [official specification](https://github.com/angular/angular-cli/blob/master/docs/specifications/update.md). + +### ng add + +This is another CLI command added in Angular 6. This will be helpful in adding new packages to your project. It downloads the packages (with their dependencies) using the package manager and installs them with the help of Schematics. + +```javascript +ng add @angular/material // Install and configure Angular Material +ng add @ng-bootstrap/schematics // Add ng-bootstrap in your application +``` + +![ng-add in angular 6](/images/ng-add.png "ng-add") + +This area will flourish with increase in packages supporting ```ng add```. Refer [Material's ng-add schematic](https://github.com/angular/material2/blob/master/src/lib/schematics/collection.json) to get an idea on how to write one for your application. + +### Referencing Providers + +Before this update we used to reference services from module but with Angular 6 we will reference module from service. + +![Referencing providers in angular 6](/images/referencing-providers.png "Referencing providers") +![Tree Shakable Providers in angular 6](/images/Tree-Shakable-Providers.png "Tree Shakable Providers") + +### Angular Elements + +[@angular/elements](https://angular.io/guide/elements) creates a custom element which acts as a bridge between Angular component interface and change detection functionality to the built-in DOM API. You can bootstrap Angular components with your application and they will be registered as Angular Elements. One of the benefits that you get from this is that it'll dynamically insert HTML code holding Angular components after your application is compiled. + +### Angular Material + CDK Components + +Below are some new components that have been added in Angular 6. + + - **Tree:** It is based on datatable component and is best suited for representing hierarchical data. CDK contains the core tree directive (cdk-tree) whereas mat-tree comes with Material design style. See [this presentation](https://docs.google.com/presentation/d/1DmWdfr8j25owK2ac5qlt7oeX6HpxQnXEGwmHIjf6EHI/edit#slide=id.g26d86d3325_0_0) from [ng conf 2018](https://www.ng-conf.org/sessions/) to get more details on Material Trees. + +![cdk mat tree in Angular 6](/images/cdktree-matree-Angular.png "Nested Tree") + + - **Badge:** This component can be used to display a small piece of information such as notification count on notification drawer, unread emails count over the email icon etc. + +![Badges in Angular 6](/images/Badges-Angular-6.png "Badges") + + - **Bottom-Sheet:** This component is mobile-centric which can be used to present a list of options for a particular action. It appears from the bottom of the viewport (with slide-up animation). + +![Bottom Sheet Angular 6](/images/Bottom-Sheet-Angular-6.png "Bottom-Sheet") + + - **Overlay:** ```@angular/cdk/overlay``` has been updated with a new positioning logic which helps in creating intelligent pop-ups that remain on the screen in all situations. + +### Starter Components + +With Angular 6 you get 3 new starter components after running ```ng add @angular/material```. With this update in place, it's very easy to create simple UI. + + - Create a dashboard + +```javascript +ng generate @angular/material:material-dashboard --name=test-dashboard +``` +![dashboard in Angular 6](/images/dashboard.png "Material Dashboard") + + - Create side navigation + +```javascript +ng generate @angular/material:material-nav --name=test-nav +``` +![side navigation in Angular 6](/images/side-navigation.png "side navigation") + + - Create a datatable + +```javascript +ng generate @angular/material:material-table --name=test-table +``` +![material datatable in Angular 6](/images/datatable.png "datatable") + +### Library Support + +Library support has been added in 6.0.0. You can easily create a library using below command. [See details](https://github.com/angular/angular-cli/wiki/stories-create-library). + +```javascript +ng generate library +``` + +### CLI Workspaces + +CLI can now support workspaces with multiple projects. ```angular-cli.json``` has been renamed to ```angular.json```. Each workspace can have multiple projects, each project can have targets and each target can have a configuration. + +![CLI workspaces in Angular 6](/images/cli-workspaces.png "CLI workspaces") + +### RxJS v6 + +Angular 6 supports [RxJS v6](https://rxjs-dev.firebaseapp.com/). RxJS v6 ensures that only those modules are bundled in production that are being used by your application. If you are moving from the previous version to Angular 6 then you have to change import statements and operator usage to make your application work. But if you don't want to change then you can use this new package ```rxjs-compat``` which provides backward compatibility. + +### Long Term Support + +Angular team announced to provide long-term support for all major releases starting from version 4. LTS will include 6 months of active development + 12 months of security patches and critical bug fixes. + +### Other Changes: + + - ```