-
A look into Go Scheduler’s Design
Go is a relatively recent language designed with concurrency first in mind (from introduction to Go byRob Pike). Its standard library is state of the art code written by coders who worked on Unix. My focus in my grad studies, from general to specific was Distributed Computing -> Concurrent Algorithms -> Shared Data Structures. I…
-
Java is HUGE!
The first time I learned Java was during the first semester of my undergraduate studies. My perception of Java at that time was that Java is essentially C with some object-oriented principles. It was challenging for me to grasp the concept of everything being an object. It felt strange; I thought they were aiming for…
-
About Writing
During my undergraduate studies in the mathematics department at Sharif University, there was a math professor who emphatically urged us to practice good writing. She advised that if we spent one hour solving a problem, it was reasonable to invest an additional two hours in crafting a well-structured proof. I recall her words: “If you…
-
About Creating State-of-the-Art Software
Android phones are receiving more RAM with each passing year, but guess what? It’s never enough! Android itself consumes it voraciously. The same holds true for Google Chrome. It seems that despite having better hardware, software quality is deteriorating each year. How did we go from the software that sent men to the moon with…
-
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…