Modular Design Good software is almost always decomposed into modules that are relatively independent of each other. Independent modules makes congitive load easier on the developer working on the software. In an ideal scenario this independence is hard to achive. A good guiding principle to create best modules is to write deep modules. Deep Modules Shallow Modules
The IP address for localhost is traditionally 127.0.0.1, so you’d expect http://localhost:9999 and http://127.0.0.1:9999 to be the same origin. BUT. The origin comparison only compares the string values of the scheme, host, and port, and knows nothing about what host an IP address maps to. In my example, “localhost” and “127.0.0.1” are different strings, and therefore the request isn’t a same-origin request.
A browser render at 60fps. We often call it framerate . A second is 1000 millisecond. That's ~16.66ms spent to render each frame. If this rate is maintained by the browser everything on a website will seem silky smooth. When this framerate drops, users experience jank. A jank is when there is any stuttering or choppiness in motion on screen - for e.g., scrolling, transitions, animations. This negatively affects user experience (UX). Jank is the result of the browser not being able to budget its compute within the 16 ms for each frame. To understand how tight that time window here is a fun fact. The duration of a blink is on average is 100–150 milliseconds according to this UCL research . That is way less time than a blink of an eye. What's going on behind each frame render? In this post, I attempt at an oversimplified articulation of 6 stage before a frame is rendered. I try to walk through the entire length of that 'rendering' process without getting into too many de...