Skip to content

Commit d78045c

Browse files
committed
standardized categories
1 parent cce597c commit d78045c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+102
-102
lines changed

algorithms/BFS.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Breadth First Search Algorithm Implementation and Analysis
3-
category: algorithms
3+
category: Algorithms
44
tags: graph-traversal, shortest-paths, graph-theory, complexity-analysis
55
description: A comprehensive explanation of the Breadth First Search (BFS) algorithm, including implementation, complexity analysis, and mathematical proofs. The document covers the algorithm's properties for finding shortest paths in graphs and includes Python implementations with detailed theoretical foundations and lemmas about level ordering.
66
---

algorithms/DAGs.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Topological Ordering and Properties of Directed Acyclic Graphs
3-
category: algorithms
3+
category: Algorithms
44
tags: graph theory, topological sorting, directed acyclic graphs, proofs
55
description: A technical exploration of Directed Acyclic Graphs (DAGs) focusing on their topological ordering properties and fundamental lemmas. The document includes mathematical proofs of key DAG properties and presents a Python implementation of the topological sorting algorithm.
66
---

algorithms/DFS.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Depth First Search Algorithm and Tree Properties
3-
category: algorithms
3+
category: Algorithms
44
tags: graph theory, depth first search, spanning trees, graph traversal
55
description: A technical explanation of Depth First Search (DFS) algorithm and its tree properties, including both recursive and iterative implementations. The document covers key properties of DFS trees, including the ancestor-descendant relationship of non-tree edges, and includes a formal lemma and proof about DFS tree characteristics.
66
---

algorithms/approximation-algorithms.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Approximation Algorithms
3-
category: algorithms
3+
category: Algorithms
44
tags: approximation, algorithms, vertex cover, set cover
55
description: A survey of approximation algorithms, including the 2-approximation for vertex cover and the log(n) approximation for set cover.
66
---

algorithms/connected-components.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Finding Connected Components in Undirected Graphs Using BFS/DFS
3-
category: algorithms
3+
category: Algorithms
44
tags: graph theory, connected components, breadth-first search, depth-first search
55
description: Explains how to partition an undirected graph into connected components using BFS or DFS algorithms in O(|V| + |E|) time complexity. Includes Python implementation using adjacency lists and demonstrates how to create a data structure that enables O(1) time queries for path existence between vertices.
66
---
@@ -35,7 +35,7 @@ def connected_components(graph):
3535
q.append(v)
3636

3737
curr_label = 0
38-
38+
3939
for v in range(len(graph)):
4040
bfs(curr_label, graph, v)
4141
curr_label += 1

algorithms/divide-and-conquer.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Divide and Conquer Algorithm Analysis with Implementation Examples
3-
category: algorithms
3+
category: Algorithms
44
tags: divide-and-conquer, algorithmic-complexity, recursive-algorithms, computational-geometry
55
description: A comprehensive examination of divide and conquer algorithmic strategies, focusing on their implementation and analysis. The document covers theoretical foundations with mathematical proofs, practical examples including bisection method and closest pair problem, and includes Python implementations demonstrating these concepts.
66
---

algorithms/dynamic-programming.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Dynamic Programming Algorithms and Problem Solutions Guide
3-
category: algorithms
3+
category: Algorithms
44
tags: dynamic-programming, optimization, algorithm-analysis, problem-solving
55
description: A comprehensive guide covering various dynamic programming algorithms and their implementations, including knapsack, sequence alignment, and tree-based problems. Includes detailed explanations of problem-solving approaches, correctness proofs, and runtime analysis for each algorithm, with practical Python implementations.
66
---

algorithms/patterns/BFS.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
title: Spring Boot Quickstart Guide
3-
category: software-engineering
3+
category: Software Engineering
44
tags: spring boot, quick start, spring web, rest repositories
55
description: A step-by-step guide to creating a Spring Boot application with Rest Repositories
66
---
77
---
88
title: Breadth First Search Pattern
9-
category: algorithms
9+
category: Algorithms
1010
tags: breadth-first search, graph algorithms, graph traversal, shortest path
1111
description: A technical exploration of the Breadth First Search algorithm, focusing on its key properties and applications in graph problems.
1212
---

algorithms/patterns/sliding-window.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Sliding Window Pattern
3-
category: algorithms
3+
category: Algorithms
44
tags: sliding window, fixed size window, dynamic size window, streaming algorithms, array problems, contiguous subarray, linear data structure
55
description: A technical exploration of the sliding window pattern in algorithms, focusing on its applications and variations.
66
---
@@ -40,7 +40,7 @@ Some problems will require you to `map` (as in apply a function to each element
4040
Dynamic size windows often involve more complicated logic within each iteration, since at any given step you need to decide whether to expand or contract the window, on top of how to update the window state for each case.
4141

4242
A typical algorithm might look like this:
43-
-
43+
-
4444

4545

4646
## Practice Problems

algorithms/practice/4.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Interval Sum Counting Algorithm
3-
category: algorithms
3+
category: Algorithms
44
tags: interval sums, binary search, prefix sum, suffix sum
55
description: An algorithm for counting the number of interval sums between a given range in an array of intervals.
66
---

algorithms/problems/graphs-and-trees.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Graphs and Trees
3-
category: algorithms
3+
category: Algorithms
44
tags: graphs, trees, induction, proof by contradiction, cycle detection
55
description: A technical exploration of graphs and trees focusing on the properties and proofs of these fundamental data structures.
66
---

cheatsheets/algorithms/divide-and-conquer.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Divide and Conquer Algorithms
3-
category: algorithms
3+
category: Algorithms
44
tags: divide and conquer, master theorem, root finding, bisector algorithm, kth smallest element
55
description: A technical exploration of Divide and Conquer algorithms focusing on the Master Theorem, Root Finding, and kth Smallest Element problems.
66
---

cheatsheets/algorithms/graphs.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Graph Theory
3-
category: algorithms
3+
category: Algorithms
44
tags: Graphs, Trees, DFS, BFS, Topological Sort, Minimum Spanning Tree, Disjoint Sets
55
description: A comprehensive overview of graph theory, including concepts such as nodes, edges, trees, and minimum spanning trees, as well as algorithms like depth-first search and breadth-first search.
66
---

cheatsheets/algorithms/intervals.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Interval Scheduling/Partitioning
3-
category: algorithms
3+
category: Algorithms
44
tags: greedy algorithms, interval partitioning, scheduling, time complexity
55
description: A technical exploration of Interval Scheduling and Partitioning focusing on their greedy algorithm properties and structural analysis.
66
---

cheatsheets/circuits/components.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Electronic Components
3-
category: hardware
3+
category: Hardware
44
tags: Transistors, Op-Amps, Filters, Amplifiers, Comparators
55
description: A comprehensive overview of electronic components used in electronics devices, including Transistors, Op-Amps, Filters, Amplifiers, and Comparators.
66
---
@@ -9,7 +9,7 @@ description: A comprehensive overview of electronic components used in electroni
99

1010
## DC Sources
1111

12-
Direct current sources are sources that provide a constant voltage or current. Batteries are a common example of a DC voltage source. If you graph the voltage over time, it's a flat line.
12+
Direct current sources are sources that provide a constant voltage or current. Batteries are a common example of a DC voltage source. If you graph the voltage over time, it's a flat line.
1313

1414
Voltage sources supply the required current to maintain a constant voltage, and current sources supply the required voltage to maintain a constant current.
1515

cheatsheets/circuits/electricity.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Electric Circuit Analysis
3-
category: electrical-engineering
3+
category: Electrical Engineering
44
tags: Electrical Engineering,Circuits,Ohms Law,Kirchoffs Laws,Impedance,AC Circuits,DC Circuits,Power,Energy
55
description: In-depth analysis of electric circuits, including short and open circuits, Ohm's law, Kirchoff's laws, impedance, power, and energy. A comprehensive guide for electrical engineers and students.
66
---
@@ -11,11 +11,11 @@ description: In-depth analysis of electric circuits, including short and open ci
1111

1212
Electricity, being the flow of electrons, is similar to many other types of flow. For prosperity, engineers use **conventional current**, a bad theory made long ago that positive charges flow from high potential to low potential. In reality, electrons are negatively charged and flow from low potentials to high potentials.
1313

14-
**Potential**? What's that? It's the energy per unit charge at a point in space. It's measured in volts, and is the driving force behind the flow of electricity. From this point on I'll refer to potential as voltage, like a true engineer.
14+
**Potential**? What's that? It's the energy per unit charge at a point in space. It's measured in volts, and is the driving force behind the flow of electricity. From this point on I'll refer to potential as voltage, like a true engineer.
1515

1616
If you're smooth brained like me, it helps to think of it as similar to potential energy of balls on a track, but for electrons. A higher voltage means the electron has a long way to fall. This model only takes you so far, but it helps as a mental model for characterizing the behavior of electricity.
1717

18-
If potential is the driving factor behind the flow of electricity (like gravity), then **current** is the magnitude of the flow itself (like throughput). It's measured in amperes (A, Amp), which is a compound unit of charge per unit time.
18+
If potential is the driving factor behind the flow of electricity (like gravity), then **current** is the magnitude of the flow itself (like throughput). It's measured in amperes (A, Amp), which is a compound unit of charge per unit time.
1919

2020
Finally, **resistance** is the opposition to the flow of electricity. It's measured in ohms ($\Omega$), and can be thought of as anything that drops the voltage (like a hill or friction for potential energy) when current flows through it.
2121

@@ -86,7 +86,7 @@ $$V(t) = V_m \cos(\omega t + \phi) = V_m \cos(\phi) + jV_m \sin(\phi)$$
8686

8787
$$ = V_m \angle \phi = V_m e^{j\phi}$$
8888

89-
## Series vs. Parallel
89+
## Series vs. Parallel
9090

9191
### Series
9292

cheatsheets/java-spring-boot/reference.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Spring Boot Annotations
3-
category: software-engineering
3+
category: Software Engineering
44
tags: spring-boot, annotations, java, configuration
55
description: A documentation on the Spring Boot annotations used for configuration, auto-configuration, component scanning, and more.
66
---

cheatsheets/java-spring-boot/running.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Spring Boot Quickstart Guide
3-
category: software-engineering
3+
category: Software Engineering
44
tags: spring boot, quick start, spring web, rest repositories
55
description: A step-by-step guide to creating a Spring Boot application with Rest Repositories
66
---

digital-design/combinational-logic.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Combinational Logic
3-
category: hardware
3+
category: Hardware
44
tags: combinational logic, sequential logic, boolean algebra, logic gates, minimization
55
description: Explains the concept of combinatorial logic, its differences with sequential logic, and various techniques for minimizing boolean expressions.
66
---

digital-design/karnaugh-maps.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Karnaugh Maps
3-
category: hardware
3+
category: Hardware
44
tags: karnaugh maps, truth tables, graph theory, computer science
55
description: Method for simplifying Boolean expressions
66
---

digital-design/quartus-workflow.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Developing FPGA Designs with Quartus and ModelSim
3-
category: hardware
3+
category: Hardware
44
tags: Quartus, ModelSim, Verilog, testing process, modular design
55
description: Describes a structured approach to testing and verifying digital circuits using Quartus and ModelSim.
66
---

digital-design/sequential-logic.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Sequential Logic (SL)
3-
category: hardware
3+
category: Hardware
44
tags: sequential logic, digital systems, finite state machines, flip-flops, clock signals
55
description: Explains the concept of sequential logic in digital systems and its applications.
66
---

digital-design/system-verilog.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: SystemVerilog
3-
category: hardware
3+
category: Hardware
44
tags: system-verilog, hardware, digital electronics, programming languages for hardware
55
description: Programming language for describing hardware behavior, including modules, primitives, execution, and structural representation
66
---
@@ -50,7 +50,7 @@ In pure hardware, there is no notion of initialization. Wires can naturally pick
5050
module AOI (F, A, B, C, D);
5151
output logic F; // each variable
5252
input logic A, B, C, D; // is 1-bit (logic)
53-
53+
5454
assign F = ~((A & B) | (C & D)); // continuous assignment
5555
endmodule
5656
// end of SystemVerilog code
@@ -80,7 +80,7 @@ module AOI (F, A, B, C, D);
8080
output logic F;
8181
input logic A, B, C, D;
8282
logic AB, CD, O; // now necessary
83-
83+
8484
// and is the module name. a1 is the instance name
8585
// AB, A, B are port connections
8686
and a1(AB, A, B);

digital-design/waveform-diagram.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Waveform Diagrams
3-
category: hardware
3+
category: Hardware
44
tags: waveform diagrams, bit vectors, bus, circuit timing behavior
55
description: Explains the concept of waveform diagrams in digital design, and how to use them to visualize the state of a system.
66
---
@@ -49,10 +49,10 @@ Create emulated inputs for all of the FPGA's physical connections.
4949
module MUX2_tb ();
5050
logic SEL, I, J; // simulated inputs
5151
logic V; // net for reading output
52-
52+
5353
// instance of module we want to test ("device under test")
5454
MUX2 dut (.V(V), .SEL(SEL), .I(I), .J(J));
55-
55+
5656
initial // build stimulus (test vectors)
5757
begin // start of "block" of code
5858
{SEL, I, J} = 3'b100; #10; // t=0: S=1, I=0, J=0 -> V=0

distributed-systems/RPC.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Remote Procedure Call (RPC)
3-
category: distributed-systems
3+
category: Distributed Systems
44
tags: Distributed Systems, Communication, Concurrency
55
description: A discussion on the challenges of message passing in a distributed system, including the two generals problem.
66
---

distributed-systems/bigtable.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Bigtable, A Distributed Storage System for Structured Data
3-
category: distributed-systems
3+
category: Distributed Systems
44
tags: Bigtable, Distributed Storage, Google
55
description: A highly scalable, reliable, and fault-tolerant distributed storage system designed for structured data. Built by Google, it uses a combination of commodity hardware and software to provide low-latency, high-throughput access to large amounts of data.
66
---

distributed-systems/clocks.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Clocks
3-
category: distributed-systems
3+
category: Distributed Systems
44
tags: clocks, distributed systems, logical clocks, vector clocks, causality, consistency
55
description: Explains the concepts of physical and virtual clocks in distributed systems, including their limitations and potential solutions.
66
---

distributed-systems/consistency.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Distributed Systems Consistency Models
3-
category: other
3+
category: Distributed Systems
44
tags: Consistency Models,Paxos,Linearizability,Sequential Consistency,Snapshot Reads,Causal Consistency,Processor Consistency,Memory Barrier/Fence
55
description: This document discusses various consistency models used in distributed systems, including Paxos, linearizability, sequential consistency, snapshot reads, causal consistency, processor consistency, and memory barriers. It explains the differences between these models and when to use them.
66
---
@@ -13,7 +13,7 @@ Consistency specifies the interface (as opposed to implementation) for behavior
1313

1414
## Types of Consistency
1515

16-
| Type | Description |
16+
| Type | Description |
1717
|----------------------|-------------------------------------------|
1818
| Strong Consistency | The system behaves as if there is a single server. Systems that maintain a single consistent log of operations are often strongly consistent. |
1919
| Weak Consistency | Definitions vary, but basically just *not* strong consistency. |

distributed-systems/consistent-global-state.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Consistent Global State in Distributed Systems
3-
category: distributed-systems
3+
category: Distributed Systems
44
tags: consistent global state, distributed systems, global predicate evaluation, asynchronous distributed systems
55
description: Explains the concept of maintaining a consistent global state in distributed systems and its implications.
66
---

distributed-systems/disconnected-operation.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Disconnected Operation
3-
category: distributed-systems
3+
category: Distributed Systems
44
tags: disconnected operation, distributed systems, conflict resolution, eventual consistency
55
description: Explains the concept of disconnected operation in distributed systems and its implications.
66
---

distributed-systems/distributed-cache-coherence.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Linearizable Caches
3-
category: distributed-systems
3+
category: Distributed Systems
44
tags: Cache Coherence, Consistency Models, Distributed Systems
55
description: A linearizable cache is a cache that provides strong consistency guarantees for reads and writes. It is a type of cache coherence protocol that ensures all copies of data are consistent with each other, even in the presence of failures or network partitions.
66
---

distributed-systems/dynamo-db.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Dynamo: Amazon's Highly Available Key-value Store
3-
category: database-systems
3+
category: Distributed Systems
44
tags: key-value store, database-design, high-availability, consistency, object-versioning, conflict-resolution
55
description: A highly available key-value storage system sacrificing consistency under failure conditions, using object versioning and application assisted conflict resolution.
66
---

distributed-systems/google-file-system.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Google File System (GFS) Overview
3-
category: distributed-systems
3+
category: Distributed Systems
44
tags: Cloud Storage, Distributed Systems, Google Cloud
55
description: An overview of the Google File System (GFS), a highly scalable and fault-tolerant distributed storage system designed to handle large amounts of data across many commodity hardware nodes.
66
---

distributed-systems/load-balancing.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Load Balancing
3-
category: distributed-systems
3+
category: Distributed Systems
44
tags: load balancing, distributed systems, paxos, sharding, edge caching, queueing, zipf distribution
55
description: Explains load balancing strategies and their implications on distributed systems.
66
---

distributed-systems/managing-critical-state.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
title: Distributed Systems Consistency Models
3-
category: distributed-systems
3+
category: Distributed Systems
44
tags: Consistency Models,Paxos,Linearizability,Sequential Consistency,Snapshot Reads,Causal Consistency,Processor Consistency,Memory Barrier/Fence
55
description: This document discusses various consistency models used in distributed systems, including Paxos, linearizability, sequential consistency, snapshot reads, causal consistency, processor consistency, and memory barriers. It explains the differences between these models and when to use them.
66
---
77
---
88
title: Distributed Consensus Fundamentals
9-
category: distributed-systems
9+
category: Distributed Systems
1010
tags: Distributed Systems, Consensus Algorithms
1111
description: This document covers the fundamentals of distributed consensus algorithms, including leader election, replicated state machines, reliable datastores, and coordination services.
1212
---

distributed-systems/mutual-exclusion.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Distributed Mutual Exclusion
3-
category: distributed-systems
3+
category: Distributed Systems
44
tags: distributed systems, mutual exclusion, locking, ordering, consistency
55
description: Explains a distributed mutual exclusion algorithm using timestamps and sequence numbers.
66
---

distributed-systems/non-blocking-two-phase-commit.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Non-Blocking Two Phase Commit
3-
category: distributed-systems
3+
category: Distributed Systems
44
tags: paxos, two-phase commit, distributed transactions, consistency models
55
description: Explains the concept of non-blocking two phase commit using Paxos
66
---

0 commit comments

Comments
 (0)