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.