<?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: JohnOdhiambo</title>
    <description>The latest articles on DEV Community by JohnOdhiambo (@johnodhiambo).</description>
    <link>https://dev.to/johnodhiambo</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%2F923584%2Fc7d86b2c-00fa-46c4-afa4-d9bf2a48f05d.png</url>
      <title>DEV Community: JohnOdhiambo</title>
      <link>https://dev.to/johnodhiambo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/johnodhiambo"/>
    <language>en</language>
    <item>
      <title>Run Docker on WSL without Docker Desktop</title>
      <dc:creator>JohnOdhiambo</dc:creator>
      <pubDate>Fri, 03 Oct 2025 09:14:25 +0000</pubDate>
      <link>https://dev.to/johnodhiambo/run-docker-on-wsl-without-docker-desktop-123f</link>
      <guid>https://dev.to/johnodhiambo/run-docker-on-wsl-without-docker-desktop-123f</guid>
      <description>&lt;p&gt;You need to have first install WSL and Ubuntu, Debian or any other Linux Distribution of your preference on your windows computer.&lt;br&gt;
To install the Docker Community Engine, run the following scripts&lt;/p&gt;

&lt;h1&gt;
  
  
  Update your package lists and upgrade existing packages
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;$ sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Install necessary packages to allow apt to use repositories over HTTPS
&lt;/h1&gt;

&lt;p&gt;$** sudo apt install apt-transport-https ca-certificates curl software-properties-common -y**&lt;/p&gt;

&lt;h1&gt;
  
  
  🐳 Download and save Docker’s official GPG key
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;$ curl -fsSL &lt;a href="https://download.docker.com/linux/ubuntu/gpg" rel="noopener noreferrer"&gt;https://download.docker.com/linux/ubuntu/gpg&lt;/a&gt; | \&lt;br&gt;
    sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  🐳 Add Docker’s stable repository to your APT sources list
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \&lt;br&gt;
&lt;a href="https://download.docker.com/linux/ubuntu" rel="noopener noreferrer"&gt;https://download.docker.com/linux/ubuntu&lt;/a&gt; $(lsb_release -cs) stable" | \&lt;br&gt;
    sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Update package index again, now with Docker packages included
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;$ sudo apt update&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  🐳 Finally, install the Docker Engine
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;$ sudo apt install docker-ce -y&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>tutorial</category>
      <category>linux</category>
      <category>devops</category>
    </item>
    <item>
      <title>Docker Components</title>
      <dc:creator>JohnOdhiambo</dc:creator>
      <pubDate>Mon, 23 Sep 2024 13:30:41 +0000</pubDate>
      <link>https://dev.to/johnodhiambo/docker-components-54n1</link>
      <guid>https://dev.to/johnodhiambo/docker-components-54n1</guid>
      <description>&lt;p&gt;Docker is an open-source platform that leverages containerization to enable automated deployment, scalability, and management of applications. It provides an easy way to package an application with all its dependencies into a container (a standardized entity).&lt;/p&gt;

&lt;p&gt;Docker streamlines application deployment by encapsulating applications and their dependencies into standardized, scalable and isolated containers(containerization).&lt;br&gt;
&lt;u&gt;&lt;strong&gt;Main Components of Docker&lt;/strong&gt;&lt;br&gt;
&lt;/u&gt;&lt;strong&gt;Docker Images&lt;/strong&gt;&lt;br&gt;
Read-only templates that are used to build containers. Images are created with Dockerfile instructions or can be downloaded from a Dockery registry like Docker Hub.&lt;br&gt;
&lt;strong&gt;Container&lt;/strong&gt;&lt;br&gt;
An instance of an image. It’s a lightweight, standalone package that includes everything needed to run an application.&lt;br&gt;
&lt;strong&gt;Dockerfile&lt;/strong&gt;&lt;br&gt;
A script-like that defines the steps to create a Docker image.&lt;br&gt;
&lt;strong&gt;Docker Engine&lt;/strong&gt;&lt;br&gt;
The docker engine is responsible for running and managing containers. It’s composed of the docker daemon and docker CLI that communicates through REST API.&lt;br&gt;
&lt;strong&gt;Docker Daemon&lt;/strong&gt;&lt;br&gt;
The daemon is a persistent background service responsible for managing objects. It does so via listening for API requests. Docker objects include images, containers, networks and storage volumes.&lt;br&gt;
&lt;strong&gt;Docker registry&lt;/strong&gt;&lt;br&gt;
These are repositories where docker images are stored and can be distributed from. Docker registries can be public or private. Docker hub is the default public registry that Docker is configured with.&lt;br&gt;
&lt;strong&gt;Docker network&lt;/strong&gt;&lt;br&gt;
Containers run on networks allowing them to communicate with each other and the outside world. The network provides the communication gateway between containers running on the same/ different hosts.&lt;br&gt;
&lt;strong&gt;Volumes&lt;/strong&gt;&lt;br&gt;
Allow data to persist outside of a container and to be shared between container instances, even after a container is deleted. Volumes decouple data life from the container lifecycle. The components listed above all tie together to produce a simple system for developers to automate the deployment, scaling and management of applications. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>AWS Services</title>
      <dc:creator>JohnOdhiambo</dc:creator>
      <pubDate>Mon, 30 Oct 2023 10:51:33 +0000</pubDate>
      <link>https://dev.to/johnodhiambo/aws-services-2iof</link>
      <guid>https://dev.to/johnodhiambo/aws-services-2iof</guid>
      <description>&lt;p&gt;&lt;strong&gt;Architecture Skeleton&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1GwjWSZ8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eow72mxr9rt5tvcuf7di.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1GwjWSZ8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eow72mxr9rt5tvcuf7di.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Services Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--egYLHdru--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hqg0ee1xw6yzo7y4kfaq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--egYLHdru--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hqg0ee1xw6yzo7y4kfaq.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Virtual Private Network&lt;/u&gt; - Private network in AWS to manage public network for web server and load balancers and a private network for databases.&lt;br&gt;
&lt;u&gt;Elastic Load Balancer (ELB)&lt;/u&gt; - distribute incoming traffic to multiple back-end EC2 machines. &lt;br&gt;
&lt;u&gt;Route53&lt;/u&gt; - DNS service for mapping domain name to load balancer. &lt;br&gt;
&lt;u&gt;EC2 Machines&lt;/u&gt; - VMs &lt;br&gt;
&lt;u&gt;EBS Disk (Elastic Block Storage) &lt;/u&gt; - have a limitation of maximum size. EC2 and EBS address the VMs that typically deploy the applications on web and app servers.&lt;br&gt;
&lt;u&gt;RDB&lt;/u&gt; - service for Relational Databases&lt;br&gt;
&lt;u&gt;DynamoDB&lt;/u&gt; - service for NoSQL DB&lt;br&gt;
&lt;u&gt;ElastiCache&lt;/u&gt; - for DB Caches that comes with REDIS and memcached engines.&lt;br&gt;
&lt;u&gt;S3 (Simple Storage Service)&lt;/u&gt; - for external storage.&lt;br&gt;
&lt;u&gt;Rekognition&lt;/u&gt; - Content filter service&lt;br&gt;
&lt;u&gt;Lambda&lt;/u&gt; - video converter e.g. MP4 to a different mobile friendly format.&lt;br&gt;
&lt;u&gt;Kinesis&lt;/u&gt; - for click stream data analysis and store in S3&lt;br&gt;
&lt;u&gt;EMR &lt;/u&gt;- service for Spark/Hadoop platform. It does operations like aggregation, sorting and run distributed jobs like SPARC, Flink jobs.&lt;br&gt;
&lt;u&gt;Glue&lt;/u&gt; - service that converts data from DynamoDB into different format data cataloging and further do some data processing using EMR. Extract, transform and load operations (ETL).&lt;br&gt;
&lt;u&gt;Redshift&lt;/u&gt; - data warehouse service for storing data after it's been processed.&lt;br&gt;
&lt;u&gt;Amazon Quicksight&lt;/u&gt; - BI tool for analysis and seeing the results. **Athana **is an SQL query interface to pull data from S3, perform an SQL operation and view the results in Quicksight. One can also build some graphs, charts and get insights of data. &lt;br&gt;
&lt;u&gt;CloudFront&lt;/u&gt; - content delivery network service which can cache static content or one's data in edge locations which are across cities. When one uses CloudFront service, all your data from S3 service or wherever you store your data it gets your data cached in the nearest edge location from where the user is coming.&lt;br&gt;
&lt;u&gt;SNS (Simple Network Service) &lt;/u&gt; - SMS Mobile Push Notifications service.&lt;br&gt;
&lt;u&gt;SES (Simple Email Service) &lt;/u&gt; - &lt;br&gt;
&lt;u&gt;SQS (Simple Queue Service) &lt;/u&gt; - for messaging queues for chatting applications.&lt;br&gt;
&lt;u&gt;CloudWatch&lt;/u&gt; - to monitor all the infrastructure and how EC2 instances are doing, CPU utilization of EC2, database performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Security Services&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Im97HEd_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w59j6givd7kk3t74h5tg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Im97HEd_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w59j6givd7kk3t74h5tg.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;u&gt;IAM (Identity and Access Management)&lt;/u&gt; - manage the authentication and authorization.&lt;br&gt;
&lt;u&gt;KMS (Key Management Service)&lt;/u&gt; - encrypt data that is stored at various storage locations like EBS, S3, EMR, Redshift, Queue messages, Databases etc.&lt;br&gt;
&lt;u&gt;ACM (Amazon Certificate Manager)&lt;/u&gt; - digital certificates to one may deploy on load balancers or CloudFront so that communication is secure.&lt;br&gt;
&lt;u&gt;WAF (Web Application Firewall)&lt;/u&gt; - application firewalls to prevent attacks e.g cross-site scripting, SQL injection, DDoS.&lt;br&gt;
&lt;u&gt;Inspector&lt;/u&gt; - assigns an agent inside your machine and scans for any known vulnerabilities and then it will offer reports. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Development and Deployment Services&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u8xyno_N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nofp0y2s6fxmrrk3g8x0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u8xyno_N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nofp0y2s6fxmrrk3g8x0.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;u&gt;CloudFormation&lt;/u&gt; - takes a template in JSON or YAML template format and create infrastructure from scratch.&lt;br&gt;
&lt;u&gt;CodeCommit&lt;/u&gt; - code repository like Git service for QA, Developers and DevOps to check-in code.&lt;br&gt;
&lt;u&gt;CodeBuild&lt;/u&gt; - service to build a product using some build tool like ant/maven and also perform some unit tests while building and even produce some artifacts. &lt;br&gt;
&lt;u&gt;Codepipeline&lt;/u&gt; - automatically build code, test and deploy into corresponding application servers running in EC2.&lt;br&gt;&lt;br&gt;
&lt;u&gt;Codestar&lt;/u&gt; - integrate with project management tools like Jira, bug-tracking tool. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>SET UP VIRTUAL ENVIRONMENT IN UBUNTU</title>
      <dc:creator>JohnOdhiambo</dc:creator>
      <pubDate>Wed, 09 Aug 2023 09:10:28 +0000</pubDate>
      <link>https://dev.to/johnodhiambo/set-up-virtual-environment-in-ubuntu-364k</link>
      <guid>https://dev.to/johnodhiambo/set-up-virtual-environment-in-ubuntu-364k</guid>
      <description>&lt;p&gt;cd /etc/apache2/sites-available/&lt;/p&gt;

&lt;p&gt;sudo cp 000-default.conf salespro.conf&lt;/p&gt;

&lt;p&gt;sudo vim salespro.conf &lt;/p&gt;

&lt;p&gt;ServerAdmin webmaster@localhost&lt;br&gt;
        DocumentRoot /var/www/html/Salespro&lt;br&gt;
        ServerName servername_example&lt;br&gt;
        &lt;br&gt;
                AllowOverride All&lt;br&gt;
        &lt;/p&gt;

&lt;p&gt;--Add the new servername_example to list of hosts&lt;br&gt;
sudo vim /etc/hosts&lt;br&gt;
    For example, 127.0.0.1 servername_example&lt;/p&gt;

&lt;p&gt;--Enable a new virtual host file&lt;br&gt;
sudo a2ensite salespro.conf&lt;/p&gt;

&lt;p&gt;--Restart the server&lt;br&gt;
sudo systemctl restart apache2&lt;/p&gt;

</description>
    </item>
    <item>
      <title>OZEKI NG SMS Gateway</title>
      <dc:creator>JohnOdhiambo</dc:creator>
      <pubDate>Wed, 09 Aug 2023 09:07:35 +0000</pubDate>
      <link>https://dev.to/johnodhiambo/ozeki-ng-sms-gateway-3m40</link>
      <guid>https://dev.to/johnodhiambo/ozeki-ng-sms-gateway-3m40</guid>
      <description>&lt;p&gt;Install Ozeki from the url &lt;a href="https://ozekisms.com/p_2661-how-to-setup-ozeki-ng-sms-gateway-on-ubuntu-linux.html"&gt;https://ozekisms.com/p_2661-how-to-setup-ozeki-ng-sms-gateway-on-ubuntu-linux.html&lt;/a&gt; for Ubuntu&lt;br&gt;
Other OS installation are also found on the same url.&lt;/p&gt;

&lt;p&gt;--sudo apt-get install mono-*&lt;br&gt;
--sudo apt-get install libmono-winforms2*&lt;br&gt;
--cd /var/lib/&lt;br&gt;
--sudo wget &lt;a href="http://ozekisms.com/attachments/2661/OzekiNG_SMS_Gateway-3.15.6.tgz"&gt;http://ozekisms.com/attachments/2661/OzekiNG_SMS_Gateway-3.15.6.tgz&lt;/a&gt;&lt;br&gt;
--sudo tar -xzvf OzekiNG_SMS_Gateway-3.15.6.tgz&lt;br&gt;
--sudo ln -s OzekiNG_SMS_Gateway-3.15.6 /var/lib/ozeking&lt;br&gt;
--sudo iptables -I INPUT -p tcp --dport 9501 -j ACCEPT&lt;br&gt;
--sudo iptables -I INPUT -p tcp --dport 9010 -j ACCEPT&lt;br&gt;
--cd OzekiNG_SMS_Gateway-3.15.6/&lt;br&gt;
--sudo mono OzekiNG.exe /run&lt;/p&gt;

&lt;p&gt;sudo apt install guake -y&lt;/p&gt;

&lt;p&gt;admin&lt;br&gt;
abc123&lt;/p&gt;

&lt;p&gt;Sample SMPP Connection Details&lt;/p&gt;

&lt;p&gt;host = 30.170.254.90&lt;br&gt;
port = 9010&lt;br&gt;
username = should_created_username&lt;br&gt;
password = should_created_password&lt;br&gt;
system-type = SMPP&lt;br&gt;
smpp-version=34&lt;/p&gt;

</description>
    </item>
    <item>
      <title>R Programming Language</title>
      <dc:creator>JohnOdhiambo</dc:creator>
      <pubDate>Sun, 23 Jul 2023 16:20:55 +0000</pubDate>
      <link>https://dev.to/johnodhiambo/r-programming-language-41da</link>
      <guid>https://dev.to/johnodhiambo/r-programming-language-41da</guid>
      <description>&lt;p&gt;&lt;strong&gt;R&lt;/strong&gt; is a programming language used for statistical analysis, visualization, and other data analysis. As a data analyst, you will use R to complete many of the tasks associated with the data analysis process. Understanding how it works and why you use it is crucial to developing a mastery of data analytics.&lt;/p&gt;

&lt;p&gt;The is a download link for various versions of R studio based on the OS &lt;a href="https://cran.r-project.org/mirrors.html"&gt;https://cran.r-project.org/mirrors.html&lt;/a&gt;&lt;br&gt;
RStudio desktop download page&lt;br&gt;
 &lt;a href="https://posit.co/download/rstudio-desktop/#download"&gt;https://posit.co/download/rstudio-desktop/#download&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open the R console where you can write and execute commands. You can write simple commands in the command prompt such as &lt;strong&gt;print ("Hey Jay")&lt;/strong&gt; or &lt;strong&gt;1 + 2&lt;/strong&gt; &lt;br&gt;
Enter a &lt;strong&gt;quit()&lt;/strong&gt; command to quit or type &lt;strong&gt;q()&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Packages&lt;/strong&gt; &lt;br&gt;
 Units of reproducible R code. R community members create packages to keep track of the R functions that they write and reuse. To install a package, the syntax is &lt;strong&gt;install.packages("name_of_package")&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;For instance, &lt;strong&gt;install.packages("tidyverse")&lt;/strong&gt;. Tidyverse is a collection of packages in R with a common design philosophy for data manipulation, exploration, and visualization. Then reload the tidyverse library with the library function everytime you want to start a session. &lt;strong&gt;library(tidyverse)&lt;/strong&gt;&lt;br&gt;
&lt;u&gt;Common tidyverse packages&lt;/u&gt;&lt;br&gt;
&lt;strong&gt;ggplot2&lt;/strong&gt; - used for data visualization, specifically plots.&lt;br&gt;
&lt;strong&gt;tidyr&lt;/strong&gt;- package used for cleaning to make tidy data.&lt;br&gt;
&lt;strong&gt;readr&lt;/strong&gt; - used for importing data. Common function is read_csv.&lt;br&gt;
&lt;strong&gt;dplyr&lt;/strong&gt; - offers a consistent set of functions that help one complete some common data manipulation tasks.E.g select() function&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;?print()&lt;/strong&gt; - helps one learn more about the function in the help window.&lt;br&gt;
&lt;strong&gt;my_variable&lt;/strong&gt; &amp;lt;- "My variable"&lt;br&gt;
&lt;strong&gt;my_variable&lt;/strong&gt; &amp;lt;- 2.23&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vector&lt;/strong&gt; - group of data elements of same type stored in a sequence in R&lt;br&gt;
&lt;strong&gt;vec_variable &amp;lt;- c(10, 45, 78.2)&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;vec_variable&lt;/strong&gt; // execute the variable&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pipe&lt;/strong&gt; - a tool in R for expressing a sequence of multiple operations, represented with "%&amp;gt;%", used to apply the output of one function into another function.&lt;/p&gt;

&lt;p&gt;The most common data structures (a format for organizing and storing data) in R include Vectors, Data frames, Matrices and Arrays.&lt;br&gt;
&lt;strong&gt;Data frames&lt;/strong&gt; is a collection of columns-similar to a spreadsheet or SQL table. Each column has a name at the top that represents a variable and includes one observation per row.&lt;br&gt;
&lt;strong&gt;file.create (“new_csv_file.csv”)&lt;/strong&gt; - create a file.&lt;br&gt;
&lt;strong&gt;unlink (“some_.file.csv”)&lt;/strong&gt; - delete a file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Matrix&lt;/strong&gt; is a two-dimensional collection of data elements. This means it has both rows and columns.&lt;br&gt;
&lt;strong&gt;matrix() function&lt;/strong&gt; - create a matrix&lt;br&gt;
&lt;strong&gt;matrix(c(3:8), nrow = 2)&lt;/strong&gt; - creates a two rows by three columns matrix containing the values 3-8, nrow=2 specifies the number of rows.&lt;/p&gt;

&lt;p&gt;The examples of types of &lt;strong&gt;date/time data in R&lt;/strong&gt; are 06:11:13 UTC, 2019-04-16, and 2018-12-21 16:35:28 UTC. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CRAN&lt;/strong&gt; is a commonly used online archive with R packages and other resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;data("dataset_name"&lt;/strong&gt;) - to load a dataset.&lt;br&gt;
&lt;strong&gt;View(dataset_name)&lt;/strong&gt; - to checkout the dataset.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pipe operator (%&amp;gt;%)&lt;/strong&gt;&lt;br&gt;
filtered_toothgrowth &amp;lt;- ToothGrowth %&amp;gt;%&lt;br&gt;
 filter(dose==0.5) %&amp;gt;%&lt;br&gt;
 group_by(supp) %&amp;gt;%&lt;br&gt;
 arrange(len)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;head(gold)&lt;/strong&gt; - returns a preview of the first 6 rows.&lt;br&gt;
&lt;strong&gt;str(gold)&lt;/strong&gt; - returns the structure of the data frame.&lt;br&gt;
&lt;strong&gt;colnames(gold)&lt;/strong&gt; - returns the column names of the data frame.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;How to create a data frame&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
Here's how this works. First, create a vector of names:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;names&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Peter"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Jennifer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Julie"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Alex"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then create a vector of ages:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;19&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;21&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;25&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With these two vectors, you can create a new data frame called &lt;code&gt;people&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;people&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data.frame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;names&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="o"&gt;**&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;TIBBLES&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;**&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;Tibbles&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;are&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;little&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;different&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;standard&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;frames.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;frame&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;collection&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;columns&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;like&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;spreadsheet&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SQL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;table.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Tibbles&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;are&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;like&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;streamlined&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;frames&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;that&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;are&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;automatically&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pull&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;up&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;only&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;first&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;rows&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;only&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;many&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;columns&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;can&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;fit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;on&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;screen.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Unlike&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;frames&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tibbles&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;never&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;change&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;names&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;your&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;variables&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;types&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;your&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inputs.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;as_tibble&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Used&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tibble&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;existing&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;For&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;example&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;as_tibble&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;gold&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Indometh&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;load&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;specific&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dataset.&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;`read_csv()`&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;.csv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;folder&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;called&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"hotel_bookings.csv"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;it&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;frame&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;called&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;`bookings_df`&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
{r}&lt;br&gt;
bookings_df &amp;lt;- read_csv("hotel_bookings.csv")&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

**&amp;lt;u&amp;gt;Cleaning data example&amp;lt;/u&amp;gt;**
let's say one is primarily interested in the following variables: hotel, is_canceled, lead_time. Create a new data frame with just those columns, calling it `trimmed_df`.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
{r}&lt;br&gt;
trimmed_df &amp;lt;- bookings_df %&amp;gt;% &lt;br&gt;
  select(hotel, is_canceled, lead_time)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Rename the variable 'hotel' to be named 'hotel_type' to be crystal clear on what the data is about:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
{r}&lt;br&gt;
trimmed_df %&amp;gt;% &lt;br&gt;
  select(hotel, is_canceled, lead_time) %&amp;gt;% &lt;br&gt;
  rename(hotel_type = hotel)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
You can also use the`mutate()` function to make changes to your columns. Let's say you wanted to create a new column that summed up all the adults, children, and babies on a reservation for the total number of people. Modify the code chunk below to create that new column: 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
{r}&lt;br&gt;
example_df &amp;lt;- bookings_df %&amp;gt;%&lt;br&gt;
  mutate(guests = adults + children + babies)&lt;/p&gt;

&lt;p&gt;head(example_df)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
**&amp;lt;u&amp;gt;Manually create a Data Frame&amp;lt;/u&amp;gt;**
id &amp;lt;- c(1:10)

name &amp;lt;- c("John Mendes", "Rob Stewart", "Rachel Abrahamson", "Christy Hickman", "Johnson Harper", "Candace Miller", "Carlson Landy", "Pansy Jordan", "Darius Berry", "Claudia Garcia")

job_title &amp;lt;- c("Professional", "Programmer", "Management", "Clerical", "Developer", "Programmer", "Management", "Clerical", "Developer", "Programmer")

employee &amp;lt;- data.frame(id, name, job_title)

**&amp;lt;u&amp;gt;Import data&amp;lt;/u&amp;gt;**

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
{r load dataset from a .csv folder and save it in data frame called hotel_bookings }&lt;br&gt;
hotel_bookings &amp;lt;- read_csv("hotel_bookings.csv")&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

head(hotel_bookings) - preview columns and first 6 rows
View(hotel_bookings)- view the data frame
str/glimpse(hotel_bookings) - to see a summary of each column
arrange(hotel_bookings, desc(lead_time)) - r arrange function descending.
max(hotel_bookings$lead_time) - check out the maximum lead_time without sorting the entire data.

**&amp;lt;u&amp;gt;Benefits of Data cleaning in R&amp;lt;/u&amp;gt;**
Cleaning data in R is done by applying specific cleaning functions that work on the original data without modifying it. We can save the result of our cleaning as a new dataset which will keep the changes but in any case we will keep the initial data as it was, plus we can always see how it has been processed from dirty to clean.

This allows for great traceability of our data, a better understanding the work that has been done for future users and, of course, the possibility to get back to the original dataset whenever we need it. 

On the other hand, the cleaning made in spreadsheets usually overwrites the data and we rely on regularly saving versions of it and documenting the changes as a way of keeping tabs on the process.

The **sd()**, **cor()**, and **mean()** functions can provide a statistical summary of the dataset using standard deviation, correlation, and mean.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
    <item>
      <title>Linux/Ubuntu OS</title>
      <dc:creator>JohnOdhiambo</dc:creator>
      <pubDate>Tue, 18 Jul 2023 08:29:20 +0000</pubDate>
      <link>https://dev.to/johnodhiambo/ubuntu-common-commands-haj</link>
      <guid>https://dev.to/johnodhiambo/ubuntu-common-commands-haj</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;u&gt;Linux File System&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
It helps locate files swiftly, troubleshoot issues more effectively, and makes you a proficient developer or system administrator.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6q9OgtCr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xzelffjpfwwo9f1gw8xe.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6q9OgtCr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xzelffjpfwwo9f1gw8xe.jpg" alt="Image description" width="800" height="977"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;/Root&lt;/strong&gt;&lt;br&gt;
 &lt;strong&gt;/bin&lt;/strong&gt;: Binaries - This directory holds the essential user command binaries that all users can access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/sbin&lt;/strong&gt;: System Binaries - Contains the essential binaries used by the system administrator for system maintenance and troubleshooting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/etc&lt;/strong&gt;: System Configuration - Houses the system configuration files, acting as the control panel on Linux.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/dev&lt;/strong&gt;: Device Files - Home to all device files, such as hard disks, USB, CD-ROM, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/proc&lt;/strong&gt;: Process Information - A virtual directory detailing system and process information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/var&lt;/strong&gt;: Variable Files - This is the variable data directory storing changing data like logs, mails, print spools, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/tmp&lt;/strong&gt;: Temporary Files - This directory stores temporary files created by the system and users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/usr&lt;/strong&gt;: User Binaries - Contains multi-user utilities, applications, and libraries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/home&lt;/strong&gt;: User Home Directories - Contains the home directories for users and other accounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/lib&lt;/strong&gt;: System Libraries - Houses library files that are needed by the system and the users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/opt&lt;/strong&gt;: Optional Software - Stores optional or additional software from vendors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/mnt&lt;/strong&gt;: Mount Directory - Used for mounting other temporary file systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/media&lt;/strong&gt;: Removable Media - Acts as a temporary mount directory for removable devices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/srv&lt;/strong&gt;: Service Data - This directory contains server-specific services related data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/boot&lt;/strong&gt;: Boot Files - Contains boot loader related files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/root&lt;/strong&gt;: Root Home - This is the home directory for the root user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/run&lt;/strong&gt;: Application Information - A tmpfs file system that contains application information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/usr/local&lt;/strong&gt;: User Local - Contains user's programs that are installed from the source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;/lib64&lt;/strong&gt;: 64-bit Libraries - This is where the 64-bit library files are stored&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt; General Commands&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;pwd&lt;/strong&gt; - Generate file/folder path&lt;br&gt;
&lt;strong&gt;touch file_name&lt;/strong&gt;   - Create a file&lt;br&gt;
&lt;strong&gt;mkdir folder_name&lt;/strong&gt; - Create a folder&lt;br&gt;
&lt;strong&gt;Ctrl + O&lt;/strong&gt; - Save&lt;br&gt;
&lt;strong&gt;Ctrl + C&lt;/strong&gt; - Cancel&lt;br&gt;
&lt;strong&gt;Ctrl + X&lt;/strong&gt; - Quit&lt;br&gt;
&lt;strong&gt;Ctrl + O + M + X&lt;/strong&gt; - Save and move back to terminal&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;sudo rm -rf&lt;/strong&gt;  - Remove a file&lt;br&gt;
&lt;strong&gt;sudo rm -r&lt;/strong&gt; - Remove a folder&lt;br&gt;
&lt;strong&gt;mv folder_name/ destination_folder/folder_name&lt;/strong&gt; - move a folder to the specified destination&lt;br&gt;
&lt;strong&gt;sudo find / -name specified_name&lt;/strong&gt; - find file anywhere with the specified_name&lt;br&gt;
&lt;strong&gt;unzip foldername.zip -d /var/www/html&lt;/strong&gt; - unzip to the specified path&lt;br&gt;
&lt;strong&gt;sudo chown -R $USER /var/log/odoo/&lt;/strong&gt; - grant permission to the logged in user&lt;br&gt;
&lt;strong&gt;sudo chown -R dev /var/log/odoo/&lt;/strong&gt;   - grant permission to a specific user&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;lsof -i :8080&lt;/strong&gt; - List all processes running on the port&lt;br&gt;
&lt;strong&gt;kill 64789&lt;/strong&gt; - Kill a given process&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;My SQL Terminal Commands&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;mysql -u root -p&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;show databases;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;show table $tablName&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;show create table $tablName&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Postgress Terminal Commands&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;sudo service postgresql restart&lt;br&gt;
**&lt;br&gt;
**sudo -u postgres psql&lt;/strong&gt; -d db_name - connect to db you want to use with postgres as user&lt;br&gt;
&lt;strong&gt;\c db_name&lt;/strong&gt; - connect to a different db&lt;br&gt;
&lt;strong&gt;\dt&lt;/strong&gt; - tables in a db&lt;br&gt;
&lt;strong&gt;\d table_name *&lt;em&gt;- schema of table&lt;br&gt;
*&lt;/em&gt;\q **- Quit psql&lt;br&gt;
**sudo passwd postgres&lt;/strong&gt;&lt;br&gt;
*&lt;em&gt;sudo passwd -d postgres&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;sudo -u postgres psql -c "\l"&lt;/strong&gt; - List all databases&lt;br&gt;
&lt;strong&gt;sudo -u odoo psql -d odoo&lt;/strong&gt; - Use a specific DB&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;sudo -u postgres psql -c "CREATE USER steve WITH PASSWORD 'password';"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;sudo -u postgres psql -c "SELECT * FROM pg_user WHERE usename='postuser';"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;sudo -u postgres createuser -sS odoouser&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;sudo -u postgres createuser -s postuser&lt;br&gt;
**&lt;br&gt;
*&lt;em&gt;sudo -u postgres psql -c "SELECT passwd FROM pg_shadow WHERE usename='postuser';"&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
**sudo -u odoo psql -c "ALTER USER odoo WITH PASSWORD 'password';"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;sudo -u postgres psql -c "DROP USER odoouser;"&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Getting Started with GoLang</title>
      <dc:creator>JohnOdhiambo</dc:creator>
      <pubDate>Tue, 28 Mar 2023 14:05:43 +0000</pubDate>
      <link>https://dev.to/johnodhiambo/getting-started-with-golang-19b9</link>
      <guid>https://dev.to/johnodhiambo/getting-started-with-golang-19b9</guid>
      <description>&lt;p&gt;&lt;a href="http://go-database-sql.org/index.html"&gt;http://go-database-sql.org/index.html&lt;/a&gt; -&lt;strong&gt;SQL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://echo.labstack.com/guide/response/"&gt;https://echo.labstack.com/guide/response/&lt;/a&gt; -&lt;strong&gt;Echo Web-Framework&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.golinuxcloud.com/go-gorilla-mux/"&gt;https://www.golinuxcloud.com/go-gorilla-mux/&lt;/a&gt; -&lt;strong&gt;Gorilla Mux Web-Framework&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gorm.io/docs/advanced_query.html"&gt;https://gorm.io/docs/advanced_query.html&lt;/a&gt; -&lt;strong&gt;ORM Library for Go&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install Go from &lt;a href="https://golang.google.cn/doc/install"&gt;https://golang.google.cn/doc/install&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;OR for Ubuntu &lt;a href="https://buildvirtual.net/how-to-install-go-on-ubuntu-20-04/"&gt;https://buildvirtual.net/how-to-install-go-on-ubuntu-20-04/&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Cmd *&lt;em&gt;and type *&lt;/em&gt;&lt;em&gt;$ go version&lt;/em&gt;&lt;/strong&gt; to display the Go version in order to verify that it has been successfully installed.&lt;/li&gt;
&lt;li&gt;Navigate to home directory using &lt;strong&gt;&lt;em&gt;cd %HOMEPATH%&lt;/em&gt;&lt;/strong&gt; command. &lt;/li&gt;
&lt;li&gt;Create a directory for your first Go source code using the commands below
&lt;strong&gt;mkdir test&lt;/strong&gt; then navigate to the folder with &lt;strong&gt;cd test&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enable dependency tracking for your code. When your code imports packages contained in other modules, you manage those dependencies through your code's own module. That module is defined by a go.mod file that tracks the modules that provide those packages. Type the following command for our test directory.
&lt;strong&gt;$ go mod init test/hello&lt;/strong&gt;
go: creating new go.mod: module example/hello&lt;/li&gt;
&lt;li&gt;Create a file test.go where you will write your code.
package main. Below is an example.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   package main
   import "fmt"

   func main() {
     fmt.Println("Hello, Jay!")
   }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Run your code using &lt;strong&gt;&lt;em&gt;$ go run .&lt;/em&gt;&lt;/strong&gt;
The following is displayed- Hello, Jay!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Essential Go Commands&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;
&lt;strong&gt;go mod vendor&lt;/strong&gt; command constructs a directory named vendor in the main module’s root directory that contains copies of all packages needed to support builds and tests of packages in the main module. &lt;br&gt;
It creates the file vendor/modules.txt that contains a list of vendored packages and the module versions they were copied from.&lt;br&gt;
Vendor directories are not used in any module.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;go mod tidy&lt;/strong&gt; command ensures that the go.mod file matches the source code in the module. It adds any missing module requirements necessary to build the current module’s packages and dependencies, and it removes requirements on modules that don’t provide any relevant packages. It also adds any missing entries to go.sum and removes unnecessary entries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;go get github.com/joho/godotenv&lt;/strong&gt; to set up go environment variables&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;go get -u github.com/go-sql-driver/mysql&lt;/strong&gt; to get sql driver package&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;go get github.com/labstack/echo/v4&lt;/strong&gt; to use Echo web framework&lt;/p&gt;

</description>
      <category>essentiallearninglinks</category>
      <category>gettingstartedwithgo</category>
    </item>
    <item>
      <title>Common Git commands</title>
      <dc:creator>JohnOdhiambo</dc:creator>
      <pubDate>Mon, 30 Jan 2023 16:23:10 +0000</pubDate>
      <link>https://dev.to/johnodhiambo/common-git-commands-gb8</link>
      <guid>https://dev.to/johnodhiambo/common-git-commands-gb8</guid>
      <description>&lt;p&gt;&lt;strong&gt;--globally configure username&lt;/strong&gt;&lt;br&gt;
$ git config --global user.name "JohnDoe"&lt;br&gt;
$ git config user.name "JohnDoe"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;--globally configure password&lt;/strong&gt;&lt;br&gt;
$ git config --global user.email "&lt;a href="mailto:johndoe@gmail.com"&gt;johndoe@gmail.com&lt;/a&gt;"&lt;br&gt;
$ git config user.email "&lt;a href="mailto:johndoe@gmail.com"&gt;johndoe@gmail.com&lt;/a&gt;"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;--Navigate to previous directory&lt;/strong&gt;&lt;br&gt;
$ cd ..&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;--navigate to the stated directory&lt;/strong&gt;&lt;br&gt;
$ cd My_Portal/ChannelsPortal&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;--Add a specific file&lt;/strong&gt;&lt;br&gt;
$ git add 'My_Portal_lattest.bak'&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;--Add all files&lt;/strong&gt;&lt;br&gt;
$ git add .&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;--Commit changes&lt;/strong&gt;&lt;br&gt;
$ git commit -m 'Db Commit'&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;--Add to the remote repository&lt;/strong&gt;&lt;br&gt;
$ git remote add origin &lt;a href="https://github.com/JohnDoe/My_APIs.git"&gt;https://github.com/JohnDoe/My_APIs.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;--Push to the master repository&lt;/strong&gt;&lt;br&gt;
$ git push -u origin main&lt;/p&gt;

&lt;p&gt;$ git push origin master --force&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ADD A SINGLE FILE&lt;/strong&gt;&lt;br&gt;
LENOVO@DESKTOP-PIVU MINGW64 /e/Learning/ReactJs (Main)&lt;br&gt;
$ git init&lt;/p&gt;

&lt;p&gt;LENOVO@DESKTOP-PIVU MINGW64 /e/Learning/ReactJs (master)&lt;br&gt;
$ git add 'Intro_To_React.html'&lt;/p&gt;

&lt;p&gt;LENOVO@DESKTOP-PIVU MINGW64 /e/Learning/ReactJs (master)&lt;br&gt;
$ git commit -m "First React Commit:file"&lt;/p&gt;

&lt;p&gt;LENOVO@DESKTOP-PIVU MINGW64 /e/Learning/ReactJs (master)&lt;br&gt;
$ git branch -M main&lt;/p&gt;

&lt;p&gt;LENOVO@DESKTOP-PIVU MINGW64 /e/Learning/ReactJs (main)&lt;br&gt;
$ git remote add origin &lt;a href="https://github.com/JohnDoe/ReactJS.git"&gt;https://github.com/JohnDoe/ReactJS.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LENOVO@DESKTOP-PIVU MINGW64 /e/Learning/ReactJs (main)&lt;br&gt;
$ git push -u origin main&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HOW TO CLONE FROM EXISTING REPO&lt;/strong&gt;&lt;br&gt;
$ git clone &lt;a href="https://https://github.com/JohnDoe/Read.git(url"&gt;https://https://github.com/JohnDoe/Read.git(url&lt;/a&gt; to be cloned)&lt;br&gt;
$ cd name-of-folder&lt;br&gt;
$ git add .&lt;br&gt;
$ git commit "comment"&lt;br&gt;
$ git set-url &lt;a href="https://https://github.com/JohnDoe/Tech.git(url"&gt;https://https://github.com/JohnDoe/Tech.git(url&lt;/a&gt; to your repo)&lt;br&gt;
$ git push -u origin main&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HOW TO ADD AN ENTIRE FOLDER&lt;/strong&gt;&lt;br&gt;
$ git add foldername&lt;br&gt;
$ git commit -m "commit comment"&lt;br&gt;
$ git push&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Running a React App using VSCode and How to Debug React</title>
      <dc:creator>JohnOdhiambo</dc:creator>
      <pubDate>Tue, 10 Jan 2023 10:34:36 +0000</pubDate>
      <link>https://dev.to/johnodhiambo/running-a-react-application-using-visualstudiocode-20pk</link>
      <guid>https://dev.to/johnodhiambo/running-a-react-application-using-visualstudiocode-20pk</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;u&gt;CREATING &amp;amp; RUNNING REACT&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install VS code using the url &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;https://code.visualstudio.com/download&lt;/a&gt; if you do not have it already installed in your machine&lt;/li&gt;
&lt;li&gt;Install NodeJS from this url &lt;a href="https://nodejs.org/en/download/" rel="noopener noreferrer"&gt;https://nodejs.org/en/download/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Create a folder where to want to create the react application.&lt;/li&gt;
&lt;li&gt;You can create the application by either using GitBash or the terminal on VSCode&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Using GitBash:&lt;/u&gt;&lt;/strong&gt; Right click on the folder and select Gitbash here if you have git installed in your computer. Then type the command &lt;strong&gt;npx create-react-app your-name-of-application&lt;/strong&gt; e.g., create-react-app my-reactapp&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Using Terminal on VSCode:&lt;/u&gt;&lt;/strong&gt; Type the command &lt;strong&gt;npx create-react-app your-name-of-application&lt;/strong&gt; and wait for the commands to finish executing.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the folder containing your application in VS code and navigate to &lt;strong&gt;src/app.js&lt;/strong&gt; and write some code.
Below is a sample &lt;strong&gt;App.js&lt;/strong&gt; file after making a few changes
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4nzwq9daucdvpwo35tgg.png" alt="Image description" width="800" height="826"&gt;
&lt;/li&gt;
&lt;li&gt;On the VSCode terminal, navigate to the folder by typing cd foldername for instance &lt;strong&gt;cd my-application&lt;/strong&gt;. &lt;/li&gt;
&lt;li&gt;Type &lt;strong&gt;nmp start&lt;/strong&gt; and the application should launch on the browser as shown below.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxto4acwhyu1pzoi2ivxp.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxto4acwhyu1pzoi2ivxp.JPG" alt="Image description" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;DEBUGGING REACT&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Configure the debugger by going to Run and Debug view &lt;strong&gt;(Ctrl + Shift + D)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select create a &lt;strong&gt;launch.json&lt;/strong&gt; file link to create a launch.json debugger configuration file.&lt;/li&gt;
&lt;li&gt;Select the debugger dropdown list and choose Web App (Edge).&lt;/li&gt;
&lt;li&gt;Change the port of the &lt;strong&gt;url from 8080 to 3000&lt;/strong&gt;. The launch.json file should look as shown below.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5wwtn98jsd6x3fxdh1ge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5wwtn98jsd6x3fxdh1ge.png" alt="Image description" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Press &lt;strong&gt;F5&lt;/strong&gt; or the green arrow with Run to launch the debugger.&lt;/li&gt;
&lt;li&gt;You can set break points as you run the code and step through using &lt;strong&gt;F10&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ai</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>Project management; Overview of what you need to know</title>
      <dc:creator>JohnOdhiambo</dc:creator>
      <pubDate>Thu, 08 Dec 2022 11:02:02 +0000</pubDate>
      <link>https://dev.to/johnodhiambo/project-management-overview-of-what-you-need-to-know-g9j</link>
      <guid>https://dev.to/johnodhiambo/project-management-overview-of-what-you-need-to-know-g9j</guid>
      <description>&lt;p&gt;1.Foundations of Project Management&lt;br&gt;
2.Project Initiation&lt;br&gt;
3.Project Planning&lt;br&gt;
4.Project Execution&lt;br&gt;
5.Agile Project Management&lt;br&gt;
6.Capstone: Applying Project Management in real world&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;&lt;u&gt;COST BENEFIT ANALYSIS&lt;/u&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;-The process of adding up the expected value of a project, the benefits, and comparing them to the dollar costs.&lt;br&gt;
-A cost-benefit analysis can minimize risks and maximize gains for projects and organizations. It can help you communicate clearly with stakeholders and executives and keep your project on track&lt;br&gt;
ROI&lt;br&gt;
-The process of calculating costs and benefits is also called calculating return on investment&lt;br&gt;
(G-C)/C = ROI&lt;br&gt;
G- expected financial gain from the project&lt;br&gt;
C- upfront and ongoing costs of your investment in the project&lt;br&gt;
For example, imagine your project costs $6,000 up front plus $25 per month for 12 months. This equals $300 per year, but you estimate that the project will bring in $10,000 in revenue over the course of that year. Using the formula above, you calculate the ROI as: ($10,000 - $6,300) ÷ $6,300 = 0.58 = 58%&lt;/p&gt;

&lt;p&gt;Customer satisfaction. Will the project increase customer retention, causing them to spend more on the company’s products or services? &lt;/p&gt;

&lt;p&gt;Employee satisfaction. Is the project likely to improve employee morale, reducing turnover? &lt;/p&gt;

&lt;p&gt;Employee productivity. Will the project reduce employee’s overtime hours, saving the company money?&lt;/p&gt;

&lt;p&gt;Brand perception. Is the project likely to improve the company’s brand perception and recognition, attracting more customers or providing a competitive advantage?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;KEY COMPONENTS OF PROJECT INITIATION&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
-Goals&lt;br&gt;
-Scope&lt;br&gt;
-Deliverables&lt;br&gt;
-Success criteria&lt;br&gt;
-Stakeholders&lt;br&gt;
-Resources&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;SMART (Specific, Measurable, Attainable, Relevant, Time-bound) &lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“Office Green will create an app that offers tips and reminders to help customers care for their plants. The app will be completed within 18 months and be compatible with 100% of the types of plants Office Green sells.”&lt;/p&gt;

&lt;p&gt;Specific: The team knows what they’re building: an app that helps users care for their plants and reminds them to do so. &lt;/p&gt;

&lt;p&gt;Measurable: The app will be complete when it includes 100% of the plant types of Office Green sells.&lt;/p&gt;

&lt;p&gt;Attainable: The company has the knowledge, time, resources to build the app. &lt;/p&gt;

&lt;p&gt;Relevant: Office Green’s business model relies on customers caring for their plants successfully. &lt;/p&gt;

&lt;p&gt;Time-bound: The goal includes an 18-month timeframe.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;OBJECTIVES + KEY RESULTS (OKR)&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;
Objectives define what needs to be achieved and describe a desired outcome. Key results define how the project team knows whether or not they have met their objective.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;TRIPPLE CONSTRAINTS&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scope, Time &amp;amp; Cost&lt;/strong&gt; - they affect the output and quality of the project&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;RACI chart&lt;/strong&gt; helps to define roles and responsibilities for individuals or teams to ensure work gets done efficiently. It creates clear roles and gives direction for each team member. There are four types of participation included in a RACI chart. These are: &lt;br&gt;
R: Responsible: who gets the work done&lt;/p&gt;

&lt;p&gt;A: Accountable: who makes sure the work is done&lt;/p&gt;

&lt;p&gt;C: Consulted: who gives input or feedback on work&lt;/p&gt;

&lt;p&gt;I: Informed: who needs to know the outcome&lt;/p&gt;

&lt;p&gt;A project charter clearly defines the project and outlines the necessary details for the project to reach its goals. The charter is the formal way that the project’s goals, values, benefits, and details are captured.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;PROJECT PLANNING&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;
Schedule, budget, and risk management plan&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;COMPONENTS OF A PROJECT PLAN&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
Tasks, milestones, people, documentation and time&lt;/p&gt;

&lt;p&gt;-In addition to the schedule, you should also include the following components in your project plan: &lt;br&gt;
Scope and goals&lt;br&gt;
Work Breakdown Structure (WBS)&lt;br&gt;
Budget &lt;br&gt;
Management plans such as the change management plan, risk management plan, and communication plan&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;WATERFALL METHODOLOGY&lt;/strong&gt;&lt;/u&gt; - Traditional methodology in which tasks and phases are completed in a linear, sequential manner, and each stage of the project must be completed before the next begins.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;AGILE METHODOLOGY&lt;/strong&gt;&lt;/u&gt; - Short phases of collaborative, iterative work with frequent testing and regularly implemented improvements. Scrum and Kanban are examples of Agile frameworks.&lt;br&gt;
&lt;u&gt;Scrum&lt;/u&gt; is an Agile framework that focuses on developing, delivering, and sustaining   complex projects and products through collaboration, accountability, and an iterative   process. It is ideal for projects with rapidly changing requirements, using short sprints.&lt;br&gt;
&lt;u&gt;Kanban&lt;/u&gt; is a tool used in both Agile and Lean approaches that provides visual feedback    about the status of the work in progress through the use of Kanban boards or charts. It represents the team’s tasks with categories like “To do,” “In progress,” and “Done.” It visualizes project progress and is great for tasks requiring steady output.&lt;br&gt;&lt;br&gt;
&lt;u&gt;6 SIGMA&lt;/u&gt; - (DMAIC) Define, Measure, Analyze, Improve, Control&lt;br&gt;
&lt;u&gt;Lean&lt;/u&gt; uses the 5S quality tool to eliminate eight areas of waste, save money, improve quality, and streamline processes. It streamlines processes, eliminating waste for customer value.&lt;br&gt;
&lt;u&gt;Extreme Programming (XP)&lt;/u&gt;: It enhances software quality and responsiveness to customer satisfaction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;PROCUREMENT&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;u&gt;Initiating&lt;/u&gt;: planning what you need to meet your project goals&lt;br&gt;
&lt;u&gt;Selecting&lt;/u&gt;: deciding which supplies and vendors to use&lt;br&gt;
&lt;u&gt;Contract writing&lt;/u&gt;: developing, reviewing, and signing contracts&lt;br&gt;
&lt;u&gt;Controlling&lt;/u&gt;: making payments and maintaining and ensuring quality&lt;br&gt;
&lt;u&gt;Completing&lt;/u&gt;: measuring your success&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
  </channel>
</rss>
