RSSAmplifier

Blog

Home on nyadgar.com

Recent content in Home on nyadgar.com

nyadgar.comRSS feed ↗16 posts

Latest posts

Making a JSON Parser in Haskell


 
 
 
 Info 
 
 If you are here to explore the source code click here. 
 
 

 This article is different from my usual. I’m inviting you to join me in writing a JSON parser in Haskell. We’ll review the JSON RFC standards and create a Haskell data model for valid JSON. For parsing, I challenged myself to avoid consulting other implementations,…

The Problem With Feature Flags

What is a Feature-Flag ? 
 A feature-flag service is essentially a configuration server that allows your applications to read real-time configurations (i.e., feature-flags or togglers ). For instance, if you’ve deployed a new feature integrated across your stack, you’ll want to ensure that all microservices involved can be toggled to support it using a single flag. This approach…

Monads (finally)

If you have searched for monads and reached this article,
you probably have some degree of knowledge about monads.
You may have already put a fair amount of effort into learning monads.
In any way, whenever you’ve tried to learn monads, you have likely
encountered two main approaches: 
 
 The: Monads are simple, here’s a simple example of a monad . 
 Or the…

Happy Birthday Paradox

The Birthday paradox only seems like a paradox because it unexpectedly challenges our perception
of probability. It states that in a group of only 23 individuals, there
is more than a 50% chance that at least two are sharing a birthday. Although it may seem
counterintuitive, we have the math that proves and supports this statement. 
 
 
 
 In this article, we will…

Scaling gRPC With Kubernetes (Using Go)

The Tech 
 gRPC is a strong player in microservices-based systems.
Leveraging Protocol Buffers for well-defined API contracts,
fast serialization (about X5 faster than JSON ), smaller payloads, and the use
of streams (thanks to HTTP/2 ). It’s easy to see why this technology for
real-time microservice communication is a good choice. 
 HTTP/2 
 Unlike a typical REST…

Go Interfaces: Why, How and When

In programming, interfaces are a powerful concept that lets us express
our code more abstractly. Interfaces allow us to reason about the
higher-level logic of our processes without getting down to the small details.
Go has arguably one of the best interface implementations. With great features
like implicit implementations, assertion, and more. 
 Interfaces must be used…

The Beautiful Math of Bloom Filters

Probabilistic functions can model many algorithms and procedures. They can help us optimize
procedures to produce the best results. Experienced software engineers know that at some point, almost any
software will reach some level of non-determinism, where a solution is not absolute but approaches the best results
if using the optimal configuration. Mathematically, such a solution…

Vim is Better - Here's Why

For non-users, Vim is often perceived as an outdated and cryptic text editor.
Its steep learning curve allegedly makes it not worth the time investment,
especially when other text editors are much more straightforward .
A common claim among programmers is that Vim cannot compete with modern IDEs.
In this article, we’ll see if this claim hold truth.
We will also challenge…

What Would it Be Like to Do Functional Programming in Go?


 
 
 
 Warning 
 
 Disclaimer :
Go is not a pure functional programming language. This article does not try to teach you functional programming in Go since imposing functional programming concepts, may result in unnecessarily awkward code. Go has its style, and it’s proven to be highly successful. Therefore, there’s no point in forcing a foreign dialect on…

A Server Error Got Me a Free Meal

I was at the office, about to go out and grab lunch from a nearby restaurant. Like many companies, I work in one that uses a service to manage our budget for paid meals. Using a mobile app, I can generate a 5-digit code, which I give to the restaurant, and it automatically charges my account. Beautiful, simple, and effective. 
 I was standing in line, tapping my fancy code-generation button,…

Profiling in Go: A Practical Guide

Profiling is an underrated skill among software-engineers and it’s often overlooked by even very skilled developers. Profiling a program, is essentially measuring CPU and memory usage to spot bottlenecks, memory leaks, and other performance issues. Knowing how profile a program and interpret the result can direct us to where exactly our program is suffering from poor performance, and focus…

Synchronization Patterns in Go


 
 
 
 Info 
 
 This article is a followup for a more basic guide.
If you would like to read the previous article, click here 
 
 

 The Go programming language is all about concurrency. Spawning multiple goroutines truly reveals the power of Go programs. As it lets us divide our program into concurrent processes. But you may have guessed, opening this…

Asynchronous Go for Beginners


 
 
 
 Info 
 
 If you would like to skip to a more advanced article, check out Synchronization Patterns in Go 
 
 

 When it comes to asynchronous programming, Go is one of the best languages in the market. The design of the language is so multi-thread oriented, that the go keyword in the language is used to start a new goroutine .

Best Network Technologies

Network communication in general is a very wide topic. It can probably fit in a large section of the New York Public Library (if not already). Fitting even a brief overview of this subject from bottom to top in a single article, might be a bit pretentious. So I won’t do it. Instead, I’ll be focusing mainly on software design patterns and technologies for communicating over a network.…

How to Cache

Caching is one of those things that almost every digital service uses in some way or another, it can improve user experience, and reduce costs by preventing redundant computation. When incorrectly applied, it can be the root cause of many nasty issues such as serving stale data, creating security breaches, and eating up the memory. In this article, we will see what cache exactly is, what types of…

Privacy Policy

Last updated June 09, 2023 
 This privacy notice for Noam Yadgar (“Company,” “we,” “us,” or “our”), describes how and why we might collect, store, use, and/or share (“process”) your information when you use our services (“Services”). 
 Questions or concerns? Reading this privacy notice will help you understand your…