Author: Matt Chung
-
Why all developers should learn how to perform basic network troubleshooting
(Also published on Hackernoon.com and Dev.to) Regardless of whether you work on the front-end or back-end, I think all developers should gain some proficiency in network troubleshooting. This is especially true if you find yourself gravitating towards lower level systems programming. The ability to troubleshoot the network and systems separates good developers from great developers.…
-
Building an audience: A lesson from the younger me
When it comes to building an audience as a solo-entrepreneur, the younger me was much smarter, much more in tuned with himself. These days, I operate 95% of my life from the left side of my brain, analyzing and taking a data driven, logical approach. While necessary in many respects, I need to make more…
-
My introduction in the Piazza forum for Graduate Algorithms (GA)
At the beginning of every semester, each student is encouraged to post on the forum (i.e. Piazza), introducing themselves and answering the following questions: What is your name? Where do you live? Why take Graduate Algorithms? What do you hope to learn? What other OMS courses have you taken? What is something interesting about you?…
-
Distributed Computing @ OMSCS over – what a ride!
Last semester, I decided to enroll in the brand spanking new Georgia Tech’s Distributed Computing course offered for the first time (as part of OMSCS) this past Spring 2021. What a ride! Learned a ton, including Lamport’s Logical Clocks, the FLP theorem, and the notorious PAXOS for consensus. Hats off to Professor Ada and the…
-
Distributed Computing CS7210 Distributed Computing – A course review
Distributed Computing was offered in the OMSCS program for the first time this past semester (i.e. Spring 2021) and when the course opened up for registration, a storm of newly admitted and seasoned students signed themselves up — me included. I was fully aware that I was walking into unknown territory, a bleeding edge course,…
-
Front-yard overseeding journey
Our front yard needs work. About 3 weeks ago, I made my first attempt at overseeding and although a couple seeds germinated, the lawn was left with lots of bare spots. So I’m taking a second stab. This time around though, I’m not just going to simply chuck seeds on top of the grass. Instead,…
-
Distributed Computing – Goodbye and thanks for the wonderful semester
I just finished Spring 2021 at Georgia Tech OMSCS and published a farewell note on the classroom’s forum (i.e. Piazza platform) and would like to share that here: This was one hell of a semester! Hats off to professor Ada and our great TAs — I learned a great deal about both theoretical and practical…
-
My first lawn seeds germinating!
After watching dozens of YouTube videos on lawn care, I decided about two weeks ago to overseed the front lawn and water the grass twice a day (I really used to think that the earth would just magically nourish our yard). And up until this morning, I wasn’t entirely sure if all my effort was…
-
iperf3 3 and TCP maximum segment size (MSS)
The above diagram I diagrammed illustrates the impact to a network packet when setting the maximum segment size in iperf3. With an MSS of 1436, the segment (i.e. TCP payload) ends up 1424, due to the overhead of the 12 byte TCP options.
-
Got the COVID-19 Pfizer vaccination
What did we do? Jess and I received our first dose of the Pfizer vaccination, our second dose scheduled for 3 weeks from now. We were able to get the vaccination since Jess had heard, through a mom’s group she’s part of, that breastfeeding mothers (along with their partners) were eligible through a Kaiser clinic.…
-
PAXOS made moderately complex – slots
In the paper “PAXOS made moderately complex”, the authors introduce unfamiliar concepts not mentioned in the original PAXOS paper, concepts such as slots, slot in, slot out, and WINDOW. I found these concepts difficult to understand despite reading both the accompanying pseudo code as well as their Python implementation. This post aims to shed light…
-
PAXOS – I’m coming for you!
I’m now half way through Distributed Computing course at Georgia Tech and us students are now tackling the penultimate project: building a replicated state machine using PAXOS. This project will be challenging (probably going to require 40+ hours) and it’ll put my theoretical knowledge to the test and reflect back, in a couple weeks, how…
-
Understanding linearizability
I’m preparing for my Distributing Systems midterm and I was struggling to understand the differences between serializability and linearizability (why are these two words so difficult to spell right). Apparently, these two concepts are very different. To gain some clarity, I searched online and found this awesome YouTube video posted by Martin Kleppmann ; in…
-
Speaking up for others
Ever since I was little boy, if any of my friends were bullied or picked on, and I noticed they couldn’t defend themselves, I would speak up on their behalf. Speaking up for others has always come naturally for me and it’s habit that I still flex even as an adult. However, these days, I’m…
-
Distributed system snapshots: consistent vs inconsistent cuts
In “Consistent Global States of Distributed Systems: Fundamental Concepts and Mechanisms”, the authors propose capturing a distributed system’s computation using a time series graph. Each row in the graph represents a process (e.g. P1, P2, P3), and each tick (e.g. e1, e2) within that row represent a an event: a local event, a send message…
-
COVID-19 stunting Elliott’s social skills
Like almost every other parent, my wife and I are doing our best to shelter our 16-month year old daughter, Elliott, in the midst of the COVID-19 pandemic, us parents trying to fabricate a bubble with some sense of normalcy. Up until recently, I tricked myself into believing that we could mask (or minimize) the…
-
PAXOS (not) made simple
Leslie Lamport, a world renounced computer scientist, first published the paper “Part-time parliament” back in 1990. Unfortunately, that paper well not well received, primarily due to the fact that the consensus protocol was described in the context of obscure ancient Paxos civilization. The paper was not was received among computer scientists and Leslie Lamport followed…
-
The FLP theorem: impossibility of achieving consensus within distributed systems
For this week, my distributed systems course just assigned us students a reading assignment: “Impossibility of distributed consensus with one faulty process“. Apparently, this paper is a seminal piece of work that goes on to describe and prove that, given a single process failure within a distributed system, the underlying system cannot achieve consensus (i.e.…
-
YouTube Review: “My Guitar Teacher TOMO FUJITA Gives Words of Wisdom”
I recently watched a YouTube video titled “My Guitar Teacher TOMO FUJITA Gives Words of Wisdom”. In this video (below), YouTuber Mary Spender interviews Tomo Fujita, a guitar instructor who taught at Berkelee school of music for over 20 years; he takes his years of accumulated knowledge and shares some words of wisdom. From this…
-
Week in Review: 2021/01/17 – 2021/01/24
Not too much to report this week. Not because nothing happened, but because I wasn’t at diligent in capturing this week’s activities; I was on-call this week and carrying the pager almost always disrupts my flow, this week being no exception. My pager alarmed me out of bed several times (e.g. 12:30 AM, 2:30 AM,…
-
Why is Lamport’s Scalar Clock only consistent, not strongly consistent?
For the last couple days, I’ve been watching the distributed systems video lectures and reading the recommended papers that cover logical clocks. Even after making multiple passes on the material, the concepts just haven’t clicked: I cannot wrap my mind around why Lamport’s clocks satisfy only consistency — not strong consistency. But now I think…
-
8 fallacies of distributed computing
Rotem-Gal-Oz, A. (2005). Fallacies of Distributed Computing Explained. Cognitive biases (built-in patterns of thinking) and fallacies (errors in thoughts) creep into our every day lives, sometimes with us not even knowing it. For example, ever wonder why you work just a little harder, a little quicker, when you think someone is standing over your shoulder,…
-
What are good models and what models are good?
Schneider, F. B. (1993). What good are models and what models are good. Distributed Systems, 2, 17–26. Paper Summary In his seminal paper on models (as they apply to distributed systems), Schnedier describes the two conventional ways — experimental observation; modeling and analysis — we normally develop an intuition when studying a new domain. And…
-
Distributed Computing – Lesson 1 Summary
Summary Distributed systems are everywhere: social media, internet of things, single server systems — all part of larger, distributed systems. But how do you define a distributed system? A distributed system is, according to Leslie Lamport (father of distributed computing), a system in which failure of some component (or node) impacts the larger system, rendering…