-
How Kubernetes works? (II)
In the previous part we talked about K8s architecture. In this post we talk about running a cluster and deploying an app to it. We are going to get started with K3s which is a lightweight version of K8s. It only contains the main components of Kubernetes. Since I don’t have a network of VMs…
-
Mastering the Art of Reading Go code
* I could not come up with any good name for this post, so here it is. It is a case study for reading go code. I have worked with Java/Python for more than 9 years now. Most of my production code was in Java. When I want to write a code to parse some…
-
How Kubernetes works? (I)
When you Google “why kubernetes is freaking hard to learn” you’ll discover thousands of results. It appears that learning how to work with Kubernetes is not easy, especially for people who don’t have backgrounds in software engineering or DevOps. It could be a nightmare for those who haven’t had experience deploying applications to VMs or…
-
Aperiodic Tilings
I enjoy math problems that are easy to understand but challenging to solve. These problems are often related to various topics and are deep enough for people with diverse backgrounds to engage with and make progress. When I was a child, I grew up in Isfahan, a city with numerous tiled monuments. I used to…
-
SSL/TLS Certificates
I never really cared about how SSL/TLS works. I never knew what a certificate is and what CAs actually do. Why? Because it all happens on top of the transport layer, and developers only need to concern themselves with what occurs in the application layer. I’m familiar with RSA, Diffie-Hellman, and some hashing algorithms. Most…
-
About Time
This article is about how we keep time in our computers. First, let’s talk about the physical clocks in the world. There is no completely accurate physical clock; one clock runs slightly faster, and another clock runs slightly slower. This error can become quite significant over time. Even a clock with a 1 ppm skew…
-
Read the code
“The problem is, if you’re not a hacker, you can’t tell who the good hackers are.” Paul Graham To understand Docker, go read about cgroups.To comprehend Bitcoin, go delve into its white paper.To learn MapReduce, go study the original authors’ work….To know what a code does, go read its source code.You’re not going to get…
-
Resist the urge for writing unit tests, unless you have a good reason to do so.
TLDR: Don’t write unit tests for things that will cause your program not to compile if they go wrong. WARN: This is a highly opinionated article. There is a prevailing trend nowadays to create unit tests for every method. Advocates of unit tests assert that by having these tests, you can refactor code without fearing…
-
Concurrency in Go
I chose GoLang to implement the algorithm that I was working on in my masters. You can find my repo here. After this experience I wanted to write on Go’s concurrency as a newbie gopher. Concurrency was important to Go designers so they developed it built in. Instead of using threads to achieve concurrency like…
-
Why Reads and Writes are not enough? (I)
For the past two years, I have been focused on Distributed Computing, and I feel pretty comfortable explaining ideas on this topic (at least, I think). So I start with a simple problem for complete strangers to the topic. For years, Intel, AMD, Apple and … market their products with the number of CPU cores.…