├── .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 | | DL-checklist | GA-checklist-markdown | 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

69 |
70 | 0/X 71 | 72 | 73 | 74 |
75 |
76 | 77 |
78 | 79 |
80 |

Week 1: -

81 | 82 | 83 |
    84 | 85 |
  • 86 | Topic 1 87 | 90 |
    91 |
    92 | content 93 |
    94 |
    95 |
  • 96 | 97 |
  • 98 | Topic 2 99 | 102 |
    103 |
    104 | content 105 |
    106 |
    107 |
  • 108 | 109 |
110 |
111 | 112 |
113 |

Week 2: -

114 | 115 | 116 |
    117 | 118 |
  • 119 | Topic 3 120 | 123 |
    124 |
    125 | content. 126 |
    127 |
    128 |
  • 129 |
130 |
131 | 132 |
133 | 134 | 135 |

Best of Luck.

136 |

Powered by OpenGenus IQ because we love ❤️ you.

137 |

138 | -------------------------------------------------------------------------------- /src/nlp-checklist.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NLP 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 |

NLP 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 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 |
    221 |
    222 |
  • 223 |
  • 224 | Creating a GitHub Account 225 | 228 |
    229 |
    230 | Detailed account creation steps with account settings recommendations. 231 |
    232 |
    233 |
  • 234 |
  • 235 | Setting Up SSH Keys 236 | 239 |
    240 |
    241 | Instructions for secure authentication using SSH keys. 242 |
    243 |
    244 |
  • 245 |
  • 246 | Configuring Git with GitHub 247 | 250 |
    251 |
    252 | How to link your Git installation to your GitHub account. 253 |
    254 |
    255 |
  • 256 |
  • 257 | GitHub Profile and Repository Management 258 | 261 |
    262 |
    263 | Managing your GitHub profile, repositories, and settings. 264 |
    265 |
    266 |
  • 267 |
268 | 269 |

Documentation and Getting Started with a Project

270 | 271 | 272 |
    273 | 274 |
  • 275 | Importance of Documentation 276 | 279 |
    280 |
    281 | Emphasizing the value of clear and comprehensive project documentation. 282 |
    283 |
    284 |
  • 285 |
  • 286 | Reading Project Documentation 287 | 290 |
    291 |
    292 | How to navigate and interpret project-specific documentation. 293 |
    294 |
    295 |
  • 296 |
  • 297 | Identifying Maintainers and Contributors 298 | 301 |
    302 |
    303 | Strategies for finding and connecting with project maintainers and contributors. 304 |
    305 |
    306 |
  • 307 |
  • 308 | Exploring Existing Contributions 309 | 312 |
    313 |
    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 --------------------------------------------------------------------------------