A first look at Muru
Muru running for the first time, in development mode. Serving a WSGI application, what the terminal tells you, what happens when it fails, and why a reload is a release.
Muru running for the first time, in development mode. Serving a WSGI application, what the terminal tells you, what happens when it fails, and why a reload is a release.
Twenty years on from starting mod_wsgi, I am revisiting Python web hosting without the constraints of Apache. This is where Muru comes from and where it is going.
Calling AI generated code slop often says less about the code than about our willingness to read it. Why it feels like onboarding every day, and how I cope.
A set of hands-on JupyterLab workshops for Tachyon, the sampling profiler in Python 3.15, and the story of why I wrote them to learn it myself.
Seventy free hands-on workshops, from writing decorators with just the standard library through wrapt to testing and tracing with wrapture. Nothing to install.
Writing a small guided workshop for JupyterLab from nothing with jupyterlab-workshop: the manifest, pages, actions, checks, linting, self-testing and author mode.
Follow my journey and get notified about new posts and projects.
You can also follow this site via RSS feed.
If you're a Python developer, you might also want to check out the RSS feed available from planetpython.org for posts from various Python developers, including myself.
Support my open source work and help me continue creating tools that benefit the developer community.
Sponsor on GitHub