title
Full Stack Java Development Full Course | Full Stack Java Developer Tutorial 2022 | Simplilearn
description
🔥 IITM Pravartak Professional Certificate Program In Full Stack Development - MERN (India Only): https://www.simplilearn.com/full-stack-developer-course-and-certification-iitm-pravartak?utm_campaign=SCE-FullstackIITM&utm_medium=DescriptionFF&utm_source=youtube
🔥Post Graduate Program In Full Stack Web Development: https://www.simplilearn.com/pgp-full-stack-web-development-certification-training-course?utm_campaign=FSJDFCJun29-lKgwDtOZaFo&utm_medium=DescriptionFirstFold&utm_source=youtube
🔥Caltech Coding Bootcamp(US Only): https://www.simplilearn.com/coding-bootcamp?utm_campaign=FSJDFCJun29-lKgwDtOZaFo&utm_medium=DescriptionFirstFold&utm_source=youtube
🔥Full Stack Java Developer (India Only) - https://www.simplilearn.com/java-full-stack-developer-certification-training-course?utm_campaign=FSJDFCJun29-lKgwDtOZaFo&utm_medium=DescriptionFirstFold&utm_source=youtube
This video on 'Full Stack Java Development Course' covers all the important topics such s Git, Core Java, Maven, HTML, Jenkins, CSS, Angular, SQL, MongoDB with hands-on demos.
00:00:00 Git
01:01:12 Core Java
02:59:19 Maven
03:19:12 Jenkins
04:30:39 HTML
04:39:24 CSS
07:13:54 Angular
09:19:49 SQL
09:47:58 MongoDB
âś…Subscribe to our Channel to learn more about the top Technologies: https://bit.ly/2VT4WtH
#FullStackJavaDevelopment #FullStackJavaDevelopmentCourse #FullStackJavaDeveloper #FullStackJavaDeveloperCourse #LearnFullStackJavaDevelopment #FullStackWebDevelopment #Simplilearn
Who is a Full-Stack Developer?
Let’s say you’re using your Instagram application. Every time you refresh, new content is loaded on your screen. You can like a picture, add new ones, search for profiles and do so much more. Although it provides a seamless user experience, there’s a lot that goes on in the backend. HTTP requests are made to the Instagram servers to retrieve and load information. This is facilitated with the help of backend frameworks. Typically every application consists of the front-end, the backend, and the database.
➡️ About Post Graduate Program In Full Stack Web Development
This program will give you the foundation for building full-stack web apps using the Java programming language. You'll begin with the basics of JavaScript, and then venture into some of the more advanced concepts like Angular, Spring Boot, Hibernate, JSPs, and MVC. Now is the perfect time to get started on your career as a full-stack web developer!
âś… Key Features
- Caltech CTME Post Graduate Certificate
- Enrolment in Simplilearn’s JobAssist
- Receive up to 25 CEUs from Caltech CTME
- Simplilearn's JobAssist helps you get noticed by top hiring companies
- Attend Masterclasses from Caltech CTME instructors
- Live virtual classes led by industry experts, hands-on projects and integrated labs
- Online Convocation by Caltech CTME Program Director
- 20 lesson-end and 5 phase-end projects
- Capstone Project in 4 domains
- Caltech CTME Circle Membership
- Build your own portfolio on GitHub
âś… Skills Covered
- Agile
- JAVA
- Hibernate and JPA
- Spring Core 50
- DevOps
- HTML5 and CSS3
- AWS
- JavaScript ES6
- Servlets
- SOAP and REST
- JSP
👉Learn more at: https://www.simplilearn.com/java-full-stack-developer-certification-training-course?utm_campaign=FSJDFCJun29&utm_medium=Description&utm_source=youtube
🔥🔥 Interested in Attending Live Classes? Call Us: IN - 18002127688 / US - +18445327688
detail
{'title': 'Full Stack Java Development Full Course | Full Stack Java Developer Tutorial 2022 | Simplilearn', 'heatmap': [], 'summary': 'A full stack java course covering git basics, java programming, exception handling, data structures, maven, jenkins setup and configuration, web development fundamentals, css techniques, angular framework, form development, sql basics, mysql commands, mongodb basics, data operations, aggregation, and replication.', 'chapters': [{'end': 1464.429, 'segs': [{'end': 149.939, 'src': 'embed', 'start': 109.778, 'weight': 0, 'content': [{'end': 118.384, 'text': "For today's demonstration, I plan to use GitHub.com which is a cloud-hosted free service and it provides free account registrations for anyone.", 'start': 109.778, 'duration': 8.606}, {'end': 124.969, 'text': 'Eventually, I will cover a few topics regarding Git branching and merging, because these two, in my opinion,', 'start': 118.784, 'duration': 6.185}, {'end': 128.17, 'text': 'are the killer features of the Git distributed version control tool.', 'start': 124.969, 'duration': 3.201}, {'end': 132.656, 'text': 'Git is one of the most popular distributed version control tools of recent times.', 'start': 128.715, 'duration': 3.941}, {'end': 135.656, 'text': 'And, like any other distributed version control tool,', 'start': 133.036, 'duration': 2.62}, {'end': 141.578, 'text': 'it allows us to perform various version control tasks without really needing a network connection.', 'start': 135.656, 'duration': 5.922}, {'end': 149.939, 'text': 'Before I jump into my demonstration, let me spend some time explaining to you the Git client server working model.', 'start': 142.098, 'duration': 7.841}], 'summary': 'Github.com is a cloud-hosted free service for git, with killer features including branching and merging.', 'duration': 40.161, 'max_score': 109.778, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo109778.jpg'}, {'end': 326.377, 'src': 'embed', 'start': 284.406, 'weight': 2, 'content': [{'end': 290.95, 'text': 'This is a part of the continuous integration strategy where, as soon as you have a source code checking that is going in,', 'start': 284.406, 'duration': 6.544}, {'end': 293.892, 'text': 'you have this runner that kicks up and builds your particular project.', 'start': 290.95, 'duration': 2.942}, {'end': 300.936, 'text': 'So all these are bundled together in a GitLab and GitLab also provides you with a community edition which is almost free of cost.', 'start': 294.112, 'duration': 6.824}, {'end': 304.178, 'text': 'Having said that, there are a bunch of these tools available.', 'start': 301.497, 'duration': 2.681}, {'end': 312.924, 'text': "For my demonstration, what I'm going to do is I've already registered myself on the github.com by providing my username and my password.", 'start': 304.399, 'duration': 8.525}, {'end': 315.354, 'text': "And I'm going to use a free account.", 'start': 313.493, 'duration': 1.861}, {'end': 321.216, 'text': "So whatever repositories that I'm going to put up on this server is all public by default.", 'start': 315.614, 'duration': 5.602}, {'end': 326.377, 'text': 'So I want to register myself by using my username or my email ID and my password.', 'start': 321.536, 'duration': 4.841}], 'summary': 'Continuous integration strategy uses gitlab for free, public repositories.', 'duration': 41.971, 'max_score': 284.406, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo284406.jpg'}, {'end': 389.69, 'src': 'embed', 'start': 363.892, 'weight': 3, 'content': [{'end': 368.414, 'text': 'So this is the HTTPS way of authenticating and sharing repositories.', 'start': 363.892, 'duration': 4.522}, {'end': 375.399, 'text': 'Another popular way of sharing repositories or working with each other is called as SSH authentication.', 'start': 368.894, 'duration': 6.505}, {'end': 380.483, 'text': 'As many of you would know, SSH means nothing but creation of a private and a public key.', 'start': 375.8, 'duration': 4.683}, {'end': 385.687, 'text': 'A bunch of keys, public and private, are created on the client machine.', 'start': 380.964, 'duration': 4.723}, {'end': 389.69, 'text': 'While I create a keys, I will be asked for a passphrase.', 'start': 386.128, 'duration': 3.562}], 'summary': 'Https and ssh are popular ways of repository sharing, with ssh involving creation of public and private keys.', 'duration': 25.798, 'max_score': 363.892, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo363892.jpg'}, {'end': 589.763, 'src': 'embed', 'start': 555.22, 'weight': 7, 'content': [{'end': 556.501, 'text': 'A lot of git help commands.', 'start': 555.22, 'duration': 1.281}, {'end': 558.201, 'text': 'Everything looks good.', 'start': 557.261, 'duration': 0.94}, {'end': 561.222, 'text': 'So I ended up installing the git bash.', 'start': 558.441, 'duration': 2.781}, {'end': 563.723, 'text': 'I can go ahead with all other commands.', 'start': 561.563, 'duration': 2.16}, {'end': 571.186, 'text': 'Now that I have git bash installed on my system, let me open up a git bash prompt and start using it.', 'start': 564.804, 'duration': 6.382}, {'end': 575.809, 'text': 'But before I do anything, I just need to configure it for the first time,', 'start': 571.546, 'duration': 4.263}, {'end': 582.095, 'text': 'stating what would be the username and the email ID with which I want the git bash to be configured with.', 'start': 575.809, 'duration': 6.286}, {'end': 589.763, 'text': "The command to do that is git config hyphen hyphen global which means that this setting that I'm going to set would be a global setting.", 'start': 582.315, 'duration': 7.448}], 'summary': 'User installed git bash, configured global settings.', 'duration': 34.543, 'max_score': 555.22, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo555220.jpg'}, {'end': 735.222, 'src': 'embed', 'start': 701.899, 'weight': 4, 'content': [{'end': 702.119, 'text': 'All right.', 'start': 701.899, 'duration': 0.22}, {'end': 704.74, 'text': 'As of now, this is just an empty folder.', 'start': 702.419, 'duration': 2.321}, {'end': 707.081, 'text': 'If at all, I navigate to this.', 'start': 705.7, 'duration': 1.381}, {'end': 709.526, 'text': 'you would see that this folder is empty.', 'start': 707.705, 'duration': 1.821}, {'end': 713.228, 'text': "There's nothing much in this folder at all at this moment.", 'start': 710.126, 'duration': 3.102}, {'end': 716.61, 'text': 'Okay, so let me create a repository out of this.', 'start': 714.049, 'duration': 2.561}, {'end': 719.672, 'text': "How do I create a repository of this? It's pretty simple.", 'start': 716.991, 'duration': 2.681}, {'end': 722.134, 'text': 'I just run a git init command.', 'start': 719.913, 'duration': 2.221}, {'end': 727.157, 'text': "When I say git init, it means it's going to initialize a repository.", 'start': 723.575, 'duration': 3.582}, {'end': 730.479, 'text': 'As of now, the folder contained nothing in it.', 'start': 727.277, 'duration': 3.202}, {'end': 731.6, 'text': 'It was an empty repository.', 'start': 730.499, 'duration': 1.101}, {'end': 735.222, 'text': 'So it initializes an empty repository in this particular folder.', 'start': 732, 'duration': 3.222}], 'summary': 'Initializing an empty repository using git init command.', 'duration': 33.323, 'max_score': 701.899, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo701899.jpg'}, {'end': 1013.084, 'src': 'embed', 'start': 985.031, 'weight': 5, 'content': [{'end': 988.233, 'text': 'And see, it says on the branch master, nothing to commit.', 'start': 985.031, 'duration': 3.202}, {'end': 989.653, 'text': "It's all nice and clean.", 'start': 988.353, 'duration': 1.3}, {'end': 996.737, 'text': 'So typically what happened was I created an empty directory, made it into a git folder by doing a git init.', 'start': 990.113, 'duration': 6.624}, {'end': 998.117, 'text': 'I put a file into it.', 'start': 997.077, 'duration': 1.04}, {'end': 999.558, 'text': 'I made some changes to the file.', 'start': 998.237, 'duration': 1.321}, {'end': 1003.58, 'text': 'I added that file into the repository and I committed to the repository.', 'start': 999.938, 'duration': 3.642}, {'end': 1013.084, 'text': 'If at all I run the git log command, it says this was the commit ID or the commit number or the commit hashtag.', 'start': 1004.06, 'duration': 9.024}], 'summary': 'The git repository contains one commit with changes to a file and a commit id.', 'duration': 28.053, 'max_score': 985.031, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo985031.jpg'}, {'end': 1301.5, 'src': 'embed', 'start': 1265.901, 'weight': 9, 'content': [{'end': 1269.622, 'text': 'One is the HTTPS URL and the other one is the SSH URL.', 'start': 1265.901, 'duration': 3.721}, {'end': 1273.043, 'text': 'As of now, we do not have any SSH keys that is set up.', 'start': 1270.202, 'duration': 2.841}, {'end': 1280.173, 'text': 'So let me use this HTTPS URL to connect my local repository with the repository on the server.', 'start': 1273.61, 'duration': 6.563}, {'end': 1283.094, 'text': "So I've done all these things.", 'start': 1281.313, 'duration': 1.781}, {'end': 1284.814, 'text': 'I already have the repository set up.', 'start': 1283.214, 'duration': 1.6}, {'end': 1291.057, 'text': 'All that I need is a placeholder for me to connect my local repository with the server URL.', 'start': 1285.154, 'duration': 5.903}, {'end': 1301.5, 'text': 'So this would be the command that I need to copy which essentially links or adds an origin with the URL of the git server.', 'start': 1291.577, 'duration': 9.923}], 'summary': 'Using https url to connect local repository with server. no ssh keys set up yet.', 'duration': 35.599, 'max_score': 1265.901, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo1265901.jpg'}, {'end': 1437.508, 'src': 'embed', 'start': 1410.63, 'weight': 6, 'content': [{'end': 1418.611, 'text': 'So let me go back to my server and refresh this page and see if all my commits have come in.', 'start': 1410.63, 'duration': 7.981}, {'end': 1421.311, 'text': 'Master, master1.txt.', 'start': 1419.411, 'duration': 1.9}, {'end': 1424.792, 'text': 'If at all I see the commits, there seem to be two commits.', 'start': 1421.691, 'duration': 3.101}, {'end': 1426.343, 'text': 'this is my first commit.', 'start': 1425.182, 'duration': 1.161}, {'end': 1435.487, 'text': 'this is my second commit and, if at all you notice, each of this commit comes with a hash key or a hash id, which contains the details of my commits.', 'start': 1426.343, 'duration': 9.144}, {'end': 1437.508, 'text': 'in this commit, the files were added.', 'start': 1435.487, 'duration': 2.021}], 'summary': 'Two commits made, each with a hash key and details of files added.', 'duration': 26.878, 'max_score': 1410.63, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo1410630.jpg'}], 'start': 15.734, 'title': 'Full stack java course and git basics', 'summary': 'Covers the overview of a full stack java course, encompassing version control systems, core java concepts, front-end app development tools, and database management systems. it also delves into git authentication, installation, repository creation, file management, and pushing to a git server.', 'chapters': [{'end': 304.178, 'start': 15.734, 'title': 'Full stack java course overview', 'summary': 'Covers the overview of a full stack java course, including the topics to be covered such as version control systems, core java concepts, front-end app development tools, and database management systems.', 'duration': 288.444, 'highlights': ['Git is one of the most popular distributed version control tools. Highlighting the popularity and relevance of Git as a version control tool.', 'GitHub.com is a cloud-hosted free service for Git. Providing information about GitHub.com as a free cloud-hosted service for Git.', 'GitLab provides a Git server and a runner for continuous integration. Highlighting the features of GitLab, including its Git server and continuous integration capabilities.']}, {'end': 644.549, 'start': 304.399, 'title': 'Git authentication and installation', 'summary': 'Discusses the process of registering on github.com, using https and ssh authentication for sharing and collaborating on repositories, and installing git bash on a windows system, including setting up configurations for the first time.', 'duration': 340.15, 'highlights': ['The chapter discusses the process of registering on github.com The speaker mentions registering on github.com to use a free account for sharing repositories, with all repositories being public by default.', 'Using HTTPS and SSH authentication for sharing and collaborating on repositories The speaker explains the HTTPS and SSH authentication methods for sharing and collaborating on repositories, with the SSH method involving the creation of private and public keys and the use of passphrase for authentication.', 'Installing git bash on a Windows system and setting up configurations for the first time The speaker demonstrates the process of installing git bash on a Windows system, including setting up configurations for the first time by specifying the username and email ID using git config commands.']}, {'end': 1110.246, 'start': 644.549, 'title': 'Creating git repository and managing files', 'summary': 'Covers creating a git repository, initializing a folder, adding and committing files to the repository, and viewing commit history, with examples and commands provided.', 'duration': 465.697, 'highlights': ["Creating a git repository and initializing a folder The speaker demonstrates creating a folder as a repository folder called 'git_demo' and initializing it using 'git init', preparing it as a base for creating other repositories.", "Adding and committing files to the repository The process of adding and committing files to the repository is explained, including using 'git add' to stage files, and 'git commit' to commit changes, with visualizations of the status and log.", "Viewing commit history The speaker shows how to view commit history using 'git log', displaying the commit ID, author details, date, and commit message, along with adding and modifying files in the repository."]}, {'end': 1464.429, 'start': 1110.626, 'title': 'Git repository setup and push', 'summary': 'Discusses setting up a local repository, creating a placeholder for the repository on a git server, and pushing the local repository onto the server, including the process of linking the local and server repositories and the commands used for the process.', 'duration': 353.803, 'highlights': ['The process of creating a placeholder for the local repository on a Git server and pushing the content from the local repository to the server is explained. N/A', "The commands used for linking the local repository with the server, including 'git remote add' and 'git push', are demonstrated. N/A", 'The requirement of a network connection is not necessary for performing Git commands on the local repository. N/A', 'The steps for logging into a GitHub account and creating a new repository on the server are detailed. N/A', 'The option to choose between HTTPS URL and SSH URL for connecting the local repository with the server is presented, with a mention of the need for setting up SSH keys for the latter. N/A']}], 'duration': 1448.695, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo15734.jpg', 'highlights': ['Git is one of the most popular distributed version control tools.', 'GitHub.com is a cloud-hosted free service for Git.', 'GitLab provides a Git server and a runner for continuous integration.', 'Using HTTPS and SSH authentication for sharing and collaborating on repositories.', 'Creating a git repository and initializing a folder.', 'Adding and committing files to the repository.', 'Viewing commit history.', 'Installing git bash on a Windows system and setting up configurations for the first time.', 'The process of registering on github.com.', 'The option to choose between HTTPS URL and SSH URL for connecting the local repository with the server.']}, {'end': 3673.585, 'segs': [{'end': 1515.065, 'src': 'embed', 'start': 1488.807, 'weight': 2, 'content': [{'end': 1500.872, 'text': 'Now let me demonstrate to you the SSH configuration that is required for creating a pair of SSH keys and ensuring that I connect to the GitHub server using the SSH mechanism.', 'start': 1488.807, 'duration': 12.065}, {'end': 1505.535, 'text': 'So for doing that I need to first create a pair of private and public key.', 'start': 1501.213, 'duration': 4.322}, {'end': 1515.065, 'text': 'The command to do that is ssh keygen I will use the RSA mechanism for creating my keys, capital C.', 'start': 1505.835, 'duration': 9.23}], 'summary': 'Demonstrating ssh key configuration for connecting to github using rsa mechanism.', 'duration': 26.258, 'max_score': 1488.807, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo1488807.jpg'}, {'end': 1768.659, 'src': 'embed', 'start': 1746.438, 'weight': 1, 'content': [{'end': 1754.341, 'text': 'So, a random readme file with some content in it gets created and I can see there are two URLs to this repository.', 'start': 1746.438, 'duration': 7.903}, {'end': 1756.642, 'text': 'HTTPS and SSH.', 'start': 1754.961, 'duration': 1.681}, {'end': 1760.403, 'text': 'So, this time let me copy the SSH URL.', 'start': 1757.122, 'duration': 3.281}, {'end': 1768.659, 'text': 'so that I will use this URL to clone this repository on the server rather from the server to my local box.', 'start': 1761.013, 'duration': 7.646}], 'summary': 'A readme file with two urls, https and ssh, for cloning the repository.', 'duration': 22.221, 'max_score': 1746.438, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo1746438.jpg'}, {'end': 2061.516, 'src': 'embed', 'start': 2038.495, 'weight': 3, 'content': [{'end': 2048.022, 'text': 'git status will give you the status of all the files and folders, any file that got added, any file that got created, any file that was deleted.', 'start': 2038.495, 'duration': 9.527}, {'end': 2052.766, 'text': 'all the status of the files will be obtained using the git status command.', 'start': 2048.022, 'duration': 4.744}, {'end': 2059.534, 'text': 'git log will show you all the commit history, with the latest history or the latest commit showing up on top.', 'start': 2052.766, 'duration': 6.768}, {'end': 2061.516, 'text': 'git add remote origin.', 'start': 2059.534, 'duration': 1.982}], 'summary': 'Git status shows file status, git log displays commit history, git add remote origin', 'duration': 23.021, 'max_score': 2038.495, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo2038495.jpg'}, {'end': 2157.264, 'src': 'embed', 'start': 2131.256, 'weight': 10, 'content': [{'end': 2136.92, 'text': "However, if your repository has been pushed to the server and you're trying to modify something from history,", 'start': 2131.256, 'duration': 5.664}, {'end': 2140.102, 'text': 'this would have a very bad or adverse effect on all.', 'start': 2136.92, 'duration': 3.182}, {'end': 2152.683, 'text': "In case your repository contents are local, you've not pushed your changes to your repository and if at all, you made some changes to the repository,", 'start': 2144.841, 'duration': 7.842}, {'end': 2157.264, 'text': 'maybe to fix a defect or to include a new feature, and you missed few things.', 'start': 2152.683, 'duration': 4.581}], 'summary': 'Modifying pushed repository history can have adverse effects on all. missed changes may lead to defects or missing features.', 'duration': 26.008, 'max_score': 2131.256, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo2131256.jpg'}, {'end': 2227.102, 'src': 'embed', 'start': 2201.55, 'weight': 5, 'content': [{'end': 2208.593, 'text': 'This would allow me to go back in history, to go back to any of the snapshot get rid of all this commit history or the commit messages,', 'start': 2201.55, 'duration': 7.043}, {'end': 2211.995, 'text': 'but retain the changes that were made as a part of these commits.', 'start': 2208.593, 'duration': 3.402}, {'end': 2217.197, 'text': 'So if at all, I need to go back in history and go back to this particular commit.', 'start': 2212.435, 'duration': 4.762}, {'end': 2222.62, 'text': 'And however, I just want to get rid of these commits that are there in terms of the commit messages.', 'start': 2217.457, 'duration': 5.163}, {'end': 2227.102, 'text': 'But I want the changes that were there as a part of these commits to still exist.', 'start': 2222.8, 'duration': 4.302}], 'summary': 'Ability to remove commit history while retaining changes, allowing for flexibility and clean history.', 'duration': 25.552, 'max_score': 2201.55, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo2201550.jpg'}, {'end': 2428.135, 'src': 'embed', 'start': 2383.575, 'weight': 4, 'content': [{'end': 2389.657, 'text': "however, do this activity only when you don't push your git repository to the server.", 'start': 2383.575, 'duration': 6.082}, {'end': 2396.5, 'text': 'one other most powerful and useful command while undoing or resetting the history is something called as revert.', 'start': 2389.657, 'duration': 6.843}, {'end': 2399.222, 'text': 'this is a safe way of undoing some things.', 'start': 2396.5, 'duration': 2.722}, {'end': 2402.363, 'text': 'remember what i talked about when exactly you can do a reset.', 'start': 2399.222, 'duration': 3.141}, {'end': 2406.399, 'text': "It's only when your changes are local and it has not been pushed to the repository.", 'start': 2402.796, 'duration': 3.603}, {'end': 2428.135, 'text': "Take this scenario wherein let's say I have a Git server and I have the changes which are C1, C2, C3 and possibly C4.", 'start': 2406.759, 'duration': 21.376}], 'summary': 'Revert is a safe way to undo changes locally; do not reset if changes are pushed to the server.', 'duration': 44.56, 'max_score': 2383.575, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo2383575.jpg'}, {'end': 2535.219, 'src': 'embed', 'start': 2512.559, 'weight': 11, 'content': [{'end': 2523.676, 'text': "Better way to do that is by adding a new commit which is ahead say let's say C5 and what does this commit do? This commit possibly gets rid of C3.", 'start': 2512.559, 'duration': 11.117}, {'end': 2531.178, 'text': 'Instead of going back in history, it actually is taking your git history ahead, but as a part of this commit,', 'start': 2524.696, 'duration': 6.482}, {'end': 2535.219, 'text': "you're undoing some part of the work that was done as a part of C3..", 'start': 2531.178, 'duration': 4.041}], 'summary': 'Advise adding a new commit ahead of c5 to undo part of c3.', 'duration': 22.66, 'max_score': 2512.559, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo2512559.jpg'}, {'end': 2657.118, 'src': 'embed', 'start': 2628.268, 'weight': 12, 'content': [{'end': 2633.41, 'text': 'And bear in mind that considering reset, revert works on one commit at a time.', 'start': 2628.268, 'duration': 5.142}, {'end': 2637.045, 'text': 'So I can do one commit revert at a time.', 'start': 2633.823, 'duration': 3.222}, {'end': 2640.207, 'text': 'I can club a bunch of them together and do one commit.', 'start': 2637.345, 'duration': 2.862}, {'end': 2644.27, 'text': 'But otherwise, the revert always works on one commit at a time.', 'start': 2640.467, 'duration': 3.803}, {'end': 2645.531, 'text': 'So git revert.', 'start': 2644.59, 'duration': 0.941}, {'end': 2647.512, 'text': 'Paste this.', 'start': 2647.032, 'duration': 0.48}, {'end': 2652.595, 'text': "Essentially, what I'm trying to do, I'm trying to undo this particular commit.", 'start': 2648.513, 'duration': 4.082}, {'end': 2657.118, 'text': "While I'm undoing this commit, what does git do? It safely adds a new commit.", 'start': 2653.136, 'duration': 3.982}], 'summary': 'Git revert undoes one commit at a time, adding a new commit for each undo operation.', 'duration': 28.85, 'max_score': 2628.268, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo2628268.jpg'}, {'end': 2753.227, 'src': 'embed', 'start': 2706.21, 'weight': 0, 'content': [{'end': 2709.09, 'text': 'So this is a better way of undoing things.', 'start': 2706.21, 'duration': 2.88}, {'end': 2717.933, 'text': 'Now that we have acquainted ourselves with few of those basic git commands, let me get into a very, very interesting topic regarding git,', 'start': 2710.711, 'duration': 7.222}, {'end': 2718.893, 'text': 'which is about branching.', 'start': 2717.933, 'duration': 0.96}, {'end': 2727.721, 'text': 'The topic is interesting because Git deals with branches in a completely different way compared to any other version control tool.', 'start': 2719.517, 'duration': 8.204}, {'end': 2737.846, 'text': 'In most of the version control tools, whenever you create a new branch, a complete copy or a subset of the whole repository is created, which,', 'start': 2728.621, 'duration': 9.225}, {'end': 2746.45, 'text': 'in my opinion, is very, very cost inefficient, because it is a very, very expensive operation, both in terms of time and the disk space.', 'start': 2737.846, 'duration': 8.604}, {'end': 2753.227, 'text': 'However in Git You just create a very, very lightweight mobile pointer whenever you create a branch.', 'start': 2747.05, 'duration': 6.177}], 'summary': 'Git handles branching efficiently by creating lightweight pointers instead of complete copies, saving time and disk space.', 'duration': 47.017, 'max_score': 2706.21, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo2706210.jpg'}, {'end': 3564.543, 'src': 'embed', 'start': 3538.291, 'weight': 8, 'content': [{'end': 3544.794, 'text': 'please ensure that you merge in the branches so that you get in or take in the work that was done as a part of that particular branch.', 'start': 3538.291, 'duration': 6.503}, {'end': 3548.391, 'text': 'To summarize, the git branching commands are as follows.', 'start': 3545.589, 'duration': 2.802}, {'end': 3549.972, 'text': 'To create a new branch,', 'start': 3548.731, 'duration': 1.241}, {'end': 3559.98, 'text': 'you issue a command git branch the name of the branch and this would automatically spin off or create a new branch from the existing branch from where you issue this command.', 'start': 3549.972, 'duration': 10.008}, {'end': 3564.543, 'text': 'If you are on the master branch and if you execute this command git branch,', 'start': 3560.52, 'duration': 4.023}], 'summary': "Merge branches to incorporate work. use 'git branch' to create new branches.", 'duration': 26.252, 'max_score': 3538.291, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo3538291.jpg'}, {'end': 3656.74, 'src': 'embed', 'start': 3618.584, 'weight': 7, 'content': [{'end': 3625.508, 'text': 'The command to merge the contents of any new branch into a master branch would be git merge and the name of the branch.', 'start': 3618.584, 'duration': 6.924}, {'end': 3633.423, 'text': 'This would automatically merge the branch contents that you specified into the branch on which you currently reside.', 'start': 3626.149, 'duration': 7.274}, {'end': 3634.104, 'text': 'If at all.', 'start': 3633.723, 'duration': 0.381}, {'end': 3638.847, 'text': 'you are on the master branch and if you issue a command git merge new underscore branch.', 'start': 3634.104, 'duration': 4.743}, {'end': 3642.069, 'text': 'this would merge the contents of the new branch onto the master branch.', 'start': 3638.847, 'duration': 3.222}, {'end': 3647.633, 'text': 'So once you merge the contents of any branch, you would possibly want to go ahead and delete this branch.', 'start': 3642.59, 'duration': 5.043}, {'end': 3653.958, 'text': 'So the command to delete those branch locally is git branch hyphen capital D and the name of the branch.', 'start': 3648.034, 'duration': 5.924}, {'end': 3656.74, 'text': 'This again would delete the branch locally.', 'start': 3654.358, 'duration': 2.382}], 'summary': 'Git merge merges new branch contents into master branch. git branch -d deletes branch locally.', 'duration': 38.156, 'max_score': 3618.584, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo3618584.jpg'}], 'start': 1464.429, 'title': 'Git version control', 'summary': 'Covers ssh key creation, repository cloning, and essential git commands, as well as git reset, revert, branching basics, and commands. it also emphasizes efficient branching, safe undoing of changes, and collaborative work preservation.', 'chapters': [{'end': 2097.8, 'start': 1464.429, 'title': 'Ssh configuration and repository cloning', 'summary': 'Covers the creation of ssh keys, authentication with the github server, and cloning a repository, including the use of git commands such as init, add, commit, status, log, remote, push, and clone.', 'duration': 633.371, 'highlights': ['The creation and configuration of SSH keys is demonstrated, including the use of ssh-keygen to generate a pair of private and public keys using the RSA mechanism. SSH keys are created using ssh-keygen with the RSA mechanism, and the public key is added to the GitHub server for authentication.', 'The process of cloning a repository from the server to the local drive using the git clone command is explained, with the use of SSH URL for cloning and authentication. Cloning a repository from the server to the local drive is demonstrated using the SSH URL for authentication and cloning, allowing for the creation of an exact replica of the repository on the local drive.', 'An overview of essential git commands such as init, add, commit, status, log, remote, push, and clone is provided, covering their respective functions in the context of repository management. The tutorial provides an overview of essential git commands such as init, add, commit, status, log, remote, push, and clone, elucidating their roles in repository management and version control.']}, {'end': 2406.399, 'start': 2097.8, 'title': 'Git reset and revert', 'summary': 'Discusses the use of git reset to go back in history and modify commit messages while retaining the changes and the caution needed when changes are pushed to the server, along with the mention of the revert command as a safe way of undoing changes.', 'duration': 308.599, 'highlights': ['Git reset allows going back in history to modify commit messages while retaining changes The git reset command enables going back to a specific snapshot in history, getting rid of commit messages but retaining the changes made as a part of those commits.', 'Caution needed when modifying history after pushing changes to the server It is advised to be cautious when modifying history after pushing changes to the server, as it can have adverse effects on all users collaborating on the repository.', 'Revert command is a safe way of undoing changes The revert command is mentioned as a safe way of undoing changes, especially when changes have been pushed to the repository and are not just local.']}, {'end': 2705.629, 'start': 2406.759, 'title': 'Using git revert command', 'summary': 'Explains the consequences of going back in git history, the importance of adding a new commit to undo changes, and the usage of the git revert command to safely undo a commit, ensuring collaborative work is not affected adversely.', 'duration': 298.87, 'highlights': ['The git revert command is used to safely undo a commit by adding a new commit, ensuring collaborative work is not affected adversely. By using the git revert command, a new commit is added to undo the changes made in a previous commit, ensuring that collaborative work is not adversely affected.', 'Developer 1 should add a new commit, such as C5, to undo changes made in C3, rather than going back in history. Developer 1 should add a new commit, like C5, to undo changes made in C3, rather than modifying the history, to ensure collaborative work progresses without adverse effects.', 'Reverting a commit using git revert command works on one commit at a time. The git revert command works on one commit at a time, allowing the safe undoing of changes by adding a new commit for each revert.']}, {'end': 3122.641, 'start': 2706.21, 'title': 'Git branching basics', 'summary': 'Explains the efficient and cost-effective branching process in git, where lightweight pointers are created instead of creating a complete copy of the repository, enabling easy creation and management of branches, and seamless merging process, demonstrated with an example.', 'duration': 416.431, 'highlights': ['Git creates lightweight pointers for branches instead of copying the whole repository, making branches cost efficient and easy to manage. In most version control tools, creating a new branch involves creating a complete copy or subset of the whole repository, which is cost inefficient in terms of time and disk space. In contrast, Git creates lightweight pointers for branches, making the process very cost efficient and easy to manage.', 'Demonstrates creating and managing branches with Git, showcasing the seamless merging process and efficient branch management. The demonstration includes creating a new branch, performing branch-specific work, merging the branch back into the base branch, and the automatic management of branch contents by Git when switching between branches.', 'Illustrates how Git manipulates the file system snapshot to show branch-specific content when switching between branches. Git manipulates the file system snapshot to display branch-specific content when switching between branches, ensuring that the content of a branch is visible only when it is active, providing a seamless and efficient branching experience.']}, {'end': 3673.585, 'start': 3124.242, 'title': 'Git branching commands', 'summary': 'Outlines the process of creating, linking, pushing, merging, and deleting branches in git, emphasizing the importance of finishing tasks and merging branches before deletion.', 'duration': 549.343, 'highlights': ["The command to merge the contents of any new branch into a master branch would be git merge and the name of the branch. Merging the contents of a new branch into the master branch is achieved using the 'git merge' command.", "To create a new branch, you issue a command git branch the name of the branch and this would automatically spin off or create a new branch from the existing branch from where you issue this command. Creating a new branch is done with the 'git branch' command, automatically creating a new branch from the existing one.", "The command to delete those branch locally is git branch hyphen capital D and the name of the branch. Deleting a branch locally is accomplished using the 'git branch -D' command followed by the branch name."]}], 'duration': 2209.156, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo1464429.jpg', 'highlights': ['Git creates lightweight pointers for branches, making them cost efficient and easy to manage', 'Cloning a repository from the server to the local drive using SSH URL for authentication is demonstrated', 'The process of creating and configuring SSH keys using ssh-keygen with the RSA mechanism is explained', 'An overview of essential git commands such as init, add, commit, status, log, remote, push, and clone is provided', 'The git revert command is used to safely undo a commit by adding a new commit, ensuring collaborative work is not affected adversely', 'The git reset command enables going back to a specific snapshot in history, getting rid of commit messages but retaining the changes made', 'Demonstrates creating and managing branches with Git, showcasing the seamless merging process and efficient branch management', "The command to merge the contents of a new branch into the master branch is achieved using the 'git merge' command", "Creating a new branch is done with the 'git branch' command, automatically creating a new branch from the existing one", "Deleting a branch locally is accomplished using the 'git branch -D' command followed by the branch name", 'It is advised to be cautious when modifying history after pushing changes to the server, as it can have adverse effects on all users collaborating on the repository', 'Developer 1 should add a new commit, like C5, to undo changes made in C3, rather than modifying the history, to ensure collaborative work progresses without adverse effects', 'The git revert command works on one commit at a time, allowing the safe undoing of changes by adding a new commit for each revert', 'Git manipulates the file system snapshot to display branch-specific content when switching between branches, ensuring that the content of a branch is visible only when it is active, providing a seamless and efficient branching experience']}, {'end': 5685.246, 'segs': [{'end': 3748.09, 'src': 'embed', 'start': 3723.586, 'weight': 1, 'content': [{'end': 3731.273, 'text': 'even command line applications, And at the same time you can also use it to build complex applications like gaming applications,', 'start': 3723.586, 'duration': 7.687}, {'end': 3735.117, 'text': 'building microservices or building distributed computing, etc.', 'start': 3731.273, 'duration': 3.844}, {'end': 3737.319, 'text': "Let's talk about the features of Java.", 'start': 3735.637, 'duration': 1.682}, {'end': 3743.825, 'text': "So one of the most prominent features of Java is that it's an object-oriented programming language,", 'start': 3737.879, 'duration': 5.946}, {'end': 3748.09, 'text': 'which means that everything which happens in Java happens around objects.', 'start': 3743.825, 'duration': 4.265}], 'summary': 'Java is a versatile language for building applications, including gaming and microservices, and is known for its object-oriented nature.', 'duration': 24.504, 'max_score': 3723.586, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo3723586.jpg'}, {'end': 3795.968, 'src': 'embed', 'start': 3768.279, 'weight': 9, 'content': [{'end': 3772.821, 'text': 'it basically enables the program to be run on any platform once compiled.', 'start': 3768.279, 'duration': 4.542}, {'end': 3780.844, 'text': 'Once you have prepared your program and you have compiled your program, then your compile program can be run on any platform.', 'start': 3773.561, 'duration': 7.283}, {'end': 3791.587, 'text': 'it is a strong type checking language, which means that it will force you to respect the contracts of the variables to the data types.', 'start': 3780.844, 'duration': 10.743}, {'end': 3795.968, 'text': 'for example, if you have created a collection which should accept strings,', 'start': 3791.587, 'duration': 4.381}], 'summary': 'Enables cross-platform execution after compilation. strongly enforces variable data type contracts.', 'duration': 27.689, 'max_score': 3768.279, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo3768279.jpg'}, {'end': 3875.794, 'src': 'embed', 'start': 3849.802, 'weight': 2, 'content': [{'end': 3856.844, 'text': 'it also provides multi-threading support, which means that you can build multi-threading applications like a gaming application,', 'start': 3849.802, 'duration': 7.042}, {'end': 3859.705, 'text': 'if you take the example of a racing game, for example.', 'start': 3856.844, 'duration': 2.861}, {'end': 3864.347, 'text': 'so this they can be one thread which is monitoring your leaderboard score.', 'start': 3859.705, 'duration': 4.642}, {'end': 3867.768, 'text': 'there can be another thread which is displaying the speed of the car.', 'start': 3864.347, 'duration': 3.421}, {'end': 3870.449, 'text': 'there can be another thread which is displaying the graphic.', 'start': 3867.768, 'duration': 2.681}, {'end': 3872.61, 'text': 'there can be another thread which is displaying the sound.', 'start': 3870.449, 'duration': 2.161}, {'end': 3875.794, 'text': 'so you see, all of these threads are working parallelly,', 'start': 3873.13, 'duration': 2.664}], 'summary': 'The platform supports multi-threading for parallel processing, enabling features like monitoring the leaderboard, displaying car speed, graphics, and sound in gaming applications.', 'duration': 25.992, 'max_score': 3849.802, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo3849802.jpg'}, {'end': 4015.789, 'src': 'embed', 'start': 3968.01, 'weight': 0, 'content': [{'end': 3970.812, 'text': 'or a macOS platform or any other platform.', 'start': 3968.01, 'duration': 2.802}, {'end': 3979.418, 'text': 'To give you some more context, the first two steps where you write your Java program and you compile your Java program can be run on any machine.', 'start': 3971.352, 'duration': 8.066}, {'end': 3983.682, 'text': "Let's take the example that you ran these two steps on a Windows machine.", 'start': 3979.879, 'duration': 3.803}, {'end': 3985.163, 'text': 'so you ran your.', 'start': 3984.242, 'duration': 0.921}, {'end': 3991.969, 'text': 'you write your program and you compiled your program on a windows machine which generated a dot class file.', 'start': 3985.163, 'duration': 6.806}, {'end': 3996.652, 'text': 'then you transported this dot class file to a linux machine and it also worked there.', 'start': 3991.969, 'duration': 4.683}, {'end': 4001.276, 'text': 'you transported your dot class file to a mac os machine and it worked there as well.', 'start': 3996.652, 'duration': 4.624}, {'end': 4011.425, 'text': "and that's what brings the platform independence concept of java that you can write the program once on any platform and once you have the bytecode available,", 'start': 4001.276, 'duration': 10.149}, {'end': 4015.789, 'text': 'then you can run this program on any other platform of your choice.', 'start': 4011.425, 'duration': 4.364}], 'summary': 'Java programs can be written and compiled on any platform, demonstrating platform independence and interoperability.', 'duration': 47.779, 'max_score': 3968.01, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo3968010.jpg'}, {'end': 4336.501, 'src': 'embed', 'start': 4307.741, 'weight': 6, 'content': [{'end': 4313.324, 'text': 'So you see that we have some common behavior, but at the same time, we also have some different behavior.', 'start': 4307.741, 'duration': 5.583}, {'end': 4320.469, 'text': 'So whenever you have such scenario, always think about applying the concept of inheritance in your application.', 'start': 4313.825, 'duration': 6.644}, {'end': 4325.853, 'text': "There's another simple way to spot whether inheritance can be used at a particular place or not.", 'start': 4321.07, 'duration': 4.783}, {'end': 4329.195, 'text': 'Inheritance is also called is a relationship.', 'start': 4326.373, 'duration': 2.822}, {'end': 4336.501, 'text': 'so whenever you read the requirements from a customer, just try to find the words which use this particular phrase.', 'start': 4329.699, 'duration': 6.802}], 'summary': "Inheritance can be applied to common behaviors, creating a 'is a' relationship.", 'duration': 28.76, 'max_score': 4307.741, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo4307741.jpg'}, {'end': 4961.697, 'src': 'embed', 'start': 4932.797, 'weight': 4, 'content': [{'end': 4937.339, 'text': 'All the methods which are defined in the base class are accessible in the child class as well.', 'start': 4932.797, 'duration': 4.542}, {'end': 4939.12, 'text': 'This is the power of inheritance.', 'start': 4937.859, 'duration': 1.261}, {'end': 4941.361, 'text': 'One more thing which I said I will come back to.', 'start': 4939.62, 'duration': 1.741}, {'end': 4945.15, 'text': 'is around the usage of protected access modifier.', 'start': 4941.989, 'duration': 3.161}, {'end': 4954.234, 'text': 'Remember, when we discussed about the access modifiers in the previous session, I said that protected is used when you are dealing with inheritance,', 'start': 4945.971, 'duration': 8.263}, {'end': 4961.697, 'text': 'that whenever you define something as protected, it will be available to be accessible in the child classes of the base class.', 'start': 4954.234, 'duration': 7.463}], 'summary': 'Inheritance allows child classes to access methods of the base class, using protected access modifier.', 'duration': 28.9, 'max_score': 4932.797, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo4932797.jpg'}, {'end': 5136.072, 'src': 'embed', 'start': 5112.375, 'weight': 5, 'content': [{'end': 5121.46, 'text': 'If you want to protect the properties of your class, how do you do that? You do that with the help of the concept called encapsulation.', 'start': 5112.375, 'duration': 9.085}, {'end': 5124.642, 'text': 'So here, this is a sort of a security feature.', 'start': 5121.82, 'duration': 2.822}, {'end': 5131.526, 'text': 'You can think of it as a security feature that you want to protect the properties of your class,', 'start': 5124.682, 'duration': 6.844}, {'end': 5136.072, 'text': 'and you will use encapsulation to protect the properties.', 'start': 5132.23, 'duration': 3.842}], 'summary': 'Encapsulation protects class properties, serving as a security feature.', 'duration': 23.697, 'max_score': 5112.375, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo5112375.jpg'}], 'start': 3673.585, 'title': 'Java programming', 'summary': 'Introduces java, a programming language created in 1991, publicly released in 1995, acquired by oracle, offering platform independence, used for web, mobile, desktop, gaming, microservices, and distributed computing. it explains the benefits of java, its support for multi-threading, security features, and robust exception handling. it also covers the concept of inheritance, encapsulation, and abstraction in java.', 'chapters': [{'end': 3849.302, 'start': 3673.585, 'title': 'Introduction to java programming', 'summary': 'Introduces java, a popular programming language created in 1991, publicly released in 1995, acquired by oracle, offering platform independence, strong type checking, and automatic garbage collection, used for various applications including web, mobile, desktop, gaming, microservices, and distributed computing.', 'duration': 175.717, 'highlights': ['Java is a popular programming language created in 1991 and publicly released in 1995, acquired by Oracle. Java, created in 1991 and publicly released in 1995, was acquired by Oracle, making it one of the most popular programming languages.', "Java offers platform independence, allowing programs to run on any platform once compiled. Java's platform independence enables programs to run on any platform once compiled, facilitating seamless deployment across different environments.", "Java provides automatic garbage collection, freeing up memory space for program execution. Java's automatic garbage collection feature automatically finds and removes unused objects and variables from memory, optimizing memory space for program execution.", "Java is used for web applications, mobile applications, desktop applications, gaming applications, microservices, and distributed computing. Java's versatility allows it to be used for a wide range of applications, including web, mobile, desktop, gaming, microservices, and distributed computing.", "Java is a strongly type checking language, enforcing variable data type contracts. Java's strong type checking ensures that variables adhere to their specified data types, enhancing program reliability and stability."]}, {'end': 4225.886, 'start': 3849.802, 'title': 'Benefits and execution of java', 'summary': 'Explains the benefits of java, including its support for multi-threading, security features, and robust exception handling, as well as the process of running java programs and achieving platform independence.', 'duration': 376.084, 'highlights': ['Java provides multi-threading support for building parallel applications, such as gaming applications, with different threads performing various tasks simultaneously. Support for creating parallel applications using multi-threading capability.', 'Java is secure by default due to the absence of pointers, eliminating possibilities of memory leaks or reference leaks. Absence of pointers ensuring secure programming.', 'Java offers a robust exception handling framework, enabling the development of resilient applications. Exception handling framework for building resilient applications.', "Java's platform independence allows writing programs once and running them on any platform after compiling into bytecode. Achieving platform independence by writing programs once and running on any platform.", 'The process of running Java programs involves writing, compiling, and executing the Java code on various platforms. Process of writing, compiling, and executing Java programs on different platforms.']}, {'end': 4932.417, 'start': 4227.007, 'title': 'Understanding inheritance in object-oriented programming', 'summary': "Explains the concept of inheritance in object-oriented programming, using examples from a bank account and a bicycle, highlighting the relationship between parent and child classes and the utilization of the 'extends' keyword in java.", 'duration': 705.41, 'highlights': ['Inheritance is a crucial property in object-oriented programming, allowing multiple classes to share similar behavior and properties. Inheritance is a fundamental concept in object-oriented programming, enabling multiple classes to share common behavior and properties, as exemplified through different types of bank accounts.', "The 'is a' relationship is a simple way to identify where inheritance can be applied, such as 'car is a vehicle' or 'savings account is a type of account'. The 'is a' relationship serves as a clear indicator for the application of inheritance, as evident in phrases like 'car is a vehicle' or 'savings account is a type of account'.", 'The relationship between parent and child classes is central to inheritance, with the child class inheriting properties and behaviors from the base class. Inheritance establishes a parent-child relationship, with the child class inheriting properties and behaviors from the base class, demonstrating the core concept of inheritance hierarchy.', "In Java, the 'extends' keyword is used to define the inheritance relationship between classes, allowing the child class to access properties and methods from the base class. The 'extends' keyword in Java is utilized to denote the inheritance relationship between classes, enabling the child class to access properties and methods from the base class, showcasing the practical application of inheritance in programming.", 'The inheritance relationship allows child classes to seamlessly access and utilize properties and methods from the base class, promoting code reusability and efficiency. The inheritance relationship facilitates seamless access to properties and methods from the base class, promoting code reusability and efficiency in programming, as demonstrated through accessing and utilizing properties and methods from the base class in the child class.', 'Applying inheritance in programming enables the creation of a hierarchy of classes, allowing for the extension of classes and properties as per specific requirements. Applying inheritance in programming facilitates the establishment of a hierarchy of classes, enabling the extension of classes and properties based on specific requirements, emphasizing the flexibility and scalability offered by inheritance in software development.']}, {'end': 5408.562, 'start': 4932.797, 'title': 'Inheritance and encapsulation in java', 'summary': 'Explains the power of inheritance and the usage of protected access modifier, with a focus on encapsulation as a security feature, demonstrated through the implementation of encapsulation in a java class.', 'duration': 475.765, 'highlights': ['Inheritance allows methods defined in the base class to be accessible in the child class, demonstrating the power of inheritance. All the methods defined in the base class are accessible in the child class, showcasing the power of inheritance.', 'Protected access modifier is used to make properties accessible in child classes, serving as a key aspect of inheritance logic. The usage of protected access modifier in inheritance logic ensures that properties are available to be accessible in child classes of the base class.', 'Encapsulation serves as a security feature to restrict access to the properties of a class from the outside world, achieved by using the private keyword and providing getters with the right visibility. Encapsulation restricts access to class properties from the outside world, implemented by using the private keyword and providing public getters to control exposure of the properties.']}, {'end': 5685.246, 'start': 5409.262, 'title': 'Encapsulation and abstraction in java', 'summary': 'Covers the concept of encapsulation in java, emphasizing the creation of setters and getters for class properties to control visibility and manipulation of values, and concludes with an introduction to the concept of abstraction and relating it to java, highlighting the idea of hiding details of an object from the outside world.', 'duration': 275.984, 'highlights': ['Creation of Setters and Getters The chapter emphasizes providing setters and getters for class properties, such as name, age, and address, to control the overwriting of values, with the recommendation to make these methods public and void, along with demonstrating the generation of setters and getters using smart IDEs.', 'Control and Visibility It explains that encapsulation allows full control of the class, including visibility, initialization, overwriting of properties, and retrieval of properties, ultimately resulting in a perfect form of encapsulation in the class.', 'Introduction to Abstraction The session introduces the concept of abstraction, defining it as the hiding of details of a particular object from the outside world and provides a relatable example of driving a car to illustrate the concept.']}], 'duration': 2011.661, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo3673585.jpg', 'highlights': ['Java offers platform independence, enabling programs to run on any platform once compiled.', 'Java is used for web, mobile, desktop, gaming, microservices, and distributed computing.', 'Java provides multi-threading support for building parallel applications.', "Java's platform independence allows writing programs once and running them on any platform.", 'Inheritance allows methods defined in the base class to be accessible in the child class.', 'Encapsulation serves as a security feature to restrict access to the properties of a class.', "The 'is a' relationship is a simple way to identify where inheritance can be applied.", 'The inheritance relationship allows child classes to seamlessly access and utilize properties and methods from the base class.', 'The process of running Java programs involves writing, compiling, and executing the Java code on various platforms.', "Java's strong type checking ensures that variables adhere to their specified data types."]}, {'end': 7545.593, 'segs': [{'end': 5724.789, 'src': 'embed', 'start': 5701.672, 'weight': 0, 'content': [{'end': 5711.357, 'text': 'So a car manufacturer abstracts away all the inner technical details from the driver and just gives the driver a single pedal to speed up the car.', 'start': 5701.672, 'duration': 9.685}, {'end': 5716.319, 'text': "For a user, it's a very good experience because he doesn't need to know about all the internals of the car.", 'start': 5711.777, 'duration': 4.542}, {'end': 5724.789, 'text': 'But the car manufacturer can hide all the details and provide a very simple interface for the driver to interact with, which is just a gas pedal.', 'start': 5716.843, 'duration': 7.946}], 'summary': 'Car manufacturer simplifies driving by abstracting technical details, providing a single pedal interface.', 'duration': 23.117, 'max_score': 5701.672, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo5701672.jpg'}, {'end': 5813.467, 'src': 'embed', 'start': 5782.466, 'weight': 1, 'content': [{'end': 5785.388, 'text': 'You can also use the abstract keyword in front of a method.', 'start': 5782.466, 'duration': 2.922}, {'end': 5793.413, 'text': 'And when you use abstract keyword in front of a method, then that method is only declared without an implementation.', 'start': 5785.648, 'duration': 7.765}, {'end': 5797.181, 'text': 'you are not going to provide any implementation of the method.', 'start': 5793.74, 'duration': 3.441}, {'end': 5800.462, 'text': "And you're just going to declare the method, something like this.", 'start': 5797.541, 'duration': 2.921}, {'end': 5806.605, 'text': "We will see a similar example in the, in the hands-on as well, but that's the basic idea that you just declare the method.", 'start': 5801.003, 'duration': 5.602}, {'end': 5813.467, 'text': "You are not providing an implementation as to what does move to method actually does, because that's the whole concept of abstraction.", 'start': 5807.005, 'duration': 6.462}], 'summary': "Using 'abstract' keyword in a method only declares it without implementation.", 'duration': 31.001, 'max_score': 5782.466, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo5782466.jpg'}, {'end': 5846.47, 'src': 'embed', 'start': 5821.966, 'weight': 2, 'content': [{'end': 5829.507, 'text': 'So the child class will be having the responsibility to provide a concrete implementation of the declared method.', 'start': 5821.966, 'duration': 7.541}, {'end': 5832.108, 'text': "Let's understand this better with the help of an example.", 'start': 5829.787, 'duration': 2.321}, {'end': 5840.049, 'text': 'So here I have created a class called graphic object and I have made the class as abstract class.', 'start': 5832.528, 'duration': 7.521}, {'end': 5846.47, 'text': 'This is the keyword which you need to use in front before the class keyword and the class becomes an abstract class.', 'start': 5840.569, 'duration': 5.901}], 'summary': 'Child class provides concrete implementation. example: graphic object made abstract.', 'duration': 24.504, 'max_score': 5821.966, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo5821966.jpg'}, {'end': 6109.393, 'src': 'embed', 'start': 6084.095, 'weight': 3, 'content': [{'end': 6090.976, 'text': 'So whatever you define on the right hand side whatever is the type of object will be the type of methods being caught.', 'start': 6084.095, 'duration': 6.881}, {'end': 6098.678, 'text': 'So if you created a circle object and then if you call the draw method and resize method these methods will be called from the circle class.', 'start': 6091.216, 'duration': 7.462}, {'end': 6101.899, 'text': 'If you initialized it as new rectangle,', 'start': 6099.278, 'duration': 2.621}, {'end': 6109.393, 'text': 'then you are creating a rectangle class object and then the draw and the resize method will be called from the rectangle class.', 'start': 6101.899, 'duration': 7.494}], 'summary': 'Defining object type determines methods called; e.g. circle calls circle methods, rectangle calls rectangle methods.', 'duration': 25.298, 'max_score': 6084.095, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo6084095.jpg'}, {'end': 6337.663, 'src': 'embed', 'start': 6308.839, 'weight': 4, 'content': [{'end': 6312.28, 'text': 'though even i have defined the default constructor here.', 'start': 6308.839, 'duration': 3.441}, {'end': 6317.342, 'text': 'but still java is not able to find it because this class is abstract.', 'start': 6312.28, 'duration': 5.062}, {'end': 6321.864, 'text': 'so hence proved abstract classes cannot be instantiated explicitly.', 'start': 6317.342, 'duration': 4.522}, {'end': 6328.56, 'text': 'they can only be instantiated by the child classes through the internal mechanisms of java itself.', 'start': 6321.864, 'duration': 6.696}, {'end': 6335.042, 'text': "and that's all i want to talk about in this particular session where we looked in detail about the concept of abstraction.", 'start': 6328.56, 'duration': 6.482}, {'end': 6337.663, 'text': 'couple of more things which i did not cover in the previous session.', 'start': 6335.042, 'duration': 2.621}], 'summary': 'Abstract classes cannot be instantiated explicitly; only by child classes through internal mechanisms.', 'duration': 28.824, 'max_score': 6308.839, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo6308839.jpg'}, {'end': 6366.131, 'src': 'embed', 'start': 6343.525, 'weight': 5, 'content': [{'end': 6351.868, 'text': 'when i say multiple inheritance, what it means that you will not have a scenario where a child will be extending from two base classes.', 'start': 6343.525, 'duration': 8.343}, {'end': 6353.782, 'text': 'java does not support it.', 'start': 6352.421, 'duration': 1.361}, {'end': 6359.246, 'text': 'it does support it with the with the help of interfaces, but i will talk about interfaces in the coming sessions.', 'start': 6353.782, 'duration': 5.464}, {'end': 6366.131, 'text': 'but here just understand this that you cannot use multiple inheritance with classes in java.', 'start': 6359.246, 'duration': 6.885}], 'summary': 'Java does not support multiple inheritance with classes, but supports it with interfaces.', 'duration': 22.606, 'max_score': 6343.525, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo6343525.jpg'}, {'end': 6573.558, 'src': 'embed', 'start': 6548.709, 'weight': 6, 'content': [{'end': 6556.412, 'text': 'so by using method overloading, you can vary the number of arguments and also the type of arguments.', 'start': 6548.709, 'duration': 7.703}, {'end': 6565.996, 'text': 'so the basic idea is that you declare, you define the method using the same name, but you do a variation in the arguments or the return types.', 'start': 6556.412, 'duration': 9.584}, {'end': 6570.357, 'text': "and that's how you technically implement method overloading in this case.", 'start': 6565.996, 'duration': 4.361}, {'end': 6573.558, 'text': 'in this particular case, the multiply is the method being overloaded,', 'start': 6570.357, 'duration': 3.201}], 'summary': 'Method overloading allows varying arguments and return types, illustrated by overloading the multiply method.', 'duration': 24.849, 'max_score': 6548.709, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo6548709.jpg'}, {'end': 6885.453, 'src': 'embed', 'start': 6856.06, 'weight': 7, 'content': [{'end': 6857.441, 'text': 'so try to use it with caution.', 'start': 6856.06, 'duration': 1.381}, {'end': 6859.202, 'text': "that's what i'm trying to stress here.", 'start': 6857.441, 'duration': 1.761}, {'end': 6862.463, 'text': "let's get started with method overriding in java.", 'start': 6859.202, 'duration': 3.261}, {'end': 6866.906, 'text': 'so in the previous session we discussed about method overloading concept.', 'start': 6862.463, 'duration': 4.443}, {'end': 6868.146, 'text': 'now in this session,', 'start': 6866.906, 'duration': 1.24}, {'end': 6875.87, 'text': "we'll focus on another interesting concept by which you can have the same signature of the method again and again be used in your code,", 'start': 6868.146, 'duration': 7.724}, {'end': 6877.124, 'text': 'but in a different way.', 'start': 6876.223, 'duration': 0.901}, {'end': 6879.487, 'text': 'And this concept is called method overriding.', 'start': 6877.444, 'duration': 2.043}, {'end': 6885.453, 'text': 'Method overriding basically is used together with the concept of inheritance.', 'start': 6879.867, 'duration': 5.586}], 'summary': 'Method overriding in java allows reusing method signature in different ways, used with inheritance.', 'duration': 29.393, 'max_score': 6856.06, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo6856060.jpg'}], 'start': 5685.506, 'title': 'Abstraction and inheritance in java', 'summary': "Covers abstraction in car design and in java, including the use of 'abstract' keyword, abstract classes, method implementation, inheritance, method overriding, and polymorphism in java.", 'chapters': [{'end': 5716.319, 'start': 5685.506, 'title': 'Abstraction in car design', 'summary': 'Explains the concept of abstraction by using the example of a car manufacturer, who hides the internal technical details from the driver and provides a simplified experience with just a single pedal to control the speed.', 'duration': 30.813, 'highlights': ['The concept of abstraction in car design simplifies the user experience by hiding internal technical details and offering a simplified interface, such as a single pedal to control the speed.', "Abstraction involves showing only the relevant parts to the user while hiding all internal details, providing a user-friendly experience without the need to understand the car's internals."]}, {'end': 6017.172, 'start': 5716.843, 'title': 'Java abstraction concept', 'summary': "Explains the concept of abstraction in java, including the use of the 'abstract' keyword for classes and methods, the rules for abstract classes, and the implementation of abstract classes by child classes, with a practical example.", 'duration': 300.329, 'highlights': ["Java provides the concept of abstraction through the 'abstract' keyword for classes and methods. Java implements abstraction using the 'abstract' keyword for classes and methods, allowing for the creation of abstract classes and abstract methods, which are declared without implementation.", 'An abstract class in Java cannot be instantiated but can be subclassed. In Java, an abstract class cannot be instantiated, but it can be subclassed to create child classes that provide concrete implementations for the abstract methods.', 'Child classes inheriting from an abstract class must provide concrete implementations for all the abstract methods. When a child class inherits from an abstract class in Java, it is required to provide concrete implementations for all the abstract methods defined in the parent abstract class.']}, {'end': 6308.839, 'start': 6017.632, 'title': 'Abstract class and inheritance', 'summary': 'Explains the concept of abstract classes and inheritance, demonstrating how abstract methods are implemented in concrete classes and how the base class constructor gets called during object initialization, showcasing the power of inheritance.', 'duration': 291.207, 'highlights': ['Abstract methods are implemented in concrete classes Both circle and rectangle classes provide their implementation of the abstract methods declared in the graphic object class.', 'Demonstration of object initialization and method invocation based on object type Object type determines the type of methods being called during object initialization, with the draw and resize methods being called from the respective concrete classes.', 'Base class constructor gets called during object initialization During object initialization, the default constructor of the base class is automatically called, showcasing the power of inheritance in calling the parent class constructor.']}, {'end': 6856.06, 'start': 6308.839, 'title': 'Java abstraction, inheritance, and polymorphism', 'summary': 'Explains abstract classes, inheritance, and method overloading in java, emphasizing that abstract classes cannot be instantiated explicitly, java does not support multiple inheritance, and it introduces the concept of polymorphism through method overloading.', 'duration': 547.221, 'highlights': ['Abstract classes cannot be instantiated explicitly Java abstract classes cannot be instantiated explicitly, can only be instantiated by child classes through internal mechanisms of Java.', 'Java does not support multiple inheritance Java does not support multiple inheritance with classes, but does support it with interfaces.', 'Method overloading in Java Explains the concept of method overloading in Java, emphasizing that the method name should remain the same while varying the arguments and return types.', 'Polymorphism through method overloading Introduces method overloading as a way to exhibit polymorphism in Java, allowing a particular method to take different forms containing different logics while having the same name.']}, {'end': 7545.593, 'start': 6856.06, 'title': 'Method overriding in java', 'summary': 'Discusses method overriding in java, explaining the concept and rules of method overriding, and provides a detailed example of method overriding with bicycle and mountain bike classes, demonstrating the output of overridden methods.', 'duration': 689.533, 'highlights': ['Method Overriding: Concept and Inheritance Method overriding is introduced as a concept used in conjunction with inheritance, emphasizing the necessity of inheritance for method overriding and the relationship between superclass and subclass.', 'Rules of Method Overriding Detailed explanation of the rules for method overriding, including the scenario of defining instance and static methods in superclass and subclass, and the concept of method hiding.', 'Example of Method Overriding with Bicycle and Mountain Bike Classes A detailed example is provided, demonstrating the implementation and output of overridden methods in the bicycle and mountain bike classes, showcasing the differences in method behaviors and outputs.']}], 'duration': 1860.087, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo5685506.jpg', 'highlights': ['Abstraction simplifies user experience in car design, hiding internal details', "Java uses 'abstract' keyword for classes and methods to implement abstraction", 'Child classes of abstract class must provide concrete implementations for abstract methods', 'Object type determines method invocation during object initialization', 'Java abstract classes cannot be instantiated explicitly', 'Java does not support multiple inheritance with classes', 'Method overloading in Java allows varying arguments and return types with same name', 'Method overriding is used in conjunction with inheritance in Java']}, {'end': 8532.949, 'segs': [{'end': 7609.9, 'src': 'embed', 'start': 7587.182, 'weight': 0, 'content': [{'end': 7595.649, 'text': 'So try catch block is basically a bunch of syntax which you have to follow to handle different types of exceptions in your programming code.', 'start': 7587.182, 'duration': 8.467}, {'end': 7599.752, 'text': 'And the syntax of the try catch block is pretty straightforward.', 'start': 7596.489, 'duration': 3.263}, {'end': 7609.9, 'text': 'You write try and you put curly braces and then you write whatever code which might throw an exception.', 'start': 7600.513, 'duration': 9.387}], 'summary': 'Using try-catch block to handle exceptions in programming.', 'duration': 22.718, 'max_score': 7587.182, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo7587182.jpg'}, {'end': 7857.155, 'src': 'embed', 'start': 7822.792, 'weight': 1, 'content': [{'end': 7824.353, 'text': "Now there's a finally block as well.", 'start': 7822.792, 'duration': 1.561}, {'end': 7826.875, 'text': 'Remember, this is finally and not final.', 'start': 7825.034, 'duration': 1.841}, {'end': 7835.122, 'text': 'The finally block is used together with the try catch block when you want to perform some cleanup operations.', 'start': 7827.756, 'duration': 7.366}, {'end': 7839.846, 'text': 'Imagine you are opening up a file handler in the try block.', 'start': 7836.203, 'duration': 3.643}, {'end': 7841.027, 'text': "You're doing something with it.", 'start': 7840.046, 'duration': 0.981}, {'end': 7849.332, 'text': 'And then you want to just close the file handler irrespective of the fact if there was an exception in the try block or not.', 'start': 7841.487, 'duration': 7.845}, {'end': 7857.155, 'text': 'Because even if there was an exception, the file handler resource is going to remain open and is going to consume memory in your application.', 'start': 7849.912, 'duration': 7.243}], 'summary': 'The finally block is used to perform cleanup operations, such as closing file handlers, even if exceptions occur.', 'duration': 34.363, 'max_score': 7822.792, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo7822792.jpg'}, {'end': 7997.696, 'src': 'embed', 'start': 7972.626, 'weight': 3, 'content': [{'end': 7978.787, 'text': "And then, because I don't want to end up in a position where I get an index out of bound exception.", 'start': 7972.626, 'duration': 6.161}, {'end': 7986.588, 'text': 'index out of bound exception comes if you are trying to access an index which is illegal, which is does not having any value.', 'start': 7978.787, 'duration': 7.801}, {'end': 7990.489, 'text': "So I'm putting a catch block and catching the index out of bound exception.", 'start': 7987.248, 'duration': 3.241}, {'end': 7993.495, 'text': 'and just printing the message of the exception.', 'start': 7991.215, 'duration': 2.28}, {'end': 7997.696, 'text': "And then just for simplicity, I'm showing a finally block as well.", 'start': 7994.256, 'duration': 3.44}], 'summary': 'Handling index out of bound exception with catch and finally blocks.', 'duration': 25.07, 'max_score': 7972.626, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo7972626.jpg'}, {'end': 8131.662, 'src': 'embed', 'start': 8087.236, 'weight': 2, 'content': [{'end': 8093.338, 'text': 'irrespective of the fact whether an exception occurred or not, my finally block always gets executed.', 'start': 8087.236, 'duration': 6.102}, {'end': 8098.339, 'text': "let's fix this and see if the finally block gets executed, even if there is no exception.", 'start': 8093.338, 'duration': 5.001}, {'end': 8104.32, 'text': "so now accessing gets you and let's see what happens.", 'start': 8098.339, 'duration': 5.981}, {'end': 8109.181, 'text': 'yep, i access the element 10, no exception, but the finally block still gets executed.', 'start': 8104.32, 'duration': 4.861}, {'end': 8114.236, 'text': 'So this is to assert our understanding that the finally block will always be executed,', 'start': 8109.514, 'duration': 4.722}, {'end': 8117.597, 'text': "irrespective of the fact whether there was an exception or there wasn't.", 'start': 8114.236, 'duration': 3.361}, {'end': 8121.939, 'text': 'Now you can also nest different try blocks if you want to.', 'start': 8119.138, 'duration': 2.801}, {'end': 8125.78, 'text': "Let's look at an example where I have multiple try blocks.", 'start': 8122.799, 'duration': 2.981}, {'end': 8131.662, 'text': 'So you can write a try within a try within a try if you want, and you can go as deep as you want.', 'start': 8126.14, 'duration': 5.522}], 'summary': 'Finally block always executes, even without exception.', 'duration': 44.426, 'max_score': 8087.236, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo8087236.jpg'}, {'end': 8455.127, 'src': 'embed', 'start': 8392.483, 'weight': 5, 'content': [{'end': 8404.429, 'text': 'i covered in the collections framework session that hash set is part of the set interface hierarchy and sets have a property that They keep the collections element unique.', 'start': 8392.483, 'duration': 11.946}, {'end': 8414.235, 'text': 'If you try to add duplicate elements to a set, it will not accept that and it will still maintain the uniqueness property of the collection.', 'start': 8404.909, 'duration': 9.326}, {'end': 8422.74, 'text': 'HashSet provides some additional features to the set, which is that in this case, the elements would be accessed in a random fashion.', 'start': 8414.695, 'duration': 8.045}, {'end': 8425.942, 'text': 'They will not be accessed in a fixed sequence.', 'start': 8423.04, 'duration': 2.902}, {'end': 8429.284, 'text': 'Rather, they will be accessed in a random fashion.', 'start': 8426.322, 'duration': 2.962}, {'end': 8431.205, 'text': 'Hence the name HashSet.', 'start': 8429.644, 'duration': 1.561}, {'end': 8437.982, 'text': 'So if you read about this particular class in the documentation, it will basically cover all the things which I just described.', 'start': 8431.741, 'duration': 6.241}, {'end': 8441.003, 'text': 'It also accepts null elements if you want to insert null.', 'start': 8438.323, 'duration': 2.68}, {'end': 8445.464, 'text': "But why would you try to insert null? That's the first question which you should ask.", 'start': 8441.203, 'duration': 4.261}, {'end': 8450.866, 'text': 'It again provides similar kind of utility methods to the list interface collection hierarchy we covered,', 'start': 8445.984, 'duration': 4.882}, {'end': 8455.127, 'text': 'like some utility methods to add the elements, to remove the elements,', 'start': 8450.866, 'duration': 4.261}], 'summary': 'Hashset in collections framework maintains unique elements, accessed randomly.', 'duration': 62.644, 'max_score': 8392.483, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo8392483.jpg'}], 'start': 7545.593, 'title': 'Exception handling in java', 'summary': 'Encompasses the basics of exception handling in java, covering try-catch blocks for different exceptions, the purpose of the finally block, and examples of handling array index out of bound exceptions. it also discusses the usage and properties of hashset in java.', 'chapters': [{'end': 7923.739, 'start': 7545.593, 'title': 'Exception handling in java', 'summary': 'Covers the basics of exception handling in java, including the use of try-catch blocks to handle different types of exceptions, and the purpose of the finally block for cleanup operations, providing a comprehensive understanding of the concept.', 'duration': 378.146, 'highlights': ['The chapter covers the use of try-catch blocks to handle different types of exceptions The try-catch block in Java is used to handle different types of exceptions in programming code, providing a mechanism to catch and handle specific exceptions based on business requirements.', 'The purpose of the finally block for cleanup operations, ensuring certain code is always executed The finally block in Java is used to perform cleanup operations, such as closing file handlers or database connections, irrespective of whether an exception occurs or not, thus ensuring that certain code is always executed.', 'The sequential nature of catch blocks and the option to combine exception types in a single handler Catch blocks work sequentially in Java, and multiple exception types can be combined in a single catch block using the pipe operator, particularly useful when the logic for processing different exceptions is the same.']}, {'end': 8174.96, 'start': 7924.819, 'title': 'Understanding try-catch-finally', 'summary': 'Illustrates the usage of try-catch-finally statements in java, demonstrating handling of index out of bounds exception, with examples of nested try blocks and the importance of finally block in executing code, emphasizing that it always gets executed, irrespective of the presence of an exception.', 'duration': 250.141, 'highlights': ['The finally block always gets executed, irrespective of the presence of an exception. The finally block in the try-catch-finally statement is shown to always execute, even if no exception occurs, emphasizing the reliability of the finally block, as demonstrated by accessing an element without an exception, yet the finally block still gets executed.', 'Demonstrates the handling of index out of bounds exception in a try-catch block. The chapter provides an example of handling an index out of bounds exception by catching it in a catch block immediately after attempting to access an element that does not exist in an array, highlighting the functionality of try-catch blocks in error handling.', 'Illustrates the usage of nested try blocks and the trade-off of complexity. The chapter demonstrates the nesting of try blocks and warns about the increased complexity of the program with more indentations, emphasizing the trade-off between the depth of nesting and program complexity in error handling.']}, {'end': 8375.574, 'start': 8176.201, 'title': 'Handling array index out of bound exceptions', 'summary': 'Discusses the propagation of array index out of bound exceptions through nested try-catch blocks in a java program, with the final exception being caught and printed by the catch block of the outermost try block.', 'duration': 199.373, 'highlights': ['The program demonstrates the propagation of array index out of bound exceptions through multiple nested try-catch blocks, with the exception being re-thrown and caught at different levels of hierarchy.', "The catch block in block one catches the array index out of bound exception and prints the message, 'array index out of bounds exception in block one'.", "Java automatically links the printed exception message to the matching class name, demonstrating the language's functionality.", "A redundant catch block without a corresponding try block is showcased, highlighting that it is of no use and can be removed without affecting the program's compilation."]}, {'end': 8532.949, 'start': 8375.574, 'title': 'Using hashset in java', 'summary': 'Covers the usage of hashset in java, including its unique property of maintaining elements, accessing elements in a random fashion, accepting null elements, providing utility methods for adding, removing, and checking elements, and the lack of synchronization in the collection.', 'duration': 157.375, 'highlights': ['HashSet maintains the uniqueness property of the collection, not accepting duplicate elements.', 'Elements in HashSet are accessed in a random fashion, providing additional features to the set.', 'HashSet accepts null elements and provides utility methods for adding, removing, and checking the size and existence of elements in the collection.', 'Usage of HashSet in Java, including creating a HashSet, specifying size, and its memory footprint.']}], 'duration': 987.356, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo7545593.jpg', 'highlights': ['The chapter covers the use of try-catch blocks to handle different types of exceptions', 'The purpose of the finally block for cleanup operations, ensuring certain code is always executed', 'The finally block always gets executed, irrespective of the presence of an exception', 'Demonstrates the handling of index out of bounds exception in a try-catch block', 'Illustrates the usage of nested try blocks and the trade-off of complexity', 'HashSet maintains the uniqueness property of the collection, not accepting duplicate elements', 'Elements in HashSet are accessed in a random fashion, providing additional features to the set', 'HashSet accepts null elements and provides utility methods for adding, removing, and checking the size and existence of elements in the collection']}, {'end': 10744.397, 'segs': [{'end': 8761.807, 'src': 'embed', 'start': 8716.307, 'weight': 0, 'content': [{'end': 8721.011, 'text': 'original c was maintained and when you try to add a duplicate value with the same value,', 'start': 8716.307, 'duration': 4.704}, {'end': 8725.614, 'text': 'a duplicate element with the same value hashtag is going to reject that.', 'start': 8721.011, 'duration': 4.603}, {'end': 8734.82, 'text': 'so that actually proves that the set will maintain the uh the uniqueness property and it will reject all the duplicates subsequently.', 'start': 8725.614, 'duration': 9.206}, {'end': 8736.942, 'text': 'that was about the add uh property.', 'start': 8734.82, 'duration': 2.122}, {'end': 8741.125, 'text': "now let's understand another interesting property of the contains method.", 'start': 8736.942, 'duration': 4.183}, {'end': 8747.596, 'text': 'contains method of the set class is used to find if an element exists in the set or not.', 'start': 8741.125, 'duration': 6.471}, {'end': 8754.581, 'text': 'So you can just use the hashSet variable name .contains and just type the actual element.', 'start': 8748.097, 'duration': 6.484}, {'end': 8761.807, 'text': 'And this is going to return true or false based on whether this element is present in the hashSet or not present in the hashSet.', 'start': 8754.922, 'duration': 6.885}], 'summary': 'Hashset maintains uniqueness, rejects duplicates. contains method checks element existence.', 'duration': 45.5, 'max_score': 8716.307, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo8716307.jpg'}, {'end': 8943.456, 'src': 'embed', 'start': 8920.914, 'weight': 2, 'content': [{'end': 8930.479, 'text': 'I discussed briefly about tree set that the main reason you will use tree set is basically when you want to maintain natural ordering of the elements.', 'start': 8920.914, 'duration': 9.565}, {'end': 8937.954, 'text': "If you're adding your custom elements, then you need to tell Java how to compare and sort and order the elements.", 'start': 8931.112, 'duration': 6.842}, {'end': 8943.456, 'text': "But that's for another day when we'll cover about the detailed comparable and comparator interfaces.", 'start': 8938.294, 'duration': 5.162}], 'summary': 'Tree set maintains natural ordering of elements in java.', 'duration': 22.542, 'max_score': 8920.914, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo8920914.jpg'}, {'end': 9131.441, 'src': 'embed', 'start': 9107.316, 'weight': 3, 'content': [{'end': 9116.521, 'text': 'b is printed after a, so the natural order of the elements in this collection is automatically maintained by tree set.', 'start': 9107.316, 'duration': 9.205}, {'end': 9118.762, 'text': 'so what under the whole tree set does here?', 'start': 9116.521, 'duration': 2.241}, {'end': 9122.253, 'text': 'that it looks at the type, which is a predefined type in Java?', 'start': 9118.762, 'duration': 3.491}, {'end': 9124.095, 'text': 'String is a predefined class in Java.', 'start': 9122.373, 'duration': 1.722}, {'end': 9131.441, 'text': 'So it will use its own sorting algorithm to sort the strings based on their natural order of sequence.', 'start': 9124.455, 'duration': 6.986}], 'summary': 'Tree set in java maintains natural order using predefined sorting algorithm for strings.', 'duration': 24.125, 'max_score': 9107.316, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo9107316.jpg'}, {'end': 9494.164, 'src': 'embed', 'start': 9463.634, 'weight': 4, 'content': [{'end': 9470.671, 'text': 'so map uses a the set class to store its keys and to store the values.', 'start': 9463.634, 'duration': 7.037}, {'end': 9472.772, 'text': 'it generally uses a list class.', 'start': 9470.671, 'duration': 2.101}, {'end': 9473.393, 'text': 'so you can see.', 'start': 9472.772, 'duration': 0.621}, {'end': 9482.037, 'text': 'map is basically reusing the classes from the collections framework, sets for storing the keys and lists for storing the values.', 'start': 9473.393, 'duration': 8.644}, {'end': 9486.18, 'text': "that's the basic anatomy and basic idea of how map is working.", 'start': 9482.037, 'duration': 4.143}, {'end': 9494.164, 'text': 'now you see some classes here called abstract map and sorted map and again similar to the set hierarchy whenever you see the sorted word.', 'start': 9486.18, 'duration': 7.984}], 'summary': 'Map uses set class for keys and list class for values, reusing collections framework classes.', 'duration': 30.53, 'max_score': 9463.634, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo9463634.jpg'}, {'end': 9929.567, 'src': 'embed', 'start': 9904.971, 'weight': 5, 'content': [{'end': 9911.595, 'text': "After that I'm showcasing another utility method of this particular class which you can use to find the size of the map.", 'start': 9904.971, 'duration': 6.624}, {'end': 9917.219, 'text': 'So you can just call map dot size and it will print the size of the map.', 'start': 9912.076, 'duration': 5.143}, {'end': 9922.985, 'text': "After that I'm printing the actual map, the whole map, And then I'm using some more methods.", 'start': 9918.119, 'duration': 4.866}, {'end': 9929.567, 'text': "but again, let's comment this code and let's understand this code one by one, so that there is no confusion.", 'start': 9922.985, 'duration': 6.582}], 'summary': 'Demonstrating a utility method to find map size and printing the entire map.', 'duration': 24.596, 'max_score': 9904.971, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo9904971.jpg'}, {'end': 10416.914, 'src': 'embed', 'start': 10393.472, 'weight': 6, 'content': [{'end': 10402.254, 'text': "then the tree map will automatically sort all the map entries in an integer sorted fashion, where you'll see the natural number,", 'start': 10393.472, 'duration': 8.782}, {'end': 10405.286, 'text': 'sorting behavior like 123 and so on.', 'start': 10402.254, 'duration': 3.032}, {'end': 10416.914, 'text': 'Similarly, if you store alphabets or strings, then those will be sorted in a natural sorting alphabetical order starting from A to Z.', 'start': 10405.766, 'duration': 11.148}], 'summary': 'The tree map automatically sorts entries in integer or alphabetical order.', 'duration': 23.442, 'max_score': 10393.472, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo10393472.jpg'}, {'end': 10474.813, 'src': 'embed', 'start': 10455.339, 'weight': 7, 'content': [{'end': 10466.786, 'text': 'then in those cases you will have to provide your own sorting implementation And we will cover about what kind of sorting implementation you can provide in those kinds of scenarios in the upcoming lectures.', 'start': 10455.339, 'duration': 11.447}, {'end': 10474.813, 'text': "For now, we will have a look at an example of tree map where you can see that I've created a class which is called tree map demo.", 'start': 10467.287, 'duration': 7.526}], 'summary': 'Learn about custom sorting implementations for scenarios in upcoming lectures.', 'duration': 19.474, 'max_score': 10455.339, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo10455339.jpg'}, {'end': 10638.498, 'src': 'embed', 'start': 10611.107, 'weight': 8, 'content': [{'end': 10616.188, 'text': 'when I tried to access the map, it provided the access in that sorted sequence only.', 'start': 10611.107, 'duration': 5.081}, {'end': 10624.81, 'text': 'No matter how many times you run this particular program, it is always going to return the map in the same format, in the same sequence.', 'start': 10616.768, 'duration': 8.042}, {'end': 10628.83, 'text': 'The sequence of representation of the elements is not going to change.', 'start': 10624.95, 'duration': 3.88}, {'end': 10631.411, 'text': 'And you can basically do the similar behavior.', 'start': 10629.39, 'duration': 2.021}, {'end': 10638.498, 'text': "For example, if I just change this to string and integer, let's do it like this.", 'start': 10631.451, 'duration': 7.047}], 'summary': 'The map always returns in a sorted sequence with consistent behavior.', 'duration': 27.391, 'max_score': 10611.107, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo10611107.jpg'}, {'end': 10734.101, 'src': 'embed', 'start': 10710.925, 'weight': 9, 'content': [{'end': 10718.69, 'text': 'Now you can and I would strongly recommend you to go and read about all the other methods which are available in the tree map, which you can use.', 'start': 10710.925, 'duration': 7.765}, {'end': 10723.233, 'text': 'For example, how can you remove elements? How can you, uh?', 'start': 10718.991, 'duration': 4.242}, {'end': 10726.015, 'text': 'how can you iterate the elements of the tree map, et cetera?', 'start': 10723.233, 'duration': 2.782}, {'end': 10734.101, 'text': "In fact, the iteration is going to be exactly the same way as we have seen in the case of hash maps, because iteration behavior doesn't change.", 'start': 10726.696, 'duration': 7.405}], 'summary': 'Explore various methods for manipulating and iterating through tree maps.', 'duration': 23.176, 'max_score': 10710.925, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo10710925.jpg'}], 'start': 8532.949, 'title': 'Working with java data structures', 'summary': 'Covers using add method in hash set, understanding hashset and treeset in java, tree set and map framework in java, using java map methods, and treemaps in java, emphasizing unique functionalities and properties with practical examples.', 'chapters': [{'end': 8736.942, 'start': 8532.949, 'title': 'Using add method in hash set', 'summary': 'Demonstrates the use of the add method in a hash set to add elements, highlighting the uniqueness property of sets and the boolean return value of the add method, showing that duplicate elements are rejected and not added.', 'duration': 203.993, 'highlights': ['The add method in the hash set class is used to add elements to the collection, and attempting to add duplicate elements demonstrates the uniqueness property of sets.', "The add method returns a boolean value, where 'true' indicates a successful addition of the element and 'false' indicates rejection of the addition, showcasing the behavior of the hash set when adding duplicate elements."]}, {'end': 9032.372, 'start': 8736.942, 'title': 'Understanding hashset and treeset in java', 'summary': "Discusses the functionalities of hashset, such as checking for an element's existence, removing elements, and iterating through the set, while also providing a brief introduction to treeset and its usage for maintaining natural ordering of elements, emphasizing the need for comparator interfaces and thread safety.", 'duration': 295.43, 'highlights': ['HashSet contains method returns true or false based on the existence of an element in the set, demonstrated by checking if the set contains a specific element, which returns true. The contains method of the HashSet class is used to find if an element exists in the set or not. It returns true or false based on whether the element is present in the HashSet. Demonstrated by checking if the set contains a specific element, which returns true.', 'Demonstration of the remove operation in HashSet, showcasing the successful removal of an element and printing the modified HashSet. Demonstration of the remove operation in HashSet, showcasing the successful removal of an element and printing the modified HashSet.', 'Explanation of iteration over HashSet and printing of its elements, displaying the functionality of iteration similar to list implementations. Explanation of iteration over HashSet and printing of its elements, displaying the functionality of iteration similar to list implementations.', 'Introduction to TreeSet and its usage for maintaining natural ordering of elements, emphasizing the need for comparator interfaces and thread safety. Introduction to TreeSet and its usage for maintaining natural ordering of elements, emphasizing the need for comparator interfaces and thread safety.']}, {'end': 9903.951, 'start': 9032.832, 'title': 'Tree set and map framework in java', 'summary': 'Covers the functionality and properties of tree set and map framework in java. it explores the natural order and uniqueness property of elements in tree set, and the key-value arrangement and implementation classes in map framework, highlighting the classes and their properties.', 'duration': 871.119, 'highlights': ['The natural order of elements in TreeSet is maintained by the predefined sorting algorithm in Java, demonstrated by adding elements in random order and observing the output.', "TreeSet follows the uniqueness property, rejecting the second addition of an element if it is already present in the collection, exemplified by the rejection of the second addition of 'c' due to its previous presence.", 'In the Map framework, the keys are stored as a set to maintain uniqueness, while the values are stored using a list, and different implementation classes like HashMap, TreeMap, and LinkedHashMap provide various functionalities such as random access, sorted representation, and maintenance of insertion order.']}, {'end': 10321.327, 'start': 9904.971, 'title': 'Using java map methods', 'summary': 'Covers how to use various methods in java map, including showcasing the size of the map, printing the map, checking for key presence, fetching values, and iterating over keys and entries.', 'duration': 416.356, 'highlights': ['The chapter covers how to use various methods in Java Map, including showcasing the size of the map, printing the map, checking for key presence, fetching values, and iterating over keys and entries.', 'The map size is printed as three, representing the three entries added to the map.', 'The contains key method is demonstrated, showcasing how to check for the presence of a key in the map and fetch its corresponding value.', 'The method for iterating over the key set and printing key-value pairs is highlighted, providing a way to iterate over all the keys in the map.', 'The usage of map.entryset to iterate over all the entries in the map and print their key-value pairs is explained, offering a simpler alternative to accessing keys and values individually.']}, {'end': 10744.397, 'start': 10321.667, 'title': 'Treemaps in java', 'summary': 'Delves into the concept of treemaps in java, highlighting their natural ordering behavior for keys and demonstrating how custom sorting implementations can be provided for custom classes, alongside an example showcasing the sorted representation of elements.', 'duration': 422.73, 'highlights': ['The TreeMap automatically sorts map entries based on the keys, such as integers or alphabets, in a natural order, demonstrated through examples with integer-to-string and string-to-integer mappings.', 'Custom classes as keys in a TreeMap require a sorting implementation to be provided, as Java does not inherently know how to sort them, which will be covered in upcoming lectures.', 'The demonstration of TreeMap behavior includes the consistent retrieval of elements in the sorted sequence, regardless of the number of iterations, showcasing the predictable nature of TreeMap representations.', 'The overview advises further exploration of the various methods available in TreeMap for element removal, iteration, and other operations, highlighting the similarity of iteration behavior to HashMaps and the extensive support for different methods.']}], 'duration': 2211.448, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo8532949.jpg', 'highlights': ['The add method in the hash set class demonstrates the uniqueness property of sets', 'HashSet contains method returns true or false based on the existence of an element', 'Introduction to TreeSet and its usage for maintaining natural ordering of elements', 'The natural order of elements in TreeSet is maintained by the predefined sorting algorithm', 'In the Map framework, keys are stored as a set to maintain uniqueness, while values are stored using a list', 'The chapter covers how to use various methods in Java Map, including showcasing the size of the map', 'The TreeMap automatically sorts map entries based on the keys in a natural order', 'Custom classes as keys in a TreeMap require a sorting implementation to be provided', 'The demonstration of TreeMap behavior includes the consistent retrieval of elements in the sorted sequence', 'The overview advises further exploration of the various methods available in TreeMap']}, {'end': 11912.807, 'segs': [{'end': 10832.228, 'src': 'embed', 'start': 10803.283, 'weight': 12, 'content': [{'end': 10807.826, 'text': 'So this tool will be able to handle that particular requirement or that project.', 'start': 10803.283, 'duration': 4.543}, {'end': 10817.032, 'text': 'So it simplifies the day to day work of a Java developer and helps them in their projects for performing daily to daily activities.', 'start': 10808.406, 'duration': 8.626}, {'end': 10823.316, 'text': 'Now Maven also helps us in getting the specific jar files for each and every project.', 'start': 10817.492, 'duration': 5.824}, {'end': 10832.228, 'text': 'So if you are going, you can pretty much make a JAR file, WAR file or ER file, any kind of a package mechanism you can follow for your Maven there.', 'start': 10823.843, 'duration': 8.385}], 'summary': "Maven simplifies java developers' daily activities and helps in creating various package mechanisms for projects.", 'duration': 28.945, 'max_score': 10803.283, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo10803283.jpg'}, {'end': 10963.247, 'src': 'embed', 'start': 10914.399, 'weight': 0, 'content': [{'end': 10924.603, 'text': 'It simplifies the day-to-day work of a Java developer and helps them to automate most of the compilation or build perspective tasks on the projects.', 'start': 10914.399, 'duration': 10.204}, {'end': 10933.906, 'text': "Now, Maven is a kind of a BOM-based project, so it's also known as a project-object model,", 'start': 10927.744, 'duration': 6.162}, {'end': 10938.048, 'text': 'and it focuses on simplification and standardization of the building process.', 'start': 10933.906, 'duration': 4.142}, {'end': 10941.312, 'text': 'In the process, it takes care of all the followings here.', 'start': 10938.55, 'duration': 2.762}, {'end': 10946.856, 'text': 'Builds, dependencies, reports, distribution, releases, mailing list.', 'start': 10941.832, 'duration': 5.024}, {'end': 10951.159, 'text': 'So, all these things are being taken care as in this particular process here.', 'start': 10947.236, 'duration': 3.923}, {'end': 10958.584, 'text': "And ultimately, it's an availability inside the Maven that how the overall build process needs to be automated and standardized here.", 'start': 10951.359, 'duration': 7.225}, {'end': 10963.247, 'text': 'So all these particular mechanisms can be followed as such over here,', 'start': 10959.044, 'duration': 4.203}], 'summary': 'Maven simplifies java development, automating tasks like builds, dependencies, and reports for standardization and efficiency.', 'duration': 48.848, 'max_score': 10914.399, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo10914399.jpg'}, {'end': 11135.69, 'src': 'embed', 'start': 11077.151, 'weight': 3, 'content': [{'end': 11080.753, 'text': 'So if you feel that the dependency is something which is not there in the local,', 'start': 11077.151, 'duration': 3.602}, {'end': 11087.898, 'text': 'it will be first downloaded from the remote repository and then it will be utilized or will be referenced onto the local machine there.', 'start': 11080.753, 'duration': 7.145}, {'end': 11092.6, 'text': 'And central repository is refers to the Maven community repository there,', 'start': 11088.878, 'duration': 3.722}, {'end': 11097.879, 'text': 'where you will be able to see each and every dependency present on that repository.', 'start': 11092.6, 'duration': 5.279}, {'end': 11103.26, 'text': "So Maven downloads the repositories from here in the local repository whenever they're needed or whenever required.", 'start': 11098.319, 'duration': 4.941}, {'end': 11109.241, 'text': 'All these dependencies are cached locally, from where it will be referenced in the next, or you know,', 'start': 11103.7, 'duration': 5.541}, {'end': 11114.103, 'text': 'whenever we want to refer that we will be able to do that particular reference easily on that part.', 'start': 11109.241, 'duration': 4.862}, {'end': 11119.604, 'text': 'So this is the way that how the three particular repositories or Maven repositories,', 'start': 11114.983, 'duration': 4.621}, {'end': 11123.685, 'text': 'really helps us for performing various kind of automations as such here.', 'start': 11119.604, 'duration': 4.081}, {'end': 11127.005, 'text': 'Right now?', 'start': 11126.345, 'duration': 0.66}, {'end': 11128.887, 'text': 'what are the basic concepts of Maven here?', 'start': 11127.005, 'duration': 1.882}, {'end': 11135.69, 'text': 'So some of the couple of basic concepts which is present in Maven is like for the first time we have the project object model.', 'start': 11128.967, 'duration': 6.723}], 'summary': 'Maven downloads and caches dependencies from remote repository to local, enabling easy referencing and automation.', 'duration': 58.539, 'max_score': 11077.151, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo11077151.jpg'}, {'end': 11173.746, 'src': 'embed', 'start': 11150.607, 'weight': 4, 'content': [{'end': 11159.975, 'text': 'Versioning information is also stored as such in this XML file, in this particular POM reference file as such over here.', 'start': 11150.607, 'duration': 9.368}, {'end': 11168.021, 'text': 'The XML file which is there in the project home directory, so maven is something which search for the POM file in the current directory.', 'start': 11160.615, 'duration': 7.406}, {'end': 11173.746, 'text': "If it's able to find that particular POM file, so it will execute or it will proceed with the build step.", 'start': 11168.402, 'duration': 5.344}], 'summary': 'Maven searches for pom file in project directory for build execution.', 'duration': 23.139, 'max_score': 11150.607, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo11150607.jpg'}, {'end': 11265.259, 'src': 'embed', 'start': 11236.349, 'weight': 6, 'content': [{'end': 11241.553, 'text': 'And if it is not present in local, then only it will go to the remote or the central repository.', 'start': 11236.349, 'duration': 5.204}, {'end': 11244.996, 'text': 'Then we have build life cycles and phase and goals there.', 'start': 11242.734, 'duration': 2.262}, {'end': 11250.901, 'text': 'So build life cycles consists of the sequence of build phases and each field phase consists of sequence of goals here.', 'start': 11245.056, 'duration': 5.845}, {'end': 11258.134, 'text': 'Now, each goal is responsible for performing a specific task when a phase is running all the goals related to that phase.', 'start': 11251.57, 'duration': 6.564}, {'end': 11265.259, 'text': 'And its plugins are also used to performing the compilation, preparing the artifacts, downloading the dependencies,', 'start': 11258.535, 'duration': 6.724}], 'summary': 'Build life cycles consist of build phases and goals, with plugins used for compilation and artifact preparation.', 'duration': 28.91, 'max_score': 11236.349, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo11236349.jpg'}, {'end': 11335.55, 'src': 'embed', 'start': 11313.461, 'weight': 7, 'content': [{'end': 11324.89, 'text': 'Then a build profile helps in customizing the build for the different environments so that also we can perform as such while work forming or while working on the different components and the different management here.', 'start': 11313.461, 'duration': 11.429}, {'end': 11331.134, 'text': 'So a build profile is something which you can configure, you can utilize, and depending on that build profile,', 'start': 11325.31, 'duration': 5.824}, {'end': 11335.55, 'text': 'we will be deciding whether to proceed further or how to decide on that particular factor.', 'start': 11331.134, 'duration': 4.416}], 'summary': 'Build profiles customize builds for different environments, aiding in decision-making.', 'duration': 22.089, 'max_score': 11313.461, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo11313461.jpg'}, {'end': 11394.103, 'src': 'embed', 'start': 11353.899, 'weight': 8, 'content': [{'end': 11362.243, 'text': 'Now, the goal of using these specific plugins is to automate some of the basic stuff like compilation, creating the var file, creating the jar file.', 'start': 11353.899, 'duration': 8.344}, {'end': 11364.097, 'text': 'So when we are using the plugins,', 'start': 11362.796, 'duration': 1.301}, {'end': 11371.562, 'text': "we don't have to configure the steps or write the steps that how these specific plugins should be installed or should be referenced.", 'start': 11364.097, 'duration': 7.465}, {'end': 11379.408, 'text': "It's ultimately the internal configurations which we are looking forward or which we are using while working on these specific plugins.", 'start': 11371.943, 'duration': 7.465}, {'end': 11387.141, 'text': 'you can download some couple of plugins using which we will be able to decide that how a specific goals needs to be achieved here.', 'start': 11380.1, 'duration': 7.041}, {'end': 11390.242, 'text': 'so maven has its own standard plugins that can be utilized.', 'start': 11387.141, 'duration': 3.101}, {'end': 11394.103, 'text': 'so if, uh, you know, want to go for a custom one, so you can do that.', 'start': 11390.242, 'duration': 3.861}], 'summary': 'Using specific plugins to automate basic tasks in maven, including compilation and creating jar files. internal configurations are utilized, and standard maven plugins can be utilized or custom ones can be created.', 'duration': 40.204, 'max_score': 11353.899, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo11353899.jpg'}], 'start': 10744.397, 'title': 'Maven: build automation and dependency management', 'summary': 'Covers the usage and benefits of maven, emphasizing its role in simplifying day-to-day tasks of java developers by automating compilation, managing dependencies, and providing a standardized build process. it also explains maven repositories, basic concepts, automation, architecture, and dependency management, offering insights into project object model, build life cycles, plugins, and customization of dependencies in the pom.xml file.', 'chapters': [{'end': 10963.247, 'start': 10744.397, 'title': 'Maven: build automation and dependency management', 'summary': 'Discusses the usage and benefits of maven, an open source build tool developed by the apache group, emphasizing its ability to simplify day-to-day tasks of java developers by automating compilation, managing dependencies, and providing a standardized build process.', 'duration': 218.85, 'highlights': ['Maven is a popular open source build tool developed by the Apache group, used for building, publishing, and deploying multiple projects at once. Maven serves as a build tool for various programming languages, simplifying day-to-day tasks of developers by automating compilation and build perspective tasks.', 'Maven simplifies the day-to-day work of Java developers, automating compilation and build perspective tasks on the projects. Maven streamlines the work of Java developers by automating compilation and build tasks, reducing manual effort and increasing efficiency.', "Maven focuses on simplification and standardization of the building process, including builds, dependencies, reports, distribution, releases, and mailing list management. Maven's project-object model (POM) simplifies and standardizes the building process, taking care of builds, dependencies, reports, distribution, releases, and mailing list management."]}, {'end': 11331.134, 'start': 10963.247, 'title': 'Understanding maven repositories and basic concepts', 'summary': 'Explains the function of maven repositories, including local, remote, and central repositories, alongside the basic concepts of maven, such as project object model, dependencies and repositories, build life cycles and phases, goals, plugins, and build profiles.', 'duration': 367.887, 'highlights': ["Maven repositories include local, remote, and central repositories for accessing and storing dependencies, with the central repository serving as the Maven community repository. The chapter details the three types of Maven repositories: local, remote, and central, and emphasizes the central repository's role as the Maven community repository.", 'The project object model (POM) file contains information about the project, build processes, versioning, and acts as a crucial build script for Maven. The POM file is highlighted as a crucial component of Maven, containing essential project information and functioning as a build script for Maven.', 'Dependencies in Maven refer to JAR files, and Maven automatically downloads dependencies from the repositories, caching them locally, and then referencing them when needed. The concept of dependencies in Maven, including their retrieval from repositories and local caching, is explained in detail.', 'Build life cycles, phases, and goals, along with the use of plugins, are crucial for performing specific tasks during the build process. The chapter elaborates on the significance of build life cycles, phases, and goals, highlighting their role in task execution during the build process.', 'Build profiles enable customization of the build process for different environments, allowing for specific configurations and build automations. The explanation of build profiles in Maven, their role in customizing the build process for different environments, and enabling specific configurations is provided.']}, {'end': 11678.412, 'start': 11331.134, 'title': 'Maven automation and architecture', 'summary': 'Discusses maven automation and architecture, highlighting the use of maven plugins for automation, the maven architecture, the maven build lifecycle, and the advantages of apache maven, emphasizing its role in simplifying the project building process and increasing performance.', 'duration': 347.278, 'highlights': ['Maven plugins automate basic tasks like compilation and file creation, increasing efficiency and reducing manual configuration. The goal of using specific Maven plugins is to automate tasks like compilation, creating the var file, and creating the jar file, reducing the need for manual configuration and increasing efficiency.', 'The Maven architecture involves processing components, dependencies, plugins, life cycles, phases, goals, and build profiles, connecting to the central repository to achieve automation. The Maven architecture includes processing components, dependencies, plugins, life cycles, phases, goals, and build profiles, connecting to the central repository to achieve automation and provide necessary information.', 'The Maven build lifecycle consists of default, clean, and site phases, each handling specific tasks such as project deployment, cleaning, and creation of project sites documentation. The Maven build lifecycle includes default, clean, and site phases, which handle tasks like project deployment, cleaning, and creation of project sites documentation, providing a structured approach to build automation.', 'The Maven build cycle encompasses different phases and stages including compile, test compile, test, package, integration test, verify, install, and deploy, streamlining the build automation process. The Maven build cycle involves different phases and stages such as compile, test compile, test, package, integration test, verify, install, and deploy, streamlining the build automation process for efficiency.', 'Apache Maven simplifies project build processes, increases performance, and automatically handles downloading jar files and dependencies, offering easy access to all required information. Apache Maven simplifies project build processes, increases performance, automatically handles downloading jar files and dependencies, and provides easy access to all required information, enhancing the project building process.']}, {'end': 11912.807, 'start': 11680.532, 'title': 'Maven dependency management', 'summary': "Explains how to add new dependencies in maven by editing the pom.xml file, running 'mvn archetype generate' to create a new project, and customizing the dependencies to generate the desired artifacts in the target directory.", 'duration': 232.275, 'highlights': ["Running 'MVN archetype generate' downloads necessary plugins and prompts for configuration, allowing the user to create a new Maven project, with a specified group ID, artifact ID, and version.", 'The pom.xml file contains attributes for version, group ID, artifact ID, and default JUnit dependency, with the option to customize and add custom dependencies.', "Executing 'MVN clean install' in a Maven project directory generates the desired artifacts, such as jar files, in the target directory."]}], 'duration': 1168.41, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo10744397.jpg', 'highlights': ['Maven simplifies day-to-day tasks of Java developers, automating compilation and build tasks, reducing manual effort and increasing efficiency.', 'Maven serves as a build tool for various programming languages, simplifying day-to-day tasks of developers by automating compilation and build perspective tasks.', 'Maven focuses on simplification and standardization of the building process, including builds, dependencies, reports, distribution, releases, and mailing list management.', 'Maven repositories include local, remote, and central repositories for accessing and storing dependencies, with the central repository serving as the Maven community repository.', 'The project object model (POM) file contains information about the project, build processes, versioning, and acts as a crucial build script for Maven.', 'Dependencies in Maven refer to JAR files, and Maven automatically downloads dependencies from the repositories, caching them locally, and then referencing them when needed.', 'Build life cycles, phases, and goals, along with the use of plugins, are crucial for performing specific tasks during the build process.', 'Build profiles enable customization of the build process for different environments, allowing for specific configurations and build automations.', 'Maven plugins automate basic tasks like compilation and file creation, increasing efficiency and reducing manual configuration.', 'The Maven architecture involves processing components, dependencies, plugins, life cycles, phases, goals, and build profiles, connecting to the central repository to achieve automation.', 'The Maven build lifecycle consists of default, clean, and site phases, each handling specific tasks such as project deployment, cleaning, and creation of project sites documentation.', 'The Maven build cycle encompasses different phases and stages including compile, test compile, test, package, integration test, verify, install, and deploy, streamlining the build automation process.', 'Apache Maven simplifies project build processes, increases performance, automatically handles downloading jar files and dependencies, offering easy access to all required information.', "Running 'MVN archetype generate' downloads necessary plugins and prompts for configuration, allowing the user to create a new Maven project, with a specified group ID, artifact ID, and version.", 'The pom.xml file contains attributes for version, group ID, artifact ID, and default JUnit dependency, with the option to customize and add custom dependencies.', "Executing 'MVN clean install' in a Maven project directory generates the desired artifacts, such as jar files, in the target directory."]}, {'end': 12975.723, 'segs': [{'end': 11978.728, 'src': 'embed', 'start': 11954.167, 'weight': 1, 'content': [{'end': 11960.891, 'text': 'Plugins is the heart and soul of Jenkins because using plugins, one can connect Jenkins to anything and everything under the sun.', 'start': 11954.167, 'duration': 6.724}, {'end': 11966.214, 'text': "With that introduction, let's get into what all will be covered as a part of this tutorial.", 'start': 11961.611, 'duration': 4.603}, {'end': 11974.087, 'text': 'I will get into some of the prerequisites required for installing Jenkins post which I will go ahead and install Jenkins on a Windows box.', 'start': 11966.786, 'duration': 7.301}, {'end': 11978.728, 'text': 'There are a few first time configuration that needs to be done and I will be covering those as well.', 'start': 11974.447, 'duration': 4.281}], 'summary': 'Jenkins tutorial covers plugin usage, windows installation, and initial configuration.', 'duration': 24.561, 'max_score': 11954.167, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo11954167.jpg'}, {'end': 12709.796, 'src': 'embed', 'start': 12682.741, 'weight': 0, 'content': [{'end': 12688.764, 'text': 'but just ensure that you know at least most or 90-95% of all these plugins are installed without any problems.', 'start': 12682.741, 'duration': 6.023}, {'end': 12693.867, 'text': 'Let me pause the video here for a minute and then get back once all these plugins are installed.', 'start': 12689.184, 'duration': 4.683}, {'end': 12696.588, 'text': 'My plugin installation is all good.', 'start': 12694.587, 'duration': 2.001}, {'end': 12698.589, 'text': 'There was no failures in any of my plugins.', 'start': 12696.868, 'duration': 1.721}, {'end': 12701.891, 'text': 'So after that I get to create this first admin user.', 'start': 12699.009, 'duration': 2.882}, {'end': 12704.434, 'text': 'Again, this is one important point that you got to remember.', 'start': 12702.233, 'duration': 2.201}, {'end': 12709.796, 'text': 'Again, given any username and password, but ensure that you kind of remember that,', 'start': 12704.454, 'duration': 5.342}], 'summary': '90-95% plugins installed without problems, no failures, create admin user with any username and password', 'duration': 27.055, 'max_score': 12682.741, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo12682741.jpg'}, {'end': 12941.693, 'src': 'embed', 'start': 12913.392, 'weight': 2, 'content': [{'end': 12917.035, 'text': 'the yes, i want this smtp server configuration.', 'start': 12913.392, 'duration': 3.643}, {'end': 12921.038, 'text': 'remember, i mentioned earlier that i would want jenkins to be sending out some emails,', 'start': 12917.035, 'duration': 4.003}, {'end': 12927.061, 'text': "And what I've done here is I've just configured the SMTP details of my personal email ID.", 'start': 12921.776, 'duration': 5.285}, {'end': 12933.686, 'text': 'In case you are in an organization, you would have some sort of an email ID that is set up for a Jenkins server.', 'start': 12927.961, 'duration': 5.725}, {'end': 12941.693, 'text': 'So you can specify the SMTP server details of your company so that you can authorize Jenkins to kind of send out emails.', 'start': 12933.986, 'duration': 7.707}], 'summary': 'Configured smtp server for jenkins to send emails using personal email id, recommend using company email for authorization.', 'duration': 28.301, 'max_score': 12913.392, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo12913392.jpg'}], 'start': 11913.769, 'title': 'Jenkins setup, installation, and configuration', 'summary': 'Covers the setup and configuration of jenkins, a popular continuous integration server, including installation, user administration, job scheduling, integration with github, email notification configurations, emphasis on jdk 1.8, and the need for at least 2gb ram, system configurations, and smtp server setup.', 'chapters': [{'end': 12049.589, 'start': 11913.769, 'title': 'Jenkins setup and configuration', 'summary': 'Introduces jenkins as a powerful and popular continuous integration server with a wide developer community and extensive plugin support, covering installation, user administration, job scheduling, integration with github, and email notification configurations.', 'duration': 135.82, 'highlights': ['Jenkins is a popular continuous integration server with a wide adoption and is released under MIT license. Highlights the popularity and wide adoption of Jenkins and its licensing status.', 'Jenkins has a vast developer community that supports it by writing all kinds of plugins. Emphasizes the extensive support for Jenkins through its developer community and plugin ecosystem.', 'The tutorial covers prerequisites, installation, user administration, job scheduling, integration with GitHub, and email notification configurations. Summarizes the key topics covered in the tutorial, providing an overview of the content to be expected.']}, {'end': 12701.891, 'start': 12049.589, 'title': 'Jenkins installation and configuration', 'summary': 'Covers the installation and configuration of jenkins, including setting up prerequisites, different installation methods, and installing recommended plugins, while emphasizing the importance of jdk 1.8 and the need for at least 2gb ram.', 'duration': 652.302, 'highlights': ['Jenkins requires JDK 1.7 or 1.8 and a recommended 2GB RAM Jenkins is a web application written in Java that requires Java, preferably JDK 1.7 or 1.8, and a recommended 2GB RAM to run smoothly.', 'Three popular mechanisms for installing Jenkins Jenkins can be installed as a Windows or Linux based service, by downloading a generic war file, or by running it on an existing Java-based web server, providing flexibility for different system setups.', 'Importance of setting environment variables for JDK and other open source tools It is crucial to set environment variables, such as JAVA_HOME, for JDK and other open source tools to ensure proper functionality, as these variables are essential for the discovery and operation of open source projects.']}, {'end': 12975.723, 'start': 12702.233, 'title': 'Configuring jenkins', 'summary': 'Discusses setting up jenkins with a simple username and password, configuring the system with important configurations such as number of executors, and setting up smtp server for sending out notifications.', 'duration': 273.49, 'highlights': ['Configuring the system with the number of executors is crucial, with a recommendation of two for a single core system. The number of executors configuration is crucial, with a recommendation of two for a single core system to handle multiple jobs efficiently.', 'Setting up SMTP server for sending out notifications, including configuring SMTP details like server, authentication, port, and reply to address. Setting up SMTP server for sending out notifications, including configuring SMTP details like server, authentication, port, and reply to address is essential for email notifications.', 'Emphasizing the importance of remembering the username and password, as it is difficult to recover if forgotten. Emphasizing the importance of remembering the username and password, as it is difficult to recover if forgotten, highlighting the critical nature of user credentials.']}], 'duration': 1061.954, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo11913769.jpg', 'highlights': ['Jenkins has a vast developer community that supports it by writing all kinds of plugins.', 'Jenkins requires JDK 1.7 or 1.8 and a recommended 2GB RAM.', 'The tutorial covers prerequisites, installation, user administration, job scheduling, integration with GitHub, and email notification configurations.', 'Configuring the system with the number of executors is crucial, with a recommendation of two for a single core system.', 'Setting up SMTP server for sending out notifications, including configuring SMTP details like server, authentication, port, and reply to address.']}, {'end': 14160.126, 'segs': [{'end': 13127.194, 'src': 'embed', 'start': 13098.604, 'weight': 0, 'content': [{'end': 13103.727, 'text': 'So you would need Git to be, you know, installed on that particular system and set the path accordingly.', 'start': 13098.604, 'duration': 5.123}, {'end': 13107.949, 'text': 'Gradle and Maven, if at all you have some Mavens as well.', 'start': 13104.927, 'duration': 3.022}, {'end': 13115.106, 'text': "want to do this, any other tool that you're going to install on your system, which is your continuous integration server.", 'start': 13108.402, 'duration': 6.704}, {'end': 13117.928, 'text': 'you will have to come in here and configure something.', 'start': 13115.106, 'duration': 2.822}, {'end': 13127.194, 'text': "in case you don't configure it, when jenkins runs, it will not be able to find these tools for building your task and it'll crib about it.", 'start': 13117.928, 'duration': 9.266}], 'summary': 'For jenkins to run properly, ensure tools like git, gradle, and maven are installed and configured.', 'duration': 28.59, 'max_score': 13098.604, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo13098604.jpg'}, {'end': 13519.168, 'src': 'embed', 'start': 13492.27, 'weight': 3, 'content': [{'end': 13495.711, 'text': 'So a build can be triggered using various triggers that is there.', 'start': 13492.27, 'duration': 3.441}, {'end': 13501.333, 'text': "So we'll get into this GitHub triggering hook or a web hook kind of a triggering later on.", 'start': 13496.231, 'duration': 5.102}, {'end': 13507.503, 'text': "But for now, what I want to do, I want to ensure that this job that I'm going to put in would be automatically triggered on its own.", 'start': 13501.593, 'duration': 5.91}, {'end': 13511.065, 'text': "Let's say every minute I want this job to be run on its own.", 'start': 13508.103, 'duration': 2.962}, {'end': 13514.246, 'text': 'So build periodically is my setting.', 'start': 13511.985, 'duration': 2.261}, {'end': 13519.168, 'text': "If you see here, there's a bunch of help that is available for me.", 'start': 13515.147, 'duration': 4.021}], 'summary': 'Automatically trigger the job to run every minute using build periodically setting', 'duration': 26.898, 'max_score': 13492.27, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo13492270.jpg'}, {'end': 13873.416, 'src': 'embed', 'start': 13844.176, 'weight': 1, 'content': [{'end': 13846.757, 'text': 'These are global rules and there are some project rules.', 'start': 13844.176, 'duration': 2.581}, {'end': 13848.314, 'text': 'And there are some slave roles.', 'start': 13847.213, 'duration': 1.101}, {'end': 13852.898, 'text': "I'll not get into details of all of this at a very, very high level, which is a global role.", 'start': 13848.634, 'duration': 4.264}, {'end': 13854.84, 'text': 'Let me just create a role.', 'start': 13853.238, 'duration': 1.602}, {'end': 13857.682, 'text': 'A role can be kind of visualized like a group.', 'start': 13855.34, 'duration': 2.342}, {'end': 13860.545, 'text': 'So I would create a role called developer.', 'start': 13858.283, 'duration': 2.262}, {'end': 13865.609, 'text': 'Typically, the Jenkins instance or the CA instance are kind of owned up or controlled by QA guys.', 'start': 13861.005, 'duration': 4.604}, {'end': 13870.614, 'text': 'So QA guys would need to provide some sort of, you know, limited access to developers.', 'start': 13866.09, 'duration': 4.524}, {'end': 13873.416, 'text': "So that's why I'm creating a role called developer.", 'start': 13870.634, 'duration': 2.782}], 'summary': "Global and project rules define roles like 'developer' for limited access.", 'duration': 29.24, 'max_score': 13844.176, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo13844176.jpg'}, {'end': 14155.984, 'src': 'embed', 'start': 14125.424, 'weight': 2, 'content': [{'end': 14128.387, 'text': "He doesn't want to give developer any administrative rights.", 'start': 14125.424, 'duration': 2.963}, {'end': 14137.755, 'text': 'So the rights that he set out by creating a developer role, and anybody who is tagged, any user who is tagged as a part of this developer role,', 'start': 14128.707, 'duration': 9.048}, {'end': 14139.356, 'text': 'would get the same kind of permissions.', 'start': 14137.755, 'duration': 1.601}, {'end': 14142.038, 'text': 'And these permissions can be, you know, fine grain.', 'start': 14139.796, 'duration': 2.242}, {'end': 14144.46, 'text': 'It can be a project specific permissions as well.', 'start': 14142.419, 'duration': 2.041}, {'end': 14148.464, 'text': 'But for now, I just demonstrated the high level permission that I had set in.', 'start': 14144.5, 'duration': 3.964}, {'end': 14155.984, 'text': 'Let me quickly log out of this user and get back the admin user because I need to continue with my demo.', 'start': 14149.144, 'duration': 6.84}], 'summary': 'Developer role has restricted permissions, demonstrated high level permissions, and can be project specific.', 'duration': 30.56, 'max_score': 14125.424, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo14125424.jpg'}], 'start': 12975.723, 'title': 'Jenkins access management', 'summary': 'Covers configuring email notifications, global tool configurations, and role-based access plugin for jenkins, setting up role-based access control, enabling and creating roles using a role-based plugin, and creating limited developer permissions with restricted access.', 'chapters': [{'end': 13744.63, 'start': 12975.723, 'title': 'Configuring jenkins and managing access', 'summary': 'Covers configuring email notifications for jenkins, setting up global tool configurations, and installing and configuring a role-based access plugin to manage access to the jenkins instance.', 'duration': 768.907, 'highlights': ['Configuring email notifications for Jenkins Lowering the security level of Gmail ID to allow programmatic sending of email notifications and testing email configurations.', 'Setting up global tool configurations for Jenkins Explaining the need to specify tools required for building code and providing examples like JDK, Git, Gradle, and Maven.', 'Installing and configuring role-based access plugin for Jenkins Installing the role-based access plugin to define user authorization using role-based strategy and explaining the need to restart Jenkins after installations.']}, {'end': 13883.912, 'start': 13745.151, 'title': 'Setting up role-based access control in jenkins', 'summary': 'Discusses setting up role-based access control in jenkins, including enabling and creating roles using a role-based plugin, with a focus on creating a developer role for limited access.', 'duration': 138.761, 'highlights': ['Enabling role-based access plugin and creating a developer role for limited access.', 'Installing and enabling role-based strategy plugin for authorization.', 'Creating global rules and visualizing roles as groups for access control.']}, {'end': 14160.126, 'start': 13883.912, 'title': 'Creating limited developer permissions', 'summary': 'Details the creation of a developer role with very limited permissions, restricting the ability to run, create, or configure jobs in jenkins, demonstrating the restricted access by assigning the role to a specific user.', 'duration': 276.214, 'highlights': ['The chapter details the creation of a developer role with very limited permissions, demonstrating the restricted access by assigning the role to a specific user, ensuring the developer is unable to run, create, or configure jobs in Jenkins.', 'The permissions are set to restrict the developer from administrative rights, providing only read access to jobs and preventing them from executing or configuring any jobs in the Jenkins instance.', 'The demonstration showcases the restricted developer role, ensuring that any user assigned to the role receives similar limited permissions, which can be further fine-tuned for project-specific access.']}], 'duration': 1184.403, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo12975723.jpg', 'highlights': ['Creating limited developer permissions with restricted access.', 'Configuring email notifications for Jenkins Lowering the security level of Gmail ID to allow programmatic sending of email notifications and testing email configurations.', 'Setting up global tool configurations for Jenkins Explaining the need to specify tools required for building code and providing examples like JDK, Git, Gradle, and Maven.', 'Installing and configuring role-based access plugin for Jenkins Installing the role-based access plugin to define user authorization using role-based strategy and explaining the need to restart Jenkins after installations.', 'Enabling role-based access plugin and creating a developer role for limited access.', 'The chapter details the creation of a developer role with very limited permissions, demonstrating the restricted access by assigning the role to a specific user, ensuring the developer is unable to run, create, or configure jobs in Jenkins.']}, {'end': 16218.141, 'segs': [{'end': 14233.945, 'src': 'embed', 'start': 14203.235, 'weight': 2, 'content': [{'end': 14207.645, 'text': 'okay. so bottom line Jenkins without plugins is nothing.', 'start': 14203.235, 'duration': 4.41}, {'end': 14209.286, 'text': 'So plugins is the heart of Jenkins.', 'start': 14207.745, 'duration': 1.541}, {'end': 14216.331, 'text': 'For you to connect or for in order to connect Jenkins with any of the containers or any of the other tool sets, you would need the plugins.', 'start': 14209.486, 'duration': 6.845}, {'end': 14220.515, 'text': 'If you want to connect or you want to build a repository which has got Java and Maven,', 'start': 14216.431, 'duration': 4.084}, {'end': 14223.977, 'text': 'you would need to install Maven and JDK on your Jenkins instance.', 'start': 14220.515, 'duration': 3.462}, {'end': 14227.62, 'text': "If at all you're looking for a NET build or a Microsoft build,", 'start': 14224.297, 'duration': 3.323}, {'end': 14233.945, 'text': 'you would need to have MSBuild installed on your Jenkins instance and the plugins that will trigger MSBuild.', 'start': 14227.62, 'duration': 6.325}], 'summary': 'Jenkins relies on plugins for connectivity and tool integration, requiring maven, jdk, and msbuild for specific builds.', 'duration': 30.71, 'max_score': 14203.235, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo14203235.jpg'}, {'end': 14589.705, 'src': 'embed', 'start': 14567.062, 'weight': 7, 'content': [{'end': 14574.928, 'text': "Okay, now that I've integrated Jenkins successfully with GitHub for a simple Java application, let me build a little bit on top of it.", 'start': 14567.062, 'duration': 7.866}, {'end': 14582.08, 'text': 'What I will do is I have a Maven based web application that is up there as a repository in my GitHub.', 'start': 14575.288, 'duration': 6.792}, {'end': 14584.702, 'text': "So this is the repository that I'm talking about.", 'start': 14582.62, 'duration': 2.082}, {'end': 14586.123, 'text': "It's called AMVNWebApp.", 'start': 14585.062, 'duration': 1.061}, {'end': 14589.705, 'text': "It's a Maven-based repository, as you would know.", 'start': 14586.583, 'duration': 3.122}], 'summary': 'Jenkins integrated with github for a java app, now building on a maven-based web app repository named amvnwebapp.', 'duration': 22.643, 'max_score': 14567.062, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo14567062.jpg'}, {'end': 14858.298, 'src': 'embed', 'start': 14829.219, 'weight': 0, 'content': [{'end': 14836.765, 'text': "So using this credentials, I will enable or I'll empower Jenkins to get into my Tomcat server and deploy my application.", 'start': 14829.219, 'duration': 7.546}, {'end': 14839.087, 'text': 'Only these two things that is required.', 'start': 14837.606, 'duration': 1.481}, {'end': 14841.744, 'text': 'Let me just start my Tomcat server first.', 'start': 14839.983, 'duration': 1.761}, {'end': 14843.606, 'text': 'So I get into my bin folder.', 'start': 14842.305, 'duration': 1.301}, {'end': 14847.609, 'text': "I open a command prompt here and there's a startup.bat.", 'start': 14844.106, 'duration': 3.503}, {'end': 14853.834, 'text': "It's pretty fast.", 'start': 14853.134, 'duration': 0.7}, {'end': 14855.395, 'text': 'It just takes a few seconds.', 'start': 14853.954, 'duration': 1.441}, {'end': 14856.876, 'text': 'Yes, there you go.', 'start': 14855.776, 'duration': 1.1}, {'end': 14858.298, 'text': 'Tomcat server is up and running.', 'start': 14857.237, 'duration': 1.061}], 'summary': 'Credentials used to empower jenkins for tomcat server deployment. tomcat server started successfully.', 'duration': 29.079, 'max_score': 14829.219, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo14829219.jpg'}, {'end': 15340.276, 'src': 'embed', 'start': 15313.598, 'weight': 6, 'content': [{'end': 15316.98, 'text': 'Distributed build or master-slave configuration in Jenkins.', 'start': 15313.598, 'duration': 3.382}, {'end': 15321.824, 'text': 'As you would have seen, you know, we just have one instance of Jenkins server up and running all the time.', 'start': 15317.441, 'duration': 4.383}, {'end': 15327.167, 'text': 'And also I told you that whenever any job that kind of you know gets started on the Jenkins server,', 'start': 15322.164, 'duration': 5.003}, {'end': 15332.13, 'text': 'it is little heavy in terms of disk space and the CPU utilization.', 'start': 15327.167, 'duration': 4.963}, {'end': 15338.495, 'text': "So which kind of you know, if at all you're in an organization wherein you're heavily reliant on Jenkins server.", 'start': 15332.471, 'duration': 6.024}, {'end': 15340.276, 'text': "you don't want your Jenkins server to go down.", 'start': 15338.495, 'duration': 1.781}], 'summary': 'Jenkins uses one server instance, heavy on resources, for continuous operation.', 'duration': 26.678, 'max_score': 15313.598, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo15313598.jpg'}, {'end': 15384.721, 'src': 'embed', 'start': 15352.428, 'weight': 3, 'content': [{'end': 15355.95, 'text': 'based upon trigger that has happened to the job or whichever job needs to be built.', 'start': 15352.428, 'duration': 3.522}, {'end': 15361.053, 'text': 'he, if at all, he can delegate these jobs onto some other machines or some other slaves.', 'start': 15355.95, 'duration': 5.103}, {'end': 15362.694, 'text': "you know that's a wonderful thing to have.", 'start': 15361.053, 'duration': 1.641}, {'end': 15370.173, 'text': 'okay, use case one, use case two, assuming that you know if you have a Jenkins server that is running on a Windows box or on a Linux one.', 'start': 15362.694, 'duration': 7.479}, {'end': 15376.717, 'text': 'And if at all you have a need where you need to build based upon operating systems, you have multiple build configurations to support.', 'start': 15370.434, 'duration': 6.283}, {'end': 15378.298, 'text': 'Maybe you need to build a Windows.', 'start': 15376.897, 'duration': 1.401}, {'end': 15384.721, 'text': 'you know Windows based NET kind of a projects where you would need a Windows machine to build this particular project.', 'start': 15378.298, 'duration': 6.423}], 'summary': 'Automate job delegation and build configurations based on operating systems in jenkins.', 'duration': 32.293, 'max_score': 15352.428, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo15352428.jpg'}, {'end': 16186.292, 'src': 'embed', 'start': 16157.082, 'weight': 4, 'content': [{'end': 16159.463, 'text': "so I'm gonna back up all these things.", 'start': 16157.082, 'duration': 2.381}, {'end': 16162.124, 'text': "you know, I don't want to exclude anything else.", 'start': 16159.463, 'duration': 2.661}, {'end': 16165.126, 'text': 'I want the history, I want the Maven artifacts.', 'start': 16162.124, 'duration': 3.002}, {'end': 16167.105, 'text': "possibly I don't want this guy.", 'start': 16165.845, 'duration': 1.26}, {'end': 16173.227, 'text': 'I will just say save and then I would say back him up.', 'start': 16167.105, 'duration': 6.122}, {'end': 16180.79, 'text': 'so this would run a bunch of you know steps and all the files that is required as a part of this pretty fast.', 'start': 16173.227, 'duration': 7.563}, {'end': 16183.851, 'text': 'but then, if at all, you have too many things up on your server.', 'start': 16180.79, 'duration': 3.061}, {'end': 16186.292, 'text': "for now we didn't have too many things up on our server.", 'start': 16183.851, 'duration': 2.441}], 'summary': 'Backing up history, maven artifacts, and files. process runs fast.', 'duration': 29.21, 'max_score': 16157.082, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo16157082.jpg'}], 'start': 14160.126, 'title': 'Jenkins integration and configuration', 'summary': 'Covers the significance of jenkins plugins with over so many available, integrating jenkins with github and maven for web application deployment, setting up master-slave configuration, and delegating jobs to a jenkins slave while emphasizing the importance of backing up jenkins during low server load.', 'chapters': [{'end': 14396.815, 'start': 14160.126, 'title': 'Importance of jenkins plugins', 'summary': 'Emphasizes the crucial role of plugins in jenkins, highlighting the extensive range of functions they enable, with over so many plugins available, and their necessity in connecting jenkins to various tools such as aws, docker, git servers, and static code analyzers like sonarqube.', 'duration': 236.689, 'highlights': ['Jenkins offers over so many plugins, enabling a wide range of functions and connections to various tools. The extensive range of plugins available for Jenkins allows for a wide array of functions and connections to different tools and systems.', 'Plugins are essential for connecting Jenkins to various tools, including AWS, Docker, Git servers, and static code analyzers like SonarQube. The necessity of plugins is underscored in connecting Jenkins to various tools such as AWS, Docker, Git servers, and static code analyzers like SonarQube.', 'The importance of plugins in Jenkins is emphasized, as they serve as the heart of Jenkins, enabling essential connections and functions. The plugins are highlighted as the heart of Jenkins, playing a crucial role in enabling essential connections and functions within the system.']}, {'end': 15108.265, 'start': 14396.815, 'title': 'Integrating jenkins with github and maven', 'summary': 'Details the process of integrating jenkins with github to pull source code and subsequently integrating with maven to build and deploy a web application, with a focus on setting up maven and tomcat servers and configuring jenkins to run maven targets and deploy a war file to the tomcat server.', 'duration': 711.45, 'highlights': ['Setting up Maven and Tomcat servers The presenter explains the process of setting up Maven and Tomcat servers, including downloading and configuring Maven, setting environment variables, and changing Tomcat port and creating a user with credentials for Jenkins deployment.', 'Integrating Jenkins with GitHub to pull source code The process of integrating Jenkins with GitHub to pull source code, specifying username and password, and handling potential errors such as incorrect credentials is discussed.', "Configuring Jenkins to run Maven targets and deploy a WAR file to Tomcat server The setup and configuration of Jenkins to run Maven targets, such as 'mvn package' to create a WAR file, and deploying the WAR file to the Tomcat server using Jenkins is explained."]}, {'end': 15405.584, 'start': 15108.265, 'title': 'Jenkins deployment and master-slave configuration', 'summary': 'Discusses deploying a web application to a tomcat server using jenkins, including specifying the context path, adding credentials, and running the deployment. it also explains the concept of master-slave configuration in jenkins for distributing workload and supporting multiple build configurations.', 'duration': 297.319, 'highlights': ["Deploying a web application to a Tomcat server using Jenkins, including specifying the context path, adding credentials, and running the deployment. Successful deployment of a web application to a Tomcat server, specifying context path as 'mvn web app', and adding deployment credentials as 'deployer' with username and password both as 'deployer'.", 'Explaining the concept of master-slave configuration in Jenkins for distributing workload and supporting multiple build configurations. Explanation of master-slave configuration in Jenkins for workload distribution and supporting multiple build configurations based on operating systems (Windows, Linux, Mac).']}, {'end': 15902.566, 'start': 15405.885, 'title': 'Setting up a jenkins slave', 'summary': 'Explains setting up a jenkins slave by provisioning a new node, configuring its settings, and launching the agent, aiming to delegate tasks to the slave node and enabling communication between server and client using java network launch protocol (jnlp).', 'duration': 496.681, 'highlights': ['Provisioning a new node and configuring its settings The speaker demonstrates the process of provisioning a new node in Jenkins, setting up the remote root directory for the slave, specifying the label for identifying the node, and configuring the launch method.', 'Launching the agent using Java Network Launch Protocol (JNLP) The speaker explains the process of launching the agent using JNLP by copying the agent.jar and launch command to the slave node, then running the command prompt to establish the connection between the master and the slave.', 'Enabling communication between server and client using JNLP The speaker configures the master to communicate with the agent using Java Network Launch Protocol (JNLP) by enabling the JNLP port and ensuring that the client and server talk to each other using JNLP.']}, {'end': 16218.141, 'start': 15902.946, 'title': 'Delegating jobs and backing up jenkins', 'summary': 'Discusses delegating jobs to an agent in jenkins, demonstrating the concept of master-slave configuration, and also covers the process of backing up jenkins using a plugin, emphasizing the importance of taking backups during low server load.', 'duration': 315.195, 'highlights': ['The chapter demonstrates the concept of master-slave configuration in Jenkins by delegating a job to an agent, showcasing the creation of a workspace on the agent and the successful execution of the delegated job. The concept of master-slave configuration is demonstrated by delegating a job to a configured agent, resulting in the creation of a workspace and successful execution of the delegated job.', 'The importance of backing up Jenkins using a plugin is emphasized, with the recommendation to take backups during low server load to avoid performance issues. Emphasizes the importance of using a plugin to back up Jenkins and recommends taking backups during low server load to prevent performance issues.']}], 'duration': 2058.015, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo14160126.jpg', 'highlights': ['Jenkins offers over so many plugins, enabling a wide range of functions and connections to various tools.', 'Plugins are essential for connecting Jenkins to various tools, including AWS, Docker, Git servers, and static code analyzers like SonarQube.', 'The importance of plugins in Jenkins is emphasized, as they serve as the heart of Jenkins, enabling essential connections and functions.', 'Configuring Jenkins to run Maven targets and deploy a WAR file to Tomcat server is explained.', 'Deploying a web application to a Tomcat server using Jenkins, including specifying the context path, adding credentials, and running the deployment.', 'Explaining the concept of master-slave configuration in Jenkins for distributing workload and supporting multiple build configurations.', 'Provisioning a new node and configuring its settings in Jenkins is demonstrated.', 'Enabling communication between server and client using JNLP is configured.', 'The chapter demonstrates the concept of master-slave configuration in Jenkins by delegating a job to an agent and showcasing the successful execution of the delegated job.', 'The importance of backing up Jenkins using a plugin is emphasized, with the recommendation to take backups during low server load to avoid performance issues.']}, {'end': 19923.329, 'segs': [{'end': 16245.511, 'src': 'embed', 'start': 16218.141, 'weight': 2, 'content': [{'end': 16223.385, 'text': 'i can kind of use the backup plugin for restoring this particular configurations.', 'start': 16218.141, 'duration': 5.244}, {'end': 16227.726, 'text': 'So how do I do that? I just come back to my manage Jenkins.', 'start': 16224.045, 'duration': 3.681}, {'end': 16235.488, 'text': 'Come back to backup manager and I will say restore Hudson or Jenkins configuration.', 'start': 16229.147, 'duration': 6.341}, {'end': 16239.109, 'text': "Today's topic is learn HTML in 10 minutes.", 'start': 16235.868, 'duration': 3.241}, {'end': 16245.511, 'text': "First we'll go through a quick introduction to basic web architecture to understand how the Internet works.", 'start': 16240.069, 'duration': 5.442}], 'summary': 'Using backup plugin, restore jenkins configuration. topic: learning html in 10 minutes.', 'duration': 27.37, 'max_score': 16218.141, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo16218141.jpg'}, {'end': 16719.119, 'src': 'embed', 'start': 16688.892, 'weight': 1, 'content': [{'end': 16693.975, 'text': 'Now, let me show you how you can add styles for some of these headings and paragraph tags.', 'start': 16688.892, 'duration': 5.083}, {'end': 16705.326, 'text': 'So here, back in my first heading tag, let me just say styles and let me change the font of the content that is being displayed,', 'start': 16694.557, 'duration': 10.769}, {'end': 16707.328, 'text': "and I'm going to change it to career new.", 'start': 16705.326, 'duration': 2.002}, {'end': 16713.01, 'text': 'and for my paragraph type, let me display the content in italics.', 'start': 16709.044, 'duration': 3.966}, {'end': 16719.119, 'text': "so i'll say font style and make it italics.", 'start': 16713.01, 'duration': 6.109}], 'summary': 'Demonstrates adding styles to headings and paragraphs using css.', 'duration': 30.227, 'max_score': 16688.892, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo16688892.jpg'}, {'end': 16813.508, 'src': 'embed', 'start': 16778.692, 'weight': 7, 'content': [{'end': 16782.456, 'text': 'So, in this tutorial, we will learn what are CSS selectors and what are their different types.', 'start': 16778.692, 'duration': 3.764}, {'end': 16785.899, 'text': 'We will also look at an example to how to work with CSS selectors.', 'start': 16782.976, 'duration': 2.923}, {'end': 16793.566, 'text': 'So, what are CSS selectors? CSS selectors allow you to select and style HTML elements.', 'start': 16786.88, 'duration': 6.686}, {'end': 16800.212, 'text': 'Selectors are used to find elements based on their id, classes, types, attributes, value of attributes and much more.', 'start': 16794.106, 'duration': 6.106}, {'end': 16802.394, 'text': "Let's discuss the most common selectors.", 'start': 16800.672, 'duration': 1.722}, {'end': 16804.802, 'text': 'There are several different types of CSS selectors.', 'start': 16803.081, 'duration': 1.721}, {'end': 16813.508, 'text': 'The most common of them are CSS element selectors, CSS ID selector, CSS class selector, CSS universal selector and CSS group selectors.', 'start': 16805.183, 'duration': 8.325}], 'summary': 'Tutorial on css selectors including types and examples.', 'duration': 34.816, 'max_score': 16778.692, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo16778692.jpg'}, {'end': 17004.417, 'src': 'embed', 'start': 16976.353, 'weight': 3, 'content': [{'end': 16982.014, 'text': 'As you can see, so all the elements of P, H2 and H3 are centrally aligned and colored to red.', 'start': 16976.353, 'duration': 5.661}, {'end': 16986.655, 'text': 'In this video, we will discuss what is a box model and its various properties.', 'start': 16982.574, 'duration': 4.081}, {'end': 16990.336, 'text': 'We will also do an example to understand the box model better.', 'start': 16987.615, 'duration': 2.721}, {'end': 16992.256, 'text': "So let's get started.", 'start': 16991.396, 'duration': 0.86}, {'end': 16999.638, 'text': 'Every element that can be displayed on a webpage is comprised of one or more rectangular boxes.', 'start': 16995.477, 'duration': 4.161}, {'end': 17004.417, 'text': 'CSS box model typically describes how these rectangular boxes are laid out on a web page.', 'start': 17000.336, 'duration': 4.081}], 'summary': 'Video explains css box model and its properties, with an example. elements p, h2, and h3 are centrally aligned and colored red.', 'duration': 28.064, 'max_score': 16976.353, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo16976353.jpg'}, {'end': 18388.863, 'src': 'embed', 'start': 18351.094, 'weight': 0, 'content': [{'end': 18357.24, 'text': 'So you can see we have the items styled just a basic styling so that we get the box on our page.', 'start': 18351.094, 'duration': 6.146}, {'end': 18365.807, 'text': "Now let's just copy these and add two more flexbox items and you will see we have two more boxes on our page.", 'start': 18360.122, 'duration': 5.685}, {'end': 18370.068, 'text': 'Just copy and paste them below.', 'start': 18368.286, 'duration': 1.782}, {'end': 18378.755, 'text': 'Give them the class name flexbox-item2 and flexbox-item3.', 'start': 18374.291, 'duration': 4.464}, {'end': 18380.656, 'text': 'Just save the file.', 'start': 18379.755, 'duration': 0.901}, {'end': 18388.863, 'text': 'Now you can see we have three boxes on the page.', 'start': 18386.861, 'duration': 2.002}], 'summary': 'Styling items creates three flexbox boxes on the page.', 'duration': 37.769, 'max_score': 18351.094, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo18351094.jpg'}, {'end': 19271.139, 'src': 'embed', 'start': 19231.863, 'weight': 9, 'content': [{'end': 19240.99, 'text': 'Now, if we change the here body position to relative, now this navbar will position the element according to this body.', 'start': 19231.863, 'duration': 9.127}, {'end': 19247.615, 'text': 'So if you go here and refresh this, you can see that this 2 is in relation to this container.', 'start': 19241.45, 'duration': 6.165}, {'end': 19252.218, 'text': 'And this relative is very useful.', 'start': 19250.677, 'duration': 1.541}, {'end': 19258.843, 'text': 'Next is fixed positioning, which is very similar to absolute positioning with some differences.', 'start': 19255.22, 'duration': 3.623}, {'end': 19261.205, 'text': "So let's change this to fixed.", 'start': 19259.784, 'duration': 1.421}, {'end': 19271.139, 'text': 'and just save this.', 'start': 19270.339, 'duration': 0.8}], 'summary': 'Changing body position to relative, then fixed, demonstrates position effects.', 'duration': 39.276, 'max_score': 19231.863, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo19231863.jpg'}], 'start': 16218.141, 'title': 'Web development fundamentals and css layouts', 'summary': 'Covers essential web architecture elements, html, css, and javascript basics, css box model and grid layout, flexbox layout, css display property, positioning, and a comparison between css grid and flexbox layouts with practical examples and demonstrations.', 'chapters': [{'end': 16975.433, 'start': 16218.141, 'title': 'Learn html and css basics', 'summary': 'Covers essential web architecture elements including website, server, and ip address, followed by a detailed guide on html, css, and javascript, and concludes with a step-by-step demonstration of creating a simple web page using html and css.', 'duration': 757.292, 'highlights': ['HTML is the most widely used markup language for developing and structuring web pages on the internet. HTML is widely used for web page development, providing structure and formatting.', 'CSS is a simple design language used for making web pages look more beautiful and presentable. CSS is used to enhance the visual appeal of web pages.', 'JavaScript is a powerful interpreted language targeted for web development, used for making web pages interactive and bringing them to life. JavaScript is powerful for web interactivity and development.', 'Detailed demonstration of creating a simple web page using HTML and CSS. The transcript provides a step-by-step guide for creating a web page using HTML and CSS.', 'Explanation of CSS selectors including element, ID, class, universal, and group selectors. The transcript covers the different types of CSS selectors and their usage.']}, {'end': 18154.909, 'start': 16976.353, 'title': 'Understanding css box model and grid layout', 'summary': 'Discusses the css box model, including its properties such as content, padding, border, and margin, and provides an example demonstrating the changes in size and spacing. it then delves into the grid layout, explaining its features, basic terminologies, and a hands-on demonstration of creating a grid layout in a web page.', 'duration': 1178.556, 'highlights': ['The chapter discusses the CSS box model, including its properties such as content, padding, border, and margin. The transcript provides a detailed explanation of the CSS box model, highlighting its key properties and their role in determining the layout of elements on a web page.', 'Provides an example demonstrating the changes in size and spacing by altering the padding, border, and margin of a box. The example illustrates the impact of altering padding, border, and margin values on the size and spacing of a box, providing a practical understanding of the CSS box model.', 'Explains the features of the grid layout, including fixed and flexible track sizes, precise item placement, explicit grid definition, and control of overlapping content. The transcript highlights the features of the CSS grid layout, covering aspects such as track sizes, item placement, grid definition, and control of overlapping content, providing a comprehensive overview of the grid layout system.', 'Provides basic terminologies related to the grid system, such as grid lines, grid columns, grid rows, grid cells, gutter, and gutter margin. The transcript introduces fundamental terminologies essential for working with the grid system, enhancing the understanding of grid layout concepts and terminology.', 'Demonstrates hands-on creation of a grid layout in a web page using CSS, including defining rows, columns, item positioning, and spacing. The hands-on demonstration showcases the practical implementation of creating a grid layout in a web page using CSS, covering aspects such as defining rows, columns, item positioning, and spacing, providing a practical guide for implementing grid layouts.']}, {'end': 18630.371, 'start': 18168.046, 'title': 'Understanding flexbox layout', 'summary': 'Discusses the basics of the flexbox layout including its properties, usage, and advantages in web page design, demonstrating its ability to arrange items within a container and its 2d nature, with a focus on properties like display, justifycontent, alignitems, flex-grow, and alignself.', 'duration': 462.325, 'highlights': ['The flexbox layout provides an easy and clean way to arrange items within a container, offering advantages over the old block model by handling width, height, and padding with ease, as well as adjusting item width and height to fit in available containers efficiently.', 'The flexbox properties like display flex, justifyContent, and alignItems allow for easy layout adjustments, such as aligning elements centrally and evenly spacing items, while the flex-shrink and flex-grow properties enable control over item shrinking and growing within the container.', 'The alignSelf property of a flexbox item can be used to override the alignContent property of the container, allowing specific item alignment, such as centering, within the container.', 'The flexbox layout is described as more effective in small-scale layouts and is demonstrated to be direction agnostic, working for both vertical and horizontal layouts.', 'The chapter emphasizes the advantages of flexbox over the old block model, showcasing its capabilities in handling layout properties and providing more flexibility in arranging elements within a web page.']}, {'end': 19297.272, 'start': 18631.912, 'title': 'Css display property and positioning', 'summary': "Covers the css display property, explaining the display block, inline, and inline block values with practical examples, demonstrating their impact on elements' layout and behavior. it also delves into the css position property, detailing the static, fixed, relative, and absolute positions, along with their effects on element positioning, with examples.", 'duration': 665.36, 'highlights': ["The chapter covers the CSS display property, explaining the display block, inline, and inline block values with practical examples, demonstrating their impact on elements' layout and behavior. The chapter explains the display property, covering the block, inline, and inline block values with practical examples, showcasing their impact on elements' layout and behavior.", 'It also delves into the CSS position property, detailing the static, fixed, relative, and absolute positions, along with their effects on element positioning, with examples. The chapter dives into the CSS position property, detailing the static, fixed, relative, and absolute positions, along with their effects on element positioning, supplemented by examples.']}, {'end': 19923.329, 'start': 19306.502, 'title': 'Css grid vs flexbox layouts', 'summary': 'Discusses the differences between css grid and flexbox layouts, demonstrating practical examples and the advantages of css grid for 2d positioning and flexbox for one-dimensional layout.', 'duration': 616.827, 'highlights': ['CSS Grid allows developers to construct custom grids with more flexibility and control than ever before, offering 2D positioning. CSS Grid provides more flexibility and control for custom grids and offers 2D positioning.', 'Flexbox is useful in allocating and aligning spaces among items in a grid container, making it easier to design flexible and effective layouts. Flexbox is useful for allocating and aligning spaces among items in a grid container, making layouts more flexible and effective.', 'Demonstrates the practical example of setting up a grid layout with specified rows and columns and adjusting elements in a 2D manner. Practical example of setting up a grid layout with specified rows and columns and adjusting elements in a 2D manner.', 'Illustrates the application of Flexbox in positioning elements in a one-dimensional area and aligning items across the main and cross axes. Application of Flexbox in positioning elements in a one-dimensional area and aligning items across the main and cross axes.', 'Explains the properties of background image in CSS, demonstrating the usage of background image, background size, and background repeat. Explanation of background image properties in CSS, including background image, background size, and background repeat.']}], 'duration': 3705.188, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo16218141.jpg', 'highlights': ['CSS Grid provides more flexibility and control for custom grids and offers 2D positioning.', 'Flexbox is useful for allocating and aligning spaces among items in a grid container, making layouts more flexible and effective.', 'The flexbox layout provides an easy and clean way to arrange items within a container, offering advantages over the old block model.', 'HTML is the most widely used markup language for developing and structuring web pages on the internet.', 'CSS is a simple design language used for making web pages look more beautiful and presentable.', 'JavaScript is a powerful interpreted language targeted for web development, used for making web pages interactive and bringing them to life.', 'The chapter covers the CSS display property, explaining the display block, inline, and inline block values with practical examples.', 'The chapter discusses the CSS box model, including its properties such as content, padding, border, and margin.', 'The chapter covers the CSS position property, detailing the static, fixed, relative, and absolute positions, along with their effects on element positioning.', 'CSS Grid allows developers to construct custom grids with more flexibility and control than ever before, offering 2D positioning.']}, {'end': 23227.305, 'segs': [{'end': 19968.357, 'src': 'embed', 'start': 19924.249, 'weight': 2, 'content': [{'end': 19928.693, 'text': "So, let's keep the background size to cover and set the background repeat to no repeat.", 'start': 19924.249, 'duration': 4.444}, {'end': 19931.655, 'text': "Let's save the file and look at it on the webpage.", 'start': 19929.954, 'duration': 1.701}, {'end': 19936.815, 'text': 'Now as you can see the image is fully put to the web page.', 'start': 19934.011, 'duration': 2.804}, {'end': 19941.001, 'text': "Let's add a text above our image to see how it looks like.", 'start': 19938.558, 'duration': 2.443}, {'end': 19945.628, 'text': "So I'll add a paragraph tag and type some random text here.", 'start': 19941.902, 'duration': 3.726}, {'end': 19968.357, 'text': "Let's set the text color to red and align it to center.", 'start': 19965.615, 'duration': 2.742}], 'summary': 'Setting background size to cover with no repeat, adding text with red color and center alignment.', 'duration': 44.108, 'max_score': 19924.249, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo19924249.jpg'}, {'end': 21936.541, 'src': 'embed', 'start': 21834.696, 'weight': 0, 'content': [{'end': 21835.537, 'text': 'display block.', 'start': 21834.696, 'duration': 0.841}, {'end': 21839.56, 'text': 'We will keep the color as white.', 'start': 21838.339, 'duration': 1.221}, {'end': 21844.945, 'text': 'font size 25 pixels.', 'start': 21843.684, 'duration': 1.261}, {'end': 21851.171, 'text': 'We will use the font family as MontesRed.', 'start': 21849.309, 'duration': 1.862}, {'end': 21869.316, 'text': 'Keep the text decoration to none.', 'start': 21867.995, 'duration': 1.321}, {'end': 21896.518, 'text': 'We will set the border to 2px and solid.', 'start': 21894.757, 'duration': 1.761}, {'end': 21910.828, 'text': "We'll keep the text transformation as uppercase.", 'start': 21906.906, 'duration': 3.922}, {'end': 21936.541, 'text': 'Transition allows you to change the property values smoothly over a given duration.', 'start': 21933.199, 'duration': 3.342}], 'summary': 'Styling: white display block, 25px font, montesred font family, 2px solid border, uppercase text, transition for smooth property value changes.', 'duration': 101.845, 'max_score': 21834.696, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo21834696.jpg'}], 'start': 19924.249, 'title': 'Css effects and animation', 'summary': 'Covers adding color, text, and hover effects to web pages, understanding colors in css including hex values, rgb formats, and nearly 140 standard color names, explaining css animation properties, keyframes, transitions, and demonstrating the use of animation and transition properties with examples.', 'chapters': [{'end': 20000.863, 'start': 19924.249, 'title': 'Adding color and text to web page', 'summary': 'Demonstrates setting the background size and repeat, adding text with specified color and alignment, and learning about adding colors to a web page using different methods.', 'duration': 76.614, 'highlights': ['The chapter demonstrates adding a text above an image with red color and center alignment, providing a practical understanding of web page design.', 'The chapter teaches setting the background size to cover and repeat to no repeat, ensuring a fully put image on the web page.', 'The tutorial aims to educate on different methods of adding colors to web pages, offering a comprehensive learning experience.']}, {'end': 20521.413, 'start': 20001.403, 'title': 'Understanding colors in css', 'summary': 'Discusses the concept of colors in css, including hex values, rgb formats, and adding colors to html elements, highlighting nearly 140 standard color names, and demonstrating the use of color values through examples and explanations of keyframes.', 'duration': 520.01, 'highlights': ['The chapter discusses the concept of colors in CSS, including hex values, RGB formats, and adding colors to HTML elements. It covers the use of nearly 140 standard color names and demonstrates the use of color values through examples.', 'Explaining the hex value and RGB format of colors, and adding colors to HTML elements. It explains the representation of colors in hexadecimal and RGB format, along with adding colors to HTML elements using color names, hex values, and RGB format.', 'The demonstration of using keyframes to specify the animation code in the page. It explains the use of keyframes to specify animation code, including the initial and ending states, and provides examples of keyframes in action.']}, {'end': 21101.739, 'start': 20524.898, 'title': 'Css animation properties and keyframes', 'summary': 'Explains the css animation properties and keyframes, demonstrating how to use animation duration, timing function, keyframes, and animation fill mode to create a smooth and controlled animation effect, with examples of transitioning a child element within a parent element.', 'duration': 576.841, 'highlights': ['The animation duration property defines how long time an animation should take to complete. The animation duration specifies the length of the animation, with examples of setting it to 2 seconds and 10 seconds for different speeds.', "The animation fill mode property is used to specify a style for the target element when the animation is not playing. The animation fill mode is used to control the final state of the animation, demonstrated by setting it to 'forward' to stop the animation at the transformed state.", 'Keyframes are used to define the animation name and determine the intermediate animation states. Keyframes are utilized to define the animation name and specify the intermediate animation states, illustrated by setting the transform property at different percentages to move the child element within the parent element.']}, {'end': 21579.738, 'start': 21101.739, 'title': 'Css animation and transition', 'summary': 'Explains the use of css animation and transition properties, including setting duration, iteration count, direction, timing function, and delay, to enhance user experience, with examples demonstrating the impact of different settings on the animation and transition effects.', 'duration': 477.999, 'highlights': ['The chapter explains the use of CSS animation and transition properties, including setting duration, iteration count, direction, timing function, and delay, to enhance user experience. CSS animation and transition properties, setting duration, iteration count, direction, timing function, and delay', 'Examples demonstrate the impact of different settings on the animation and transition effects, such as changing the time to 3 seconds for a slower animation and setting the iteration count to 3 for the number of times an animation should be played. Impact of different settings on animation and transition effects, changing time to 3 seconds for slower animation, setting iteration count to 3', 'Explanation of transition properties including duration, property, timing function, and delay, with demonstrations of their impact on elements like changing color and rotation. Transition properties including duration, property, timing function, and delay, impact on elements like changing color and rotation']}, {'end': 23227.305, 'start': 21580.418, 'title': 'Creating css hover effects', 'summary': 'Explains how to add interactive hover effects to buttons, including setting up html and css, designing hover effects for buttons, and creating 3d effects for images using html and css, enhancing user experience with engaging and entertaining css animations.', 'duration': 1646.887, 'highlights': ['Creating 3D Image Hover Effect The chapter discusses designing a 3D hover effect for images using HTML and CSS properties like transform, opacity, and perspective, allowing for a visually engaging user experience.', 'Designing CSS Hover Effects for Buttons The tutorial covers setting up HTML and CSS to create hover effects for buttons, including specifying class names, formatting buttons, and adding hover effects to enhance user interaction.', 'Explaining CSS Hover Effect The chapter defines CSS hover effect as a style technique triggered when a user hovers over an element with a pointing device, providing a better understanding of interactive user experience on web pages.']}], 'duration': 3303.056, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo19924249.jpg', 'highlights': ['The chapter discusses designing a 3D hover effect for images using HTML and CSS properties like transform, opacity, and perspective, allowing for a visually engaging user experience.', 'The chapter explains the use of CSS animation and transition properties, including setting duration, iteration count, direction, timing function, and delay, to enhance user experience.', 'The chapter teaches setting the background size to cover and repeat to no repeat, ensuring a fully put image on the web page.', 'The chapter defines CSS hover effect as a style technique triggered when a user hovers over an element with a pointing device, providing a better understanding of interactive user experience on web pages.', 'The tutorial covers setting up HTML and CSS to create hover effects for buttons, including specifying class names, formatting buttons, and adding hover effects to enhance user interaction.']}, {'end': 25986.277, 'segs': [{'end': 25177.824, 'src': 'embed', 'start': 25049.813, 'weight': 0, 'content': [{'end': 25051.994, 'text': 'So just add the standard boilerplate.', 'start': 25049.813, 'duration': 2.181}, {'end': 25057.978, 'text': "Inside the body, let's add welcome to SwimptyLearn.", 'start': 25053.575, 'duration': 4.403}, {'end': 25061.64, 'text': "We'll add the text inside the Q tag.", 'start': 25059.198, 'duration': 2.442}, {'end': 25063.961, 'text': 'The Q tag defines a short quotation.', 'start': 25062.22, 'duration': 1.741}, {'end': 25067.943, 'text': "So inside the Q tag, we'll add welcome.", 'start': 25064.441, 'duration': 3.502}, {'end': 25072.986, 'text': 'Q tag closed.', 'start': 25072.205, 'duration': 0.781}, {'end': 25083.918, 'text': 'and again Q tag in preload.', 'start': 25076.813, 'duration': 7.105}, {'end': 25088.641, 'text': "Now that we have the text inside the body, let's add the styling.", 'start': 25085.539, 'duration': 3.102}, {'end': 25101.529, 'text': "So we'll keep the font size of all the text to 30 pixels.", 'start': 25096.286, 'duration': 5.243}, {'end': 25104.411, 'text': 'This is the all selector we have used.', 'start': 25102.85, 'duration': 1.561}, {'end': 25106.804, 'text': 'font size 30 pixels.', 'start': 25105.404, 'duration': 1.4}, {'end': 25113.406, 'text': 'Now before the text, we are going to add some symbols.', 'start': 25110.765, 'duration': 2.641}, {'end': 25116.267, 'text': "So we'll use double colon Q before.", 'start': 25113.946, 'duration': 2.321}, {'end': 25123.129, 'text': "We'll add the content with some symbol like this.", 'start': 25120.948, 'duration': 2.181}, {'end': 25131.871, 'text': "We'll keep the color of this symbol to blue.", 'start': 25128.55, 'duration': 3.321}, {'end': 25145.444, 'text': "And we'll use the after pseudo class to add the content like this.", 'start': 25137.881, 'duration': 7.563}, {'end': 25148.706, 'text': "We'll keep this color to red.", 'start': 25147.285, 'duration': 1.421}, {'end': 25155.489, 'text': "Now that we have everything in place, let's go back to see how it looks.", 'start': 25152.347, 'duration': 3.142}, {'end': 25161.832, 'text': 'You can see the symbols before and after our text.', 'start': 25159.471, 'duration': 2.361}, {'end': 25164.393, 'text': 'So this is how the before pseudo element works.', 'start': 25162.492, 'duration': 1.901}, {'end': 25168.398, 'text': 'So the next function we are going to discuss is CSS loader.', 'start': 25165.816, 'duration': 2.582}, {'end': 25173.601, 'text': 'The CSS loader is an animation that shows the visitor about the page when it is loading.', 'start': 25169.559, 'duration': 4.042}, {'end': 25177.824, 'text': 'It is helpful when a page takes some seconds to load the page content.', 'start': 25174.522, 'duration': 3.302}], 'summary': 'Add standard boilerplate and styling to create a css loader with symbols, colors, and font size of 30 pixels.', 'duration': 128.011, 'max_score': 25049.813, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo25049813.jpg'}, {'end': 25614.623, 'src': 'embed', 'start': 25586.904, 'weight': 5, 'content': [{'end': 25590.525, 'text': 'And CSS media queries are one of the most important parts of responsive design.', 'start': 25586.904, 'duration': 3.621}, {'end': 25593.467, 'text': 'In the past, building a website was much simpler.', 'start': 25591.346, 'duration': 2.121}, {'end': 25599.169, 'text': 'Today, a website layout should adapt itself not only to computers but also to tablets, mobile devices and even TV.', 'start': 25593.747, 'duration': 5.422}, {'end': 25605.698, 'text': "Let's see how we can create a responsive web layout using CSS media case with the help of an example.", 'start': 25600.836, 'duration': 4.862}, {'end': 25608.099, 'text': 'So here we have our sublime text editor.', 'start': 25606.119, 'duration': 1.98}, {'end': 25610.481, 'text': 'We have our standard wallet ready.', 'start': 25608.56, 'duration': 1.921}, {'end': 25611.841, 'text': "So let's create something.", 'start': 25610.961, 'duration': 0.88}, {'end': 25614.623, 'text': "So let's start by creating the four divs here.", 'start': 25612.862, 'duration': 1.761}], 'summary': 'Css media queries vital for responsive design across devices.', 'duration': 27.719, 'max_score': 25586.904, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo25586904.jpg'}, {'end': 25823.953, 'src': 'embed', 'start': 25794.905, 'weight': 2, 'content': [{'end': 25799.368, 'text': 'So to start the media query, just type at the rate and media.', 'start': 25794.905, 'duration': 4.463}, {'end': 25805.591, 'text': "Now here, we'll mention the max width to say 400 pixels.", 'start': 25800.468, 'duration': 5.123}, {'end': 25816.356, 'text': 'And inside this media query, we write the CSS code that should take an effect when this condition is satisfied.', 'start': 25809.753, 'duration': 6.603}, {'end': 25823.953, 'text': 'So here, We will set the box1 to display block.', 'start': 25817.217, 'duration': 6.736}], 'summary': 'Using media query to set max width to 400 pixels and display block for box1', 'duration': 29.048, 'max_score': 25794.905, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo25794905.jpg'}], 'start': 23227.305, 'title': 'Css techniques', 'summary': 'Covers css navigation bar creation, css tricks for web development, advanced css features and optimization, creating loader animation with html and css, and responsive design with css media queries, highlighting the importance of navigation bars, various css tricks, advanced features, loader animation creation, and responsive web design.', 'chapters': [{'end': 23960.299, 'start': 23227.305, 'title': 'Creating a css navigation bar', 'summary': 'Covers creating a css navigation bar with submenus, background image, and hover effects, emphasizing the importance of a navigation bar on a webpage and its role in user experience.', 'duration': 732.994, 'highlights': ['A navigation bar is a crucial element of website design, allowing users to quickly visit any sections within the website.', 'The chapter provides a step-by-step guide on creating a navigation bar with submenus using HTML and CSS, including setting background images, hover effects, and proper styling.', 'The importance of a well-designed navigation bar in enhancing user experience and keeping visitors engaged on the website is emphasized.', 'The tutorial also highlights the significance of the hover effect in making submenus visible only when the main menu is hovered over, contributing to a user-friendly navigation experience.']}, {'end': 24555.07, 'start': 23960.72, 'title': 'Css tricks for web development', 'summary': 'Explores css tricks for web development, including css blend mode, clipping, animations, and css gradient, showcasing examples and practical demonstrations.', 'duration': 594.35, 'highlights': ['CSS Blend Mode The CSS background blend property allows blending of background images with different colors using modes like normal, multiply, darken, lighten, or screen, providing flexibility for web design.', 'CSS Clipping The CSS clipmas property enables the creation of clipping regions to display specific image shapes and designs by using clip values generated from websites, offering diverse customization options.', 'Animations in CSS CSS keyframes facilitate the creation of animations for various properties, allowing developers to define different steps and transitions, as demonstrated through the example of animating a box with changing colors over a specified duration.', 'CSS Gradient The CSS gradient property permits smooth transitions between multiple colors, and with the help of websites like cssgradient.io, developers can easily generate gradient values and apply them to create visually appealing backgrounds.']}, {'end': 25199.37, 'start': 24555.971, 'title': 'Advanced css features and optimization', 'summary': 'Covers advanced css features and optimization, including css pseudoclass like hover and active, css pseudo elements like first letter and before, and creating a css loader.', 'duration': 643.399, 'highlights': ['CSS PseudoClass: Hover Explains the concept of the CSS PseudoClass hover and demonstrates its usage with an example, changing the box color when hovered over.', 'CSS PseudoClass: Active Illustrates the active pseudo class usage, changing the color of the active element when clicked, showcasing the difference from hover effect.', 'CSS Pseudo Elements: First Letter Demonstrates the usage of first letter pseudo element to style the first letter of a block level element with specific font, size, color, and shadowing.', 'CSS Pseudo Elements: Before Shows how to use the before pseudo element to insert content before the text of an element and style it with symbols and colors.', 'CSS Loader Explains the concept of CSS loader as an animation to indicate page loading and hints at the need to understand keyframes and animations for its creation.']}, {'end': 25564.446, 'start': 25200.31, 'title': 'Creating loader animation with html and css', 'summary': 'Demonstrates creating a loader animation using html and css, including adding tags and classes, defining styles and animations, and utilizing keyframes and animation delays.', 'duration': 364.136, 'highlights': ["Defining keyframes and animation Keyframes with the name 'rotate' are defined to rotate the loader from 0 to 360 degrees, and classes a1 to a5 are assigned with different colors and animation delays to appear in sync.", 'Styling the loader using CSS Styles such as color for h1, display, position, width, height, border radius, transform origin, and animation properties are applied to the loader elements.', 'Adding HTML tags and classes Inside the body tag, a center tag with H1 and five div tags with classes A1 to A5 are added to create the structure for the loader animation.']}, {'end': 25986.277, 'start': 25564.446, 'title': 'Responsive design with css media queries', 'summary': 'Discusses responsive web design and css media queries, explaining how to create a responsive web layout using media queries with examples, and demonstrating the impact of media queries on web layout based on different screen sizes and conditions.', 'duration': 421.831, 'highlights': ['The chapter discusses the importance of responsive web design and CSS media queries, emphasizing the need for adaptable layouts for various devices, including computers, tablets, mobile devices, and TVs.', "Explanation of media queries is provided, detailing their use in customizing website presentation based on the user's device type, such as mobile, desktop, or tablet, with a practical example of implementing media queries to control the display of content based on screen width.", 'Demonstration of implementing multiple media queries for different screen width ranges, showcasing how the CSS code changes the display and background color of content based on specific width conditions.', 'Step-by-step guidance is provided on how to create a responsive web layout using CSS media queries, including setting conditions based on screen width and applying corresponding CSS code to achieve the desired layout display.', 'Practical demonstration of the impact of media queries on web layout, showing how the display of content changes dynamically based on the screen width, with examples of displaying different content based on specific width conditions.']}], 'duration': 2758.972, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo23227305.jpg', 'highlights': ['Creating a navigation bar with submenus using HTML and CSS is emphasized', 'Importance of a well-designed navigation bar in enhancing user experience is highlighted', 'CSS background blend property allows blending of background images with different colors', 'CSS media queries are crucial for adaptable layouts for various devices', 'Demonstration of implementing multiple media queries for different screen width ranges', 'CSS keyframes facilitate the creation of animations for various properties', 'The concept of the CSS PseudoClass hover is explained with an example', 'The importance of responsive web design and CSS media queries is discussed', 'Demonstration of the impact of media queries on web layout is provided', 'The concept of CSS loader as an animation to indicate page loading is explained']}, {'end': 27629.286, 'segs': [{'end': 26106.482, 'src': 'embed', 'start': 26042.441, 'weight': 1, 'content': [{'end': 26044.902, 'text': "So here is a list of topics that we're going to be covering.", 'start': 26042.441, 'duration': 2.461}, {'end': 26057.63, 'text': "First up, we'll see why Angular was introduced, then what is Angular features of Angular, Angular architecture, advantages and limitations of Angular,", 'start': 26045.482, 'duration': 12.148}, {'end': 26062.274, 'text': "the learning curve of Angular and finally, we'll look at some of the companies that deploy Angular.", 'start': 26057.63, 'duration': 4.644}, {'end': 26065.097, 'text': "So without further delay, let's begin.", 'start': 26062.895, 'duration': 2.202}, {'end': 26071.843, 'text': 'Why Angular? Now, JavaScript is the most commonly used client-side scripting language.', 'start': 26066.358, 'duration': 5.485}, {'end': 26077.848, 'text': 'It is written into HTML documents, enabling interactions with web pages in many unique ways.', 'start': 26072.343, 'duration': 5.505}, {'end': 26087.306, 'text': 'So as a relatively easy to learn language with almost pervasive support, it is exceptionally well suited to develop modern applications.', 'start': 26078.9, 'duration': 8.406}, {'end': 26097.294, 'text': 'But the question arises is JavaScript ideal for developing single page applications that require modularity, testability and other Features??', 'start': 26087.767, 'duration': 9.527}, {'end': 26098.515, 'text': 'Perhaps not?', 'start': 26097.714, 'duration': 0.801}, {'end': 26104, 'text': 'However, we have a variety of frameworks and libraries designed to help us with such things.', 'start': 26098.875, 'duration': 5.125}, {'end': 26106.482, 'text': 'With respect to front-end development.', 'start': 26104.44, 'duration': 2.042}], 'summary': 'Angular introduced for modularity, testability and support in front-end development.', 'duration': 64.041, 'max_score': 26042.441, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo26042441.jpg'}, {'end': 26157.374, 'src': 'embed', 'start': 26130.343, 'weight': 5, 'content': [{'end': 26135.646, 'text': 'It was primarily aimed to develop single-page applications and is maintained by Google.', 'start': 26130.343, 'duration': 5.303}, {'end': 26142.39, 'text': 'Angular as a framework provides a few advantages while also providing a standard structure for developers.', 'start': 26136.666, 'duration': 5.724}, {'end': 26146.251, 'text': 'It is designed for web, desktop, and mobile platforms.', 'start': 26143.07, 'duration': 3.181}, {'end': 26151.772, 'text': 'If you have a doubt here as to what exactly single-page applications are, let me help you with that.', 'start': 26146.751, 'duration': 5.021}, {'end': 26157.374, 'text': 'Now, these single-page applications are basically applications that get loaded just once.', 'start': 26152.312, 'duration': 5.062}], 'summary': 'Angular is a framework for single-page applications, offering standard structure and maintained by google.', 'duration': 27.031, 'max_score': 26130.343, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo26130343.jpg'}, {'end': 26257.508, 'src': 'embed', 'start': 26222.887, 'weight': 11, 'content': [{'end': 26226.23, 'text': 'Moving on to our next feature, we have TypeScript.', 'start': 26222.887, 'duration': 3.343}, {'end': 26235.105, 'text': 'Now TypeScript defines a set of types to JavaScript which helps you write JavaScript that is easier to understand.', 'start': 26227.13, 'duration': 7.975}, {'end': 26242.876, 'text': 'Now all the TypeScript code compiles down to basic JavaScript that can run smoothly on any platform.', 'start': 26236.391, 'duration': 6.485}, {'end': 26248.941, 'text': 'Now TypeScript is not mandatory for developing an Angular application, but it is highly recommended.', 'start': 26243.256, 'duration': 5.685}, {'end': 26257.508, 'text': "The main reason it's highly recommended is that it offers better syntactic structure while making the code base easier to understand and maintain.", 'start': 26249.461, 'duration': 8.047}], 'summary': 'Typescript enhances javascript with better syntactic structure and easier code maintenance, recommended for developing angular applications.', 'duration': 34.621, 'max_score': 26222.887, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo26222887.jpg'}, {'end': 26651.817, 'src': 'embed', 'start': 26623.124, 'weight': 10, 'content': [{'end': 26628.806, 'text': 'Now, if you wish to learn Angular, you need to be acquainted with basic topics in Angular.', 'start': 26623.124, 'duration': 5.682}, {'end': 26639.03, 'text': 'Some of them are directives, modules, decorators, components, services, dependency injection, pipes and templates.', 'start': 26629.426, 'duration': 9.604}, {'end': 26651.817, 'text': "Once you've mastered your basics, you will want to go and understand more advanced topics such as change detection zones, AOT compilation and Rx.js.", 'start': 26640.167, 'duration': 11.65}], 'summary': 'To learn angular, start with basic topics like directives, modules, components, and services. then progress to advanced topics like change detection zones, aot compilation, and rx.js.', 'duration': 28.693, 'max_score': 26623.124, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo26623124.jpg'}, {'end': 26713.553, 'src': 'embed', 'start': 26682.077, 'weight': 2, 'content': [{'end': 26685.158, 'text': "So moving on, let's look at the prerequisites for Angular.", 'start': 26682.077, 'duration': 3.081}, {'end': 26687.66, 'text': 'First up, we have Node.js.', 'start': 26685.899, 'duration': 1.761}, {'end': 26692.762, 'text': 'Angular uses Node.js as its base for a large part of its build environment.', 'start': 26688.14, 'duration': 4.622}, {'end': 26698.906, 'text': 'So as a result, to get started with Angular, you will need to have Node.js installed on your environment.', 'start': 26693.563, 'duration': 5.343}, {'end': 26704.408, 'text': 'So head to their official website and download the latest release for your corresponding operating system.', 'start': 26699.246, 'duration': 5.162}, {'end': 26706.85, 'text': 'Next up is the Angular CLI.', 'start': 26705.069, 'duration': 1.781}, {'end': 26713.553, 'text': 'Now this command line interface is a tool that makes it easier to bootstrap and develop your Angular applications.', 'start': 26707.07, 'duration': 6.483}], 'summary': 'Angular requires node.js as a prerequisite for its build environment and angular cli for application development.', 'duration': 31.476, 'max_score': 26682.077, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo26682077.jpg'}, {'end': 26827.564, 'src': 'embed', 'start': 26796.808, 'weight': 0, 'content': [{'end': 26802.232, 'text': 'And it includes a bunch of files and installs all the necessary dependencies for the Angular application.', 'start': 26796.808, 'duration': 5.424}, {'end': 26808.269, 'text': 'So this could take a while.', 'start': 26807.148, 'duration': 1.121}, {'end': 26817.956, 'text': "So once you've created your application, to run it, first change the directory.", 'start': 26812.352, 'duration': 5.604}, {'end': 26827.564, 'text': "So let's say cd hello world and now use the command ng serve.", 'start': 26818.437, 'duration': 9.127}], 'summary': "Installation of dependencies for angular application, followed by running the application with 'ng serve' command.", 'duration': 30.756, 'max_score': 26796.808, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo26796808.jpg'}], 'start': 25986.857, 'title': 'Angular framework and components', 'summary': 'Covers the introduction of angular, its features including document object model, typescript, data binding, and testing, its architecture as a full-fledged mvc framework, and its applications in developing single-page applications. it also discusses the companies that deploy angular, its advantages and limitations, along with an overview of angular components, explaining their key features and demonstrating the creation of components with practical examples in visual studio code.', 'chapters': [{'end': 26388.142, 'start': 25986.857, 'title': 'Angular framework overview', 'summary': 'Covers the introduction of angular, its features including document object model, typescript, data binding, and testing, its architecture as a full-fledged mvc framework, and its applications in developing single-page applications. it also discusses the companies that deploy angular and its advantages and limitations.', 'duration': 401.285, 'highlights': ['Introduction of Angular Angular is an open-source JavaScript framework maintained by Google, specifically developed for single-page applications, and designed for web, desktop, and mobile platforms.', 'Document Object Model Angular treats an XML or HTML document as a tree structure, updating the entire tree structure of HTML tags upon any changes made on the page.', 'TypeScript TypeScript offers better syntactic structure, easier to understand and maintain, and compiles down to basic JavaScript that can run on any platform.', 'Data Binding Angular uses two-way data binding, allowing changes made in the UI element to be reflected in the model state and vice versa, connecting the model data via the controller.', 'Testing Angular uses Jasmine for running tests and Karma as a task runner for configuring startup, reporters, and testing framework.']}, {'end': 26853.086, 'start': 26389.642, 'title': 'Advantages of angular and prerequisites', 'summary': 'Discusses the advantages of angular, including custom components, data binding, dependency injection, testing, comprehensive features, and browser compatibility, along with the different versions released. it also covers the limitations of angular, the learning curve, and companies using angular, as well as the prerequisites for angular, including node.js, angular cli, and ides.', 'duration': 463.444, 'highlights': ['Angular provides custom components, data binding, and dependency injection, making it reusable and efficient while improving testability and reusability. Angular allows building custom components for functionality and rendering logic, effortless data binding, and writing modular services with dependency injection, improving testability and reusability.', 'Angular offers comprehensive features and excellent browser compatibility, running on all platforms and browsers. Angular is a full-fledged framework with out-of-the-box solutions for server communication, routing, and more, and it is cross-platform and browser compatible, running on all major browsers and platforms.', 'Angular has been released in multiple versions, with each adding to the efficient working of the framework. Multiple versions of Angular have been released, each adding to the efficient working of the framework, including Angular 1, 2, 4, 7, 8, and the most recent release, Angular 9.', 'The limitations of Angular include the steep learning curve, limited SEO options, verbosity, complexity, and poor migration. The limitations of Angular include a steep learning curve, limited SEO options, verbosity, complexity, and poor migration of legacy code to Angular-style architecture.', 'The learning curve of Angular involves mastering basic topics such as directives, modules, components, and services before moving on to advanced topics like change detection zones and AOT compilation. The learning curve of Angular involves mastering basic topics like directives, modules, components, and services, and then understanding advanced topics like change detection zones and AOT compilation.', 'Companies like Nike, Forbes, Google, HBO, Sony, and Upwork use Angular for their applications. Top tier companies like Nike, Forbes, Google, HBO, Sony, and Upwork readily deploy Angular for their applications.', 'The prerequisites for Angular include Node.js, Angular CLI, and an IDE or text editor like VS Code. The prerequisites for Angular include Node.js for the build environment, Angular CLI for developing applications, and an IDE or text editor like VS Code for coding.']}, {'end': 27629.286, 'start': 26853.506, 'title': 'Angular components overview', 'summary': 'Provides an overview of angular components, explaining their key features and demonstrating the creation of components with practical examples in visual studio code. it also covers the metadata properties of the @component decorator, including selector, template, templateurl, and styles.', 'duration': 775.78, 'highlights': ['The root component, index.html, contains the app root element, which is crucial for loading the application code. The index.html file contains the app root element, which is crucial for loading the application code.', 'The main.ts file is responsible for identifying which Angular module is loaded when the application starts. The main.ts file identifies which Angular module is loaded when the application starts.', 'The app.module.ts file serves as the code configuration of the application, defining the source code. The app.module.ts file serves as the code configuration of the application, defining the source code.', 'Components are like Lego blocks, combined to form the final application, and they define the UI of the application. Components are like Lego blocks, combined to form the final application, and they define the UI of the application.', 'Components are the building blocks of an application and are a subset of directives. Components are the building blocks of an application and are a subset of directives.', 'A TypeScript class decorated with @Component decorator is used to create a component, and it must belong to the ng module for usability by another component or application. A TypeScript class decorated with @Component decorator is used to create a component, and it must belong to the ng module for usability by another component or application.', 'Components control their runtime behavior through the implementation of lifecycle hooks. Components control their runtime behavior through the implementation of lifecycle hooks.', 'The chapter provides a practical demonstration of creating components in Visual Studio Code, including the creation of component files and their incorporation in the application. The chapter provides a practical demonstration of creating components in Visual Studio Code, including the creation of component files and their incorporation in the application.', "The @Component decorator's metadata properties, such as selector, template, templateUrl, and styles, are explained with practical examples in Visual Studio Code. The @Component decorator's metadata properties, such as selector, template, templateUrl, and styles, are explained with practical examples in Visual Studio Code."]}], 'duration': 1642.429, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo25986857.jpg', 'highlights': ['Angular is an open-source JavaScript framework for single-page applications.', 'Angular treats an XML or HTML document as a tree structure.', 'TypeScript offers better syntactic structure and compiles down to basic JavaScript.', 'Angular uses two-way data binding, connecting model data via the controller.', 'Angular uses Jasmine for running tests and Karma as a task runner.', 'Angular provides custom components, data binding, and dependency injection.', 'Angular offers comprehensive features and excellent browser compatibility.', 'Multiple versions of Angular have been released, including Angular 9.', 'Top tier companies like Nike, Forbes, Google, HBO, Sony, and Upwork deploy Angular.', 'The prerequisites for Angular include Node.js, Angular CLI, and an IDE like VS Code.', 'Components are like Lego blocks, combined to form the final application.', 'A TypeScript class decorated with @Component decorator is used to create a component.', 'The chapter provides a practical demonstration of creating components in Visual Studio Code.']}, {'end': 29676.941, 'segs': [{'end': 27794.114, 'src': 'embed', 'start': 27720.007, 'weight': 1, 'content': [{'end': 27726.49, 'text': "Now, let's assume that A uses the objects of class B and normally, in object-oriented programming,", 'start': 27720.007, 'duration': 6.483}, {'end': 27730.351, 'text': 'an instance of class B is created so that A can access its objects.', 'start': 27726.49, 'duration': 3.861}, {'end': 27738.335, 'text': 'But using dependency injection, we move the creation and binding of dependent objects outside of the class that depend on them.', 'start': 27731.132, 'duration': 7.203}, {'end': 27744.137, 'text': 'So dependency injection or DI keeps the code more flexible, testable, and mutable.', 'start': 27738.855, 'duration': 5.282}, {'end': 27749.278, 'text': 'Also, classes can inherit external logic without having to create on its own.', 'start': 27744.617, 'duration': 4.661}, {'end': 27753.399, 'text': 'And lastly, DI benefits directives, pipes, and components.', 'start': 27749.898, 'duration': 3.501}, {'end': 27759.361, 'text': "Next up, let's have a look at the drawback of not using dependency injection.", 'start': 27755.3, 'duration': 4.061}, {'end': 27766.543, 'text': "Now let's consider class PostalDetails that is dependent on the number and the address class.", 'start': 27760.301, 'duration': 6.242}, {'end': 27773.547, 'text': 'In the PostalDetails class, the constructor creates copies of the number and address.', 'start': 27768.041, 'duration': 5.506}, {'end': 27780.754, 'text': 'So when you instantiate a new PostalDetails class, the constructor instantiates a unique number and address.', 'start': 27774.407, 'duration': 6.347}, {'end': 27784.458, 'text': "Now although this looks simple, there's a problem with this code.", 'start': 27781.575, 'duration': 2.883}, {'end': 27789.483, 'text': "Let's assume that the number and address class constructors now accept parameters.", 'start': 27785.138, 'duration': 4.345}, {'end': 27794.114, 'text': 'When we change the numbers class, the postal details class gets broken.', 'start': 27790.273, 'duration': 3.841}], 'summary': 'Dependency injection increases flexibility and testability. postaldetails class demonstrates drawbacks without di.', 'duration': 74.107, 'max_score': 27720.007, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo27720007.jpg'}, {'end': 27871, 'src': 'embed', 'start': 27844.587, 'weight': 0, 'content': [{'end': 27851.25, 'text': 'is a coding pattern where a class receives its dependencies from an external source rather than creating them on its own.', 'start': 27844.587, 'duration': 6.663}, {'end': 27859.734, 'text': "So here in the above example, we have moved the definition of dependencies from inside the constructor to the constructor's parameters.", 'start': 27851.57, 'duration': 8.164}, {'end': 27864.197, 'text': "So the postal details class doesn't create the dependencies anymore.", 'start': 27860.435, 'duration': 3.762}, {'end': 27866.498, 'text': 'It just consumes them.', 'start': 27865.177, 'duration': 1.321}, {'end': 27871, 'text': "So the postal dependencies class doesn't create the dependencies anymore.", 'start': 27867.118, 'duration': 3.882}], 'summary': 'Dependency injection: class receives external dependencies, enhances reusability.', 'duration': 26.413, 'max_score': 27844.587, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo27844587.jpg'}, {'end': 28687.571, 'src': 'embed', 'start': 28659.82, 'weight': 3, 'content': [{'end': 28663.202, 'text': 'Now reactive forms are code driven unlike template driven approach.', 'start': 28659.82, 'duration': 3.382}, {'end': 28670.895, 'text': 'Reactive forms eliminate the anti-pattern of updating the data model via two-way data binding.', 'start': 28665.39, 'duration': 5.505}, {'end': 28673.538, 'text': 'So it does not use two-way data binding.', 'start': 28671.596, 'duration': 1.942}, {'end': 28681.645, 'text': 'And typically a reactive form control creation is synchronous and can be unit tested with synchronous programming techniques.', 'start': 28674.819, 'duration': 6.826}, {'end': 28687.571, 'text': "So now let's go ahead and look at form control and form group.", 'start': 28683.827, 'duration': 3.744}], 'summary': 'Reactive forms use code-driven approach, eliminating two-way data binding, and enabling synchronous unit testing.', 'duration': 27.751, 'max_score': 28659.82, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo28659820.jpg'}, {'end': 28799.291, 'src': 'embed', 'start': 28771.376, 'weight': 9, 'content': [{'end': 28776.777, 'text': "So once you execute the code, this is what you're going to see on your browser.", 'start': 28771.376, 'duration': 5.401}, {'end': 28779.061, 'text': 'So you just have the logo at the moment.', 'start': 28777.54, 'duration': 1.521}, {'end': 28785.604, 'text': "The first thing we need to do is we'll have to import the forms module.", 'start': 28780.522, 'duration': 5.082}, {'end': 28786.424, 'text': 'All right.', 'start': 28786.084, 'duration': 0.34}, {'end': 28790.547, 'text': 'So, but before we begin, let me tell you what the use case is.', 'start': 28787.085, 'duration': 3.462}, {'end': 28795.809, 'text': "So we're going to be creating a user registration form, which is going to include four fields.", 'start': 28791.067, 'duration': 4.742}, {'end': 28799.291, 'text': 'That is the first name, last name, email ID and a password.', 'start': 28795.869, 'duration': 3.422}], 'summary': 'Creating user registration form with 4 fields: first name, last name, email id, and password.', 'duration': 27.915, 'max_score': 28771.376, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo28771376.jpg'}, {'end': 29285.307, 'src': 'embed', 'start': 29251.18, 'weight': 8, 'content': [{'end': 29255.433, 'text': 'okay, Now, the MGForm object includes the JavaScript representation.', 'start': 29251.18, 'duration': 4.253}, {'end': 29260.877, 'text': "So now while you're calling the submit method, you're going to pass login as a parameter.", 'start': 29256.073, 'duration': 4.804}, {'end': 29263.58, 'text': "So let's just say login here.", 'start': 29261.858, 'duration': 1.722}, {'end': 29268.844, 'text': "And in my TS file, again, let's just say login.", 'start': 29264.921, 'duration': 3.923}, {'end': 29274.749, 'text': 'And along with it, I want login to be displayed.', 'start': 29270.746, 'duration': 4.003}, {'end': 29278.232, 'text': 'So I say login again.', 'start': 29274.829, 'duration': 3.403}, {'end': 29280.234, 'text': "So now let's save this.", 'start': 29279.073, 'duration': 1.161}, {'end': 29285.307, 'text': "And if you have a look at the browser, let's click on submit.", 'start': 29281.284, 'duration': 4.023}], 'summary': "The mgform object includes the javascript representation. the submit method will pass 'login' as a parameter and display it in the ts file.", 'duration': 34.127, 'max_score': 29251.18, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo29251180.jpg'}], 'start': 27629.846, 'title': 'Angular concepts and form development', 'summary': 'Covers angular concepts such as dependency injection, inline styles, form building, and validation. it also demonstrates creating a user registration form with fields like first name, last name, email, and password, along with form validation techniques and error customization.', 'chapters': [{'end': 28129.552, 'start': 27629.846, 'title': 'Angular: dependency injection explained', 'summary': 'Explains the concept of dependency injection in angular, including its inline defined styles, style urls, providers, and animations, followed by a detailed explanation of dependency injection, its drawbacks, and a demonstration on how to use it with services in classes.', 'duration': 499.706, 'highlights': ["Dependency injection in Angular allows inline defined styles, style URLs, providers, and animations to be applied to components' view. The chapter explains how inline defined styles, style URLs, providers, and animations can be applied to the components' view in Angular.", 'Dependency injection in Angular is a design pattern where a class receives its dependencies from an external source rather than creating them on its own. The chapter elaborates on how dependency injection in Angular is a design pattern where a class receives its dependencies from an external source rather than creating them on its own.', 'Dependency injection keeps the code more flexible, testable, and mutable, benefiting directives, pipes, and components. The chapter emphasizes how dependency injection keeps the code more flexible, testable, and mutable, benefiting directives, pipes, and components in Angular.', 'The drawback of not using dependency injection in Angular is inflexibility and unsuitability for testing. The chapter discusses the drawbacks of not using dependency injection in Angular, including inflexibility and unsuitability for testing.', 'A demonstration is provided on how to use dependency injection with services in classes in Angular. The chapter provides a demonstration on how to use dependency injection with services in classes in Angular, emphasizing the practical application of the concept.']}, {'end': 28503.139, 'start': 28130.032, 'title': 'Angular component data retrieval', 'summary': 'Covers creating methods to retrieve employee data, importing services using dependency injection, binding methods to buttons for data retrieval, and adding a custom html tag to the main component for displaying employee details.', 'duration': 373.107, 'highlights': ["Creating methods to retrieve employee data and adding it to arrays The speaker demonstrates creating methods like 'get info one', 'get info two', and 'get info three' to retrieve employee data and add it to arrays.", 'Importing services using dependency injection The process of importing the service into the component.ts file using dependency injection is explained for accessing the necessary tasks.', 'Binding methods to buttons for data retrieval The speaker shows how to bind the methods to buttons so that when clicked, the information of the respective employee is displayed on the UI.', 'Adding a custom HTML tag to the main component for displaying employee details Demonstrating the addition of a custom HTML tag for the component and beautifying the code by adding a heading and the Simply Learn logo for displaying employee details.']}, {'end': 28745.544, 'start': 28505.348, 'title': 'Angular forms: dependency injection and form building', 'summary': 'Covers the importance of dependency injection in angular, the different types of form building supported (template-driven and reactive), and the functionalities of form control and form group in a web application.', 'duration': 240.196, 'highlights': ['The chapter covers the importance of dependency injection in Angular, the different types of form building supported (template-driven and reactive), and the functionalities of form control and form group in a web application.', 'Angular supports two types of form building: the template-driven approach and the reactive approach, each with its own distinct characteristics and usage.', 'Reactive forms in Angular eliminate the anti-pattern of updating the data model via two-way data binding, providing a synchronous control creation that can be unit tested with synchronous programming techniques.', "Form control enables validation of fields, checking for various states like touched, untouched, dirty, pristine, valid, and invalid, providing a comprehensive understanding of the field's value and state.", 'Form group represents a group of controls in a form, allowing multiple group controls and providing validation errors if there are any, returning true if all controls are valid.']}, {'end': 29066.042, 'start': 28746.144, 'title': 'Creating user registration form in angular', 'summary': 'Demonstrates the process of creating a user registration form in angular, including importing the forms module, creating form fields for first name, last name, email id, and password, and aligning the form to the center with css, resulting in a fully functional registration form with a logo.', 'duration': 319.898, 'highlights': ['Creating a user registration form including four fields: first name, last name, email ID, and password. The use case involves creating a user registration form with four fields: first name, last name, email ID, and password.', 'Importing the forms module from angular forms and integrating it within the main app.module.ts file. The process involves importing the forms module from angular forms and integrating it within the main app.module.ts file.', 'Demonstrating the creation of form fields using div classes and labels for each field, along with aligning the form to the center and the label to the left using CSS. The demonstration includes creating form fields using div classes and labels for each field, along with aligning the form to the center and the label to the left using CSS.']}, {'end': 29676.941, 'start': 29066.862, 'title': 'Angular form validation', 'summary': 'Demonstrates the usage of angular directives like ng-model and ngform for form validation, including the addition of form controls, the ngsubmit property, javascript representation, and field validation with specific properties and error messages. additionally, it illustrates the use of if logic to alert users and customize error messages.', 'duration': 610.079, 'highlights': ["The ng-model directive adds form controls to input fields, recognized by Angular through the addition of classes like ng-untouched, ng-pristine, and ng-valid. The ng-model directive adds form controls to input fields, recognized by Angular through the addition of classes like ng-untouched, ng-pristine, and ng-valid, indicating Angular's recognition of the form tag and addition of classes to both the form and fields.", 'The ngSubmit property, bound to the Submit method, is called upon form submission, with the method defined in the component.ts file. The ngSubmit property, bound to the Submit method, is called upon form submission, with the method defined in the component.ts file, ensuring that the method is invoked when the Submit button is clicked.', 'The ngForm directive, assigned to a template variable, provides a JavaScript representation for field validation and is passed as a parameter when calling the submit method. The ngForm directive, assigned to a template variable, provides a JavaScript representation for field validation and is passed as a parameter when calling the submit method, enabling the checking of properties such as invalid and untouched for specific fields.', 'Field validation properties like required, minLength, and maxLength are specified in the input tag to enforce specific field constraints and display relevant error messages. Field validation properties like required, minLength, and maxLength are specified in the input tag to enforce specific field constraints and display relevant error messages, ensuring that fields cannot be empty and must meet defined length criteria.', 'The use of if logic with ngIf is demonstrated to alert users and customize error messages based on field validation properties and conditions. The use of if logic with ngIf is demonstrated to alert users and customize error messages based on field validation properties and conditions, providing flexibility to display different error messages based on specific validation criteria.']}], 'duration': 2047.095, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo27629846.jpg', 'highlights': ['Dependency injection in Angular keeps code flexible, testable, and mutable', 'Reactive forms in Angular eliminate the anti-pattern of two-way data binding', 'Angular supports two types of form building: template-driven and reactive', 'Form control in Angular enables validation of fields with various states', 'Creating a user registration form with four fields: first name, last name, email, and password', 'Demonstrating the use of ng-model directive to add form controls to input fields', 'Demonstrating the use of ngSubmit property bound to the Submit method for form submission', 'Demonstrating the use of ngForm directive for field validation and JavaScript representation', 'Specifying field validation properties like required, minLength, and maxLength in the input tag', 'Demonstrating the use of if logic with ngIf to customize error messages based on field validation']}, {'end': 31220.759, 'segs': [{'end': 30037.985, 'src': 'embed', 'start': 30011.835, 'weight': 4, 'content': [{'end': 30020.255, 'text': 'So as you can see, inside my app, file, we have the e-info component which has these four files.', 'start': 30011.835, 'duration': 8.42}, {'end': 30027.959, 'text': "So if you're wondering what exactly components are and how this is working, then I highly suggest you watch our components video first.", 'start': 30020.915, 'duration': 7.044}, {'end': 30031.381, 'text': "So now let's go ahead and create a service.", 'start': 30028.659, 'duration': 2.722}, {'end': 30037.985, 'text': "So I'm just typing in the command ng g service.", 'start': 30032.662, 'duration': 5.323}], 'summary': "App file contains 4 e-info component files. suggests watching components video first. creating a service using command 'ng g service'.", 'duration': 26.15, 'max_score': 30011.835, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo30011835.jpg'}, {'end': 30616.828, 'src': 'embed', 'start': 30589.501, 'weight': 1, 'content': [{'end': 30596.244, 'text': 'all right, that is basically going to display what the information holds, what the info variable holds.', 'start': 30589.501, 'duration': 6.743}, {'end': 30604.949, 'text': 'all right, and here is where let me create a bootstrap class called list group.', 'start': 30596.244, 'duration': 8.705}, {'end': 30609.602, 'text': 'Alright, I hope this was clear to you.', 'start': 30607.56, 'duration': 2.042}, {'end': 30616.828, 'text': 'So basically here, the information is being retrieved with the help of this method, right? That is getInfoFromService1.', 'start': 30609.922, 'duration': 6.906}], 'summary': 'Creating a bootstrap class called list group to display information retrieved using the getinfofromservice1 method.', 'duration': 27.327, 'max_score': 30589.501, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo30589501.jpg'}, {'end': 31089.126, 'src': 'embed', 'start': 31047.44, 'weight': 0, 'content': [{'end': 31057.045, 'text': "And the value that I'm going to be passing will be the value that you've provided as an input, which is nothing but form.value.location.", 'start': 31047.44, 'duration': 9.605}, {'end': 31059.066, 'text': 'All right.', 'start': 31058.646, 'duration': 0.42}, {'end': 31064.489, 'text': "So now what happens is that I'll have to again specify what add info is.", 'start': 31059.586, 'duration': 4.903}, {'end': 31073.494, 'text': "And this method is going to be defined in the service file, correct? So here I'm going to create another..", 'start': 31065.149, 'duration': 8.345}, {'end': 31089.126, 'text': "method, that's add info and I'm going to pass info as a parameter,", 'start': 31076.812, 'duration': 12.314}], 'summary': "Creating a method 'add info' with a parameter in the service file.", 'duration': 41.686, 'max_score': 31047.44, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo31047440.jpg'}, {'end': 31220.759, 'src': 'embed', 'start': 31178.836, 'weight': 2, 'content': [{'end': 31197.08, 'text': "so here i'll say ng submit and i'm going to call the method update info and i'm going to pass frm as the argument.", 'start': 31178.836, 'duration': 18.244}, {'end': 31200.301, 'text': "and now let's save this and execute.", 'start': 31197.08, 'duration': 3.221}, {'end': 31209.815, 'text': 'so all right, here you can see that we have an input field and a button saying add info.', 'start': 31203.852, 'duration': 5.963}, {'end': 31214.717, 'text': 'so now i can just go ahead and say type usa.', 'start': 31209.815, 'duration': 4.902}, {'end': 31220.759, 'text': 'and when i say add info and when i check on my employee one details,', 'start': 31214.717, 'duration': 6.042}], 'summary': "Using ng submit to call the method update info with frm as the argument, allowing input of 'usa' and adding info to employee one details.", 'duration': 41.923, 'max_score': 31178.836, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo31178836.jpg'}], 'start': 29678.302, 'title': 'Angular services and form creation', 'summary': 'Provides an overview of angular services, covering form validation, code sharing, and singleton nature, with a plan for a demo. it also includes hands-on learning of angular services, creating components, generating services, and successful retrieval of employee details. additionally, it explains creating a form in html, accessing form values, updating information in records, and utilizing angular for form submission.', 'chapters': [{'end': 29950.472, 'start': 29678.302, 'title': 'Angular services overview', 'summary': 'Explains how form validation works, the role of angular services in sharing code among components, and the features of angular services, including its singleton nature and registration methods, with a plan for a demo to create an employee details list.', 'duration': 272.17, 'highlights': ['Angular services enable sharing code among components, promoting code reusability and minimizing duplication, thus ensuring efficient development.', 'Angular services are singleton, meaning only a single instance is created and used by every building block in the application, ensuring consistent data and behavior across components.', 'Angular services can be registered as part of a module or a component, providing flexibility in managing dependencies and facilitating efficient code organization.', 'A forthcoming demo will showcase the creation of an employee details list, including displaying employee information and adding new employee details, offering practical insights into the utility of Angular services.']}, {'end': 30814.396, 'start': 29951.093, 'title': 'Learning angular services', 'summary': 'Covers hands-on learning of angular services, including creating components, generating services, retrieving and displaying employee information, binding methods with ui elements, and injecting services into components, resulting in successful retrieval of employee details.', 'duration': 863.303, 'highlights': ['The chapter covers hands-on learning of Angular services, including creating components, generating services, and retrieving and displaying employee information.', 'The instructor demonstrates the process of creating components and a service, including creating methods to retrieve employee information and utilizing dependency injection to access service methods.', 'The transcript provides a detailed explanation of creating UI elements, such as buttons and lists, and binding methods to UI events to retrieve and display employee information.', "The last part of the use case involves adding another detail, such as the employee's location, by taking user input and illustrating the capabilities of services to update and modify backend data."]}, {'end': 31220.759, 'start': 30814.396, 'title': 'Creating a form and updating information in angular', 'summary': 'Explains how to create a form in html for input, use template variables to access form values, create a method to update information in records, and call the method in the html file using angular, with a button type of submit.', 'duration': 406.363, 'highlights': ['Creating a form in HTML for input, using ng-model and a button for adding info, and creating a template variable to access form values.', 'Creating a method updateInfoMethod in the component.ts file to update records with the template variable as a parameter and calling the addInfo method from the service file with the value from the input.', 'The addInfo method in the service file pushes the input information into arrays info1, info2, and info3 and returns info1.']}], 'duration': 1542.457, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo29678302.jpg', 'highlights': ['Angular services enable sharing code among components, promoting code reusability and minimizing duplication, ensuring efficient development.', 'Angular services are singleton, ensuring consistent data and behavior across components.', 'The chapter covers hands-on learning of Angular services, including creating components, generating services, and retrieving and displaying employee information.', 'A forthcoming demo will showcase the creation of an employee details list, offering practical insights into the utility of Angular services.', 'Creating a form in HTML for input, using ng-model and a button for adding info, and creating a template variable to access form values.']}, {'end': 33582.151, 'segs': [{'end': 31275.655, 'src': 'embed', 'start': 31251.694, 'weight': 3, 'content': [{'end': 31257.895, 'text': 'CSS and JavaScript tools for creating and building responsive web applications and pages.', 'start': 31251.694, 'duration': 6.201}, {'end': 31264.177, 'text': 'It is a free and open-source project based on GitHub and originally created by Twitter.', 'start': 31258.475, 'duration': 5.702}, {'end': 31275.655, 'text': 'Now to put it more easily, Bootstrap is a giant collection of handy reusable bits of code written in HTML, CSS, and JavaScript.', 'start': 31265.305, 'duration': 10.35}], 'summary': 'Bootstrap is a free and open-source project with a giant collection of reusable code for creating responsive web applications and pages.', 'duration': 23.961, 'max_score': 31251.694, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo31251694.jpg'}, {'end': 32154.503, 'src': 'embed', 'start': 32093.214, 'weight': 2, 'content': [{'end': 32094.674, 'text': 'Similarly for intro.', 'start': 32093.214, 'duration': 1.46}, {'end': 32100.596, 'text': 'Just going to copy the selector.', 'start': 32098.495, 'duration': 2.101}, {'end': 32119.137, 'text': 'And then for courses, so app-courses, that as well.', 'start': 32110.293, 'duration': 8.844}, {'end': 32131.081, 'text': 'And then lastly, we have the footer components.', 'start': 32119.157, 'duration': 11.924}, {'end': 32132.522, 'text': 'So let me just copy that.', 'start': 32131.121, 'duration': 1.401}, {'end': 32142.481, 'text': 'paste it here.', 'start': 32139.4, 'duration': 3.081}, {'end': 32145.161, 'text': "all right, so we've included all the components.", 'start': 32142.481, 'duration': 2.68}, {'end': 32150.683, 'text': "so let's just run this application and see if everything is displayed intact.", 'start': 32145.161, 'duration': 5.522}, {'end': 32154.503, 'text': 'so here let me just say ng serve.', 'start': 32150.683, 'duration': 3.82}], 'summary': "Copied and pasted various components, ran application with 'ng serve'.", 'duration': 61.289, 'max_score': 32093.214, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo32093214.jpg'}, {'end': 32978.582, 'src': 'embed', 'start': 32950.29, 'weight': 5, 'content': [{'end': 32960.404, 'text': 'Now, although this is generally added when your app is created, if it is not, then add a base tag with href attribute which is set to a forward slash.', 'start': 32950.29, 'duration': 10.114}, {'end': 32968.894, 'text': 'Alright, now this is generally done to tell Angular to construct the URL while navigating with a forward slash.', 'start': 32962.186, 'duration': 6.708}, {'end': 32978.582, 'text': 'All right, and the next thing you want to do is open your app.module.ts file and check if the app routing module has been imported.', 'start': 32969.47, 'duration': 9.112}], 'summary': 'Add base tag with href attribute if not added and import app routing module in app.module.ts', 'duration': 28.292, 'max_score': 32950.29, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo32950290.jpg'}, {'end': 33353.18, 'src': 'embed', 'start': 33263.515, 'weight': 0, 'content': [{'end': 33270.398, 'text': "Alright, so now that we've created the home and the login components, the next step is to configure the routes for the application.", 'start': 33263.515, 'duration': 6.883}, {'end': 33276.339, 'text': 'Alright, so here you can see that we have a file called app-routing-module.ts file.', 'start': 33271.098, 'duration': 5.241}, {'end': 33286.047, 'text': 'so here we have the routes and the router module that is imported, and we also have a constant called routes,', 'start': 33277.275, 'duration': 8.772}, {'end': 33290.512, 'text': 'which is strongly typed to routes from the router package.', 'start': 33286.047, 'duration': 4.465}, {'end': 33295.358, 'text': 'all right now, this array is used to define all the possible routes in the application.', 'start': 33290.512, 'duration': 4.846}, {'end': 33300.074, 'text': 'Now each route is basically an object with a path.', 'start': 33295.953, 'duration': 4.121}, {'end': 33305.457, 'text': "So here in my routes array, I'm just gonna go ahead and create the paths.", 'start': 33300.815, 'duration': 4.642}, {'end': 33310.979, 'text': 'That is, we have two different routes, right? One is for login and one is for home.', 'start': 33305.997, 'duration': 4.982}, {'end': 33314.521, 'text': "So I'm just gonna create a path object.", 'start': 33311.739, 'duration': 2.782}, {'end': 33315.962, 'text': "So let's say path.", 'start': 33315, 'duration': 0.962}, {'end': 33321.203, 'text': "I'm sorry, within curly braces, I say path.", 'start': 33318.822, 'duration': 2.381}, {'end': 33326.815, 'text': "And then the path that I'm going to give is login.", 'start': 33323.314, 'duration': 3.501}, {'end': 33332.436, 'text': 'This is basically what will appear on the URL.', 'start': 33328.055, 'duration': 4.381}, {'end': 33339.519, 'text': 'And the component that needs to be navigated to is nothing but the login component.', 'start': 33333.218, 'duration': 6.301}, {'end': 33343.622, 'text': 'So let me just say login component.', 'start': 33340.36, 'duration': 3.262}, {'end': 33347.123, 'text': 'As you can see, the login component has been automatically imported.', 'start': 33344.282, 'duration': 2.841}, {'end': 33353.18, 'text': 'Now same with the home paths.', 'start': 33349.078, 'duration': 4.102}], 'summary': 'Configuring routes for the application with login and home components.', 'duration': 89.665, 'max_score': 33263.515, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo33263515.jpg'}], 'start': 31220.759, 'title': 'Angular bootstrap, components, ui, course information, youtube content, routing, and routes configuration', 'summary': 'Covers angular bootstrap, components setup, ui customization, course information addition, youtube content embedding, bootstrap integration in routing, and routes configuration, resulting in successful navigation and display of content.', 'chapters': [{'end': 31512.305, 'start': 31220.759, 'title': 'Angular bootstrap tutorial', 'summary': 'Explains the concept of bootstrap, its advantages, and how to embed it into an angular application. it also demonstrates creating a blog using angular bootstrap, including adding a logo, course information, video, and youtube link.', 'duration': 291.546, 'highlights': ['Bootstrap is a powerful toolkit for creating responsive web applications and pages, based on HTML, CSS, and JavaScript, originally created by Twitter. Bootstrap is a powerful toolkit, basically a collection of HTML, CSS and JavaScript tools for creating and building responsive web applications and pages. It is a free and open-source project based on GitHub and originally created by Twitter.', 'Bootstrap offers advantages such as a responsive grid, automatic image resizing based on screen size, various components like navigation bars, dropdowns, and excellent documentation. Bootstrap comes with a responsive grid. It also comes with its own code for automatically resizing images based on the current screen size. It also comes with different components that you can use for your webpage. These components could be navigation bars, dropdowns, progress bars, thumbnails, etc. It also offers excellent documentation and is customizable.', 'The tutorial demonstrates creating a blog using Angular Bootstrap, including adding a logo, course information, video, and YouTube link. The tutorial demonstrates the creation of a blog post using Angular Bootstrap, including adding a logo, writing about the company, mentioning tagline, listing different courses, linking to the official page for course overview, and adding a video and YouTube channel link.']}, {'end': 31871.458, 'start': 31512.965, 'title': 'Angular components and dependencies setup', 'summary': 'Explains the process of setting up angular components and dependencies, including the creation of components for ui elements, installation of jquery and bootstrap using npm, and embedding javascript and css files in the angular.json file.', 'duration': 358.493, 'highlights': ['Setting up Angular components for different parts of the UI and including them in the main HTML file is a best practice. The process involves creating components for various UI elements like navigation bar, page content, heading row, call to action, and footer, and then including all the components in the main HTML file.', "Installation of jQuery and Bootstrap using NPM, with jQuery installed before Bootstrap. The speaker demonstrates the installation process by using 'npm install jQuery' and 'npm install bootstrap', indicating that jQuery is installed before Bootstrap.", 'Embedding JavaScript and CSS files in the angular.json file under the build section using relative paths. The detailed process of adding JavaScript and CSS files to the angular.json file is explained, including finding the files in the node modules, copying the relative paths, and adding them to the scripts array under the build section with forward slashes for paths.']}, {'end': 32449.776, 'start': 31875.543, 'title': 'Creating ui components', 'summary': 'Details the process of creating and customizing four ui components for a webpage, including a navigation bar, introduction section, course display, and footer, and demonstrates the changes made to the ui to display specific content and branding.', 'duration': 574.233, 'highlights': ['Four components are created for the webpage: navigation bar, introduction, course display, and footer. Four components created', 'The process of creating custom HTML tags for the components and placing them in the HTML file is explained. Custom HTML tags for components', "The UI components are displayed intact after running the application using the 'ng serve' command. UI components displayed after running application", "Specific changes are made to the UI, including displaying the 'Simply Learn' logo, changing the tagline, and customizing the content. Making specific changes to the UI"]}, {'end': 32771.298, 'start': 32449.796, 'title': 'Adding course information and youtube content', 'summary': 'Involves adding course information for postgraduate programs in lean six sigma, full stack development and cybersecurity, including their durations and reference links. it also includes adding a video to the courses component and incorporating the youtube logo with a link to the simply learn channel.', 'duration': 321.502, 'highlights': ['Added course information for postgraduate programs in Lean Six Sigma, full stack development, and cybersecurity, including durations and reference links. The chapter involves adding detailed information for the postgraduate programs, such as Lean Six Sigma, full stack development, and cybersecurity, along with their durations and reference links.', 'Incorporated a video into the courses component and provided the YouTube logo with a link to the Simply Learn channel. The process also includes adding a video to the courses component and integrating the YouTube logo with a link to the Simply Learn channel, enabling users to navigate to the Simply Learn channel on YouTube.', "Updated the footer message to 'Simply Learn Solutions' and 'All Rights Reserved'. The chapter concludes with updating the footer message to 'Simply Learn Solutions' and 'All Rights Reserved', providing a comprehensive and professional look to the webpage."]}, {'end': 33262.775, 'start': 32772.296, 'title': 'Angular routing and bootstrap integration', 'summary': 'Explains the integration of bootstrap in the creation of a blog website using angular, emphasizing the usage and benefits of routing, and demonstrating the creation of navigation bar, login, and home components.', 'duration': 490.479, 'highlights': ['Bootstrap is successfully used to create a blog website in Angular, allowing the addition of reference links, images, and logos to customize it. Demonstrates the successful creation of a blog website using Bootstrap in Angular.', 'Routing in Angular is used to navigate through a website or web application, and it plays a major role in creating single-page applications, offering excellent user experience and speed. Emphasizes the role of routing in creating single-page applications for improved user experience and speed.', 'The process of creating navigation bar, login, and home components is explained, utilizing Bootstrap for user interface design and demonstrating the use of routing for navigation within the application. Details the process of creating navigation bar, login, and home components, incorporating Bootstrap for design and routing for navigation.']}, {'end': 33582.151, 'start': 33263.515, 'title': 'Configuring routes for application', 'summary': 'Covers configuring routes for the application by defining paths for home and login components, linking routes to navigation buttons, and using router outlet directive for displaying components, resulting in successful navigation and display of content.', 'duration': 318.636, 'highlights': ['Defined paths for home and login components with respective routes. Two different routes were created, one for login and one for home, with specific paths and corresponding components.', 'Linked routes to navigation buttons using router link and router link active directives. The chapter explained the usage of router link and router link active directives to bind routes to specific buttons on the UI.', 'Displayed components using the router outlet directive in the app component.html file. The router outlet directive was used to specify where components are to be displayed, resulting in successful navigation and display of content.']}], 'duration': 2361.392, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo31220759.jpg', 'highlights': ['Demonstrates the successful creation of a blog website using Bootstrap in Angular.', 'Emphasizes the role of routing in creating single-page applications for improved user experience and speed.', 'The chapter involves adding detailed information for postgraduate programs, such as Lean Six Sigma, full stack development, and cybersecurity, along with their durations and reference links.', 'The process of creating navigation bar, login, and home components, incorporating Bootstrap for design and routing for navigation.', 'The tutorial demonstrates the creation of a blog post using Angular Bootstrap, including adding a logo, writing about the company, mentioning tagline, listing different courses, linking to the official page for course overview, and adding a video and YouTube channel link.', 'Bootstrap comes with a responsive grid, automatically resizing images based on the current screen size, and different components like navigation bars, dropdowns, and excellent documentation.']}, {'end': 35235.766, 'segs': [{'end': 33653.667, 'src': 'embed', 'start': 33627.813, 'weight': 9, 'content': [{'end': 33635.775, 'text': 'data has become the new oil which has mandated companies and businesses to rely on an excellent database to store their vast amounts of data.', 'start': 33627.813, 'duration': 7.962}, {'end': 33642.44, 'text': 'Every millisecond, The tech giants are accumulating vast amounts of data that need to be stored.', 'start': 33637.235, 'duration': 5.205}, {'end': 33647.484, 'text': 'The database comes with features to update and effortlessly manipulate data.', 'start': 33643.121, 'duration': 4.363}, {'end': 33653.667, 'text': 'And not only that, these database provider companies ensure the data to be safe and secure.', 'start': 33647.964, 'duration': 5.703}], 'summary': 'Data is the new oil, tech giants accumulate vast amounts, database ensures safe storage.', 'duration': 25.854, 'max_score': 33627.813, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo33627813.jpg'}, {'end': 33780.514, 'src': 'embed', 'start': 33747.512, 'weight': 1, 'content': [{'end': 33750.595, 'text': "and it doesn't require much coding to manage databases.", 'start': 33747.512, 'duration': 3.083}, {'end': 33753.998, 'text': 'Now we will see applications of SQL.', 'start': 33751.656, 'duration': 2.342}, {'end': 33760.644, 'text': 'SQL is used to create a database, define its structure, implement it and lets you perform many functions.', 'start': 33754.839, 'duration': 5.805}, {'end': 33765.289, 'text': 'SQL is also used for maintaining an already existing database.', 'start': 33761.445, 'duration': 3.844}, {'end': 33771.734, 'text': 'SQL is a powerful language for entering data, modifying data and extracting data in a database.', 'start': 33766.109, 'duration': 5.625}, {'end': 33780.514, 'text': 'SQL is extensively used as a client-server language to connect the front-end with the back-end, thus supporting the client-server architecture.', 'start': 33772.572, 'duration': 7.942}], 'summary': 'Sql is a powerful language for managing and maintaining databases, supporting client-server architecture.', 'duration': 33.002, 'max_score': 33747.512, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo33747512.jpg'}, {'end': 33971.746, 'src': 'embed', 'start': 33920.741, 'weight': 3, 'content': [{'end': 33925.604, 'text': "Now we'll see some basic queries executing in MySQL Workbench.", 'start': 33920.741, 'duration': 4.863}, {'end': 33927.165, 'text': "So we'll start.", 'start': 33926.465, 'duration': 0.7}, {'end': 33934.45, 'text': "And first query we'll run will be use SYS, that is the database.", 'start': 33928.466, 'duration': 5.984}, {'end': 33945.388, 'text': 'This command is used to select the database in which you want to create or manipulate any data.', 'start': 33938.76, 'duration': 6.628}, {'end': 33949.493, 'text': "Now we'll see another command that would create a table.", 'start': 33946.109, 'duration': 3.384}, {'end': 33969.886, 'text': 'now we will add attributes to the customer table.', 'start': 33967.245, 'duration': 2.641}, {'end': 33971.746, 'text': 'that would be the columns.', 'start': 33969.886, 'duration': 1.86}], 'summary': "Demonstrating basic mysql queries, including use of 'use sys' to select database and table creation.", 'duration': 51.005, 'max_score': 33920.741, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo33920741.jpg'}, {'end': 34254.026, 'src': 'embed', 'start': 34191.237, 'weight': 7, 'content': [{'end': 34193.499, 'text': 'Now we will see the table.', 'start': 34191.237, 'duration': 2.262}, {'end': 34201.347, 'text': 'For that we will write the command select star from customers.', 'start': 34194.6, 'duration': 6.747}, {'end': 34213.01, 'text': 'Hey, you can see the table in the output grid.', 'start': 34210.009, 'duration': 3.001}, {'end': 34222.173, 'text': "OK, I'll make sure you will see the whole table with all the 20 records.", 'start': 34213.03, 'duration': 9.143}, {'end': 34236.578, 'text': 'Yeah, you can see all the 20 reports, they have been inserted.', 'start': 34232.016, 'duration': 4.562}, {'end': 34254.026, 'text': 'now you see another command and for that we would just get the output as customer id and customer name in the output grid.', 'start': 34243.476, 'duration': 10.55}], 'summary': "Selecting all records from the 'customers' table, showing 20 records, then selecting customer id and name.", 'duration': 62.789, 'max_score': 34191.237, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo34191237.jpg'}, {'end': 34333.071, 'src': 'embed', 'start': 34293.59, 'weight': 2, 'content': [{'end': 34309.528, 'text': "so we'll write drop table and table name that would be customers and semicolon, and we will execute this command.", 'start': 34293.59, 'duration': 15.938}, {'end': 34312.548, 'text': 'now the table has been removed from the database.', 'start': 34309.528, 'duration': 3.02}, {'end': 34322.291, 'text': 'to verify whether the table has been removed from the database or not, we will run a command select star from customers,', 'start': 34312.548, 'duration': 9.743}, {'end': 34333.071, 'text': 'semicolon and execute this command and what we will get is select star from customers.', 'start': 34322.291, 'duration': 10.78}], 'summary': "Deleted 'customers' table from the database successfully.", 'duration': 39.481, 'max_score': 34293.59, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo34293590.jpg'}, {'end': 35126.784, 'src': 'embed', 'start': 35099.641, 'weight': 0, 'content': [{'end': 35106.765, 'text': 'select count customer id, comma address from customers, group by address.', 'start': 35099.641, 'duration': 7.124}, {'end': 35109.806, 'text': 'when we will execute this command, yeah, we will get this table.', 'start': 35106.765, 'duration': 3.041}, {'end': 35111.397, 'text': 'that would be.', 'start': 35110.697, 'duration': 0.7}, {'end': 35116.82, 'text': 'these are the different addresses and these are the number of times.', 'start': 35111.397, 'duration': 5.423}, {'end': 35126.784, 'text': 'yeah, number of persons who live in this address with the count with respect to customer IDs.', 'start': 35116.82, 'duration': 9.964}], 'summary': 'The command returns a table listing different addresses and the count of customer ids living at each address.', 'duration': 27.143, 'max_score': 35099.641, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo35099641.jpg'}], 'start': 33583.531, 'title': 'Sql basics, mysql commands, and data analysis', 'summary': 'Covers the importance of databases, basic sql queries, managing mysql database, and sql commands for data analysis, showcasing their functionalities with practical examples and specific data manipulations.', 'chapters': [{'end': 33896.501, 'start': 33583.531, 'title': 'Angular routing and sql basics', 'summary': "Covers the importance of databases in today's digital world, the role of sql in communicating with databases, and the features and applications of sql, including basic sql queries and different types of sql commands.", 'duration': 312.97, 'highlights': ["The database is vital in storing and retrieving vast amounts of data in today's digital world, often referred to as the new oil, with tech giants accumulating data every millisecond. Data is referred to as the new oil, and companies rely on databases to store vast amounts of data. Tech giants accumulate data every millisecond.", 'SQL is the standard language used for manipulating, updating, and retrieving data from relational databases, with compatibility across various database systems. SQL is the standard language for manipulating, updating, and retrieving data from relational databases. It is compatible across various database systems.', 'Basic SQL queries, including selecting specific attributes from a table, are demonstrated, showcasing the practical application of SQL in extracting information from databases. A demonstration of basic SQL queries, including selecting specific attributes from a table, showcases the practical application of SQL in extracting information from databases.', 'An overview of different types of SQL commands - DDL, DML, TCL, and DCL - is provided, covering their functionalities and usage in database management. An overview of different types of SQL commands - DDL, DML, TCL, and DCL - is provided, covering their functionalities and usage in database management.']}, {'end': 34526.473, 'start': 33897.522, 'title': 'Managing mysql database commands', 'summary': "Covers the basics of managing a mysql database, including creating tables, inserting records, and using commands like 'drop', 'truncate', and 'alter' with practical examples and explanations.", 'duration': 628.951, 'highlights': ["The 'truncate' command removes all records from the table, as demonstrated by vanishing all records from the table after execution.", "Using the 'drop' command, the customer table is removed from the database, verified by the error message 'customers doesn't exist' when attempting to select data from the table.", "Executing the 'alter' command to drop the 'age' column from the 'customers' table is successful, as confirmed by the absence of the 'age' column in the output of 'select star from customers' command.", "Inserting 20 records into the 'customers' table, each with specific attributes like customer id, name, age, gender, date of purchase, address, item, and price, showcasing practical implementation of data insertion in MySQL."]}, {'end': 34809.44, 'start': 34527.532, 'title': 'Sql commands overview', 'summary': 'Covers the execution of alter, update, delete, distinct, and minimum commands in sql, showcasing their functionalities and providing examples of their usage with specific data manipulations.', 'duration': 281.908, 'highlights': ['The chapter explains the execution of alter, update, delete, distinct, and minimum commands in SQL, emphasizing practical usage and demonstrating specific data manipulations.', "The update command is illustrated by modifying a record in the 'customers' table, changing the customer name to James and address to Boston, with the primary key 'customer ID' as 101, successfully updating the table.", "The delete command is showcased by removing a specific row with customer ID 102 from the 'customers' table, effectively demonstrating its data manipulation functionality.", "The distinct command is exemplified by fetching unique values of addresses from the 'customers' table, displaying distinct cities in the output grid, highlighting its capability to return different values.", 'The minimum command is explained as a means to retrieve the minimum value from the data, providing a comprehensive understanding of its application in SQL data retrieval.']}, {'end': 35235.766, 'start': 34809.44, 'title': 'Sql commands for data analysis', 'summary': 'Demonstrates sql commands such as minimum, maximum, count, average, sum, where, group by, having, and order by for data analysis, providing examples and their results.', 'duration': 426.326, 'highlights': ["The maximum price from the 'price' column in the 'customers' table is 3400, obtained using the 'select max(price) from customers' command.", "The 'count' command yielded a result of 19, indicating the number of customer IDs in the table, through the query 'select count(customer id) from customers'.", "The 'average' command provided the average price from the 'customers' table, executed with the query 'select avg(price) from customers'.", "The 'where' command was demonstrated by filtering records with the condition 'where address = pune', resulting in the display of telecodes with the address as 'pune'.", "The 'group by' command grouped the number of rows with the same values, as shown by the query 'select count(customer id), address from customers, group by address'."]}], 'duration': 1652.235, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo33583531.jpg', 'highlights': ['SQL is the standard language for manipulating, updating, and retrieving data from relational databases. It is compatible across various database systems.', "The database is vital in storing and retrieving vast amounts of data in today's digital world, often referred to as the new oil, with tech giants accumulating data every millisecond.", 'An overview of different types of SQL commands - DDL, DML, TCL, and DCL - is provided, covering their functionalities and usage in database management.', "Inserting 20 records into the 'customers' table, each with specific attributes like customer id, name, age, gender, date of purchase, address, item, and price, showcasing practical implementation of data insertion in MySQL.", "The maximum price from the 'price' column in the 'customers' table is 3400, obtained using the 'select max(price) from customers' command.", "The 'count' command yielded a result of 19, indicating the number of customer IDs in the table, through the query 'select count(customer id) from customers'.", "The 'average' command provided the average price from the 'customers' table, executed with the query 'select avg(price) from customers'.", "The 'where' command was demonstrated by filtering records with the condition 'where address = pune', resulting in the display of telecodes with the address as 'pune'.", "The 'group by' command grouped the number of rows with the same values, as shown by the query 'select count(customer id), address from customers, group by address'.", 'The chapter explains the execution of alter, update, delete, distinct, and minimum commands in SQL, emphasizing practical usage and demonstrating specific data manipulations.']}, {'end': 36605.103, 'segs': [{'end': 35267.906, 'src': 'embed', 'start': 35235.766, 'weight': 5, 'content': [{'end': 35240.374, 'text': 'the address has been assigned alphabetically here.', 'start': 35235.766, 'duration': 4.608}, {'end': 35250.692, 'text': 'this particular topic, which we have decided to work on it is very interesting in this current scenario because, if you see carefully,', 'start': 35241.804, 'duration': 8.888}, {'end': 35259.199, 'text': 'lot many companies are moving towards NoSQL database, and there is a reason behind this why MongoDB is very, very popular.', 'start': 35250.692, 'duration': 8.507}, {'end': 35267.906, 'text': 'so it is not actually replacing your existing RDPMS which is there in the market, but it is giving you complete different approach,', 'start': 35259.199, 'duration': 8.707}], 'summary': 'Many companies are adopting nosql databases like mongodb alongside existing rdbms, indicating a significant trend in the industry.', 'duration': 32.14, 'max_score': 35235.766, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo35235766.jpg'}, {'end': 35474.039, 'src': 'embed', 'start': 35445.441, 'weight': 4, 'content': [{'end': 35450.582, 'text': "if you talk about mongodb download, you're going to see the official website called mongodb.", 'start': 35445.441, 'duration': 5.141}, {'end': 35451.942, 'text': 'community download is available.', 'start': 35450.582, 'duration': 1.36}, {'end': 35456.765, 'text': 'you click here so you can see.', 'start': 35453.943, 'duration': 2.822}, {'end': 35462.37, 'text': 'it is taking the current version to 4.4.6 mac os.', 'start': 35456.765, 'duration': 5.605}, {'end': 35464.611, 'text': 'it by default detected my platform.', 'start': 35462.37, 'duration': 2.241}, {'end': 35471.597, 'text': 'however, you can select depends on which platform you have it, and after that you will be clicking on this download.', 'start': 35464.611, 'duration': 6.986}, {'end': 35474.039, 'text': 'okay, so it will get ready.', 'start': 35471.597, 'duration': 2.442}], 'summary': 'Mongodb 4.4.6 available for download on official website, with platform selection option.', 'duration': 28.598, 'max_score': 35445.441, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo35445441.jpg'}, {'end': 36337.698, 'src': 'embed', 'start': 36309.051, 'weight': 0, 'content': [{'end': 36321.866, 'text': 'it is trying to say in this particular collection name called student, maximum number of documents can be either five or less than five clear,', 'start': 36309.051, 'duration': 12.815}, {'end': 36327.43, 'text': 'and the collective size of documents cannot be increased to more than five MB.', 'start': 36321.866, 'duration': 5.564}, {'end': 36337.698, 'text': "that means you're trying to say either by adding the total number of five records the collective size of five document will reach to five MB, okay,", 'start': 36327.43, 'duration': 10.268}], 'summary': "In the 'student' collection, maximum 5 documents and 5mb size allowed.", 'duration': 28.647, 'max_score': 36309.051, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo36309051.jpg'}, {'end': 36412.501, 'src': 'embed', 'start': 36385.755, 'weight': 1, 'content': [{'end': 36393.105, 'text': 'So we now know how to create a collection, how to create a database and how to switch from one database to another database.', 'start': 36385.755, 'duration': 7.35}, {'end': 36396.288, 'text': 'Now we will tell you like how to insert a document.', 'start': 36393.986, 'duration': 2.302}, {'end': 36400.231, 'text': 'So far we have already seen how to insert a document inside the MongoDB.', 'start': 36396.528, 'duration': 3.703}, {'end': 36405.956, 'text': 'Now we would like to also show you how we can insert the documents using multiple techniques.', 'start': 36400.812, 'duration': 5.144}, {'end': 36412.501, 'text': 'So remember one thing, MongoDB comes with two different type of documents.', 'start': 36407.337, 'duration': 5.164}], 'summary': 'Learned creating collections, databases, and inserting documents in mongodb.', 'duration': 26.746, 'max_score': 36385.755, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo36385755.jpg'}], 'start': 35235.766, 'title': 'Mongodb basics and usage', 'summary': 'Introduces mongodb and nosql, covering its document-based structure and popularity. it also explains mongodb installation, basic usage on windows and mac, and basics of mongodb, including document insertion and capping feature.', 'chapters': [{'end': 35411.058, 'start': 35235.766, 'title': 'Introduction to mongodb and nosql', 'summary': 'Delves into the key features of mongodb and nosql, emphasizing on its document-based structure and advantages, and its popularity in the current scenario.', 'duration': 175.292, 'highlights': ['MongoDB is popular due to the increasing trend of companies moving towards NoSQL databases. Many companies are moving towards NoSQL database, and there is a reason behind this; MongoDB is very popular.', 'MongoDB provides a schema-free environment and better flexibility due to its pure schemaless involvement. MongoDB offers a pure schema free environment, providing better flexibility and eliminating the need for a predefined schema.', 'NoSQL databases like MongoDB store relationship data in documents, as opposed to traditional relational databases using tables with rows and columns. In NoSQL, it stores the relationship data in the documents, unlike traditional relational databases that use tables with rows and columns.', 'NoSQL databases come in different types including document-based, key value-based, white column-based, and graph-based, with MongoDB being a purely document-based database. Different types of NoSQL databases are available, including document-based, key value-based, white column-based, and graph-based, with MongoDB being a purely document-based database.']}, {'end': 35839.904, 'start': 35412.039, 'title': 'Mongodb installation and basic usage', 'summary': 'Covers the process of mongodb installation and basic usage, including the steps for installation on windows and mac, starting the mongodb server, creating and accessing databases, and troubleshooting issues with database creation and access.', 'duration': 427.865, 'highlights': ['The MongoDB installation process is demonstrated, including the steps for downloading the zip file, selecting the appropriate platform, and starting the MongoDB server and client.', 'Instructions for starting MongoDB on Windows involve double-clicking on the MongoD and Mongo files in the bin folder, while on Mac, it requires using the terminal and a specific command.', "The importance of creating the 'data/db' folder structure on the C drive in Windows to ensure the proper functioning of MongoDB and the process for changing the location of the database folder structure is highlighted.", "The process of creating and accessing databases in MongoDB, including using the 'use' command to create a database and check the current database, is explained.", 'Troubleshooting issues related to database creation and access, such as databases not being listed after creation, is addressed.']}, {'end': 36605.103, 'start': 35840.104, 'title': 'Mongodb basics and document insertion', 'summary': "Covers the basics of mongodb, including creating collections and documents, switching databases, and inserting records, emphasizing the use of embedded documents and explaining the advantages of using 'db.createcollection' over 'db.collectionname.insert'. it also explains the capping feature in 'db.createcollection' and highlights the benefits of using embedded documents in mongodb for scaling up applications.", 'duration': 764.999, 'highlights': ["The chapter covers the basics of MongoDB, creating collections, and switching databases. It emphasizes the use of embedded documents and explains the advantages of using 'db.createCollection' over 'db.collectionName.insert'. MongoDB basics, creating collections, switching databases, advantages of using embedded documents, benefits of 'db.createCollection' over 'db.collectionName.insert'", "The chapter explains the capping feature in 'db.createCollection' and highlights the benefits of using embedded documents in MongoDB for scaling up applications. Capping feature in 'db.createCollection', benefits of using embedded documents for scaling up applications"]}], 'duration': 1369.337, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo35235766.jpg', 'highlights': ['MongoDB is popular due to the increasing trend of companies moving towards NoSQL databases. Many companies are moving towards NoSQL database, and there is a reason behind this; MongoDB is very popular.', 'MongoDB provides a schema-free environment and better flexibility due to its pure schemaless involvement. MongoDB offers a pure schema free environment, providing better flexibility and eliminating the need for a predefined schema.', 'NoSQL databases like MongoDB store relationship data in documents, as opposed to traditional relational databases using tables with rows and columns. In NoSQL, it stores the relationship data in the documents, unlike traditional relational databases that use tables with rows and columns.', 'Different types of NoSQL databases are available, including document-based, key value-based, white column-based, and graph-based, with MongoDB being a purely document-based database.', 'The MongoDB installation process is demonstrated, including the steps for downloading the zip file, selecting the appropriate platform, and starting the MongoDB server and client.', 'Instructions for starting MongoDB on Windows involve double-clicking on the MongoD and Mongo files in the bin folder, while on Mac, it requires using the terminal and a specific command.', "The importance of creating the 'data/db' folder structure on the C drive in Windows to ensure the proper functioning of MongoDB and the process for changing the location of the database folder structure is highlighted.", "The process of creating and accessing databases in MongoDB, including using the 'use' command to create a database and check the current database, is explained.", "The chapter covers the basics of MongoDB, creating collections, and switching databases. It emphasizes the use of embedded documents and explains the advantages of using 'db.createCollection' over 'db.collectionName.insert'. MongoDB basics, creating collections, switching databases, advantages of using embedded documents, benefits of 'db.createCollection' over 'db.collectionName.insert'", "The chapter explains the capping feature in 'db.createCollection' and highlights the benefits of using embedded documents in MongoDB for scaling up applications. Capping feature in 'db.createCollection', benefits of using embedded documents for scaling up applications", 'Troubleshooting issues related to database creation and access, such as databases not being listed after creation, is addressed.']}, {'end': 38822.119, 'segs': [{'end': 36753.15, 'src': 'embed', 'start': 36719.816, 'weight': 0, 'content': [{'end': 36725.337, 'text': "However, if you want to override it, you can override the value of underscore ID, but you can't change the key name.", 'start': 36719.816, 'duration': 5.521}, {'end': 36729.378, 'text': "Let's try with some other record.", 'start': 36726.017, 'duration': 3.361}, {'end': 36738.46, 'text': "So same record if I try to add, let's go, I'm using call.", 'start': 36730.038, 'duration': 8.422}, {'end': 36741.143, 'text': 'student two.', 'start': 36740.583, 'duration': 0.56}, {'end': 36745.025, 'text': "And here I'm saying one, two, three, four, five here.", 'start': 36741.984, 'duration': 3.041}, {'end': 36750.468, 'text': 'If I want to override it, I can just say underscore ID colon.', 'start': 36745.085, 'duration': 5.383}, {'end': 36753.15, 'text': 'Now I can get the value called what? One zero one.', 'start': 36750.989, 'duration': 2.161}], 'summary': "Demonstration of overriding underscore id value in a record with example of '101'.", 'duration': 33.334, 'max_score': 36719.816, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo36719816.jpg'}, {'end': 37729.245, 'src': 'embed', 'start': 37658.315, 'weight': 2, 'content': [{'end': 37673.892, 'text': 'now, now when i try to say db dot, new emp dot, find three records are available with me three, four and six.', 'start': 37658.315, 'duration': 15.577}, {'end': 37679.593, 'text': 'Now, when it comes to see insert part, we have seen update part.', 'start': 37675.052, 'duration': 4.541}, {'end': 37680.633, 'text': 'We have seen delete part.', 'start': 37679.613, 'duration': 1.02}, {'end': 37683.354, 'text': "We have seen now it's time to basically fetch the records.", 'start': 37680.653, 'duration': 2.701}, {'end': 37690.075, 'text': "So find function we've already seen, but in find function, we also have some conditions so-called queries.", 'start': 37684.354, 'duration': 5.721}, {'end': 37695.216, 'text': 'So in case, if you want to limit the number of records into your application, you can also do that.', 'start': 37690.535, 'duration': 4.681}, {'end': 37697.957, 'text': "Let's see db dot.", 'start': 37695.856, 'duration': 2.101}, {'end': 37708.752, 'text': 'new EMP dot find clear now.', 'start': 37701.128, 'duration': 7.624}, {'end': 37729.245, 'text': "so in find you can also pick up the specific records too, like when I'm saying dot find, and here we can just say name, colon, admin.", 'start': 37708.752, 'duration': 20.493}], 'summary': 'Using db.newemp.find, three records (3, 4, 6) were found. the insert, update, delete, and fetch functions were discussed, including querying for specific records by name.', 'duration': 70.93, 'max_score': 37658.315, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo37658315.jpg'}, {'end': 38397.208, 'src': 'embed', 'start': 38367.368, 'weight': 3, 'content': [{'end': 38377.084, 'text': 'but one important thing which you will see here is total number of documents is scanned.', 'start': 38367.368, 'duration': 9.716}, {'end': 38384.327, 'text': 'So it is telling me total number of document examined is 3, clear now and return 1.', 'start': 38378.104, 'duration': 6.223}, {'end': 38390.61, 'text': 'That means one result is returned and the total number of documents examined is 3 in order to find this record.', 'start': 38384.327, 'duration': 6.283}, {'end': 38392.991, 'text': 'Just imagine a use case here.', 'start': 38391.43, 'duration': 1.561}, {'end': 38397.208, 'text': 'when I say total number of documents examined, three in case.', 'start': 38394.147, 'duration': 3.061}], 'summary': '3 documents scanned, 1 result returned', 'duration': 29.84, 'max_score': 38367.368, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo38367368.jpg'}], 'start': 36605.103, 'title': 'Mongodb data operations', 'summary': 'Covers mongodb document insertion, data manipulation, multiple updates and upserts, delete and query operations, and understanding indexing. it highlights embedded documents, bulk insert, update functions, upserts, and indexing impact on query performance, reducing the number of examined documents for improved performance.', 'chapters': [{'end': 36822.237, 'start': 36605.103, 'title': 'Mongodb document insertion', 'summary': 'Explains how mongodb handles document insertion, highlighting the use of embedded documents, the default underscore id property, and the option to insert records in bulk.', 'duration': 217.134, 'highlights': ['MongoDB offers a default underscore ID property with every single document, which is a unique primary key and cannot be ignored, but can be overridden, typically a hexadecimal value.', "Embedded documents in MongoDB, such as 'course' and 'address', do not have their own primary keys and are directly dependent on the outer document or database.", 'In MongoDB, only the underscore ID property can serve as a primary key, and it can be overridden with a custom value, but the key name cannot be changed.']}, {'end': 37268.586, 'start': 36822.977, 'title': 'Mongodb data manipulation', 'summary': 'Illustrates how to insert multiple records in mongodb using bulk insert, update records using the update function, and highlights the limitation of the update process, with an emphasis on the ease and limitations of data manipulation in mongodb.', 'duration': 445.609, 'highlights': ['The chapter illustrates how to insert multiple records in MongoDB using bulk insert Demonstrates inserting multiple records using the bulk insert method, allowing for the efficient addition of records in a single shot.', 'Update records using the update function Explains the process of updating records using the update function, including specifying the field to be updated and the new value to be set.', 'Highlights the limitation of the update process Emphasizes the limitation of the update process in MongoDB, where the search for records stops after the first match, illustrating the constraint of the update functionality.']}, {'end': 37522.531, 'start': 37269.246, 'title': 'Performing multiple updates and upserts in mongodb', 'summary': 'Discusses how to perform multiple updates and upserts in mongodb, including examples of updating multiple values and performing upserts to insert records if not found, with a highlight on the benefits of the upsert feature.', 'duration': 253.285, 'highlights': ["The 'multi: true' option allows for updating multiple records at once, with a clear indication of the number of records found and modified, as demonstrated by 'n matched 2' and 'n modified 2'.", "The 'upsert' feature in MongoDB combines update and insert, allowing for the insertion of records if not found, as illustrated by the 'n matched 0' and 'n upserted 2' results when 'upsert: true' is used.", "The 'upsert' feature provides a beneficial advantage by updating existing records and inserting new ones based on the requirement, offering flexibility in data manipulation."]}, {'end': 38147.736, 'start': 37522.851, 'title': 'Mongodb delete and query operations', 'summary': 'Covers the implementation of mongodb delete and query operations, including performing delete operations to remove records, applying conditions and limitations in find queries, sorting records in ascending and descending order, and searching records based on embedded properties.', 'duration': 624.885, 'highlights': ["Performing delete operations to remove records Demonstrates the removal of records using the 'remove' function, eliminating multiple records at the same time, showcasing the benefit of remove over update.", 'Applying conditions and limitations in find queries Illustrates the application of conditions and limitations in find queries, including limiting the number of records shown and applying sorting in ascending and descending order.', "Searching records based on embedded properties Explains how to search records based on embedded properties, such as searching records based on the 'address' property and applying conditions based on 'less than' and 'greater than' values."]}, {'end': 38422.536, 'start': 38147.736, 'title': 'Understanding mongodb indexing', 'summary': 'Explains the benefits of using indexing in mongodb, highlighting the impact on query performance, with an example showing the drastic difference in the number of documents examined between indexed and non-indexed searches.', 'duration': 274.8, 'highlights': ['The significant impact of indexing on query performance is demonstrated, with the example showing a non-indexed search examining 3 documents and a potential scenario of examining millions of records, leading to a drastic increase in search time.', 'The concept of indexing in MongoDB is introduced, emphasizing its role in optimizing query performance and reducing the number of documents examined during searches.', 'The importance of indexing in MongoDB is highlighted, as it efficiently reduces the time required to search through large numbers of documents, enhancing query performance.']}, {'end': 38822.119, 'start': 38422.536, 'title': 'Mongodb indexing basics', 'summary': 'Covers the basics of applying indexes in mongodb, including the default index on underscore id, the process of applying indexes on specific properties, and the impact on performance, with a demonstration of creating, checking, and dropping indexes on multiple properties, resulting in improved performance by reducing the number of documents examined.', 'duration': 399.583, 'highlights': ['By default, index is applied on underscore ID, not on the other properties, affecting the way documents are searched and improving performance by reducing the number of documents examined. Default index on underscore ID, reduction in the number of documents examined from 3 to 1.', "Demonstration of creating index on 'emp name' and seeing the performance improvement by reduction in the number of documents examined from 3 to 1. Reduction in the number of documents examined from 3 to 1 after applying index on 'emp name'.", "Application of index on 'emp id' in descending order, resulting in an increase in the total number of indexes from 2 to 3, showcasing the ability to apply indexes on multiple properties. Increase in the total number of indexes from 2 to 3 after applying index on 'emp id' in descending order."]}], 'duration': 2217.016, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo36605103.jpg', 'highlights': ["The 'upsert' feature in MongoDB combines update and insert, allowing for the insertion of records if not found, as illustrated by the 'n matched 0' and 'n upserted 2' results when 'upsert: true' is used.", "Demonstration of creating index on 'emp name' and seeing the performance improvement by reduction in the number of documents examined from 3 to 1. Reduction in the number of documents examined from 3 to 1 after applying index on 'emp name'.", 'The significant impact of indexing on query performance is demonstrated, with the example showing a non-indexed search examining 3 documents and a potential scenario of examining millions of records, leading to a drastic increase in search time.', 'By default, index is applied on underscore ID, not on the other properties, affecting the way documents are searched and improving performance by reducing the number of documents examined. Default index on underscore ID, reduction in the number of documents examined from 3 to 1.', "The 'multi: true' option allows for updating multiple records at once, with a clear indication of the number of records found and modified, as demonstrated by 'n matched 2' and 'n modified 2'.", "Performing delete operations to remove records Demonstrates the removal of records using the 'remove' function, eliminating multiple records at the same time, showcasing the benefit of remove over update."]}, {'end': 40907.312, 'segs': [{'end': 39074.793, 'src': 'embed', 'start': 39048.078, 'weight': 6, 'content': [{'end': 39055.219, 'text': 'the section and the marks and the subject on which subject the person or the student is appeared.', 'start': 39048.078, 'duration': 7.141}, {'end': 39064.791, 'text': 'now here, my first requirement is we want to filter data based on a section a, because students belong to different sections.', 'start': 39055.219, 'duration': 9.572}, {'end': 39066.331, 'text': 'as you can see now it is a.', 'start': 39064.791, 'duration': 1.54}, {'end': 39070.112, 'text': 'they belong to different sections section a, b, c, d.', 'start': 39066.331, 'duration': 3.781}, {'end': 39074.793, 'text': 'so i just want to filter the data based on the section a.', 'start': 39070.112, 'duration': 4.681}], 'summary': 'Filter data based on section a for student records.', 'duration': 26.715, 'max_score': 39048.078, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo39048078.jpg'}, {'end': 39320.469, 'src': 'embed', 'start': 39286.747, 'weight': 1, 'content': [{'end': 39290.568, 'text': "Okay, after the dollar match we're using another curly braces.", 'start': 39286.747, 'duration': 3.821}, {'end': 39292.649, 'text': 'And we will call and operator.', 'start': 39291.309, 'duration': 1.34}, {'end': 39301.653, 'text': 'After this, and we have a call this square bracket, then curly braces, Section A.', 'start': 39293.45, 'duration': 8.203}, {'end': 39307.655, 'text': "After section is getting closed, we're using another curly braces marks, colon, dollar GT.", 'start': 39301.653, 'duration': 6.002}, {'end': 39315.027, 'text': 'Okay And we are using what colon 80.', 'start': 39309.986, 'duration': 5.041}, {'end': 39320.469, 'text': 'After that, we are closing this and using two more curly braces called bracket in this.', 'start': 39315.027, 'duration': 5.442}], 'summary': "Using curly braces and operators, we're creating a section a with a value of 80.", 'duration': 33.722, 'max_score': 39286.747, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo39286747.jpg'}, {'end': 39467.072, 'src': 'embed', 'start': 39429.935, 'weight': 11, 'content': [{'end': 39433.336, 'text': 'so whichever property will be enabling it by giving the one as a digit.', 'start': 39429.935, 'duration': 3.401}, {'end': 39436.477, 'text': 'that means it is.', 'start': 39433.336, 'duration': 3.141}, {'end': 39438.178, 'text': 'it is expected to be displayed.', 'start': 39436.477, 'duration': 1.701}, {'end': 39449.262, 'text': "so i'm saying one comma, i'm saying section, colon one, okay, and i'm also looking forward for marks.", 'start': 39438.178, 'duration': 11.084}, {'end': 39454.463, 'text': 'colon 1.', 'start': 39452.622, 'duration': 1.841}, {'end': 39455.064, 'text': "that's it.", 'start': 39454.463, 'duration': 0.601}, {'end': 39461.208, 'text': 'so now you can see.', 'start': 39455.064, 'duration': 6.144}, {'end': 39467.072, 'text': 'now I am once again picking up only those like student section and marks.', 'start': 39461.208, 'duration': 5.864}], 'summary': 'Displaying property 1 and section with marks.', 'duration': 37.137, 'max_score': 39429.935, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo39429935.jpg'}, {'end': 39547.214, 'src': 'embed', 'start': 39517.502, 'weight': 9, 'content': [{'end': 39527.864, 'text': 'once again, we want to find out the student name section and marks from the student collection, where the section is a okay.', 'start': 39517.502, 'duration': 10.362}, {'end': 39534.085, 'text': 'so here it will be the combinations of match as well as the project, how we can use this.', 'start': 39527.864, 'duration': 6.221}, {'end': 39537.746, 'text': "let's take a look towards my implementation.", 'start': 39534.085, 'duration': 3.661}, {'end': 39543.812, 'text': 'if you see the previous one, what we have used here you remember about?', 'start': 39537.746, 'duration': 6.066}, {'end': 39547.214, 'text': 'we have used this statement called aggregate match.', 'start': 39543.812, 'duration': 3.402}], 'summary': 'Finding student names, sections, and marks using aggregate match.', 'duration': 29.712, 'max_score': 39517.502, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo39517502.jpg'}, {'end': 39765.187, 'src': 'embed', 'start': 39724.295, 'weight': 2, 'content': [{'end': 39726.356, 'text': 'that part you need to be always remember.', 'start': 39724.295, 'duration': 2.061}, {'end': 39730.819, 'text': "you really can't skip dollar ID whenever you're trying to talk about code group.", 'start': 39726.356, 'duration': 4.463}, {'end': 39731.92, 'text': 'this is a compulsory field.', 'start': 39730.819, 'duration': 1.101}, {'end': 39733.902, 'text': 'you need to have it after that.', 'start': 39731.92, 'duration': 1.982}, {'end': 39742.448, 'text': "I'm using this section.", 'start': 39733.902, 'duration': 8.546}, {'end': 39756.62, 'text': 'in this section we are saying dollar section because we would like to make it on a section basis after this closing.', 'start': 39742.448, 'duration': 14.172}, {'end': 39765.187, 'text': 'and here we are using what total marks?', 'start': 39756.62, 'duration': 8.567}], 'summary': 'Dollar id is a compulsory field when talking about code group.', 'duration': 40.892, 'max_score': 39724.295, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo39724295.jpg'}, {'end': 40103.542, 'src': 'embed', 'start': 40071.269, 'weight': 0, 'content': [{'end': 40073.329, 'text': 'when it works with mogo db.', 'start': 40071.269, 'duration': 2.06}, {'end': 40078.972, 'text': 'mogo db is properly known for, I will say, for replication.', 'start': 40073.329, 'duration': 5.643}, {'end': 40082.554, 'text': 'that is called high availability and that feature comes by default with MongoDB.', 'start': 40078.972, 'duration': 3.582}, {'end': 40089.476, 'text': "you really don't need to install any software for this, because it is a built-in feature for the MongoDB.", 'start': 40082.554, 'duration': 6.922}, {'end': 40092.878, 'text': 'so when you download that, it comes along with this.', 'start': 40089.476, 'duration': 3.402}, {'end': 40098.42, 'text': 'so no additional configuration setup is really required when it comes to the MongoDB part.', 'start': 40092.878, 'duration': 5.542}, {'end': 40103.542, 'text': "okay, so let's get started and talk about how MongoDB can offer the replication.", 'start': 40098.42, 'duration': 5.122}], 'summary': 'Mongodb offers built-in replication for high availability, requiring no additional software installation or configuration.', 'duration': 32.273, 'max_score': 40071.269, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo40071269.jpg'}, {'end': 40236.47, 'src': 'embed', 'start': 40167.309, 'weight': 4, 'content': [{'end': 40173.156, 'text': 'So here we start with the concept name called MongoDB Atlas.', 'start': 40167.309, 'duration': 5.847}, {'end': 40175.799, 'text': "Let's search for MongoDB Atlas.", 'start': 40174.557, 'duration': 1.242}, {'end': 40179.491, 'text': 'MongoDB Atlas Database as a Service.', 'start': 40177.47, 'duration': 2.021}, {'end': 40181.852, 'text': 'See, this is a free tool.', 'start': 40180.051, 'duration': 1.801}, {'end': 40186.934, 'text': "It's a cloud environment where you really don't need to install MongoDB in your local machine.", 'start': 40182.512, 'duration': 4.422}, {'end': 40192.416, 'text': 'It is a cloud-based MongoDB support which is free to use with a limited amount of space.', 'start': 40187.014, 'duration': 5.402}, {'end': 40195.617, 'text': 'But yes, for the testing purpose, it is the best suitable.', 'start': 40192.916, 'duration': 2.701}, {'end': 40199.858, 'text': 'So, I can start with the start free or else I can say the login here.', 'start': 40196.417, 'duration': 3.441}, {'end': 40207.542, 'text': 'Okay, from there onwards, I can Go ahead.', 'start': 40205.02, 'duration': 2.522}, {'end': 40217.325, 'text': 'Now, it is getting ready.', 'start': 40216.244, 'duration': 1.081}, {'end': 40225.727, 'text': 'Now, this is the place from where you can start working on your cluster.', 'start': 40221.686, 'duration': 4.041}, {'end': 40236.47, 'text': "See, as I've told you, like initially when you will be working on this MongoTV, it'll ask you to create a cluster initially.", 'start': 40226.387, 'duration': 10.083}], 'summary': 'Mongodb atlas is a free cloud-based database service, suitable for testing, with limited space.', 'duration': 69.161, 'max_score': 40167.309, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo40167309.jpg'}, {'end': 40907.312, 'src': 'embed', 'start': 40900.786, 'weight': 5, 'content': [{'end': 40903.909, 'text': 'If you have any doubts or queries, let us know in the comment section below.', 'start': 40900.786, 'duration': 3.123}, {'end': 40905.29, 'text': 'Thank you so much for watching.', 'start': 40904.209, 'duration': 1.081}, {'end': 40907.312, 'text': 'Keep learning and stay tuned to Simply Learn.', 'start': 40905.43, 'duration': 1.882}], 'summary': 'Encourage audience engagement with comments, thank viewers for watching, and promote continued learning and engagement.', 'duration': 6.526, 'max_score': 40900.786, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo40900786.jpg'}], 'start': 38822.119, 'title': 'Mongodb aggregation and replication', 'summary': 'Covers mongodb aggregation, including its vital role, essential functionalities, implementation of projection and aggregations, and the concept of replication for high availability, with practical examples and details of setting up a mongodb cluster and creating a database.', 'chapters': [{'end': 38960.184, 'start': 38822.119, 'title': 'Mongodb aggregation: a vital role', 'summary': 'Introduces the concept of mongodb aggregation, highlighting its vital role and the seamless query capabilities it offers with handy functions. the chapter also touches on the basic syntax of aggregation and its similarity to rdbms.', 'duration': 138.065, 'highlights': ['The chapter introduces the concept of MongoDB aggregation, highlighting its vital role and the seamless query capabilities it offers with handy functions. The chapter also touches on the basic syntax of aggregation and its similarity to RDBMS.', 'MongoDB aggregation plays a vital role in simplifying queries with handy functions.', 'Aggregation in MongoDB is similar to the concept of aggregate in RDBMS, allowing operations on input and using the output for subsequent commands.']}, {'end': 39634.454, 'start': 38960.724, 'title': 'Aggregation framework in mongodb', 'summary': 'Covers the essential functionalities of the aggregation framework in mongodb, including the use of dollar project, dollar match, dollar group, and dollar sort, and demonstrates filtering and selective field retrieval. it also provides an example of filtering student records based on section and marks using the dollar match and and operator, showcasing a practical application of the aggregation framework.', 'duration': 673.73, 'highlights': ['The aggregation framework in MongoDB includes essential functionalities such as dollar project, dollar match, dollar group, and dollar sort. The speaker introduces key functionalities of the aggregation framework, providing an overview of the essential components.', "Demonstration of filtering student records based on section using the dollar match functionality. The speaker provides a practical example of filtering student records based on the section 'A' using the dollar match functionality in MongoDB.", "Example of using the and operator to filter student records based on section and marks greater than 80. The speaker illustrates the usage of the and operator to filter student records based on both the section 'A' and marks greater than 80, showcasing a practical application of the aggregation framework.", 'Illustration of selectively retrieving specific fields from student records using the dollar project functionality. The speaker demonstrates the selective retrieval of specific fields from student records using the dollar project functionality in MongoDB, allowing for the customization of retrieved data.']}, {'end': 40039.729, 'start': 39634.454, 'title': 'Projection and aggregations in mongodb', 'summary': 'Discusses the implementation of projection and aggregations in mongodb, highlighting the opportunities and functionalities it offers, demonstrating the group by section functionality, and showcasing the retrieval of average marks in each section.', 'duration': 405.275, 'highlights': ['The chapter discusses the implementation of projection and aggregations in MongoDB, highlighting the opportunities and functionalities it offers The chapter emphasizes the implementation of projection and aggregations in MongoDB, showcasing the opportunities and functionalities it provides.', 'demonstrating the group by section functionality The chapter demonstrates the usage of group by section functionality to confirm the total marks in every section.', 'showcasing the retrieval of average marks in each section The chapter showcases the retrieval of average marks in each section, demonstrating the process of obtaining the average marks in each section using MongoDB.']}, {'end': 40384.657, 'start': 40040.75, 'title': 'Mongodb aggregation and replication', 'summary': 'Discusses the concept of aggregation in mongodb, highlighting its ease of use and the feature of replication for high availability, along with details of mongodb atlas as a free cloud-based mongodb support.', 'duration': 343.907, 'highlights': ['The concept of aggregation in MongoDB is emphasized for its ease of use, creating a difference in the way data aggregation is handled.', 'MongoDB is known for its high availability through replication, where the master node is responsible for replicating data to multiple child nodes, ensuring data retrieval even if one node fails.', 'MongoDB Atlas is introduced as a free cloud-based MongoDB support, eliminating the need to install MongoDB locally and providing a limited amount of space for testing purposes.']}, {'end': 40907.312, 'start': 40385.257, 'title': 'Setting up mongodb cluster and creating database', 'summary': 'Explains the process of setting up a mongodb cluster, including network access, database access, and creating a new database and collection, with the demonstration of creating a new user and connecting to the primary cluster.', 'duration': 522.055, 'highlights': ['The process of setting up a MongoDB cluster involves configuring network access and database access at the time of creating the cluster. The speaker explains the steps to configure network access and database access at the time of creating the cluster, emphasizing the importance of whitelisting IP addresses and creating new users for security.', 'Demonstration of creating a new database and collection, along with inserting records into the primary cluster. The speaker demonstrates the process of creating a new database and collection, as well as inserting records into the primary cluster, providing a practical example of the database creation and record insertion process.', 'Instructions for connecting to the primary cluster and performing operations like showing collections and inserting records. The speaker provides instructions for connecting to the primary cluster, showing collections, and inserting records, giving a comprehensive overview of the process of interacting with the MongoDB cluster.']}], 'duration': 2085.193, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/lKgwDtOZaFo/pics/lKgwDtOZaFo38822119.jpg', 'highlights': ['MongoDB aggregation simplifies queries with handy functions', 'Aggregation in MongoDB is similar to aggregate in RDBMS', 'Demonstration of filtering student records using dollar match functionality', 'Illustration of selectively retrieving specific fields using dollar project', 'Implementation of projection and aggregations in MongoDB offers functionalities', 'Demonstration of group by section functionality for total marks', 'Retrieval of average marks in each section using MongoDB', "MongoDB's high availability through replication ensures data retrieval", 'Introduction of MongoDB Atlas as a free cloud-based support', 'Steps to configure network access and database access when creating a cluster', 'Demonstration of creating a new database and collection in the primary cluster', 'Instructions for connecting to the primary cluster and performing operations']}], 'highlights': ['GitLab provides a Git server and a runner for continuous integration.', 'Maven simplifies day-to-day tasks of Java developers, automating compilation and build tasks, reducing manual effort and increasing efficiency.', 'Jenkins has a vast developer community that supports it by writing all kinds of plugins.', 'Angular services enable sharing code among components, promoting code reusability and minimizing duplication, ensuring efficient development.', 'CSS Grid provides more flexibility and control for custom grids and offers 2D positioning.', 'SQL is the standard language for manipulating, updating, and retrieving data from relational databases. It is compatible across various database systems.', 'MongoDB provides a schema-free environment and better flexibility due to its pure schemaless involvement. MongoDB offers a pure schema free environment, providing better flexibility and eliminating the need for a predefined schema.', "The 'upsert' feature in MongoDB combines update and insert, allowing for the insertion of records if not found, as illustrated by the 'n matched 0' and 'n upserted 2' results when 'upsert: true' is used.", 'MongoDB aggregation simplifies queries with handy functions', 'HTML is the most widely used markup language for developing and structuring web pages on the internet.']}