Dissecting NASA's HDTN Architecture: How Does Space DTN Actually Work?
🌐 中文版:繁體中文 Preface: from the concept of DTN to a space network that actually worksIn the previous post, Why Space Networking Needs DTN: From TCP/IP’s Limits to Deep-Space Networks, I laid out the most fundamental differences between space networks and the terrestrial Internet. On Earth, we usually expect a complete, immediately-usable path between source and destination. Even if a packet is occasionally lost along the way, TCP can handle it through a whole set of mechanisms like ACK, ...
Why Space Networking Needs DTN: From TCP/IP's Limits to Deep-Space Networks
🌐 中文版:繁體中文 Preface: can we still get online smoothly in space? I recently watched the livestream of NASA’s Artemis II lunar flyby mission. Watching the rocket lift off, I felt I’d witnessed another milestone for humanity.In recent years, progress from NASA, the Commercial Lunar Payload Services (CLPS), SpaceX’s Starship, and various countries’ investment in lunar and deep-space missions has made space infrastructure no longer just a sci-fi concept but increasingly a matter of engineering p...
Building and Analyzing a Satellite Ground Station with SatNOGS
🌐 中文版:繁體中文 IntroductionI’ve long been fascinated by how satellites communicate with ground stations, including how satellites are tracked, how a ground station obtains orbital data (e.g. TLE, and the signal the SDR receives), and how the received signal is converted into a decodable IF frequency, and so on. So I decided to use SatNOGS (Satellite Networked Open Ground Station) as my entry point, building a complete ground station that can automatically schedule, track, and receive satellit...
initrd vs initramfs | Linux Kernel
🌐 中文版:繁體中文 IntroductionEarly in boot, a temporary filesystem is needed to perform initialization and configuration during the early boot stage. There are two mechanisms for using a temporary filesystem: initrd (Initial RAM Disk) and initramfs (Initial RAM Filesystem). initrd is the earlier approach, and most boot flows today use initramfs. initrd initrd (Initial RAM Disk) is a temporary root filesystem used in early Linux boot. It takes the form of a gzip-compressed block image, loaded at ...
Git for DevOps Notes |【DevOps Skill Tree】
🌐 中文版:繁體中文 Basic Q: How do you confirm a directory is a git repository? Check whether there’s a .git directory. Q: Explain git directory, working directory, and staging area Git directory:Where the project history is stored. It contains all commit history, branches, labels, etc., stored in the .git folder in the project directory. The git directory is the main data store responsible for version management; you can view info with the git log command. Working directoryThe project director...
Unboxing + Basic Setup | Getting Into the Meshtastic Open-Source Project | Meshtastic Series
🌐 中文版:繁體中文 🔋 Basic intro: https://hackmd.io/@BASHCAT/S1m_x-AOA/%2FUAmGpkIzQy-Fc5xKmcyBtQ🔋 Official Web Page: https://meshtastic.org/docs/about/🔋 Useful Videos: https://youtu.be/6hW40yaj3x4?si=rGFPADhNIWfiZnL8 https://youtu.be/x99R78fkSg0?si=cU1XbtR8HUWploHr 🔋 FB - Taiwan Mesh Network https://www.facebook.com/groups/meshtastictw/about🔋 Reddit thread https://www.reddit.com/r/meshtastic/ What is Meshtastic?An open-source project based on LoRa wireless communication technology. Us...
Problem-Solving Notes | Graphs-3
🌐 中文版:繁體中文 IntroTo guarantee things like “you must take Calculus before you can take Engineering Mathematics”, this kind of graph problem with ordering dependencies is usually handled with Topological Sort. Using DFS to find Strongly Connected Components (SCC)Strongly Connected Components (SCC) When vertices are connected by edges in both directions, for example going from vertex(A) to vertex(B) while vertex(B) also has an edge back to vertex(A), we say these two vertices are strongly con...
Deploying Prometheus and Grafana on a Proxmox VE Cluster
🌐 中文版:繁體中文 PrefaceOn the Proxmox VE cluster I built earlier, I needed to periodically collect GPU power-consumption info as the basis for a script’s decisions, so I needed Prometheus to collect the info. Node background infoIP CIDR: 172.25.166.139/24CPU(s) 4 x Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz (1 Socket)Kernel Version Linux 6.8.4-2-pve (2024-04-10T17:36Z) Installing PrometheusCreate the Prometheus user 12sudo groupadd --system prometheussudo useradd -s /sbin/nologin --system -g pro...
Problem-Solving Notes | Graphs-2
🌐 中文版:繁體中文 IntroThis continues from the previous post on the basic introduction to graphs. Next we need to understand how to search for a specific vertex in a graph, i.e. how to traverse a graph. There are three basic algorithms: Breadth-First Search (BFS): for traversing directed and undirected graphs Depth-First Search (DFS): for traversing directed and undirected graphs Topological Search: for detecting a Directed Acyclic Graph (DAG). BFSI introduced Tree BFS (Level-Order Traversal) b...
Problem-Solving Notes | Graphs
🌐 中文版:繁體中文 IntroWhen we stored data before, common data structures were arrays, hash tables, linked lists, and so on. Imagine you’ve just started university and have a course schedule listing various courses in a table, but you don’t know which courses are prerequisites, which might be taken later, or which might block others. In this case, using a graph to represent the relationships between courses is very convenient. So one of the key points of a graph is preserving the relationships be...









