Author: Yaniv Aknin

  • Eulogy to a server

    You don’t know it, but I’ve started writing this blog several times before it actually went live, and every time I scraped whatever post I started with (the initial run was on blogger.com). I just didn’t think these posts were all too interesting, they were about my monstrous home server, donny. Maybe this is still…

  • Python’s Innards: Hello, ceval.c!

    The “Python’s Innards” series owes its existence, at least in part, to hearing one of the Python-Fu masters in my previous workplace say something about a switch statement so large that it was needed to break it up just so some compilers won’t choke on it. I remember thinking then: “Choke the compiler with a…

  • The Curious Case of HID Malfunction

    A quick tidbit for any interested hardware wizards out there (I know no one is likely to care, this is really more of an excuse for why the next Python’s Innards post is progressing slowly). As some of you know, I’m currently on a long trip with my wife (a trip which is already nearing…

  • Hacker irked by reincarnation

    Today I chose a rather peculiar topic for a technology blog: the history of reincarnation research and its implications on science. This might seem a bit awkward or even off-topic, I think it’s neither (and I make up the rules here). Before we begin, I gather I should say that I’m a sceptic, I’ve always…

  • Python’s Innards: Interpreter Stacks

    Those of you who have been paying attention know that this series is spiraling towards what can be considered the core of Python’s Virtual Machine, the “actually do work function” ./Python/ceval.c: PyEval_EvalFrameEx. The (hopefully) last hurdle on our way there is to understand the three significant stack data structures used for CPython’s code evaluation: the…

  • Python’s Innards: for my wife

    The other day the best wife I’ll ever have had trouble sleeping and asked me to tell her something to put her to sleep. Since she’s not quite a hacker, I figured some discussion of what I usually write about may do the trick (okay, maybe ‘not quite a hacker’ is an understatement, she’s an…

  • Python’s Innards: Code Objects

    This article, part of a series of articles about Python’s internals, will continue our preparation to engage the machinery of code evaluation by discussing Code Objects. To those of you who just now joined in and didn’t even read the introduction (but why?!), please note an important disclaimer: while the series as a whole is…

  • Gosh, it’s hot here

    This blog is intended for technical matters, not to tell you about my (ineffably fascinating) life. However, I reckon at times I owe my readers at least a small update to explain some absence. So there: I’m travelling India at the moment, and will keep doing so until early October. Between the horrible heat and…

  • Python’s Innards: Naming

    Today’s article in our series of articles about Python internals’ will discuss naming, which is the ability to bind names to an object, like we can see in the statement a = 1 (in other words, this article is roughly about what many languages call variables). Naturally, naming is central to Python's behaviour and understanding…

  • Correction for ‘Python’s Innards: pystate’

    Graham Dumpleton (of mod_wsgi fame) pointed out a glaring omission and subtle inaccuracy in my post about Python’s state structures. When discussing what I called “Pythonic threads”, which are threads created and managed by Python, which have a PyThreadState structure allocated to them and that are able to call into the Python API and run…