├── .gitignore
├── src
├── deploy
│ ├── browser-extension
│ │ ├── generate_extension.py
│ │ ├── production
│ │ │ ├── README.md
│ │ │ └── 100-interview-problems
│ │ │ │ ├── README.md
│ │ │ │ └── src
│ │ │ │ ├── script.js
│ │ │ │ ├── images
│ │ │ │ └── 1.jpg
│ │ │ │ ├── popup.html
│ │ │ │ ├── manifest.json
│ │ │ │ ├── background.js
│ │ │ │ ├── checklist-track.js
│ │ │ │ └── checklist-style.css
│ │ ├── template
│ │ │ └── README.md
│ │ ├── auto-generated
│ │ │ └── README.md
│ │ └── README.md
│ ├── validate-checklist.py
│ ├── markdown_list
│ │ ├── sample-checklist-template.md
│ │ ├── open-source-checklist.md
│ │ ├── large-language-models-checklist.md
│ │ ├── css-checklist.md
│ │ ├── operating-system-checklist.md
│ │ └── java-checklist.md
│ ├── text_list
│ │ ├── sample-checklist-template.txt
│ │ ├── open-source-checklist.txt
│ │ ├── css-checklist.txt
│ │ ├── operating-system-checklist.txt
│ │ └── large-language-models-checklist.txt
│ ├── deploy.py
│ ├── README.md
│ ├── text-edition.py
│ └── markdown.py
├── README.md
├── checklist-track.js
├── sample-checklist-template.html
├── nlp-checklist.html
├── checklist-style.css
└── open-source-checklist.html
├── docs
├── CONTRIBUTION.md
├── VERIFY-DEBUG-CHECKLIST.md
├── README.md
├── CREATE-PULL-REQUEST.md
└── CODE-STRUCTURE.md
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | src/deploy/production-checklist/
2 |
--------------------------------------------------------------------------------
/src/deploy/browser-extension/generate_extension.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/CONTRIBUTION.md:
--------------------------------------------------------------------------------
1 | # OpenGenus Checklist Contributor Guidelines
2 |
--------------------------------------------------------------------------------
/src/deploy/validate-checklist.py:
--------------------------------------------------------------------------------
1 | # Test validity of a checklist
2 | # TODO
3 |
--------------------------------------------------------------------------------
/src/deploy/browser-extension/production/README.md:
--------------------------------------------------------------------------------
1 |
2 | Updated on: 13 November 2023.
--------------------------------------------------------------------------------
/src/deploy/browser-extension/template/README.md:
--------------------------------------------------------------------------------
1 | Template for Checklist browser extension
2 |
--------------------------------------------------------------------------------
/src/deploy/browser-extension/production/100-interview-problems/README.md:
--------------------------------------------------------------------------------
1 | TODO:
2 |
3 | * Update extension images
4 | * Test extension
--------------------------------------------------------------------------------
/src/deploy/browser-extension/production/100-interview-problems/src/script.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', function() {
2 | chrome.tabs.create({ url: 'index.html' });
3 | });
--------------------------------------------------------------------------------
/src/deploy/browser-extension/production/100-interview-problems/src/images/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OpenGenus/checklist/HEAD/src/deploy/browser-extension/production/100-interview-problems/src/images/1.jpg
--------------------------------------------------------------------------------
/src/deploy/browser-extension/auto-generated/README.md:
--------------------------------------------------------------------------------
1 | ## Auto-generated Extensions
2 |
3 | This directory hold auto-generated extensions.
4 |
5 | Manual testing is done over the auto-generated extension before deployment to production.
--------------------------------------------------------------------------------
/docs/VERIFY-DEBUG-CHECKLIST.md:
--------------------------------------------------------------------------------
1 | ## Verify and debug your checklist
2 |
3 | If your checklist is broken, follow these steps to identify the point where the syntax is not as expected. If you have added a new checklist, follow these steps to ensure that your checklist works in an expected way.
4 |
--------------------------------------------------------------------------------
/src/deploy/browser-extension/production/100-interview-problems/src/popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Your Extension Popup
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/deploy/markdown_list/sample-checklist-template.md:
--------------------------------------------------------------------------------
1 | # Sample Checklist
2 |
3 | Only concepts that you need to review to ace your Interview
4 |
5 | **Week 1: -**
6 | =========
7 | 1. **Topic 1** content
8 | 2. **Topic 2** content
9 | 3. **Topic 3** content.
10 |
11 | ---
12 | Generated by OpenGenus. Updated on 2023-11-27
--------------------------------------------------------------------------------
/src/deploy/text_list/sample-checklist-template.txt:
--------------------------------------------------------------------------------
1 | Sample Checklist
2 |
3 | Only concepts that you need to review to ace your Interview
4 |
5 | Week 1: -
6 | =========
7 | 1. Topic 1
8 | content
9 | Links (0):
10 | 2. Topic 2
11 | content
12 | Links (0):
13 | 3. Topic 3
14 | content.
15 | Links (0):
16 |
17 | ---
18 | Generated by OpenGenus. Updated on 2023-12-28
--------------------------------------------------------------------------------
/src/deploy/browser-extension/README.md:
--------------------------------------------------------------------------------
1 |
2 | ## Browser extensions
3 |
4 | | ID | Checklist | Browser extension status | Checklist link | Extension link |
5 | |---|---|---|---|---|
6 | | 1 | 100 Interview Problems | Deployed prototype | [Link](https://iq.opengenus.org/100-interview-problems/) | [Extension link](https://chromewebstore.google.com/detail/100-interview-problems-ch/ohmifgcblhjiogboihfhdoimbjanooog) |
7 | | - | - | - | - | - |
8 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | # Documentation of OpenGenus Checklist
2 |
3 | 1. **CODE-STRUCTURE.md**: Provides information about the code structure of the repository.
4 | 2. **CONTRIBUTION.md**: Guidelines for contributors on how to contribute to the repository.
5 | 3. **CREATE-PULL-REQUEST.md**: Outlines the steps involved in creating a pull request.
6 | 4. **VERIFY-DEBUG-CHECKLIST.md**: For verifying and debugging the code if your checklist is broken in UI or you have added a new checklist.
7 |
--------------------------------------------------------------------------------
/src/deploy/browser-extension/production/100-interview-problems/src/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "manifest_version": 3,
3 | "name": "100 Interview Problems Checklist",
4 | "version": "1.0",
5 | "description": "100 algorithmic problems to give you all core concepts and insights.",
6 | "action": {
7 | "default_popup": "popup.html",
8 | "default_icon": {
9 | "16": "images/1.jpg"
10 | }
11 | },
12 | "permissions": [
13 | "contextMenus", "alarms", "notifications"
14 | ],
15 | "icons": {
16 | "16": "images/1.jpg"
17 | },
18 | "background": {
19 | "service_worker": "background.js"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/deploy/browser-extension/production/100-interview-problems/src/background.js:
--------------------------------------------------------------------------------
1 | // background.js
2 | chrome.runtime.onInstalled.addListener(function () {
3 | chrome.contextMenus.create({
4 | id: "openInNewTab",
5 | title: "Open - 100 Interview Problems",
6 | contexts: ["page"]
7 | });
8 | });
9 |
10 | chrome.contextMenus.onClicked.addListener(function(info, tab) {
11 | if (info.menuItemId === "openInNewTab") {
12 | chrome.tabs.create({ url: chrome.runtime.getURL('index.html') });
13 | }
14 | });
15 |
16 | // background.js
17 | chrome.alarms.create('testAlarm', {
18 | periodInMinutes: 7200
19 | });
20 |
21 | chrome.alarms.onAlarm.addListener((alarm) => {
22 | if (alarm.name === "testAlarm") {
23 | // Logic to execute when the alarm runs
24 | chrome.notifications.create('test', {
25 | type: 'basic',
26 | iconUrl: 'images/1.jpg',
27 | title: '100 Interview Problems',
28 | message: 'It has been 5 days. Go through 100 Interview Problems!',
29 | priority: 2
30 | });
31 | }
32 | });
33 |
34 | // Add an event listener for notification click
35 | chrome.notifications.onClicked.addListener((notificationId) => {
36 | if (notificationId === 'test') {
37 | chrome.tabs.create({ url: chrome.runtime.getURL('index.html') });
38 | }
39 | });
--------------------------------------------------------------------------------
/docs/CREATE-PULL-REQUEST.md:
--------------------------------------------------------------------------------
1 | ## Steps to create a pull request at OpenGenus Checklist
2 |
3 | To contribute code changes to the OpenGenus Checklist project, follow these steps:
4 |
5 | 1. **Fork the Repository**: Click the "Fork" button on the [repository page](https://github.com/OpenGenus/checklist) to create your copy of the project.
6 |
7 | 2. **Clone Your Fork**: Clone the repository to your local machine using `git clone`. Replace `` with your GitHub username.
8 |
9 | ```bash
10 | git clone https://github.com//checklist.git
11 | cd checklist
12 | ```
13 |
14 | 3. **Create a Branch**: Create a new branch for your changes. Use a descriptive branch name that reflects the purpose of your changes.
15 |
16 | ```
17 | git checkout -b feature
18 | ```
19 |
20 | Remember to replace `feature` with your feature name.
21 |
22 | 4. **Make Changes**: Make your code changes, enhancements, or bug fixes in the branch you created.
23 | 5. Test Your Changes: Ensure that your changes work as expected and do not introduce new issues. Run tests if available.
24 | 6. Commit Your Changes: Commit your changes with a clear and concise commit message.
25 |
26 | ```
27 | git commit -m "Add new feature: My Feature"
28 | ```
29 |
30 | 7. Push Your Changes: Push your branch to your fork on GitHub.
31 |
32 | ```
33 | git push origin feature/my-feature
34 | ```
35 |
36 | 8. Open a Pull Request: Go to the OpenGenus Checklist repository and click "New Pull Request." Compare your branch with the main branch, add a title and description, and create the pull request.
37 |
38 | 9. Review and Collaborate: Collaborate with other contributors and maintainers to address any feedback or changes required for your pull request.
39 | 10. Merge Your Pull Request: Once your pull request is approved and passes any required tests, it will be merged into the main repository.
40 |
--------------------------------------------------------------------------------
/docs/CODE-STRUCTURE.md:
--------------------------------------------------------------------------------
1 | # Code structure of OpenGenus Checklist
2 |
3 |
4 | ```
5 | OpenGenus/checklist/
6 | │
7 | ├── docs/
8 | │ ├── CODE-STRUCTURE.md
9 | │ └── ... (Other documentation files)
10 | │
11 | ├── src/
12 | │ ├── checklist-style.css
13 | │ ├── checklist-track.js
14 | │ ├── data-science-checklist.html
15 | │ └── ... (Other HTML checklist files)
16 | │
17 | ├── deploy/
18 | │ ├── deploy.py
19 | │ ├── production-checklist/
20 | │ │ ├── data-science-checklist.hbs
21 | │ │ └── ... (Other .hbs checklist files)
22 | │ ├── markdown.py
23 | │ └── list/
24 | │ ├── data-science-checklist.md
25 | │ └── ... (Other .md checklist files)
26 | │
27 | ├── .gitignore
28 | ├── README.md
29 | └── ... (Other project files)
30 |
31 | ```
32 |
33 | This directory structure is organized as follows:
34 |
35 | 1. **docs/**: This directory contains documentation files, including "CODE-STRUCTURE.md," which provides information about the code structure of the project.
36 | 2. **src/**: This directory contains the source code and HTML checklist files for the project. It includes "checklist-style.css," "checklist-track.js," and various HTML checklist files.
37 | 3. **deploy/**: This directory holds deployment-related scripts and files.
38 | * "**deploy.py**" is a script for deployment purposes.
39 | * "**production-checklist/**" contains generated .hbs checklist files for production.
40 | * "**markdown.py**" is a script for generating Markdown checklist files.
41 | * "**list/**" contains generated .md checklist files.
42 | 4. **.gitignore**: This file specifies which files and directories should be ignored by Git.
43 | 5. **README.md**: This is the project's main documentation file.
44 |
45 | The directory structure reflects the organization of the OpenGenus Checklist repository, including source code, generated checklist files, documentation and deployment scripts.
46 |
--------------------------------------------------------------------------------
/src/README.md:
--------------------------------------------------------------------------------
1 | [How to use Checklist?](https://iq.opengenus.org/use-checklist/)
2 |
3 |
4 | | ID/Code | Checklist | Status | Main Contributors |
5 | |---|---|---|---|
6 | | 1 | 100 Interview Problems | [Deployed](https://iq.opengenus.org/100-interview-problems/) | - |
7 | | 2 | Data Science Checklist | [Deployed](https://iq.opengenus.org/data-science-checklist/) | Sanjana Babu |
8 | | 3 | Python Checklist | [Deployed](https://iq.opengenus.org/python-checklist/) | Akanksha Singh |
9 | | 4 | Graph Algorithm Checklist | [Deployed](https://iq.opengenus.org/graph-algorithms-checklist/) | Akanksha Singh |
10 | | 5 | Greedy Algorithm Checklist | [Deployed](https://iq.opengenus.org/greedy-algorithms-checklist/) | Akanksha Singh |
11 | | 6 | System Design Checklist | [Deployed](https://iq.opengenus.org/system-design-checklist/) | Aswin Shailajan |
12 | | 7 | Deep Learning Checklist | [Deployed](https://iq.opengenus.org/deep-learning-checklist/) | Jiadi Huang |
13 | | 8 | Open Source Checklist | In progress | |
14 | | 9 | CSS Checklist | [Deployed](https://iq.opengenus.org/css-checklist/) | Mathankumar V |
15 | | 10 | Operating System (OS) Checklist | In progress | |
16 | | 11 | Web Development Checklist | [Deployed](https://iq.opengenus.org/learn-web-development/) | Delia Georgiana Soare |
17 | | 12 | Large Language Models Checklist | In progress | Alexander Nilsson |
18 | | 13 | Java Checklist | [Deployed](https://iq.opengenus.org/learn-java/) | Manish Singh |
19 | | 14 | NLP Checklist | In progress | Agniva Maiti |
20 | | 15 | HTML Checklist | In progress | Abiodun Adejare Adekunle |
21 | | 16 | Computer Networks Checklist | In progress | Manraj Singh |
22 | | 17 | C++ Checklist | In progress | Jessica Janko |
23 |
24 | ## Todo features:
25 | - Code cleanup (checklist dynamic height logic) [_In progress_]
26 | - Add author/ contributor list (section) in checklist
27 | - Optimize page
28 | - Add page sharing buttons
29 | - Script to make checklist production-ready (file extension + relative CSS/JS path)
30 |
31 | ## Features for next release
32 |
33 | - Added feature for generating text version of checklists [DONE].
34 |
--------------------------------------------------------------------------------
/src/deploy/deploy.py:
--------------------------------------------------------------------------------
1 | import os
2 | import shutil
3 |
4 | # Define the source directory (one level above the current directory)
5 | source_directory = os.path.abspath(os.path.join(os.getcwd(), ".."))
6 |
7 | # Define the destination directory
8 | destination_directory = "deploy/production-checklist"
9 |
10 | # Define the full path for the destination directory
11 | destination_path = os.path.join(source_directory, destination_directory)
12 |
13 | # Ensure the destination directory exists or create it if it doesn't
14 | if not os.path.exists(destination_path):
15 | os.makedirs(destination_path)
16 |
17 | # Mapping of file extensions and their corresponding paths
18 | file_extensions = {
19 | ".html": ".hbs"
20 | }
21 |
22 | # Loop through the files in the source directory
23 | for filename in os.listdir(source_directory):
24 | if filename == "sample-checklist-template.html":
25 | # Skip the file named "sample.html"
26 | continue
27 |
28 | # Get the file extension
29 | file_extension = os.path.splitext(filename)[1]
30 |
31 | if file_extension in file_extensions:
32 | # Get the new file extension and destination path
33 | new_extension = file_extensions[file_extension]
34 | destination_file_path = os.path.join(destination_path, "page-" + os.path.splitext(filename)[0] + new_extension)
35 |
36 | # Read the content of the HTML file with UTF-8 encoding
37 | with open(os.path.join(source_directory, filename), "r", encoding="utf-8") as html_file:
38 | html_content = html_file.read()
39 |
40 | # Update the CSS and JS file paths within the HTML content
41 | updated_html_content = html_content.replace('checklist-style.css', '/assets/css/checklist/checklist-style.css')
42 | updated_html_content = updated_html_content.replace('checklist-track.js', '/assets/js/checklist/checklist-track.js')
43 |
44 | # Write the updated content to the destination file with the new extension
45 | with open(destination_file_path, "w", encoding="utf-8") as destination_file:
46 | destination_file.write(updated_html_content)
47 |
48 | print("Conversion completed.")
--------------------------------------------------------------------------------
/src/deploy/README.md:
--------------------------------------------------------------------------------
1 | ## Scripts
2 |
3 | Automated scripts for handling OG Checklists.
4 |
5 | * **deploy.py**: Make the HTML checklists ready for deployment.
6 | * Currently, updates file extension to `HBS`.
7 | * **markdown.py**: Convert HTML checklist to Markdown list.
8 | * **text-edition.py**: Convert HTML checklist to text version.
9 |
10 | ---
11 |
12 | ## TODOs
13 |
14 | 1. Validate output of markdown.py for different cases and identify/fix bugs
15 | 2. Check generated markdown lists (v1) and fix bugs.
16 | 3. Support conversion to new formats:
17 | * PDF
18 | * Image Preview
19 | * CSV with links and section headers only
20 | 4. Script to test validity of a checklist
21 | 5. Script to use checklists locally in UNIX system (terminal version)
22 |
23 | ## Browser Extension status
24 |
25 | * TODO: Create extension template
26 | * TODO: Develop script to generate extension
27 |
28 | | ID | Checklist | Extension status | Link |
29 | |---|---|---|---|
30 | | 1 | 100 Interview Problems | Version 1 created. Cleanup needed before production. | [Link](https://chromewebstore.google.com/detail/100-interview-problems-ch/ohmifgcblhjiogboihfhdoimbjanooog) |
31 |
32 | ## Markdown check status
33 |
34 | | ID | Checklist | Checked markdown on | Issues? | Re-check needed? |
35 | |---|---|---|---|---|
36 | | 1 | 100 Must attempt Problems for Coding Interview | 29 November 2023 | ✅ | - |
37 | | 2 | Data Science Checklist | 30 November 2023 | ✅ | - |
38 | | 3 | Python Checklist | 30 November 2023 | ✅ | - |
39 | | 4 | Graph Algorithms Checklist | 30 November 2023 | ✅ | - |
40 | | 5 | Greedy Algorithms Checklist | 30 November 2023 | ❌ (Issue in format in sub-section) | - |
41 | | 6 | System Design Checklist | 30 November 2023 | ✅ | - |
42 | | 7 | Deep Learning Checklist | 30 November 2023 | ❌ (Links missing in multiple sections) | - |
43 | | 9 | CSS Checklist | 30 November 2023 | ✅ | - |
44 | | 11 | Web Development Checklist | 30 November 2023 | ❌ (Links missing in first 2 sections) | - |
45 | | 8 | Open Source Checklist | 30 November 2023 | ✅ (in-progress) | - |
46 | | 10 | Operating System (OS) Checklist | 30 November 2023 | ✅ (in-progress) | - |
47 | | 12 | Large Language Models Checklist | 30 November 2023 | ✅ (in-progress) | - |
48 | | 13 | Java Checklist | 30 November 2023 | ✅ (in-progress) | - |
49 | | - | - | - | - | - |
50 |
--------------------------------------------------------------------------------
/src/deploy/markdown_list/open-source-checklist.md:
--------------------------------------------------------------------------------
1 | # Opensource Checklist
2 |
3 | Open source learning is the key that unlocks the door to a world of knowledge, where collaboration and curiosity are the driving forces of progress.
4 |
5 | **Basics of Open-Source Projects**
6 | ==============================
7 | 1. **Introduction to Open Source** Understanding the concept of open-source software and its advantages.
8 | 2. **Common Open-Source Licenses** In-depth exploration of various open-source licenses and their implications.
9 | 3. **Choosing a License for Your Project** Guidance on selecting the right license for your own open-source project.
10 | 4. **Popular Open-Source Platforms** Detailed overview of platforms like GitHub, GitLab, Bitbucket, and SourceForge.
11 | 5. **Contributor Guidelines** Explanation of common contribution guidelines and best practices.
12 | 6. **Version Control Concepts** A primer on version control, its benefits, and how Git fits in.
13 | 7. **Git Installation and Setup** Step-by-step instructions for installing and configuring Git on different platforms.
14 | 8. **Git Workflow** Explaining the typical Git workflow, from creating a repository to committing changes.
15 | 9. **Branching Strategies** Insights into branching models like Gitflow and GitHub Flow.
16 | 10. **Git Best Practices** Tips for effective use of Git, including commit message conventions.
17 |
18 | **Basics of GitHub and Setup Account**
19 | ==================================
20 | 1. **Introduction to GitHub** A tour of GitHub's features and capabilities.
21 | 2. **Creating a GitHub Account** Detailed account creation steps with account settings recommendations.
22 | 3. **Setting Up SSH Keys** Instructions for secure authentication using SSH keys.
23 | 4. **Configuring Git with GitHub** How to link your Git installation to your GitHub account.
24 | 5. **GitHub Profile and Repository Management** Managing your GitHub profile, repositories, and settings.
25 | 6. **Importance of Documentation** Emphasizing the value of clear and comprehensive project documentation.
26 | 7. **Reading Project Documentation** How to navigate and interpret project-specific documentation.
27 | 8. **Identifying Maintainers and Contributors** Strategies for finding and connecting with project maintainers and contributors.
28 | 9. **Exploring Existing Contributions** Tips for reviewing past contributions and understanding project history.
29 | 10. **Cloning a Repository** Step-by-step guide to cloning a project's repository to your local machine.
30 | 11. **Creating a Feature Branch** Instructions for creating a dedicated branch for your contribution.
31 | 12. **Making and Testing Changes** Best practices for making code or documentation modifications and testing them.
32 | 13. **Committing Your Changes** Guidelines for creating informative and well-structured commits.
33 | 14. **Pushing Changes to GitHub** How to push your branch and changes to your GitHub fork.
34 | 15. **Creating a Pull Request** A detailed walkthrough of creating a pull request with a focus on proper descriptions.
35 | 16. **Code Review Workflow** Explaining the process of reviewing code changes, including commenting and feedback.
36 | 17. **Code Review Best Practices** Tips for providing constructive and meaningful code reviews
37 | 18. **Merging and Collaborative Review** Discussing the process of merging approved contributions into the main branch.
38 | 19. **Identifying and Confirming Bugs** Strategies for recognizing and confirming the presence of bugs.
39 | 20. **Reporting Bugs Effectively** How to create detailed bug reports with information like steps to reproduce.
40 | 21. **Contributing to Bug Fixes** Tips for addressing and resolving identified bugs through code changes.
41 |
42 | ---
43 | Generated by OpenGenus. Updated on 2023-11-27
--------------------------------------------------------------------------------
/src/deploy/markdown_list/large-language-models-checklist.md:
--------------------------------------------------------------------------------
1 | # Large Language Models: Checklist
2 |
3 | This comprehensive checklist encompasses all the crucial concepts and insights required to understand Large Language Models (LLMs). It's designed as an efficient alternative to the broader and more time-consuming task of sifting through extensive literature and research. Whether you're prepping for interviews, deepening your expertise, or simply curious about the state of AI, this checklist will streamline your learning process. Save time and study smarter.
4 |
5 | **Introduction to Large Language Models**
6 | =====================================
7 | 1. **Understanding the Basics of LLMs** History of [Large Language Models](https://iq.opengenus.org/large-language-models/) as well as an introduction to the concepts behind LLMs and some use cases.
8 | 2. **Evolution of Language Models** This article provides a comprehensive comparison of OpenAI's LLMs, charting the evolution from GPT-2 to GPT-4. [Read more](https://iq.opengenus.org/gpt2-vs-gpt3-vs-gpt35-vs-gpt4/).
9 |
10 | **Key LLM Architectures**
11 | =====================
12 | 1. **An Introduction to BERT** Dive into the basics of BERT, a revolutionary model in NLP, and understand its core concepts and architecture. [Read more](https://iq.opengenus.org/introduction-to-bert/).
13 | 2. **BERT Large Model** Explore the BERT Large Model with its 24 encoder layers, offering deeper insights into its advanced capabilities. [Read more](https://iq.opengenus.org/bert-large/).
14 | 3. **RoBERTa: Robustly Optimized BERT Pre-training Approach** Learn about RoBERTa, an optimized version of BERT, and how it enhances pre-training for better performance. [Read more](https://iq.opengenus.org/roberta/).
15 | 4. **ERNIE 3.0 TITAN LLM** Discover the features of Baidu's ERNIE 3.0 TITAN LLM and its unique architecture that sets it apart. [Read more](https://iq.opengenus.org/ernie-titan-llm/).
16 | 5. **XLNet Model Architecture** Explore XLNet, a robust alternative to BERT, and its architecture that outperforms BERT on several benchmarks. [Read more](https://iq.opengenus.org/xlnet-model-architecture/).
17 |
18 | **Tokenization Techniques**
19 | =======================
20 | 1. **Byte Pair Encoding (BPE)**
21 | 2. **WordPiece**
22 | 3. **SentencePiece**
23 |
24 | **Specialized Techniques in LLMs**
25 | ==============================
26 | 1. **Retrieval Augmented Generation (RAG): Basics** An introduction to RAG, a fine-tuning technique for LLMs developed by Meta, enhancing language models with retrieval capabilities. [Read more](https://iq.opengenus.org/retrieval-augmented-generation-rag/).
27 | 2. **7 Different Prompting Techniques** Explore seven diverse prompting techniques that enhance the effectiveness and versatility of language models in various applications. [Read more](https://iq.opengenus.org/different-prompting-techniques/).
28 | 3. **Tokenization in NLP** Delve into the complete guide on tokenization in NLP, understanding its importance and various methods used in language processing. [Read more](https://iq.opengenus.org/tokenization-in-nlp/).
29 |
30 | **Implementation and Applications**
31 | ===============================
32 | 1. **OpenAI Codex: Technical Overview** Learn about the AI platform behind LLMs like OpenAI Codex that can write code based on natural language prompts. [Read more](https://iq.opengenus.org/openai-codex/).
33 |
34 | **Research and Development in LLM**
35 | ===============================
36 | 1. **25 Must-Read NLP Papers in Deep Learning** A comprehensive list of essential NLP papers in deep learning, pivotal for understanding the advancements in the field. [Read more](https://iq.opengenus.org/nlp-papers-in-dl/).
37 |
38 | **Historical Perspective and Key Contributors**
39 | ===========================================
40 | 1. **People Behind the LLM Revolution** Discover the team of eight who triggered the growth of LLMs like ChatGPT/GPT-4 since 2017. [Read more](https://iq.opengenus.org/people-who-started-llm-revolution/).
41 |
42 | ---
43 | Generated by OpenGenus. Updated on 2023-11-27
--------------------------------------------------------------------------------
/src/checklist-track.js:
--------------------------------------------------------------------------------
1 | const checkboxValues = JSON.parse(localStorage.getItem("checkboxValues"+code)) || {},
2 | buttons = Array.from(document.querySelectorAll(".checklist-item__expand")),
3 | labels = Array.from(document.querySelectorAll(".checklist-item__title")),
4 | checkboxes = Array.from(document.querySelectorAll('input[type="checkbox"]')),
5 | checkboxesLength = checkboxes.length,
6 | progress = document.querySelector(".progress__bar"),
7 | counter = document.querySelector(".progress__count"),
8 | reset = document.querySelector(".progress__reset");
9 | function loadIds() {
10 | for (let a = 0; a < checkboxesLength; a += 1) {
11 | const b = a => a.replace(/[ ,.!?;:'-]/g, "");
12 | (checkboxes[a].id = `${b(
13 | checkboxes[a].nextSibling.nextSibling.innerText
14 | ).toLowerCase()}`), checkboxes[a].nextSibling.setAttribute(
15 | "for",
16 | `${b(checkboxes[a].nextSibling.nextSibling.innerText).toLowerCase()}`
17 | );
18 | }
19 | }
20 | function updateStorage(a) {
21 | (checkboxValues[a.id] = a.checked), localStorage.setItem(
22 | "checkboxValues"+code,
23 | JSON.stringify(checkboxValues)
24 | );
25 | }
26 | function countChecked() {
27 | if ("checkbox" === this.type) {
28 | const a = this.parentNode.parentNode.parentNode,
29 | b =
30 | a.querySelectorAll("input:checked").length /
31 | a.querySelectorAll(".checklist-item").length;
32 | a.querySelector(
33 | ".checklist__percentage-border"
34 | ).style.transform = `scaleX(${b})`;
35 | } else
36 | Array.from(document.querySelectorAll(".checklist")).forEach(a => {
37 | const b =
38 | a.querySelectorAll("input:checked").length /
39 | a.querySelectorAll(".checklist-item").length;
40 | a.querySelector(
41 | ".checklist__percentage-border"
42 | ).style.transform = `scaleX(${b})`;
43 | });
44 | let a = 0;
45 | Array.from(document.querySelectorAll("input:checked")).forEach(() => {
46 | a += 1;
47 | }), (counter.innerText = `${a}/${checkboxesLength}`), (progress.style.transform = `scaleX(${a /
48 | checkboxesLength})`), (checkboxValues.globalCounter = a), updateStorage(this);
49 | }
50 | function loadValues() {
51 | const a = checkboxValues.globalCounter || 0;
52 | (counter.innerText = `${a}/${checkboxesLength}`), Object.keys(
53 | checkboxValues
54 | ).forEach(a => {
55 | "globalCounter" !== a &&
56 | (document.getElementById(a).checked = checkboxValues[a]);
57 | }), countChecked();
58 | }
59 | function toggleExpand() {
60 | const a = this.parentNode;
61 | a.querySelector(".line").classList.toggle("closed"), a.classList.toggle(
62 | "open"
63 | );
64 | }
65 | function resetCheckboxes() {
66 | this.classList.add("progress__reset--pressed"), checkboxes.forEach(
67 | a => (a.checked = !1)
68 | ), Object.keys(checkboxValues).forEach(
69 | a => delete checkboxValues[a]
70 | ), countChecked();
71 | }
72 | window.onload = function() {
73 | loadIds(), loadValues(), checkboxes.forEach(a =>
74 | a.addEventListener("click", countChecked)
75 | ), buttons.forEach(a =>
76 | a.addEventListener("click", toggleExpand)
77 | ), labels.forEach(a =>
78 | a.addEventListener("click", toggleExpand)
79 | ), reset.addEventListener("click", resetCheckboxes), reset.addEventListener(
80 | "animationend",
81 | function() {
82 | this.classList.remove("progress__reset--pressed");
83 | },
84 | !1
85 | ), "serviceWorker" in navigator &&
86 | navigator.serviceWorker.register("/sw.js", { scope: "/" })
87 | };
88 | window.onclick = function () {
89 | var total_height = 0;
90 | var slides = document.getElementsByClassName('checklist');
91 | for (var i = 0; i < slides.length; i++) {
92 | total_height += slides.item(i).offsetHeight + 15;
93 | }
94 | main_content = document.getElementsByClassName('container')[0];
95 | if(2 * main_content.offsetHeight - total_height < 400)
96 | {
97 | main_content.style.maxHeight = main_content.offsetHeight + 500;
98 | }
99 | /*
100 | else if(2 * main_content.offsetHeight - total_height >= 1000)
101 | {
102 | main_content.style.maxHeight = main_content.offsetHeight - 500;
103 | }
104 | */
105 | }
106 |
--------------------------------------------------------------------------------
/src/deploy/browser-extension/production/100-interview-problems/src/checklist-track.js:
--------------------------------------------------------------------------------
1 | var code = "1";
2 |
3 | const checkboxValues = JSON.parse(localStorage.getItem("checkboxValues"+code)) || {},
4 | buttons = Array.from(document.querySelectorAll(".checklist-item__expand")),
5 | labels = Array.from(document.querySelectorAll(".checklist-item__title")),
6 | checkboxes = Array.from(document.querySelectorAll('input[type="checkbox"]')),
7 | checkboxesLength = checkboxes.length,
8 | progress = document.querySelector(".progress__bar"),
9 | counter = document.querySelector(".progress__count"),
10 | reset = document.querySelector(".progress__reset");
11 | function loadIds() {
12 | for (let a = 0; a < checkboxesLength; a += 1) {
13 | const b = a => a.replace(/[ ,.!?;:'-]/g, "");
14 | (checkboxes[a].id = `${b(
15 | checkboxes[a].nextSibling.nextSibling.innerText
16 | ).toLowerCase()}`), checkboxes[a].nextSibling.setAttribute(
17 | "for",
18 | `${b(checkboxes[a].nextSibling.nextSibling.innerText).toLowerCase()}`
19 | );
20 | }
21 | }
22 | function updateStorage(a) {
23 | (checkboxValues[a.id] = a.checked), localStorage.setItem(
24 | "checkboxValues"+code,
25 | JSON.stringify(checkboxValues)
26 | );
27 | }
28 | function countChecked() {
29 | if ("checkbox" === this.type) {
30 | const a = this.parentNode.parentNode.parentNode,
31 | b =
32 | a.querySelectorAll("input:checked").length /
33 | a.querySelectorAll(".checklist-item").length;
34 | a.querySelector(
35 | ".checklist__percentage-border"
36 | ).style.transform = `scaleX(${b})`;
37 | } else
38 | Array.from(document.querySelectorAll(".checklist")).forEach(a => {
39 | const b =
40 | a.querySelectorAll("input:checked").length /
41 | a.querySelectorAll(".checklist-item").length;
42 | a.querySelector(
43 | ".checklist__percentage-border"
44 | ).style.transform = `scaleX(${b})`;
45 | });
46 | let a = 0;
47 | Array.from(document.querySelectorAll("input:checked")).forEach(() => {
48 | a += 1;
49 | }), (counter.innerText = `${a}/${checkboxesLength}`), (progress.style.transform = `scaleX(${a /
50 | checkboxesLength})`), (checkboxValues.globalCounter = a), updateStorage(this);
51 | }
52 | function loadValues() {
53 | const a = checkboxValues.globalCounter || 0;
54 | (counter.innerText = `${a}/${checkboxesLength}`), Object.keys(
55 | checkboxValues
56 | ).forEach(a => {
57 | "globalCounter" !== a &&
58 | (document.getElementById(a).checked = checkboxValues[a]);
59 | }), countChecked();
60 | }
61 | function toggleExpand() {
62 | const a = this.parentNode;
63 | a.querySelector(".line").classList.toggle("closed"), a.classList.toggle(
64 | "open"
65 | );
66 | }
67 | function resetCheckboxes() {
68 | this.classList.add("progress__reset--pressed"), checkboxes.forEach(
69 | a => (a.checked = !1)
70 | ), Object.keys(checkboxValues).forEach(
71 | a => delete checkboxValues[a]
72 | ), countChecked();
73 | }
74 | window.onload = function() {
75 | loadIds(), loadValues(), checkboxes.forEach(a =>
76 | a.addEventListener("click", countChecked)
77 | ), buttons.forEach(a =>
78 | a.addEventListener("click", toggleExpand)
79 | ), labels.forEach(a =>
80 | a.addEventListener("click", toggleExpand)
81 | ), reset.addEventListener("click", resetCheckboxes), reset.addEventListener(
82 | "animationend",
83 | function() {
84 | this.classList.remove("progress__reset--pressed");
85 | },
86 | !1
87 | ), "serviceWorker" in navigator &&
88 | navigator.serviceWorker.register("/sw.js", { scope: "/" })
89 | };
90 | window.onclick = function () {
91 | var total_height = 0;
92 | var slides = document.getElementsByClassName('checklist');
93 | for (var i = 0; i < slides.length; i++) {
94 | total_height += slides.item(i).offsetHeight + 15;
95 | }
96 | main_content = document.getElementsByClassName('container')[0];
97 | if(2 * main_content.offsetHeight - total_height < 400)
98 | {
99 | main_content.style.maxHeight = main_content.offsetHeight + 500;
100 | }
101 | /*
102 | else if(2 * main_content.offsetHeight - total_height >= 1000)
103 | {
104 | main_content.style.maxHeight = main_content.offsetHeight - 500;
105 | }
106 | */
107 | }
108 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # OpenGenus Checklist
2 |
3 | 🐐 Pioneering the future of organized sequential knowledge
4 |
5 | ---
6 |
7 | **OpenGenus Checklist** is a collection of curated checklists covering learning roadmap of a wide range of topics, including programming languages, algorithms, data structures and more. The project aims to provide learners and professionals with a structured path to acquire and reinforce their knowledge in a *self-paced manner*.
8 |
9 | Confused what to learn for a particular domain? No long, OpenGenus Checklist is the solution.
10 |
11 | | Web version | Markdown version |
12 | |---|---|
13 | | | |
14 |
15 | [How to use Checklist?](https://iq.opengenus.org/use-checklist/)
16 |
17 | | # | Checklist | Use online Track progress | Main Contributors | Markdown version | Text version |
18 | |---|---|---|---|---|---|
19 | | 1 | 100 Interview Problems | [Checklist](https://iq.opengenus.org/100-interview-problems/) | OpenGenus | [Markdown](src/deploy/markdown_list/100-interview-problems-checklist.md) | [Text](src/deploy/text_list/100-interview-problems-checklist.txt) |
20 | | 2 | Data Science Checklist | [Checklist](https://iq.opengenus.org/data-science-checklist/) | Sanjana Babu | [Markdown](src/deploy/markdown_list/data-science-checklist.md) | [Text](src/deploy/text_list/data-science-checklist.txt) |
21 | | 3 | Python Checklist | [Checklist](https://iq.opengenus.org/python-checklist/) | Akanksha Singh | [Markdown](src/deploy/markdown_list/python-checklist.md) | [Text](src/deploy/text_list/python-checklist.txt) |
22 | | 4 | Graph Algorithm Checklist | [Checklist](https://iq.opengenus.org/graph-algorithms-checklist/) | Akanksha Singh | [Markdown](src/deploy/markdown_list/graph-algorithms-checklist.md) | [Text](src/deploy/text_list/graph-algorithms-checklist.txt) |
23 | | 5 | Greedy Algorithm Checklist | [Checklist](https://iq.opengenus.org/greedy-algorithms-checklist/) | Akanksha Singh | [Markdown](src/deploy/markdown_list/greedy-algorithms-checklist.md) | [Text](src/deploy/text_list/greedy-algorithms-checklist.txt) |
24 | | 6 | System Design Checklist | [Checklist](https://iq.opengenus.org/system-design-checklist/) | Aswin Shailajan | [Markdown](src/deploy/markdown_list/system-design-checklist.md) | [Text](src/deploy/text_list/system-design-checklist.txt) |
25 | | 7 | Deep Learning Checklist | [Checklist](https://iq.opengenus.org/deep-learning-checklist/) | Jiadi Huang | [Markdown](src/deploy/markdown_list/deep-learning-checklist.md) | [Text](src/deploy/text_list/deep-learning-checklist.txt) |
26 | | 8 | CSS Checklist | [Checklist](https://iq.opengenus.org/css-checklist/) | Mathankumar V | [Markdown](src/deploy/markdown_list/css-checklist.md) | [Text](src/deploy/text_list/css-checklist.txt) |
27 | | 9 | Web Development Checklist | [Checklist](https://iq.opengenus.org/learn-web-development/) | Delia Georgiana Soare | [Markdown](src/deploy/markdown_list/web-development-checklist.md) | [Text](src/deploy/text_list/web-development-checklist.txt) |
28 | | 10 | Java Checklist | [Checklist](https://iq.opengenus.org/learn-java/) | Manish Singh | [Markdown](src/deploy/markdown_list/java-checklist.md) | [Text](src/deploy/text_list/learn-java.txt) |
29 |
30 |
31 | ✅ Features:
32 |
33 | * Explore a domain in a structured way one by one self-paced.
34 | * Track your progress on the web version
35 | * Use the list locally offline using markdown version
36 |
37 | ⏰ Need a checklist for a new domain? [Open an issue](https://github.com/OpenGenus/checklist/issues/new) mentioning the domain you need it for.
38 |
39 |
40 | ---
41 |
42 | ## Contributors:
43 |
44 | Make a [contribution](https://github.com/OpenGenus/checklist/blob/main/docs/CREATE-PULL-REQUEST.md) by understanding the [code structure](https://github.com/OpenGenus/checklist/blob/main/docs/CODE-STRUCTURE.md).
45 |
46 | Contributors (11):
47 |
48 | Akanksha Singh, Jiadi Huang, Delia Georgiana Soare, Sanjana Babu, Aswin Shailajan, Alexander Nilsson, Mathankumar V, Aadarsh Singh, Manish Bangari, Biniyam Wahima, Aditya Chatterjee.
49 |
50 | ---
51 |
--------------------------------------------------------------------------------
/src/deploy/text-edition.py:
--------------------------------------------------------------------------------
1 | import os
2 | import datetime
3 | from bs4 import BeautifulSoup
4 |
5 | # Create a directory named "text_list" in the current working directory if it doesn't exist
6 | output_directory = "text_list"
7 | if not os.path.exists(output_directory):
8 | os.mkdir(output_directory)
9 |
10 | # List all HTML files in the parent directory (../)
11 | parent_directory = "../"
12 | html_files = [file for file in os.listdir(parent_directory) if file.endswith(".html")]
13 |
14 | # Get the current date
15 | current_date = datetime.datetime.now().strftime("%Y-%m-%d")
16 |
17 | # Count of HTML files
18 | total_files = len(html_files)
19 |
20 | # Print "Conversion started" once at the beginning
21 | print("Conversion started:")
22 |
23 | # Iterate through each HTML file
24 | for index, html_file_name in enumerate(html_files, start=1):
25 |
26 | # Print the conversion progress
27 | print(f"({index}/{total_files}) {html_file_name} converted...")
28 |
29 | # Read HTML content from the HTML file
30 | with open(os.path.join(parent_directory, html_file_name), 'r', encoding='utf-8') as html_file:
31 | html_content = html_file.read()
32 |
33 | # Parse the HTML content with Beautiful Soup
34 | soup = BeautifulSoup(html_content, 'html.parser')
35 |
36 | # Initialize text content
37 | text_content = ''
38 |
39 | # Find the major heading and description
40 | header = soup.find('header')
41 | major_heading = header.find('h1', class_='title').text.strip()
42 | description = header.find_all('p', class_='text_small')[-1].text.strip()
43 |
44 | # Add the major heading to the text content
45 | text_content += f"{major_heading}\n\n"
46 | text_content += f"{description}\n\n"
47 |
48 | # Find all the sections with class "checklist"
49 | sections = soup.find_all('section', class_='checklist')
50 |
51 | # Iterate through each section
52 | for section in sections:
53 | # Get the section title
54 | section_title = section.find('h2', class_='checklist__title').text.strip()
55 |
56 | # Underline the section title with '=' characters
57 | section_title_text = f"{section_title}\n{'=' * len(section_title)}\n"
58 |
59 | # Add an extra newline before each major section (except the first one)
60 | if section_title != 'Week 1: -':
61 | text_content += '\n'
62 |
63 | # Add the section title to the text content
64 | text_content += section_title_text
65 |
66 | # Find all checklist items within the section
67 | checklist_items = section.find_all('li', class_='checklist-item')
68 |
69 | # Initialize item counter for numbering
70 | item_counter = 1
71 |
72 | # Iterate through each checklist item
73 | for item in checklist_items:
74 | # Get the checklist item title (bold)
75 | item_title = item.find('span', class_='checklist-item__title').text.strip()
76 |
77 | # Get the checklist item description
78 | item_description = item.find('div', class_='info').text.strip()
79 |
80 | # Find links within the description
81 | item_links = item.find_all('a')
82 | links_text = f"Links ({len(item_links)}): {', '.join([link['href'] for link in item_links])}"
83 |
84 | # Combine the title, description, and links into a single text item
85 | item_text = f"{item_counter}. {item_title}\n {item_description}\n {links_text}\n"
86 |
87 | # Increment the item counter
88 | item_counter += 1
89 |
90 | # Append the item to the section's text content
91 | text_content += item_text
92 |
93 | # Add a separator line before the new last line
94 | text_content += "\n---\n"
95 |
96 | # Add a new line at the end with the generation information
97 | text_content += f"Generated by OpenGenus. Updated on {current_date}"
98 |
99 | # Write the text content to a file in the "text_list" directory with the same name as the HTML file
100 | text_file_name = os.path.splitext(html_file_name)[0] + ".txt"
101 | with open(os.path.join(output_directory, text_file_name), 'w', encoding='utf-8') as text_file:
102 | text_file.write(text_content)
103 |
104 | # Print the final message when all conversions are complete
105 | print(f"All {total_files} checklists converted to text.")
--------------------------------------------------------------------------------
/src/deploy/text_list/open-source-checklist.txt:
--------------------------------------------------------------------------------
1 | Opensource Checklist
2 |
3 | Open source learning is the key that unlocks the door to a world of knowledge, where collaboration and curiosity are the driving forces of progress.
4 |
5 |
6 | Basics of Open-Source Projects
7 | ==============================
8 | 1. Introduction to Open Source
9 | Understanding the concept of open-source software and its advantages.
10 | Links (0):
11 | 2. Common Open-Source Licenses
12 | In-depth exploration of various open-source licenses and their implications.
13 | Links (0):
14 | 3. Choosing a License for Your Project
15 | Guidance on selecting the right license for your own open-source project.
16 | Links (0):
17 | 4. Popular Open-Source Platforms
18 | Detailed overview of platforms like GitHub, GitLab, Bitbucket, and SourceForge.
19 | Links (0):
20 | 5. Contributor Guidelines
21 | Explanation of common contribution guidelines and best practices.
22 | Links (0):
23 | 6. Version Control Concepts
24 | A primer on version control, its benefits, and how Git fits in.
25 | Links (0):
26 | 7. Git Installation and Setup
27 | Step-by-step instructions for installing and configuring Git on different platforms.
28 | Links (0):
29 | 8. Git Workflow
30 | Explaining the typical Git workflow, from creating a repository to committing changes.
31 | Links (0):
32 | 9. Branching Strategies
33 | Insights into branching models like Gitflow and GitHub Flow.
34 | Links (0):
35 | 10. Git Best Practices
36 | Tips for effective use of Git, including commit message conventions.
37 | Links (0):
38 |
39 | ---
40 |
41 | Basics of GitHub and Setup Account
42 | ==================================
43 | 1. Introduction to GitHub
44 | A tour of GitHub's features and capabilities.
45 | Links (0):
46 | 2. Creating a GitHub Account
47 | Detailed account creation steps with account settings recommendations.
48 | Links (0):
49 | 3. Setting Up SSH Keys
50 | Instructions for secure authentication using SSH keys.
51 | Links (0):
52 | 4. Configuring Git with GitHub
53 | How to link your Git installation to your GitHub account.
54 | Links (0):
55 | 5. GitHub Profile and Repository Management
56 | Managing your GitHub profile, repositories, and settings.
57 | Links (0):
58 | 6. Importance of Documentation
59 | Emphasizing the value of clear and comprehensive project documentation.
60 | Links (0):
61 | 7. Reading Project Documentation
62 | How to navigate and interpret project-specific documentation.
63 | Links (0):
64 | 8. Identifying Maintainers and Contributors
65 | Strategies for finding and connecting with project maintainers and contributors.
66 | Links (0):
67 | 9. Exploring Existing Contributions
68 | Tips for reviewing past contributions and understanding project history.
69 | Links (0):
70 | 10. Cloning a Repository
71 | Step-by-step guide to cloning a project's repository to your local machine.
72 | Links (0):
73 | 11. Creating a Feature Branch
74 | Instructions for creating a dedicated branch for your contribution.
75 | Links (0):
76 | 12. Making and Testing Changes
77 | Best practices for making code or documentation modifications and testing them.
78 | Links (0):
79 | 13. Committing Your Changes
80 | Guidelines for creating informative and well-structured commits.
81 | Links (0):
82 | 14. Pushing Changes to GitHub
83 | How to push your branch and changes to your GitHub fork.
84 | Links (0):
85 | 15. Creating a Pull Request
86 | A detailed walkthrough of creating a pull request with a focus on proper descriptions.
87 | Links (0):
88 | 16. Code Review Workflow
89 | Explaining the process of reviewing code changes, including commenting and feedback.
90 | Links (0):
91 | 17. Code Review Best Practices
92 | Tips for providing constructive and meaningful code reviews
93 | Links (0):
94 | 18. Merging and Collaborative Review
95 | Discussing the process of merging approved contributions into the main branch.
96 | Links (0):
97 | 19. Identifying and Confirming Bugs
98 | Strategies for recognizing and confirming the presence of bugs.
99 | Links (0):
100 | 20. Reporting Bugs Effectively
101 | How to create detailed bug reports with information like steps to reproduce.
102 | Links (0):
103 | 21. Contributing to Bug Fixes
104 | Tips for addressing and resolving identified bugs through code changes.
105 | Links (0):
106 |
107 | ---
108 | Generated by OpenGenus. Updated on 2023-12-28
--------------------------------------------------------------------------------
/src/deploy/markdown.py:
--------------------------------------------------------------------------------
1 | import os
2 | import datetime
3 | from bs4 import BeautifulSoup
4 |
5 | # Create a directory named "list" in the current working directory if it doesn't exist
6 | output_directory = "markdown_list"
7 | if not os.path.exists(output_directory):
8 | os.mkdir(output_directory)
9 |
10 | # List all HTML files in the parent directory (../)
11 | parent_directory = "../"
12 | html_files = [file for file in os.listdir(parent_directory) if file.endswith(".html")]
13 |
14 | # Get the current date
15 | current_date = datetime.datetime.now().strftime("%Y-%m-%d")
16 |
17 | # Count of HTML files
18 | total_files = len(html_files)
19 |
20 | # Print "Conversion started" once at the beginning
21 | print("Conversion started:")
22 |
23 | # Iterate through each HTML file
24 | for index, html_file_name in enumerate(html_files, start=1):
25 |
26 | # Print the conversion progress
27 | print(f"({index}/{total_files}) {html_file_name} converted...")
28 |
29 | # Read HTML content from the HTML file
30 | with open(os.path.join(parent_directory, html_file_name), 'r', encoding='utf-8') as html_file:
31 | html_content = html_file.read()
32 |
33 | # Parse the HTML content with Beautiful Soup
34 | soup = BeautifulSoup(html_content, 'html.parser')
35 |
36 | # Initialize Markdown content
37 | markdown_content = ''
38 |
39 | # Find the major heading and description
40 | header = soup.find('header')
41 | major_heading = header.find('h1', class_='title').text.strip()
42 | description = header.find_all('p', class_='text_small')[-1].text.strip()
43 |
44 | # Add the major heading to the Markdown content
45 | markdown_content += f"# {major_heading}\n\n"
46 | markdown_content += f"{description}\n\n"
47 |
48 | # Find all the sections with class "checklist"
49 | sections = soup.find_all('section', class_='checklist')
50 |
51 | # Initialize section counter
52 | section_counter = 1
53 |
54 | # Iterate through each section
55 | for section in sections:
56 | # Get the section title
57 | section_title = section.find('h2', class_='checklist__title').text.strip()
58 |
59 | # Add an extra newline before each major section (except the first one)
60 | if section_counter > 1:
61 | markdown_content += '\n'
62 |
63 | # Underline the section title with '=' characters
64 | section_title_markdown = f"**{section_title}**\n{'=' * len(section_title)}\n"
65 |
66 | # Find all checklist items within the section
67 | checklist_items = section.find_all('li', class_='checklist-item')
68 |
69 | # Initialize a Markdown list for this section
70 | markdown_content += section_title_markdown
71 |
72 | # Initialize item counter for numbering
73 | item_counter = 1
74 |
75 | # Iterate through each checklist item
76 | for item in checklist_items:
77 | # Get the checklist item title (bold)
78 | item_title = item.find('span', class_='checklist-item__title').text.strip()
79 |
80 | # Get the checklist item description with links
81 | item_description = item.find('div', class_='info').text.strip()
82 |
83 | # Find all links within the description and replace them with Markdown links
84 | for link in item.find_all('a'):
85 | item_description = item_description.replace(
86 | link.text,
87 | f"[{link.text}]({link['href']})"
88 | )
89 |
90 | # Combine the title and description (with links) into a single Markdown item
91 | item_markdown = f"{item_counter}. **{item_title}** {item_description}\n"
92 |
93 | # Increment the item counter
94 | item_counter += 1
95 |
96 | # Append the item to the section's Markdown content
97 | markdown_content += item_markdown
98 |
99 | # Increment the section counter
100 | section_counter += 1
101 |
102 | # Add a separator line before the new last line
103 | markdown_content += "\n---\n"
104 |
105 | # Add a new line at the end with the generation information
106 | markdown_content += f"Generated by OpenGenus. Updated on {current_date}"
107 |
108 | # Write the Markdown content to a file in the "list" directory with the same name as the HTML file
109 | markdown_file_name = os.path.splitext(html_file_name)[0] + ".md"
110 | with open(os.path.join(output_directory, markdown_file_name), 'w', encoding='utf-8') as markdown_file:
111 | markdown_file.write(markdown_content)
112 |
113 | # Print the final message when all conversions are complete
114 | print(f"All {total_files} checklists converted to markdown.")
--------------------------------------------------------------------------------
/src/sample-checklist-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Sample Checklist
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
53 |
54 |
60 |
61 |
64 |
65 |
66 |
Sample Checklist
67 |
Powered by OpenGenus IQ because we want you ❤️ to succeed. (How to use this?) Bookmark this page now (press CTRL + D) to easily use this masterpiece tomorrow
68 |
Only concepts that you need to review to ace your Interview
Powered by OpenGenus IQ because we want you ❤️ to succeed. (How to use this?) Bookmark this page now (press CTRL + D) to easily use this masterpiece tomorrow
68 |
Only concepts that you need to practice to master NLP.
69 |
70 | 0/X
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
Getting Started
81 | Natural language processing (NLP) is a branch of artificial intelligence (AI) that allows computers to understand text and spoken words like humans.
82 |
83 |
84 |
85 |
86 |
87 | Polarity and Subjectivity in NLP
88 |
91 |
92 |
93 | Explore the concept of polarity and subjectivity in Natural Language Processing, understanding sentiments and opinions in text data.
94 |
95 |
96 |
97 |
98 |
99 | Types of NLP Models
100 |
103 |
104 |
105 | Learn about various types of NLP models and their applications, including rule-based models, statistical models, and deep learning models.
106 |
107 |
108 |
109 |
110 |
111 | Lexicon in NLP
112 |
115 |
116 |
117 | Understand the role of lexicon in NLP, a collection of words and their meanings, essential for tasks like sentiment analysis and named entity recognition.
118 |
119 |
120 |
121 |
122 |
123 | Chunking and Chinking in NLP
124 |
127 |
128 |
129 | Dive into the techniques of chunking and chinking in NLP, crucial for extracting meaningful phrases from sentences.
130 |
131 |
132 |
133 |
134 |
135 | Lemmatization in NLP
136 |
139 |
140 |
141 | Learn about the process of lemmatization in NLP, transforming words into their base or root form for better analysis and understanding.
142 |
143 |
144 |
145 |
146 |
147 | Stemming in NLP
148 |
151 |
152 |
153 | Explore the technique of stemming in NLP, reducing words to their base or root form by removing suffixes, useful for text normalization.
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
Best of Luck.
165 |
Powered by OpenGenus IQ because we love ❤️ you.
166 |
167 |
--------------------------------------------------------------------------------
/src/deploy/markdown_list/css-checklist.md:
--------------------------------------------------------------------------------
1 | # CSS Checklist
2 |
3 | Only concepts that you need to practice to master CSS.
4 |
5 | **Getting Started**
6 | ===============
7 | 1. **Introduction** [Cascading Style Sheets (CSS)](https://iq.opengenus.org/basics-of-css/) is a style sheet language which is used for designing the webpages and their layouts developed in a markup language like HTML.
8 | 2. **3 CSS Levels** CSS styles can be applied to HTML elements in [3 ways](https://iq.opengenus.org/css-levels/).
9 | 3. **Keywords** [HTML](https://iq.opengenus.org/html-tags-list/) and [CSS](https://iq.opengenus.org/basics-of-css/) are essential for web development and a good understanding of the [key terms](https://iq.opengenus.org/key-terms-in-html-and-css/) used is necessary.
10 | 4. **Box Model** [CSS Box Model](https://iq.opengenus.org/css-box-model/) is a box that wraps around every HTML element. It consists of: margins, borders, padding, and the actual content.
11 | 5. **CSS Layouts** [CSS Layouts](https://iq.opengenus.org/types-of-css-layout/) are used to define the position of HTML elements on a web page.
12 | 6. **CSS Units** [CSS Units](https://iq.opengenus.org/different-units-in-css/) are used to specify the size and position of elements in a document.
13 |
14 | **CSS Properties**
15 | ==============
16 | 1. **Overflow** The [Overflow Property](https://iq.opengenus.org/overflow-property-in-css/) controls any content that might extend beyond the container.
17 | 2. **Clip** The [Clip Property](https://iq.opengenus.org/clip-property-in-css/) is used to define the visible portion of an element by specifying its clipping region.
18 | 3. **Height & Width** [Height and Width](https://iq.opengenus.org/height-and-width-in-css/) are properties in CSS which are used to set the height and width of boxes or elements.
19 | 4. **Padding** The [Padding Property](https://iq.opengenus.org/padding-in-css/) is used to create spacing between content of HTML.
20 | 5. **Margin** The [Margin Property](https://iq.opengenus.org/margin-css/) is used to create space between webpage border and HTML Element's border.
21 | 6. **Rounded Corners** [Rounded Corners / Border Radius](https://iq.opengenus.org/css-border-radius-property/) is a CSS property that allows you to add rounded corners to an element.
22 | 7. **Border** The [Border Property](https://iq.opengenus.org/border-css/) is used to create border around any HTML Tag.
23 | 8. **Transition** [Transition](https://iq.opengenus.org/transitions-in-css/) is a CSS property that allows you to change the values of a CSS property over time.
24 | 9. **Writing Mode** The [Writing Mode Property](https://iq.opengenus.org/css-writing-mode/) is used to specify whether lines of text are laid out horizontally or vertically.
25 | 10. **Customize Fonts** You can [Customize Fonts](https://iq.opengenus.org/fonts-in-html/) in HTML using CSS to make your website look more attractive and unique.
26 |
27 | **Selectors**
28 | =========
29 | 1. **CSS Selectors** [CSS selectors](https://iq.opengenus.org/css-selectors/) identify specific HTML elements as targets for CSS styles.
30 | 2. **Class Selectors** The CSS [Class Selectors](https://iq.opengenus.org/class-selector/) are used to select all elements which belong to a particular class attribute.
31 | 3. **Id Selectors** The CSS [Id Selector](https://iq.opengenus.org/id-selector-in-css/) matches an element based on the value of its id attribute.
32 | 4. **Id vs Class Selectors** It is important to understand the differences between [Id & Class Selectors](https://iq.opengenus.org/id-and-class-selector/) and when to use each one.
33 | 5. **Attribute Selectors** [Attribute Selectors](https://iq.opengenus.org/attribute-selector-in-css/) in CSS allows you to select DOM elements based on the attributes they contain as well as the values of those attributes.
34 |
35 | **Bootstrap**
36 | =========
37 | 1. **Bootstrap Grid** [Bootstrap Grid](https://iq.opengenus.org/grid-system-in-bootstrap/) system is a responsive and mobile-first system for creating layouts in HTML and CSS.
38 | 2. **Bootstrap Table** [Bootstrap Table](https://iq.opengenus.org/bootstrap-tables/) is a dynamic and responsive HTML table framework provided by Bootstrap.
39 | 3. **Bootstrap Slider** [Bootstrap Slider](https://iq.opengenus.org/slider-carousel-in-web/) is a component that lets users pick a value from a given range.
40 | 4. **Bootstrap Clearfix** [Bootstrap Clearfix](https://iq.opengenus.org/clearfix-in-bootstrap/) is a utility class that clears floats from the left or right side of an element.
41 |
42 | **Images**
43 | ======
44 | 1. **Image Properties** [CSS image properties](https://iq.opengenus.org/images-styling-css/) are used to set the image size, image opacity, image alignment, etc.
45 | 2. **Masking in CSS** [Masking image in CSS](https://iq.opengenus.org/masking-in-css-mask-image/) is a technique to hide a part of an element and show the rest of the element.
46 |
47 | **Positioning**
48 | ===========
49 | 1. **Positioning Property** [Positioning in CSS](https://iq.opengenus.org/css-position-property/) is used to set the position of an element in a document.
50 | 2. **Z-index** [Z-index](https://iq.opengenus.org/z-index-property-in-css/) is a CSS property that specifies the stack order of an element.
51 | 3. **Grid Positioning** [Grid Positioning](https://iq.opengenus.org/grid-positioning-in-css/) is a CSS property that specifies the stack order of an element.
52 |
53 | **Design Laws**
54 | ===========
55 | 1. **Parkinson's Law** [Parkinsons Law](https://iq.opengenus.org/parkinsons-law-in-ux-design/) states that work expands to fill the time available for its completion.
56 | 2. **Jakob's Law** [Jakob's Law](https://iq.opengenus.org/jakobs-law-in-ux-design/) states that users spend most of their time on other sites, and prefer your site to work the same way as all the other sites they already know.
57 | 3. **Miller's Law** [Miller's Law](https://iq.opengenus.org/millers-law-in-ux-design/) states that the average person can only keep 7 (plus or minus 2) items in their working memory.
58 | 4. **Hick's & Fitt's Law** [Hick's & Fitt's Law](https://iq.opengenus.org/hicks-law-and-fitts-law-in-ux/) states that the time it takes to make a decision increases with the number and complexity of choices.
59 | 5. **Peak End Rule** [Peak End Rule](https://iq.opengenus.org/peak-end-rule-in-ux-design/) states that people judge an experience largely based on how they felt at its peak and at its end, rather than the total sum or average of every moment of the experience.
60 | 6. **Goal Gradient Effect** [Goal Gradient Effect](https://iq.opengenus.org/goal-gradient-effect-in-ux-design/) states that people are more motivated to complete a goal the closer they are to finishing it.
61 |
62 | **Features**
63 | ========
64 | 1. **Media Query** [Media Query](https://iq.opengenus.org/media-queries/) is a CSS technique that allows content to adapt to different screen sizes and resolutions.
65 | 2. **Pagination** [Pagination](https://iq.opengenus.org/pagination-in-html-css/) is a technique to divide the content into multiple pages and display them one by one sequentially.
66 | 3. **CSS Gradients** [CSS Gradients](https://iq.opengenus.org/gradients-css/) are used to display smooth transitions between two or more specified colors.
67 |
68 | **Flexbox**
69 | =======
70 | 1. **Flexbox** [CSS flexbox](https://iq.opengenus.org/flexbox/) is a layout module that provides an efficient way to arrange, align, and distribute space among items in a container.
71 | 2. **Flebox vs Grid** Understanding [Flexbox vs Grid](https://iq.opengenus.org/flexbox-vs-grid/) is important to know when to use which one.
72 |
73 | **Game Projects**
74 | =============
75 | 1. **2048** [2048](https://iq.opengenus.org/2048-game-using-javascript/) is a single-player sliding block puzzle game designed by Italian web developer Gabriele Cirulli.
76 | 2. **Bubble Shooter** [Bubble Shooter](https://iq.opengenus.org/bubble-shooter-game-in-html/) is a puzzle game where you shoot bubbles of the same color to clear the board.
77 | 3. **Car Racing** [Car Racing](https://iq.opengenus.org/car-racing-game-in-html/) game is a simple 2D game where you have to dodge the incoming cars.
78 | 4. **Wordle** [Wordle](https://iq.opengenus.org/wordle-using-html-css-and-js/) is a word game in which the player tries to find words within a set of scrambled letters.
79 | 5. **Whack A Mole** [Whack A Mole](https://iq.opengenus.org/whack-a-mole-game-using-html-css-js/) game is a simple 2D game where you have to hit the mole with a hammer.
80 | 6. **Bomberman** [Bomberman](https://iq.opengenus.org/bomberman-game-in-html-and-javascript/) game is a simple 2D game where you have to kill all the enemies using bombs.
81 |
82 | **Web Development Projects**
83 | ========================
84 | 1. **Playable Piano** Building a [Playable Piano](https://iq.opengenus.org/playable-piano-in-html-css-and-javascript/) is a great way to learn HTML, CSS, and JavaScript.
85 | 2. **Virtual Keyboard** Step by step process of building a [Virtual Keyboard](https://iq.opengenus.org/virtual-keyboard-html/) using HTML, CSS, and JavaScript.
86 | 3. **Dynamic Sound Board** Step by step process of building a [Dynamic Sound Board](https://iq.opengenus.org/building-dynamic-sound-board-using-html-css-and-javascript/) using HTML, CSS, and JavaScript.
87 | 4. **Whiteboard** [Whiteboard](https://iq.opengenus.org/whiteboard-html/) is a web-based drawing tool that allows you to create and share drawings online.
88 |
89 | **CSS Animation**
90 | =============
91 | 1. **Animation** [CSS Animation](https://iq.opengenus.org/css-animation/) is a technique to change the appearance and behavior of an element gradually to create an animation effect.
92 | 2. **Animated Button** [Animated Button](https://iq.opengenus.org/animated-button-using-html-and-css/) is a great way to make your website look more attractive and unique.
93 |
94 | **Advanced CSS Topics**
95 | ===================
96 | 1. **Video Background** Creating [Video Background](https://iq.opengenus.org/web-page-with-video-background/) is a great way to make your website look more attractive and unique.
97 | 2. **Infinite Scrolling** [Infinite Scrolling](https://iq.opengenus.org/infinite-scrolling-in-css-html/) is a technique to load content continuously as the user scrolls down the page.
98 | 3. **Modal in CSS** [Modal in CSS](https://iq.opengenus.org/modal-using-css-only/) is a technique to display content in a popup window on top of the current page.
99 | 4. **Print using CSS** [Print using CSS](https://iq.opengenus.org/using-css-to-print-html-webpage/) is a technique to print a webpage using CSS only.
100 | 5. **Pseudo classes** CSS has [pseudo-classes](https://iq.opengenus.org/css-pseudo-class/) that allow you to style elements based on information that is not contained in the document tree.
101 | 6. **Transparency** Learn to use [Transparency](https://iq.opengenus.org/transparency-in-css/) in CSS to make your website look more attractive and unique.
102 | 7. **SAAS Introduction** [SAAS](https://iq.opengenus.org/introduction-to-sass/) is a CSS preprocessor that allows you to use variables, nested rules, mixins, inline imports, and more.
103 |
104 | **Interview Questions**
105 | ===================
106 | 1. **Interview Questions** Prepare [these questions](https://iq.opengenus.org/interview-questions-on-css/) to ace your next interview.
107 |
108 | ---
109 | Generated by OpenGenus. Updated on 2023-11-27
--------------------------------------------------------------------------------
/src/deploy/text_list/css-checklist.txt:
--------------------------------------------------------------------------------
1 | CSS Checklist
2 |
3 | Only concepts that you need to practice to master CSS.
4 |
5 |
6 | Getting Started
7 | ===============
8 | 1. Introduction
9 | Cascading Style Sheets (CSS) is a style sheet language which is used for designing the webpages and their layouts developed in a markup language like HTML.
10 | Links (1): https://iq.opengenus.org/basics-of-css/
11 | 2. 3 CSS Levels
12 | CSS styles can be applied to HTML elements in 3 ways.
13 | Links (1): https://iq.opengenus.org/css-levels/
14 | 3. Keywords
15 | HTML and CSS are essential for web development and a good understanding of the key terms used is necessary.
16 | Links (3): https://iq.opengenus.org/html-tags-list/, https://iq.opengenus.org/basics-of-css/, https://iq.opengenus.org/key-terms-in-html-and-css/
17 | 4. Box Model
18 | CSS Box Model is a box that wraps around every HTML element. It consists of: margins, borders, padding, and the actual content.
19 | Links (1): https://iq.opengenus.org/css-box-model/
20 | 5. CSS Layouts
21 | CSS Layouts are used to define the position of HTML elements on a web page.
22 | Links (1): https://iq.opengenus.org/types-of-css-layout/
23 | 6. CSS Units
24 | CSS Units are used to specify the size and position of elements in a document.
25 | Links (1): https://iq.opengenus.org/different-units-in-css/
26 |
27 | ---
28 |
29 | CSS Properties
30 | ==============
31 | 1. Overflow
32 | The Overflow Property controls any content that might extend beyond the container.
33 | Links (1): https://iq.opengenus.org/overflow-property-in-css/
34 | 2. Clip
35 | The Clip Property is used to define the visible portion of an element by specifying its clipping region.
36 | Links (1): https://iq.opengenus.org/clip-property-in-css/
37 | 3. Height & Width
38 | Height and Width are properties in CSS which are used to set the height and width of boxes or elements.
39 | Links (1): https://iq.opengenus.org/height-and-width-in-css/
40 | 4. Padding
41 | The Padding Property is used to create spacing between content of HTML.
42 | Links (1): https://iq.opengenus.org/padding-in-css/
43 | 5. Margin
44 | The Margin Property is used to create space between webpage border and HTML Element's border.
45 | Links (1): https://iq.opengenus.org/margin-css/
46 | 6. Rounded Corners
47 | Rounded Corners / Border Radius is a CSS property that allows you to add rounded corners to an element.
48 | Links (1): https://iq.opengenus.org/css-border-radius-property/
49 | 7. Border
50 | The Border Property is used to create border around any HTML Tag.
51 | Links (1): https://iq.opengenus.org/border-css/
52 | 8. Transition
53 | Transition is a CSS property that allows you to change the values of a CSS property over time.
54 | Links (1): https://iq.opengenus.org/transitions-in-css/
55 | 9. Writing Mode
56 | The Writing Mode Property is used to specify whether lines of text are laid out horizontally or vertically.
57 | Links (1): https://iq.opengenus.org/css-writing-mode/
58 | 10. Customize Fonts
59 | You can Customize Fonts in HTML using CSS to make your website look more attractive and unique.
60 | Links (1): https://iq.opengenus.org/fonts-in-html/
61 |
62 | ---
63 |
64 | Selectors
65 | =========
66 | 1. CSS Selectors
67 | CSS selectors identify specific HTML elements as targets for CSS styles.
68 | Links (1): https://iq.opengenus.org/css-selectors/
69 | 2. Class Selectors
70 | The CSS Class Selectors are used to select all elements which belong to a particular class attribute.
71 | Links (1): https://iq.opengenus.org/class-selector/
72 | 3. Id Selectors
73 | The CSS Id Selector matches an element based on the value of its id attribute.
74 | Links (1): https://iq.opengenus.org/id-selector-in-css/
75 | 4. Id vs Class Selectors
76 | It is important to understand the differences between Id & Class Selectors and when to use each one.
77 | Links (1): https://iq.opengenus.org/id-and-class-selector/
78 | 5. Attribute Selectors
79 | Attribute Selectors in CSS allows you to select DOM elements based on the attributes they contain as well as the values of those attributes.
80 | Links (1): https://iq.opengenus.org/attribute-selector-in-css/
81 |
82 | ---
83 |
84 | Bootstrap
85 | =========
86 | 1. Bootstrap Grid
87 | Bootstrap Grid system is a responsive and mobile-first system for creating layouts in HTML and CSS.
88 | Links (1): https://iq.opengenus.org/grid-system-in-bootstrap/
89 | 2. Bootstrap Table
90 | Bootstrap Table is a dynamic and responsive HTML table framework provided by Bootstrap.
91 | Links (1): https://iq.opengenus.org/bootstrap-tables/
92 | 3. Bootstrap Slider
93 | Bootstrap Slider is a component that lets users pick a value from a given range.
94 | Links (1): https://iq.opengenus.org/slider-carousel-in-web/
95 | 4. Bootstrap Clearfix
96 | Bootstrap Clearfix is a utility class that clears floats from the left or right side of an element.
97 | Links (1): https://iq.opengenus.org/clearfix-in-bootstrap/
98 |
99 | ---
100 |
101 | Images
102 | ======
103 | 1. Image Properties
104 | CSS image properties are used to set the image size, image opacity, image alignment, etc.
105 | Links (1): https://iq.opengenus.org/images-styling-css/
106 | 2. Masking in CSS
107 | Masking image in CSS is a technique to hide a part of an element and show the rest of the element.
108 | Links (1): https://iq.opengenus.org/masking-in-css-mask-image/
109 |
110 | ---
111 |
112 | Positioning
113 | ===========
114 | 1. Positioning Property
115 | Positioning in CSS is used to set the position of an element in a document.
116 | Links (1): https://iq.opengenus.org/css-position-property/
117 | 2. Z-index
118 | Z-index is a CSS property that specifies the stack order of an element.
119 | Links (1): https://iq.opengenus.org/z-index-property-in-css/
120 | 3. Grid Positioning
121 | Grid Positioning is a CSS property that specifies the stack order of an element.
122 | Links (1): https://iq.opengenus.org/grid-positioning-in-css/
123 |
124 | ---
125 |
126 | Design Laws
127 | ===========
128 | 1. Parkinson's Law
129 | Parkinsons Law states that work expands to fill the time available for its completion.
130 | Links (1): https://iq.opengenus.org/parkinsons-law-in-ux-design/
131 | 2. Jakob's Law
132 | Jakob's Law states that users spend most of their time on other sites, and prefer your site to work the same way as all the other sites they already know.
133 | Links (1): https://iq.opengenus.org/jakobs-law-in-ux-design/
134 | 3. Miller's Law
135 | Miller's Law states that the average person can only keep 7 (plus or minus 2) items in their working memory.
136 | Links (1): https://iq.opengenus.org/millers-law-in-ux-design/
137 | 4. Hick's & Fitt's Law
138 | Hick's & Fitt's Law states that the time it takes to make a decision increases with the number and complexity of choices.
139 | Links (1): https://iq.opengenus.org/hicks-law-and-fitts-law-in-ux/
140 | 5. Peak End Rule
141 | Peak End Rule states that people judge an experience largely based on how they felt at its peak and at its end, rather than the total sum or average of every moment of the experience.
142 | Links (1): https://iq.opengenus.org/peak-end-rule-in-ux-design/
143 | 6. Goal Gradient Effect
144 | Goal Gradient Effect states that people are more motivated to complete a goal the closer they are to finishing it.
145 | Links (1): https://iq.opengenus.org/goal-gradient-effect-in-ux-design/
146 |
147 | ---
148 |
149 | Features
150 | ========
151 | 1. Media Query
152 | Media Query is a CSS technique that allows content to adapt to different screen sizes and resolutions.
153 | Links (1): https://iq.opengenus.org/media-queries/
154 | 2. Pagination
155 | Pagination is a technique to divide the content into multiple pages and display them one by one sequentially.
156 | Links (1): https://iq.opengenus.org/pagination-in-html-css/
157 | 3. CSS Gradients
158 | CSS Gradients are used to display smooth transitions between two or more specified colors.
159 | Links (1): https://iq.opengenus.org/gradients-css/
160 |
161 | ---
162 |
163 | Flexbox
164 | =======
165 | 1. Flexbox
166 | CSS flexbox is a layout module that provides an efficient way to arrange, align, and distribute space among items in a container.
167 | Links (1): https://iq.opengenus.org/flexbox/
168 | 2. Flebox vs Grid
169 | Understanding Flexbox vs Grid is important to know when to use which one.
170 | Links (1): https://iq.opengenus.org/flexbox-vs-grid/
171 |
172 | ---
173 |
174 | Game Projects
175 | =============
176 | 1. 2048
177 | 2048 is a single-player sliding block puzzle game designed by Italian web developer Gabriele Cirulli.
178 | Links (1): https://iq.opengenus.org/2048-game-using-javascript/
179 | 2. Bubble Shooter
180 | Bubble Shooter is a puzzle game where you shoot bubbles of the same color to clear the board.
181 | Links (1): https://iq.opengenus.org/bubble-shooter-game-in-html/
182 | 3. Car Racing
183 | Car Racing game is a simple 2D game where you have to dodge the incoming cars.
184 | Links (1): https://iq.opengenus.org/car-racing-game-in-html/
185 | 4. Wordle
186 | Wordle is a word game in which the player tries to find words within a set of scrambled letters.
187 | Links (1): https://iq.opengenus.org/wordle-using-html-css-and-js/
188 | 5. Whack A Mole
189 | Whack A Mole game is a simple 2D game where you have to hit the mole with a hammer.
190 | Links (1): https://iq.opengenus.org/whack-a-mole-game-using-html-css-js/
191 | 6. Bomberman
192 | Bomberman game is a simple 2D game where you have to kill all the enemies using bombs.
193 | Links (1): https://iq.opengenus.org/bomberman-game-in-html-and-javascript/
194 |
195 | ---
196 |
197 | Web Development Projects
198 | ========================
199 | 1. Playable Piano
200 | Building a Playable Piano is a great way to learn HTML, CSS, and JavaScript.
201 | Links (1): https://iq.opengenus.org/playable-piano-in-html-css-and-javascript/
202 | 2. Virtual Keyboard
203 | Step by step process of building a Virtual Keyboard using HTML, CSS, and JavaScript.
204 | Links (1): https://iq.opengenus.org/virtual-keyboard-html/
205 | 3. Dynamic Sound Board
206 | Step by step process of building a Dynamic Sound Board using HTML, CSS, and JavaScript.
207 | Links (1): https://iq.opengenus.org/building-dynamic-sound-board-using-html-css-and-javascript/
208 | 4. Whiteboard
209 | Whiteboard is a web-based drawing tool that allows you to create and share drawings online.
210 | Links (1): https://iq.opengenus.org/whiteboard-html/
211 |
212 | ---
213 |
214 | CSS Animation
215 | =============
216 | 1. Animation
217 | CSS Animation is a technique to change the appearance and behavior of an element gradually to create an animation effect.
218 | Links (1): https://iq.opengenus.org/css-animation/
219 | 2. Animated Button
220 | Animated Button is a great way to make your website look more attractive and unique.
221 | Links (1): https://iq.opengenus.org/animated-button-using-html-and-css/
222 |
223 | ---
224 |
225 | Advanced CSS Topics
226 | ===================
227 | 1. Video Background
228 | Creating Video Background is a great way to make your website look more attractive and unique.
229 | Links (1): https://iq.opengenus.org/web-page-with-video-background/
230 | 2. Infinite Scrolling
231 | Infinite Scrolling is a technique to load content continuously as the user scrolls down the page.
232 | Links (1): https://iq.opengenus.org/infinite-scrolling-in-css-html/
233 | 3. Modal in CSS
234 | Modal in CSS is a technique to display content in a popup window on top of the current page.
235 | Links (1): https://iq.opengenus.org/modal-using-css-only/
236 | 4. Print using CSS
237 | Print using CSS is a technique to print a webpage using CSS only.
238 | Links (1): https://iq.opengenus.org/using-css-to-print-html-webpage/
239 | 5. Pseudo classes
240 | CSS has pseudo-classes that allow you to style elements based on information that is not contained in the document tree.
241 | Links (1): https://iq.opengenus.org/css-pseudo-class/
242 | 6. Transparency
243 | Learn to use Transparency in CSS to make your website look more attractive and unique.
244 | Links (1): https://iq.opengenus.org/transparency-in-css/
245 | 7. SAAS Introduction
246 | SAAS is a CSS preprocessor that allows you to use variables, nested rules, mixins, inline imports, and more.
247 | Links (1): https://iq.opengenus.org/introduction-to-sass/
248 |
249 | ---
250 |
251 | Interview Questions
252 | ===================
253 | 1. Interview Questions
254 | Prepare these questions to ace your next interview.
255 | Links (1): https://iq.opengenus.org/interview-questions-on-css/
256 |
257 | ---
258 | Generated by OpenGenus. Updated on 2023-12-28
--------------------------------------------------------------------------------
/src/deploy/markdown_list/operating-system-checklist.md:
--------------------------------------------------------------------------------
1 | # Operating System Checklist
2 |
3 | Only concepts that you need to review to ace your Interview
4 |
5 | **Types & Variants: -**
6 | ===================
7 | 1. **Evolution of Operating systems**
8 | 2. **Types of Operating Systems** An operating system ( OS) is system software that manages computer hardware and software resources, and provides common services for computer programs .
9 | Operating Systems have evolved in past years. It went through several changes before getting its original form. These changes in the operating system are known as the [evolution of operating systems](#)
10 | 3. **Distributed Operating System** A [distributed operating system](https://iq.opengenus.org/distributed-operating-system/) is a concept in which distributed programs operate on several machines that are linked together via communications. But it has its
11 | [challenges ](https://iq.opengenus.org/challenges-failures-in-distributed-systems/) too.
12 | 4. **GNU/Linux** Linux or [GNU/Linux](https://iq.opengenus.org/gnu-linux/) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project.
13 | 5. **Android** [Android](https://iq.opengenus.org/architecture-of-android-os/) is a mobile operating system based on a modified version of the Linux kernel and other open-source software, designed for touchscreen devices such as smartphones and tablets. It is developed by a consortium of developers known as the Open Handset Alliance, mostly by Google.
14 | 6. **Inter-Process Communication** [Inter-process communication (IPC)](https://iq.opengenus.org/interprocess-communication-and-types-in-os/) helps to achieve the communication among the processes or threads in a system.
15 | 7. **APIs** An [application programming interface ( API)]() is a way for two or more computer programs to communicate with each other.
16 | 8. **Types of System Call Methods** [System](#) calls are interfaces provisioned by the operating system to allow user-level applications to interact with low-level hardware components & make use of all the services provided by the kernel, which is a core component and the heart of an operating system that manages all the hardware and the services provided by the OS.
17 | 9. **I/O Device controllers** [I/O Controllers](#)are a series of microchips which help in the communication of data between the central processing unit and the motherboard. The main purpose of this system is to help in the interaction of peripheral devices with the control units (CUs)
18 | 10. **Scheduling & Spooling** [CPU Scheduling](#) is a process that allows one process to use the CPU while another process is delayed (in standby) due to unavailability of any resources such as I / O etc, thus making full use of the CPU.
19 | [Spooling](#) is the process of temporary storage of data for use and execution by a device, program, or system. Data is sent to and stored in main memory or other volatile storage until it is requested for execution by a program or computer.
20 | 11. **Operations & Buffering** [Input/output operations](#) are the communications between an information processing system, such as a computer, and the outside world, possibly a human or another information processing system.
21 | [Buffering](#) is a technique which is used to enhance the performance of I/O operations of the system. Basically, buffering in operating system is a method of storing data in a buffer or cache temporarily, this buffered data then can be accessed more quickly as compared to the original source of the data.
22 | 12. **Interrupt Handling** [Interrupt handling](#) refers to the process by which a computer system or program responds to an interrupt signal. An interrupt is a signal that indicates an event or condition that requires immediate attention from the processor. This can be triggered by hardware devices such as timers, I/O devices, or errors, as well as software-generated interrupts.
23 | 13. **File Concepts & Operations** [File concepts and operations](#) refer to the principles and actions involved in working with files on a computer system.
24 |
25 | A file is a named collection of related information that is stored on a storage device, such as a hard drive or SSD. Files can contain various types of data, including text, images, audio, video, and more.
26 |
27 | File operations involve tasks such as creating, opening, reading, writing, modifying, deleting, and closing files. These operations are performed by the operating system or applications to manage and manipulate file contents.
28 | 14. **File Organization & Accessing** [File organization](#) refers to the way in which files are structured and stored on a storage device. It involves determining how data is arranged within a file and how files are organized within a file system.
29 | [Accessing](#) files refers to the process of retrieving or manipulating data stored within a file
30 | 15. **File System Implementations** A [file system](#) is a method an operating system uses to store, organize, and manage files and directories on a storage
31 | 16. **Disk Scheduling Algorithms** [Disk Scheduling Algorithms](#) in an operating system can be referred to as a manager of a grocery store that manages all the incoming and outgoing requests for goods of that store. He keeps a record of what is available in-store, what we need further, and manages the timetable of transaction of goods.
32 | 17. **BIOS** [BIOS](https://iq.opengenus.org/bios/) - firmware stored in non-volatile memory e.g EPROM, responsible for performing startup procedures such as POST before passing control to the bootloader which loads the OS.
33 | 18. **UEFI & Legacy** [UEFI & Legacy](https://iq.opengenus.org/uefi-and-legacy-boot/) are firmware that specifies an interface between the computer operating system and the underlying firmware. Legacy boot involves booting the computer using legacy firmware such as BIOS and UEFI boot involves booting a computer using the more advanced UEFI.
34 | 19. **Secure Boot** [Secure Boot](https://iq.opengenus.org/secure-boot/) is a security standard implemented in the advanced UEFI to prevent malware from attacking the computer during bootup when the computer is most vulnerable.
35 | 20. **Threats & Vulnerabilities** [Threats and vulnerabilities](#) in an operating system (OS) refer to potential risks or weaknesses that can be exploited by malicious actors or result in unintended consequences. These threats and vulnerabilities can compromise the security, stability, and functionality of the OS.
36 | 21. **Security Policies & Enforcement** [Security policies and enforcements](#) in an Operating System (OS) refer to the rules and mechanisms put in place to protect the system from unauthorized access, ensure data confidentiality and integrity, and mitigate potential security threats. These policies are typically enforced by the OS through various security mechanisms.
37 | 22. **Encryption & Cryptography** [Encryption](#) refers to the process of converting plain, readable data into an encoded or encrypted form. The purpose of encryption is to ensure that even if the data is intercepted or accessed by unauthorized users, it remains unintelligible and can only be deciphered with the appropriate decryption key.
38 | [Cryptography](#) involves techniques, protocols, and mathematical algorithms that secure communication, prevent unauthorized access, and protect confidentiality, integrity, and authenticity of data. It includes encryption, decryption, digital signatures, key management, and various cryptographic protocols.
39 | 23. **Linux Memory Management** Learn about [how memory is managed in linux](https://iq.opengenus.org/linux-memory-management/)
40 | 24. **Process control block** A [process control block (PCB)](#) is a data structure used by computer operating systems to store all the information about a process. It specifies and tracks the process state, scheduling, control, and resources.
41 | 25. **Context-Switching** [Context Switching](https://iq.opengenus.org/context-switching-in-os/) helps store the context of a process, thread, or state, which can be accessed at the same point when reloaded.
42 | It allows multiple processes to share the same CPU at a single given point of time, making it a multitasking feature.
43 | 26. **Memory Allocation Strategy fits** To gain proper memory utilization, memory allocation must be allocated or [fitted](https://iq.opengenus.org/first-best-and-worst-fit-strategies/) efficient manner. One of the simplest methods for allocating memory is to divide memory into several fixed-sized partitions
44 | 27. **Scheduling Algorithms** [CPU Scheduling algorithm](https://iq.opengenus.org/types-of-cpu-scheduling-algorithms/) is an algorithm which is used to assign system resources to processes in a computing system.
45 | 28. **Round Robin Algorithm** [Round Robin Scheduling Algorithm ](https://iq.opengenus.org/round-robin-scheduling/)is one of the simplest scheduling algorithm used in various operating systems for process scheduling and networks. The key idea is to allocate CPU to all processes in the same order for the same amount of time.
46 | 29. **Shortest Job First(SJF)** [Shortest Job First (SJF)](https://iq.opengenus.org/round-robin-scheduling/) CPU scheduling algorithm is a CPU scheduling algorithm which is based on the principles of Greedy Algorithms. The key idea is to allocate the CPU to the process with the smallest burst time so that the CPU seems to be more responsive. Burst time is the amount of time required by a process for its execution on the CPU.
47 | 30. **Mutex & Critical Section** Learn more about[Mutex & Critical Section](https://iq.opengenus.org/mutex-and-critical-section/) in resource management.
48 | 31. **Lock Convoy Problem** A[ lock convoy](https://iq.opengenus.org/lock-convoy-problem/) is a performance problem that can occur when using locks for concurrency control in a multithreaded application.
49 | 32. **Producer Consumer Problem** The [producer-consumer problem](#) is an example of a multi-process synchronization problem. The problem describes two processes, the producer and the consumer that shares a common fixed-size buffer use it as a queue.
50 | 33. **Dining Philisophers' Problem** The [dining philosophers problem](#) is an example problem often used in concurrent algorithm design to illustrate synchronization issues and techniques for resolving them
51 | 34. **Readers Writers Problem** The [Readers-Writers Problem](#) is a classic synchronization and concurrency problem in computer science and operating system design. It arises when there is a shared resource that can be read by multiple processes (readers) but only written by one process (writer) at a time.
52 | 35. **Sleeping Barber Problem** The[ Sleeping Barber Problem](https://iq.opengenus.org/sleeping-barber-problem/) is a synchronization problem in computer science that deals with the management of a shared resource by multiple processes.
53 | 36. **Learn more about Virtualization** Add description.
54 | 37. **Hypervisors** A [hypervisor](#) is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a [hypervisor](#) runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine.
55 | 38. **QEMU & KVMs** [QEMU](#) is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems
56 | [Kernel-based Virtual Machine (KVM)](#) is a free and open-source virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007.
57 | 39. **VM Management** [VM management](#), also known as virtual machine management, refers to the process of managing and administering virtual machines (VMs) within a virtualization environment. Virtual machines are software emulations of physical computers that enable multiple operating systems to run concurrently on a single physical machine.
58 | 40. **Storage & Networking** [Storage](#) in VM refers to the allocation and management of disk space for storing data and operating system files. It is required for installing and running applications within the VM.
59 | [Networking](#) in VM involves connecting VMs to each other and to external networks, enabling communication and sharing of resources.
60 | 41. **Virtualization Security** [Security]() in virtualization refers to the measures and practices implemented to protect virtualized environments and the data and resources within them. Virtualization allows multiple virtual machines (VMs) to run on a single physical server, which introduces unique security considerations.
61 |
62 | ---
63 | Generated by OpenGenus. Updated on 2023-11-27
--------------------------------------------------------------------------------
/src/deploy/text_list/operating-system-checklist.txt:
--------------------------------------------------------------------------------
1 | Operating System Checklist
2 |
3 | Only concepts that you need to review to ace your Interview
4 |
5 |
6 | Types & Variants: -
7 | ===================
8 | 1. Evolution of Operating systems
9 |
10 | Links (0):
11 | 2. Types of Operating Systems
12 | An operating system ( OS) is system software that manages computer hardware and software resources, and provides common services for computer programs .
13 | Operating Systems have evolved in past years. It went through several changes before getting its original form. These changes in the operating system are known as the evolution of operating systems
14 | Links (1): #
15 | 3. Distributed Operating System
16 | A distributed operating system is a concept in which distributed programs operate on several machines that are linked together via communications. But it has its
17 | challenges too.
18 | Links (2): https://iq.opengenus.org/distributed-operating-system/, https://iq.opengenus.org/challenges-failures-in-distributed-systems/
19 | 4. GNU/Linux
20 | Linux or GNU/Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project.
21 | Links (1): https://iq.opengenus.org/gnu-linux/
22 | 5. Android
23 | Android is a mobile operating system based on a modified version of the Linux kernel and other open-source software, designed for touchscreen devices such as smartphones and tablets. It is developed by a consortium of developers known as the Open Handset Alliance, mostly by Google.
24 | Links (1): https://iq.opengenus.org/architecture-of-android-os/
25 | 6. Inter-Process Communication
26 | Inter-process communication (IPC) helps to achieve the communication among the processes or threads in a system.
27 | Links (1): https://iq.opengenus.org/interprocess-communication-and-types-in-os/
28 | 7. APIs
29 | An application programming interface ( API) is a way for two or more computer programs to communicate with each other.
30 | Links (1):
31 | 8. Types of System Call Methods
32 | System calls are interfaces provisioned by the operating system to allow user-level applications to interact with low-level hardware components & make use of all the services provided by the kernel, which is a core component and the heart of an operating system that manages all the hardware and the services provided by the OS.
33 | Links (1): #
34 | 9. I/O Device controllers
35 | I/O Controllersare a series of microchips which help in the communication of data between the central processing unit and the motherboard. The main purpose of this system is to help in the interaction of peripheral devices with the control units (CUs)
36 | Links (1): #
37 | 10. Scheduling & Spooling
38 | CPU Scheduling is a process that allows one process to use the CPU while another process is delayed (in standby) due to unavailability of any resources such as I / O etc, thus making full use of the CPU.
39 | Spooling is the process of temporary storage of data for use and execution by a device, program, or system. Data is sent to and stored in main memory or other volatile storage until it is requested for execution by a program or computer.
40 | Links (2): #, #
41 | 11. Operations & Buffering
42 | Input/output operations are the communications between an information processing system, such as a computer, and the outside world, possibly a human or another information processing system.
43 | Buffering is a technique which is used to enhance the performance of I/O operations of the system. Basically, buffering in operating system is a method of storing data in a buffer or cache temporarily, this buffered data then can be accessed more quickly as compared to the original source of the data.
44 | Links (2): #, #
45 | 12. Interrupt Handling
46 | Interrupt handling refers to the process by which a computer system or program responds to an interrupt signal. An interrupt is a signal that indicates an event or condition that requires immediate attention from the processor. This can be triggered by hardware devices such as timers, I/O devices, or errors, as well as software-generated interrupts.
47 | Links (1): #
48 | 13. File Concepts & Operations
49 | File concepts and operations refer to the principles and actions involved in working with files on a computer system.
50 |
51 | A file is a named collection of related information that is stored on a storage device, such as a hard drive or SSD. Files can contain various types of data, including text, images, audio, video, and more.
52 |
53 | File operations involve tasks such as creating, opening, reading, writing, modifying, deleting, and closing files. These operations are performed by the operating system or applications to manage and manipulate file contents.
54 | Links (1): #
55 | 14. File Organization & Accessing
56 | File organization refers to the way in which files are structured and stored on a storage device. It involves determining how data is arranged within a file and how files are organized within a file system.
57 | Accessing files refers to the process of retrieving or manipulating data stored within a file
58 | Links (2): #, #
59 | 15. File System Implementations
60 | A file system is a method an operating system uses to store, organize, and manage files and directories on a storage
61 | Links (1): #
62 | 16. Disk Scheduling Algorithms
63 | Disk Scheduling Algorithms in an operating system can be referred to as a manager of a grocery store that manages all the incoming and outgoing requests for goods of that store. He keeps a record of what is available in-store, what we need further, and manages the timetable of transaction of goods.
64 | Links (1): #
65 | 17. BIOS
66 | BIOS - firmware stored in non-volatile memory e.g EPROM, responsible for performing startup procedures such as POST before passing control to the bootloader which loads the OS.
67 | Links (1): https://iq.opengenus.org/bios/
68 | 18. UEFI & Legacy
69 | UEFI & Legacy are firmware that specifies an interface between the computer operating system and the underlying firmware. Legacy boot involves booting the computer using legacy firmware such as BIOS and UEFI boot involves booting a computer using the more advanced UEFI.
70 | Links (1): https://iq.opengenus.org/uefi-and-legacy-boot/
71 | 19. Secure Boot
72 | Secure Boot is a security standard implemented in the advanced UEFI to prevent malware from attacking the computer during bootup when the computer is most vulnerable.
73 | Links (1): https://iq.opengenus.org/secure-boot/
74 | 20. Threats & Vulnerabilities
75 | Threats and vulnerabilities in an operating system (OS) refer to potential risks or weaknesses that can be exploited by malicious actors or result in unintended consequences. These threats and vulnerabilities can compromise the security, stability, and functionality of the OS.
76 | Links (1): #
77 | 21. Security Policies & Enforcement
78 | Security policies and enforcements in an Operating System (OS) refer to the rules and mechanisms put in place to protect the system from unauthorized access, ensure data confidentiality and integrity, and mitigate potential security threats. These policies are typically enforced by the OS through various security mechanisms.
79 | Links (1): #
80 | 22. Encryption & Cryptography
81 | Encryption refers to the process of converting plain, readable data into an encoded or encrypted form. The purpose of encryption is to ensure that even if the data is intercepted or accessed by unauthorized users, it remains unintelligible and can only be deciphered with the appropriate decryption key.
82 | Cryptography involves techniques, protocols, and mathematical algorithms that secure communication, prevent unauthorized access, and protect confidentiality, integrity, and authenticity of data. It includes encryption, decryption, digital signatures, key management, and various cryptographic protocols.
83 | Links (2): #, #
84 | 23. Linux Memory Management
85 | Learn about how memory is managed in linux
86 | Links (1): https://iq.opengenus.org/linux-memory-management/
87 | 24. Process control block
88 | A process control block (PCB) is a data structure used by computer operating systems to store all the information about a process. It specifies and tracks the process state, scheduling, control, and resources.
89 | Links (1): #
90 | 25. Context-Switching
91 | Context Switching helps store the context of a process, thread, or state, which can be accessed at the same point when reloaded.
92 | It allows multiple processes to share the same CPU at a single given point of time, making it a multitasking feature.
93 | Links (1): https://iq.opengenus.org/context-switching-in-os/
94 | 26. Memory Allocation Strategy fits
95 | To gain proper memory utilization, memory allocation must be allocated or fitted efficient manner. One of the simplest methods for allocating memory is to divide memory into several fixed-sized partitions
96 | Links (1): https://iq.opengenus.org/first-best-and-worst-fit-strategies/
97 | 27. Scheduling Algorithms
98 | CPU Scheduling algorithm is an algorithm which is used to assign system resources to processes in a computing system.
99 | Links (1): https://iq.opengenus.org/types-of-cpu-scheduling-algorithms/
100 | 28. Round Robin Algorithm
101 | Round Robin Scheduling Algorithm is one of the simplest scheduling algorithm used in various operating systems for process scheduling and networks. The key idea is to allocate CPU to all processes in the same order for the same amount of time.
102 | Links (1): https://iq.opengenus.org/round-robin-scheduling/
103 | 29. Shortest Job First(SJF)
104 | Shortest Job First (SJF) CPU scheduling algorithm is a CPU scheduling algorithm which is based on the principles of Greedy Algorithms. The key idea is to allocate the CPU to the process with the smallest burst time so that the CPU seems to be more responsive. Burst time is the amount of time required by a process for its execution on the CPU.
105 | Links (1): https://iq.opengenus.org/round-robin-scheduling/
106 | 30. Mutex & Critical Section
107 | Learn more aboutMutex & Critical Section in resource management.
108 | Links (1): https://iq.opengenus.org/mutex-and-critical-section/
109 | 31. Lock Convoy Problem
110 | A lock convoy is a performance problem that can occur when using locks for concurrency control in a multithreaded application.
111 | Links (1): https://iq.opengenus.org/lock-convoy-problem/
112 | 32. Producer Consumer Problem
113 | The producer-consumer problem is an example of a multi-process synchronization problem. The problem describes two processes, the producer and the consumer that shares a common fixed-size buffer use it as a queue.
114 | Links (1): #
115 | 33. Dining Philisophers' Problem
116 | The dining philosophers problem is an example problem often used in concurrent algorithm design to illustrate synchronization issues and techniques for resolving them
117 | Links (1): #
118 | 34. Readers Writers Problem
119 | The Readers-Writers Problem is a classic synchronization and concurrency problem in computer science and operating system design. It arises when there is a shared resource that can be read by multiple processes (readers) but only written by one process (writer) at a time.
120 | Links (1): #
121 | 35. Sleeping Barber Problem
122 | The Sleeping Barber Problem is a synchronization problem in computer science that deals with the management of a shared resource by multiple processes.
123 | Links (1): https://iq.opengenus.org/sleeping-barber-problem/
124 | 36. Learn more about Virtualization
125 | Add description.
126 | Links (1): https://iq.opengenus.org/virtualization/
127 | 37. Hypervisors
128 | A hypervisor is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine.
129 | Links (1): #
130 | 38. QEMU & KVMs
131 | QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems
132 | Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007.
133 | Links (2): #, #
134 | 39. VM Management
135 | VM management, also known as virtual machine management, refers to the process of managing and administering virtual machines (VMs) within a virtualization environment. Virtual machines are software emulations of physical computers that enable multiple operating systems to run concurrently on a single physical machine.
136 | Links (1): #
137 | 40. Storage & Networking
138 | Storage in VM refers to the allocation and management of disk space for storing data and operating system files. It is required for installing and running applications within the VM.
139 | Networking in VM involves connecting VMs to each other and to external networks, enabling communication and sharing of resources.
140 | Links (2): #, #
141 | 41. Virtualization Security
142 | Security in virtualization refers to the measures and practices implemented to protect virtualized environments and the data and resources within them. Virtualization allows multiple virtual machines (VMs) to run on a single physical server, which introduces unique security considerations.
143 | Links (1):
144 |
145 | ---
146 | Generated by OpenGenus. Updated on 2023-12-28
--------------------------------------------------------------------------------
/src/deploy/text_list/large-language-models-checklist.txt:
--------------------------------------------------------------------------------
1 | Large Language Models: Checklist
2 |
3 | This comprehensive checklist encompasses all the crucial concepts and insights required to understand Large Language Models (LLMs). It's designed as an efficient alternative to the broader and more time-consuming task of sifting through extensive literature and research. Whether you're prepping for interviews, deepening your expertise, or simply curious about the state of AI, this checklist will streamline your learning process. Save time and study smarter.
4 |
5 |
6 | Week 1: Introduction to Large Language Models
7 | =============================================
8 | 1. Core topics in Natural Language Processing
9 | In this article we are going to cover about the NLP tasks/ topics that is used to make computers understand the natural languages. Read more.
10 | Links (1): https://iq.opengenus.org/nlp-topics-with-nltk/
11 | 2. Understanding the Basics of LLMs
12 | History of Large Language Models as well as an introduction to the concepts behind LLMs and some use cases.
13 | Links (1): https://iq.opengenus.org/large-language-models/
14 |
15 | ---
16 |
17 | Week 2: Fundamentals of NLP
18 | ===========================
19 | 1. Introduction
20 | NLP refers to the ability of the computers to understand human speech or text as it is spoken or written. Some core topics are listed here. TF-IDF is an important metric used in NLP mostly used to find similarities between documents .
21 | Links (4): https://iq.opengenus.org/use-of-deep-learning-in-nlp/, https://iq.opengenus.org/nlp-topics-with-nltk/, https://iq.opengenus.org/tf-idf/, https://iq.opengenus.org/document-similarity-tf-idf/
22 | 2. NLP models
23 | There are different types of NLP models present. Some of them are BERT, GPT, XLNet, RoBERTa and ALBERT.
24 | Links (4): https://iq.opengenus.org/types-of-nlp-models/, https://iq.opengenus.org/bert-for-text-summarization/, https://iq.opengenus.org/introduction-to-gpt-models/, https://iq.opengenus.org/advanced-nlp-models/
25 | 3. Text Preprocessing
26 | Text preprocessing process of converting a human language text into a machine-interpretable text for further usage. Stemming (Porter Stemmer algorithm) is an example.
27 | .
28 | Links (2): https://iq.opengenus.org/commonly-used-neural-networks/, https://iq.opengenus.org/porter-stemmer/
29 | 4. Text summarization
30 | Text summarization is the process of creating a compact yet accurate summary of text documents. Some techniques include Luhn's Heuristic Method, Edmundson Heuristic Method, SumBasic algorithm , KL-Sum, LexRank , TextRank , Reduction , Latent Semantic Analysis and use of RNN.
31 | Links (10): https://iq.opengenus.org/text-summarization-techniques/, https://iq.opengenus.org/luhns-heuristic-method-for-text-summarization/, https://iq.opengenus.org/edmundson-heuristic-method-for-text-summarization/, https://iq.opengenus.org/sumbasic-algorithm-for-text-summarization/, https://iq.opengenus.org/k-l-sum-algorithm-for-text-summarization/, https://iq.opengenus.org/lexrank-text-summarization/, https://iq.opengenus.org/textrank-for-text-summarization/, https://iq.opengenus.org/graph-based-approach-for-text-summarization/, https://iq.opengenus.org/latent-semantic-analysis-for-text-summarization/, https://iq.opengenus.org/text-summarization-using-rnn/
32 | 5. Topic Modelling
33 | There are different techniques for topic modelling. Some include Latent Dirichlet Allocation , Non Negative Matrix Factorization, Pachinko Allocation Model and Latent Semantic Analysis.
34 | Links (5): https://iq.opengenus.org/topic-modelling-techniques/, https://iq.opengenus.org/latent-dirichlet-allocation/, hhttps://iq.opengenus.org/topic-modeling-nmf/, https://iq.opengenus.org/pachinko-allocation-model//, https://iq.opengenus.org/topic-modeling-lsa/#:~:text=Latent%20Semantic%20Model%20is%20a,from%20the%20corpus%20of%20text.
35 | 6. Information Retrieval
36 | Information Retrieval can be defined as finding material of an unstructured nature that satisfies the information need from within large collections. It uses the concept of indexing . PageRank algorithm is used to rank web pages used for Google Search Engine.
37 | Links (2): https://iq.opengenus.org/idea-of-indexing-in-nlp/, https://iq.opengenus.org/pagerank/
38 | 7. Sentiment analysis
39 | There are various techniques to perform sentiment analysis. Using Naive Bayes classifier, Lexicon-based techniques, ML approaches and LSTM are some of them.
40 | Links (5): https://iq.opengenus.org/sentiment-analysis-techniques/, https://iq.opengenus.org/naive-bayes-sentiment-analysis/, https://iq.opengenus.org/lexicon-based-sentiment-analysis/, https://iq.opengenus.org/ml-for-sentiment-analysis/, https://iq.opengenus.org/sentiment-analysis-in-lstm-keras/
41 | 8. Miscellaneous
42 | Some other important topics in NLP are document clustering, language identification techniques, spell correction, word embedding, word representations and byte pair encoding.
43 | Links (6): https://iq.opengenus.org/document-clustering-nlp-kmeans/, https://iq.opengenus.org/language-identification-techniques/, https://iq.opengenus.org/different-spell-correction-techniques-in-nlp/, https://iq.opengenus.org/word-embedding/, https://iq.opengenus.org/word-representations/, https://iq.opengenus.org/byte-pair-encoding/
44 |
45 | ---
46 |
47 | Week 3: Core concepts in LLM
48 | ============================
49 | 1. Word Embedding
50 | In this article, we have explained the idea behind Word Embedding, why it is important, different Word Embedding algorithms like Embedding layers, word2Vec and other algorithms. Read more.
51 | Links (1): https://iq.opengenus.org/word-embedding/
52 | 2. Attention Mechanism
53 | Attention Mechanism has been a powerful tool for improving the performance of Deep Learning and NLP models by allowing them to extract the most relevant and important information from data, giving them the ability to simulate cognitive abilities of humans. Read more.
54 | Links (1): https://iq.opengenus.org/different-types-of-attention-mechanism/
55 |
56 | ---
57 |
58 | Week 4: GPT
59 | ===========
60 | 1. GPT model architecture
61 | In this article we will talk about one of the game changer and the state-of-art in context of natural language processing field, which is the GPT 3.5 Read more.
62 | Links (1): https://iq.opengenus.org/gpt-3-5-model/
63 | 2. Comprehensive Comparison of OpenAI LLMs OpenAI's GPT Models
64 | This article provides a comprehensive comparison of OpenAI's LLMs, charting the evolution from GPT-2 to GPT-4. Read more.
65 | Links (1): https://iq.opengenus.org/gpt2-vs-gpt3-vs-gpt35-vs-gpt4/
66 | 3. Detect GPT
67 | In this article, we'll be discussing DetectGPT, a natural language processing model that's been developed to detect whether a given text was generated by machine or written by a human. Read more.
68 | Links (1): https://iq.opengenus.org/detect-gpt/
69 |
70 | ---
71 |
72 | Week 5: Key LLM Architectures
73 | =============================
74 | 1. An Introduction to BERT
75 | Dive into the basics of BERT, a revolutionary model in NLP, and understand its core concepts and architecture. Read more.
76 | Links (1): https://iq.opengenus.org/introduction-to-bert/
77 | 2. Comparing BART and BERT
78 | In this article, we have explored the differences between two state of the art NLP models namely BERT and BART. Read more.
79 | Links (1): https://iq.opengenus.org/bart-vs-bert/
80 | 3. BERT Large Model
81 | Explore the BERT Large Model with its 24 encoder layers, offering deeper insights into its advanced capabilities. Read more.
82 | Links (1): https://iq.opengenus.org/bert-large/
83 | 4. RoBERTa: Robustly Optimized BERT Pre-training Approach
84 | Learn about RoBERTa, an optimized version of BERT, and how it enhances pre-training for better performance. Read more.
85 | Links (1): https://iq.opengenus.org/roberta/
86 | 5. ALBERT (A Lite BERT) NLP model
87 | ALBERT stands for A Lite BERT and is a modified version of BERT NLP model. It builds on three key points such as Parameter Sharing, Embedding Factorization and Sentence Order Prediction (SOP).Read more.
88 | Links (1): https://iq.opengenus.org/albert-nlp/
89 | 6. Comparing XLNet, RoBERTa, ALBERT & GPT
90 | In this article, we are going to explore some advanced NLP models such as XLNet, RoBERTa, ALBERT and GPT and will compare to see how these models are different from the fundamental model i.e BERT.Read more.
91 | Links (1): https://iq.opengenus.org/advanced-nlp-models/
92 | 7. ERNIE 3.0 TITAN LLM
93 | Discover the features of Baidu's ERNIE 3.0 TITAN LLM and its unique architecture that sets it apart. Read more.
94 | Links (1): https://iq.opengenus.org/ernie-titan-llm/
95 | 8. XLNet Model Architecture
96 | Explore XLNet, a robust alternative to BERT, and its architecture that outperforms BERT on several benchmarks. Read more.
97 | Links (1): https://iq.opengenus.org/xlnet-model-architecture/
98 | 9. ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
99 | This article introduces the ELECTRA model, which is a pre-training method that uses a discriminator to distinguish between the original and corrupted tokens, rather than a generator to predict the masked tokens.
100 | Links (0):
101 | 10. Megatron NLG model
102 | NVIDIA created the massive transformer-based NLG model known as Megatron. It is based on the transformer architecture and made to produce text that resembles human speech quickly and accurately. It is intended to produce excellent text that, in terms of grammar, style, and coherence, resembles human-written text. Read more
103 | Links (1): https://iq.opengenus.org/megatron-nlg-model/
104 |
105 | ---
106 |
107 | Week 6: Prompting
108 | =================
109 | 1. 7 Different Prompting Techniques
110 | Explore seven diverse prompting techniques that enhance the effectiveness and versatility of language models in various applications. Read more.
111 | Links (1): https://iq.opengenus.org/different-prompting-techniques/
112 |
113 | ---
114 |
115 | Week 7: Specialized Techniques in LLMs
116 | ======================================
117 | 1. Retrieval Augmented Generation (RAG): Basics
118 | An introduction to RAG, a fine-tuning technique for LLMs developed by Meta, enhancing language models with retrieval capabilities. Read more.
119 | Links (1): https://iq.opengenus.org/retrieval-augmented-generation-rag/
120 | 2. Tokenization in NLP
121 | Delve into the complete guide on tokenization in NLP, understanding its importance and various methods used in language processing. Read more.
122 | Links (1): https://iq.opengenus.org/tokenization-in-nlp/
123 | 3. Fine-Tuning and Transfer Learning
124 | Understand the concept of fine-tuning pre-trained models for specific tasks and the principles of transfer learning in the context of LLMs.
125 | Links (0):
126 | 4. Deployment Challenges
127 | Examine challenges and considerations when deploying LLMs in real-world applications, including computational resources, latency, and integration with existing systems.
128 | Links (0):
129 | 5. Adversarial Attacks
130 | Study techniques and challenges related to adversarial attacks on LLMs, understanding how models can be manipulated or misled.
131 | Links (0):
132 |
133 | ---
134 |
135 | Week 8: Implementation and Applications
136 | =======================================
137 | 1. OpenAI Codex: Technical Overview
138 | Learn about the AI platform behind LLMs like OpenAI Codex that can write code based on natural language prompts. Read more.
139 | Links (1): https://iq.opengenus.org/openai-codex/
140 | 2. Introduction to Multilingual BERT (M-BERT)
141 | In the previous article, we discussed about the in-depth working of BERT for Native Language Identification (NLI) task. In this article, we explore what is Multilingual BERT (M-BERT) and see a general introduction of this model. Read more.
142 | Links (1): https://iq.opengenus.org/multilingual-bert/
143 | 3. Building your own GPT code assistant
144 | In this article, we have explored how one can build their own GPT code assistant that is Code generation using GPT model architecture.Read more.
145 | Links (1): https://iq.opengenus.org/gpt-code-assistant/
146 |
147 | ---
148 |
149 | Week 9: Research and Development in LLM
150 | =======================================
151 | 1. 25 Must-Read NLP Papers in Deep Learning
152 | A comprehensive list of essential NLP papers in deep learning, pivotal for understanding the advancements in the field. Read more.
153 | Links (1): https://iq.opengenus.org/nlp-papers-in-dl/
154 | 2. Attention Is All You Need: Paper Summary and Insights
155 | This article dives deep into one of the most influential papers on NLP Read more.
156 | Links (1): https://iq.opengenus.org/attention-is-all-you-need-summary/
157 |
158 | ---
159 |
160 | Week 10: Advanced Considerations
161 | ================================
162 | 1. Ethical Considerations
163 | Explore ethical concerns related to LLMs, including bias in language models, fairness, transparency, and the responsible use of AI.
164 | Links (0):
165 | 2. Interpretability and Explainability
166 | Explore methods for interpreting and explaining the decisions made by LLMs, addressing the interpretability challenges associated with complex language models.
167 | Links (0):
168 | 3. Data Handling and Robustness
169 | Understand strategies and techniques for handling out-of-distribution data and ensuring robust performance in real-world scenarios.
170 | Links (0):
171 | 4. Efficiency and Optimization
172 | Explore approaches to developing memory-efficient LLMs, considering resource constraints in various deployment environments.
173 | Links (0):
174 | 5. Advanced Model Integration
175 | Investigate the integration of language models with other modalities, such as images or videos, to create more comprehensive and context-aware AI systems.
176 | Links (0):
177 | 6. Continuous Improvement and Learning
178 | Explore methods for enabling continuous learning in LLMs, allowing models to adapt and improve over time with new data.
179 | Links (0):
180 | 7. Human-AI Collaboration
181 | Explore the role of LLMs in fostering collaboration between humans and AI systems, emphasizing the strengths of each in problem-solving.
182 | Links (0):
183 | 8. Adaptability and Versatility
184 | Understand techniques for adapting LLMs to different domains, ensuring versatility and effectiveness across a range of applications.
185 | Links (0):
186 | 9. Real-Time Inference
187 | Examine strategies for achieving real-time inference with LLMs, considering the challenges posed by large model sizes.
188 | Links (0):
189 |
190 | ---
191 | Generated by OpenGenus. Updated on 2023-12-28
--------------------------------------------------------------------------------
/src/checklist-style.css:
--------------------------------------------------------------------------------
1 | html {
2 | line-height: 1.15;
3 | -ms-text-size-adjust: 100%;
4 | -webkit-text-size-adjust: 100%;
5 | }
6 | article, aside, footer, header, nav, section {
7 | display: block;
8 | }
9 |
10 | #contents {
11 | margin-left: 140px;
12 | }
13 |
14 | small { text-align: center;
15 | margin-left: auto;
16 | margin-right: auto;
17 | }
18 |
19 | h1 {
20 | font-size: 2em;
21 | margin: .67em 0;
22 | }
23 | a {
24 | background-color: transparent;
25 | -webkit-text-decoration-skip: objects;
26 | }
27 | img {
28 | border-style: none;
29 | }
30 | button, input, optgroup, select, textarea {
31 | font-family: sans-serif;
32 | font-size: 100%;
33 | line-height: 1.15;
34 | margin: 0;
35 | }
36 | button, input {
37 | overflow: visible;
38 | }
39 | button, select {
40 | text-transform: none;
41 | }
42 | [type=reset], [type=submit], button, html [type=button] {
43 | -webkit-appearance: button;
44 | }
45 | [type=button]::-moz-focus-inner,
46 | [type=reset]::-moz-focus-inner,
47 | [type=submit]::-moz-focus-inner,
48 | button::-moz-focus-inner {
49 | padding: 0;
50 | border-style: none;
51 | }
52 | [type=button]:-moz-focusring,
53 | [type=reset]:-moz-focusring,
54 | [type=submit]:-moz-focusring,
55 | button:-moz-focusring {
56 | outline: 1px dotted ButtonText;
57 | }
58 | [type=checkbox], [type=radio] {
59 | -webkit-box-sizing: border-box;
60 | box-sizing: border-box;
61 | padding: 0;
62 | }
63 | *, :after, :before {
64 | -webkit-box-sizing: border-box;
65 | box-sizing: border-box;
66 | }
67 | body {
68 | font-family: Rubik,
69 | -apple-system,
70 | BlinkMacSystemFont,
71 | 'Segoe UI',
72 | Roboto,
73 | Oxygen,
74 | Ubuntu,
75 | Cantarell,
76 | 'Fira Sans',
77 | 'Droid Sans',
78 | 'Helvetica Neue',
79 | sans-serif;
80 | display: -webkit-box;
81 | display: -ms-flexbox;
82 | display: flex;
83 | flex-direction: column;
84 | min-height: 100vh;
85 | margin: 0;
86 | letter-spacing: .02em;
87 | color: #000000;
88 | background: #FFFDE8;
89 | -webkit-box-orient: vertical;
90 | -webkit-box-direction: normal;
91 | -ms-flex-direction: column;
92 | text-rendering: optimizeLegibility;
93 | -webkit-font-smoothing: antialiased;
94 | -moz-osx-font-smoothing: grayscale;
95 | }
96 | a {
97 | -webkit-transition: all .2s ease;
98 | transition: all .2s ease;
99 | text-decoration: none;
100 | color: #0057FF;
101 | border-bottom: 1px solid #57eaa6;
102 | text-shadow: 0 1px 0 #585afa;
103 | }
104 | a:hover {
105 | border-bottom: 2px solid #bf6bfe;
106 | }
107 | ::-moz-selection {
108 | background: rgba(33, 16, 118, .75);
109 | text-shadow: none;
110 | }
111 | ::selection {
112 | background: rgba(33, 16, 118, .75);
113 | text-shadow: none;
114 | }
115 | .title {
116 | font-size: 3.0vw;
117 | font-weight: 500;
118 | margin: .5em .2em .375em;
119 | text-align: center;
120 | }
121 | .text_end {
122 | font-size: 1em;
123 | font-weight: 200;
124 | margin: .5em .2em .375em;
125 | text-align: center;
126 | }
127 | .text_small {
128 | font-size: 1.5vw;
129 | font-weight: 150;
130 | margin: .5em .2em .375em;
131 | text-align: center;
132 | padding-left: 5%;
133 | padding-right: 5%;
134 | }
135 | .text_small_v2 {
136 | font-size: 1.2vw;
137 | font-weight: 150;
138 | margin: .5em .2em .375em;
139 | text-align: center;
140 | padding-left: 5%;
141 | padding-right: 5%;
142 | }
143 | .title a {
144 | color: #e6e6e6;
145 | border: 0;
146 | }
147 | .progress {
148 | margin-bottom: 5px;
149 | text-align: center;
150 | }
151 | .progress__count {
152 | font-family: Menlo,
153 | Monaco,
154 | Consolas,
155 | 'Liberation Mono',
156 | 'Courier New',
157 | monospace;
158 | font-size: 1.15em;
159 | letter-spacing: .05em;
160 | }
161 | .progress__reset {
162 | font-family: inherit;
163 | line-height: 37px;
164 | display: inline-block;
165 | height: 37px;
166 | margin-left: .75em;
167 | padding: 0 14px;
168 | cursor: pointer;
169 | -webkit-transition: all .3s ease;
170 | transition: all .3s ease;
171 | letter-spacing: .025em;
172 | color: inherit;
173 | border: 1px solid #211076;
174 | border-radius: 3px;
175 | outline: 0;
176 | background: rgba(33, 16, 118, .75);
177 | -webkit-box-shadow: 0 4px 6px rgba(33, 16, 118, .11),
178 | 0 1px 3px rgba(33, 16, 118, .1);
179 | box-shadow: 0 4px 6px rgba(33, 16, 118, .11), 0 1px 3px rgba(33, 16, 118, .1);
180 | }
181 | .progress__reset:focus, .progress__reset:hover {
182 | background: rgba(189, 106, 255, .8);
183 | -webkit-box-shadow: 0 7px 14px rgba(33, 16, 118, .16),
184 | 0 3px 6px rgba(33, 16, 118, .2);
185 | box-shadow: 0 7px 14px rgba(33, 16, 118, .16), 0 3px 6px rgba(33, 16, 118, .2);
186 | }
187 | .progress__reset:active {
188 | -webkit-box-shadow: 0 4px 6px rgba(33, 16, 118, .11),
189 | 0 1px 3px rgba(33, 16, 118, .1);
190 | box-shadow: 0 4px 6px rgba(33, 16, 118, .11), 0 1px 3px rgba(33, 16, 118, .1);
191 | }
192 | .progress__reset--pressed {
193 | -webkit-animation: wiggle 350ms ease alternate;
194 | animation: wiggle 350ms ease alternate;
195 | }
196 | .progress__border {
197 | display: block;
198 | margin-top: 12px;
199 | border-bottom: 3px solid #57d490;
200 | -webkit-box-shadow: 0 20px 20px -20px rgba(33, 16, 118, .65);
201 | box-shadow: 0 20px 20px -20px rgba(33, 16, 118, .65);
202 | }
203 | .progress__bar {
204 | display: block;
205 | height: 17px;
206 | -webkit-transition: -webkit-transform .5s ease;
207 | transition: -webkit-transform .5s ease;
208 | transition: transform .5s ease;
209 | transition: transform .5s ease, -webkit-transform .5s ease;
210 | -webkit-transform: scaleX(0);
211 | transform: scaleX(0);
212 | -webkit-transform-origin: left;
213 | transform-origin: left;
214 | background: #21acb3;
215 | }
216 | .container {
217 | display: -webkit-box;
218 | display: -ms-flexbox;
219 | display: flex;
220 |
221 | margin-left: 105;
222 | margin-right: 105;
223 |
224 | -webkit-box-flex: 1;
225 | -ms-flex: 1;
226 | flex: 1 1 auto;
227 |
228 | flex-direction: column;
229 | align-items: baseline;
230 | align-content: space-around;
231 |
232 | align-self:stretch;
233 | -ms-flex-wrap: wrap;
234 | flex-wrap: wrap;
235 | -ms-flex-pack: distribute;
236 | justify-content: space-around;
237 | }
238 | .section {
239 | display: flex;
240 | background-color: tomato;
241 | box-sizing: border-box;
242 | border: 1px solid #C4C4C4;
243 | height: 100px;
244 | width: 45%;
245 | margin-top: 15px;
246 | }
247 | .box22 {
248 | height: 200px;
249 | }
250 | .container .checklist {
251 | min-width: 350px;
252 | max-width: 400px;
253 | margin: 15px 15px 0;
254 | }
255 | .container .checklist .checklist-container {
256 | margin: 0;
257 | padding: 0;
258 | }
259 | .checklist__title {
260 | font-size: 2.125em;
261 | font-weight: 500;
262 | margin: 0;
263 | color: #000000;
264 | }
265 | .checklist__title-border {
266 | display: block;
267 | width: 350px;
268 | margin-top: 8px;
269 | border-bottom: 2px solid #21acb3;
270 | -webkit-box-shadow: 0 15px 15px -15px rgba(33, 16, 118, .5);
271 | box-shadow: 0 15px 15px -15px rgba(33, 16, 118, .5);
272 | }
273 | .checklist__percentage-border {
274 | display: block;
275 | width: 350px;
276 | height: 6px;
277 | margin-bottom: 8px;
278 | -webkit-transition: -webkit-transform 350ms ease;
279 | transition: -webkit-transform 350ms ease;
280 | transition: transform 350ms ease;
281 | transition: transform 350ms ease, -webkit-transform 350ms ease;
282 | -webkit-transform: scaleX(0);
283 | transform: scaleX(0);
284 | -webkit-transform-origin: left;
285 | transform-origin: left;
286 | background: #57d490;
287 | }
288 | .checklist-item {
289 | display: block;
290 | margin: 15px 0;
291 | }
292 | .checkbox {
293 | position: relative;
294 | top: 1px;
295 | display: inline-block;
296 | width: 20px;
297 | height: 20px;
298 | cursor: pointer;
299 | -webkit-transition: background 150ms ease;
300 | transition: background 150ms ease;
301 | border: 2px solid #211076;
302 | border-radius: 3px;
303 | }
304 | .checkbox:hover {
305 | background: rgba(33, 16, 118, .5);
306 | }
307 | .checkbox:after {
308 | position: absolute;
309 | top: 1px;
310 | left: 5px;
311 | width: 6px;
312 | height: 12px;
313 | content: '';
314 | -webkit-transition: all 325ms ease;
315 | transition: all 325ms ease;
316 | -webkit-transform: rotate(45deg) scale(0);
317 | transform: rotate(45deg) scale(0);
318 | opacity: 0;
319 | border-right: 2px solid #bf6bfe;
320 | border-bottom: 2px solid #bf6bfe;
321 | }
322 | .checklist-item__title {
323 | font-size: 1.125em;
324 | line-height: 1.25;
325 | display: inline-block;
326 | width: calc(100% - 48px);
327 | margin-left: 8px;
328 | cursor: pointer;
329 | -webkit-transition: color 250ms ease;
330 | transition: color 250ms ease;
331 | vertical-align: top;
332 | }
333 | .checklist-item__title:focus, .checklist-item__title:hover {
334 | color: #dcdcdc;
335 | }
336 | input[type=checkbox] {
337 | display: none;
338 | }
339 | input[type=checkbox]:checked ~ .checkbox {
340 | -webkit-animation: wiggle .4s ease;
341 | animation: wiggle .4s ease;
342 | border-color: transparent;
343 | background: #211076;
344 | }
345 | input[type=checkbox]:checked ~ .checkbox:after {
346 | -webkit-transform: rotate(45deg) scale(1);
347 | transform: rotate(45deg) scale(1);
348 | opacity: 1;
349 | }
350 | input[type=checkbox]:checked ~ .checklist-item__title {
351 | -webkit-transition: all 175ms ease;
352 | transition: all 175ms ease;
353 | text-decoration: line-through;
354 | opacity: .5;
355 | }
356 | @-webkit-keyframes wiggle {
357 | from {
358 | -webkit-transform: scale(1, 1);
359 | transform: scale(1, 1);
360 | }
361 | 30% {
362 | -webkit-transform: scale(1.25, .75);
363 | transform: scale(1.25, .75);
364 | }
365 | 40% {
366 | -webkit-transform: scale(.75, 1.25);
367 | transform: scale(.75, 1.25);
368 | }
369 | 50% {
370 | -webkit-transform: scale(1.15, .85);
371 | transform: scale(1.15, .85);
372 | }
373 | 65% {
374 | -webkit-transform: scale(.95, 1.05);
375 | transform: scale(.95, 1.05);
376 | }
377 | 75% {
378 | -webkit-transform: scale(1.05, .95);
379 | transform: scale(1.05, .95);
380 | }
381 | to {
382 | -webkit-transform: scale(1, 1);
383 | transform: scale(1, 1);
384 | }
385 | }
386 | @keyframes wiggle {
387 | from {
388 | -webkit-transform: scale(1, 1);
389 | transform: scale(1, 1);
390 | }
391 | 30% {
392 | -webkit-transform: scale(1.25, .75);
393 | transform: scale(1.25, .75);
394 | }
395 | 40% {
396 | -webkit-transform: scale(.75, 1.25);
397 | transform: scale(.75, 1.25);
398 | }
399 | 50% {
400 | -webkit-transform: scale(1.15, .85);
401 | transform: scale(1.15, .85);
402 | }
403 | 65% {
404 | -webkit-transform: scale(.95, 1.05);
405 | transform: scale(.95, 1.05);
406 | }
407 | 75% {
408 | -webkit-transform: scale(1.05, .95);
409 | transform: scale(1.05, .95);
410 | }
411 | to {
412 | -webkit-transform: scale(1, 1);
413 | transform: scale(1, 1);
414 | }
415 | }
416 | .checklist-item__expand {
417 | float: right;
418 | width: 20px;
419 | height: 20px;
420 | cursor: pointer;
421 | border: 0;
422 | outline: 0;
423 | background: 0 0;
424 | }
425 | .line {
426 | display: block;
427 | width: 20px;
428 | -webkit-transition: all .3s cubic-bezier(.76, -.26, .15, 1.32);
429 | transition: all .3s cubic-bezier(.76, -.26, .15, 1.32);
430 | -webkit-transform: translateY(-50%);
431 | transform: translateY(-50%);
432 | -webkit-transform-origin: center center;
433 | transform-origin: center center;
434 | outline: 1px solid transparent;
435 | background: #211076;
436 | }
437 | .line:after {
438 | display: block;
439 | width: 20px;
440 | height: 4px;
441 | content: '';
442 | -webkit-transition: all .3s cubic-bezier(.76, -.26, .15, 1.32);
443 | transition: all .3s cubic-bezier(.76, -.26, .15, 1.32);
444 | -webkit-transform: rotate(90deg);
445 | transform: rotate(90deg);
446 | -webkit-transform-origin: center center;
447 | transform-origin: center center;
448 | outline: 1px solid transparent;
449 | background: #211076;
450 | }
451 | .closed.line {
452 | top: 45%;
453 | -webkit-transform: rotate(180deg);
454 | transform: rotate(180deg);
455 | background: #bf6bfe;
456 | }
457 | .closed.line:after {
458 | -webkit-transform: rotate(0);
459 | transform: rotate(0);
460 | background: 0 0;
461 | }
462 | .info-container {
463 | font-family: -apple-system,
464 | BlinkMacSystemFont,
465 | 'Segoe UI',
466 | Roboto,
467 | Oxygen,
468 | Ubuntu,
469 | Cantarell,
470 | 'Fira Sans',
471 | 'Droid Sans',
472 | 'Helvetica Neue',
473 | sans-serif;
474 | font-size: 1.063em;
475 | line-height: 1.4;
476 | overflow: hidden;
477 | max-height: 0;
478 | -webkit-transition: max-height .3s ease-in;
479 | transition: max-height .3s ease-in;
480 | }
481 | .info-container ul {
482 | padding-left: 26px;
483 | list-style-type: disc;
484 | }
485 | .info-container li {
486 | margin-top: .25em;
487 | }
488 | .info-container .info {
489 | margin-top: .55em;
490 | margin-bottom: .2em;
491 | padding-bottom: .75em;
492 | border-bottom: 1px solid #b5adde;
493 | }
494 | .checklist .open .info-container {
495 | max-height: 1500px;
496 | -webkit-transition-timing-function: ease-out;
497 | transition-timing-function: ease-out;
498 | }
499 | .social {
500 | font-size: 1.25em;
501 | margin-top: 1.75em;
502 | text-align: center;
503 | -ms-flex-item-align: center;
504 | align-self: center;
505 | }
506 | .social-buttons {
507 | display: block;
508 | margin-top: 12px;
509 | -webkit-transition: all .4s;
510 | transition: all .4s;
511 | background: 0 0;
512 | }
513 | .social-buttons a {
514 | display: inline-block;
515 | width: 37px;
516 | height: 37px;
517 | cursor: pointer;
518 | border: 2px solid #e6e6e6;
519 | border-radius: 3px;
520 | }
521 | .social-buttons a.social-buttons__twitter {
522 | -webkit-transition: border .2s ease;
523 | transition: border .2s ease;
524 | background: url(../share-buttons.svg) no-repeat 5px 6px;
525 | }
526 | .social-buttons a.social-buttons__twitter:hover {
527 | border: 2px dotted #bf6bfe;
528 | }
529 | .social-buttons a.social-buttons__facebook {
530 | margin: 0 7px;
531 | -webkit-transition: border .2s ease;
532 | transition: border .2s ease;
533 | background: url(../share-buttons.svg) no-repeat -27px 6px;
534 | }
535 | .social-buttons a.social-buttons__facebook:hover {
536 | border: 2px dotted #bf6bfe;
537 | }
538 | footer {
539 | font-weight: 300;
540 | margin-top: 1.25em;
541 | padding: .85em 1.85em;
542 | text-align: center;
543 | border-top: 1px solid #57b26e;
544 | -ms-flex-item-align: center;
545 | align-self: center;
546 | }
547 | footer span {
548 | font-size: 1.45em;
549 | font-weight: 500;
550 | padding: 0 .175em;
551 | vertical-align: middle;
552 | color: #bf6bfe;
553 | }
554 | .title-404 {
555 | font-size: 6.5em;
556 | width: 100%;
557 | margin-bottom: 0;
558 | text-align: center;
559 | }
560 | .text-404 {
561 | font-size: 2.5em;
562 | }
563 | @media print {
564 | *, :after, :before, :first-letter, :first-line {
565 | color: #000 !important;
566 | background: 0 0 !important;
567 | -webkit-box-shadow: none !important;
568 | box-shadow: none !important;
569 | text-shadow: none !important;
570 | }
571 | a, a:visited {
572 | text-decoration: underline;
573 | }
574 | a[href]:after {
575 | content: ' (' attr(href) ')';
576 | }
577 | abbr[title]:after {
578 | content: ' (' attr(title) ')';
579 | }
580 | a[href^='#']:after, a[href^='javascript:']:after {
581 | content: '';
582 | }
583 | img {
584 | page-break-inside: avoid;
585 | }
586 | h2 {
587 | orphans: 3;
588 | widows: 3;
589 | page-break-after: avoid;
590 | }
591 | }
592 |
--------------------------------------------------------------------------------
/src/deploy/browser-extension/production/100-interview-problems/src/checklist-style.css:
--------------------------------------------------------------------------------
1 | html {
2 | line-height: 1.15;
3 | -ms-text-size-adjust: 100%;
4 | -webkit-text-size-adjust: 100%;
5 | font-size: 1.225em;
6 | }
7 | article, aside, footer, header, nav, section {
8 | display: block;
9 | }
10 |
11 | #contents {
12 | margin-left: 140px;
13 | }
14 |
15 | small { text-align: center;
16 | margin-left: auto;
17 | margin-right: auto;
18 | }
19 |
20 | h1 {
21 | font-size: 2em;
22 | margin: .67em 0;
23 | }
24 | a {
25 | background-color: transparent;
26 | -webkit-text-decoration-skip: objects;
27 | }
28 | img {
29 | border-style: none;
30 | }
31 | button, input, optgroup, select, textarea {
32 | font-family: sans-serif;
33 | font-size: 100%;
34 | line-height: 1.15;
35 | margin: 0;
36 | }
37 | button, input {
38 | overflow: visible;
39 | }
40 | button, select {
41 | text-transform: none;
42 | }
43 | [type=reset], [type=submit], button, html [type=button] {
44 | -webkit-appearance: button;
45 | }
46 | [type=button]::-moz-focus-inner,
47 | [type=reset]::-moz-focus-inner,
48 | [type=submit]::-moz-focus-inner,
49 | button::-moz-focus-inner {
50 | padding: 0;
51 | border-style: none;
52 | }
53 | [type=button]:-moz-focusring,
54 | [type=reset]:-moz-focusring,
55 | [type=submit]:-moz-focusring,
56 | button:-moz-focusring {
57 | outline: 1px dotted ButtonText;
58 | }
59 | [type=checkbox], [type=radio] {
60 | -webkit-box-sizing: border-box;
61 | box-sizing: border-box;
62 | padding: 0;
63 | }
64 | *, :after, :before {
65 | -webkit-box-sizing: border-box;
66 | box-sizing: border-box;
67 | }
68 | body {
69 | font-family: Rubik,
70 | -apple-system,
71 | BlinkMacSystemFont,
72 | 'Segoe UI',
73 | Roboto,
74 | Oxygen,
75 | Ubuntu,
76 | Cantarell,
77 | 'Fira Sans',
78 | 'Droid Sans',
79 | 'Helvetica Neue',
80 | sans-serif;
81 | display: -webkit-box;
82 | display: -ms-flexbox;
83 | display: flex;
84 | flex-direction: column;
85 | min-height: 100vh;
86 | margin: 0;
87 | letter-spacing: .02em;
88 | color: #000000;
89 | background: #FFFDE8;
90 | -webkit-box-orient: vertical;
91 | -webkit-box-direction: normal;
92 | -ms-flex-direction: column;
93 | text-rendering: optimizeLegibility;
94 | -webkit-font-smoothing: antialiased;
95 | -moz-osx-font-smoothing: grayscale;
96 | }
97 | a {
98 | -webkit-transition: all .2s ease;
99 | transition: all .2s ease;
100 | text-decoration: none;
101 | color: #0057FF;
102 | border-bottom: 1px solid #57eaa6;
103 | text-shadow: 0 1px 0 #585afa;
104 | }
105 | a:hover {
106 | border-bottom: 2px solid #bf6bfe;
107 | }
108 | ::-moz-selection {
109 | background: rgba(33, 16, 118, .75);
110 | text-shadow: none;
111 | }
112 | ::selection {
113 | background: rgba(33, 16, 118, .75);
114 | text-shadow: none;
115 | }
116 | .title {
117 | font-size: 3.0vw;
118 | font-weight: 500;
119 | margin: .5em .2em .375em;
120 | text-align: center;
121 | }
122 | .text_end {
123 | font-size: 1em;
124 | font-weight: 200;
125 | margin: .5em .2em .375em;
126 | text-align: center;
127 | }
128 | .text_small {
129 | font-size: 1.5vw;
130 | font-weight: 150;
131 | margin: .5em .2em .375em;
132 | text-align: center;
133 | padding-left: 5%;
134 | padding-right: 5%;
135 | }
136 | .text_small_v2 {
137 | font-size: 1.2vw;
138 | font-weight: 150;
139 | margin: .5em .2em .375em;
140 | text-align: center;
141 | padding-left: 5%;
142 | padding-right: 5%;
143 | }
144 | .title a {
145 | color: #e6e6e6;
146 | border: 0;
147 | }
148 | .progress {
149 | margin-bottom: 5px;
150 | text-align: center;
151 | }
152 | .progress__count {
153 | font-family: Menlo,
154 | Monaco,
155 | Consolas,
156 | 'Liberation Mono',
157 | 'Courier New',
158 | monospace;
159 | font-size: 1.15em;
160 | letter-spacing: .05em;
161 | }
162 | .progress__reset {
163 | font-family: inherit;
164 | line-height: 37px;
165 | display: inline-block;
166 | height: 37px;
167 | margin-left: .75em;
168 | padding: 0 14px;
169 | cursor: pointer;
170 | -webkit-transition: all .3s ease;
171 | transition: all .3s ease;
172 | letter-spacing: .025em;
173 | color: inherit;
174 | border: 1px solid #211076;
175 | border-radius: 3px;
176 | outline: 0;
177 | background: rgba(33, 16, 118, .75);
178 | -webkit-box-shadow: 0 4px 6px rgba(33, 16, 118, .11),
179 | 0 1px 3px rgba(33, 16, 118, .1);
180 | box-shadow: 0 4px 6px rgba(33, 16, 118, .11), 0 1px 3px rgba(33, 16, 118, .1);
181 | }
182 | .progress__reset:focus, .progress__reset:hover {
183 | background: rgba(189, 106, 255, .8);
184 | -webkit-box-shadow: 0 7px 14px rgba(33, 16, 118, .16),
185 | 0 3px 6px rgba(33, 16, 118, .2);
186 | box-shadow: 0 7px 14px rgba(33, 16, 118, .16), 0 3px 6px rgba(33, 16, 118, .2);
187 | }
188 | .progress__reset:active {
189 | -webkit-box-shadow: 0 4px 6px rgba(33, 16, 118, .11),
190 | 0 1px 3px rgba(33, 16, 118, .1);
191 | box-shadow: 0 4px 6px rgba(33, 16, 118, .11), 0 1px 3px rgba(33, 16, 118, .1);
192 | }
193 | .progress__reset--pressed {
194 | -webkit-animation: wiggle 350ms ease alternate;
195 | animation: wiggle 350ms ease alternate;
196 | }
197 | .progress__border {
198 | display: block;
199 | margin-top: 12px;
200 | border-bottom: 3px solid #57d490;
201 | -webkit-box-shadow: 0 20px 20px -20px rgba(33, 16, 118, .65);
202 | box-shadow: 0 20px 20px -20px rgba(33, 16, 118, .65);
203 | }
204 | .progress__bar {
205 | display: block;
206 | height: 17px;
207 | -webkit-transition: -webkit-transform .5s ease;
208 | transition: -webkit-transform .5s ease;
209 | transition: transform .5s ease;
210 | transition: transform .5s ease, -webkit-transform .5s ease;
211 | -webkit-transform: scaleX(0);
212 | transform: scaleX(0);
213 | -webkit-transform-origin: left;
214 | transform-origin: left;
215 | background: #21acb3;
216 | }
217 | .container {
218 | display: -webkit-box;
219 | display: -ms-flexbox;
220 | display: flex;
221 |
222 | margin-left: 105;
223 | margin-right: 105;
224 |
225 | -webkit-box-flex: 1;
226 | -ms-flex: 1;
227 | flex: 1 1 auto;
228 |
229 | flex-direction: column;
230 | align-items: baseline;
231 | align-content: space-around;
232 |
233 | align-self:stretch;
234 | -ms-flex-wrap: wrap;
235 | flex-wrap: wrap;
236 | -ms-flex-pack: distribute;
237 | justify-content: space-around;
238 | }
239 | .section {
240 | display: flex;
241 | background-color: tomato;
242 | box-sizing: border-box;
243 | border: 1px solid #C4C4C4;
244 | height: 100px;
245 | width: 45%;
246 | margin-top: 15px;
247 | }
248 | .box22 {
249 | height: 200px;
250 | }
251 | .container .checklist {
252 | min-width: 350px;
253 | max-width: 400px;
254 | margin: 15px 15px 0;
255 | }
256 | .container .checklist .checklist-container {
257 | margin: 0;
258 | padding: 0;
259 | }
260 | .checklist__title {
261 | font-size: 2.125em;
262 | font-weight: 500;
263 | margin: 0;
264 | color: #000000;
265 | }
266 | .checklist__title-border {
267 | display: block;
268 | width: 350px;
269 | margin-top: 8px;
270 | border-bottom: 2px solid #21acb3;
271 | -webkit-box-shadow: 0 15px 15px -15px rgba(33, 16, 118, .5);
272 | box-shadow: 0 15px 15px -15px rgba(33, 16, 118, .5);
273 | }
274 | .checklist__percentage-border {
275 | display: block;
276 | width: 350px;
277 | height: 6px;
278 | margin-bottom: 8px;
279 | -webkit-transition: -webkit-transform 350ms ease;
280 | transition: -webkit-transform 350ms ease;
281 | transition: transform 350ms ease;
282 | transition: transform 350ms ease, -webkit-transform 350ms ease;
283 | -webkit-transform: scaleX(0);
284 | transform: scaleX(0);
285 | -webkit-transform-origin: left;
286 | transform-origin: left;
287 | background: #57d490;
288 | }
289 | .checklist-item {
290 | display: block;
291 | margin: 15px 0;
292 | }
293 | .checkbox {
294 | position: relative;
295 | top: 1px;
296 | display: inline-block;
297 | width: 20px;
298 | height: 20px;
299 | cursor: pointer;
300 | -webkit-transition: background 150ms ease;
301 | transition: background 150ms ease;
302 | border: 2px solid #211076;
303 | border-radius: 3px;
304 | }
305 | .checkbox:hover {
306 | background: rgba(33, 16, 118, .5);
307 | }
308 | .checkbox:after {
309 | position: absolute;
310 | top: 1px;
311 | left: 5px;
312 | width: 6px;
313 | height: 12px;
314 | content: '';
315 | -webkit-transition: all 325ms ease;
316 | transition: all 325ms ease;
317 | -webkit-transform: rotate(45deg) scale(0);
318 | transform: rotate(45deg) scale(0);
319 | opacity: 0;
320 | border-right: 2px solid #bf6bfe;
321 | border-bottom: 2px solid #bf6bfe;
322 | }
323 | .checklist-item__title {
324 | font-size: 1.125em;
325 | line-height: 1.25;
326 | display: inline-block;
327 | width: calc(100% - 48px);
328 | margin-left: 8px;
329 | cursor: pointer;
330 | -webkit-transition: color 250ms ease;
331 | transition: color 250ms ease;
332 | vertical-align: top;
333 | }
334 | .checklist-item__title:focus, .checklist-item__title:hover {
335 | color: #dcdcdc;
336 | }
337 | input[type=checkbox] {
338 | display: none;
339 | }
340 | input[type=checkbox]:checked ~ .checkbox {
341 | -webkit-animation: wiggle .4s ease;
342 | animation: wiggle .4s ease;
343 | border-color: transparent;
344 | background: #211076;
345 | }
346 | input[type=checkbox]:checked ~ .checkbox:after {
347 | -webkit-transform: rotate(45deg) scale(1);
348 | transform: rotate(45deg) scale(1);
349 | opacity: 1;
350 | }
351 | input[type=checkbox]:checked ~ .checklist-item__title {
352 | -webkit-transition: all 175ms ease;
353 | transition: all 175ms ease;
354 | text-decoration: line-through;
355 | opacity: .5;
356 | }
357 | @-webkit-keyframes wiggle {
358 | from {
359 | -webkit-transform: scale(1, 1);
360 | transform: scale(1, 1);
361 | }
362 | 30% {
363 | -webkit-transform: scale(1.25, .75);
364 | transform: scale(1.25, .75);
365 | }
366 | 40% {
367 | -webkit-transform: scale(.75, 1.25);
368 | transform: scale(.75, 1.25);
369 | }
370 | 50% {
371 | -webkit-transform: scale(1.15, .85);
372 | transform: scale(1.15, .85);
373 | }
374 | 65% {
375 | -webkit-transform: scale(.95, 1.05);
376 | transform: scale(.95, 1.05);
377 | }
378 | 75% {
379 | -webkit-transform: scale(1.05, .95);
380 | transform: scale(1.05, .95);
381 | }
382 | to {
383 | -webkit-transform: scale(1, 1);
384 | transform: scale(1, 1);
385 | }
386 | }
387 | @keyframes wiggle {
388 | from {
389 | -webkit-transform: scale(1, 1);
390 | transform: scale(1, 1);
391 | }
392 | 30% {
393 | -webkit-transform: scale(1.25, .75);
394 | transform: scale(1.25, .75);
395 | }
396 | 40% {
397 | -webkit-transform: scale(.75, 1.25);
398 | transform: scale(.75, 1.25);
399 | }
400 | 50% {
401 | -webkit-transform: scale(1.15, .85);
402 | transform: scale(1.15, .85);
403 | }
404 | 65% {
405 | -webkit-transform: scale(.95, 1.05);
406 | transform: scale(.95, 1.05);
407 | }
408 | 75% {
409 | -webkit-transform: scale(1.05, .95);
410 | transform: scale(1.05, .95);
411 | }
412 | to {
413 | -webkit-transform: scale(1, 1);
414 | transform: scale(1, 1);
415 | }
416 | }
417 | .checklist-item__expand {
418 | float: right;
419 | width: 20px;
420 | height: 20px;
421 | cursor: pointer;
422 | border: 0;
423 | outline: 0;
424 | background: 0 0;
425 | }
426 | .line {
427 | display: block;
428 | width: 20px;
429 | -webkit-transition: all .3s cubic-bezier(.76, -.26, .15, 1.32);
430 | transition: all .3s cubic-bezier(.76, -.26, .15, 1.32);
431 | -webkit-transform: translateY(-50%);
432 | transform: translateY(-50%);
433 | -webkit-transform-origin: center center;
434 | transform-origin: center center;
435 | outline: 1px solid transparent;
436 | background: #211076;
437 | }
438 | .line:after {
439 | display: block;
440 | width: 20px;
441 | height: 4px;
442 | content: '';
443 | -webkit-transition: all .3s cubic-bezier(.76, -.26, .15, 1.32);
444 | transition: all .3s cubic-bezier(.76, -.26, .15, 1.32);
445 | -webkit-transform: rotate(90deg);
446 | transform: rotate(90deg);
447 | -webkit-transform-origin: center center;
448 | transform-origin: center center;
449 | outline: 1px solid transparent;
450 | background: #211076;
451 | }
452 | .closed.line {
453 | top: 45%;
454 | -webkit-transform: rotate(180deg);
455 | transform: rotate(180deg);
456 | background: #bf6bfe;
457 | }
458 | .closed.line:after {
459 | -webkit-transform: rotate(0);
460 | transform: rotate(0);
461 | background: 0 0;
462 | }
463 | .info-container {
464 | font-family: -apple-system,
465 | BlinkMacSystemFont,
466 | 'Segoe UI',
467 | Roboto,
468 | Oxygen,
469 | Ubuntu,
470 | Cantarell,
471 | 'Fira Sans',
472 | 'Droid Sans',
473 | 'Helvetica Neue',
474 | sans-serif;
475 | font-size: 1.063em;
476 | line-height: 1.4;
477 | overflow: hidden;
478 | max-height: 0;
479 | -webkit-transition: max-height .3s ease-in;
480 | transition: max-height .3s ease-in;
481 | }
482 | .info-container ul {
483 | padding-left: 26px;
484 | list-style-type: disc;
485 | }
486 | .info-container li {
487 | margin-top: .25em;
488 | }
489 | .info-container .info {
490 | margin-top: .55em;
491 | margin-bottom: .2em;
492 | padding-bottom: .75em;
493 | border-bottom: 1px solid #b5adde;
494 | }
495 | .checklist .open .info-container {
496 | max-height: 1500px;
497 | -webkit-transition-timing-function: ease-out;
498 | transition-timing-function: ease-out;
499 | }
500 | .social {
501 | font-size: 1.25em;
502 | margin-top: 1.75em;
503 | text-align: center;
504 | -ms-flex-item-align: center;
505 | align-self: center;
506 | }
507 | .social-buttons {
508 | display: block;
509 | margin-top: 12px;
510 | -webkit-transition: all .4s;
511 | transition: all .4s;
512 | background: 0 0;
513 | }
514 | .social-buttons a {
515 | display: inline-block;
516 | width: 37px;
517 | height: 37px;
518 | cursor: pointer;
519 | border: 2px solid #e6e6e6;
520 | border-radius: 3px;
521 | }
522 | .social-buttons a.social-buttons__twitter {
523 | -webkit-transition: border .2s ease;
524 | transition: border .2s ease;
525 | background: url(../share-buttons.svg) no-repeat 5px 6px;
526 | }
527 | .social-buttons a.social-buttons__twitter:hover {
528 | border: 2px dotted #bf6bfe;
529 | }
530 | .social-buttons a.social-buttons__facebook {
531 | margin: 0 7px;
532 | -webkit-transition: border .2s ease;
533 | transition: border .2s ease;
534 | background: url(../share-buttons.svg) no-repeat -27px 6px;
535 | }
536 | .social-buttons a.social-buttons__facebook:hover {
537 | border: 2px dotted #bf6bfe;
538 | }
539 | footer {
540 | font-weight: 300;
541 | margin-top: 1.25em;
542 | padding: .85em 1.85em;
543 | text-align: center;
544 | border-top: 1px solid #57b26e;
545 | -ms-flex-item-align: center;
546 | align-self: center;
547 | }
548 | footer span {
549 | font-size: 1.45em;
550 | font-weight: 500;
551 | padding: 0 .175em;
552 | vertical-align: middle;
553 | color: #bf6bfe;
554 | }
555 | .title-404 {
556 | font-size: 6.5em;
557 | width: 100%;
558 | margin-bottom: 0;
559 | text-align: center;
560 | }
561 | .text-404 {
562 | font-size: 2.5em;
563 | }
564 | @media print {
565 | *, :after, :before, :first-letter, :first-line {
566 | color: #000 !important;
567 | background: 0 0 !important;
568 | -webkit-box-shadow: none !important;
569 | box-shadow: none !important;
570 | text-shadow: none !important;
571 | }
572 | a, a:visited {
573 | text-decoration: underline;
574 | }
575 | a[href]:after {
576 | content: ' (' attr(href) ')';
577 | }
578 | abbr[title]:after {
579 | content: ' (' attr(title) ')';
580 | }
581 | a[href^='#']:after, a[href^='javascript:']:after {
582 | content: '';
583 | }
584 | img {
585 | page-break-inside: avoid;
586 | }
587 | h2 {
588 | orphans: 3;
589 | widows: 3;
590 | page-break-after: avoid;
591 | }
592 | }
593 |
--------------------------------------------------------------------------------
/src/open-source-checklist.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Opensource Checklist
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
53 |
54 |
60 |
61 |
64 |
65 |
66 |
Opensource Checklist
67 |
Powered by OpenGenus IQ because we want you ❤️ to succeed. (How to use this?) Bookmark this page now (press CTRL + D) to easily use this masterpiece tomorrow
68 |
Open source learning is the key that unlocks the door to a world of knowledge, where collaboration and curiosity are the driving forces of progress.
69 |
70 | 0/X
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
Basics of Open-Source Projects
81 |
82 |
83 |
84 |
85 |
86 | Introduction to Open Source
87 |
90 |
91 |
92 | Understanding the concept of open-source software and its advantages.
93 |
94 |
95 |
96 |
97 |
98 | Common Open-Source Licenses
99 |
102 |
103 |
104 | In-depth exploration of various open-source licenses and their implications.
105 |
106 |
107 |
108 |
109 |
110 | Choosing a License for Your Project
111 |
114 |
115 |
116 | Guidance on selecting the right license for your own open-source project.
117 |
118 |
119 |
120 |
121 | Popular Open-Source Platforms
122 |
125 |
126 |
127 | Detailed overview of platforms like GitHub, GitLab, Bitbucket, and SourceForge.
128 |
129 |
130 |
131 |
132 | Contributor Guidelines
133 |
136 |
137 |
138 | Explanation of common contribution guidelines and best practices.
139 |
140 |
141 |
142 |
143 |
144 |
145 |
Basics of Git
146 |
147 |
148 |
149 |
150 |
151 | Version Control Concepts
152 |
155 |
156 |
157 | A primer on version control, its benefits, and how Git fits in.
158 |
159 |
160 |
161 |
162 | Git Installation and Setup
163 |
166 |
167 |
168 | Step-by-step instructions for installing and configuring Git on different platforms.
169 |
170 |
171 |
172 | Git Workflow
173 |
176 |
177 |
178 | Explaining the typical Git workflow, from creating a repository to committing changes.
179 |
180 |
181 |
182 |
183 | Branching Strategies
184 |
187 |
188 |
189 | Insights into branching models like Gitflow and GitHub Flow.
190 |
191 |
192 |
193 |
194 | Git Best Practices
195 |
198 |
199 |
200 | Tips for effective use of Git, including commit message conventions.
201 |
202 |
203 |
204 |
205 |
206 |
207 |
Basics of GitHub and Setup Account
208 |
209 |
210 |
211 |
212 |
213 | Introduction to GitHub
214 |
217 |
218 |
219 | A tour of GitHub's features and capabilities.
220 |
314 | Tips for reviewing past contributions and understanding project history.
315 |
316 |
317 |
318 |
319 |
320 |
Steps to Make a Contribution
321 |
322 |
323 |
324 |
325 |
326 | Cloning a Repository
327 |
330 |
331 |
332 | Step-by-step guide to cloning a project's repository to your local machine.
333 |
334 |
335 |
336 |
337 | Creating a Feature Branch
338 |
341 |
342 |
343 | Instructions for creating a dedicated branch for your contribution.
344 |
345 |
346 |
347 |
348 | Making and Testing Changes
349 |
352 |
353 |
354 | Best practices for making code or documentation modifications and testing them.
355 |
356 |
357 |
358 |
359 | Committing Your Changes
360 |
363 |
364 |
365 | Guidelines for creating informative and well-structured commits.
366 |
367 |
368 |
369 |
370 | Pushing Changes to GitHub
371 |
374 |
375 |
376 | How to push your branch and changes to your GitHub fork.
377 |
378 |
379 |
380 |
381 | Creating a Pull Request
382 |
385 |
386 |
387 | A detailed walkthrough of creating a pull request with a focus on proper descriptions.
388 |
389 |
390 |
391 |
392 |
393 |
Reviewing Code Contributions by Others
394 |
395 |
396 |
397 |
398 |
399 | Code Review Workflow
400 |
403 |
404 |
405 | Explaining the process of reviewing code changes, including commenting and feedback.
406 |
407 |
408 |
409 |
410 | Code Review Best Practices
411 |
414 |
415 |
416 | Tips for providing constructive and meaningful code reviews
417 |
418 |
419 |
420 |
421 | Merging and Collaborative Review
422 |
425 |
426 |
427 | Discussing the process of merging approved contributions into the main branch.
428 |
429 |
430 |
431 |
432 |
433 |
Finding and Reporting Bugs
434 |
435 |
436 |
437 |
438 |
439 | Identifying and Confirming Bugs
440 |
443 |
444 |
445 | Strategies for recognizing and confirming the presence of bugs.
446 |
447 |
448 |
449 |
450 | Reporting Bugs Effectively
451 |
454 |
455 |
456 | How to create detailed bug reports with information like steps to reproduce.
457 |
458 |
459 |
460 |
461 | Contributing to Bug Fixes
462 |
465 |
466 |
467 | Tips for addressing and resolving identified bugs through code changes.
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
Best of Luck.
479 |
Powered by OpenGenus IQ because we love ❤️ you.
480 |
481 |
--------------------------------------------------------------------------------
/src/deploy/markdown_list/java-checklist.md:
--------------------------------------------------------------------------------
1 | # Java fluency Checklist with Practical Projects.
2 |
3 | These Java fluency Checklist with Practical Projects will give you all core concepts.Save time and study smarter.
4 |
5 | **Java Fundamentals**
6 | =================
7 | 1. **Compilation, Interpretation and Execution Process in Java** [Compilation, Interpretation and Execution Process in Java](https://iq.opengenus.org/compilation-interpretation-execution-in-java/) provides a detailed introduction to how Java code is executed on your computer.
8 |
9 | **Flow Control**
10 | ============
11 | 1. **Flow control in Java** We will now delve into the concept of
12 | [Flow control in Java](https://iq.opengenus.org/flow-control-in-java/) , understanding how it allows us to manage the sequence of operations and decision-making in our programs.
13 | 2. **Java's control statements** Explore
14 | [Java's control statements](https://iq.opengenus.org/control-statements-java/) , powerful tools for managing program flow and making decisions, in this concise introduction.
15 | 3. **for loop** The
16 | ["for" loop in Java](https://iq.opengenus.org/for-loop-java/) is a versatile and efficient construct for repeating tasks. Discover its capabilities in Java programming.
17 | 4. **do-while loop** Learn about the
18 | ["do-while" loop](https://iq.opengenus.org/do-while-loop-java/) in Java, a control structure that ensures at least one iteration of a task.
19 | 5. **continue** The
20 | [continue](https://iq.opengenus.org/continue-statement-in-java/) statement in Java is a pivotal tool for altering the flow of your program. Explore its applications.
21 | 6. **Absence of 'goto' statement** Java, does not support the
22 | ["goto" ](https://iq.opengenus.org/java-does-not-support-goto/)statement, emphasizing structured programming and alternatives for control flow.
23 | 7. **Program Termination** Understanding
24 | [Program Termination ](https://iq.opengenus.org/terminate-program-in-java/)based on conditions or exceptions is crucial in Java programming. Explore this aspect for effective coding.
25 | 8. **Postfix and Prefix Increment** Distinguish between
26 | [postfix and prefix increment ](https://iq.opengenus.org/postfix-vs-prefix-increment-java/)in Java to optimize your code and avoid unexpected behavior.
27 | 9. **Difference between i++ and i=i+1** Unravel the subtle nuances between
28 | [i++ and i=i+1 ](https://iq.opengenus.org/i-vs-ii1-java/)in Java, it's a journey into the art of code optimization!
29 |
30 | **Strings**
31 | =======
32 | 1. **Intro to Strings** [Strings ](https://iq.opengenus.org/string-in-java/)in Java are more than just text; they are versatile objects for handling and manipulating data. Discover their magic!
33 | 2. **Comparing strings** We will now delve into the fascinating world of [comparing strings ](https://iq.opengenus.org/compare-string-in-java/)
34 | [comparing strings ](https://iq.opengenus.org/compare-string-in-java/)in Java, exploring various methods and their nuances.
35 | 3. **Equality in Java Strings** In this article, we've ventured into the realm of
36 | [equality in Java strings ](https://iq.opengenus.org/check-string-equal-in-java/). We'll unveil three distinct methods to compare them.
37 | 4. **Java's java.lang.String Class** The Java's
38 | [java.lang.String class ](https://iq.opengenus.org/java-lang-string-class/)offers a treasure trove of methods to empower your string manipulation endeavors. Dive in!
39 | 5. **String to character array** This article unveils three intriguing methods for transforming a
40 | [string into a character array ](https://iq.opengenus.org/convert-string-to-char-array-in-java/)in Java. Explore the possibilities!
41 | 6. **The StringBuilder Class** [StringBuilder ](https://iq.opengenus.org/stringbuilder-in-java/), a versatile Java library class, revolutionizes string manipulation, providing an efficient alternative to StringBuffer and String. Explore its power!
42 | 7. **String Pool** This article uncovers the enigmatic concept of the
43 | [String Pool ](https://iq.opengenus.org/string-pool-in-java/)in Java, demystifying its implementation in Java programming. Explore the magic within!
44 |
45 | **Classes**
46 | =======
47 | 1. **Static Initialization Block** Unveil the magic of Java's
48 | [static initialization blocks](https://iq.opengenus.org/static-initialization-block-in-java/), where code springs to life in this intriguing journey.
49 | 2. **Understanding Classes and Objects** Embark on a voyage through Java's
50 | [class and object ](https://iq.opengenus.org/classes-and-objects-in-java/)realm, where the building blocks of code come to life.
51 | 3. **Size of an Object in Java** Delve into the world of
52 | [object sizes ](https://iq.opengenus.org/find-size-of-an-object-in-java/)in Java, where each byte tells a story about memory management.
53 | 4. **Using Static Members** Explore the dynamic world of
54 | [static members ](https://iq.opengenus.org/static-members-in-java/)in Java, where shared knowledge and resources empower your code.
55 | 5. **Wrapper Classes** Step into the world of
56 | [wrapper classes](https://iq.opengenus.org/wrapper-classes-in-java/), where Java's core data types get an enhanced, object-oriented twist.
57 | 6. **Implementing Hash Map in Java using OOP Concepts and Generics** Unveil the power of
58 | [Hash Maps ](https://iq.opengenus.org/hash-map-in-java/)in Java, driven by the principles of OOP and the versatility of generics.
59 | 7. **Binary Tree in Java using OOP Concepts and Generics** Dive into the realm of
60 | [binary trees](https://iq.opengenus.org/binary-tree-in-java/), where OOP concepts and generics create a foundation for versatile data structures.
61 |
62 | **OOP Concepts**
63 | ============
64 | 1. **Differences between public, private, protected, and no modifier in Java:** Decode the mysteries of
65 | [access modifiers ](https://iq.opengenus.org/public-private-protected-in-java/)in Java, where visibility rules shape your code's behavior.
66 | 2. **Access Specifiers** Explore the world of
67 | [access specifiers](https://iq.opengenus.org/access-specifiers-in-java/), where the keys to code security and structure are revealed.
68 | 3. **Interface in Java** Uncover the powerful concept of
69 | [interfaces ](https://iq.opengenus.org/interface-in-java/)in Java, where software components seamlessly interact and collaborate.
70 | 4. **Designing and Implementing the Graph Data Structure using OOP Concepts** Journey through the world of
71 | [graph data structures ](https://iq.opengenus.org/graph-using-oop-java/)in Java, driven by OOP principles for efficient information organization.
72 | 5. **Basics of Trie Data Structure using OOP Concepts** Embark on an exploration of the
73 | [Trie data structure](https://iq.opengenus.org/trie-in-java-with-oops-concepts/), building it from the ground up in Java, fueled by the principles of OOP.
74 | 6. **Usage of Modifiers Final and Abstract** Delve into the world of
75 | [final and abstract modifiers ](https://iq.opengenus.org/final-and-abstract-java/)in Java, where code is fortified and designs are refined.
76 | 7. **Covariant Return Type** Dive into the intricacies of
77 | [covariant return types](https://iq.opengenus.org/covariant-return-type-in-java/), where Java's polymorphism takes on a fascinating twist.
78 |
79 | **Inheritance**
80 | ===========
81 | 1. **Local Inner Classes** Delve into the realm of
82 | [local inner classes ](https://iq.opengenus.org/java-local-inner-classes/)in Java, as we explore their unique properties and applications in this OpenGenus article.
83 | 2. **Achieving Multiple Inheritance with Interfaces** Explore the effective utilization of
84 | [Java interfaces to implement multiple inheritance](https://iq.opengenus.org/multiple-inheritance-java/), enabling flexible and robust code design.
85 | 3. **Java Inheritance Limitations: Multiple and Multipath Inheritance** Explore the
86 | [constraints imposed by Java on inheritance](https://iq.opengenus.org/java-does-not-support-multiple-and-multipath-inheritance/), particularly in relation to multiple and multipath inheritance.
87 | 4. **Hierarchical Inheritance** Delve into the concept of
88 | [hierarchical inheritance](https://iq.opengenus.org/hierarchical-inheritance-in-java/) in Java, accompanied by a practical Java code example in this OpenGenus article.
89 |
90 | **Data Structures**
91 | ===============
92 | 1. **Lists** Explore the basics of
93 | [lists in Java](https://iq.opengenus.org/list-java/), understanding the foundational concepts of ArrayLists and LinkedLists.
94 | 2. **Implementation of Stack** Dive deeper into data structures by
95 | [implementing a stack](https://iq.opengenus.org/stack-in-java/), a fundamental and essential concept in computer science.
96 | 3. **Linked List Implementation** Delve into
97 | [linked lists](https://iq.opengenus.org/linked-list-implementation-in-java/), a pivotal data structure, and understand how to implement and leverage them effectively.
98 | 4. **Set** Explore the concept of
99 | [sets](https://iq.opengenus.org/set-in-java/), understanding their unique property of no duplicates and their role in precision data organization.
100 | 5. **Map** Learn about
101 | [maps in Java](https://iq.opengenus.org/map-java/), diving into key-value pair data structures for efficient data retrieval and organization.
102 | 6. **Applications of Hash Map** Uncover the diverse
103 | [applications of hash maps](https://iq.opengenus.org/applications-of-hashmap/), exploring how they optimize data management and retrieval.
104 | 7. **TreeSet** Step into the advanced concept of
105 | [tree sets](https://iq.opengenus.org/treeset-in-java/), understanding their ordered and sorted nature for elegant data management.
106 |
107 | **Input and Output**
108 | ================
109 | 1. **Input and Output Streams** Explore the world of
110 | [input and output streams ](https://iq.opengenus.org/input-and-output-streams-java/)in Java, enabling seamless data transfer between your programs and external sources.
111 | 2. **The Scanner Class** Delve into the
112 | [Scanner Class ](https://iq.opengenus.org/scanner-class-in-java/)in Java, uncovering its essential functions and capabilities for input processing.
113 | 3. **Reading External Files in Java** Discover the versatility of Java as we explore various methods for
114 | [reading external files](https://iq.opengenus.org/reading-files-in-java/), catering to diverse needs and scenarios.
115 | 4. **Creating and Deleting Folders** Join us in exploring the diverse methods for
116 | [creating and deleting folders ](https://iq.opengenus.org/creating-and-deleting-folders-in-java/)in Java, providing essential file management skills.
117 |
118 | **Error Handling and Exception**
119 | ============================
120 | 1. **Error Handling and Exceptions** Learn the art of
121 | [handling errors through exceptions](https://iq.opengenus.org/error-handling-by-exception-in-java/) in Java, ensuring robust and reliable code that gracefully manages unexpected events.
122 | 2. **Exploring Java Exceptions** Dive into the world of
123 | [Java exceptions](https://iq.opengenus.org/types-of-exceptions-in-java/), as we discuss the two primary types and provide concrete examples for better understanding.
124 | 3. **NullPointer Exception in Java** Uncover the challenges posed by the notorious
125 | [NullPointerException](https://iq.opengenus.org/nullpointerexception-in-java/) error, often faced by novice programmers while working with Java objects.
126 |
127 | **Garbage Collection**
128 | ==================
129 | 1. **Types of References in Java** Explore the world of
130 | [Java references ](https://iq.opengenus.org/types-of-references-in-java/)and their connection with the Garbage Collector, a key player in memory management.
131 | 2. **Major Types of Garbage Collection** Dive into the realm of Java's
132 | [garbage collection techniques ](https://iq.opengenus.org/memory-management-in-java-minor-major-and-full-garbage-collection/), encompassing the three primary types that influence memory management.
133 |
134 | **Multithreading**
135 | ==============
136 | 1. **Multi-threaded Prime Number Finder** Witness the power of
137 | [multi-threading](https://iq.opengenus.org/multi-thread-java-program-to-find-prime-numbers/) as we develop a Java program to efficiently find all prime numbers less than N.
138 |
139 | **Synchronization**
140 | ===============
141 | 1. **Creation and Resolution of Deadlocks** Delve into the world of
142 | [deadlocks ](https://iq.opengenus.org/deadlocks-in-java/)in Java, understanding how they are created and exploring methods for resolution.
143 |
144 | **Graphical User Interface**
145 | ========================
146 | 1. **Exploring Java GUI** Embark on a journey through Java's
147 | [graphical user interface](https://iq.opengenus.org/gui-in-java/), covering AWT, Swing, JavaFX, and essential concepts.
148 | 2. **Layouts: Designing User Interfaces** Dive into the world of
149 | [Java layouts](https://iq.opengenus.org/layouts-in-java/), essential for designing and structuring user interfaces with precision.
150 | 3. **Java's Abstract Window Toolkit (AWT)** Begin your journey into the world of
151 | [AWT in Java](https://iq.opengenus.org/basics-awt-java/), the foundation for building graphical user interfaces.
152 |
153 | **APIs**
154 | ====
155 | 1. **Making API Requests in Java** Learn the art of sending
156 | [API requests](https://iq.opengenus.org/api-requests-in-java/)in Java, allowing your programs to interact with external services and data sources.
157 |
158 | **Java Collections**
159 | ================
160 | 1. **Java Collection Tags** Explore
161 | [Java's collection tags](https://iq.opengenus.org/tag/java-collection/), vital tools for managing and structuring data in your programs.
162 | 2. **Java's Iterable Interface: The Foundation of Collections** Delve into the core of Java's collection classes through the
163 | [Iterable interface](https://iq.opengenus.org/java-collections-framework-iterable-interface/), the cornerstone of collections in Java.
164 | 3. **LinkedList in Java Collections Framework** Explore the Java Collections Framework and its
165 | [LinkedList data structure](https://iq.opengenus.org/java-collections-framework-linkedlist/), a dynamic and versatile element in the collection hierarchy.
166 |
167 | **Java Memory Management**
168 | ======================
169 | 1. **Collection of Memory Management Posts** Explore a curated collection of
170 | [informative posts ](https://iq.opengenus.org/tag/java-memory-management/)dedicated to the intricate world of memory management in Java.
171 | 2. **Java Virtual Machine (JVM) Memory Model** Gain insights into Java's memory management by unraveling the
172 | [JVM memory model ](https://iq.opengenus.org/java-jvm-memory-model-memory-management/)and its critical role in Java applications.
173 | 3. **Java Memory Allocation for Objects** Dive into the inner workings of how Java allocates
174 | [memory to objects ](https://iq.opengenus.org/how-java-allocates-memory-to-objects/), uncovering the process step by step.
175 | 4. **Memory Management: Mark-Sweep, Compact, and Copy** Delve into Java's
176 | [memory management techniques ](https://iq.opengenus.org/memory-management-in-java-mark-sweep-compact-copy/), from Mark-Sweep to Compact and Copy, for efficient resource utilization.
177 | 5. **Garbage Collection Tuning and Optimization** Explore advanced techniques for
178 | [tuning and optimizing garbage collection](https://iq.opengenus.org/memory-management-in-java-garbage-collection-tuning-and-optimization/) in Java, enhancing memory management efficiency.
179 |
180 | **Java Servlets**
181 | =============
182 | 1. **Introduction to Java Servlets** Start your journey into the world of
183 | [Java Servlets](https://iq.opengenus.org/servlets-java/), powerful server-side components for web applications. Explore their capabilities and usage.
184 |
185 | **Design Pattern**
186 | ==============
187 | 1. **Singleton Design Pattern in Java** Unlock the power of the
188 | [Singleton design pattern ](https://iq.opengenus.org/singleton-design-pattern-java/)in Java, ensuring that a class has only one instance and providing global access to it.
189 |
190 | **Java Interview Prep**
191 | ===================
192 | 1. **Java Topics at OpenGenus IQ** Explore a comprehensive list of
193 | [Java topics](https://iq.opengenus.org/tag/java/) at OpenGenus IQ, your go-to resource for Java knowledge and learning.
194 | 2. **Comprehensive Java Concepts with Examples** Join us on a journey through essential
195 | [Java concepts](https://iq.opengenus.org/learn-java-in-one-post/), each explained and illustrated with practical code examples.
196 | 3. **Java Predict the Output Questions** Dive into a collection of challenging
197 | [Predict the Output questions](https://iq.opengenus.org/java-predict-output-questions/) for Java coding interviews, designed to test and sharpen your Java skills.
198 | 4. **Basic Java Interview Questions and Answers** Start your journey into Java coding interviews with this collection of fundamental
199 | [questions and answers](https://iq.opengenus.org/basic-java-interview-questions/), essential for practice and preparation.
200 | 5. **30+ Advanced Java Interview Questions** Explore a compilation of
201 | [advanced Java interview ](https://iq.opengenus.org/advanced-java-interview-questions/)questions, designed to challenge your expertise and knowledge in Java programming.
202 |
203 | **Miscellaneous**
204 | =============
205 | 1. **Regex Expressions in Java** Unleash the power of
206 | [regular expressions ](https://iq.opengenus.org/regex-expressions-in-java/)in Java with this article. Learn how to craft regex expressions that unlock the full potential of pattern matching.
207 | 2. **Difference between java, javaw, javaws, and javac** Dive into the world of Java commands with this article. Explore the
208 | [differences between java, javaw, javaws, and javac ](https://iq.opengenus.org/java-javaw-javaws-and-javac/)to master your Java programming toolkit.
209 | 3. **Working with ZIP file system** Unlock the potential of
210 | [ZIP file systems in Java ](https://iq.opengenus.org/zip-file-system-java/)with this article. Learn how to move, copy, delete, and rename files within ZIP archives, mastering file management.
211 | 4. **Download webpage using Java Automaton** Experience the magic of
212 | [web scraping with Java](https://iq.opengenus.org/download-webpage-in-java/). Learn how to download webpages using automaton-like precision and control.
213 | 5. **Programming a Progress bar** TMaster the art of progress indicators in Java. Explore various methods to
214 | [program progress bars](https://iq.opengenus.org/progress-bar-indicator-in-java/), whether on the command line or as part of a graphical user interface.
215 | 6. **Building a Java Application using Apache Maven Command Line** Learn the essentials of building a
216 | [Java application using Apache Maven from the command line](https://iq.opengenus.org/building-java-application-using-apache-maven-command-line/). Streamline your development process with this guide.
217 | 7. **SonarQube for Code Coverage Analysis** Enter the world of
218 | [code quality analysis with SonarQube](https://iq.opengenus.org/sonarqube-for-code-coverage-analysis/). Learn how to analyze code quality, identify code smells, and measure code coverage to elevate your programming expertise.
219 |
220 | **Projects**
221 | ========
222 | 1. **Simple Interest Calculator** Java-based
223 | [Simple Interest Calculator](https://iq.opengenus.org/simple-interest-in-java/) project.
224 | 2. **Statistical Calculator** Explore
225 | [statistical calculations in Java ](https://iq.opengenus.org/java-for-standard-mean-deviation-and-variance/): standard deviation, mean deviation, and variance, all in one OpenGenus article.
226 | 3. **Minesweeper Game** Embark on a journey to create the classic
227 | [Minesweeper ](https://iq.opengenus.org/minesweeper-game-in-java/)game in Java. From requirements analysis to Java implementation, we've got you covered!
228 | 4. **Console Calendar Generator** Join us as we craft a dynamic
229 | [calendar console application ](https://iq.opengenus.org/calendar-application-in-java/)in Java. Easily generate calendars for any year with this project.
230 | 5. **Snake Game** Experience the thrill of designing and implementing the classic
231 | [Snake Game using OOP ](https://iq.opengenus.org/snake-game-java/)in Java. Let's slither into fun!
232 | 6. **Basic Pong Game** Let's dive into game development with this Java project. We'll build a prototype of the classic
233 | [Pong game ](https://iq.opengenus.org/pong-in-java/). Game on!
234 | 7. **Interactive Console Input-Output Application with Multithreading** Explore an
235 | [stopwatch application ](https://iq.opengenus.org/stopwatch-in-java/)that juggles input and output seamlessly with multithreading, offering features like pausing, restarting, and more.
236 | 8. **Advanced Calculator Console App with Shunting Yard** Dive into Java programming as we create a powerful
237 | [calculator app ](https://iq.opengenus.org/calculator-console-application-in-java/). It utilizes the previous result and employs the Shunting Yard Algorithm for advanced calculations.
238 | 9. **Memory Game Exploration** Discover the world of
239 | [memory games ](https://iq.opengenus.org/memory-game-in-java/)and delve into a Java implementation, using provided code as your guide at OpenGenus.
240 | 10. **Password Tools** Unleash the power of Java with our
241 | [password toolkit ](https://iq.opengenus.org/password-generator-and-strength-checker-in-java/). Generate, check strength, and estimate crack times with this versatile project.
242 | 11. **Numeral Converter with Java GUI** Explore the world of
243 | [number systems ](https://iq.opengenus.org/numerical-converter-in-java/)with this Java project. Convert numerals effortlessly using a user-friendly GUI.
244 | 12. **Countdown Timer Console App** Dive into the world of
245 | [time management ](https://iq.opengenus.org/timer-console-application-in-java/)with this Java project. Simulate countdown timers complete with progress bars and displays.
246 | 13. **Student Management System** Manage students and their data efficiently using this Java-based
247 | [Student Management System ](https://iq.opengenus.org/student-management-system-in-java/). Simplify administration tasks with ease.
248 | 14. **Library Management System** Explore a comprehensive
249 | [Library Management System ](https://iq.opengenus.org/library-management-system-in-java/), built with JavaFX and MySQL, offering a robust solution for libraries and book enthusiasts.
250 | 15. **Maze Generation and Solving Application** Embark on a
251 | [maze-solving adventure ](https://iq.opengenus.org/maze-generator-in-java/)in Java. Create mazes and conquer them using Depth-First Search with Backtracking.
252 | 16. **Spell Checker Application** Join us in crafting a
253 | [spell checker ](https://iq.opengenus.org/spell-checker-in-java/)in Java. Detect spelling errors and receive suggestions for accurate writing.
254 | 17. **Typing Speed Tester Tool** Put your typing skills to the test with our
255 | [Java-based command line tool ](https://iq.opengenus.org/typing-speed-test-in-java/). Measure your typing speed and accuracy.
256 | 18. **Chrome Dinosaur Game in Java with Processing** Bring the
257 | [Chrome Dinosaur ](https://iq.opengenus.org/t-rex-game-java/)to life with this Java project using Processing. Jump, duck, and dodge obstacles for high scores. 🦖🎮
258 |
259 | ---
260 | Generated by OpenGenus. Updated on 2023-11-27
--------------------------------------------------------------------------------