Starting Jupyter
This document provides a comprehensive introduction to Jupyter, a freely available web application for interactive computing. It covers Jupyter's key features, advantages for data science, and practical guidance on operating notebooks, including cell management, working with multiple notebooks presenting results, and managing sessions.
List and Tuples
This document explains Python lists and tuples, including indexing, slicing mutability, concatenation, nesting, methods, and aliasing, with practical examples for data manipulation.
Expression Variable
This document explains Python expressions and variables, including arithmetic operations, assignment, variable naming, and practical usage for storing and manipulating values.
Dictionaries
This document explains Python dictionaries, including keys, values, creation access, modification, deletion, and methods for managing key-value pairs.
Conditions and Branching
This document explains Python conditions and branching, including comparison operators, Boolean logic, if/else/elif statements, and practical examples for decision-making in code.
Test Fixture
This document explains the purpose and use of test fixtures in software testing, covering their role in establishing known states, ensuring test isolation, and the different fixture types available in PyUnit.
Writing Assertion
This document demonstrates the workflow for writing test assertions, debugging failing tests, and building robust test cases for stack operations in Python.
Test Assertion
This document explains the purpose of assertions in testing, describes common PyUnit assertions, and discusses the role of happy and sad paths in test case design.
Test Case Anatomy
This document explains the structure of a test case, the role of test fixtures, and how frameworks help developers build assertions for reliable testing.
Test With Nose and Pytest
This document compares Python's unittest and Nose test runners, showing how to run tests, interpret reports, and use coverage tools for better code quality.
Test Driven Development Benefits
This document explains the Red/Green/Refactor workflow in TDD, its steps, and how TDD saves time and improves code reliability.
Why don't Developers want to test?
This document explores common reasons developers avoid testing, the risks of skipping tests, and the long-term benefits of maintaining a robust test suite for code reliability and collaboration.
Testing Levels
This document explains the four main levels of software testing—unit integration, system, and acceptance—and describes how each fits into the traditional release cycle and environments.
Testing Importance
This document explores why testing is essential in software engineering drawing lessons from the Apollo program and connecting them to modern DevOps and automation practices.
TDD and BDD
This document compares test-driven development (TDD) and behavior-driven development (BDD), explaining their differences, complementary roles, and how they support robust software design and testing.
Introduction to Test-Driven and Behavior-Driven Development
This document explores the principles and workflows of Test-Driven Development (TDD) and Behavior-Driven Development (BDD), highlighting their benefits techniques, and practical applications in software engineering.
Case Study
This document presents a case study on the practical application of TDD and BDD in a real-world software project, highlighting challenges, solutions, and lessons learned for effective testing and delivery.
System Design Overview
This document introduces the essential concepts and building blocks of system design, including client-server architecture, DNS, proxies, HTTP/HTTPS, APIs databases, and scaling strategies for modern applications.
Overview of Microservices
This document explores the evolution from monolithic to microservices architectures, highlighting their differences, challenges, and best practices for building, scaling, and communicating between services.
Pulling Image from a Repository
This lab guides you through pulling an image from Docker Hub and running it as a container. It is a simple exercise to familiarize you with Docker commands and the process of working with container images.
Service Binding
Explains the concept, process, and best practices of service binding in Kubernetes, including how to securely connect applications to external services using secrets and environment variables.
Config Map and Secrets
Explains Kubernetes ConfigMaps and Secrets, their characteristics, creation methods, and usage for managing configuration and sensitive data in deployments.
Rolling Updates
This document explains the concept, process, and best practices of rolling updates in Kubernetes, ensuring zero downtime and safe application upgrades.
Autoscaling
This document explains Kubernetes autoscaling, including HPA, VPA, and CA their mechanisms, configuration, and best practices for optimizing resource usage and cost. It covers how each autoscaler works and when to use them.
AOS Animation Example in HBStack
Demonstrates how to use AOS (Animate On Scroll) attributes in HBStack/Hugo content blocks, headings, and banners.
Orchestration Tools
This document provides an overview of various container orchestration tools their features, and use cases. It covers popular tools like Kubernetes, Docker Swarm, and Apache Mesos, highlighting their strengths and ideal scenarios for deployment.
Replicaset
This document explains ReplicaSet in Kubernetes, its role in maintaining desired pod states, scaling, redundancy, and best practices for deployment management. It covers how ReplicaSets work, their benefits, and practical usage examples.
Kubernetes Setup
This document provides a step-by-step guide for setting up a local Kubernetes lab using MicroK8s on Ubuntu 24.04. It includes instructions for installing necessary components, enabling add-ons like DNS and Helm, deploying sample applications, and accessing the Kubernetes Dashboard. It also outlines file organization and usage of kubectl.
How to Learn Kubernetes
This document outlines the essential prerequisites and foundational concepts needed before learning Kubernetes, including containerization, cloud basics YAML, networking, and terminal proficiency.
Kubectl
This document explains kubectl, the Kubernetes command-line tool, its command structure, types of commands, and best practices for managing cluster resources.