mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2026-03-13 02:01:57 +08:00
Compare commits
97 Commits
content/da
...
fix/sync-r
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b16182af5e | ||
|
|
6240af3fa5 | ||
|
|
8247f19850 | ||
|
|
9a3ec66409 | ||
|
|
157a2d163b | ||
|
|
6c925a9968 | ||
|
|
9d4f00837c | ||
|
|
c3e3d52832 | ||
|
|
c8ca880b08 | ||
|
|
968ff0eda7 | ||
|
|
ffe4902339 | ||
|
|
2da022394c | ||
|
|
775ccef13f | ||
|
|
61c0cf6ac8 | ||
|
|
02bab42058 | ||
|
|
dbb5959bf5 | ||
|
|
73fe2abd7d | ||
|
|
06a0fc2222 | ||
|
|
be085f8b57 | ||
|
|
080e843a04 | ||
|
|
0eacaefa34 | ||
|
|
60479d71ef | ||
|
|
25a3bd57e6 | ||
|
|
37c5834511 | ||
|
|
f4fa9881af | ||
|
|
fc77e37828 | ||
|
|
307bd209bd | ||
|
|
d2fa463a1e | ||
|
|
0b1b5cb8e7 | ||
|
|
d55bfd4b49 | ||
|
|
ff9097e4f5 | ||
|
|
e815985e4a | ||
|
|
d6ba67a4ae | ||
|
|
f60bf6cde6 | ||
|
|
c65af9f60a | ||
|
|
22cde0cac6 | ||
|
|
162b7bdb84 | ||
|
|
a84a7bdb73 | ||
|
|
524f50b864 | ||
|
|
e9018ef178 | ||
|
|
ed23bcb8c2 | ||
|
|
ebe21f46ee | ||
|
|
85f2987532 | ||
|
|
2586443fbe | ||
|
|
e5f9e76801 | ||
|
|
ab18daa5af | ||
|
|
5a79cffc84 | ||
|
|
2975d79da7 | ||
|
|
7fccbe5066 | ||
|
|
6c66e7fe9b | ||
|
|
e8d2f4aff0 | ||
|
|
dc4ab4a494 | ||
|
|
c11e39b12a | ||
|
|
51d541fae0 | ||
|
|
966b1f5f8b | ||
|
|
c6feb67d67 | ||
|
|
5c094331c9 | ||
|
|
b6586c6fa2 | ||
|
|
d1f863eeac | ||
|
|
23ab77b426 | ||
|
|
0c9eab2c41 | ||
|
|
1dae64f865 | ||
|
|
c2edaa810a | ||
|
|
24eace0f73 | ||
|
|
3c06b122e6 | ||
|
|
2fdb647413 | ||
|
|
3ca9f81298 | ||
|
|
56c4630e0d | ||
|
|
36af3ddcf1 | ||
|
|
0e7afe3c99 | ||
|
|
b605fd6337 | ||
|
|
ba1e5a58b5 | ||
|
|
dd12cf1c99 | ||
|
|
44854cc5fb | ||
|
|
b1e60f1614 | ||
|
|
168ad05afe | ||
|
|
bb0419bf8a | ||
|
|
2d18cefd55 | ||
|
|
931e1b4a31 | ||
|
|
e2075529ac | ||
|
|
8dbe1468ed | ||
|
|
bb13bf38a8 | ||
|
|
80dfd5b206 | ||
|
|
a89c2d454f | ||
|
|
d1cf7cca99 | ||
|
|
9c32f9d469 | ||
|
|
cef4c29f10 | ||
|
|
679e29d12d | ||
|
|
4e569df2a3 | ||
|
|
40c7ea1b43 | ||
|
|
f9f38101f9 | ||
|
|
c4c28944ee | ||
|
|
ffb1cb5059 | ||
|
|
580e764097 | ||
|
|
111a97bb55 | ||
|
|
5d85495d72 | ||
|
|
ed2a251de4 |
@@ -3,6 +3,6 @@
|
||||
"enabled": false
|
||||
},
|
||||
"_variables": {
|
||||
"lastUpdateCheck": 1756224238932
|
||||
"lastUpdateCheck": 1758909687006
|
||||
}
|
||||
}
|
||||
@@ -7,4 +7,6 @@ PUBLIC_STRIPE_INDIVIDUAL_MONTHLY_PRICE_ID=
|
||||
PUBLIC_STRIPE_INDIVIDUAL_YEARLY_PRICE_ID=
|
||||
|
||||
PUBLIC_STRIPE_INDIVIDUAL_MONTHLY_PRICE_AMOUNT=10
|
||||
PUBLIC_STRIPE_INDIVIDUAL_YEARLY_PRICE_AMOUNT=100
|
||||
PUBLIC_STRIPE_INDIVIDUAL_YEARLY_PRICE_AMOUNT=100
|
||||
|
||||
ROADMAP_API_KEY=
|
||||
@@ -1,35 +0,0 @@
|
||||
name: "🙏 Submit a Project Idea"
|
||||
description: Help us add project ideas to roadmaps.
|
||||
labels: [project contribution]
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to submit a project idea! Please fill out the information below and we'll get back to you as soon as we can.
|
||||
- type: input
|
||||
id: roadmap-title
|
||||
attributes:
|
||||
label: What Roadmap is this project for?
|
||||
placeholder: e.g. Backend Roadmap
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: project-difficulty
|
||||
attributes:
|
||||
label: Project Difficulty
|
||||
options:
|
||||
- Beginner
|
||||
- Intermediate
|
||||
- Advanced
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: roadmap-description
|
||||
attributes:
|
||||
label: Add Project Details
|
||||
description: Please write a detailed description of the project in 3rd person e.g. "You are required to build a..."
|
||||
placeholder: |
|
||||
e.g. You are required to build a RESTful API...
|
||||
validations:
|
||||
required: true
|
||||
@@ -6,8 +6,10 @@ First of all, thank you for considering to contribute. Please look at the detail
|
||||
- [Existing Roadmaps](#existing-roadmaps)
|
||||
- [Adding Projects](#adding-projects)
|
||||
- [Adding Content](#adding-content)
|
||||
- [How To Structure Content](#how-to-structure-content)
|
||||
- [Guidelines](#guidelines)
|
||||
- [Good vs. Not So Good Contributions](#good-vs-not-so-good-contributions)
|
||||
- [Local Development](#local-development)
|
||||
|
||||
## New Roadmaps
|
||||
|
||||
@@ -53,6 +55,7 @@ Find [the content directory inside the relevant roadmap](https://github.com/kamr
|
||||
|
||||
- Content must be in English.
|
||||
- Maximum of 8 links per topic.
|
||||
- **No GeeksforGeeks links** — Links to geeksforgeeks.org are not accepted.
|
||||
- Follow the below style guide for content.
|
||||
|
||||
Please note that we are intentionally keeping the content under the topic popup concise. You MUST always aim to explain the topic simply in a **single paragraph** or so and provide external resources where users can learn more about the topic.
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
"sync:content-to-repo": "tsx ./scripts/sync-content-to-repo.ts",
|
||||
"sync:repo-to-database": "tsx ./scripts/sync-repo-to-database.ts",
|
||||
"migrate:content-repo-to-database": "tsx ./scripts/migrate-content-repo-to-database.ts",
|
||||
"official:roadmap-assets": "tsx ./scripts/official-roadmap-assets.ts",
|
||||
"test:e2e": "playwright test"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
2
pnpm-lock.yaml
generated
2
pnpm-lock.yaml
generated
@@ -9897,4 +9897,4 @@ snapshots:
|
||||
react: 19.1.0
|
||||
use-sync-external-store: 1.5.0(react@19.1.0)
|
||||
|
||||
zwitch@2.0.4: {}
|
||||
zwitch@2.0.4: {}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/pdfs/roadmaps/backend-beginner.pdf
Normal file
BIN
public/pdfs/roadmaps/backend-beginner.pdf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/pdfs/roadmaps/css.pdf
Normal file
BIN
public/pdfs/roadmaps/css.pdf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/pdfs/roadmaps/devops-beginner.pdf
Normal file
BIN
public/pdfs/roadmaps/devops-beginner.pdf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/pdfs/roadmaps/frontend-beginner.pdf
Normal file
BIN
public/pdfs/roadmaps/frontend-beginner.pdf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/pdfs/roadmaps/git-github-beginner.pdf
Normal file
BIN
public/pdfs/roadmaps/git-github-beginner.pdf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/pdfs/roadmaps/html.pdf
Normal file
BIN
public/pdfs/roadmaps/html.pdf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/pdfs/roadmaps/kotlin.pdf
Normal file
BIN
public/pdfs/roadmaps/kotlin.pdf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -557,12 +557,12 @@
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "From Prompt to Production: Github Blog",
|
||||
"title": "From Prompt to Production: GitHub Blog",
|
||||
"url": "https://github.blog/ai-and-ml/github-copilot/from-prompt-to-production-building-a-landing-page-with-copilot-agent-mode/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Github Copilot",
|
||||
"title": "GitHub Copilot",
|
||||
"url": "https://github.com/features/copilot",
|
||||
"type": "article"
|
||||
}
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
},
|
||||
{
|
||||
"title": "AI Agents and Their Types",
|
||||
"url": "https://play.ht/blog/ai-agents-use-cases/",
|
||||
"url": "https://www.digitalocean.com/resources/articles/types-of-ai-agents",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -190,7 +190,7 @@
|
||||
"description": "`Git` is a highly efficient and flexible distributed version control system that was created by **Linus Torvalds**, the creator of Linux. It allows multiple developers to work on a project concurrently, providing tools for non-linear development and tracking changes in any set of files. Git has a local repository with a complete history and version-tracking capabilities, allowing offline operations, unlike SVN. It ensures data integrity and provides strong support for non-linear development with features such as branching and merging.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Git and Github Roadmap",
|
||||
"title": "Git and GitHub Roadmap",
|
||||
"url": "https://roadmap.sh/git-github",
|
||||
"type": "article"
|
||||
},
|
||||
@@ -211,7 +211,7 @@
|
||||
"description": "**GitHub** is a cloud-based hosting service for managing software version control using Git. It provides a platform for enabling multiple developers to work together on the same project at the same time. With GitHub, codes can be stored publicly, allowing for collaboration with other developers or privately for individual projects. Key features of GitHub include code sharing, task management, and version control, among others. GitHub also offers functionalities such as bug tracking, feature requests, and task management for the project.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Git and Github Roadmap",
|
||||
"title": "Git and GitHub Roadmap",
|
||||
"url": "https://roadmap.sh/git-github",
|
||||
"type": "article"
|
||||
},
|
||||
@@ -221,7 +221,7 @@
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Github Documentation",
|
||||
"title": "GitHub Documentation",
|
||||
"url": "https://docs.github.com/",
|
||||
"type": "article"
|
||||
}
|
||||
@@ -245,15 +245,15 @@
|
||||
},
|
||||
"Q47BtQphp59NkkZoeNXmP": {
|
||||
"title": "GitLab",
|
||||
"description": "`Gitlab` is a web-based DevOps lifecycle tool which provides a Git-repository manager, along with continuous integration and deployment pipeline features, using an open-source license, developed by GitLab Inc. Users can manage and create their software projects and repositories, and collaborate on these projects with other members. `Gitlab` also allows users to view analytics and open issues of their project. It stands next to other version control tools like `GitHub` and `Bitbucket`, but comes with its own set of additional features and nuances. For Android development, `Gitlab` can be particularly useful owing to its continuous integration and deployment system which can automate large parts of the app testing and deployment.\n\nVisit the following resources to learn more:",
|
||||
"description": "`GitLab` is a web-based DevOps lifecycle tool which provides a Git-repository manager, along with continuous integration and deployment pipeline features, using an open-source license, developed by GitLab Inc. Users can manage and create their software projects and repositories, and collaborate on these projects with other members. `GitLab` also allows users to view analytics and open issues of their project. It stands next to other version control tools like `GitHub` and `Bitbucket`, but comes with its own set of additional features and nuances. For Android development, `GitLab` can be particularly useful owing to its continuous integration and deployment system which can automate large parts of the app testing and deployment.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Gitlab",
|
||||
"title": "GitLab",
|
||||
"url": "https://about.gitlab.com/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Gitlab Documentation",
|
||||
"title": "GitLab Documentation",
|
||||
"url": "https://docs.gitlab.com/",
|
||||
"type": "article"
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
1017
public/roadmap-content/bi-analyst.json
Normal file
1017
public/roadmap-content/bi-analyst.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1838,7 +1838,7 @@
|
||||
"description": "GitHub is a provider of Internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Visit Dedicated Github Roadmap",
|
||||
"title": "Visit Dedicated GitHub Roadmap",
|
||||
"url": "https://roadmap.sh/git-github",
|
||||
"type": "article"
|
||||
},
|
||||
|
||||
@@ -394,7 +394,7 @@
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "CI/CD Pipelines - Gitlab",
|
||||
"title": "CI/CD Pipelines - GitLab",
|
||||
"url": "https://docs.gitlab.com/ee/ci/pipelines/",
|
||||
"type": "article"
|
||||
},
|
||||
|
||||
@@ -239,6 +239,11 @@
|
||||
"url": "https://www.tutorialspoint.com/cprogramming/index.htm",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Beej's Guide to C Programming",
|
||||
"url": "https://beej.us/guide/bgc/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Explore top posts about C Programming",
|
||||
"url": "https://app.daily.dev/tags/c?ref=roadmapsh",
|
||||
|
||||
@@ -3,14 +3,19 @@
|
||||
"title": "Fundamental IT Skills",
|
||||
"description": "Fundamental IT skills form the backbone of cybersecurity proficiency and encompass a broad range of technical knowledge. These skills include understanding computer hardware and software, networking concepts, and operating systems (particularly Windows and Linux). Proficiency in at least one programming language, such as Python or JavaScript, is increasingly important for automation and scripting tasks. Database management, including SQL, is crucial for handling and securing data. Knowledge of cloud computing platforms like AWS or Azure is becoming essential as organizations migrate to cloud environments. Familiarity with basic cybersecurity concepts such as encryption, access control, and common attack vectors provides a foundation for more advanced security work. Additionally, troubleshooting skills, the ability to interpret logs, and a basic understanding of web technologies are vital. These fundamental IT skills enable cybersecurity professionals to effectively protect systems, identify vulnerabilities, and respond to incidents in increasingly complex technological landscapes.\n\nLearn more from the following resources:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Cisco Networking Academy: Introduction to Cybersecurity",
|
||||
"url": "https://www.netacad.com/courses/introduction-to-cybersecurity?courseLang=en-US",
|
||||
"type": "course"
|
||||
},
|
||||
{
|
||||
"title": "8 In-Demand IT Skills to Boost Your Resume in 2025",
|
||||
"url": "https://www.coursera.org/articles/key-it-skills-for-your-career",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Top 10 in Demand IT Skills",
|
||||
"url": "https://www.comptia.org/blog/top-it-skills-in-demand",
|
||||
"title": "Top IT Skills in Demand",
|
||||
"url": "https://www.comptia.org/en/blog/top-it-skills-in-demand",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
@@ -383,6 +388,11 @@
|
||||
"title": "Network Chuck Free CCNA Course",
|
||||
"url": "https://www.youtube.com/playlist?list=PLIhvC56v63IJVXv0GJcl9vO5Z6znCVb1P",
|
||||
"type": "video"
|
||||
},
|
||||
{
|
||||
"title": "Jeremy's IT Lab",
|
||||
"url": "https://www.youtube.com/@JeremysITLab",
|
||||
"type": "video"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1743,7 +1753,7 @@
|
||||
"links": [
|
||||
{
|
||||
"title": "How to look up DNS records with dig",
|
||||
"url": "https://www.youtube.com/watch?v=3AOKomsmeUY",
|
||||
"url": "https://www.youtube.com/watch?v=iESSCDnC74k",
|
||||
"type": "video"
|
||||
}
|
||||
]
|
||||
@@ -2727,7 +2737,7 @@
|
||||
"description": "**memdump** is a tool or process used to capture the contents of a computer's physical memory (RAM) for analysis. This \"memory dump\" can be useful in digital forensics, debugging, or incident response to identify active processes, open files, network connections, or potentially malicious code running in memory. By analyzing a memory dump, security professionals can investigate malware, recover encryption keys, or gather evidence in case of a breach. Tools like `memdump` (Linux utility) or `DumpIt` (Windows) are commonly used to perform this process.\n\nLearn more from the following resources:",
|
||||
"links": [
|
||||
{
|
||||
"title": "memdump - Github",
|
||||
"title": "memdump - GitHub",
|
||||
"url": "https://github.com/tchebb/memdump",
|
||||
"type": "opensource"
|
||||
},
|
||||
|
||||
3485
public/roadmap-content/data-engineer.json
Normal file
3485
public/roadmap-content/data-engineer.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1140,8 +1140,19 @@
|
||||
},
|
||||
"MGb8ufztTK75aXAyEAuaf": {
|
||||
"title": "Two Heaps",
|
||||
"description": "",
|
||||
"links": []
|
||||
"description": "The two heaps method uses a max-heap to store the lower half of the numbers and a min-heap to store the upper half. This setup allows you to quickly access the largest value of the lower half and the smallest value of the upper half in constant time. Insertions and deletions take logarithmic time, and the heaps are balanced so that the median can be found in O(1) time. This approach is especially useful for dynamically maintaining the median of a long or streaming data sequence, where repeatedly sorting the data would be inefficient (O(n log n) per sort).\n\nLearn more from the following resources:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Two Heaps — A Coding Pattern for Median-finding (Emre Bolat)",
|
||||
"url": "https://emre.me/coding-patterns/two-heaps/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Coding Pattern - Two Heaps (Imran Sarwar)",
|
||||
"url": "https://www.youtube.com/watch?v=9P7W5aEaatQ",
|
||||
"type": "video"
|
||||
}
|
||||
]
|
||||
},
|
||||
"gaaRAL3HR48Qj9rz1CkDU": {
|
||||
"title": "Multi-threaded",
|
||||
|
||||
@@ -658,7 +658,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Git & GitHub Crash Course For Beginners",
|
||||
"url": "https://www.youtube.com/watch?v=SWYqp7iY_Tc",
|
||||
"url": "https://www.youtube.com/watch?v=vA5TTz6BXhY",
|
||||
"type": "video"
|
||||
}
|
||||
]
|
||||
@@ -683,7 +683,7 @@
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Github vs Gitlab vs Bitbucket - Which Is Better?",
|
||||
"title": "GitHub vs GitLab vs Bitbucket - Which Is Better?",
|
||||
"url": "https://www.youtube.com/watch?v=FQGXIIqziQg",
|
||||
"type": "video"
|
||||
}
|
||||
@@ -740,7 +740,7 @@
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Gitlab Explained: What is Gitlab and Why Use It?",
|
||||
"title": "GitLab Explained: What is GitLab and Why Use It?",
|
||||
"url": "https://www.youtube.com/watch?v=bnF7f1zGpo4",
|
||||
"type": "video"
|
||||
}
|
||||
@@ -2014,6 +2014,11 @@
|
||||
"title": "Ansible in 100 Seconds",
|
||||
"url": "https://www.youtube.com/watch?v=xRMPKQweySE",
|
||||
"type": "video"
|
||||
},
|
||||
{
|
||||
"title": "Ansible Full Course to Zero to Hero",
|
||||
"url": "https://www.youtube.com/watch?v=GROqwFFLl3s",
|
||||
"type": "video"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -2097,21 +2102,16 @@
|
||||
},
|
||||
"JnWVCS1HbAyfCJzGt-WOH": {
|
||||
"title": "GitHub Actions",
|
||||
"description": "GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform integrated directly into GitHub repositories. It allows developers to automate software workflows, including building, testing, and deploying applications. Actions are defined in YAML files and triggered by various GitHub events such as pushes, pull requests, or scheduled tasks. The platform provides a marketplace of pre-built actions and supports custom actions. GitHub Actions offers matrix builds, parallel job execution, and supports multiple operating systems and languages. It integrates seamlessly with GitHub's ecosystem, facilitating automated code review, issue tracking, and project management. This tool enables developers to implement DevOps practices efficiently within their GitHub workflow, enhancing productivity and code quality.\n\nVisit the following resources to learn more:",
|
||||
"description": "GitHub Actions is GitHub’s built-in automation platform that lets you run workflows directly from your repository, such as building, testing, and deploying code, triggered by events like pushes, pull requests, or schedules.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "GitHub Actions Certification – Full Course to PASS the Exam",
|
||||
"url": "https://www.youtube.com/watch?v=Tz7FsunBbfQ",
|
||||
"type": "course"
|
||||
},
|
||||
{
|
||||
"title": "GitHub Actions Documentation",
|
||||
"url": "https://docs.github.com/en/actions",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Explore top posts about GitHub",
|
||||
"url": "https://app.daily.dev/tags/github?ref=roadmapsh",
|
||||
"title": "GitHub Actions Guide",
|
||||
"url": "https://octopus.com/devops/github-actions/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
@@ -2141,8 +2141,8 @@
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Explore top posts about GitLab",
|
||||
"url": "https://app.daily.dev/tags/gitlab?ref=roadmapsh",
|
||||
"title": "GitLab CI/CD Pipeline Tutorial",
|
||||
"url": "https://octopus.com/devops/gitlab/gitlab-cicd-tutorial/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
@@ -2154,7 +2154,7 @@
|
||||
},
|
||||
"dUapFp3f0Rum-rf_Vk_b-": {
|
||||
"title": "Jenkins",
|
||||
"description": "Jenkins is an open-source automation server widely used for building, testing, and deploying software. It facilitates continuous integration and continuous delivery (CI/CD) by automating various stages of the development pipeline. Jenkins supports numerous plugins, allowing integration with virtually any tool in the software development lifecycle. It features a web interface for configuration and monitoring, supports distributed builds across multiple machines, and offers extensibility through a plugin architecture. Jenkins can be used to create complex workflows, automate repetitive tasks, and orchestrate job sequences. Its flexibility, broad community support, and ability to integrate with a wide range of tools make it a popular choice for implementing DevOps practices in organizations of all sizes.\n\nVisit the following resources to learn more:",
|
||||
"description": "Jenkins is an open-source automation server used to build, test, and deploy software, offering a wide range of plugins to support continuous integration and continuous delivery (CI/CD).\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Jenkins Website",
|
||||
@@ -2166,6 +2166,11 @@
|
||||
"url": "https://www.jenkins.io/doc/pipeline/tour/getting-started/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Jenkins Tutorial",
|
||||
"url": "https://octopus.com/devops/jenkins/jenkins-tutorial/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Explore top posts about Jenkins",
|
||||
"url": "https://app.daily.dev/tags/jenkins?ref=roadmapsh",
|
||||
@@ -2178,32 +2183,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"-pGF3soruWWxwE4LxE5Vk": {
|
||||
"title": "Travis CI",
|
||||
"description": "Travis CI is a cloud-based continuous integration (CI) service that automatically builds and tests code changes in GitHub repositories. It helps streamline the software development process by automatically running tests and building applications whenever code is pushed or a pull request is made. Travis CI supports a variety of programming languages and provides integration with other tools and services, offering features like build matrix configurations, deployment pipelines, and notifications. Its ease of setup and integration with GitHub makes it a popular choice for open-source and private projects looking to implement CI/CD practices.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Travis CI Documentation",
|
||||
"url": "https://docs.travis-ci.com/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Travis CI Tutorial",
|
||||
"url": "https://docs.travis-ci.com/user/tutorial/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Explore top posts about CI/CD",
|
||||
"url": "https://app.daily.dev/tags/cicd?ref=roadmapsh",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Travis CI Complete Tutorial for DevOps Engineers",
|
||||
"url": "https://www.youtube.com/watch?v=xLWDOLhTH38",
|
||||
"type": "video"
|
||||
}
|
||||
]
|
||||
},
|
||||
"1-JneOQeGhox-CKrdiquq": {
|
||||
"title": "Circle CI",
|
||||
"description": "CircleCI is a popular continuous integration and continuous delivery (CI/CD) platform that automates the build, test, and deployment processes of software projects. It supports a wide range of programming languages and integrates with various version control systems, primarily GitHub and Bitbucket. CircleCI uses a YAML configuration file to define pipelines, allowing developers to specify complex workflows, parallel job execution, and custom environments. It offers features like caching, artifact storage, and Docker layer caching to speed up builds. With its cloud-based and self-hosted options, CircleCI provides scalable solutions for projects of all sizes, helping teams improve code quality, accelerate release cycles, and streamline their development workflows.\n\nVisit the following resources to learn more:",
|
||||
@@ -2226,23 +2205,18 @@
|
||||
]
|
||||
},
|
||||
"TsXFx1wWikVBVoFUUDAMx": {
|
||||
"title": "Drone",
|
||||
"description": "Drone is an open-source continuous integration (CI) platform built on container technology. It automates building, testing, and deploying code using a simple, YAML-based pipeline configuration stored alongside the source code. Drone executes each step of the CI/CD process in isolated Docker containers, ensuring consistency and reproducibility. It supports multiple version control systems, offers parallel execution of pipeline steps, and provides plugins for integrating with various tools and services. Drone's lightweight, scalable architecture makes it suitable for projects of all sizes, from small teams to large enterprises. Its focus on simplicity and containerization aligns well with modern DevOps practices and microservices architectures.\n\nVisit the following resources to learn more:",
|
||||
"title": "Octopus Deploy",
|
||||
"description": "Octopus Deploy is a deployment automation tool that helps teams release applications reliably and consistently. It manages the deployment process, handles configuration, and automates releases across different environments like development, testing, and production, reducing manual errors and saving time.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Drone",
|
||||
"url": "https://www.drone.io/",
|
||||
"title": "Octopus Deploy",
|
||||
"url": "https://octopus.com/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Drone Documentation",
|
||||
"url": "https://docs.drone.io/",
|
||||
"title": "Official Documentation",
|
||||
"url": "https://octopus.com/docs",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Drone CI Quickstart",
|
||||
"url": "https://www.youtube.com/watch?v=Qf8EHRzAgHQ",
|
||||
"type": "video"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -2832,11 +2806,21 @@
|
||||
},
|
||||
"-INN1qTMLimrZgaSPCcHj": {
|
||||
"title": "GitOps",
|
||||
"description": "GitOps is a paradigm for managing infrastructure and application deployments using Git as the single source of truth. It extends DevOps practices by using Git repositories to store declarative descriptions of infrastructure and applications. Changes to the desired state are made through pull requests, which trigger automated processes to align the actual state with the desired state. GitOps relies on continuous deployment tools that automatically reconcile the live system with the desired state defined in Git. This approach provides benefits such as version control for infrastructure, improved auditability, easier rollbacks, and enhanced collaboration. GitOps is particularly well-suited for cloud-native applications and Kubernetes environments, offering a streamlined method for managing complex, distributed systems.\n\nVisit the following resources to learn more:",
|
||||
"description": "GitOps is a way of managing infrastructure and application deployments by storing the desired state in a Git repository and using automation to apply changes. It treats Git as the single source of truth, so updates are made by committing changes to the repo, and automated tools reconcile the actual system state with what’s in Git.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": " GitOps",
|
||||
"url": "https://www.gitops.tech/",
|
||||
"title": "What is GitOps",
|
||||
"url": "https://octopus.com/devops/gitops/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "GitOps Interactive Benefits Diagram",
|
||||
"url": "https://octopus.com/devops/gitops/interactive-diagrams/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "GitOps Maturity Model",
|
||||
"url": "https://octopus.com/devops/gitops/gitops-maturity-model/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
@@ -2853,7 +2837,7 @@
|
||||
},
|
||||
"i-DLwNXdCUUug6lfjkPSy": {
|
||||
"title": "ArgoCD",
|
||||
"description": "Argo CD is a continuous delivery tool for Kubernetes that is based on the GitOps methodology. It is used to automate the deployment and management of cloud-native applications by continuously synchronizing the desired application state with the actual application state in the production environment. In an Argo CD workflow, changes to the application are made by committing code or configuration changes to a Git repository. Argo CD monitors the repository and automatically deploys the changes to the production environment using a continuous delivery pipeline. The pipeline is triggered by changes to the Git repository and is responsible for building, testing, and deploying the changes to the production environment.Argo CD is designed to be a simple and efficient way to manage cloud-native applications, as it allows developers to make changes to the system using familiar tools and processes and it provides a clear and auditable history of all changes to the system. It is often used in conjunction with tools such as Helm to automate the deployment and management of cloud-native applications.\n\nVisit the following resources to learn more:",
|
||||
"description": "Argo CD is a continuous delivery tool for Kubernetes that is based on the GitOps methodology. It is used to automate the deployment and management of cloud-native applications by continuously synchronizing the desired application state with the actual application state in the production environment. In an Argo CD workflow, changes to the application are made by committing code or configuration changes to a Git repository. Argo CD monitors the repository and automatically deploys the changes to the production environment using a continuous delivery pipeline. The pipeline is triggered by changes to the Git repository and is responsible for building, testing, and deploying the changes to the production environment. Argo CD is designed to be a simple and efficient way to manage cloud-native applications, as it allows developers to make changes to the system using familiar tools and processes and it provides a clear and auditable history of all changes to the system. It is often used in conjunction with tools such as Helm to automate the deployment and management of cloud-native applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Argo CD - Argo Project",
|
||||
|
||||
@@ -875,7 +875,7 @@
|
||||
"links": [
|
||||
{
|
||||
"title": "Docker Deployment",
|
||||
"url": "https://docs.docker.com/get-started/deployment/",
|
||||
"url": "https://docs.docker.com/guides/orchestration/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -171,8 +171,29 @@
|
||||
},
|
||||
"HMDsgljLshA63XX-hhAxV": {
|
||||
"title": "VS Code",
|
||||
"description": "To use VS Code for Flutter development, you must install the Flutter and Dart plugins for VS Code. These plugins support Flutter-specific features such as syntax highlighting, debugging, and hot reloading.",
|
||||
"links": []
|
||||
"description": "VS Code is a lightweight, fast, and highly customizable code editor that provides excellent support for Flutter development. To use VS Code for Flutter development, you must install the Flutter and Dart plugins for VS Code. These plugins support Flutter-specific features such as syntax highlighting, debugging, and hot reloading.\n\nWith the Flutter extension, VS Code provides essential development tools including:\n\n* Flutter widget inspector\n* Hot reload and hot restart\n* Integrated debugging\n* Code completion and IntelliSense\n* Flutter outline view\n* Device management\n* Integrated terminal\n\nVS Code is particularly popular among developers who prefer a lightweight IDE with fast performance, extensive customization options, and cross-platform availability.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "VS Code for Flutter",
|
||||
"url": "https://docs.flutter.dev/development/tools/vs-code",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Flutter extension for VS Code",
|
||||
"url": "https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Dart extension for VS Code",
|
||||
"url": "https://marketplace.visualstudio.com/items?itemName=Dart-Code.dart-code",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Explore top posts about Flutter",
|
||||
"url": "https://app.daily.dev/tags/flutter?ref=roadmapsh",
|
||||
"type": "article"
|
||||
}
|
||||
]
|
||||
},
|
||||
"QHPiMRg4IJXDErrEYamrJ": {
|
||||
"title": "Android Studio",
|
||||
@@ -298,8 +319,34 @@
|
||||
},
|
||||
"wBSdmrVPv3Zuys3X8VvBm": {
|
||||
"title": "Styled Widgets",
|
||||
"description": "",
|
||||
"links": []
|
||||
"description": "Styled widgets in Flutter refer to widgets that are decorated with custom styles, such as colors, fonts, shapes, and visual properties. They help create consistent and visually appealing user interfaces by applying themes and styling across your application.\n\nFlutter provides two main design systems for styled widgets:\n\n* **Material Widgets** - Google's Material Design components with built-in styling, animations, and theming\n* **Cupertino Widgets** - Apple's iOS design language widgets that provide native iOS look and feel\n\nYou can customize styled widgets through:\n\n* **ThemeData** for app-wide styling and color schemes\n* **Individual widget properties** like color, padding, and decoration\n* **Custom themes** using ThemeExtension for reusable component styles\n* **BoxDecoration** for borders, shadows, gradients, and backgrounds\n* **TextStyles** for typography and font customization\n\nStyled widgets can be created by wrapping existing widgets with styling containers like Container, DecoratedBox, or Theme widgets, or by using the built-in styling properties of Material and Cupertino widgets.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Use themes to share colors and font styles",
|
||||
"url": "https://docs.flutter.dev/cookbook/design/themes",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Styling widgets",
|
||||
"url": "https://docs.flutter.dev/ui/widgets/styling",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Material theming",
|
||||
"url": "https://docs.flutter.dev/ui/design/material",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Cupertino theming",
|
||||
"url": "https://docs.flutter.dev/ui/design/cupertino",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Explore top posts about Flutter",
|
||||
"url": "https://app.daily.dev/tags/flutter?ref=roadmapsh",
|
||||
"type": "article"
|
||||
}
|
||||
]
|
||||
},
|
||||
"DrQqq-C8XdiXVXBMLS4Wy": {
|
||||
"title": "Material Widgets",
|
||||
@@ -407,7 +454,7 @@
|
||||
"description": "Version control systems allow you to track changes to your codebase/files over time. They allow you to go back to some previous version of the codebase without any issues. Also, they help in collaborating with people working on the same code – if you’ve ever collaborated with other people on a project, you might already know the frustration of copying and merging the changes from someone else into your codebase; version control systems allow you to get rid of this issue.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "What is Version Control? - Github",
|
||||
"title": "What is Version Control? - GitHub",
|
||||
"url": "https://github.com/resources/articles/software-development/what-is-version-control",
|
||||
"type": "article"
|
||||
},
|
||||
@@ -474,12 +521,12 @@
|
||||
"description": "Several popular repository hosting services, including GitHub, GitLab, Bitbucket, AWS CodeCommit, and Azure DevOps, support Flutter development by offering Git repository management, issue tracking, and collaboration tools. When selecting a service, developers should consider factors like project needs, scalability, cost, ease of use, integrations, and third-party tool support to ensure the chosen platform aligns with their specific requirements.\n\nLearn more from the following links:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Github",
|
||||
"title": "GitHub",
|
||||
"url": "https://github.com/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Gitlab",
|
||||
"title": "GitLab",
|
||||
"url": "https://gitlab.com/",
|
||||
"type": "article"
|
||||
},
|
||||
@@ -563,7 +610,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Dependency Injection In Flutter",
|
||||
"url": "https://medium.com/flutter-community/dependency-injection-in-flutter-f19fb66a0740",
|
||||
"url": "https://medium.com/@rk0936626/dependency-injection-in-flutter-3e489ba1b988",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
@@ -1757,12 +1804,12 @@
|
||||
"description": "GitHub Actions is a workflow automation tool provided by GitHub that can be used to automate various tasks in a Flutter mobile app development process. With GitHub Actions, developers can create custom workflows to automate tasks such as building the app, running tests, and deploying the app to various app stores. These workflows are defined as a series of actions in a YAML file, which can be committed to the repository.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Flutter - Github Actions",
|
||||
"title": "Flutter - GitHub Actions",
|
||||
"url": "https://github.com/nabilnalakath/flutter-githubaction",
|
||||
"type": "opensource"
|
||||
},
|
||||
{
|
||||
"title": "Github Actions",
|
||||
"title": "GitHub Actions",
|
||||
"url": "https://github.com/features/actions",
|
||||
"type": "article"
|
||||
},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"VlNNwIEDWqQXtqkHWJYzC": {
|
||||
"title": "Internet",
|
||||
"description": "The Internet, a global network of interconnected computer networks using TCP/IP, facilitates worldwide data exchange, connecting billions of devices. It has revolutionized communication, commerce, education, and entertainment, supporting diverse applications from web browsing to streaming. While offering vast information access, it also presents privacy, security, and digital divide challenges.\n\nVisit the following resources to learn more:",
|
||||
"description": "The Internet is a global network of interconnected computers using TCP/IP protocols, connecting billions of devices worldwide. Revolutionized communication, commerce, education, and entertainment. Enables web browsing, streaming, and diverse applications while presenting privacy and security challenges.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Introduction to Internet",
|
||||
@@ -17,7 +17,7 @@
|
||||
},
|
||||
"yCnn-NfSxIybUQ2iTuUGq": {
|
||||
"title": "How does the internet work?",
|
||||
"description": "The internet is a global network connecting computers and devices for information sharing, enabling activities like browsing websites, sending emails, and streaming videos. It acts as a vast web linking everything, facilitating communication and access to online resources and services worldwide.\n\nVisit the following resources to learn more:",
|
||||
"description": "The internet is a global network connecting computers and devices for information sharing. Enables browsing, email, streaming, and communication through interconnected systems. Acts as worldwide infrastructure facilitating access to online resources and services.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Introduction to Internet",
|
||||
@@ -43,7 +43,7 @@
|
||||
},
|
||||
"R12sArWVpbIs_PHxBqVaR": {
|
||||
"title": "What is HTTP?",
|
||||
"description": "HTTP (Hypertext Transfer Protocol) is the main way information is sent and received on the internet. It's like the language web browsers and servers use to talk to each other. When you visit a website, your browser sends an HTTP request to the server, and the server sends back the website data. Each request is separate, so the server doesn't remember past requests. HTTP has different commands (like GET for getting data, POST for sending it). HTTPS is a secure version of HTTP that encrypts information. Newer versions like HTTP/2 and HTTP/3 are faster. Knowing HTTP is important for anyone building websites.\n\nVisit the following resources to learn more:",
|
||||
"description": "HTTP (Hypertext Transfer Protocol) enables browser-server communication through requests and responses. Stateless protocol using methods like GET and POST. HTTPS provides encrypted security. Newer versions (HTTP/2, HTTP/3) offer improved performance. Fundamental for web development understanding.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Everything you need to know about HTTP",
|
||||
@@ -69,7 +69,7 @@
|
||||
},
|
||||
"ZhSuu2VArnzPDp6dPQQSC": {
|
||||
"title": "What is Domain Name?",
|
||||
"description": "A domain name is a human-friendly web address (e.g., [google.com](http://google.com)) that acts as a memorable substitute for numerical IP addresses. It comprises a second-level domain (like \"google\") and a top-level domain (like \".com\"). Registered via domain registrars, these unique names are key for branding and online presence. The Domain Name System (DNS) translates these names into IP addresses, enabling easy website access. Domain names are vital for web structure and accessibility.\n\nVisit the following resources to learn more:",
|
||||
"description": "Domain names are human-friendly web addresses (e.g., [google.com](http://google.com)) substituting numerical IP addresses. Comprise second-level (\"google\") and top-level (\".com\") domains. Registered through registrars, essential for branding and online presence. DNS translates names to IP addresses for accessibility.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "What is a Domain Name?",
|
||||
@@ -90,7 +90,7 @@
|
||||
},
|
||||
"aqMaEY8gkKMikiqleV5EP": {
|
||||
"title": "What is hosting?",
|
||||
"description": "Web hosting is like renting space on the internet for your website. It means storing your website's files on special computers called servers, so people can visit your site. When someone types your website address, the hosting service sends them your site's content. There are different kinds of hosting, like shared hosting (sharing a server with others) or dedicated hosting (having a server all to yourself). Hosting companies often offer other services too, like email, domain names, and security certificates. Choosing the right hosting is important for how well your website works.\n\nVisit the following resources to learn more:",
|
||||
"description": "Web hosting stores website files on servers, making sites accessible online. Types include shared (multiple sites per server) and dedicated (exclusive server) hosting. Providers offer additional services like email, domains, and security certificates. Critical for website performance and accessibility.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "What is Web Hosting?",
|
||||
@@ -111,7 +111,7 @@
|
||||
},
|
||||
"hkxw9jPGYphmjhTjw8766": {
|
||||
"title": "DNS and how it works?",
|
||||
"description": "DNS (Domain Name System) translates human-readable domain names (e.g., [www.example.com](http://www.example.com)) into IP addresses computers use. It's a global, decentralized system of servers. When you enter a domain name, DNS servers find the corresponding IP address, letting your browser connect to the website. This makes navigating the internet easy, as you don't need to remember numeric IP addresses.\n\nVisit the following resources to learn more:",
|
||||
"description": "DNS (Domain Name System) translates human-readable domain names into IP addresses through a global, decentralized server network. Enables easy internet navigation by converting names like [www.example.com](http://www.example.com) to numeric addresses browsers can connect to.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "What is DNS?",
|
||||
@@ -142,7 +142,7 @@
|
||||
},
|
||||
"P82WFaTPgQEPNp5IIuZ1Y": {
|
||||
"title": "Browsers and how they work?",
|
||||
"description": "Web browsers are apps that let you view websites. When you type a web address, the browser asks a server for the page. It then reads the HTML (structure), CSS (style), and JavaScript (interactivity) to show you the webpage. Browsers have rendering engines (like Blink in Chrome or Gecko in Firefox) to display content and JavaScript engines (like V8 in Chrome) to run code. They also handle things like security, bookmarks, and history.\n\nVisit the following resources to learn more:",
|
||||
"description": "Web browsers request and display websites by interpreting HTML, CSS, and JavaScript. Use rendering engines (Blink, Gecko) for display and JavaScript engines (V8) for code execution. Handle security, bookmarks, history, and user interactions for web navigation.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "How Browsers Work",
|
||||
@@ -194,7 +194,7 @@
|
||||
},
|
||||
"PCirR2QiFYO89Fm-Ev3o1": {
|
||||
"title": "Learn the basics",
|
||||
"description": "HTML (HyperText Markup Language) is the backbone of webpages. It structures the content you see online. You use CSS to style this HTML structure and JavaScript to make it interactive. Think of HTML as the skeleton of a website.\n\nVisit the following resources to learn more:",
|
||||
"description": "HTML (HyperText Markup Language) is the structural backbone of webpages, defining content organization. Works with CSS for styling and JavaScript for interactivity. Forms the foundational skeleton of websites, providing semantic structure for web content.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "web.dev: Learn HTML",
|
||||
@@ -210,7 +210,7 @@
|
||||
},
|
||||
"z8-556o-PaHXjlytrawaF": {
|
||||
"title": "Writing Semantic HTML",
|
||||
"description": "Semantic HTML uses markup to convey the meaning of web content, not just its appearance, by employing elements like `<header>`, `<nav>`, `<main>`, `<article>`, `<section>`, `<aside>`, and `<footer>`. This practice enhances accessibility, SEO, and code readability. It includes proper use of headings, lists, and tables. Semantic HTML aids screen readers, improves browser rendering, and offers clearer structure for developers, leading to more meaningful, accessible, and maintainable web documents for both humans and machines.\n\nVisit the following resources to learn more:",
|
||||
"description": "Semantic HTML uses meaningful markup elements (header, nav, main, article, section, aside, footer) to convey content meaning, not just appearance. Enhances accessibility, SEO, and code readability. Aids screen readers and browser rendering for better user experience.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Guide to Writing Semantic HTML",
|
||||
@@ -231,7 +231,7 @@
|
||||
},
|
||||
"V5zucKEHnIPPjwHqsMPHF": {
|
||||
"title": "Forms and Validations",
|
||||
"description": "Before sending data from a form to a server, it's important to check if all required fields are filled in correctly. This is called client-side form validation. It helps make sure the data sent matches what the form expects, improving data quality and user experience.\n\nVisit the following resources to learn more:",
|
||||
"description": "Client-side form validation checks required fields and data formats before server submission. Ensures data integrity, improves user experience with immediate feedback, and reduces server load. Essential for quality data collection and user-friendly interfaces.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "MDN Web Docs: Client-side form validation",
|
||||
@@ -247,7 +247,7 @@
|
||||
},
|
||||
"iJIqi7ngpGHWAqtgdjgxB": {
|
||||
"title": "Accessibility",
|
||||
"description": "Website accessibility means making sites usable by everyone, including those with disabilities. This involves clear design, like text for images, keyboard navigation, good color contrast, and captions. Following accessibility rules helps all users, not just those with disabilities, and can also help with legal compliance and reaching more people.\n\nVisit the following resources to learn more:",
|
||||
"description": "Website accessibility ensures sites are usable by everyone, including people with disabilities. Involves alt text for images, keyboard navigation, color contrast, and captions. Benefits all users, supports legal compliance, and expands audience reach.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Accessibility for Developers by Google",
|
||||
@@ -268,7 +268,7 @@
|
||||
},
|
||||
"mH_qff8R7R6eLQ1tPHLgG": {
|
||||
"title": "SEO Basics",
|
||||
"description": "SEO (Search Engine Optimization) helps websites show up higher in search results. This means using good keywords, creating quality content, making sure your site is fast and mobile-friendly, and getting links from other trusted sites. Good navigation and design also help. Technical things like sitemaps and secure HTTPS are important too. SEO aims to get more visitors from search engines by improving your site both on the page and technically.\n\nVisit the following resources to learn more:",
|
||||
"description": "SEO (Search Engine Optimization) improves website visibility in search results through keywords, quality content, fast loading, mobile-friendliness, and trusted backlinks. Includes technical elements like sitemaps, HTTPS, and good navigation to increase organic traffic.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Complete SEO Course for Beginners",
|
||||
@@ -294,7 +294,7 @@
|
||||
},
|
||||
"ZhJhf1M2OphYbEmduFq-9": {
|
||||
"title": "CSS",
|
||||
"description": "CSS (Cascading Style Sheets) is what makes websites look good. It's a language used to style HTML documents, controlling things like layout, colors, and fonts. CSS keeps the design separate from the HTML content, which makes websites easier to manage. It uses \"selectors\" to pick HTML elements and apply styles. CSS also helps make websites responsive, meaning they look good on any device, thanks to media queries. Important ideas in CSS are the cascade (how styles override each other), inheritance (how styles pass from parent to child elements), and specificity (which style rule wins). Modern CSS has cool tools like Flexbox and Grid for layout, plus animations and transitions for interactive designs.\n\nVisit the following resources to learn more:",
|
||||
"description": "CSS (Cascading Style Sheets) styles HTML documents, controlling layout, colors, and fonts. Separates design from content using selectors to target elements. Features responsive design with media queries, cascade rules, inheritance, and specificity. Modern CSS includes Flexbox, Grid, animations, and transitions.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "CSS Complete Course",
|
||||
@@ -325,7 +325,7 @@
|
||||
},
|
||||
"YFjzPKWDwzrgk2HUX952L": {
|
||||
"title": "Learn the basics",
|
||||
"description": "CSS (Cascading Style Sheets) is the language for styling websites. It makes the frontend look good. Along with HTML and JavaScript, CSS is a key part of the World Wide Web. It controls colors, fonts, layout, and more to visually design webpages.\n\nVisit the following resources to learn more:",
|
||||
"description": "CSS (Cascading Style Sheets) styles websites controlling colors, fonts, layouts, and visual design. Essential web technology alongside HTML and JavaScript. Makes frontend attractive and user-friendly through comprehensive visual control and responsive design capabilities.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "web.dev — Learn CSS",
|
||||
@@ -346,7 +346,7 @@
|
||||
},
|
||||
"dXeYVMXv-3MRQ1ovOUuJW": {
|
||||
"title": "Making Layouts",
|
||||
"description": "Making web layouts means arranging content on a page well. Modern CSS uses Flexbox (for rows/columns) and CSS Grid (for 2D layouts). Responsive design makes sites fit all devices. Frameworks like Bootstrap or Tailwind help build faster. Good layouts think about what's important, how users move through the page, and if everyone can use it. This makes the site look good and work well.\n\nVisit the following resources to learn more:",
|
||||
"description": "Web layouts arrange content effectively using modern CSS techniques like Flexbox (1D) and CSS Grid (2D). Responsive design adapts to all devices. Frameworks like Bootstrap and Tailwind accelerate development. Good layouts prioritize content hierarchy, user flow, and accessibility.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Learn and Practice Flexbox",
|
||||
@@ -372,7 +372,7 @@
|
||||
},
|
||||
"TKtWmArHn7elXRJdG6lDQ": {
|
||||
"title": "Responsive Design",
|
||||
"description": "Responsive web design makes websites look good on all devices, from big desktops to small phones. It uses flexible layouts, images that resize, and CSS media queries to change how the site appears based on screen size. This way, users get a great experience no matter what device they use, and developers don't need to make separate sites for each gadget.\n\nVisit the following resources to learn more:",
|
||||
"description": "Responsive web design ensures websites adapt to all device sizes using flexible layouts, scalable images, and CSS media queries. Provides optimal user experience across desktop, tablet, and mobile devices without requiring separate sites for each platform.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Conquering Responsive Layouts",
|
||||
@@ -398,7 +398,7 @@
|
||||
},
|
||||
"ODcfFEorkfJNupoQygM53": {
|
||||
"title": "JavaScript",
|
||||
"description": "JavaScript is a key programming language for the web. It makes websites interactive, like when things move or change when you click them. It works in web browsers but also on servers (with Node.js) and for desktop apps. JavaScript is flexible and always updating, making it very popular for all kinds of web development.\n\nVisit the following resources to learn more:",
|
||||
"description": "JavaScript is a versatile programming language that makes websites interactive. Runs in browsers, servers (Node.js), and desktop applications. Features dynamic typing, event-driven programming, and constant evolution. Essential for modern web development across frontend and backend.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Visit Dedicated JavaScript Roadmap",
|
||||
@@ -424,7 +424,7 @@
|
||||
},
|
||||
"A4brX0efjZ0FFPTB4r6U0": {
|
||||
"title": "Fetch API / Ajax (XHR)",
|
||||
"description": "The Fetch API is a new way for JavaScript in browsers to make HTTP requests (getting or sending data online). It's better and more flexible than older ways like XMLHttpRequest. Fetch uses Promises, making code that waits for data cleaner. It handles different data types and request methods (GET, POST). It's now the standard way for websites to talk to servers and is supported by most browsers.\n\nVisit the following resources to learn more:",
|
||||
"description": "Fetch API is the modern JavaScript interface for making HTTP requests, replacing XMLHttpRequest. Uses Promises for cleaner asynchronous code, supports various data types and HTTP methods. Now the standard for client-server communication with broad browser support.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Fetch API MDN Docs",
|
||||
@@ -450,7 +450,7 @@
|
||||
},
|
||||
"0MAogsAID9R04R5TTO2Qa": {
|
||||
"title": "Learn DOM Manipulation",
|
||||
"description": "The Document Object Model (DOM) is how programs see HTML and XML documents. It lets scripts change a page's structure, content, and style dynamically. With the DOM, you can easily work with HTML tags, IDs, classes, and attributes to make webpages interactive.\n\nVisit the following resources to learn more:",
|
||||
"description": "DOM (Document Object Model) represents HTML/XML documents as programmable objects. Enables dynamic manipulation of page structure, content, and styles through JavaScript. Allows interaction with elements, attributes, and events for interactive webpages.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "DOM Tree",
|
||||
@@ -481,7 +481,7 @@
|
||||
},
|
||||
"wQSjQqwKHfn5RGPk34BWI": {
|
||||
"title": "Learn the Basics",
|
||||
"description": "JavaScript makes webpages interactive. Think of sliders, what happens when you click something, or pop-up messages – that's often JavaScript at work. It adds dynamic behavior to the static structure created by HTML and styled by CSS.\n\nVisit the following resources to learn more:",
|
||||
"description": "JavaScript adds interactivity to webpages through sliders, click events, pop-ups, and dynamic behavior. Transforms static HTML structure and CSS styling into interactive, responsive user experiences. Essential for modern web functionality and user engagement.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "The Modern JavaScript Tutorial",
|
||||
@@ -497,10 +497,10 @@
|
||||
},
|
||||
"MXnFhZlNB1zTsBFDyni9H": {
|
||||
"title": "VCS Hosting",
|
||||
"description": "Repo hosting services, like GitHub, GitLab, and Bitbucket, are platforms for storing, managing, and collaborating on software projects using version control systems, mainly Git. They facilitate teamwork, code sharing, and project tracking in software development.\n\nVisit the following resources to learn more:",
|
||||
"description": "Repository hosting services (GitHub, GitLab, Bitbucket) provide platforms for storing, managing, and collaborating on software projects using Git version control. Facilitate teamwork, code sharing, project tracking, and distributed software development workflows.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Visit Dedicated Git & Github Roadmap",
|
||||
"title": "Visit Dedicated Git & GitHub Roadmap",
|
||||
"url": "https://roadmap.sh/git-github",
|
||||
"type": "article"
|
||||
},
|
||||
@@ -528,10 +528,10 @@
|
||||
},
|
||||
"NIY7c4TQEEHx0hATu-k5C": {
|
||||
"title": "Version Control Systems",
|
||||
"description": "Version Control Systems (VCS) like Git, Subversion, and Mercurial track code changes, enabling multiple developers to collaborate by maintaining a history of modifications. Git is popular for its distributed model and branching. VCS features include branching for parallel work, merging changes, reverting to past states, remote repositories, pull requests, and code reviews. They also offer backup, recovery, conflict resolution, and tagging. VCS is crucial in modern software development for productivity, code quality, and collaboration.\n\nVisit the following resources to learn more:",
|
||||
"description": "Version Control Systems (VCS) like Git track code changes and enable developer collaboration through modification history. Features include branching, merging, reverting, remote repositories, pull requests, and code reviews. Essential for modern software development productivity, quality, and teamwork.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Visit Dedicated Git & Github Roadmap",
|
||||
"title": "Visit Dedicated Git & GitHub Roadmap",
|
||||
"url": "https://roadmap.sh/git-github",
|
||||
"type": "article"
|
||||
},
|
||||
@@ -554,10 +554,10 @@
|
||||
},
|
||||
"R_I4SGYqLk5zze5I1zS_E": {
|
||||
"title": "Git",
|
||||
"description": "Git is a tool for tracking code changes in software projects. It lets many developers work together by keeping a history of all changes. Git is great for branching (working on different features at once) and merging (combining changes). Everyone has a full copy of the project, so they can work offline. Git is fast, flexible, and the most popular version control system, especially for open-source projects.\n\nVisit the following resources to learn more:",
|
||||
"description": "Git is a distributed version control system tracking code changes and enabling collaborative development. Features branching, merging, and complete project history. Allows offline work with local repositories. Fast, flexible, and the most popular VCS for software projects.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Visit Dedicated Git & Github Roadmap",
|
||||
"title": "Visit Dedicated Git & GitHub Roadmap",
|
||||
"url": "https://roadmap.sh/git-github",
|
||||
"type": "article"
|
||||
},
|
||||
@@ -585,7 +585,7 @@
|
||||
},
|
||||
"IqvS1V-98cxko3e9sBQgP": {
|
||||
"title": "Package Managers",
|
||||
"description": "Package managers are tools that help install, update, and remove software pieces (packages). They manage versions and what other packages are needed. Examples are npm for JavaScript and pip for Python. They make it easy to share and reuse code by keeping packages in one place. Package managers simplify project setup and help keep things consistent. They are very important for modern software development by making work smoother and improving teamwork.\n\nVisit the following resources to learn more:",
|
||||
"description": "Package managers automate software package installation, updates, and dependency management. Examples include npm (JavaScript), pip (Python), and yarn. Enable code sharing, reuse, and consistent project setups. Essential for modern development workflows and team collaboration.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "PNPM: The Faster, More Performant NPM",
|
||||
@@ -616,10 +616,10 @@
|
||||
},
|
||||
"qmTVMJDsEhNIkiwE_UTYu": {
|
||||
"title": "GitHub",
|
||||
"description": "GitHub is a popular website for hosting Git projects. It's a key place for open-source software and is used by developers and companies for both public and private code. Microsoft bought GitHub in 2018. It's a vital tool for modern software development, showing off projects, and contributing to open-source.\n\nVisit the following resources to learn more:",
|
||||
"description": "GitHub is the leading Git repository hosting platform for open-source and private projects. Owned by Microsoft since 2018, it's essential for modern software development, project showcasing, and open-source contributions. Central hub for developer collaboration and code sharing.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Visit Dedicated Git & Github Roadmap",
|
||||
"title": "Visit Dedicated Git & GitHub Roadmap",
|
||||
"url": "https://roadmap.sh/git-github",
|
||||
"type": "article"
|
||||
},
|
||||
@@ -647,7 +647,7 @@
|
||||
},
|
||||
"zIoSJMX3cuzCgDYHjgbEh": {
|
||||
"title": "GitLab",
|
||||
"description": "GitLab is a web platform for the entire software development process (DevOps). It offers many tools in one place. You can use it online or host it yourself. GitLab is popular with businesses that want one platform for all their development work. It's like GitHub but often highlighted for its built-in CI/CD (automating build and release) and self-hosting options.\n\nVisit the following resources to learn more:",
|
||||
"description": "GitLab is a comprehensive DevOps platform offering integrated development tools including Git hosting, CI/CD, issue tracking, and deployment. Available as cloud service or self-hosted solution. Popular with enterprises seeking unified development workflows and built-in automation capabilities.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "GitLab Website",
|
||||
@@ -673,7 +673,7 @@
|
||||
},
|
||||
"DILBiQp7WWgSZ5hhtDW6A": {
|
||||
"title": "Bitbucket",
|
||||
"description": "Bitbucket, by Atlassian, hosts Git and Mercurial code projects. It’s for both open-source and private work. Bitbucket has features like pull requests and code review comments. It works well with other Atlassian tools like Jira for project management. You can use it online or host it yourself. Bitbucket also supports CI/CD (automating build and release) with Bitbucket Pipelines.\n\nVisit the following resources to learn more:",
|
||||
"description": "Bitbucket is Atlassian's Git and Mercurial repository hosting platform supporting open-source and private projects. Features pull requests, code reviews, and integrates with Atlassian tools like Jira. Offers cloud and self-hosted options with CI/CD through Bitbucket Pipelines.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "How to use BitBucket?",
|
||||
@@ -694,7 +694,7 @@
|
||||
},
|
||||
"yrq3nOwFREzl-9EKnpU-e": {
|
||||
"title": "yarn",
|
||||
"description": "Yarn is a JavaScript package manager developed by Facebook, offering a fast, reliable, and secure alternative to npm. It ensures consistent installations with a lockfile, speeds up processes with parallel installations and offline mode, and enhances security via checksum verification. Yarn, especially later versions like Berry with Plug'n'Play, is favored for large projects due to its performance and efficiency in dependency management.\n\nVisit the following resources to learn more:",
|
||||
"description": "Yarn is Facebook's JavaScript package manager offering fast, reliable, secure alternative to npm. Features lockfile consistency, parallel installations, offline mode, and checksum verification. Yarn Berry with Plug'n'Play improves performance for large projects.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Yarn - Getting Started",
|
||||
@@ -715,7 +715,7 @@
|
||||
},
|
||||
"SLxA5qJFp_28TRzr1BjxZ": {
|
||||
"title": "pnpm",
|
||||
"description": "pnpm (performant npm) is a fast and disk-space-saving package manager for JavaScript. It's different from npm and Yarn because it stores packages in one global place and links to them. This means less disk space used and faster installs. pnpm follows `package.json` strictly, making sure installs are consistent. It supports monorepos and is more secure by keeping dependencies separate. It's gaining popularity for its speed and efficiency.\n\nVisit the following resources to learn more:",
|
||||
"description": "pnpm (performant npm) is a fast, disk-efficient JavaScript package manager using global storage with symlinks. Saves disk space, ensures strict package.json compliance, supports monorepos, and provides better security through dependency isolation. Growing popularity for speed and efficiency.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "PNPM Website",
|
||||
@@ -736,7 +736,7 @@
|
||||
},
|
||||
"ib_FHinhrw8VuSet-xMF7": {
|
||||
"title": "npm",
|
||||
"description": "npm (Node Package Manager) is the main tool for managing code packages in Node.js. It helps developers find, share, and use JavaScript code easily. Think of it as a big library where you can get tools and code bits for your projects. npm uses a file called `package.json` to keep track of what your project needs, making it easy to build your project anywhere. Even with other tools like Yarn, npm is still the most popular choice for JavaScript developers.\n\nVisit the following resources to learn more:",
|
||||
"description": "npm (Node Package Manager) is the primary JavaScript package manager for finding, sharing, and managing code dependencies. Uses package.json to track project requirements and enables consistent builds across environments. Remains the most popular choice despite alternatives like Yarn and pnpm.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "How to NPM",
|
||||
@@ -772,7 +772,7 @@
|
||||
},
|
||||
"eXezX7CVNyC1RuyU_I4yP": {
|
||||
"title": "Pick a Framework",
|
||||
"description": "Web frameworks are toolkits for building web applications. They are sets of libraries that help create software or websites. Different frameworks have different features, depending on what you need to do. They give structure, rules, and tools for development. Examples are React, Angular, and Vue.\n\nVisit the following resources to learn more:",
|
||||
"description": "Web frameworks are development toolkits providing libraries, structure, rules, and tools for building applications. Different frameworks offer varying features based on project needs. Popular examples include React, Angular, and Vue, each with unique strengths and capabilities.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "15 Crazy New JS Framework Features You Don't Know Yet",
|
||||
@@ -788,7 +788,7 @@
|
||||
},
|
||||
"-bHFIiXnoUQSov64WI9yo": {
|
||||
"title": "Angular",
|
||||
"description": "Angular is a popular tool from Google for building websites and web apps. It uses TypeScript (a type of JavaScript) to create large, efficient single-page applications (SPAs), where content loads in one go without needing to reload the whole page. Angular builds UIs with reusable components, like building blocks. It has features like two-way data binding (data updates automatically in different places), dependency injection (helps manage code parts), and a strong template system. Angular also offers tools for testing, page navigation, and managing app data, making it great for big, complex projects.\n\nVisit the following resources to learn more:",
|
||||
"description": "Angular is Google's TypeScript framework for building single-page applications (SPAs). Features reusable components, two-way data binding, dependency injection, and robust template system. Includes testing tools, routing, and state management. Ideal for large, complex enterprise applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Visit Dedicated Angular Roadmap",
|
||||
@@ -918,7 +918,7 @@
|
||||
},
|
||||
"N5DCb6bDfgUnSdHPLYY4g": {
|
||||
"title": "Qwik",
|
||||
"description": "Qwik is a new front-end tool for making websites load super fast. It uses a \"resumable\" idea, meaning apps start with very little JavaScript. Qwik only loads code for interactive parts when you need them. This makes even big websites feel quick. It's getting noticed for its smart way of making sites fast.\n\nLearn more from the following resources:",
|
||||
"description": "Qwik is a frontend framework optimizing for fast loading through \"resumable\" architecture. Apps start with minimal JavaScript, loading interactive code only when needed. Makes large websites feel instantly fast through intelligent code delivery. Gaining attention for performance innovations.\n\nLearn more from the following resources:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Qwik Website",
|
||||
@@ -934,7 +934,7 @@
|
||||
},
|
||||
"XDTD8el6OwuQ55wC-X4iV": {
|
||||
"title": "Writing CSS",
|
||||
"description": "Modern CSS helps make websites that look good on any device using things like media queries and flexible text sizes. It also includes new ways to write CSS, like CSS-in-JS or using frameworks like Tailwind CSS. Features like CSS Logical Properties help with different languages, and CSS Houdini gives more power for custom styles. The main goals are to make CSS fast, easy to keep up, and to create designs that work well for everyone on any screen.\n\nVisit the following resources to learn more:",
|
||||
"description": "Modern CSS creates responsive designs using media queries, flexible typography, CSS-in-JS, and frameworks like Tailwind. Features CSS Logical Properties for internationalization and CSS Houdini for custom styling. Goals: performance, maintainability, and accessible designs across all devices.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Modern CSS: A Comprehensive Guide",
|
||||
@@ -955,7 +955,7 @@
|
||||
},
|
||||
"eghnfG4p7i-EDWfp3CQXC": {
|
||||
"title": "Tailwind",
|
||||
"description": "Tailwind CSS is a special kind of CSS framework that gives you lots of small, ready-to-use style classes. You use these classes directly in your HTML to build custom designs quickly, without writing much custom CSS. It's very flexible and lets you create unique looks. Tailwind is designed for mobile first and automatically removes unused styles to keep your website files small. It's popular because it helps build and try out responsive designs fast.\n\nVisit the following resources to learn more:",
|
||||
"description": "Tailwind CSS is a utility-first CSS framework providing small, composable classes for rapid custom design development. Features mobile-first approach, automatic unused style removal (purging), and flexible customization. Enables quick responsive design prototyping without writing custom CSS.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Tailwind CSS Full Course for Beginners",
|
||||
@@ -991,7 +991,7 @@
|
||||
},
|
||||
"nPg_YWpMJtlhU2t2UD_6B": {
|
||||
"title": "CSS Architecture",
|
||||
"description": "CSS architecture organizes CSS in large web projects for scalability and maintenance. It involves naming conventions (like BEM), component-based design, and tools like preprocessors. Techniques like CSS modules or utility classes enhance reusability and reduce conflicts. The aim is a systematic styling approach for better collaboration, less code duplication, and easier updates.\n\nVisit the following resources to learn more:",
|
||||
"description": "CSS architecture organizes styles in large projects using naming conventions (BEM), component-based design, preprocessors, CSS modules, and utility classes. Aims for scalability, maintainability, reduced conflicts, better collaboration, and easier updates through systematic approaches.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "How to Organize Your CSS with a Modular Architecture",
|
||||
@@ -1012,7 +1012,7 @@
|
||||
},
|
||||
"UTW1pP59dUehuf0zeHXqL": {
|
||||
"title": "CSS Preprocessors",
|
||||
"description": "CSS preprocessors (like Sass, Less, Stylus) add extra features to CSS, making it easier to write and manage. They offer things like variables (for colors, sizes), nesting (to organize styles), mixins (reusable style blocks), and functions. This helps keep CSS tidy and avoid repetition, especially in big projects. The preprocessor code is then turned into regular CSS that browsers understand. They make CSS more powerful and efficient.\n\nVisit the following resources to learn more:",
|
||||
"description": "CSS preprocessors (Sass, Less, Stylus) extend CSS with variables, nesting, mixins, and functions for easier writing and management. Compile to regular CSS while reducing repetition and improving organization. Make CSS more powerful and maintainable for large projects.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Sass Website",
|
||||
@@ -1043,7 +1043,7 @@
|
||||
},
|
||||
"dRDmS072xeNLX7p_X565w": {
|
||||
"title": "BEM",
|
||||
"description": "BEM (Block, Element, Modifier) is a way to name CSS classes in HTML. It helps developers see how HTML and CSS relate in a project. The goal is to make CSS more modular, reusable, and easier to understand, especially in large projects, by creating clear, consistent naming rules.\n\nVisit the following resources to learn more:",
|
||||
"description": "BEM (Block, Element, Modifier) is a CSS naming methodology creating clear relationships between HTML and CSS. Makes styles more modular, reusable, and understandable through consistent naming conventions. Especially valuable for large projects requiring maintainable code.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "BEM Official Website",
|
||||
@@ -1064,7 +1064,7 @@
|
||||
},
|
||||
"kukEE5rMSPa4NeNjx21kt": {
|
||||
"title": "Sass",
|
||||
"description": "Sass (Syntactically Awesome Style Sheets) is a tool that makes writing CSS easier and more powerful. It adds features like variables (to store colors or sizes), nested rules (to organize your styles better), and mixins (to reuse styles). This helps keep your CSS neat and easy to manage, especially in big projects. Sass code gets turned into regular CSS that browsers can understand. It has two ways of writing: the original indented style and the more common SCSS style. Sass is popular because it saves time and makes CSS less repetitive.\n\nVisit the following resources to learn more:",
|
||||
"description": "Sass (Syntactically Awesome Style Sheets) is a CSS preprocessor adding variables, nested rules, mixins, and functions. Compiles to regular CSS with two syntaxes: indented Sass and SCSS. Helps organize styles, reduces repetition, and improves maintainability in large projects.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Sass Website",
|
||||
@@ -1090,7 +1090,7 @@
|
||||
},
|
||||
"9WlPENh9g1xOv-zA64Tfg": {
|
||||
"title": "PostCSS",
|
||||
"description": "PostCSS is a tool that uses JavaScript plugins to change CSS. It can automate tasks, add browser prefixes (like `-webkit-`), and let you use future CSS features now. It's like a CSS preprocessor but more flexible, as you pick the plugins you need. Popular plugins include Autoprefixer, cssnext, and cssnano (for making CSS smaller). PostCSS works with many build tools and is liked for its flexibility and speed in modern web development.\n\nVisit the following resources to learn more:",
|
||||
"description": "PostCSS transforms CSS using JavaScript plugins for automation, browser prefixes, and future CSS features. More flexible than preprocessors with plugin-based architecture. Popular plugins: Autoprefixer, cssnext, cssnano. Integrates with build tools for modern development workflows.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "PostCSS Website",
|
||||
@@ -1137,7 +1137,7 @@
|
||||
},
|
||||
"9VcGfDBBD8YcKatj4VcH1": {
|
||||
"title": "Linters and Formatters",
|
||||
"description": "Linters and formatters boost code quality. Linters find errors, bugs, and style issues by checking code against rules. Formatters automatically fix style, like indents and spacing. They help keep code consistent, readable, and catch errors early. ESLint and Prettier are popular examples, often used in code editors for live feedback.\n\nVisit the following resources to learn more:",
|
||||
"description": "Linters and formatters improve code quality by finding errors, bugs, and style issues (linters) and automatically fixing formatting like indentation and spacing (formatters). Ensure consistency, readability, and early error detection. Examples: ESLint, Prettier.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "What Is a Linter?",
|
||||
@@ -1148,7 +1148,7 @@
|
||||
},
|
||||
"hkSc_1x09m7-7BO7WzlDT": {
|
||||
"title": "Module Bundlers",
|
||||
"description": "Module bundlers are tools that take many JavaScript files and combine them into one, which is better for web browsers. They handle dependencies, improve code, and can split code for faster loading. Webpack, Rollup, and Parcel are examples. They help manage big JavaScript projects by organizing code into modules and making load times better. Bundlers also let you use new JavaScript features by changing them to older versions if needed. They make development smoother and apps run better.\n\nVisit the following resources to learn more:",
|
||||
"description": "Module bundlers combine multiple JavaScript files into optimized bundles for browsers. Handle dependencies, code transformation, and splitting for performance. Examples: Webpack, Rollup, Parcel. Enable modern JavaScript features, improve load times, and streamline development workflows.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "The Complete JavaScript Module Bundlers Guide",
|
||||
@@ -1174,7 +1174,7 @@
|
||||
},
|
||||
"NS-hwaWa5ebSmNNRoxFDp": {
|
||||
"title": "Parcel",
|
||||
"description": "Parcel is a web app bundler that needs no setup. It makes building websites easy by handling many file types like JavaScript, CSS, and HTML automatically. Parcel figures out dependencies, changes code, and optimizes files without needing a config file. It has features like live updates, code splitting, and removing unused code by default. It's known for being easy and fast, great for quick projects or smaller sites.\n\nVisit the following resources to learn more:",
|
||||
"description": "Parcel is a zero-configuration web app bundler handling JavaScript, CSS, HTML automatically. Features dependency resolution, code transformation, optimization, live reloading, code splitting, and tree-shaking by default. Known for simplicity and speed, ideal for rapid prototyping.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Parcel Website",
|
||||
@@ -1195,7 +1195,7 @@
|
||||
},
|
||||
"sCjErk7rfWAUvhl8Kfm3n": {
|
||||
"title": "Rollup",
|
||||
"description": "Rollup is a tool that bundles JavaScript code, making small pieces into bigger ones. It's good at making small, efficient bundles, especially for ES modules (a modern way to organize JavaScript). Rollup is great at \"tree-shaking,\" which means it removes unused code to make files smaller. It can output code in different formats, so it's flexible. While it might need more setup, Rollup is liked for its small bundles and focus on modern JavaScript.\n\nVisit the following resources to learn more:",
|
||||
"description": "Rollup is a JavaScript bundler creating efficient bundles from ES modules. Excels at tree-shaking to remove unused code and supports multiple output formats. Produces smaller bundles than alternatives, ideal for libraries and modern JavaScript projects requiring optimization.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Rollup Website and Docs",
|
||||
@@ -1216,7 +1216,7 @@
|
||||
},
|
||||
"twufEtHgxcRUWAUQ9bXus": {
|
||||
"title": "Webpack",
|
||||
"description": "Webpack is an open-source JavaScript module bundler that processes and packages web resources, including JavaScript, CSS, images, and fonts. It uses loaders for preprocessing and plugins for tasks like optimization. Key features are code splitting, lazy loading, hot module replacement for faster development, and tree shaking to remove unused code. Despite a steeper learning curve, Webpack's flexibility and power make it a standard for complex JavaScript applications.\n\nVisit the following resources to learn more:",
|
||||
"description": "Webpack is a JavaScript module bundler processing web resources (JS, CSS, images, fonts). Uses loaders for preprocessing and plugins for optimization. Features code splitting, lazy loading, hot module replacement, and tree shaking. Standard for complex applications despite learning curve.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Webpack",
|
||||
@@ -1242,7 +1242,7 @@
|
||||
},
|
||||
"4W7UXfdKIUsm1bUrjdTVT": {
|
||||
"title": "esbuild",
|
||||
"description": "esbuild is a very fast JavaScript bundler and minifier. It's written in Go, so it's much quicker than older tools. esbuild handles modern JavaScript, TypeScript, and JSX. It bundles code almost instantly, even for big projects. It's easy to use with a simple API. While super fast, it might not have all the advanced features of older bundlers, but it's great for development and as a base for other tools.\n\nVisit the following resources to learn more:",
|
||||
"description": "esbuild is an extremely fast JavaScript bundler and minifier written in Go. Handles modern JavaScript, TypeScript, and JSX with near-instant bundling. Simple API with excellent performance for development and as foundation for other tools. Trades some advanced features for speed.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Let's Learn esbuild! (with Sunil Pai) — Learn With Jason",
|
||||
@@ -1268,7 +1268,7 @@
|
||||
},
|
||||
"0Awx3zEI5_gYEIrD7IVX6": {
|
||||
"title": "Vite",
|
||||
"description": "Vite is a modern build tool by Evan You (creator of Vue.js) that offers rapid web development through native ES modules, enabling instant server starts and fast Hot Module Replacement (HMR). It supports frameworks like Vue, React, and Svelte, uses Rollup for optimized production builds, and includes features like CSS pre-processor support and TypeScript integration. Vite enhances developer experience, especially for large projects, by separating development and build processes for faster cycles.\n\nVisit the following resources to learn more:",
|
||||
"description": "Vite is a modern build tool using native ES modules for instant server starts and fast Hot Module Replacement. Supports Vue, React, Svelte with Rollup for production builds. Features CSS pre-processors and TypeScript integration. Enhances developer experience with faster development cycles.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Vite - The Build Tool for the Web",
|
||||
@@ -1299,7 +1299,7 @@
|
||||
},
|
||||
"zbkpu_gvQ4mgCiZKzS1xv": {
|
||||
"title": "Prettier",
|
||||
"description": "Prettier is a tool that automatically formats your code to look consistent. It works with many languages like JavaScript, TypeScript, and CSS. Prettier takes your code and rewrites it following its own style rules, like line length. This stops arguments about code style and saves time. It can be used in code editors or run automatically before you commit code. Prettier is popular because it's easy to use and keeps code looking the same for everyone.\n\nVisit the following resources to learn more:",
|
||||
"description": "Prettier automatically formats code for consistency across JavaScript, TypeScript, CSS, and other languages. Enforces opinionated style rules, eliminating style debates and saving time. Integrates with editors and pre-commit hooks. Popular for maintaining uniform code appearance across teams.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Prettier Website",
|
||||
@@ -1320,7 +1320,7 @@
|
||||
},
|
||||
"NFjsI712_qP0IOmjuqXar": {
|
||||
"title": "ESLint",
|
||||
"description": "ESLint is a tool that checks JavaScript code for problems. It helps keep code style consistent and finds errors. ESLint is very flexible; you can set your own rules or use ready-made ones. It works with modern JavaScript, JSX, and TypeScript. You can use ESLint in your code editor or when you build your project to get live feedback. It can even fix many issues automatically, which is great for team projects.\n\nVisit the following resources to learn more:",
|
||||
"description": "ESLint is a JavaScript linter checking code for problems, maintaining consistent style, and finding errors. Highly configurable with custom or preset rules. Supports modern JavaScript, JSX, TypeScript. Integrates with editors and build tools, offers automatic fixing for team consistency.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "ESLint Website",
|
||||
@@ -1346,7 +1346,7 @@
|
||||
},
|
||||
"igg4_hb3XE3vuvY8ufV-4": {
|
||||
"title": "Testing",
|
||||
"description": "Testing apps means checking if software works right and meets goals. Types include unit (small parts), integration (how parts work together), functional (if it does what it should), UI/UX (look and feel), performance (speed), security, accessibility (for disabilities), and compatibility (on different devices). Modern testing uses automated tools and CI/CD (automating build and release). TDD and BDD are ways to write tests with code. Good testing finds bugs early and makes apps better.\n\nVisit the following resources to learn more:",
|
||||
"description": "Testing verifies software functionality and quality through unit, integration, functional, UI/UX, performance, security, accessibility, and compatibility testing. Modern approaches use automated tools, CI/CD pipelines, TDD, and BDD methodologies. Early bug detection improves application reliability.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "The Different Types of Software Tests",
|
||||
@@ -1367,7 +1367,7 @@
|
||||
},
|
||||
"hVQ89f6G0LXEgHIOKHDYq": {
|
||||
"title": "Vitest",
|
||||
"description": "Vitest is a speedy testing tool for JavaScript and TypeScript, made to work well with Vite (a build tool). It runs tests very quickly and updates them live as you code. Vitest is similar to Jest (another testing tool), so it's easy to switch if you're used to Jest. It includes features like snapshot testing, mocking, and checking code coverage. Vitest can run multiple tests at once and watch for changes, making testing faster. It's great for Vite projects but works with any JavaScript project too.\n\nVisit the following resources to learn more:",
|
||||
"description": "Vitest is a fast JavaScript/TypeScript testing framework optimized for Vite with Jest-compatible API. Features live test updates, snapshot testing, mocking, code coverage, parallel execution, and watch mode. Designed for Vite projects but works with any JavaScript project.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Vitest - Next Generation Testing Framework",
|
||||
@@ -1388,7 +1388,7 @@
|
||||
},
|
||||
"g5itUjgRXd9vs9ujHezFl": {
|
||||
"title": "Jest",
|
||||
"description": "Jest is a popular JavaScript testing tool from Facebook. It's made for easy unit testing (testing small code parts). Jest has features like auto mocking, code coverage reports, and snapshot testing. It works with React, Angular, and Vue. Jest has its own tools for writing and running tests fast. It can run tests at the same time and watches for changes, making it a top choice for JavaScript developers.\n\nVisit the following resources to learn more:",
|
||||
"description": "Jest is Facebook's JavaScript testing framework for unit testing with auto mocking, code coverage, and snapshot testing. Works with React, Angular, Vue. Features parallel test execution, watch mode, and built-in assertion library. Top choice for JavaScript developers.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Jest Website",
|
||||
@@ -1409,7 +1409,7 @@
|
||||
},
|
||||
"jramLk8FGuaEH4YpHIyZT": {
|
||||
"title": "Playwright",
|
||||
"description": "Playwright by Microsoft is a tool for testing websites automatically. It can control Chromium, Firefox, and WebKit browsers on different systems (Windows, macOS, Linux) with one API. It works with JavaScript, TypeScript, Python, and .NET. Features include auto-waiting for elements, network control, and mobile simulation. Playwright is good for testing modern, dynamic web apps. Its cross-browser support and debugging tools make it strong for automated testing.\n\nVisit the following resources to learn more:",
|
||||
"description": "Playwright is Microsoft's cross-browser automation testing framework supporting Chromium, Firefox, WebKit across platforms. Works with JavaScript, TypeScript, Python, .NET. Features auto-waiting, network control, mobile simulation. Excellent for modern web app testing with debugging tools.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Playwright Website",
|
||||
@@ -1430,7 +1430,7 @@
|
||||
},
|
||||
"DaynCz5RR26gjT6N6gTDL": {
|
||||
"title": "Cypress",
|
||||
"description": "Cypress is a tool for testing websites from start to finish, just like a user would. It's written in JavaScript and based on Mocha (another JavaScript testing tool). Cypress runs tests directly in the browser, which makes testing things that happen over time (asynchronous testing) easier. It also uses common testing approaches like BDD/TDD and can work with other JavaScript testing tools.\n\nVisit the following resources to learn more:",
|
||||
"description": "Cypress is a JavaScript end-to-end testing framework running tests directly in browsers. Built on Mocha with excellent asynchronous testing support. Features time-travel debugging, automatic waiting, and real-time reloading. Supports BDD/TDD approaches for comprehensive web application testing.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Cypress Website",
|
||||
@@ -1492,7 +1492,7 @@
|
||||
},
|
||||
"RDWbG3Iui6IPgp0shvXtg": {
|
||||
"title": "Web Security Basics",
|
||||
"description": "Web security involves protecting websites and applications from cyber threats through practices like HTTPS/TLS for secure data, XSS/SQL injection/CSRF prevention, CSP implementation, secure authentication/session management, input validation, clickjacking protection, secure cookie handling, and regular updates. It also means understanding OWASP Top Ten vulnerabilities, access controls, secure coding, and staying informed on new threats. A good strategy combines prevention, audits, and incident response to protect web resources and data.\n\nVisit the following resources to learn more:",
|
||||
"description": "Web security protects websites from cyber threats through HTTPS/TLS, XSS/SQL injection/CSRF prevention, CSP, secure authentication, input validation, and regular updates. Involves understanding OWASP Top Ten vulnerabilities, access controls, secure coding practices, and threat awareness for comprehensive protection.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "OWASP Website",
|
||||
@@ -1523,7 +1523,7 @@
|
||||
},
|
||||
"AfH2zCbqzw0Nisg1yyISS": {
|
||||
"title": "CORS",
|
||||
"description": "Cross-Origin Resource Sharing (CORS) is a browser security feature that controls how web pages access resources from different domains. It allows servers to specify who can access their assets (like APIs or fonts). CORS uses HTTP headers; browsers may send a preflight request to check if the actual request is allowed. This prevents unauthorized access while enabling legitimate cross-origin requests, vital for modern apps using multiple domain services.\n\nVisit the following resources to learn more:",
|
||||
"description": "CORS (Cross-Origin Resource Sharing) controls web page access to resources from different domains through HTTP headers. Servers specify allowed origins while browsers send preflight requests for permission. Prevents unauthorized access while enabling legitimate cross-origin requests for modern multi-domain applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Cross-Origin Resource Sharing (CORS)",
|
||||
@@ -1544,7 +1544,7 @@
|
||||
},
|
||||
"uum7vOhOUR38vLuGZy8Oa": {
|
||||
"title": "HTTPS",
|
||||
"description": "HTTPS (Hypertext Transfer Protocol Secure) is the secure version of HTTP, the main way data is sent between your browser and websites. HTTPS encrypts this data, making it safer. This is very important for sensitive information like bank logins or emails. It keeps your data private and secure online.\n\nVisit the following resources to learn more:",
|
||||
"description": "HTTPS (Hypertext Transfer Protocol Secure) is HTTP's encrypted version, securing data transmission between browsers and websites. Essential for protecting sensitive information like banking and email. Ensures privacy and security through data encryption for online communications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "What is HTTPS?",
|
||||
@@ -1575,7 +1575,7 @@
|
||||
},
|
||||
"rmcm0CZbtNVC9LZ14-H6h": {
|
||||
"title": "Content Security Policy",
|
||||
"description": "Content Security Policy (CSP) is a security feature in web browsers that helps stop attacks like cross-site scripting (XSS) and clickjacking. It lets website creators tell the browser which sources of content (like scripts, styles, and images) are safe to load. This is done using special instructions sent with the webpage. By limiting where content can come from, CSP makes it much harder for bad code to run on a site. It can also report problems, helping developers find and fix security holes. Setting up CSP needs care to make sure everything works right, especially if the site uses content from other places.\n\nVisit the following resources to learn more:",
|
||||
"description": "Content Security Policy (CSP) prevents XSS and clickjacking attacks by specifying trusted content sources through HTTP headers. Website creators define safe sources for scripts, styles, images, and other resources. Limits malicious code execution and provides violation reporting for security monitoring.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "MDN Content Security Policy (CSP)",
|
||||
@@ -1596,7 +1596,7 @@
|
||||
},
|
||||
"JanR7I_lNnUCXhCMGLdn-": {
|
||||
"title": "OWASP Security Risks",
|
||||
"description": "OWASP (Open Web Application Security Project) lists the biggest security dangers for web apps. The OWASP Top 10 includes things like injection attacks, bad authentication, data exposure, and using old, unsafe code. These are common ways hackers break into websites. OWASP gives advice on how to fix these problems by coding securely, checking for issues often, and using strong security from start to finish. Knowing these risks helps protect web apps.\n\nVisit the following resources to learn more:",
|
||||
"description": "OWASP (Open Web Application Security Project) identifies top web application security risks including injection attacks, broken authentication, data exposure, and vulnerable dependencies. Provides guidance on secure coding practices, regular security testing, and comprehensive protection strategies for web applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "OWASP Web Application Security Testing Checklist",
|
||||
@@ -1627,7 +1627,7 @@
|
||||
},
|
||||
"ruoFa3M4bUE3Dg6GXSiUI": {
|
||||
"title": "Web Components",
|
||||
"description": "Web Components are a way to create your own reusable HTML elements that work in any browser and with any JavaScript framework. They use three main ideas: Custom Elements (making new HTML tags), Shadow DOM (keeping styles and structure separate and private), and HTML Templates (bits of HTML you can reuse). This helps make code modular and shareable, and reduces conflicts between styles. Web Components are a standard way to build parts of websites, aiming for long-term use and working well together.\n\nVisit the following resources to learn more:",
|
||||
"description": "Web Components create reusable HTML elements using Custom Elements, Shadow DOM, and HTML Templates. Work across browsers and frameworks with encapsulated styles and structure. Enable modular, shareable code with reduced style conflicts. Standard for building interoperable web parts.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Web Components - MDN",
|
||||
@@ -1653,7 +1653,7 @@
|
||||
},
|
||||
"hwPOGT0-duy3KfI8QaEwF": {
|
||||
"title": "Type Checkers",
|
||||
"description": "Type checkers are tools that look at your code to find and stop errors related to data types (like numbers, strings, etc.) before you run the program. They help make sure your code uses types correctly, catching mistakes early. Examples include TypeScript and Flow for JavaScript, and mypy for Python. These tools add static typing (checking types before running) to languages that usually check types while running. This makes code more reliable, easier to understand, and helps with refactoring. While they add a bit of work, type checkers are great for big projects to improve code quality.\n\nVisit the following resources to learn more:",
|
||||
"description": "Type checkers analyze code for type-related errors before runtime, ensuring correct type usage and catching mistakes early. Examples: TypeScript, Flow (JavaScript), mypy (Python). Add static typing to dynamic languages, improving reliability, readability, and refactoring support for large projects.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Flow - Static Type Checker for JavaScript",
|
||||
@@ -1674,7 +1674,7 @@
|
||||
},
|
||||
"VxiQPgcYDFAT6WgSRWpIA": {
|
||||
"title": "Custom Elements",
|
||||
"description": "Custom Elements are a part of Web Components that let you create your own HTML tags. This means you can make reusable parts for your webpage that have their own special behavior, instead of using lots of nested standard HTML tags. It helps keep your HTML cleaner and your components easier to manage.\n\nVisit the following resources to learn more:",
|
||||
"description": "Custom Elements enable creating your own HTML tags as part of Web Components. Build reusable webpage components with custom behavior instead of nested standard HTML. Keeps HTML cleaner and components more manageable with encapsulated functionality.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Using Custom Elements - MDN",
|
||||
@@ -1695,7 +1695,7 @@
|
||||
},
|
||||
"Hk8AVonOd693_y1sykPqd": {
|
||||
"title": "HTML Templates",
|
||||
"description": "The `<template>` HTML tag holds HTML content that isn't shown right away when a page loads. Instead, JavaScript can use it later to create new elements on the page. It's like a blueprint for HTML parts you want to reuse.\n\nVisit the following resources to learn more:",
|
||||
"description": "The `<template>` HTML element holds hidden content for later use by JavaScript. Acts as a reusable blueprint for creating dynamic page elements. Enables efficient content templating and component-based development patterns in web applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Using Templates and Slots - MDN",
|
||||
@@ -1711,7 +1711,7 @@
|
||||
},
|
||||
"-SpsNeOZBkQfDA-rwzgPg": {
|
||||
"title": "Shadow DOM",
|
||||
"description": "The Shadow DOM is a way to keep the HTML, CSS, and JavaScript of a web component separate from the rest of the webpage. Think of it as creating a private little DOM (Document Object Model) inside an element. This stops styles and scripts from accidentally affecting other parts of the page, and vice-versa. It helps make code cleaner and easier to manage, especially for custom elements that you want to reuse. It's mainly for web components but can be used anytime you want to keep code self-contained.\n\nVisit the following resources to learn more:",
|
||||
"description": "Shadow DOM creates private, encapsulated DOM trees inside elements, isolating HTML, CSS, and JavaScript from the main page. Prevents style and script conflicts, enabling cleaner, reusable components. Essential for web components requiring self-contained functionality.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Using shadow DOM | MDN web docs",
|
||||
@@ -1732,7 +1732,7 @@
|
||||
},
|
||||
"0asdhvwBH3gn-ercktV7A": {
|
||||
"title": "TypeScript",
|
||||
"description": "TypeScript, by Microsoft, is a strongly-typed language that extends JavaScript with optional static typing. It compiles to plain JavaScript, running anywhere JavaScript does. TypeScript enhances IDE support with better code completion, refactoring, and error detection. It introduces interfaces, generics, and decorators for robust software architecture, proving valuable for large apps by improving maintainability and readability. Its type system catches errors early, reducing runtime issues. TypeScript is a standard in modern web development.\n\nVisit the following resources to learn more:",
|
||||
"description": "TypeScript is Microsoft's strongly-typed language extending JavaScript with static typing. Compiles to plain JavaScript with enhanced IDE support, interfaces, generics, and decorators. Catches errors early, improves maintainability, and reduces runtime issues. Standard for large-scale applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Visit Dedicated TypeScript Roadmap",
|
||||
@@ -1768,7 +1768,7 @@
|
||||
},
|
||||
"Cxspmb14_0i1tfw-ZLxEu": {
|
||||
"title": "SSR",
|
||||
"description": "Server-side rendering (SSR) means websites are built on the server before being sent to your browser as complete HTML. This is different from client-side rendering, where the browser builds the page. SSR helps pages load faster at first and is better for search engines. It's good for sites with lots of content. Frameworks like Next.js (for React) and Nuxt.js (for Vue) use SSR. It can make servers busier but improves performance, especially on slow devices.\n\nVisit the following resources to learn more:",
|
||||
"description": "Server-side rendering (SSR) generates complete HTML on the server before sending to browsers. Improves initial load times, SEO, and performance on slow devices. Frameworks: Next.js (React), Nuxt.js (Vue). Increases server load but enhances user experience.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Server-Side Rendering (SSR)",
|
||||
@@ -1794,7 +1794,7 @@
|
||||
},
|
||||
"OL8I6nOZ8hGGWmtxg_Mv8": {
|
||||
"title": "Svelte",
|
||||
"description": "Svelte is a JavaScript tool for building UIs. Unlike others, Svelte does its main work during build time, not in the browser. It turns your code into small, fast, plain JavaScript. Svelte uses components and has a simple syntax, so you write less code. It includes features for managing data, styling, and animations. Because Svelte doesn't use a virtual DOM, pages load and update quickly. It's liked for its simplicity and speed.\n\nVisit the following resources to learn more:",
|
||||
"description": "Svelte is a compile-time JavaScript framework building UIs with minimal runtime overhead. Compiles components to optimized vanilla JavaScript without virtual DOM. Features simple syntax, built-in state management, styling, and animations. Known for small bundle sizes and fast performance.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Svelte Course Playlist for beginners",
|
||||
@@ -1825,7 +1825,7 @@
|
||||
},
|
||||
"3TE_iYvbklXK0be-5f2M7": {
|
||||
"title": "Vue.js",
|
||||
"description": "Vue.js is a JavaScript framework for building website interfaces. It's easy to start with and can be added to projects bit by bit. Vue uses templates and a virtual DOM (a lightweight copy of the real page) to show things on screen efficiently. It has a system of reusable components, making code organized. While Vue mainly handles what users see, it works well with other tools for things like managing data or page navigation. It's known for being easy to learn, flexible, and fast, making it popular for all kinds of projects.\n\nVisit the following resources to learn more:",
|
||||
"description": "Vue.js is a progressive JavaScript framework for building user interfaces. Features template syntax, virtual DOM, and component-based architecture. Easy to learn and incrementally adoptable. Works well with ecosystem tools for routing and state management. Known for flexibility, performance, and gentle learning curve.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Vue.js Website",
|
||||
@@ -1877,7 +1877,7 @@
|
||||
},
|
||||
"SGDf_rbfmFSHlxI-Czzlz": {
|
||||
"title": "React",
|
||||
"description": "React is a JavaScript tool from Facebook for building UIs, especially for single-page apps. It lets you create reusable UI parts that update when data changes. React uses a virtual DOM for speed and has a one-way data flow. This component style makes code neat and reusable. React also works with tools like Redux for data management and React Native for mobile apps. It's popular because it's clear, fast, and has a big community.\n\nVisit the following resources to learn more:",
|
||||
"description": "React is Facebook's JavaScript library for building user interfaces with reusable components. Uses virtual DOM for performance and one-way data flow. Features component-based architecture, works with Redux for state management and React Native for mobile. Popular for its clarity, speed, and ecosystem.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Full Stack React Developer Course",
|
||||
@@ -1903,7 +1903,7 @@
|
||||
},
|
||||
"KJRkrFZIihCUBrOf579EU": {
|
||||
"title": "react-router",
|
||||
"description": "React Router is a key tool for React apps that need different pages or views. It handles the website's URL, letting you create single-page apps that feel like they have multiple pages. It provides components to define routes (paths to different views) and link between them. Features include lazy loading (loading parts only when needed) and route guards (controlling access to pages). It's the standard for navigation in React apps.\n\nVisit the following resources to learn more:",
|
||||
"description": "React Router enables client-side routing in React applications, creating single-page apps with multiple views. Handles URL management, provides route definition components, and supports lazy loading and route guards. The standard navigation solution for React applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "React Router Website",
|
||||
@@ -1924,7 +1924,7 @@
|
||||
},
|
||||
"zNFYAJaSq0YZXL5Rpx1NX": {
|
||||
"title": "Next.js",
|
||||
"description": "Next.js is a React framework for building websites that can be server-rendered (built on the server) or static (built beforehand). It offers features like auto code splitting, fast performance, and easy page routing. You can choose how each page is made. Next.js has CSS support, API routes (for backend tasks), and simple deployment. It's known for being developer-friendly, with live updates and smart preloading. It's great for big, SEO-friendly sites.\n\nVisit the following resources to learn more:",
|
||||
"description": "Next.js is a React framework supporting server-side rendering and static site generation. Features automatic code splitting, file-based routing, CSS support, API routes, and optimized performance. Includes live updates, smart preloading, and easy deployment. Ideal for SEO-friendly applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Official Website",
|
||||
@@ -1945,7 +1945,7 @@
|
||||
},
|
||||
"BBsXxkbbEG-gnbM1xXKrj": {
|
||||
"title": "Nuxt.js",
|
||||
"description": "Nuxt.js is a framework based on Vue.js for building web apps. It makes development easier with a ready-made structure, auto page routing, and server-side rendering. Nuxt.js can also create static sites, split code, and fetch data. You can choose how each page is rendered. It focuses on good developer experience and performance, making it popular for large, SEO-friendly Vue apps. It's also easy to add more features with its plugins.\n\nVisit the following resources to learn more:",
|
||||
"description": "Nuxt.js is a Vue.js framework providing structure, automatic routing, and server-side rendering. Supports static site generation, code splitting, and data fetching. Offers flexible rendering options with focus on developer experience and performance. Popular for SEO-friendly Vue applications with plugin ecosystem.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Nuxt.js Fundamentals",
|
||||
@@ -1971,7 +1971,7 @@
|
||||
},
|
||||
"P4st_telfCwKLSAU2WsQP": {
|
||||
"title": "Svelte Kit",
|
||||
"description": "SvelteKit is a framework for building websites and apps with Svelte (a JavaScript framework). It helps you build both the parts that run on a server and the parts that run in the user's browser. SvelteKit comes with useful things like easy page routing (how you go from one page to another), making sure only needed code is loaded, and server-side rendering (building pages on the server for faster loading). You can make static sites (pages that don't change much) or dynamic ones. It's designed to be simple and fast, thanks to Svelte's smart way of compiling code. SvelteKit also has good tools for developers and makes deploying your site easy.\n\nVisit the following resources to learn more:",
|
||||
"description": "SvelteKit is a full-stack framework for building websites and applications with Svelte. Features file-based routing, code splitting, server-side rendering, and static site generation. Designed for simplicity and performance with excellent developer experience and easy deployment options.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Svelte Kit",
|
||||
@@ -1997,7 +1997,7 @@
|
||||
},
|
||||
"L7AllJfKvClaam3y-u6DP": {
|
||||
"title": "GraphQL",
|
||||
"description": "GraphQL, by Facebook, is a way to get data for apps. Unlike older methods, it lets apps ask for exactly the data they need, no more, no less. This is great for mobile apps where saving data is important. It's different from REST but good for big or changing APIs.\n\nVisit the following resources to learn more:",
|
||||
"description": "GraphQL is Facebook's query language for APIs allowing clients to request exactly the data needed. Reduces over-fetching and under-fetching compared to REST. Ideal for mobile applications, complex APIs, and rapidly changing requirements with strong typing.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "visit Dedicated GraphQL Roadmap",
|
||||
@@ -2033,7 +2033,7 @@
|
||||
},
|
||||
"5eUbDdOTOfaOhUlZAmmXW": {
|
||||
"title": "Apollo",
|
||||
"description": "Apollo GraphQL is a platform for using GraphQL in apps. It has tools for both client (front-end) and server (back-end). Apollo Client helps with caching, data, and state in the front-end. Apollo Server helps build GraphQL APIs. Apollo also offers tools for managing your data graph, checking performance, and more. It simplifies GraphQL, helping build faster and more scalable apps.\n\nVisit the following resources to learn more:",
|
||||
"description": "Apollo GraphQL is a comprehensive platform for GraphQL applications. Apollo Client handles caching, data fetching, and state management. Apollo Server builds GraphQL APIs. Includes tools for schema management, performance monitoring, and developer tooling for faster, scalable apps.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Apollo Website",
|
||||
@@ -2059,7 +2059,7 @@
|
||||
},
|
||||
"0moPO23ol33WsjVXSpTGf": {
|
||||
"title": "Relay Modern",
|
||||
"description": "Relay is a Facebook JavaScript library for React apps that use a lot of data. It works with GraphQL to get and manage data efficiently. Relay puts data needs next to components, so it only fetches what's needed and updates well. It handles caching, live updates, and quick UI changes. Relay helps big apps perform better by managing data smartly. It's a bit harder to learn but great for complex data needs with React and GraphQL.\n\nVisit the following resources to learn more:",
|
||||
"description": "Relay is Facebook's JavaScript library for data-heavy React applications using GraphQL. Co-locates data requirements with components, enabling efficient fetching and updates. Handles caching, real-time updates, and optimistic UI changes. Ideal for complex applications requiring sophisticated data management.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "facebook/relay",
|
||||
@@ -2080,7 +2080,7 @@
|
||||
},
|
||||
"n0q32YhWEIAUwbGXexoqV": {
|
||||
"title": "Static Site Generators",
|
||||
"description": "Static Site Generators (SSGs) are tools that build websites as simple HTML files. They take your content (like Markdown files) and templates, and create all the pages beforehand. This makes websites fast, secure, and easy to host. Examples are Jekyll, Hugo, and Eleventy. They are great for blogs and documentation. SSGs offer good performance and are simple to manage.\n\nVisit the following resources to learn more:",
|
||||
"description": "Static Site Generators (SSGs) build websites as pre-generated HTML files from content and templates. Make sites fast, secure, and easy to host. Examples: Jekyll, Hugo, Eleventy. Ideal for blogs, documentation, and content-focused sites with excellent performance.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "What is a Static Site Generator?",
|
||||
@@ -2106,7 +2106,7 @@
|
||||
},
|
||||
"CMrss8E2W0eA6DVEqtPjT": {
|
||||
"title": "Vuepress",
|
||||
"description": "VuePress is a Vue.js-powered static site generator ideal for documentation. It creates pre-rendered static HTML for fast, SEO-friendly sites, featuring a Vue-based theming system, code syntax highlighting, and a default theme for technical docs. It supports Markdown with Vue components for dynamic content, built-in search, responsive layouts, and customization via plugins/themes. While great for docs, it also suits blogs and simple websites, valued for its simplicity, performance, and Vue.js integration.\n\nVisit the following resources to learn more:",
|
||||
"description": "VuePress is a Vue.js-powered static site generator optimized for documentation. Creates fast, SEO-friendly sites with Vue-based theming, syntax highlighting, and Markdown support with Vue components. Features built-in search, responsive layouts, and plugin/theme customization. Ideal for documentation and simple websites.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Vuepress",
|
||||
@@ -2127,7 +2127,7 @@
|
||||
},
|
||||
"XWJxV42Dpu2D3xDK10Pn3": {
|
||||
"title": "Nuxt.js",
|
||||
"description": "Nuxt.js is a framework based on Vue.js for building web apps. It makes development easier with a ready-made structure, auto page routing, and server-side rendering. Nuxt.js can also create static sites, split code, and fetch data. You can choose how each page is rendered. It focuses on good developer experience and performance, making it popular for large, SEO-friendly Vue apps. It's also easy to add more features with its plugins.\n\nVisit the following resources to learn more:",
|
||||
"description": "Nuxt.js is a Vue.js framework providing structure, automatic routing, and server-side rendering. Supports static site generation, code splitting, and data fetching. Offers flexible rendering options with focus on developer experience and performance. Popular for SEO-friendly Vue applications with plugin ecosystem.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Nuxt.js Fundamentals",
|
||||
@@ -2153,7 +2153,7 @@
|
||||
},
|
||||
"iUxXq7beg55y76dkwhM13": {
|
||||
"title": "Astro",
|
||||
"description": "Astro is a static site generator for fast, content-focused websites. It lets you use various frontend frameworks (like React, Vue, Svelte) and renders components to static HTML. Astro's \"partial hydration\" only sends JavaScript when needed, leading to smaller bundles and quicker loads. It supports file-based routing and markdown, making it great for blogs, docs, and marketing sites.\n\nVisit the following resources to learn more:",
|
||||
"description": "Astro is a static site generator supporting multiple frameworks (React, Vue, Svelte) with partial hydration. Renders components to static HTML, sending JavaScript only when needed. Features file-based routing and markdown support. Ideal for blogs, documentation, and marketing sites.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Astro Web Framework Crash Course",
|
||||
@@ -2179,7 +2179,7 @@
|
||||
},
|
||||
"io0RHJWIcVxDhcYkV9d38": {
|
||||
"title": "Eleventy",
|
||||
"description": "Eleventy (or 11ty) is a tool for building fast websites that don't change often (static sites). It's easy to use and change to fit your needs. You can write pages using many different template languages like HTML, Markdown, or JavaScript. Eleventy can also create pages from data you have or from other websites when you build your site. A big plus is that it doesn't add any extra JavaScript to the user's browser, making sites load quickly. It also has helpful plugins for things like navigation or changing images.\n\nVisit the following resources to learn more:",
|
||||
"description": "Eleventy (11ty) is a flexible static site generator supporting multiple template languages (HTML, Markdown, JavaScript). Creates pages from data sources, adds no client-side JavaScript for fast loading. Highly customizable with useful plugins for navigation and image processing.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Eleventy",
|
||||
@@ -2200,7 +2200,7 @@
|
||||
},
|
||||
"V70884VcuXkfrfHyLGtUg": {
|
||||
"title": "Next.js",
|
||||
"description": "Next.js is a React framework for building websites that can be server-rendered (built on the server) or static (built beforehand). It offers features like auto code splitting, fast performance, and easy page routing. You can choose how each page is made. Next.js has CSS support, API routes (for backend tasks), and simple deployment. It's known for being developer-friendly, with live updates and smart preloading. It's great for big, SEO-friendly sites.\n\nVisit the following resources to learn more:",
|
||||
"description": "Next.js is a React framework supporting server-side rendering and static site generation. Features automatic code splitting, file-based routing, CSS support, API routes, and optimized performance. Includes live updates, smart preloading, and easy deployment. Ideal for SEO-friendly applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Next.js Website",
|
||||
@@ -2221,7 +2221,7 @@
|
||||
},
|
||||
"PoM77O2OtxPELxfrW1wtl": {
|
||||
"title": "PWAs",
|
||||
"description": "Progressive Web Apps (PWAs) are websites that act like native apps. They use web tech (HTML, CSS, JavaScript) but offer features like offline use, push alerts, and home screen icons. PWAs work on many devices and browsers, load fast, and can be found on search engines. They use service workers for background tasks and caching. PWAs are a cost-effective way to build cross-platform apps with a smooth user experience.\n\nVisit the following resources to learn more:",
|
||||
"description": "Progressive Web Apps (PWAs) are web applications behaving like native apps using HTML, CSS, JavaScript. Feature offline functionality, push notifications, home screen installation, and service workers for caching. Cross-platform, discoverable, and cost-effective alternative to native apps.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Learn PWA",
|
||||
@@ -2247,7 +2247,7 @@
|
||||
},
|
||||
"VOGKiG2EZVfCBAaa7Df0W": {
|
||||
"title": "Mobile Apps",
|
||||
"description": "Mobile apps are programs for phones and tablets, usually from app stores. They can be native (for one OS like iOS or Android), hybrid (web tech in a native shell), or cross-platform (like React Native). Apps use phone features like GPS and cameras. They do many things from games to shopping. Good mobile apps focus on easy use, speed, offline working, and security.",
|
||||
"description": "Mobile applications run on phones and tablets through app stores. Types: native (platform-specific), hybrid (web in native shell), cross-platform (React Native, Flutter). Access device features like GPS, cameras. Focus on usability, performance, offline capability, and security.",
|
||||
"links": [
|
||||
{
|
||||
"title": "React Native",
|
||||
@@ -2278,7 +2278,7 @@
|
||||
},
|
||||
"dsTegXTyupjS8iU6I7Xiv": {
|
||||
"title": "React Native",
|
||||
"description": "React Native, by Facebook, lets you build real mobile apps for iOS and Android using JavaScript and React. It turns your code into native app parts, so apps look and feel native and run fast. You can share code between iOS and Android, saving time and money. It has features like hot reloading (see changes instantly) and access to phone features. It's great for web developers who know React and want to make mobile apps.\n\nVisit the following resources to learn more:",
|
||||
"description": "React Native enables building native mobile apps for iOS and Android using JavaScript and React. Compiles to native components for authentic look and performance. Features code sharing, hot reloading, and device API access. Ideal for React developers transitioning to mobile development.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Visit Dedicated React Roadmap",
|
||||
@@ -2299,7 +2299,7 @@
|
||||
},
|
||||
"dIQXjFEUAJAGxxfAYceHU": {
|
||||
"title": "Flutter",
|
||||
"description": "Flutter, by Google, is a tool for building apps for many platforms (iOS, Android, web, desktop) from one set of code. It uses the Dart language and has many ready-made UI parts (widgets) for making good-looking apps. Flutter is fast to develop with because of its hot reload (see changes instantly). It draws its own UI, so apps look the same everywhere. It's very popular for mobile apps and growing for web and desktop too.\n\nVisit the following resources to learn more:",
|
||||
"description": "Flutter is Google's cross-platform framework building apps for iOS, Android, web, desktop from single Dart codebase. Features rich widget library, hot reload, and custom rendering engine for consistent UI. Popular for mobile development, expanding to web and desktop platforms.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Flutter course for beginners",
|
||||
@@ -2335,7 +2335,7 @@
|
||||
},
|
||||
"xmRv6-L45m5MDpHmdHFCL": {
|
||||
"title": "Ionic",
|
||||
"description": "Ionic is a tool for building mobile and desktop apps using web tech (HTML, CSS, JavaScript) and frameworks like Angular, React, or Vue. It gives you ready-made UI parts and access to phone features. Ionic wraps your web app so it can be a native app. It tries to make apps look and feel native on different platforms. Ionic is good for quickly making apps for many platforms with one codebase.\n\nVisit the following resources to learn more:",
|
||||
"description": "Ionic builds mobile and desktop apps using web technologies (HTML, CSS, JavaScript) with Angular, React, or Vue. Provides UI components and native device access. Wraps web apps for native deployment with platform-adaptive styling. Enables rapid cross-platform development.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "ionic-team/ionic-framework",
|
||||
@@ -2361,7 +2361,7 @@
|
||||
},
|
||||
"KMA7NkxFbPoUDtFnGBFnj": {
|
||||
"title": "Desktop Apps",
|
||||
"description": "JavaScript can build desktop apps using tools like Electron, NW.js, or Tauri. These mix JavaScript with a native look and feel, letting web developers make desktop apps for different systems (like Windows, Mac, Linux). Electron is very popular (used by VS Code, Discord). These tools let JavaScript access computer features like files. While they make development fast and work on many systems, they can sometimes be slower or use more resources than fully native apps. But, they benefit from all the JavaScript tools available.\n\nVisit the following resources to learn more:",
|
||||
"description": "JavaScript builds desktop apps using Electron, NW.js, or Tauri for cross-platform development (Windows, Mac, Linux). Electron powers VS Code and Discord. Provides file system access and native integration. Trade-offs: faster development vs. performance and resource usage compared to native apps.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Electron Website",
|
||||
@@ -2382,7 +2382,7 @@
|
||||
},
|
||||
"mQHpSyMR4Rra4mqAslgiS": {
|
||||
"title": "Electron",
|
||||
"description": "Electron is a framework for building cross-platform desktop apps with web tech (HTML, CSS, JavaScript). It uses Chromium and Node.js, allowing access to native OS functions. Popular apps like VS Code use Electron. It enables fast development and cross-platform use, but can be resource-intensive. Still, it's a go-to for web developers creating desktop apps.\n\nVisit the following resources to learn more:",
|
||||
"description": "Electron builds cross-platform desktop apps using web technologies (HTML, CSS, JavaScript) with Chromium and Node.js. Provides native OS access and powers apps like VS Code. Enables rapid development but can be resource-intensive. Popular choice for web developers.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Electron Website",
|
||||
@@ -2408,7 +2408,7 @@
|
||||
},
|
||||
"GJctl0tVXe4B70s35RkLT": {
|
||||
"title": "Tauri",
|
||||
"description": "Tauri is a tool for building small, secure desktop apps using web technologies like HTML, CSS, and JavaScript. It uses a Rust backend for the main logic. Unlike Electron, Tauri uses the computer's built-in web viewer, making apps smaller. It has strong security features and works with many JavaScript frameworks. Tauri is good for making fast, secure desktop apps with web skills, focusing on small app size and good performance.\n\nVisit the following resources to learn more:",
|
||||
"description": "Tauri builds small, secure desktop apps using web technologies with Rust backend. Uses system webview instead of bundled browser, resulting in smaller apps. Features strong security and JavaScript framework compatibility. Focuses on performance and minimal resource usage compared to Electron.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Tauri Website",
|
||||
@@ -2429,7 +2429,7 @@
|
||||
},
|
||||
"2MRvAK9G9RGM_auWytcKh": {
|
||||
"title": "Flutter",
|
||||
"description": "Flutter, by Google, is a tool for building apps for many platforms (iOS, Android, web, desktop) from one set of code. It uses the Dart language and has many ready-made UI parts (widgets) for making good-looking apps. Flutter is fast to develop with because of its hot reload (see changes instantly). It draws its own UI, so apps look the same everywhere. It's very popular for mobile apps and growing for web and desktop too.\n\nVisit the following resources to learn more:",
|
||||
"description": "Flutter is Google's cross-platform framework building apps for iOS, Android, web, desktop from single Dart codebase. Features rich widget library, hot reload, and custom rendering engine for consistent UI. Popular for mobile development, expanding to web and desktop platforms.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Flutter course for beginners",
|
||||
@@ -2465,7 +2465,7 @@
|
||||
},
|
||||
"-DsETM9xLgHyGZthptj1Y": {
|
||||
"title": "PRPL Pattern",
|
||||
"description": "The PRPL pattern helps websites load fast, especially on mobile. PRPL means: Push critical resources, Render the first page quickly, Pre-cache other pages, and Lazy-load non-essential stuff. This makes the site feel instant, even on slow connections. It often uses service workers and is common in Progressive Web Apps (PWAs).\n\nVisit the following resources to learn more:",
|
||||
"description": "PRPL pattern optimizes web performance: Push critical resources, Render initial route, Pre-cache remaining routes, Lazy-load non-essential resources. Creates instant-feeling experiences on slow connections using service workers. Common in Progressive Web Apps (PWAs) for optimal loading strategies.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "PRPL Pattern - Google Developers",
|
||||
@@ -2481,7 +2481,7 @@
|
||||
},
|
||||
"xD5WfEP7Ez0oi3890UgmH": {
|
||||
"title": "RAIL Model",
|
||||
"description": "The RAIL Model from Google helps make websites feel fast. RAIL stands for Response (quick reaction to clicks), Animation (smooth visuals), Idle (using downtime well), and Load (fast page start). It sets goals like responding in 100ms and animations at 60fps. Following RAIL makes users happier because the site feels responsive.\n\nVisit the following resources to learn more:",
|
||||
"description": "RAIL Model is Google's performance framework: Response (<100ms to user input), Animation (60fps smooth visuals), Idle (efficient downtime usage), Load (fast initial rendering). Provides specific performance targets for creating responsive, user-friendly web experiences.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "RAIL Model - Google Developers",
|
||||
@@ -2497,7 +2497,7 @@
|
||||
},
|
||||
"X0Y3-IpPiFUCsNDK4RFxw": {
|
||||
"title": "Performance Metrics",
|
||||
"description": "Web performance metrics measure how fast and efficient a webpage is. They help find ways to improve. Key metrics include: Load time (how long to fully load), First Contentful Paint (FCP - when first content shows), Time to Interactive (TTI - when page is usable), First Input Delay (FID - time to respond to first click/tap), and Total Blocking Time (TBT - time main thread is blocked).\n\nVisit the following resources to learn more:",
|
||||
"description": "Web performance metrics measure webpage speed and efficiency. Key metrics: Load time, First Contentful Paint (FCP), Time to Interactive (TTI), First Input Delay (FID), and Total Blocking Time (TBT). Help identify optimization opportunities and user experience improvements.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Web Performance Metrics - Google Developers",
|
||||
@@ -2523,7 +2523,7 @@
|
||||
},
|
||||
"RIhHMHLsLLPhNl05Q9aBf": {
|
||||
"title": "Using Lighthouse",
|
||||
"description": "Lighthouse, a Google open-source tool, audits web page performance, accessibility, and SEO. Available as a browser extension and CLI tool, it simulates page load/interaction to measure metrics like load time and TTI, and checks for issues like incorrect image sizes or broken links. It offers comprehensive reports with improvement recommendations, widely used by developers and integrated into many dev tools for identifying and fixing web page issues.\n\nVisit the following resources to learn more:",
|
||||
"description": "Lighthouse is Google's open-source web auditing tool measuring performance, accessibility, and SEO. Available as browser extension and CLI. Provides comprehensive reports with improvement recommendations by simulating page loads and checking for optimization issues.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Lighthouse - Google Developers",
|
||||
@@ -2544,7 +2544,7 @@
|
||||
},
|
||||
"3_sJHKTogkDoCjR518-OL": {
|
||||
"title": "Using DevTools",
|
||||
"description": "Browser Developer Tools (DevTools) are built-in browser features for web development, allowing real-time inspection, editing, and debugging of HTML, CSS, and JavaScript. Key features include a DOM inspector, console for JavaScript, network panel, performance profiler, application panel for storage/caches/service workers, source panel for JavaScript debugging, elements panel for CSS editing, and device emulation. DevTools are vital for front-end development, optimization, and compatibility testing, offering insights into web app behavior.\n\nVisit the following resources to learn more:",
|
||||
"description": "Browser DevTools are built-in development features for inspecting, editing, and debugging HTML, CSS, and JavaScript. Include DOM inspector, console, network panel, performance profiler, and device emulation. Essential for frontend development, optimization, and testing.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Chrome DevTools - Google Developers",
|
||||
@@ -2565,7 +2565,7 @@
|
||||
},
|
||||
"raoa-75p_DyBAycvy3yVv": {
|
||||
"title": "Storage",
|
||||
"description": "The Web Storage API lets websites store information directly in your web browser. It has two main types: `localStorage` (keeps data even after you close the browser) and `sessionStorage` (keeps data only while the browser tab is open). This is useful for saving things like user preferences or items in a shopping cart. It's simpler and can hold more data than traditional cookies, and most modern browsers support it.\n\nVisit the following resources to learn more:",
|
||||
"description": "Web Storage API stores data in browsers with localStorage (persistent) and sessionStorage (tab-specific). Useful for user preferences, shopping carts, and application state. Simpler and higher capacity than cookies with broad browser support.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Web Storage API - MDN",
|
||||
@@ -2586,7 +2586,7 @@
|
||||
},
|
||||
"NDJR8UCoa31v45TBFP7we": {
|
||||
"title": "Web Sockets",
|
||||
"description": "WebSockets enable real-time, two-way communication between a client and server over a single, persistent TCP connection. This is ideal for applications needing fast, low-latency data exchange, like online games or live data streams, as it avoids repeated HTTP requests. Most modern browsers support WebSockets, and it integrates with various programming languages and frameworks.\n\nVisit the following resources to learn more:",
|
||||
"description": "WebSockets enable real-time, bidirectional communication over persistent TCP connections. Ideal for low-latency applications like gaming, live streams, and chat systems. Avoids HTTP request overhead with broad browser support and framework integration.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Web Sockets - MDN",
|
||||
@@ -2607,7 +2607,7 @@
|
||||
},
|
||||
"doPe92aUpo-8KWhi45lWK": {
|
||||
"title": "Server Sent Events",
|
||||
"description": "Server-Sent Events (SSE) let a web server send live updates to a webpage. It uses a regular HTTP connection for a one-way stream of data from server to client. This is good for things like live chats or news feeds. It's a simple way to keep a connection open for updates and works in most browsers. The webpage listens for these events and acts on them.\n\nTo use SSE, the client must create an EventSource object and specify the URL of the server-side script that will send the events. The server can then send events by writing them to the response stream with the proper formatting.\n\nVisit the following resources to learn more:",
|
||||
"description": "Server-Sent Events (SSE) enable servers to send live updates to webpages through one-way HTTP connections. Ideal for live chats, news feeds, and real-time notifications. Clients use EventSource objects to listen for formatted events from server response streams. Simple, browser-compatible solution for real-time updates.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Server-Sent Events - MDN",
|
||||
@@ -2623,7 +2623,7 @@
|
||||
},
|
||||
"TldWoXiqKxM4X3JONKAR7": {
|
||||
"title": "Service Workers",
|
||||
"description": "Service Workers are special JavaScript files that act like a middleman between a webpage and the internet. They help build apps that work offline. Service Workers can catch network requests, use stored (cached) data, and decide how to respond, even if the webpage isn't open. This allows for features like push notifications, background updates, and offline use. Most modern browsers support them, and they are key for Progressive Web Apps (PWAs).\n\nVisit the following resources to learn more:",
|
||||
"description": "Service Workers are JavaScript files acting as proxy between webpages and network. Enable offline functionality by intercepting requests and serving cached responses. Support push notifications, background sync, and offline capabilities. Essential for Progressive Web Apps (PWAs).\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Service Workers - MDN",
|
||||
@@ -2644,7 +2644,7 @@
|
||||
},
|
||||
"YbGGYoKJEx29PlvopUBiM": {
|
||||
"title": "Location",
|
||||
"description": "The Geolocation API lets websites know a device's location (like latitude and longitude). This is for apps that use location, like maps. It uses GPS, Wi-Fi, and other sensors. The website must ask for permission first. If given, it can get the current location, watch for changes, or find distances. This helps make location-aware web apps.\n\nVisit the following resources to learn more:",
|
||||
"description": "Geolocation API provides device location (latitude/longitude) using GPS, Wi-Fi, and sensors. Requires user permission for privacy. Enables current location access, position tracking, and distance calculations for location-aware web applications like maps and navigation.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Geolocation API - MDN",
|
||||
@@ -2660,7 +2660,7 @@
|
||||
},
|
||||
"6AlcArOiJMhHXguAosDzn": {
|
||||
"title": "Notifications",
|
||||
"description": "The Notifications API lets websites show system alerts to users, like for new messages or updates, even if the site isn't open. The site must ask for permission first. If allowed, it can create notifications with a title, text, and icon. These can also have a timeout or an action when clicked. It helps keep users informed about important events from the website.\n\nVisit the following resources to learn more:",
|
||||
"description": "Notifications API displays system alerts for messages, updates, and events even when site isn't active. Requires user permission and supports title, text, icons, timeouts, and click actions. Keeps users informed of important website events.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Get Started With The Notifications API",
|
||||
@@ -2681,7 +2681,7 @@
|
||||
},
|
||||
"Fd0hQh1DleM0gMzCpGou4": {
|
||||
"title": "Device Orientation",
|
||||
"description": "The Device Orientation API lets websites know how a device is tilted or moving (like its pitch, roll, and yaw). This is for apps that react to movement, like augmented reality or motion games. The site must ask for permission first. If allowed, it can get the device's orientation and react to changes. It helps make interactive, motion-aware web apps.\n\nVisit the following resources to learn more:",
|
||||
"description": "Device Orientation API detects device tilt and movement (pitch, roll, yaw) for motion-responsive applications. Requires permission for AR, gaming, and interactive experiences. Provides orientation data and change detection for motion-aware web apps.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Device Orientation API - MDN",
|
||||
@@ -2697,7 +2697,7 @@
|
||||
},
|
||||
"MAM1nuVk-h4AvTUk4nvmj": {
|
||||
"title": "Payments",
|
||||
"description": "The Payment Request API helps websites build checkout forms. It gives a standard way for browsers to get payment and shipping info from users. It works with credit cards, debit cards, and digital wallets. A webpage creates a `PaymentRequest`, shows options, and then the user confirms. The API then gives a response to finish the payment.\n\nVisit the following resources to learn more:",
|
||||
"description": "Payment Request API standardizes checkout forms by collecting payment and shipping information through browsers. Supports credit cards, debit cards, and digital wallets. Creates PaymentRequest objects for user confirmation and payment processing.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Payment Request API - MDN",
|
||||
@@ -2713,7 +2713,7 @@
|
||||
},
|
||||
"opu2bAsmdWHqWqtsCscLC": {
|
||||
"title": "Credentials",
|
||||
"description": "The Credential Management API helps websites work with the browser's password manager. It lets sites store and get user logins securely, making sign-in and sign-up easier (like auto sign-in). It supports passwords and other login types. This API improves login experience and security by working with password managers and platform authenticators, making logins smoother across devices.\n\nVisit the following resources to learn more:",
|
||||
"description": "Credential Management API integrates websites with browser password managers for secure credential storage and retrieval. Enables auto sign-in, supports various authentication methods, and works with platform authenticators. Improves login experience and security across devices.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Credential Management API - MDN",
|
||||
@@ -2729,7 +2729,7 @@
|
||||
},
|
||||
"h26uS3muFCabe6ekElZcI": {
|
||||
"title": "SWC",
|
||||
"description": "SWC (Speedy Web Compiler) is a super-fast tool for changing modern JavaScript and TypeScript code into older versions that more browsers can understand. It's written in Rust, making it much faster than tools like Babel. SWC can compile and bundle code, speeding up website building. It supports new JavaScript features, JSX (used with React), and TypeScript. It's popular for big JavaScript projects and is used by other tools to make them faster too.\n\nVisit the following resources to learn more:",
|
||||
"description": "SWC (Speedy Web Compiler) is a Rust-based JavaScript/TypeScript compiler and bundler, much faster than Babel. Supports modern JavaScript features, JSX, and TypeScript compilation. Popular for large projects and as performance foundation for other build tools.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "SWC Website",
|
||||
@@ -2760,7 +2760,7 @@
|
||||
},
|
||||
"wA2fSYsbBYU02VJXAvUz8": {
|
||||
"title": "Astro",
|
||||
"description": "Astro is a static site generator for fast, content-focused websites. It lets you use various frontend frameworks (like React, Vue, Svelte) and renders components to static HTML. Astro's \"partial hydration\" only sends JavaScript when needed, leading to smaller bundles and quicker loads. It supports file-based routing and markdown, making it great for blogs, docs, and marketing sites.\n\nVisit the following resources to learn more:",
|
||||
"description": "Astro is a static site generator supporting multiple frameworks (React, Vue, Svelte) with partial hydration. Renders components to static HTML, sending JavaScript only when needed. Features file-based routing and markdown support. Ideal for blogs, documentation, and marketing sites.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Astro Web Framework Crash Course",
|
||||
|
||||
@@ -29,6 +29,11 @@
|
||||
"url": "https://web.dev/learn/css/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "CSS: Cascading Style Sheets | MDN",
|
||||
"url": "https://developer.mozilla.org/en-US/docs/Web/CSS",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Explore top posts about CSS",
|
||||
"url": "https://app.daily.dev/tags/css?ref=roadmapsh",
|
||||
@@ -128,7 +133,7 @@
|
||||
"description": "Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Visit Dedicated Git & Github Roadmap",
|
||||
"title": "Visit Dedicated Git & GitHub Roadmap",
|
||||
"url": "https://roadmap.sh/git-github",
|
||||
"type": "article"
|
||||
},
|
||||
@@ -741,17 +746,17 @@
|
||||
"description": "GitHub Actions is a workflow automation tool provided by GitHub that can be used to automate various tasks in the app development process.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Visit Dedicated Git & Github Roadmap",
|
||||
"title": "Visit Dedicated Git & GitHub Roadmap",
|
||||
"url": "https://roadmap.sh/git-github",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Github Actions",
|
||||
"title": "GitHub Actions",
|
||||
"url": "https://github.com/features/actions",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Github Actions Documentation",
|
||||
"title": "GitHub Actions Documentation",
|
||||
"url": "https://docs.github.com/en/actions",
|
||||
"type": "article"
|
||||
},
|
||||
|
||||
@@ -369,7 +369,7 @@
|
||||
"description": "GitHub Essentials refers to the core features and functionalities that form the foundation of GitHub's version control and collaboration platform. These essentials include repositories for storing and managing code, branches for parallel development, pull requests for code review and merging, issues for tracking tasks and bugs, and collaborative tools like project boards and wikis. Understanding and mastering these fundamental components allows developers to effectively manage their projects, collaborate with team members, and contribute to open-source initiatives, making GitHub an indispensable tool in modern software development workflows.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Github Essentials - Microsoft",
|
||||
"title": "GitHub Essentials - Microsoft",
|
||||
"url": "https://learn.microsoft.com/en-us/contribute/content/git-github-fundamentals",
|
||||
"type": "article"
|
||||
},
|
||||
@@ -676,7 +676,7 @@
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Using Github for Team collaboration",
|
||||
"title": "Using GitHub for Team collaboration",
|
||||
"url": "https://youtu.be/4nyIS58ORWw?si=yK5LCONNVm9OIUK5",
|
||||
"type": "video"
|
||||
}
|
||||
@@ -703,7 +703,7 @@
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Walkthrough: Using Github’s “Saved Replies” to make life consistent and easy",
|
||||
"title": "Walkthrough: Using GitHub’s “Saved Replies” to make life consistent and easy",
|
||||
"url": "https://prowe214.medium.com/walkthrough-using-githubs-saved-replies-to-make-life-consistent-and-easy-80f23efe6a0",
|
||||
"type": "article"
|
||||
}
|
||||
@@ -1042,7 +1042,7 @@
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Github Team Docs",
|
||||
"title": "GitHub Team Docs",
|
||||
"url": "https://docs.github.com/organizations/organizing-members-into-teams/about-teams",
|
||||
"type": "article"
|
||||
}
|
||||
@@ -1857,7 +1857,7 @@
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Efficient GitHub Operations: Simplifying Repository Management using Github CLI",
|
||||
"title": "Efficient GitHub Operations: Simplifying Repository Management using GitHub CLI",
|
||||
"url": "https://dev.to/yutee_okon/efficient-github-operations-simplifying-repository-management-using-github-cli-190l",
|
||||
"type": "article"
|
||||
},
|
||||
@@ -1915,12 +1915,12 @@
|
||||
"type": "course"
|
||||
},
|
||||
{
|
||||
"title": "Github Actions",
|
||||
"title": "GitHub Actions",
|
||||
"url": "https://docs.github.com/en/actions",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "What are Github Actions",
|
||||
"title": "What are GitHub Actions",
|
||||
"url": "https://www.youtube.com/watch?v=URmeTqglS58",
|
||||
"type": "video"
|
||||
}
|
||||
@@ -2255,7 +2255,7 @@
|
||||
"description": "The GitHub API is a powerful tool that allows developers to interact with the GitHub platform programmatically. It provides access to various GitHub features, such as user data, repository information, and commit history, through both REST and GraphQL interfaces. The API supports authentication, implements rate limiting, and offers webhooks for real-time notifications, enabling developers to automate tasks, create custom integrations, and build applications that leverage GitHub's functionality.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Github API Docs",
|
||||
"title": "GitHub API Docs",
|
||||
"url": "https://docs.github.com/en/rest?apiVersion=2022-11-28",
|
||||
"type": "article"
|
||||
},
|
||||
@@ -2436,7 +2436,7 @@
|
||||
"description": "Deploying static websites on GitHub Pages involves uploading and serving website content that is generated beforehand, without dynamic functionality. This approach allows for fast deployment, low maintenance, and improved security.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "How to Deploy a Static Website for Free Using Github Pages",
|
||||
"title": "How to Deploy a Static Website for Free Using GitHub Pages",
|
||||
"url": "https://medium.com/flycode/how-to-deploy-a-static-website-for-free-using-github-pages-8eddc194853b",
|
||||
"type": "article"
|
||||
},
|
||||
|
||||
@@ -479,7 +479,7 @@
|
||||
},
|
||||
{
|
||||
"title": "The new() vs make() Functions in Go",
|
||||
"url": "https://nitish08.medium.com/loops-in-golang-d44fb39b08e",
|
||||
"url": "https://www.freecodecamp.org/news/new-vs-make-functions-in-go/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
@@ -2615,13 +2615,13 @@
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Exploring Golang and Beego: A Beginner's Guide with Examples",
|
||||
"url": "https://medium.com/@vijeshomen/exploring-golang-and-beego-a-beginners-guide-with-examples-part-1-79619f0db1ac",
|
||||
"title": "beego package",
|
||||
"url": "https://pkg.go.dev/github.com/beego/beego",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "beego package",
|
||||
"url": "https://pkg.go.dev/github.com/beego/beego",
|
||||
"title": "Exploring Golang and Beego: A Beginner's Guide with Examples",
|
||||
"url": "https://medium.com/@vijeshomen/exploring-golang-and-beego-a-beginners-guide-with-examples-part-1-79619f0db1ac",
|
||||
"type": "article"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -2852,7 +2852,7 @@
|
||||
"description": "GitLab is a comprehensive DevOps platform that provides source code management, CI/CD, and project management tools in a single application. It enables teams to manage their entire software development lifecycle, from planning and coding to testing, deployment, and monitoring. GitLab's built-in CI/CD capabilities allow developers to automate the build, test, and deployment processes using pipelines defined in YAML files. It integrates with various version control systems and supports Docker, Kubernetes, and other deployment environments. GitLab's features include issue tracking, code review, and merge request workflows, which enhance collaboration and code quality. The platform also offers robust security features, such as vulnerability management and dependency scanning, to ensure the safety and integrity of the codebase. GitLab can be hosted on-premises or used as a cloud-based service, providing flexibility and scalability for different project needs. Its all-in-one nature simplifies the development process, making it a popular choice for teams seeking to streamline their workflows and improve productivity.\n\nLearn more from the following resources:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Gitlab Website",
|
||||
"title": "GitLab Website",
|
||||
"url": "https://about.gitlab.com/",
|
||||
"type": "article"
|
||||
},
|
||||
|
||||
@@ -202,6 +202,11 @@
|
||||
"title": "How the JVM Executes Java Code",
|
||||
"url": "https://www.cesarsotovalero.net/blog/how-the-jvm-executes-java-code.html",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "JIT vs. AOT Compilation in Java",
|
||||
"url": "https://bell-sw.com/blog/compilation-in-java-jit-vs-aot/",
|
||||
"type": "article"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -305,6 +310,11 @@
|
||||
"title": "Method Chaining",
|
||||
"description": "Method chaining is a programming technique where multiple method calls are made sequentially on the same object, one after another, in a single statement. Each method in the chain returns an object, allowing the next method to be called on that returned object. This approach enhances code readability and conciseness by reducing the need for temporary variables and intermediate steps.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "@GeeksforGeeks@Method Chaining In Java with Examples",
|
||||
"url": "https://www.geeksforgeeks.org/java/method-chaining-in-java-with-examples/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "How to achieve method chaining in Java",
|
||||
"url": "https://stackoverflow.com/questions/21180269/how-to-achieve-method-chaining-in-java",
|
||||
@@ -699,6 +709,11 @@
|
||||
"title": "Understanding Java Exceptions",
|
||||
"url": "https://www.youtube.com/watch?v=W-N2ltgU-X4",
|
||||
"type": "video"
|
||||
},
|
||||
{
|
||||
"title": "Java Exception Handling",
|
||||
"url": "https://www.youtube.com/watch?v=1XAfapkBQjk",
|
||||
"type": "video"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"y7KjVfSI6CAduyHd4mBFT": {
|
||||
"title": "Introduction",
|
||||
"description": "Kubernetes, also known as k8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It provides a way to abstract the underlying infrastructure and manage applications at scale, while also offering flexibility, portability, and a rich feature set. Kubernetes has become the de facto standard for container orchestration due to its widespread adoption, active community, and ability to handle complex, multi-tiered applications.\n\nLearn more from the following links:",
|
||||
"description": "Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It provides a way to abstract the underlying infrastructure and manage applications at scale, while also offering flexibility, portability, and a rich feature set. Kubernetes has become the de facto standard for container orchestration due to its widespread adoption, active community, and ability to handle complex, multi-tiered applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Kubernetes Documentation",
|
||||
@@ -27,7 +27,7 @@
|
||||
},
|
||||
"qLeEEwBvlGt1fP5Qcreah": {
|
||||
"title": "Overview of Kubernetes",
|
||||
"description": "Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.\n\nThe name Kubernetes originates from Greek, meaning helmsman or pilot. K8s as an abbreviation results from counting the eight letters between the \"K\" and the \"s\". Google open-sourced the Kubernetes project in 2014. Kubernetes combines over 15 years of Google's experience running production workloads at scale with best-of-breed ideas and practices from the community.\n\nLearn more from the following links:",
|
||||
"description": "Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.\n\nThe name Kubernetes originates from Greek, meaning helmsman or pilot. K8s as an abbreviation results from counting the eight letters between the \"K\" and the \"s\". Google open-sourced the Kubernetes project in 2014. Kubernetes combines over 15 years of Google's experience running production workloads at scale with best-of-breed ideas and practices from the community.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Overview of Kubernetes",
|
||||
@@ -58,7 +58,7 @@
|
||||
},
|
||||
"q-Ky0ietZGpyUcBQfh-BJ": {
|
||||
"title": "Why use Kubernetes?",
|
||||
"description": "Kubernetes (k8s) is needed because it provides a powerful and flexible platform for deploying and managing containerized applications at scale. It allows for easy scalability, high resilience, application portability, automation of many tasks, and standardization of the container platform. k8s also helps reduce complexity and workload for operations teams, enabling them to focus on more strategic initiatives.\n\nLearn more from the following resources:",
|
||||
"description": "Kubernetes (k8s) is needed because it provides a powerful and flexible platform for deploying and managing containerized applications at scale. It allows for easy scalability, high resilience, application portability, automation of many tasks, and standardization of the container platform. k8s also helps reduce complexity and workload for operations teams, enabling them to focus on more strategic initiatives.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Why you need Kubernetes and what it can do",
|
||||
@@ -79,7 +79,7 @@
|
||||
},
|
||||
"9oo2fxTM2_p0VYPBroqxa": {
|
||||
"title": "Key Concepts and Terminologies",
|
||||
"description": "Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. Here are some important concepts and terminologies in Kubernetes:\n\n* Cluster Architecture: The architectural concepts behind Kubernetes.\n* Containers: Technology for packaging an application along with its runtime dependencies.\n* Workloads: Understand Pods, the smallest deployable compute object in Kubernetes, and the higher-level abstractions that help you to run them.\n* Services, Load Balancing, and Networking: Concepts and resources behind networking in Kubernetes.\n* Storage: Ways to provide both long-term and temporary storage to Pods in your cluster.\n* Configuration: Resources that Kubernetes provides for configuring Pods.\n* Cluster Administration: Lower-level detail relevant to creating or administering a Kubernetes cluster.\n\nLearn more from the following links:",
|
||||
"description": "Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. Here are some important concepts and terminologies in Kubernetes:\n\n* Cluster Architecture: The architectural concepts behind Kubernetes.\n* Containers: Technology for packaging an application along with its runtime dependencies.\n* Workloads: Understand Pods, the smallest deployable compute object in Kubernetes, and the higher-level abstractions that help you to run them.\n* Services, Load Balancing, and Networking: Concepts and resources behind networking in Kubernetes.\n* Storage: Ways to provide both long-term and temporary storage to Pods in your cluster.\n* Configuration: Resources that Kubernetes provides for configuring Pods.\n* Cluster Administration: Lower-level detail relevant to creating or administering a Kubernetes cluster.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Concepts of Kubernetes",
|
||||
@@ -105,7 +105,7 @@
|
||||
},
|
||||
"3fzuXKH7az_LVnmnoXB1p": {
|
||||
"title": "Kubernetes Alternatives",
|
||||
"description": "Kubernetes is a popular open-source container orchestration tool that is widely used for managing and deploying containerized applications. While there are other container orchestration tools available, such as Docker Swarm, Mesos, and Nomad, there are some key differences between Kubernetes and these other tools and some of them are mentioned below:\n\n* Architecture: Kubernetes is designed as a modular system with many components that work together to provide container orchestration, such as the Kubernetes API server, kubelet, kube-proxy, and etcd.\n* Scalability: Kubernetes is designed to handle large-scale deployments and can scale applications up or down based on demand.\n* Flexibility: Kubernetes is highly configurable and can be customized to meet specific requirements, whereas other container orchestration tools may have more limited configuration options.\n* Portability: Kubernetes is designed to be cloud-agnostic and can run on any public or private cloud platform, as well as on-premises.\n* Community: Kubernetes has a large and active community of developers and users who contribute to its development and provide support.\n\nLearn more from the following links:",
|
||||
"description": "Kubernetes is a popular open-source container orchestration tool that is widely used for managing and deploying containerized applications. While there are other container orchestration tools available, such as Docker Swarm, Mesos, and Nomad, there are some key differences between Kubernetes and these other tools and some of them are mentioned below:\n\n* Architecture: Kubernetes is designed as a modular system with many components that work together to provide container orchestration, such as the Kubernetes API server, kubelet, kube-proxy, and etcd.\n* Scalability: Kubernetes is designed to handle large-scale deployments and can scale applications up or down based on demand.\n* Flexibility: Kubernetes is highly configurable and can be customized to meet specific requirements, whereas other container orchestration tools may have more limited configuration options.\n* Portability: Kubernetes is designed to be cloud-agnostic and can run on any public or private cloud platform, as well as on-premises.\n* Community: Kubernetes has a large and active community of developers and users who contribute to its development and provide support.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Compare Apache Mesos vs. Kubernetes",
|
||||
@@ -162,7 +162,7 @@
|
||||
},
|
||||
"3OpGaQhyNtk1n1MLp-tlb": {
|
||||
"title": "Setting up Kubernetes",
|
||||
"description": "To deploy your first application in Kubernetes, you need to create a deployment and service manifest in YAML files, apply the manifests to your Kubernetes cluster using the kubectl apply command, verify that your application's pods are running with kubectl get pods, and test the service with kubectl get services and accessing the service using a web browser or a tool like cURL. There are also various tools and platforms available that can simplify application deployment in Kubernetes, such as Helm charts and Kubernetes operators.\n\nLearn more from the following links:",
|
||||
"description": "To deploy your first application in Kubernetes, you need to create a deployment and service manifest in YAML files, apply the manifests to your Kubernetes cluster using the kubectl apply command, verify that your application's pods are running with kubectl get pods, and test the service with kubectl get services and accessing the service using a web browser or a tool like cURL. There are also various tools and platforms available that can simplify application deployment in Kubernetes, such as Helm charts and Kubernetes operators.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Using kubectl to Create a Deployment",
|
||||
@@ -193,7 +193,7 @@
|
||||
},
|
||||
"zrbSJa3k7a3TE0aYbWi9c": {
|
||||
"title": "Deploying your First Application",
|
||||
"description": "To deploy your first application in Kubernetes, you need to create a deployment and service manifest in YAML files, apply the manifests to your Kubernetes cluster using the kubectl apply command, verify that your application's pods are running with kubectl get pods, and test the service with kubectl get services and accessing the service using a web browser or a tool like cURL. There are also various tools and platforms available that can simplify application deployment in Kubernetes, such as Helm charts and Kubernetes operators.\n\nLearn more from the following links:",
|
||||
"description": "To deploy your first application in Kubernetes, you need to create a deployment and service manifest in YAML files, apply the manifests to your Kubernetes cluster using the kubectl apply command, verify that your application's pods are running with kubectl get pods, and test the service with kubectl get services and accessing the service using a web browser or a tool like cURL. There are also various tools and platforms available that can simplify application deployment in Kubernetes, such as Helm charts and Kubernetes operators.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Using kubectl to Create a Deployment",
|
||||
@@ -224,7 +224,7 @@
|
||||
},
|
||||
"qSatCdBTDXPu-IFWzUI99": {
|
||||
"title": "Choosing a Managed Provider",
|
||||
"description": "A managed provider is a cloud-based service that provides a managed Kubernetes environment. This means that the provider handles the underlying infrastructure, such as servers, storage, and networking, as well as the installation, configuration, and maintenance of the Kubernetes cluster.\n\nWhen choosing a managed Kubernetes provider, consider the cloud provider you are using, features and capabilities, pricing and billing, support, security and compliance, and the provider's reputation and reviews. By taking these factors into account, you can select a provider that meets your needs and offers the best value for your organization.\n\nLearn more from the following resources:",
|
||||
"description": "A managed provider is a cloud-based service that provides a managed Kubernetes environment. This means that the provider handles the underlying infrastructure, such as servers, storage, and networking, as well as the installation, configuration, and maintenance of the Kubernetes cluster.\n\nWhen choosing a managed Kubernetes provider, consider the cloud provider you are using, features and capabilities, pricing and billing, support, security and compliance, and the provider's reputation and reviews. By taking these factors into account, you can select a provider that meets your needs and offers the best value for your organization.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Choosing a Managed Kubernetes Provider",
|
||||
@@ -245,7 +245,7 @@
|
||||
},
|
||||
"YaIs8lquWIe1D7RCUBZmC": {
|
||||
"title": "Installing a Local Cluster",
|
||||
"description": "To install and configure a Kubernetes cluster on CentOS 7 or Ubuntu, you would need to setup the prerequisites and requirements for setting up a Kubernetes cluster after which you would be installing the Kubernetes components, including Kubeadm, Kubelet, and Kubectl and then you'll need to connect the master and the worker nodes. Once the connection is established you can check it by deploying application on the cluster.\n\nLearn more from the following links:",
|
||||
"description": "To install and configure a Kubernetes cluster on CentOS 7 or Ubuntu, you would need to setup the prerequisites and requirements for setting up a Kubernetes cluster after which you would be installing the Kubernetes components, including Kubeadm, Kubelet, and Kubectl and then you'll need to connect the master and the worker nodes. Once the connection is established you can check it by deploying application on the cluster.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "How to Install a Kubernetes Cluster on CentOS 7",
|
||||
@@ -287,7 +287,7 @@
|
||||
},
|
||||
"-d2PIXm0V_Iehe8cws8zK": {
|
||||
"title": "Pods",
|
||||
"description": "In Kubernetes, a pod is the smallest deployable unit that represents a single instance of a running process in a cluster. A pod can contain one or more containers that share the same network namespace and can access the same storage volumes. Pods are created and managed by Kubernetes, and they are scheduled to run on one of the nodes in the cluster. Pods provide a lightweight and flexible abstraction layer that enables Kubernetes to manage the deployment, scaling, and networking of containerized applications. Pods also facilitate the communication and data exchange between containers running in the same pod.\n\nLearn more from the following links:",
|
||||
"description": "In Kubernetes, a pod is the smallest deployable unit that represents a single instance of a running process in a cluster. A pod can contain one or more containers that share the same network namespace and can access the same storage volumes. Pods are created and managed by Kubernetes, and they are scheduled to run on one of the nodes in the cluster. Pods provide a lightweight and flexible abstraction layer that enables Kubernetes to manage the deployment, scaling, and networking of containerized applications. Pods also facilitate the communication and data exchange between containers running in the same pod.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Pods Documentation",
|
||||
@@ -313,7 +313,7 @@
|
||||
},
|
||||
"IF09l0-pryGpMbDt__ocr": {
|
||||
"title": "ReplicaSets",
|
||||
"description": "A ReplicaSet is a controller that ensures a specified number of replicas (identical copies) of a pod are running in a cluster at all times. ReplicaSets help to ensure high availability and scalability by automatically scaling the number of pod replicas up or down in response to changes in demand or hardware failures. They are defined by a YAML file that specifies the desired number of replicas, the pod template to use, and other settings. They are responsible for monitoring the status of pods and creating or deleting replicas as necessary to meet the desired state.\n\nLearn more from the following links:",
|
||||
"description": "A ReplicaSet is a controller that ensures a specified number of replicas (identical copies) of a pod are running in a cluster at all times. ReplicaSets help to ensure high availability and scalability by automatically scaling the number of pod replicas up or down in response to changes in demand or hardware failures. They are defined by a YAML file that specifies the desired number of replicas, the pod template to use, and other settings. They are responsible for monitoring the status of pods and creating or deleting replicas as necessary to meet the desired state.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "ReplicaSet Documentation",
|
||||
@@ -355,7 +355,7 @@
|
||||
},
|
||||
"AJiRBEaKU8qYEm0fqN389": {
|
||||
"title": "StatefulSets",
|
||||
"description": "It is a controller that manages the deployment and scaling of a set of stateful pods that require stable network identities and stable storage volumes. StatefulSets are used to run stateful applications such as databases, where the order and uniqueness of each pod is important. StatefulSets provide unique stable network identities and stable storage volumes for each pod, which allows stateful applications to maintain data consistency even when they are scaled up or down, or when nodes fail or are replaced. StatefulSets are defined by a YAML file that includes a pod template, a service to access the pods, and other settings.\n\nLearn more from the following links:",
|
||||
"description": "It is a controller that manages the deployment and scaling of a set of stateful pods that require stable network identities and stable storage volumes. StatefulSets are used to run stateful applications such as databases, where the order and uniqueness of each pod is important. StatefulSets provide unique stable network identities and stable storage volumes for each pod, which allows stateful applications to maintain data consistency even when they are scaled up or down, or when nodes fail or are replaced. StatefulSets are defined by a YAML file that includes a pod template, a service to access the pods, and other settings.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "StatefulSets Documentation",
|
||||
@@ -376,7 +376,7 @@
|
||||
},
|
||||
"r3fzAN5DzratAKnnT8hzb": {
|
||||
"title": "Jobs",
|
||||
"description": "a Job is a controller that manages the execution of a finite task or batch job. Jobs are used to run short-lived tasks, such as batch processing, data analysis, or backups, that run to completion and then terminate. Jobs create one or more pods to run the task, and they monitor the completion status of each pod. If a pod fails or terminates, the Job automatically creates a replacement pod to ensure that the task is completed successfully. Jobs are defined by a YAML file that includes a pod template, completion criteria, and other settings.\n\nLearn more from the following resources:",
|
||||
"description": "a Job is a controller that manages the execution of a finite task or batch job. Jobs are used to run short-lived tasks, such as batch processing, data analysis, or backups, that run to completion and then terminate. Jobs create one or more pods to run the task, and they monitor the completion status of each pod. If a pod fails or terminates, the Job automatically creates a replacement pod to ensure that the task is completed successfully. Jobs are defined by a YAML file that includes a pod template, completion criteria, and other settings.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Jobs Documentation",
|
||||
@@ -397,7 +397,7 @@
|
||||
},
|
||||
"aUJ_w2L8nxNq3DfAW97Gd": {
|
||||
"title": "Services and Networking",
|
||||
"description": "Networking is crucial for communication between pods and resources in a Kubernetes cluster. Each pod has a unique IP address and can communicate with other pods directly. Container networking interface (CNI) plugins are used to configure pod network interfaces and provide isolation between pods. Kubernetes also provides networking services such as load balancing, service discovery, and ingress, which enable external traffic to access pods and services. These services are implemented using Kubernetes objects such as Services, Ingress, and NetworkPolicies. Networking and pod-to-pod communication are essential for scalability, reliability, and flexibility in Kubernetes clusters.\n\nLearn more from the following resources:",
|
||||
"description": "Networking is crucial for communication between pods and resources in a Kubernetes cluster. Each pod has a unique IP address and can communicate with other pods directly. Container networking interface (CNI) plugins are used to configure pod network interfaces and provide isolation between pods. Kubernetes also provides networking services such as load balancing, service discovery, and ingress, which enable external traffic to access pods and services. These services are implemented using Kubernetes objects such as Services, Ingress, and NetworkPolicies. Networking and pod-to-pod communication are essential for scalability, reliability, and flexibility in Kubernetes clusters.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Cluster Networking - Documentation",
|
||||
@@ -423,7 +423,7 @@
|
||||
},
|
||||
"jUOlITLqnIvSu97I_3nBz": {
|
||||
"title": "External Access to Services",
|
||||
"description": "External access to Kubernetes (k8s) Services allows external clients to access pods and services running in the cluster. There are multiple ways to enable external access to Services in k8s, including NodePorts, LoadBalancers, and Ingress. Ingress is a Kubernetes object that provides a flexible way to manage external access, routing traffic to Services based on URL or host. External access is essential to ensure the scalability and reliability of Kubernetes deployments.\n\nLearn more from the following links:",
|
||||
"description": "External access to Kubernetes (k8s) Services allows external clients to access pods and services running in the cluster. There are multiple ways to enable external access to Services in k8s, including NodePorts, LoadBalancers, and Ingress. Ingress is a Kubernetes object that provides a flexible way to manage external access, routing traffic to Services based on URL or host. External access is essential to ensure the scalability and reliability of Kubernetes deployments.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Ingress - Documentation",
|
||||
@@ -444,7 +444,7 @@
|
||||
},
|
||||
"Qelo1YvAcUoX5PA-RYbNp": {
|
||||
"title": "Load Balancing",
|
||||
"description": "Load balancing in distributes network traffic across multiple pods or nodes using a Service object. A Service provides a stable network endpoint for a set of pods, allowing other pods or external clients to access them through a single IP address and DNS name. Kubernetes offers three types of load balancing algorithms for Services, which distribute traffic based on round-robin, least connections, or IP hash. Load balancing is an essential part of Kubernetes networking, providing efficient and reliable traffic distribution across a cluster.\n\nLearn more from the following resources:",
|
||||
"description": "Load balancing in distributes network traffic across multiple pods or nodes using a Service object. A Service provides a stable network endpoint for a set of pods, allowing other pods or external clients to access them through a single IP address and DNS name. Kubernetes offers three types of load balancing algorithms for Services, which distribute traffic based on round-robin, least connections, or IP hash. Load balancing is an essential part of Kubernetes networking, providing efficient and reliable traffic distribution across a cluster.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Load Balancing - Documentation",
|
||||
@@ -465,7 +465,7 @@
|
||||
},
|
||||
"44rhdieUCWsGFC_1__9kk": {
|
||||
"title": "Networking & Pod-to-Pod Communication",
|
||||
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nLearn more from the following resources:",
|
||||
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Overview of Kubernetes",
|
||||
@@ -486,7 +486,7 @@
|
||||
},
|
||||
"dj7Tb2XTX4kxRUYiTjlhM": {
|
||||
"title": "Configuration Management",
|
||||
"description": "Kubernetes secrets store sensitive data such as passwords, tokens, and API keys in a secure manner. They can be created manually or automatically, and stored in etcd. Secrets can be mounted as files or environment variables in a pod, and access can be managed using Kubernetes RBAC. However, they have some limitations, such as size and the inability to be updated once created. Understanding secrets is important for building secure applications in Kubernetes.\n\nLear more from the following links:",
|
||||
"description": "Kubernetes secrets store sensitive data such as passwords, tokens, and API keys in a secure manner. They can be created manually or automatically, and stored in etcd. Secrets can be mounted as files or environment variables in a pod, and access can be managed using Kubernetes RBAC. However, they have some limitations, such as size and the inability to be updated once created. Understanding secrets is important for building secure applications in Kubernetes.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Documentation - Secrets",
|
||||
@@ -507,7 +507,7 @@
|
||||
},
|
||||
"u24UlZKI86vaguj_VpMv1": {
|
||||
"title": "Injecting Pod Config with ConfigMaps",
|
||||
"description": "ConfigMaps are a way to store configuration data that can be used by applications running in the cluster. A Config Map is a key-value store that can hold configuration data such as database URLs, credentials, API keys, or any other application configuration data that can be used by the application.\n\nLearn more from the following links:",
|
||||
"description": "ConfigMaps are a way to store configuration data that can be used by applications running in the cluster. A Config Map is a key-value store that can hold configuration data such as database URLs, credentials, API keys, or any other application configuration data that can be used by the application.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "ConfigMaps Documentation",
|
||||
@@ -528,7 +528,7 @@
|
||||
},
|
||||
"S0CwGC2gMG-SqnLNldqBD": {
|
||||
"title": "Using Secrets for Sensitive Data",
|
||||
"description": "Kubernetes secrets store sensitive data such as passwords, tokens, and API keys in a secure manner. They can be created manually or automatically, and stored in etcd. Secrets can be mounted as files or environment variables in a pod, and access can be managed using Kubernetes RBAC. However, they have some limitations, such as size and the inability to be updated once created. Understanding secrets is important for building secure applications in Kubernetes.\n\nLear more from the following links:",
|
||||
"description": "Kubernetes secrets store sensitive data such as passwords, tokens, and API keys in a secure manner. They can be created manually or automatically, and stored in etcd. Secrets can be mounted as files or environment variables in a pod, and access can be managed using Kubernetes RBAC. However, they have some limitations, such as size and the inability to be updated once created. Understanding secrets is important for building secure applications in Kubernetes.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Documentation - Secrets",
|
||||
@@ -549,7 +549,7 @@
|
||||
},
|
||||
"eWKkdiBhD5x2sGYajmHEs": {
|
||||
"title": "Resource Management",
|
||||
"description": "Monitoring and optimizing resource usage in Kubernetes (k8s) is crucial for ensuring efficient and effective use of resources. To monitor resource usage, k8s provides a Metrics Server, and Prometheus can be integrated with k8s. The Container Runtime Interface (CRI) can also be used to monitor container-level resource usage data. To optimize resource usage, setting appropriate requests and limits, using Horizontal Pod Autoscaling (HPA), implementing pod affinity and anti-affinity rules, and controlling node selection can all help reduce resource contention and improve resource utilization. By monitoring and optimizing resource usage, k8s can ensure that applications run efficiently and resources are used effectively.\n\nLearn more from the following resources:",
|
||||
"description": "Monitoring and optimizing resource usage in Kubernetes (k8s) is crucial for ensuring efficient and effective use of resources. To monitor resource usage, k8s provides a Metrics Server, and Prometheus can be integrated with k8s. The Container Runtime Interface (CRI) can also be used to monitor container-level resource usage data. To optimize resource usage, setting appropriate requests and limits, using Horizontal Pod Autoscaling (HPA), implementing pod affinity and anti-affinity rules, and controlling node selection can all help reduce resource contention and improve resource utilization. By monitoring and optimizing resource usage, k8s can ensure that applications run efficiently and resources are used effectively.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Tools for Monitoring Resources - Documentation",
|
||||
@@ -575,7 +575,7 @@
|
||||
},
|
||||
"8RLR6gRjIyTn6GCugEfgk": {
|
||||
"title": "Setting Resource Requests and Limits",
|
||||
"description": "Resource requests and limits in Kubernetes specify the minimum and maximum amount of CPU and memory a container requires to run. Resource requests are used for scheduling containers on nodes with sufficient resources, while limits enforce resource quotas and prevent containers from consuming too much. These settings can be configured at the pod or container level using the resources field in YAML. It's important to set resource requests and limits correctly to ensure optimal resource utilization in your Kubernetes cluster.\n\nLearn more from the following resources:",
|
||||
"description": "Resource requests and limits in Kubernetes specify the minimum and maximum amount of CPU and memory a container requires to run. Resource requests are used for scheduling containers on nodes with sufficient resources, while limits enforce resource quotas and prevent containers from consuming too much. These settings can be configured at the pod or container level using the resources field in YAML. It's important to set resource requests and limits correctly to ensure optimal resource utilization in your Kubernetes cluster.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Requests and limits - Documentation",
|
||||
@@ -601,7 +601,7 @@
|
||||
},
|
||||
"OHz4QMmA3lqL_C7aWL8Ga": {
|
||||
"title": "Assigning Quotas to Namespaces",
|
||||
"description": "Assigning quotas to namespaces is a way to limit resource usage for specific groups of resources in Kubernetes. Quotas can be set for CPU, memory, and other resources, as well as for the number of objects in a namespace. This can help ensure fair resource distribution across different teams or projects within a cluster. Quotas can be applied to individual namespaces or across the entire cluster. Kubernetes allows for both hard quotas, which enforce strict resource limits, and soft quotas, which allow for overages up to a certain point. Quotas can be managed using the Kubernetes API or through YAML configuration files.\n\nLearn more from the following resources:",
|
||||
"description": "Assigning quotas to namespaces is a way to limit resource usage for specific groups of resources in Kubernetes. Quotas can be set for CPU, memory, and other resources, as well as for the number of objects in a namespace. This can help ensure fair resource distribution across different teams or projects within a cluster. Quotas can be applied to individual namespaces or across the entire cluster. Kubernetes allows for both hard quotas, which enforce strict resource limits, and soft quotas, which allow for overages up to a certain point. Quotas can be managed using the Kubernetes API or through YAML configuration files.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Resource Quotas - Documentation",
|
||||
@@ -622,7 +622,7 @@
|
||||
},
|
||||
"PP4ld_vvjpY3QltBBsXKD": {
|
||||
"title": "Monitoring & Optimizing Resource Usage",
|
||||
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nLearn more from the following resources:",
|
||||
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Overview of Kubernetes",
|
||||
@@ -643,7 +643,7 @@
|
||||
},
|
||||
"SG3wtV2rt9nmLEkgrp_zP": {
|
||||
"title": "Security",
|
||||
"description": "Kubernetes security scanners help identify vulnerabilities and potential security threats in container images before deployment. Popular options include Aqua Security, Twistlock, Sysdig Secure, Trivy, Anchore Engine, and OpenSCAP. These scanners offer a variety of features such as vulnerability scanning, compliance checks, and runtime protection for Kubernetes environments. By integrating these scanners into their pipelines, organizations can ensure the security and integrity of their Kubernetes deployments and minimize the risk of security breaches and data loss.\n\nLearn more from the following resources:",
|
||||
"description": "Kubernetes security scanners help identify vulnerabilities and potential security threats in container images before deployment. Popular options include Aqua Security, Twistlock, Sysdig Secure, Trivy, Anchore Engine, and OpenSCAP. These scanners offer a variety of features such as vulnerability scanning, compliance checks, and runtime protection for Kubernetes environments. By integrating these scanners into their pipelines, organizations can ensure the security and integrity of their Kubernetes deployments and minimize the risk of security breaches and data loss.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "8+ open-source Kubernetes vulnerability scanners",
|
||||
@@ -674,7 +674,7 @@
|
||||
},
|
||||
"jOq0WwLrq8tlmOgo64QDc": {
|
||||
"title": "Role Based Access Control (RBAC)",
|
||||
"description": "Role-Based Access Control (RBAC) is a method of controlling access to Kubernetes resources based on the roles assigned to users or groups. RBAC involves creating roles and binding them to users or groups to control access to Kubernetes resources. Roles are defined as a set of rules that determine what actions can be performed on specific resources. By assigning roles to users or groups, access to Kubernetes resources can be restricted or granted based on the permissions defined in the role. RBAC helps ensure the security and integrity of Kubernetes clusters by limiting access to authorized users and groups.\n\nLearn more from the following resources:",
|
||||
"description": "Role-Based Access Control (RBAC) is a method of controlling access to Kubernetes resources based on the roles assigned to users or groups. RBAC involves creating roles and binding them to users or groups to control access to Kubernetes resources. Roles are defined as a set of rules that determine what actions can be performed on specific resources. By assigning roles to users or groups, access to Kubernetes resources can be restricted or granted based on the permissions defined in the role. RBAC helps ensure the security and integrity of Kubernetes clusters by limiting access to authorized users and groups.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Role Based Access Control Good Practices",
|
||||
@@ -715,7 +715,7 @@
|
||||
},
|
||||
"s0gHg8CqwrSylpSPu8arA": {
|
||||
"title": "Network Security",
|
||||
"description": "Network security in Kubernetes involves securing network communication between different components within the cluster and with external networks. This can be achieved through various mechanisms such as Network Policies, Encryption, Authentication, Authorization, and Firewall rules. Network Policies provide fine-grained control over network traffic, while encryption ensures secure communication between pods, nodes, and external systems. Authentication and Authorization mechanisms prevent unauthorized access and provide secure communication between various components. Firewall rules help to protect the cluster against external attacks by limiting access to specific ports and protocols. Overall, network security in Kubernetes is critical to maintaining the confidentiality, integrity, and availability of the cluster.\n\nLearn more from the following links:",
|
||||
"description": "Network security in Kubernetes involves securing network communication between different components within the cluster and with external networks. This can be achieved through various mechanisms such as Network Policies, Encryption, Authentication, Authorization, and Firewall rules. Network Policies provide fine-grained control over network traffic, while encryption ensures secure communication between pods, nodes, and external systems. Authentication and Authorization mechanisms prevent unauthorized access and provide secure communication between various components. Firewall rules help to protect the cluster against external attacks by limiting access to specific ports and protocols. Overall, network security in Kubernetes is critical to maintaining the confidentiality, integrity, and availability of the cluster.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Network Policies - Documentation",
|
||||
@@ -751,7 +751,7 @@
|
||||
},
|
||||
"Nja7IFWcFTLsPcqbvRNm9": {
|
||||
"title": "Container and Pod Security",
|
||||
"description": "Kubernetes (k8s) can secure containers and pods through measures like using trusted container images, limiting container privileges, enforcing pod-level security policies, implementing network security measures, using access controls with RBAC, and managing sensitive information with Secrets and ConfigMaps. These practices help organizations reduce the risk of security incidents in their k8s clusters.\n\nLearn more from the following links:",
|
||||
"description": "Kubernetes (k8s) can secure containers and pods through measures like using trusted container images, limiting container privileges, enforcing pod-level security policies, implementing network security measures, using access controls with RBAC, and managing sensitive information with Secrets and ConfigMaps. These practices help organizations reduce the risk of security incidents in their k8s clusters.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Configure a Security Context for a Pod or Container",
|
||||
@@ -782,7 +782,7 @@
|
||||
},
|
||||
"i7qxaFhFHPfe3fGEgsbcE": {
|
||||
"title": "Container and Pod Security",
|
||||
"description": "Kubernetes (k8s) can secure containers and pods through measures like using trusted container images, limiting container privileges, enforcing pod-level security policies, implementing network security measures, using access controls with RBAC, and managing sensitive information with Secrets and ConfigMaps. These practices help organizations reduce the risk of security incidents in their k8s clusters.\n\nLearn more from the following links:",
|
||||
"description": "Kubernetes (k8s) can secure containers and pods through measures like using trusted container images, limiting container privileges, enforcing pod-level security policies, implementing network security measures, using access controls with RBAC, and managing sensitive information with Secrets and ConfigMaps. These practices help organizations reduce the risk of security incidents in their k8s clusters.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Configure a Security Context for a Pod or Container",
|
||||
@@ -813,7 +813,7 @@
|
||||
},
|
||||
"AgsQnQjyTLUFhFpRdcE13": {
|
||||
"title": "Monitoring and Logging",
|
||||
"description": "Observability in Kubernetes (k8s) refers to the ability to gain insight into the inner workings of your cluster, applications, and services running on top of it. An observability engine in k8s is a tool or platform that facilitates the collection, analysis, and visualization of data from various sources in your k8s environment. Some popular observability engines in k8s include Prometheus, Grafana, Jaeger, and Elastic Stack (ELK).\n\nLearn more from the following resources:",
|
||||
"description": "Observability in Kubernetes (k8s) refers to the ability to gain insight into the inner workings of your cluster, applications, and services running on top of it. An observability engine in k8s is a tool or platform that facilitates the collection, analysis, and visualization of data from various sources in your k8s environment. Some popular observability engines in k8s include Prometheus, Grafana, Jaeger, and Elastic Stack (ELK).\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "K8sGPT - AI scanner for Kubernetes problems",
|
||||
@@ -844,7 +844,7 @@
|
||||
},
|
||||
"-XxQtiLDAkXs7IFM_Ddw6": {
|
||||
"title": "Logs",
|
||||
"description": "Logs are generated by containerized applications running on nodes within the cluster. You can access these logs using the kubectl logs command followed by the name of the pod. By default, this command shows the logs from the most recent container in the pod, but you can specify a specific container within the pod by adding the container name to the command. Adding the -f flag to the command allows you to follow the logs in real-time. There are also third-party logging solutions available for Kubernetes, such as the EFK and Prometheus stacks, that provide more advanced logging capabilities and scalability for large-scale applications.\n\nLearn more from the following links:",
|
||||
"description": "Logs are generated by containerized applications running on nodes within the cluster. You can access these logs using the kubectl logs command followed by the name of the pod. By default, this command shows the logs from the most recent container in the pod, but you can specify a specific container within the pod by adding the container name to the command. Adding the -f flag to the command allows you to follow the logs in real-time. There are also third-party logging solutions available for Kubernetes, such as the EFK and Prometheus stacks, that provide more advanced logging capabilities and scalability for large-scale applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "System Logs",
|
||||
@@ -860,7 +860,7 @@
|
||||
},
|
||||
"nqUBHBFUYFdYqCKZvfXBR": {
|
||||
"title": "Metrics",
|
||||
"description": "Metrics to monitor include CPU usage, memory usage, network usage, disk usage, API server metrics, pod and container metrics, and cluster-level metrics. These metrics provide insights into the performance and health of the cluster, nodes, and applications running on the cluster. Kubernetes provides tools such as Prometheus, Grafana, and Kubernetes Dashboard for collecting and analyzing these metrics. By monitoring these metrics, administrators can identify performance issues and optimize the cluster for better performance and scalability.\n\nLearn more from the following resources:",
|
||||
"description": "Metrics to monitor include CPU usage, memory usage, network usage, disk usage, API server metrics, pod and container metrics, and cluster-level metrics. These metrics provide insights into the performance and health of the cluster, nodes, and applications running on the cluster. Kubernetes provides tools such as Prometheus, Grafana, and Kubernetes Dashboard for collecting and analyzing these metrics. By monitoring these metrics, administrators can identify performance issues and optimize the cluster for better performance and scalability.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Node Metrics Data",
|
||||
@@ -876,7 +876,7 @@
|
||||
},
|
||||
"ldYTEPt_hI4PXxr3tgJi5": {
|
||||
"title": "Traces",
|
||||
"description": "Tracing in Kubernetes involves monitoring the flow of requests through different components of the system, using tools such as Jaeger or Zipkin. OpenTracing and OpenCensus provide a consistent way of capturing traces across different components and applications running on the cluster. Tracing helps identify performance bottlenecks, debug issues, and optimize the system for better performance and scalability. By monitoring traces in Kubernetes, administrators can identify issues and take corrective actions to ensure efficient system performance.\n\nLearn more from the following resources:",
|
||||
"description": "Tracing in Kubernetes involves monitoring the flow of requests through different components of the system, using tools such as Jaeger or Zipkin. OpenTracing and OpenCensus provide a consistent way of capturing traces across different components and applications running on the cluster. Tracing helps identify performance bottlenecks, debug issues, and optimize the system for better performance and scalability. By monitoring traces in Kubernetes, administrators can identify issues and take corrective actions to ensure efficient system performance.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Traces For Kubernetes System Components",
|
||||
@@ -892,7 +892,7 @@
|
||||
},
|
||||
"pDjNsK5vI9FmKZbQm0lDP": {
|
||||
"title": "Resource Health",
|
||||
"description": "Resource health monitoring in Kubernetes involves monitoring the health and availability of resources such as pods, nodes, and containers. It helps administrators identify and troubleshoot issues that may affect the system's performance and availability using tools such as Kubernetes Dashboard, Prometheus, or Grafana. Resource health monitoring also helps ensure that the system is resilient to failures and can recover quickly from any disruptions. It is an important part of managing a Kubernetes cluster and ensures the reliability, availability, and scalability of the system.\n\nLearn more from the following resources:",
|
||||
"description": "Resource health monitoring in Kubernetes involves monitoring the health and availability of resources such as pods, nodes, and containers. It helps administrators identify and troubleshoot issues that may affect the system's performance and availability using tools such as Kubernetes Dashboard, Prometheus, or Grafana. Resource health monitoring also helps ensure that the system is resilient to failures and can recover quickly from any disruptions. It is an important part of managing a Kubernetes cluster and ensures the reliability, availability, and scalability of the system.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Dashboards with Grafana and Prometheus",
|
||||
@@ -908,7 +908,7 @@
|
||||
},
|
||||
"FANswgUhUb5Iuah2fni3L": {
|
||||
"title": "Observability Engines",
|
||||
"description": "Observability in Kubernetes (k8s) refers to the ability to gain insight into the inner workings of your cluster, applications, and services running on top of it. An observability engine in k8s is a tool or platform that facilitates the collection, analysis, and visualization of data from various sources in your k8s environment. Some popular observability engines in k8s include Prometheus, Grafana, Jaeger, and Elastic Stack (ELK).\n\nLearn more from the following resources:",
|
||||
"description": "Observability in Kubernetes (k8s) refers to the ability to gain insight into the inner workings of your cluster, applications, and services running on top of it. An observability engine in k8s is a tool or platform that facilitates the collection, analysis, and visualization of data from various sources in your k8s environment. Some popular observability engines in k8s include Prometheus, Grafana, Jaeger, and Elastic Stack (ELK).\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "K8sGPT - AI scanner for Kubernetes problems",
|
||||
@@ -939,7 +939,7 @@
|
||||
},
|
||||
"03mGA5AyL7mpF6y3EMW7A": {
|
||||
"title": "Autoscaling",
|
||||
"description": "Autoscaling in Kubernetes involves adjusting the resources allocated to a deployment or set of pods based on demand. It includes Horizontal Pod Autoscaling (HPA) and Vertical Pod Autoscaling (VPA), which increase or decrease replicas or adjust resource requests and limits, respectively. Autoscaling can be used with Cluster Autoscaling to efficiently allocate resources and ensure application responsiveness. It's useful for handling variable workloads or sudden spikes in traffic.\n\nLearn more from the following resources:",
|
||||
"description": "Autoscaling in Kubernetes involves adjusting the resources allocated to a deployment or set of pods based on demand. It includes Horizontal Pod Autoscaling (HPA) and Vertical Pod Autoscaling (VPA), which increase or decrease replicas or adjust resource requests and limits, respectively. Autoscaling can be used with Cluster Autoscaling to efficiently allocate resources and ensure application responsiveness. It's useful for handling variable workloads or sudden spikes in traffic.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Autoscaling in Kubernetes",
|
||||
@@ -955,7 +955,7 @@
|
||||
},
|
||||
"044IUUCgZP4oQ9UxUG2iy": {
|
||||
"title": "Horizontal Pod Autoscaler (HPA)",
|
||||
"description": "It is a feature in Kubernetes that automatically scales the number of replicas of a pod based on the current demand for the workload it is running. The HPA controller monitors the CPU utilization or other metrics of the pod and adjusts the number of replicas of the pod to meet the specified target. This helps to ensure that the workload can handle increases in traffic and demand without overloading the resources of the cluster.\n\nLearn more from the following resources:",
|
||||
"description": "It is a feature in Kubernetes that automatically scales the number of replicas of a pod based on the current demand for the workload it is running. The HPA controller monitors the CPU utilization or other metrics of the pod and adjusts the number of replicas of the pod to meet the specified target. This helps to ensure that the workload can handle increases in traffic and demand without overloading the resources of the cluster.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Horizontal Pod Autoscaling - Documentation",
|
||||
@@ -966,7 +966,7 @@
|
||||
},
|
||||
"c1KVczGRjh9bhMpbPP6sA": {
|
||||
"title": "Vertical Pod Autoscaler (VPA)",
|
||||
"description": "Vertical Pod Autoscaler (VPA) is a Kubernetes feature that automates the process of adjusting resource limits for containers in pods. Unlike Horizontal Pod Autoscaler (HPA), which scales the number of replicas of a pod, VPA scales the resources allocated to a pod's containers. It adjusts the resource requests and limits for each container based on its actual usage.\n\nLearn more from the following resources:",
|
||||
"description": "Vertical Pod Autoscaler (VPA) is a Kubernetes feature that automates the process of adjusting resource limits for containers in pods. Unlike Horizontal Pod Autoscaler (HPA), which scales the number of replicas of a pod, VPA scales the resources allocated to a pod's containers. It adjusts the resource requests and limits for each container based on its actual usage.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "What is Kubernetes VPA?",
|
||||
@@ -982,7 +982,7 @@
|
||||
},
|
||||
"RC5MoYtG2rom-d4FW5qD2": {
|
||||
"title": "Cluster Autoscaling",
|
||||
"description": "Autoscaling in Kubernetes involves adjusting the resources allocated to a deployment or set of pods based on demand. It includes Horizontal Pod Autoscaling (HPA) and Vertical Pod Autoscaling (VPA), which increase or decrease replicas or adjust resource requests and limits, respectively. Autoscaling can be used with Cluster Autoscaling to efficiently allocate resources and ensure application responsiveness. It's useful for handling variable workloads or sudden spikes in traffic.\n\nLearn more from the following resources:",
|
||||
"description": "Autoscaling in Kubernetes involves adjusting the resources allocated to a deployment or set of pods based on demand. It includes Horizontal Pod Autoscaling (HPA) and Vertical Pod Autoscaling (VPA), which increase or decrease replicas or adjust resource requests and limits, respectively. Autoscaling can be used with Cluster Autoscaling to efficiently allocate resources and ensure application responsiveness. It's useful for handling variable workloads or sudden spikes in traffic.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Autoscaling in Kubernetes",
|
||||
@@ -998,7 +998,7 @@
|
||||
},
|
||||
"xZDXM_8qb4VL15tNGG0ws": {
|
||||
"title": "Scheduling",
|
||||
"description": "Scheduling in Kubernetes refers to the process of assigning workloads to specific nodes in a cluster. The Kubernetes scheduler makes scheduling decisions based on factors such as resource availability, node suitability, and workload priorities. It balances workloads across the cluster to ensure efficient resource utilization and avoid overloading nodes. Scheduling takes into account factors such as geographic location, hardware requirements, and application-specific needs.\n\nLearn more from the following links:",
|
||||
"description": "Scheduling in Kubernetes refers to the process of assigning workloads to specific nodes in a cluster. The Kubernetes scheduler makes scheduling decisions based on factors such as resource availability, node suitability, and workload priorities. It balances workloads across the cluster to ensure efficient resource utilization and avoid overloading nodes. Scheduling takes into account factors such as geographic location, hardware requirements, and application-specific needs.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Kubernetes Scheduler",
|
||||
@@ -1014,7 +1014,7 @@
|
||||
},
|
||||
"70lTSIVh0AD6M8fMMuWzY": {
|
||||
"title": "Basics",
|
||||
"description": "Scheduling involves assigning pods to worker nodes based on criteria such as resource availability, labels, affinity/anti-affinity rules, taints, and tolerations. Pods are the smallest deployable units in k8s, consisting of one or more containers that share the same network namespace. The scheduler is responsible for assigning pods to nodes, while labels are used for matching. Affinity and anti-affinity rules dictate how pods are scheduled based on their relationships with other pods or nodes. QoS is used to prioritize pod scheduling based on their resource requirements.\n\nLearn more from the following resources:",
|
||||
"description": "Scheduling involves assigning pods to worker nodes based on criteria such as resource availability, labels, affinity/anti-affinity rules, taints, and tolerations. Pods are the smallest deployable units in k8s, consisting of one or more containers that share the same network namespace. The scheduler is responsible for assigning pods to nodes, while labels are used for matching. Affinity and anti-affinity rules dictate how pods are scheduled based on their relationships with other pods or nodes. QoS is used to prioritize pod scheduling based on their resource requirements.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Kubernetes Scheduler",
|
||||
@@ -1030,7 +1030,7 @@
|
||||
},
|
||||
"zXUsHAI1HFhcY2BFAcypv": {
|
||||
"title": "Taints and Tolerations",
|
||||
"description": "Taints and tolerations are used in Kubernetes to restrict or allow pods to be scheduled on certain nodes based on labels. A taint is a label that is applied to a node to indicate certain limitations or requirements. A toleration is a label applied to a pod to indicate that it can tolerate certain taints. When a node has a taint, only pods with the corresponding tolerations can be scheduled on that node. This feature is useful for various purposes, such as ensuring separation of critical and non-critical workloads, reserving nodes for certain tasks, and protecting nodes from overloading.\n\nLearn more from the following resources:",
|
||||
"description": "Taints and tolerations are used in Kubernetes to restrict or allow pods to be scheduled on certain nodes based on labels. A taint is a label that is applied to a node to indicate certain limitations or requirements. A toleration is a label applied to a pod to indicate that it can tolerate certain taints. When a node has a taint, only pods with the corresponding tolerations can be scheduled on that node. This feature is useful for various purposes, such as ensuring separation of critical and non-critical workloads, reserving nodes for certain tasks, and protecting nodes from overloading.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Taints and Tolerations",
|
||||
@@ -1046,7 +1046,7 @@
|
||||
},
|
||||
"CL0hKTcml40InmyVUXpY2": {
|
||||
"title": "Topology Spread Constraints",
|
||||
"description": "Topology spread constraints ensure even distribution of pods across a cluster's topology. Constraints define rules for the number of pods of a certain type that can run on a given level, such as nodes, zones, or racks. These constraints can be customized to fit specific needs, such as ensuring that critical workloads are spread across multiple zones. They help prevent single points of failure and improve application resilience by preventing resource overloading and promoting balanced distribution of workloads. Constraints can be added using the Kubernetes API or command line interface.\n\nLearn more from the following resources:",
|
||||
"description": "Topology spread constraints ensure even distribution of pods across a cluster's topology. Constraints define rules for the number of pods of a certain type that can run on a given level, such as nodes, zones, or racks. These constraints can be customized to fit specific needs, such as ensuring that critical workloads are spread across multiple zones. They help prevent single points of failure and improve application resilience by preventing resource overloading and promoting balanced distribution of workloads. Constraints can be added using the Kubernetes API or command line interface.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Topology Spread Constraints",
|
||||
@@ -1062,7 +1062,7 @@
|
||||
},
|
||||
"_Gva1eGcYqpmZNPyV03lt": {
|
||||
"title": "Pod Priorities",
|
||||
"description": "Pod priorities in Kubernetes determine the order in which pods are scheduled on nodes when there are competing demands for resources. Each pod is assigned a numeric priority value, with higher values indicating higher priority. The scheduler maximizes the total priority of scheduled pods while also considering node suitability, taints and tolerations, and affinity and anti-affinity rules. Priorities can be set manually or automatically based on business logic or application requirements. Priorities help ensure that critical workloads receive necessary resources and are scheduled first, while lower priority workloads are scheduled when resources become available.\n\nLearn more from the following resources:",
|
||||
"description": "Pod priorities in Kubernetes determine the order in which pods are scheduled on nodes when there are competing demands for resources. Each pod is assigned a numeric priority value, with higher values indicating higher priority. The scheduler maximizes the total priority of scheduled pods while also considering node suitability, taints and tolerations, and affinity and anti-affinity rules. Priorities can be set manually or automatically based on business logic or application requirements. Priorities help ensure that critical workloads receive necessary resources and are scheduled first, while lower priority workloads are scheduled when resources become available.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Pod priority - Documentation",
|
||||
@@ -1078,7 +1078,7 @@
|
||||
},
|
||||
"TRKzlDW2PQN9bWTyz3NWL": {
|
||||
"title": "Evictions",
|
||||
"description": "Evictions terminate or delete running pods from a node due to reasons like resource constraints or pod failures. They can be initiated by the system or administrators manually through the API. Evictions can be graceful, allowing pods to clean up resources, or forceful, immediately terminating them. Kubernetes provides preemption and pod disruption budgets to handle evictions effectively and minimize service disruptions. Evictions are necessary to manage and maintain Kubernetes clusters, and Kubernetes provides tools to handle them.\n\nLearn more from the following links:",
|
||||
"description": "Evictions terminate or delete running pods from a node due to reasons like resource constraints or pod failures. They can be initiated by the system or administrators manually through the API. Evictions can be graceful, allowing pods to clean up resources, or forceful, immediately terminating them. Kubernetes provides preemption and pod disruption budgets to handle evictions effectively and minimize service disruptions. Evictions are necessary to manage and maintain Kubernetes clusters, and Kubernetes provides tools to handle them.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Node-pressure Eviction",
|
||||
@@ -1094,7 +1094,7 @@
|
||||
},
|
||||
"URnYf9jMprFz-o26fbU2P": {
|
||||
"title": "Storage and Volumes",
|
||||
"description": "CSI (Container Storage Interface) drivers in Kubernetes provide a standard way for storage providers to integrate with Kubernetes and offer persistent storage for containerized applications. They operate as separate containerized processes and communicate with Kubernetes through a well-defined API. CSI drivers allow Kubernetes to access a wide range of storage systems and provide advanced features like snapshotting and cloning.\n\nLearn more from the following links:",
|
||||
"description": "CSI (Container Storage Interface) drivers in Kubernetes provide a standard way for storage providers to integrate with Kubernetes and offer persistent storage for containerized applications. They operate as separate containerized processes and communicate with Kubernetes through a well-defined API. CSI drivers allow Kubernetes to access a wide range of storage systems and provide advanced features like snapshotting and cloning.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Container Storage Interface (CSI) for Kubernetes",
|
||||
@@ -1110,7 +1110,7 @@
|
||||
},
|
||||
"55RV9psPCmcg8G_P_zQo9": {
|
||||
"title": "CSI Drivers",
|
||||
"description": "CSI (Container Storage Interface) drivers in Kubernetes provide a standard way for storage providers to integrate with Kubernetes and offer persistent storage for containerized applications. They operate as separate containerized processes and communicate with Kubernetes through a well-defined API. CSI drivers allow Kubernetes to access a wide range of storage systems and provide advanced features like snapshotting and cloning.\n\nLearn more from the following links:",
|
||||
"description": "CSI (Container Storage Interface) drivers in Kubernetes provide a standard way for storage providers to integrate with Kubernetes and offer persistent storage for containerized applications. They operate as separate containerized processes and communicate with Kubernetes through a well-defined API. CSI drivers allow Kubernetes to access a wide range of storage systems and provide advanced features like snapshotting and cloning.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Container Storage Interface (CSI) for Kubernetes",
|
||||
@@ -1126,7 +1126,7 @@
|
||||
},
|
||||
"LJUJ1NIUsajb1AUdvJjqW": {
|
||||
"title": "Stateful Applications",
|
||||
"description": "In Kubernetes, storage is a key component for stateful applications, as these applications require persistent data storage that is available across multiple replicas of the application. Kubernetes provides several options for storage, including volumes, persistent volumes, and storage classes.\n\nVolumes are the basic building blocks of storage in Kubernetes. A volume is a directory that is accessible to the container running the application, and it can be backed by different types of storage, such as a host directory, a cloud provider disk, or a network storage system. Volumes are created and managed by Kubernetes, and they can be mounted into containers as part of a pod definition.\n\nLearn more from the following resources:",
|
||||
"description": "In Kubernetes, storage is a key component for stateful applications, as these applications require persistent data storage that is available across multiple replicas of the application. Kubernetes provides several options for storage, including volumes, persistent volumes, and storage classes.\n\nVolumes are the basic building blocks of storage in Kubernetes. A volume is a directory that is accessible to the container running the application, and it can be backed by different types of storage, such as a host directory, a cloud provider disk, or a network storage system. Volumes are created and managed by Kubernetes, and they can be mounted into containers as part of a pod definition.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Stateful Applications",
|
||||
@@ -1142,7 +1142,7 @@
|
||||
},
|
||||
"0l0xpsabglvs_t6oAP-XG": {
|
||||
"title": "Deployment Patterns",
|
||||
"description": "It is a deployment strategy used in Kubernetes for deploying new versions of an application by running two identical production environments, one with the current version (blue) and the other with the new version (green). After the green environment is fully tested, traffic is routed from the blue environment to the green environment, providing a seamless transition for users and avoiding any downtime or disruption. In Kubernetes, Blue-Green Deployments can be implemented using a variety of tools and techniques, including deployment strategies, traffic routing, and load balancing.\n\nLearn more from the following resources:",
|
||||
"description": "It is a deployment strategy used in Kubernetes for deploying new versions of an application by running two identical production environments, one with the current version (blue) and the other with the new version (green). After the green environment is fully tested, traffic is routed from the blue environment to the green environment, providing a seamless transition for users and avoiding any downtime or disruption. In Kubernetes, Blue-Green Deployments can be implemented using a variety of tools and techniques, including deployment strategies, traffic routing, and load balancing.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Create a Kubernetes Blue Green Deployment",
|
||||
@@ -1158,28 +1158,23 @@
|
||||
},
|
||||
"Pymc9H-lRHVPy7M9eSaPD": {
|
||||
"title": "CI / CD Integration",
|
||||
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nLearn more from the following resources:",
|
||||
"description": "In CI/CD pattern, the build, test, and deployment of applications to Kubernetes are fully automated. The CI pipeline creates the container image, runs tests, and pushes it to a registry. The CD pipeline then updates Kubernetes manifests or Helm charts and applies them to the cluster using tools like Argo CD, Flux, or kubectl. This makes deployments consistent, repeatable, and fast.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Overview of Kubernetes",
|
||||
"url": "https://kubernetes.io/docs/concepts/overview/",
|
||||
"title": "Kubernetes CI/CD Pipelines – 8 Best Practices and Tools",
|
||||
"url": "https://spacelift.io/blog/kubernetes-ci-cd",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Kubernetes Explained in 100 Seconds",
|
||||
"url": "https://www.youtube.com/watch?v=PziYflu8cB8",
|
||||
"type": "video"
|
||||
},
|
||||
{
|
||||
"title": "Kubernetes Tutorial for Beginners",
|
||||
"url": "https://www.youtube.com/watch?v=X48VuDVv0do&t=1s",
|
||||
"type": "video"
|
||||
"title": "8 Kubernetes CI/CD tools every developer should know",
|
||||
"url": "https://octopus.com/devops/kubernetes-deployments/kubernetes-ci-cd-tools-for-developers/",
|
||||
"type": "article"
|
||||
}
|
||||
]
|
||||
},
|
||||
"dATdEyNWlpDNKjedCXLyb": {
|
||||
"title": "GitOps",
|
||||
"description": "GitOps is a set of practices for managing infrastructure and applications using Git repositories as the source of truth for declarative configuration. In Kubernetes, GitOps involves using Git as the single source of truth for both the desired and actual state of the system, automating deployment and management tasks, and often using it in conjunction with Continuous Delivery (CD) practices. The result is a more consistent, reliable, and automated approach to managing infrastructure and applications.\n\nLearn more from the following resources:",
|
||||
"description": "GitOps is a set of practices for managing infrastructure and applications using Git repositories as the source of truth for declarative configuration. In Kubernetes, GitOps involves using Git as the single source of truth for both the desired and actual state of the system, automating deployment and management tasks, and often using it in conjunction with Continuous Delivery (CD) practices. The result is a more consistent, reliable, and automated approach to managing infrastructure and applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Using GitOps with a Kubernetes cluster",
|
||||
@@ -1200,7 +1195,7 @@
|
||||
},
|
||||
"FAEFOhLdp7xrmctHFxiOM": {
|
||||
"title": "Helm Charts",
|
||||
"description": "Helm is a Kubernetes package manager that simplifies the deployment and management of complex applications through the use of reusable and versioned Helm charts. These charts are composed of YAML files that describe related sets of Kubernetes resources and can be customized using values files and templating with Go templates. Helm charts can also have dependencies on other charts and be stored in a centralized repository like Helm Hub for easy sharing and access. By utilizing Helm, teams can streamline application management and reduce duplication of effort.\n\nLearn more from the following resources:",
|
||||
"description": "Helm is a Kubernetes package manager that simplifies the deployment and management of complex applications through the use of reusable and versioned Helm charts. These charts are composed of YAML files that describe related sets of Kubernetes resources and can be customized using values files and templating with Go templates. Helm charts can also have dependencies on other charts and be stored in a centralized repository like Helm Hub for easy sharing and access. By utilizing Helm, teams can streamline application management and reduce duplication of effort.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Helm Docs",
|
||||
@@ -1221,7 +1216,7 @@
|
||||
},
|
||||
"88IGeC3dAopHLGtLozxdY": {
|
||||
"title": "Canary Deployments",
|
||||
"description": "Canary Deployments is a technique used in Kubernetes to gradually roll out new versions of an application by directing a small percentage of users or traffic to the new version while the majority continue using the old version. This approach allows for testing the new version under real-world conditions before fully committing to the update. In Kubernetes, canary deployments can be implemented using tools such as Istio, Linkerd, or Nginx, or by using built-in features like deployment strategies and traffic routing.\n\nLearn more from the following resources:",
|
||||
"description": "Canary Deployments is a technique used in Kubernetes to gradually roll out new versions of an application by directing a small percentage of users or traffic to the new version while the majority continue using the old version. This approach allows for testing the new version under real-world conditions before fully committing to the update. In Kubernetes, canary deployments can be implemented using tools such as Istio, Linkerd, or Nginx, or by using built-in features like deployment strategies and traffic routing.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Canary deployment for K8s deployments",
|
||||
@@ -1237,7 +1232,7 @@
|
||||
},
|
||||
"yMSXdwDO36CLtp2TBC7aB": {
|
||||
"title": "Rolling Updates / Rollbacks",
|
||||
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nLearn more from the following resources:",
|
||||
"description": "Kubernetes, also known as K8s, is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It allows developers to focus on writing code while Kubernetes handles the underlying infrastructure. Kubernetes uses declarative configuration files to specify the desired state of an application, and can automatically scale applications based on demand, handle failovers, and manage networking and storage. It is widely used in cloud-native architectures that rely on microservices and containers for production deployments.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Overview of Kubernetes",
|
||||
@@ -1284,7 +1279,7 @@
|
||||
},
|
||||
"L9rVPEEXFwisQOwT_LQ4v": {
|
||||
"title": "Creating Custom Controllers",
|
||||
"description": "Custom controllers in Kubernetes automate the management of custom resources that are not natively supported by Kubernetes. They are implemented as Kubernetes controllers that watch custom resources and react to changes in their state. Custom resources are created by extending the Kubernetes API with new resource types specific to an organization's needs. Custom controllers can be developed using various programming languages and frameworks, such as the Operator Framework. The Operator Framework provides tools and best practices for developing, testing, and deploying custom controllers.\n\nLearn more from the following resources:",
|
||||
"description": "Custom controllers in Kubernetes automate the management of custom resources that are not natively supported by Kubernetes. They are implemented as Kubernetes controllers that watch custom resources and react to changes in their state. Custom resources are created by extending the Kubernetes API with new resource types specific to an organization's needs. Custom controllers can be developed using various programming languages and frameworks, such as the Operator Framework. The Operator Framework provides tools and best practices for developing, testing, and deploying custom controllers.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Custom Controllers",
|
||||
@@ -1300,7 +1295,7 @@
|
||||
},
|
||||
"1-Nb8rCMJEZrYm20sEcRJ": {
|
||||
"title": "Custom Schedulers and Extenders",
|
||||
"description": "Custom Scheduler Extenders in Kubernetes enhance the scheduling capabilities of Kubernetes by allowing users to define their own scheduling logic based on custom metrics and constraints. They are implemented as custom Kubernetes controllers that run alongside the Kubernetes scheduler. Custom Scheduler Extenders can be used to implement scheduling policies specific to an organization's needs and can be developed using various programming languages. They intercept scheduling requests, add custom scheduling logic based on user-defined rules, and pass requests back to the Kubernetes scheduler.\n\nLearn more from the following resources:",
|
||||
"description": "Custom Scheduler Extenders in Kubernetes enhance the scheduling capabilities of Kubernetes by allowing users to define their own scheduling logic based on custom metrics and constraints. They are implemented as custom Kubernetes controllers that run alongside the Kubernetes scheduler. Custom Scheduler Extenders can be used to implement scheduling policies specific to an organization's needs and can be developed using various programming languages. They intercept scheduling requests, add custom scheduling logic based on user-defined rules, and pass requests back to the Kubernetes scheduler.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Create a custom Kubernetes scheduler",
|
||||
@@ -1316,7 +1311,7 @@
|
||||
},
|
||||
"9P7l-RBOkUxs3Z_UpKQO-": {
|
||||
"title": "Custom Resource Definitions (CRDs)",
|
||||
"description": "Custom Resource Definitions (CRDs) in Kubernetes extend the Kubernetes API by defining new resource types specific to an organization's needs. CRDs create custom resources that can manage a wide variety of resources, such as applications, databases, storage, and networking. They are defined using YAML or JSON manifests and can be created and managed using the Kubernetes API server. Once created, custom resources can be managed using Kubernetes controllers and integrated with other Kubernetes components. CRDs are a powerful tool for streamlining operations in Kubernetes and enabling organizations to manage resources in a more efficient and customized way.\n\nLearn more from the following resources:",
|
||||
"description": "Custom Resource Definitions (CRDs) in Kubernetes extend the Kubernetes API by defining new resource types specific to an organization's needs. CRDs create custom resources that can manage a wide variety of resources, such as applications, databases, storage, and networking. They are defined using YAML or JSON manifests and can be created and managed using the Kubernetes API server. Once created, custom resources can be managed using Kubernetes controllers and integrated with other Kubernetes components. CRDs are a powerful tool for streamlining operations in Kubernetes and enabling organizations to manage resources in a more efficient and customized way.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Custom Resources - Documentation",
|
||||
@@ -1332,7 +1327,7 @@
|
||||
},
|
||||
"UeJcKv3jhenjNzHM-0R86": {
|
||||
"title": "Kubernetes Extensions and APIs",
|
||||
"description": "Kubernetes (k8s) extensions and APIs are used to customize the behavior of Kubernetes and add new capabilities to the system. Kubernetes extensions, including Custom Resource Definitions (CRDs), Custom Controllers, Custom Scheduler Extenders, and Custom Metrics APIs, enhance Kubernetes functionality. Kubernetes APIs are used to manage resources in a Kubernetes cluster and interact with the system. Kubernetes extensions and APIs together provide a powerful toolkit for customizing and extending Kubernetes, enabling users to build custom components and APIs that streamline operations in Kubernetes.\n\nLearn more from the following resources:",
|
||||
"description": "Kubernetes (k8s) extensions and APIs are used to customize the behavior of Kubernetes and add new capabilities to the system. Kubernetes extensions, including Custom Resource Definitions (CRDs), Custom Controllers, Custom Scheduler Extenders, and Custom Metrics APIs, enhance Kubernetes functionality. Kubernetes APIs are used to manage resources in a Kubernetes cluster and interact with the system. Kubernetes extensions and APIs together provide a powerful toolkit for customizing and extending Kubernetes, enabling users to build custom components and APIs that streamline operations in Kubernetes.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Extensions - Documentation",
|
||||
@@ -1353,7 +1348,7 @@
|
||||
},
|
||||
"ZrVhYTw63aVVIFAEJDG5r": {
|
||||
"title": "Should you manage your own Cluster?",
|
||||
"description": "To create your own Kubernetes cluster, you need to choose a cloud provider or set up your own infrastructure, install Kubernetes on your infrastructure, configure your cluster by setting up networking, storage, and security, deploy your applications using Kubernetes manifests, and monitor and manage your cluster using tools like Kubernetes Dashboard, kubectl, and Prometheus. This process can be complex and time-consuming, but it gives you complete control over your infrastructure and allows for customization to meet your specific needs.\n\nLearn more from the following resources:",
|
||||
"description": "To create your own Kubernetes cluster, you need to choose a cloud provider or set up your own infrastructure, install Kubernetes on your infrastructure, configure your cluster by setting up networking, storage, and security, deploy your applications using Kubernetes manifests, and monitor and manage your cluster using tools like Kubernetes Dashboard, kubectl, and Prometheus. This process can be complex and time-consuming, but it gives you complete control over your infrastructure and allows for customization to meet your specific needs.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Creating a cluster with kubeadm",
|
||||
@@ -1369,7 +1364,7 @@
|
||||
},
|
||||
"M-iTb_7EWZIJ3JpdViICx": {
|
||||
"title": "Installing the Control Plane",
|
||||
"description": "The control plane's components make global decisions about the cluster (for example, scheduling), as well as detecting and responding to cluster events (for example, starting up a new pod when a deployment's replicas field is unsatisfied). Control plane components can be run on any machine in the cluster. However, for simplicity, set up scripts typically start all control plane components on the same machine, and do not run user containers on this machine.\n\nLearn more from the following resources:",
|
||||
"description": "The control plane's components make global decisions about the cluster (for example, scheduling), as well as detecting and responding to cluster events (for example, starting up a new pod when a deployment's replicas field is unsatisfied). Control plane components can be run on any machine in the cluster. However, for simplicity, set up scripts typically start all control plane components on the same machine, and do not run user containers on this machine.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Initializing your control-plane node - Documentation",
|
||||
@@ -1385,7 +1380,7 @@
|
||||
},
|
||||
"2cQKTxln3dIk5IjX2UZdM": {
|
||||
"title": "Adding and Managing Worker Nodes",
|
||||
"description": "Kubernetes runs your workload by placing containers into Pods to run on Nodes. A node may be a virtual or physical machine, depending on the cluster. Each node is managed by the control plane and contains the services necessary to run Pods.\n\nLearn more from the following resources:",
|
||||
"description": "Kubernetes runs your workload by placing containers into Pods to run on Nodes. A node may be a virtual or physical machine, depending on the cluster. Each node is managed by the control plane and contains the services necessary to run Pods.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Node Management",
|
||||
@@ -1401,7 +1396,7 @@
|
||||
},
|
||||
"auZgEQ6FC3nUjuyx0zANh": {
|
||||
"title": "Multi-Cluster Management",
|
||||
"description": "Multi-Cluster Management in Kubernetes (k8s) refers to the ability to manage multiple Kubernetes clusters using a single control plane. This approach allows administrators to centrally manage and orchestrate resources across multiple clusters, regardless of where they are located, without having to switch between multiple management consoles or tools.\n\nLearn more from the following resources:",
|
||||
"description": "Multi-Cluster Management in Kubernetes (k8s) refers to the ability to manage multiple Kubernetes clusters using a single control plane. This approach allows administrators to centrally manage and orchestrate resources across multiple clusters, regardless of where they are located, without having to switch between multiple management consoles or tools.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Configure Access to Multiple Clusters - Documentation",
|
||||
@@ -1417,7 +1412,7 @@
|
||||
},
|
||||
"9-oaTlzKmcxTfaRycz1w3": {
|
||||
"title": "Blue-Green Deployments",
|
||||
"description": "It is a deployment strategy used in Kubernetes for deploying new versions of an application by running two identical production environments, one with the current version (blue) and the other with the new version (green). After the green environment is fully tested, traffic is routed from the blue environment to the green environment, providing a seamless transition for users and avoiding any downtime or disruption. In Kubernetes, Blue-Green Deployments can be implemented using a variety of tools and techniques, including deployment strategies, traffic routing, and load balancing.\n\nLearn more from the following resources:",
|
||||
"description": "It is a deployment strategy used in Kubernetes for deploying new versions of an application by running two identical production environments, one with the current version (blue) and the other with the new version (green). After the green environment is fully tested, traffic is routed from the blue environment to the green environment, providing a seamless transition for users and avoiding any downtime or disruption. In Kubernetes, Blue-Green Deployments can be implemented using a variety of tools and techniques, including deployment strategies, traffic routing, and load balancing.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Create a Kubernetes Blue Green Deployment",
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
},
|
||||
"qLeEEwBvlGt1fP5Qcreah": {
|
||||
"title": "Basic Commands",
|
||||
"description": "Linux Navigation Basics is about using simple commands to move around and manage files on your computer. For example, `cd` lets you go into different folders, `ls` shows you what files and folders are inside, and `pwd` tells you where you are currently. These commands help you easily find and organize your files.\n\nLearn more from the following resources:",
|
||||
"description": "Linux Navigation Basics is about using simple commands to move around and manage files on your computer. For example, `cd` lets you go into different folders, `ls` shows you what files and folders are inside, and `pwd` tells you where you are currently. These commands help you easily find and organize your files.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Linux Filesystem Navigation Basics",
|
||||
@@ -53,7 +53,7 @@
|
||||
},
|
||||
"q-Ky0ietZGpyUcBQfh-BJ": {
|
||||
"title": "Moving Files / Directories",
|
||||
"description": "The `mv` command moves files and directories between locations and can also rename them. Use syntax `mv [options] source destination` where source is the file/directory to move and destination is the target location. This versatile command is essential for file organization and management in Linux systems.\n\nLearn more from the following resources:",
|
||||
"description": "In Linux, moving files is an essential task that you will need to perform quite frequently. The `mv` command, short for move, is used to move files and directories from one location to another. The `mv` command can also be used for renaming files in Linux.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "mv command",
|
||||
@@ -74,7 +74,7 @@
|
||||
},
|
||||
"9oo2fxTM2_p0VYPBroqxa": {
|
||||
"title": "Creating & Deleting Files / Dirs",
|
||||
"description": "Linux file operations include creating files with `touch` (empty files) or `cat > filename` (with content) and deleting with `rm filename`. Use `rm -i` for confirmation prompts and `rmdir` for empty directories. File deletion is permanent - no recycle bin. Essential commands for basic file management and system administration.\n\nVisit the following resources to learn more:",
|
||||
"description": "Linux file creation uses `touch` for empty files, `echo \"text\" > filename` for text files, or `cat > filename` for interactive input. Commands like `mkdir` create directories. File creation is immediate and permanent. Essential for organizing data, scripts, and configuration files in Linux systems.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "What is the Difference Between Cat and Touch Command",
|
||||
@@ -97,6 +97,11 @@
|
||||
"title": "Directory Hierarchy Overview",
|
||||
"description": "In Linux, understanding the directory hierarchy is crucial for efficient navigation and file management. A Linux system's directory structure, also known as the Filesystem Hierarchy Standard (FHS), is a defined tree structure that helps to prevent files from being scattered all over the system and instead organise them in a logical and easy-to-navigate manner.\n\n* `/`: Root directory, the top level of the file system.\n* `/home`: User home directories.\n* `/bin`: Essential binary executables.\n* `/sbin`: System administration binaries.\n* `/etc`: Configuration files.\n* `/var`: Variable data (logs, spool files).\n* `/usr`: User programs and data.\n* `/lib`: Shared libraries.\n* `/tmp`: Temporary files.\n* `/opt`: Third-party applications.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Linux Directory Structure Explained for Beginners",
|
||||
"url": "https://linuxhandbook.com/linux-directory-structure/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Overview of File System Hierarchy Standard (FHS)",
|
||||
"url": "https://access.redhat.com/documentation/ru-ru/red_hat_enterprise_linux/4/html/reference_guide/s1-filesystem-fhs#s3-filesystem-usr",
|
||||
@@ -132,7 +137,7 @@
|
||||
},
|
||||
"8QBMyL8D5jPovxN8jyZW9": {
|
||||
"title": "Shell and Other Basics",
|
||||
"description": "The Linux shell is a command-line interface that acts as an intermediary between users and the system kernel. Common shells include Bash, sh, and csh. Basic operations involve navigating directories, creating/deleting files, and executing commands. Shell knowledge is fundamental for Linux administration, scripting, and automation tasks.\n\nLearn more from the following resources:",
|
||||
"description": "The Linux shell is a command-line interface that acts as an intermediary between users and the system kernel. Common shells include Bash, sh, and csh. Basic operations involve navigating directories, creating/deleting files, and executing commands. Shell knowledge is fundamental for Linux administration, scripting, and automation tasks.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Learning The Shell",
|
||||
@@ -153,7 +158,7 @@
|
||||
},
|
||||
"XiZz7EFIey1XKS292GN4t": {
|
||||
"title": "Vim",
|
||||
"description": "Vim (Vi Improved) is a powerful and flexible text editor used in Unix-like systems. It builds on the original Vi editor with additional features and improvements, including multi-level undo, syntax highlighting, and an extensive set of commands for text manipulation.\n\nVim operates primarily in three modes:\n\n* Normal (for navigation and manipulation).\n* Insert (for editing text).\n* Command (for executing commands).\n\nLearn more from the following resources:",
|
||||
"description": "Vim (Vi Improved) is a powerful and flexible text editor used in Unix-like systems. It builds on the original Vi editor with additional features and improvements, including multi-level undo, syntax highlighting, and an extensive set of commands for text manipulation.\n\nVim operates primarily in three modes:\n\n* Normal (for navigation and manipulation).\n* Insert (for editing text).\n* Command (for executing commands).\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Learn Vimscript The Hard Way",
|
||||
@@ -226,7 +231,7 @@
|
||||
},
|
||||
"zwXEmpPYjA7_msS43z7I0": {
|
||||
"title": "Environment Variables",
|
||||
"description": "Environment variables are dynamic named values that can affect the behavior of running processes in a shell. They exist in every shell session. A shell session's environment includes, but is not limited to, the user's home directory, command search path, terminal type, and program preferences.\n\nEnvironment variables help to contribute to the fantastic and customizable flexibility you see in Unix systems. They provide a simple way to share configuration settings between multiple applications and processes in Linux.\n\nLearn more from the following resources:",
|
||||
"description": "Environment variables are dynamic named values that can affect the behavior of running processes in a shell. They exist in every shell session. A shell session's environment includes, but is not limited to, the user's home directory, command search path, terminal type, and program preferences.\n\nEnvironment variables help to contribute to the fantastic and customizable flexibility you see in Unix systems. They provide a simple way to share configuration settings between multiple applications and processes in Linux.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Environment Variables in Linux",
|
||||
@@ -294,7 +299,7 @@
|
||||
},
|
||||
"NIBSZGE9PskVrluJpdom0": {
|
||||
"title": "Super User",
|
||||
"description": "The Super User, also known as \"root user\", represents a user account in Linux with extensive powers, privileges, and capabilities. This user has complete control over the system and can access any data stored on it. This includes the ability to modify system configurations, change other user's passwords, install software, and perform more administrative tasks in the shell environment.\n\nThe usage of super user is critical to operating a Linux system properly and safely as it can potentially cause serious damage. The super user can be accessed through the `sudo` or `su` commands.\n\nLearn more from the following resources:",
|
||||
"description": "The Super User, also known as \"root user\", represents a user account in Linux with extensive powers, privileges, and capabilities. This user has complete control over the system and can access any data stored on it. This includes the ability to modify system configurations, change other user's passwords, install software, and perform more administrative tasks in the shell environment.\n\nThe usage of super user is critical to operating a Linux system properly and safely as it can potentially cause serious damage. The super user can be accessed through the `sudo` or `su` commands.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Linux Superuser Access, Explained",
|
||||
@@ -346,13 +351,8 @@
|
||||
},
|
||||
"TnrT-cqMA8urew9nLv0Ns": {
|
||||
"title": "File Permissions",
|
||||
"description": "Linux file permissions control read (r), write (w), and execute (x) access for owner, group, and others using octal or symbolic notation. Format `-rwxr--r--` shows file type and permissions. Use `chmod` to change permissions, `chown` for ownership, `chgrp` for group ownership. Essential for system security and proper access control.\n\nVisit the following resources to learn more:",
|
||||
"description": "In Linux systems, rights and privileges are assigned to files and directories in the form of permissions. These permissions indicate who can read, write, or execute (run) them. In Linux, there are three types of users: owners, groups, and others who can have a different set of permissions.\n\nIn fact, permissions on the system are there for a reason: to prevent unprivileged users from making changes on the system that would ultimately affect other users. With inadequate permissions, unprivileged users are able to make changes that would be beneficial or harmless to the Linux system.\n\nLet's have a look at an example:\n\n -rwxr--r-- 1 root root 4096 Jan 1 12:00 filename\n \n\nFrom the above example, the first character `-` indicates if it is a regular file(`-`) or directory(`d`). The following group of three characters(`rwx`) represents the permissions for the file owner. The next three characters(`r--`) represent permissions for the group and the last set of three characters(`r--`) represents permissions for others.\n\nThe `r` indicates that the file can be read, `w` indicates that the file can be written to, and `x` indicates that the file can be executed.\n\nThe permissions can be changed using the `chmod`, `chown`, and `chgrp` commands.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Understanding Linux File Permissions",
|
||||
"url": "https://linuxize.com/post/understanding-linux-file-permissions/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Linux File Permissions",
|
||||
"url": "https://linuxhandbook.com/linux-file-permissions/",
|
||||
@@ -372,17 +372,12 @@
|
||||
},
|
||||
"iD073xTmpzvQFfXwcwXcY": {
|
||||
"title": "Archiving and Compressing",
|
||||
"description": "Linux archiving combines multiple files into single archives using `tar`, while compression reduces file sizes with `gzip` and `bzip2`. Use `tar cvf` to create archives, `tar xvf` to extract, and `tar cvzf` for gzip-compressed archives. These separate processes are often combined for efficient backup and distribution, with `tar.gz` and `tar.bz2` being common formats.\n\nVisit the following resources to learn more:",
|
||||
"description": "Linux offers powerful utilities for archiving, where multiple files and directories are combined into a single file, primarily for backup and simplification of distribution. The main tools used for this purpose are `tar`, `gzip`, and `bzip2`.\n\nThe `tar` command, originally for tape archiving, is a versatile tool that can manage and organize files into one archive. Meanwhile, `gzip` and `bzip2` are used for file compression, reducing the file size and making data transmission easier.\n\nTake a look at the following commands in use:\n\n # To create a tar archive:\n tar cvf archive_name.tar directory_to_archive/\n \n # To extract a tar archive:\n tar xvf archive_name.tar\n \n # To create a gzip compressed tar archive:\n tar cvzf archive_name.tar.gz directory_to_archive/\n \n #To create a bzip2 compressed tar archive:\n tar cvjf archive_name.tar.bz2 directory_to_archive/\n \n\nRemember, in Linux, archiving and compression are separate processes, hence `tar` to archive and `gzip`/`bzip2` to compress. Although they're commonly used together, they can very much be used separately as per the requirements.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Linux File Packaging and Compression",
|
||||
"url": "https://labex.io/tutorials/linux-file-packaging-and-compression-385413",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Compression and Archiving with tar, gzip, and bzip2",
|
||||
"url": "https://www.linuxbash.sh/post/compression-and-archiving-with-tar-gzip-and-bzip2",
|
||||
"type": "article"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -461,7 +456,7 @@
|
||||
},
|
||||
"t3fxSgCgtxuMtHjclPHA6": {
|
||||
"title": "stdout / stdin / stderr",
|
||||
"description": "Linux processes use three standard data streams: STDIN (input), STDOUT (output), and STDERR (error messages). STDOUT handles normal command output while STDERR specifically handles error messages. You can redirect these streams using operators like `>` for stdout and `2>` for stderr, allowing separate handling of normal output and errors for better scripting and debugging.\n\nLearn more from the following resources:",
|
||||
"description": "Linux processes use three standard data streams: STDIN (input), STDOUT (output), and STDERR (error messages). STDOUT handles normal command output while STDERR specifically handles error messages. You can redirect these streams using operators like `>` for stdout and `2>` for stderr, allowing separate handling of normal output and errors for better scripting and debugging.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Linux Fundamentals - I/O, Standard Streams, and Redirection",
|
||||
@@ -514,7 +509,7 @@
|
||||
},
|
||||
"1WRIy3xHtQfiQFZrprobP": {
|
||||
"title": "sort",
|
||||
"description": "Linux provides a variety of tools for processing and manipulating text files, one of which is the sort command. The `sort` command in Linux is used to sort the contents of a text file, line by line. The command uses ASCII values to sort files. You can use this command to sort the data in a file in a number of different ways such as alphabetically, numerically, reverse order, or even monthly. The sort command takes a file as input and prints the sorted content on the standard output (screen).\n\nLearn more from the following resources:",
|
||||
"description": "Linux provides a variety of tools for processing and manipulating text files, one of which is the sort command. The `sort` command in Linux is used to sort the contents of a text file, line by line. The command uses ASCII values to sort files. You can use this command to sort the data in a file in a number of different ways such as alphabetically, numerically, reverse order, or even monthly. The sort command takes a file as input and prints the sorted content on the standard output (screen).\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Sort Command in Linux - 10 Useful Examples",
|
||||
@@ -535,7 +530,7 @@
|
||||
},
|
||||
"6xdkFk_GT93MigeTSSGCp": {
|
||||
"title": "head",
|
||||
"description": "The `head` command in Linux is a text processing utility that allows a user to output the first part (or the \"head\") of files. It is commonly used for previewing the start of a file without loading the entire document into memory, which can act as an efficient way of quickly examining the data in very large files. By default, the `head` command prints the first 10 lines of each file to standard output, which is the terminal in most systems.\n\nLearn more from the following resources:",
|
||||
"description": "The `head` command in Linux is a text processing utility that allows a user to output the first part (or the \"head\") of files. It is commonly used for previewing the start of a file without loading the entire document into memory, which can act as an efficient way of quickly examining the data in very large files. By default, the `head` command prints the first 10 lines of each file to standard output, which is the terminal in most systems.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Head Command in Linux - 5 Essential Examples",
|
||||
@@ -551,7 +546,7 @@
|
||||
},
|
||||
"O9Vci_WpUY-79AkA4HDx3": {
|
||||
"title": "tr",
|
||||
"description": "The `tr` command in Linux is a command-line utility that translates or substitutes characters. It reads from the standard input and writes to the standard output. Although commonly used for translation applications, `tr` has versatile functionality in the text processing aspect of Linux. Ranging from replacing a list of characters, to deleting or squeezing character repetitions, `tr` presents a robust tool for stream-based text manipulations.\n\nLearn more from the following resources:",
|
||||
"description": "The `tr` command in Linux is a command-line utility that translates or substitutes characters. It reads from the standard input and writes to the standard output. Although commonly used for translation applications, `tr` has versatile functionality in the text processing aspect of Linux. Ranging from replacing a list of characters, to deleting or squeezing character repetitions, `tr` presents a robust tool for stream-based text manipulations.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "tr Command in Linux: 6 Useful Examples",
|
||||
@@ -567,7 +562,7 @@
|
||||
},
|
||||
"Yyk28H6TiteZEGv6Aps1h": {
|
||||
"title": "tail",
|
||||
"description": "The `tail` command in Linux is a utility used in text processing. Fundamentally, it's used to output the last part of the files. The command reads data from standard input or from a file and outputs the last `N` bytes, lines, blocks, characters or words to the standard output (or a different file). By default, `tail` returns the last 10 lines of each file to the standard output. This command is common in situations where the user is interested in the most recent entries in a text file, such as log files.\n\nLearn more from the following resources:",
|
||||
"description": "The `tail` command in Linux is a utility used in text processing. Fundamentally, it's used to output the last part of the files. The command reads data from standard input or from a file and outputs the last `N` bytes, lines, blocks, characters or words to the standard output (or a different file). By default, `tail` returns the last 10 lines of each file to the standard output. This command is common in situations where the user is interested in the most recent entries in a text file, such as log files.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "5 Practical Examples of Tail Command in Linux",
|
||||
@@ -588,7 +583,7 @@
|
||||
},
|
||||
"vfcCS1GoyKpU1rQaE8I5r": {
|
||||
"title": "join",
|
||||
"description": "`join` is a powerful text processing command in Linux. It lets you combine lines of two files on a common field, which works similar to the 'Join' operation in SQL. It's particularly useful when you're dealing with large volumes of data. Specifically, `join` uses the lines from two files to form lines that contain pairs of lines related in a meaningful way.\n\nLearn more from the following resources:",
|
||||
"description": "`join` is a powerful text processing command in Linux. It lets you combine lines of two files on a common field, which works similar to the 'Join' operation in SQL. It's particularly useful when you're dealing with large volumes of data. Specifically, `join` uses the lines from two files to form lines that contain pairs of lines related in a meaningful way.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "join(1) — Linux manual page",
|
||||
@@ -609,7 +604,7 @@
|
||||
},
|
||||
"Pl9s2ti25hsSEljXJvBTj": {
|
||||
"title": "split",
|
||||
"description": "Linux provides an extensive set of tools for manipulating text data. One of such utilities is the `split` command that is used, as the name suggests, to split large files into smaller files. The `split` command in Linux divides a file into multiple equal parts, based on the lines or bytes specified by the user.\n\nLearn more from the following resources:",
|
||||
"description": "Linux provides an extensive set of tools for manipulating text data. One of such utilities is the `split` command that is used, as the name suggests, to split large files into smaller files. The `split` command in Linux divides a file into multiple equal parts, based on the lines or bytes specified by the user.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Split Command in Linux: 9 Useful Examples",
|
||||
@@ -646,7 +641,7 @@
|
||||
},
|
||||
"Bo9CdrGJej-QcNmw46k9t": {
|
||||
"title": "tee",
|
||||
"description": "The `tee` command reads from standard input and writes to both standard output and files simultaneously, like a T-splitter in plumbing. It enables users to view results in the terminal while saving output to files concurrently. Syntax: `command | tee file`. Extremely useful for documenting terminal activities and preserving command outputs for later analysis.\n\nLearn more from the following resources:",
|
||||
"description": "The `tee` command reads from standard input and writes to both standard output and files simultaneously, like a T-splitter in plumbing. It enables users to view results in the terminal while saving output to files concurrently. Syntax: `command | tee file`. Extremely useful for documenting terminal activities and preserving command outputs for later analysis.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Tee Command in Linux Explained with Examples",
|
||||
@@ -662,7 +657,7 @@
|
||||
},
|
||||
"YSfGrmT795miIeIZrtC3D": {
|
||||
"title": "nl",
|
||||
"description": "The `nl` command numbers lines in text files, providing an overview of line locations. By default, it numbers only non-empty lines, but this behavior can be modified. Syntax: `nl [options] [file_name]`. If no file is specified, nl reads from stdin. Valuable for text processing when line numbers are needed for reference or debugging purposes.\n\nLearn more from the following resources:",
|
||||
"description": "The `nl` command numbers lines in text files, providing an overview of line locations. By default, it numbers only non-empty lines, but this behavior can be modified. Syntax: `nl [options] [file_name]`. If no file is specified, nl reads from stdin. Valuable for text processing when line numbers are needed for reference or debugging purposes.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "nl command",
|
||||
@@ -683,7 +678,7 @@
|
||||
},
|
||||
"LIGOJwrXexnIcPyHVlhQ8": {
|
||||
"title": "wc",
|
||||
"description": "The `wc` command is a commonly used tool in Unix or Linux that allows users to count the number of bytes, characters, words, and lines in a file or in data piped from standard input. The name `wc` stands for 'word count', but it can do much more than just count words. Common usage of `wc` includes tracking program output, counting code lines, and more. It's an invaluable tool for analyzing text at both granular and larger scales.\n\nLearn more from the following resources:",
|
||||
"description": "The `wc` command is a commonly used tool in Unix or Linux that allows users to count the number of bytes, characters, words, and lines in a file or in data piped from standard input. The name `wc` stands for 'word count', but it can do much more than just count words. Common usage of `wc` includes tracking program output, counting code lines, and more. It's an invaluable tool for analyzing text at both granular and larger scales.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Wc Command in Linux (Count Number of Lines, Words, and Characters)",
|
||||
@@ -720,7 +715,7 @@
|
||||
},
|
||||
"sKduFaX6xZaUUBdXRMKCL": {
|
||||
"title": "unexpand",
|
||||
"description": "The `unexpand` command converts spaces to tabs in text files, making documents more coherent and neat. Commonly used in programming scripts where tab indentation is preferred. Use `unexpand -t 4 file.txt` to replace every four spaces with a tab. Opposite of `expand` command, useful for standardizing indentation formatting in code files.\n\nLearn more from the following resources:",
|
||||
"description": "The `unexpand` command converts spaces to tabs in text files, making documents more coherent and neat. Commonly used in programming scripts where tab indentation is preferred. Use `unexpand -t 4 file.txt` to replace every four spaces with a tab. Opposite of `expand` command, useful for standardizing indentation formatting in code files.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "unexpand Cheat Sheet",
|
||||
@@ -741,7 +736,7 @@
|
||||
},
|
||||
"qnBbzphImflQbEbtFub9x": {
|
||||
"title": "uniq",
|
||||
"description": "`uniq` is an extremely useful command-line program for text processing. It aids in the examination and manipulation of text files by comparing or filtering out repeated lines that are adjacent. Whether you're dealing with a list of data or a large text document, the `uniq` command allows you to find and filter out duplicate lines, or even provide a count of each unique line in a file. It's important to remember that `uniq` only removes duplicates that are next to each other, so to get the most out of this command, data is often sorted using the `sort` command first.\n\nLearn more from the following resources:",
|
||||
"description": "`uniq` is an extremely useful command-line program for text processing. It aids in the examination and manipulation of text files by comparing or filtering out repeated lines that are adjacent. Whether you're dealing with a list of data or a large text document, the `uniq` command allows you to find and filter out duplicate lines, or even provide a count of each unique line in a file. It's important to remember that `uniq` only removes duplicates that are next to each other, so to get the most out of this command, data is often sorted using the `sort` command first.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Uniq Command in Unix and Linux: 7 Essential Examples",
|
||||
@@ -765,7 +760,7 @@
|
||||
"description": "GREP (Global Regular Expression Print) is a powerful text search utility that finds and filters text matching specific patterns in files. It searches line by line and prints matching lines to the screen. Essential for shell scripts and command-line operations. Example: `grep \"pattern\" fileName` searches for specified patterns. Alternative: `ripgrep` offers enhanced performance and features.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Ripgrep: Github Repository",
|
||||
"title": "Ripgrep: GitHub Repository",
|
||||
"url": "https://github.com/BurntSushi/ripgrep",
|
||||
"type": "opensource"
|
||||
},
|
||||
@@ -840,7 +835,7 @@
|
||||
},
|
||||
"19lTWqAvZFT2CDlhLlPSq": {
|
||||
"title": "Uptime and Load",
|
||||
"description": "The `uptime` command shows how long a Linux system has been running and the system load average. Load average indicates computational work and CPU queue length, displayed for 1, 5, and 15-minute intervals. High load averages suggest resource constraints or performance issues. Regular monitoring helps identify usage patterns and plan capacity.\n\nLearn more from the following resources:",
|
||||
"description": "The `uptime` command shows system running time and load averages for 1, 5, and 15-minute intervals. Load average indicates computational work and processes waiting for CPU time. High load suggests insufficient resources or misconfigurations. Example: `uptime` shows \"2 days, 20 min\" uptime and \"0.00, 0.01, 0.05\" load averages. Essential for performance monitoring and capacity planning.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Linux Uptime Command With Usage Examples",
|
||||
@@ -877,7 +872,7 @@
|
||||
},
|
||||
"ewUuI_x-YhOQIYd3MTgJJ": {
|
||||
"title": "Services Running",
|
||||
"description": "Linux servers run various services including web, database, DNS, and mail servers. System administrators use tools like `systemctl`, `service`, `netstat`, `ss`, and `lsof` to manage and monitor services. Use `systemctl --type=service` to list all active services with their status. Essential for server management, resource monitoring, and troubleshooting.\n\nLearn more from the following resources:",
|
||||
"description": "Linux servers run various services including web, database, DNS, and mail servers. System administrators use tools like `systemctl`, `service`, `netstat`, `ss`, and `lsof` to manage and monitor services. Use `systemctl --type=service` to list all active services with their status. Essential for server management, resource monitoring, and troubleshooting.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "How to List Linux Services With systemctl",
|
||||
@@ -930,7 +925,7 @@
|
||||
},
|
||||
"mUKoiGUTpIaUgQNF3BND_": {
|
||||
"title": "Background / Foreground Processes",
|
||||
"description": "Linux processes run in foreground (fg) taking direct user input or background (bg) running independently. Start background processes with `command &` or use `Ctrl+Z` then `bg` to pause and resume in background. Use `fg` to bring background processes to foreground. These job control commands enable managing multiple tasks from a single terminal efficiently.\n\nVisit the following resources to learn more:",
|
||||
"description": "Linux processes run in foreground (taking direct user input) or background (running independently). Send processes to background with `&` or `bg` command. Bring to foreground with `fg`. Use Ctrl+Z to pause, then `bg` to resume in background. Part of job control for managing multiple tasks simultaneously from single terminal.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Understanding Foreground and Background Processes",
|
||||
@@ -993,7 +988,7 @@
|
||||
},
|
||||
"0FLUI9r7znMqi6YKReLzD": {
|
||||
"title": "Killing Processes",
|
||||
"description": "The `kill` command terminates processes in Linux by sending signals to specific Process IDs (PIDs). Use `kill [signal] PID` to terminate processes manually. Different signals provide various termination methods - SIGTERM for graceful shutdown, SIGKILL for forced termination. Process termination is essential for managing unresponsive or unwanted processes.\n\nLearn more from the following resources:",
|
||||
"description": "The `kill` command terminates processes in Linux by sending signals to specific Process IDs (PIDs). Use `kill [signal] PID` to terminate processes manually. Different signals provide various termination methods - SIGTERM for graceful shutdown, SIGKILL for forced termination. Process termination is essential for managing unresponsive or unwanted processes.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Killing Processes",
|
||||
@@ -1014,7 +1009,7 @@
|
||||
},
|
||||
"5anSYRhaKIs3dCLWlvZfT": {
|
||||
"title": "Process Priorities",
|
||||
"description": "Linux assigns priority levels to processes, affecting execution timing and resource allocation. Process priorities use \"nice\" values ranging from -20 (highest priority) to +19 (lowest priority) and only root can set negative nice value. The `/proc` filesystem contains process information including priorities. You can view priorities with `ps -eo pid,pri,user,comm` and modify them using `renice` command.\n\nVisit the following resource to learn more:",
|
||||
"description": "Linux assigns priority levels to processes, affecting execution timing and resource allocation. Process priorities use \"nice\" values ranging from -20 (highest priority) to +19 (lowest priority) and only root can set negative nice value. The `/proc` filesystem contains process information including priorities. You can view priorities with `ps -eo pid,pri,user,comm` and modify them using `renice` command.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Understanding Process Thread Priorities in Linux",
|
||||
@@ -1051,7 +1046,7 @@
|
||||
},
|
||||
"g6n7f1Qi0BPr_BGvisWuz": {
|
||||
"title": "User Management",
|
||||
"description": "Linux user management allows multiple users to interact with the system in isolation. Includes creating, deleting, modifying users and groups, assigning permissions and ownership. Key commands: `adduser`/`useradd` creates users, `deluser`/`userdel` removes users, `passwd` manages passwords, `su` switches users. Essential for providing proper accessibility and maintaining Linux system security.\n\nLearn more from the following resources:",
|
||||
"description": "Linux user management allows multiple users to interact with the system in isolation. Includes creating, deleting, modifying users and groups, assigning permissions and ownership. Key commands: `adduser`/`useradd` creates users, `deluser`/`userdel` removes users, `passwd` manages passwords, `su` switches users. Essential for providing proper accessibility and maintaining Linux system security.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "User Account Management",
|
||||
@@ -1072,7 +1067,7 @@
|
||||
},
|
||||
"R9TZfkgVUQNLnMpDhovJa": {
|
||||
"title": "Create / Delete / Update",
|
||||
"description": "Linux user management involves creating, updating, and deleting user accounts for system security and resource management. Use `useradd` or `adduser` to create users, `usermod` to update user details like home directory or shell, and `userdel` to delete users. Effective user management maintains system security and organization in multi-user environments.\n\nVisit the following resources to learn more:",
|
||||
"description": "Linux user management involves creating, updating, and deleting user accounts for system security and resource utilization. Key commands: `useradd`/`adduser` (create users), `usermod` (update user details like home directory/shell), `userdel` (delete users). Essential for maintaining secure, organized multi-user system environments and efficient resource allocation.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Creating, Modifying, and Deleting User Accounts",
|
||||
@@ -1093,7 +1088,7 @@
|
||||
},
|
||||
"h8wc8XEwWYHErna68w7Mg": {
|
||||
"title": "Users and Groups",
|
||||
"description": "User management in Linux uses groups to organize users and manage permissions efficiently. Groups are collections of users that simplify system administration by controlling access to resources like files and directories. Users can belong to multiple groups, enabling precise privilege management. Commands like `groupadd`, `groupdel`, `groupmod`, `usermod`, and `gpasswd` manage groups effectively. Proper group management is crucial for a secure and organized system environment.\n\nLearn more from the following resources:",
|
||||
"description": "User management in Linux uses groups to organize users and manage permissions efficiently. Groups are collections of users that simplify system administration by controlling access to resources like files and directories. Users can belong to multiple groups, enabling precise privilege management. Commands like `groupadd`, `groupdel`, `groupmod`, `usermod`, and `gpasswd` manage groups effectively. Proper group management is crucial for a secure and organized system environment.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "How to create, delete, and modify groups in Linux",
|
||||
@@ -1119,20 +1114,25 @@
|
||||
},
|
||||
"L6RMExeqi9501y-eCHDt1": {
|
||||
"title": "Managing Permissions",
|
||||
"description": "Linux file permissions control access to files and directories using read, write, and execute rights for user, group, and others. Use `chmod` to change permissions, `chown` to change ownership, and `chgrp` to change group ownership. Proper permission management is essential for system security and prevents unauthorized access to sensitive files and directories.\n\nVisit the following resources to learn more:",
|
||||
"description": "Linux permissions control file and directory access for users, groups, and others with read, write, and execute types. Commands include `chmod` (change permissions), `chown` (change owner), and `chgrp` (change group). Proper permission management is crucial for system security and organization. Essential for maintaining controlled access to system resources.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Linux File Permissions and Ownership Explained",
|
||||
"title": "Understanding Linux File Permissions",
|
||||
"url": "https://linuxize.com/post/understanding-linux-file-permissions/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Linux File Permissions",
|
||||
"url": "https://linuxhandbook.com/linux-file-permissions/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Linux File Permissions Explained",
|
||||
"url": "https://www.redhat.com/sysadmin/linux-file-permissions-explained",
|
||||
"title": "Linux Permissions of Files",
|
||||
"url": "https://labex.io/tutorials/linux-permissions-of-files-270252",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Linux File Permissions in 5 minutes",
|
||||
"title": "Linux File Permissions in 5 Minutes",
|
||||
"url": "https://www.youtube.com/watch?v=LnKoncbQBsM",
|
||||
"type": "video"
|
||||
}
|
||||
@@ -1140,18 +1140,18 @@
|
||||
},
|
||||
"F1sU3O1ouxTOvpidDfN3k": {
|
||||
"title": "Service Management (systemd)",
|
||||
"description": "Service management in Linux controls system daemons during boot/shutdown processes. Modern Linux distributions use systemd for service management with commands like `systemctl start/stop/restart/status/enable/disable`. Services perform various background functions independent of user interfaces. Effective service management is essential for system stability and security.\n\nLearn more from the following resources:",
|
||||
"description": "Service management controls Linux services (daemons) during boot and shutdown processes. Common systemctl commands include start, stop, restart, reload, status, enable/disable. Modern Linux uses systemd while older systems use SystemV or Upstart. Example: `sudo systemctl start sshd` starts SSH service. Essential skill for Linux system administration and maintaining secure, stable systems.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Service Management in Linux: A Comprehensive Guide",
|
||||
"url": "https://medium.com/@thesureshvadde/service-management-in-linux-a-comprehensive-guide-cb4c7e81dfa9",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "How to Master Linux Service Management with Systemctl",
|
||||
"url": "https://labex.io/tutorials/linux-how-to-master-linux-service-management-with-systemctl-392864",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Service Management in Linux: A Comprehensive Guide",
|
||||
"url": "https://medium.com/@thesureshvadde/service-management-in-linux-a-comprehensive-guide-cb4c7e81dfa9",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "How to Manage Services in Linux: systemd and SysVinit",
|
||||
"url": "https://dev.to/iaadidev/how-to-manage-services-in-linux-systemd-and-sysvinit-essentials-devops-prerequisite-8-1jop",
|
||||
@@ -1161,44 +1161,28 @@
|
||||
},
|
||||
"34UUrc8Yjc_8lvTL8itc3": {
|
||||
"title": "Creating New Services",
|
||||
"description": "Creating custom services in Linux involves writing systemd service unit files that define how processes should start, stop, and restart. Service files are placed in `/etc/systemd/system/` and contain sections like \\[Unit\\], \\[Service\\], and \\[Install\\]. Use `systemctl enable` to enable services at boot and `systemctl start` to run them. Custom services allow automation of background processes.\n\nVisit the following resources to learn more:",
|
||||
"description": "Service status shows the current state of Linux services including network processes, backend servers, and background applications. Use `systemctl status service_name` to check service states through systemd manager. Example: `systemctl status apache2.service` shows Apache web server status. Essential for diagnosing problems, maintaining performance, and preventing service downtimes.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "How to Create a systemd Service in Linux",
|
||||
"url": "https://linuxhandbook.com/create-systemd-services/",
|
||||
"title": "Service Management in Linux: A Comprehensive Guide",
|
||||
"url": "https://medium.com/@thesureshvadde/service-management-in-linux-a-comprehensive-guide-cb4c7e81dfa9",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "A Beginner's Guide to Creating Linux Services",
|
||||
"url": "https://www.fosslinux.com/111815/a-guide-to-creating-linux-services-with-systemd.htm",
|
||||
"title": "Use Systemctl Status Command to Check Service Status",
|
||||
"url": "https://linuxhandbook.com/systemctl-check-service-status/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "How to Check All Running Services in Linux",
|
||||
"url": "https://www.2daygeek.com/how-to-check-all-running-services-in-linux/",
|
||||
"type": "article"
|
||||
}
|
||||
]
|
||||
},
|
||||
"FStz-bftQBK0M6zz2Bxl4": {
|
||||
"title": "Checking Service Logs",
|
||||
"description": "Linux service management involves controlling system services like databases, web servers, and network services. Use `systemctl start service_name` to start services, `systemctl stop service_name` to stop them, and `systemctl restart service_name` to restart. These commands require root permissions via sudo and are essential for system administration and configuration management.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Using systemctl Command [15 Examples] - Linux Handbook",
|
||||
"url": "https://linuxhandbook.com/systemctl-commands/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Start, Stop & Restart Services in Ubuntu and Other Linux",
|
||||
"url": "https://itsfoss.com/start-stop-restart-services-linux/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Start, Restart, and Stop Service Linux: 3 Effective Ways",
|
||||
"url": "https://linuxier.com/start-stop-and-restart-services-in-linux/",
|
||||
"type": "article"
|
||||
}
|
||||
]
|
||||
},
|
||||
"DuEfJNrm4Jfmp8-8Pggrf": {
|
||||
"title": "Starting / Stopping Services",
|
||||
"description": "System logs are essential for troubleshooting and monitoring Linux systems. Most logs are stored in `/var/log` directory and managed by systemd. Use `journalctl` to view system logs and `journalctl -u service_name` for specific service logs. The `dmesg` command displays kernel messages. Regular log monitoring is crucial for system administration.\n\nLearn more from the following resources:",
|
||||
"description": "System logs are essential for troubleshooting and monitoring Linux systems. Most logs are stored in `/var/log` directory and managed by systemd. Use `journalctl` to view system logs and `journalctl -u service_name` for specific service logs. The `dmesg` command displays kernel messages. Regular log monitoring is crucial for system administration.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "How to Use journalctl Command to Analyze Logs in Linux",
|
||||
@@ -1217,23 +1201,39 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"xk5Xgi797HlVjdZJRfwX1": {
|
||||
"title": "Checking Service Status",
|
||||
"description": "Checking service status in Linux helps monitor system health and troubleshoot issues. Use `systemctl status service_name` to view detailed service information including active state, process ID, and recent log entries. Commands like `systemctl is-active` and `systemctl is-enabled` provide quick status checks. Service status monitoring is crucial for maintaining system reliability and performance.\n\nVisit the following resources to learn more:",
|
||||
"DuEfJNrm4Jfmp8-8Pggrf": {
|
||||
"title": "Starting / Stopping Services",
|
||||
"description": "Linux service management controls system services like firewall, network, and database using `systemctl` commands. Basic operations: `sudo systemctl start service_name` (start), `sudo systemctl stop service_name` (stop), `sudo systemctl restart service_name` (restart). Root permissions required. Essential for system administrators managing updates and configuration changes.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Use systemctl Status Command to Check Service Status",
|
||||
"url": "https://linuxhandbook.com/systemctl-check-service-status/",
|
||||
"title": "Service Management in Linux: A Comprehensive Guide",
|
||||
"url": "https://medium.com/@thesureshvadde/service-management-in-linux-a-comprehensive-guide-cb4c7e81dfa9",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "systemctl - [15 Examples] - Linux Handbook",
|
||||
"url": "https://linuxhandbook.com/systemctl-commands/",
|
||||
"title": "How to Master Linux Service Management with Systemctl",
|
||||
"url": "https://labex.io/tutorials/linux-how-to-master-linux-service-management-with-systemctl-392864",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Start, Restart, and Stop Service Linux: 3 Effective Ways",
|
||||
"url": "https://linuxier.com/start-stop-and-restart-services-in-linux/",
|
||||
"title": "How to Manage Services in Linux: systemd and SysVinit",
|
||||
"url": "https://dev.to/iaadidev/how-to-manage-services-in-linux-systemd-and-sysvinit-essentials-devops-prerequisite-8-1jop",
|
||||
"type": "article"
|
||||
}
|
||||
]
|
||||
},
|
||||
"xk5Xgi797HlVjdZJRfwX1": {
|
||||
"title": "Checking Service Status",
|
||||
"description": "Creating Linux services involves setting up background applications using systemd service files. Services run continuously performing essential tasks like web servers, databases, and mail servers. Create `.service` files in `/etc/systemd/system/` with Unit, Service, and Install sections. Control services using `systemctl` commands. Best practice: avoid running services as root for security.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "How to Create a systemd Service in Linux",
|
||||
"url": "https://linuxhandbook.com/create-systemd-services/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "A Beginner's Guide to Creating Linux Services",
|
||||
"url": "https://www.fosslinux.com/111815/a-guide-to-creating-linux-services-with-systemd.htm",
|
||||
"type": "article"
|
||||
}
|
||||
]
|
||||
@@ -1276,7 +1276,7 @@
|
||||
},
|
||||
"2oQiuQ2j02SCt9t5eV6hg": {
|
||||
"title": "Package Repositories",
|
||||
"description": "Package repositories are storage locations containing software packages for Linux distributions. They enable easy installation, updates, and dependency management through package managers like apt, yum, or dnf. Each distribution has pre-configured repositories with tested, secure packages. Use commands like `apt update` or `yum update` to sync with repositories.\n\nVisit the following resources to learn more:",
|
||||
"description": "Repositories are storage locations containing collections of software packages for Linux distributions. They store thousands of compiled packages specific to each distribution (.deb for Debian/Ubuntu, .rpm for Fedora/CentOS). Repositories ensure secure, tested software with proper dependencies. Update commands: `sudo apt update` (Ubuntu), `sudo yum update` (CentOS/Fedora). Essential for secure software management.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "APT Package Manager",
|
||||
@@ -1302,7 +1302,7 @@
|
||||
},
|
||||
"Z23eJZjmWoeXQuezR9AhG": {
|
||||
"title": "Finding & Installing Packages",
|
||||
"description": "Linux package managers like `apt`, `yum`, and `dnf` automate software installation, updates, and removal. Use `apt-get update && apt-get install package-name` on Debian/Ubuntu systems or `dnf install package-name` on Fedora/CentOS. Package management eliminates manual compilation from source code and requires appropriate permissions (usually root access).\n\nVisit the following resources to learn more:",
|
||||
"description": "Linux package managers like `apt`, `yum`, and `dnf` automate software installation, upgrading, configuring, and removal. Debian-based systems: `sudo apt-get update && sudo apt-get install package-name`. Fedora/CentOS: `sudo dnf update && sudo dnf install package-name`. Package management eliminates manual compilation from source code. Root permissions required for installation.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "APT Package Manager",
|
||||
@@ -1325,7 +1325,7 @@
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "8 Best Package Manager for Linux - LinuxSimply",
|
||||
"title": "8 Best Package Manager for Linux",
|
||||
"url": "https://linuxsimply.com/linux-basics/package-management/best-package-manager/",
|
||||
"type": "article"
|
||||
}
|
||||
@@ -1354,29 +1354,8 @@
|
||||
},
|
||||
"xEHiB-egkkcBuZmgMoqHT": {
|
||||
"title": "Install / Remove / Upgrade Packages",
|
||||
"description": "Package management in Linux involves installing, removing, and upgrading software using distribution-specific tools. Use `apt` for Debian/Ubuntu, `yum`/`dnf` for Fedora/RHEL/CentOS, and `zypper` for SUSE. Common operations include `install package-name`, `remove package-name`, and `upgrade` commands. Each package manager has specific syntax but similar functionality for software lifecycle management.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "APT Package Manager",
|
||||
"url": "https://www.debian.org/doc/manuals/apt-guide/index.en.html",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Yum Package Manager",
|
||||
"url": "http://yum.baseurl.org/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Using the DNF Software Package Manager",
|
||||
"url": "https://docs.fedoraproject.org/en-US/quick-docs/dnf/",
|
||||
"type": "article"
|
||||
},
|
||||
{
|
||||
"title": "Linux Package Manager Explained",
|
||||
"url": "https://geekflare.com/dev/linux-package-manager-explained/",
|
||||
"type": "article"
|
||||
}
|
||||
]
|
||||
"description": "Linux package management handles installing, removing, and upgrading pre-compiled software modules. Different distributions use specific package managers: `apt` (Debian/Ubuntu), `yum`/`dnf` (Fedora/RHEL/CentOS), `zypper` (SUSE). Example installation: `sudo apt-get install packagename`. Each manager has specific commands for removal and upgrades. Critical skill for effective Linux system administration.",
|
||||
"links": []
|
||||
},
|
||||
"eKyMZn30UxQeBZQ7FxFbF": {
|
||||
"title": "Snap",
|
||||
@@ -1396,7 +1375,7 @@
|
||||
},
|
||||
"Fn_uYKigJRgb7r_iYGVBr": {
|
||||
"title": "Disks and Filesystems",
|
||||
"description": "Linux supports various filesystems like EXT4, FAT32, NTFS, and Btrfs for organizing data on storage devices. Each filesystem has specific advantages - EXT4 for Linux systems, FAT32 for compatibility across operating systems. The `df -T` command displays mounted filesystems with their types, sizes, and available space information.\n\nVisit the following resources to learn more:",
|
||||
"description": "Linux uses various filesystems to organize, store, and retrieve data from storage devices. Popular filesystems include EXT4 (robust for Linux volumes), FAT32 (compatible with all OS for removable media), NTFS, and Btrfs. Each has specific advantages and use cases. Use `df -T` command to display filesystem types, disk space usage, and mounted device information.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Filesystems in the Linux Kernel",
|
||||
@@ -1422,7 +1401,7 @@
|
||||
},
|
||||
"AwQJYL60NNbA5_z7iLcM7": {
|
||||
"title": "Inodes",
|
||||
"description": "An inode (index node) is a data structure in Linux filesystems that stores metadata about files and directories except their names and actual data. Contains file size, owner, permissions, timestamps, and more. Each file has a unique inode number for identification. Understanding inodes helps with advanced operations like linking and file recovery. Use `ls -i filename` to view inode numbers.\n\nLearn more from the following resources:",
|
||||
"description": "An inode (index node) is a data structure in Linux filesystems that stores metadata about files and directories except their names and actual data. Contains file size, owner, permissions, timestamps, and more. Each file has a unique inode number for identification. Understanding inodes helps with advanced operations like linking and file recovery. Use `ls -i filename` to view inode numbers.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Introduction to Inodes",
|
||||
@@ -1459,7 +1438,7 @@
|
||||
},
|
||||
"AWosNs2nvDGV8r6WvgBI1": {
|
||||
"title": "Swap",
|
||||
"description": "Swap space extends physical memory by using disk storage when RAM is full. Inactive memory pages move to swap, freeing RAM but with performance impact due to slower disk access. Swap can exist as dedicated partitions or regular files. Create with `fallocate`, `mkswap`, and `swapon` commands. Critical for memory management and system stability optimization.\n\nLearn more from the following resources:",
|
||||
"description": "Swap space extends physical memory by using disk storage when RAM is full. Inactive memory pages move to swap, freeing RAM but with performance impact due to slower disk access. Swap can exist as dedicated partitions or regular files. Create with `fallocate`, `mkswap`, and `swapon` commands. Critical for memory management and system stability optimization.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Swap - Arch Wiki",
|
||||
@@ -1617,7 +1596,7 @@
|
||||
},
|
||||
"0pciSsiQqIGJh3x8465_s": {
|
||||
"title": "TCP/IP Stack",
|
||||
"description": "TCP/IP (Transmission Control Protocol/Internet Protocol) is the foundational networking protocol suite that enables computer communication over networks. It consists of four layers: Network Interface, Internet, Transport, and Application. In Linux, TCP/IP is integral to the OS functionality, allowing hosts to connect and transfer data across same or different networks.\n\nLearn more from the following resources:",
|
||||
"description": "TCP/IP (Transmission Control Protocol/Internet Protocol) is the foundational networking protocol suite that enables computer communication over networks. It consists of four layers: Network Interface, Internet, Transport, and Application. In Linux, TCP/IP is integral to the OS functionality, allowing hosts to connect and transfer data across same or different networks.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "TCP/IP Commands for Linux",
|
||||
@@ -1638,7 +1617,7 @@
|
||||
},
|
||||
"Xszo9vXuwwXZo26seHehD": {
|
||||
"title": "Subnetting",
|
||||
"description": "Subnetting divides networks into smaller subnets to improve performance and security in Linux networking. It organizes IP addresses within IP addressing schemes, preventing conflicts and efficiently utilizing address ranges. Use `route -n` to view routing tables and `route add -net xxx.xxx.xxx.x/xx gw yyy.yyy.yyy.y` to add subnets. Essential for complex networking environments.\n\nLearn more from the following resources:",
|
||||
"description": "Subnetting divides networks into smaller subnets to improve performance and security in Linux networking. It organizes IP addresses within IP addressing schemes, preventing conflicts and efficiently utilizing address ranges. Use `route -n` to view routing tables and `route add -net xxx.xxx.xxx.x/xx gw yyy.yyy.yyy.y` to add subnets. Essential for complex networking environments.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Understanding IP Addressing and Subnetting in Linux",
|
||||
@@ -1659,7 +1638,7 @@
|
||||
},
|
||||
"4ees23q281J1DPVAc7iXd": {
|
||||
"title": "Ethernet & arp/rarp",
|
||||
"description": "Key networking protocols in Linux include Ethernet (LAN communication standard), ARP (Address Resolution Protocol - converts IP to MAC addresses), and RARP (Reverse ARP - converts MAC to IP addresses). These protocols enable local network communication and address resolution, essential for network troubleshooting and management in Linux systems.\n\nVisit the following resources to learn more:",
|
||||
"description": "Three crucial Linux networking components: Ethernet enables LAN device communication, ARP (Address Resolution Protocol) translates IP addresses to MAC addresses for direct network communication, and RARP (Reverse ARP) converts MAC addresses to IP addresses when devices know their MAC but need their IP. Essential for diagnosing and managing Linux networking issues.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "A Comprehensive guide to Linux Networking",
|
||||
@@ -1685,7 +1664,7 @@
|
||||
},
|
||||
"X6Jw95kbyPgsDNRhvkQP9": {
|
||||
"title": "DHCP",
|
||||
"description": "DHCP (Dynamic Host Configuration Protocol) automatically allocates IP addresses and network configuration to clients, ensuring unique addresses for each machine. In Linux, install with `sudo apt-get install isc-dhcp-server` and configure via `/etc/dhcp/dhcpd.conf`. DHCP servers require static IPs for effective management and can handle DNS and network data. The DHCP server effectively manages the IP addresses and information related to them, making sure that each client machine gets a unique IP and all the correct network information.\n\nVisit the following sources to learn more:",
|
||||
"description": "DHCP (Dynamic Host Configuration Protocol) automatically allocates IP addresses and network configuration to clients, ensuring unique addresses for each machine. In Linux, install with `sudo apt-get install isc-dhcp-server` and configure via `/etc/dhcp/dhcpd.conf`. DHCP servers require static IPs for effective management and can handle DNS and network data. The DHCP server effectively manages the IP addresses and information related to them, making sure that each client machine gets a unique IP and all the correct network information.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Dynamic Host Configuration Protocol - Wikipedia",
|
||||
@@ -1759,7 +1738,7 @@
|
||||
},
|
||||
"uk6UMuI8Uhf02TBAGVeLS": {
|
||||
"title": "SSH",
|
||||
"description": "SSH (Secure Shell) is a cryptographic network protocol providing secure remote access, command execution, and data communication between networked computers. Replaces insecure protocols like Telnet with confidentiality, integrity, and security. Use `ssh username@server_ip_address` to connect to remote Linux servers. Essential for secure system administration and remote management.\n\nLearn more from the following resources:",
|
||||
"description": "SSH (Secure Shell) is a cryptographic network protocol providing secure remote access, command execution, and data communication between networked computers. Replaces insecure protocols like Telnet with confidentiality, integrity, and security. Use `ssh username@server_ip_address` to connect to remote Linux servers. Essential for secure system administration and remote management.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Secure Shell",
|
||||
@@ -1848,7 +1827,7 @@
|
||||
},
|
||||
"JyxvZOb7iusOSUYSlniGl": {
|
||||
"title": "Variables",
|
||||
"description": "Shell variables store system or user-defined data that can change during script execution. Two categories exist: System Variables (PATH, HOME, PWD) created by Linux, and User-Defined Variables created by users. Define variables with `=` operator and retrieve values with `$` prefix. Example: `MY_VARIABLE=\"Hello World\"` then `echo $MY_VARIABLE` prints the value.\n\nLearn more from the following resources:",
|
||||
"description": "Shell variables store system or user-defined data that can change during script execution. Two categories exist: System Variables (PATH, HOME, PWD) created by Linux, and User-Defined Variables created by users. Define variables with `=` operator and retrieve values with `$` prefix. Example: `MY_VARIABLE=\"Hello World\"` then `echo $MY_VARIABLE` prints the value.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Learning The Shell",
|
||||
@@ -1901,7 +1880,7 @@
|
||||
},
|
||||
"rOGnHbGIr3xPCFdpkqoeK": {
|
||||
"title": "Debugging",
|
||||
"description": "Shell script debugging in Linux uses tools like bash's `-x` option for execution traces, `trap`, `set` commands, and external tools like `shellcheck`. Use `#!/bin/bash -x` in scripts or `bash -x script.sh` from command line for tracing. These debugging options help detect, trace, and fix errors to make scripts more efficient and error-proof.\n\nVisit the following sources to learn more:",
|
||||
"description": "Shell script debugging in Linux uses tools like bash's `-x` option for execution traces, `trap`, `set` commands, and external tools like `shellcheck`. Use `#!/bin/bash -x` in scripts or `bash -x script.sh` from command line for tracing. These debugging options help detect, trace, and fix errors to make scripts more efficient and error-proof.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "How To Debug a Bash Shell Script Under Linux or UNIX",
|
||||
@@ -1922,7 +1901,7 @@
|
||||
},
|
||||
"bdQNcr1sj94aX_gjwf2Fa": {
|
||||
"title": "Troubleshooting",
|
||||
"description": "Linux troubleshooting involves identifying and resolving system errors, hardware/software issues, network problems, and resource management challenges. Key skills include using command-line tools, inspecting log files, understanding processes, and interpreting error messages. Tools like `top` provide real-time process monitoring to identify resource-heavy processes causing performance issues efficiently.\n\nLearn more from the following resources:",
|
||||
"description": "Linux troubleshooting involves identifying and resolving system errors, hardware/software issues, network problems, and resource management challenges. Key skills include using command-line tools, inspecting log files, understanding processes, and interpreting error messages. Tools like `top` provide real-time process monitoring to identify resource-heavy processes causing performance issues efficiently.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Troubleshooting Linux Problems: A Beginner's Guide",
|
||||
@@ -1943,7 +1922,7 @@
|
||||
},
|
||||
"Ymf3u_sG1dyt8ZR_LbwqJ": {
|
||||
"title": "ICMP",
|
||||
"description": "Internet Control Message Protocol (ICMP) is a supportive protocol used by network devices to communicate error messages and operational information. Essential for Linux network troubleshooting, ICMP enables tools like `ping` and `traceroute` to diagnose network connectivity and routing issues. Use `ping www.google.com` to send ICMP echo requests and test network reachability effectively.\n\nLearn more from the following resources:",
|
||||
"description": "Internet Control Message Protocol (ICMP) is a supportive protocol used by network devices to communicate error messages and operational information. Essential for Linux network troubleshooting, ICMP enables tools like `ping` and `traceroute` to diagnose network connectivity and routing issues. Use `ping www.google.com` to send ICMP echo requests and test network reachability effectively.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "icmp(7) — Linux manual page",
|
||||
@@ -1975,7 +1954,7 @@
|
||||
},
|
||||
"BnB3Rirh4R7a7LW7-k-95": {
|
||||
"title": "traceroute",
|
||||
"description": "Traceroute is a Linux network diagnostic tool that displays the path packets take from your system to a destination. It identifies routing problems, measures latency, and reveals network structure as packets traverse the internet. Each hop is tested multiple times with round-trip times displayed. Use `traceroute www.example.com` to discover packet routes and diagnose failures.\n\nLearn more from the following resources:",
|
||||
"description": "Traceroute is a Linux network diagnostic tool that displays the path packets take from your system to a destination. It identifies routing problems, measures latency, and reveals network structure as packets traverse the internet. Each hop is tested multiple times with round-trip times displayed. Use `traceroute www.example.com` to discover packet routes and diagnose failures.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "traceroute Command Examples in Linux",
|
||||
@@ -2054,7 +2033,7 @@
|
||||
},
|
||||
"QgfenmhMc18cU_JngQ1n0": {
|
||||
"title": "ulimits",
|
||||
"description": "Ulimits (user limits) are Linux kernel features that restrict resources like file handles and memory that processes can consume. In containerization, ulimits prevent rogue processes from exhausting server resources and creating denial-of-service situations. Use `ulimit -a` to view current limits and `ulimit -n 1024` to set specific limits for optimal container performance and security.\n\nLearn more from the following resources:",
|
||||
"description": "Ulimits (user limits) are Linux kernel features that restrict resources like file handles and memory that processes can consume. In containerization, ulimits prevent rogue processes from exhausting server resources and creating denial-of-service situations. Use `ulimit -a` to view current limits and `ulimit -n 1024` to set specific limits for optimal container performance and security.\n\nVisit the following resources to learn more:",
|
||||
"links": [
|
||||
{
|
||||
"title": "Check and set user limits with ulimit Linux command",
|
||||
|
||||
2503
public/roadmap-content/machine-learning.json
Normal file
2503
public/roadmap-content/machine-learning.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -583,7 +583,7 @@
|
||||
"description": "CI/CD (Continuous Integration and Continuous Deployment/Delivery) is a software development practice that automates the process of integrating code changes, running tests, and deploying updates. Continuous Integration focuses on regularly merging code changes into a shared repository, followed by automated testing to ensure code quality. Continuous Deployment extends this by automatically releasing every validated change to production, while Continuous Delivery ensures code is always in a deployable state, but requires manual approval for production releases. CI/CD pipelines improve code reliability, reduce integration risks, and speed up the development lifecycle.\n\nLearn more from the following resources:",
|
||||
"links": [
|
||||
{
|
||||
"title": "What is CI/CD? - Gitlab",
|
||||
"title": "What is CI/CD? - GitLab",
|
||||
"url": "https://about.gitlab.com/topics/ci-cd/",
|
||||
"type": "article"
|
||||
},
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user