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 […]
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 […]
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 […]
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 […]
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: […]
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 […]
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 […]
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, […]
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 […]
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 […]