-
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.…
-
Dependency Injection
Spring has made dependency injection a fancy thing. It has too much complexity in the procedure of creating beans. But dependency injection itself is just a simple idea; dependency injection is injecting dependencies! Nothing more. It means if piece of code A is depended on code B then code B should be passed into A,…
-
What I learned from reading old blogs
I like reading blogs’ older posts. Especially when I discover a blog and I find their view on a subject that I was interested in back when the author wrote the post. For example I like reading posts about downfall of Netscape or Adobe Flash. I will write a complete post about that. It’s been…
-
Algorithmist is back!
Hello world! A few years ago, I had a blog called Algorithmist, which means someone who knows algorithms. I wrote there every once and a while about the interesting computer science-related problems which I got to know from the courses I had in my undergraduate studies. Eventually, I ran out of simple problems to write…