Day 57 — cutypr: an even littler Jupyter console

Today I read the first chapter of the zeromq guide and looked at the client-server and pub-sub examples! I love this paragraph from the preface (sounds so similar to Derek Sivers's CD Baby email!):

We took a normal TCP socket, injected it with a mix of radioactive isotopes stolen from a secret Soviet atomic research project, bombarded it with 1950-era cosmic rays, and put it into the hands of a drug-addled comic book author with a badly-disguised fetish for bulging muscles clad in spandex. Yes, ZeroMQ sockets are the world-saving superheroes of the networking world.

Sometime next week, I want to look closely into how Linux sockets work!

Today I also stripped down yesterday's little Jupyter console into an even littler Jupyter console, by looking at the jupyter_client code, and reusing some of that to make a stripped (a lot!) down version of the client.

At a high level, the code:

This is the only example using which I'm testing if everything works for now:

  In [1]: import os
  In [2]: print(os.getcwd())

  In [3]:

Now I need to translate the Cutypr class to Rust, and also figure out a way to start the Python kernel from Rust!

To get some Rust writing practice, I'm also thinking about creating a curlyboi version of Julia Evans's game. As a first step, I converted the usage of ncurses code to the ncursesw code so that I can get those ▛s in later.

I also made some changes to the pdftopng and GitHub Actions workflow to start building 32-bit Windows wheels! I've pushed the Python 3.8 Windows wheels (both 32 and 64-bit) to PyPI so if you use Windows, please help me test if pdftopng works there by installing pdftopng and running the example in the README :)