Linux Networking
Linux provides a highly transparent and programmable networking stack, allowing you to see exactly how packets traverse interfaces, bridges, and routing tables. This post introduces the foundational tools and concepts for inspecting and configuring Linux’s data plane directly, rather than relying on abstracted models.
Computer Networks
This blog post provides a structured overview of computer networking fundamentals, organized around the OSI model and real-world practices. It begins with the basics of the OSI and TCP/IP stacks, then explores each layer’s function—from physical transmission and link-layer protocols like Ethernet and ARP, to IP addressing and routing at the network layer, and reliable communication via TCP and UDP at the transport layer. The application layer section covers protocols such as HTTP, DNS, and SMTP. It also explains core routing algorithms (like OSPF and RIP), and addresses NAT and firewall principles for secure Internet access. Designed for both students and practitioners, the post balances theoretical clarity with engineering relevance.
Algorithms & Data Structure
This blog post provides an overview of key concepts in algorithms, starting with Dynamic Programming and Greedy Algorithms, exploring techniques like Divide and Conquer, Fourier Transform, and foundational theory on P and NP, NP-Completeness, and NP-Hard problems. It delves into Linear Programming and Integer Linear Programming, focusing on Approximation Algorithms and their applications, including TSP (Traveling Salesman Problem) approximation schemes. The post also covers advanced topics such as RSA Public Key Cryptography and the Basics of Quantum Computing, along with an introduction to advanced data structures, offering a comprehensive guide to important algorithmic techniques and their real-world applications.
Climber AI
The blog post introduces an innovative concept for a computer vision system that automatically identifies climbing routes from a photo of a climbing wall. It would analyze features such as color-coded routes and different hold types (e.g., jug, crimp, sloper). Additionally, using geometry and physics, the system would create a personalized climbing plan (beta) for the climber, tailored to their skill level and technique. The post explores the potential for smarter climbing experiences through AI and technology.
LoRaLite - Version 0.0.3
Explain how the master node performs scheduled tasks such as polling data, time synchronization, and configuration verification. Additionally, it handles web API commands triggered by a flag. The main control loop checks the current time and executes tasks at specified intervals, ensuring efficient coordination and communication within the network. The implementation includes a flow chart for clarity and detailed steps for setting up time synchronization and task scheduling.
LoRaLite - Build a LoRa Network With Transceivers Only
Learn the difference between LoRa and LoRaWAN and how to set up a cost-effective LoRa network with ESP32 devices and transceivers. This guide covers the limitations of a no-gateway setup and provides solutions for timing coordination, avoiding conflicts, and assigning unique identifiers. Includes practical examples and code snippets using the Arduino LoRa library to help you implement your own LoRa network.
LoRaWAN
Algorithms - Quantum Computing
Algorithms - TSP & Knapsack Approximation
Algorithms - RSA Public Key Cryptography
Algorithms - P, NP, NP-Complete, NP-Hard
Algorithms - Fourier Transform
Discusses Fourier Transform’s in signal processing, physics, and engineering, where it converts time-domain functions into frequency-domain representations. Explains the Inverse Fourier Transform and Discrete Fourier Transform (DFT) for discrete signals. It also covers the Fast Fourier Transform (FFT), an efficient algorithm for polynomial multiplication, detailing the key steps involved in its execution and its overall time complexity of O(n log n + n). Explains how Numpy handles FFT operations with functions like numpy.fft.fft for forward and numpy.fft.ifft for inverse transformations.
Algorithms - Divide & Conquer
Algorithms - Dynamic Programming
Operating Systems - Introduction
Addresses the challenges of structured vs. unstructured data, and introduces the Bag of Words model for feature representation. Explain why each document can be represented as a point in a d-dimensional feature space.
NLP - Language Modeling
Language modeling in NLP is essential for applications like autocomplete and translation, focusing on text fluency by predicting the next word based on context. It utilizes models such as unigram, bigram, and n-gram, with effective modeling requiring efficient context management through fixed windows. Key challenges include representing history for accurate predictions, while neural language models and techniques like LSTM enhance performance by managing memory and context in sequences.
Operating Systems - Interoperability Testing
NLP - Classification
Addresses the challenges of structured vs. unstructured data, and introduces the Bag of Words model for feature representation. Explain why each document can be represented as a point in a d-dimensional feature space.