marsninja

    • About
  • A Clean Approach to Generating Test Cases Dynamically Using Python’s Introspection

    June 12, 2023

    Hello everyone, in this blog post, I’ll share a recent exploration I undertook using Python’s introspection features. For those who aren’t familiar, introspection refers to Python’s ability to inspect and know about its own state and objects at runtime. It includes abilities such as determining the type of an object, fetching its attributes, and so…

    read more..

    marsninja

    marsninja

    Code Hacking
  • Parsing Python F-Strings: A complete example

    June 7, 2023

    If you’re like me, and you like to cause yourself pain, you may be writing a programming language and want to support python-like fstrings. Well, f-strings are quite a funny little thing to parse, because a typical lexer doesn’t have the theoretical power (as they only support regular languages) to parse pythons handy dandy fstrings…

    read more..

    marsninja

    marsninja

    Code Hacking
  • Jac Programming Language Specification, part 1

    June 7, 2023

    While on the journey of creating and and documenting the Jac programming language, I figure I should create a blog series on its specification. This is the first installment of that series, we start with the big picture then will zoom down to details. Each installment will come with fully complete valid programs (though trivial)…

    read more..

    marsninja

    marsninja

    Jac Spec Series, Jaseci
  • A Breakthrough Insight: Mapping the ‘Data Spatial’ Programming (DSP) Model to Object-Oriented (OOP) and Procedural Models

    June 3, 2023

    Eureka! A monumental breakthrough has just occurred this morning in my understanding and approach to designing the Data Spatial Programming (DSP) model. One of my most significant intellectual hurdles has been to visualize how this DSP model maps computationally to Object-Oriented Programming (OOP) and procedural models. Let me explain this breakthrough, how the DSP model…

    read more..

    marsninja

    marsninja

    Jaseci
  • In monk mode working on Jaseci 2: A letter to friends…

    June 2, 2023

    To friends, I realize I’ve been somewhat elusive these days, treading into a self-imposed monk mode, completely immersed in my current endeavor. I am engrossed in the ambitious redesign, architecture, and implementation of the much-needed Jaseci 2. If my retreat into this bubble has led you to believe that I’ve drifted away from the whichever…

    read more..

    marsninja

    marsninja

    Jaseci
  • A Cute Little Test for Compiler Hackers: Ensuring Codebase Consistency

    June 2, 2023

    Building compilers, transpilers, and interpreters involves writing numerous production and transformation rules. As the complexity of the language increases, the rules’ number could potentially reach into the hundreds. Ensuring consistency between different parts of the language toolchain becomes a challenging task. However, there is a cute little trick that can help to maintain consistency while…

    read more..

    marsninja

    marsninja

    Code Hacking
  • Black is just not enough to keep the code tight…

    May 27, 2023

    In my pursuit of maintaining coding standards in Python, I used to believe that relying on “black” was sufficient. However, I soon realized the need for a more stringent approach. This led me to adopt a new code linting strategy, combining “black” with “flake8” and a ninja mix of plugins. In this article, I will…

    read more..

    marsninja

    marsninja

    Code Hacking
  • Kicking Off Jaseci 2: Evolving the Future of Data-Spatial Programming

    May 26, 2023

    Today marks an important milestone as we begin the planning stages for Jaseci 2. Over the past three years, Jaseci has enabled the creation of numerous sophisticated production products, showcasing its power and versatility. However, during this time, we discovered a design flaw that affects the interaction of inheritance with Jaseci’s walker abstraction. This revelation…

    read more..

    marsninja

    marsninja

    Code Hacking
  • Unleashing the Power of Intentionality: Conquering Overwhelm and Achieving Purposeful Execution

    May 24, 2023

    In our fast-paced world, it’s easy to feel overwhelmed by the never-ending demands on our time and attention. We often find ourselves reacting to external stimuli, allowing others to determine our priorities and leaving us feeling out of control. However, there is an alternative path to productivity and effectiveness: living through a vector of intentionality.…

    read more..

    marsninja

    marsninja

    Life Hacking

thoughts and hacks and stuff