Revisiting the timeless Von Neumann Architecture
Race conditions are hard, debugging them without right approach is even harder.
Carl Sagan famously said, "If you wish to make an apple pie from scratch, you must first invent the universe". Like an apple pie, many things that seem simple at first are extremely complex; it's just that we choose to ignore the complexity for practical purposes. In this post, I'll try to go as low as I can in abstractions of Frappe Scheduler, but I don't promise a recipe for inventing the universe.Carl Sagan famously said, "If you wish to make an apple pie from scratch, you must first invent the universe". Like an apple pie, many things that seem simple at first are extremely complex; it's just that we choose to ignore the complexity for practical purposes. In this post, I'll try to go as low as I can in abstractions of Frappe Scheduler, but I don't promise a recipe for inventing the universe. Frappe's scheduler is one of the features that truly make it...Frappe's scheduler is one of the features that truly make it...
Reducing memory usage by removing module importsReducing memory usage by removing module imports Frappe broadly runs three types of Python processes in production:Frappe broadly runs three types of Python processes in production: Web worker (Gunicorn)Web worker (Gunicorn) Background worker (RQ worker)Background worker (RQ worker) Scheduler (Simple infinite loop to enqueue background jobs)Scheduler (Simple infinite loop to enqueue background jobs) Since Frappe is a batteries-included framework, it does a lot of things out of the box, but not all those things need to be loaded in the memory all the...Since Frappe is a batteries-included framework, it does a lot of things out of the box, but not all those things need to be loaded in the memory all the...
or why you should learn unix shell tools
This post is about my reflections on the last several years as Mechanical Engineer and then transitioning to Software Engineering. Over the years I've thought about what it takes to become good at any engineering field. I've narrowed down three things:This post is about my reflections on the last several years as Mechanical Engineer and then transitioning to Software Engineering. Over the years I've thought about what it takes to become good at any engineering field. I've narrowed down three things: BasicsBasics ToolingTooling CompositionComposition BasicsBasics You can not be a good Mechanical Engineer if you don't understand physics and likewise, you can't program well if you don't understand basic...You can not be a good Mechanical Engineer if you don't understand physics and likewise, you can't program well if you don't understand basic...
The plural of regex is regrets.The plural of regex is regrets. The problem with regex-based linting tools is fundamentally you are reimplementing language's grammar in hacky manner and you'll inevitably find out edge cases.The problem with regex-based linting tools is fundamentally you are reimplementing language's grammar in hacky manner and you'll inevitably find out edge cases. Take this simple python code as an example.Take this simple python code as an example. def add(a, b): return a + b def add(a, b): return a + b How would you match this code using regexes? Firstly regexes are a pain to work with multiple lines, secondly, python is not a regular language...How would you match this code using regexes? Firstly regexes are a pain to work with multiple lines, secondly, python is not a regular language...
My semi-finished VimWiki Frankenstein system
Story of my transition to Computer Science
Story of my transition to Computer Science