Return Zero

What’s worse than an N+1: Accidental Cartesian Products

Object-Relational Mapping (ORM) tools are widely used in modern web development for their convenience in database interactions. However, they can sometimes lead to unexpected and severe performance issues. One such issue is the generation of queries that result in cartesian products, potentially returning an enormous number of rows. Understanding the Cartesian Product Problem A cartesian […]

My journey of breaking the cycle of poverty

Growing up, my family knew nothing but struggle. Poverty wasn’t just a state of being; it was an endless darkness that loomed over every day of my childhood. My parents worked tirelessly, doing everything they could to keep us afloat, but there was never enough. Every day was a delicate balance, every meal a quiet […]

LISPy-JSON 7: Support recursion in an interpreter

This post is a continuation of LISPy-JSON Part 1, Part 2, Part-3, Part-4, Part-5 and Part-6, you should read these prior to reading the current post. We already have the capability of defining and calling functions, but we do not have the ability to resolve functions and variables defined in the parent or grand parent scope. We will limit ourselves […]

LISPy-JSON 6: Implement functions in an interpreter

This post is a continuation of LISPy-JSON Part 1, Part 2, Part-3, Part-4 and Part-5 you should read these prior to reading the current post. To implement functions, the first thing we would need is to design a syntax for our function declaration. Functions usually have three things, a function name, a list of arguments and the function body. The […]

LISPy-JSON 5: Implement If-Else in an interpreter

This post is a continuation of LISPy-JSON Part 1, Part 2, Part-3 and Part-4 you should read these prior to reading the current post. If-else is nothing but an extension of functions that implement binary operators. With a binary operator you evaluate the two expressions and operate on the result. With the If-Else statement, you have three expressions: […]

LISPy-JSON 4: Comparison and Boolean operators in an Interpreter

Note: This post is a continuation of LISPy-JSON Part 1, Part 2 and Part-3, you should read these prior to reading the current post. Comparison and Boolean Operators are very simple to implement in our Interpreter’s model, If you remember how we implemented binary operators like +, – and so on, These would follow a […]

LISPy-JSON 3: Variables and State in Interpreters

This post is a continuation of LISPy-JSON Part 1 and Part 2. Most programming language support some way of referring to data in memory, we call them variables. Javascript syntax looks like the following: But instead of the ‘let’ keyword, we will use the ‘def’ (define) keyword, This is just so that it looks a […]

LISPy-JSON 2: Expressing Expressions in Interpreters

If you haven’t read the first part, please do so before reading this. In the previous post, we created an interpreter that implemented a print function but it could only print static text or numbers but could not print a calculation like, print 3+5 From now on, we will call all calculations like 3+5, 2+3, […]

LISPy-JSON: My second attempt at explaining Interpreters

I wrote a previous post trying to explain a virtual machine interpreter, but I feel I did not explain it in a simple enough manner and the primary reason for that was due to my limited understanding of these topics at the time, thus it ended up being a bit more convoluted than I intended […]

You already know Gate Theory

Let me start by admitting that this is a click bait title, you might not know what this theory is but you already know how to take advantage of the Gate control theory. Have you ever had an itchy throat and yearned for a bowl of hot soup and do you remember how that soup […]

Back to top