The Legacy of Bram Moolenaar

Quoting Jan van den Berg: This weekend we learned that Bram Moolenaar had passed away at the age of 62. And this news affected me more than I expected. Like so many: I did not know Bram personally. But I’ve been using a tool made by Bram for more than half my life — at least weekly, sometimes daily. That tool is a text editor. The best one there is: Vim. »

Cerberus v1.3.5 released

Thanks to funkyfuture’s tireless work, yesterday we released version 1.3.5 of Cerberus, the data validation package for Python. This release officially supports Python 3.10 and 3.11, fixes a few issues, and proudly displays a new documentation theme which I dig, and I hope you’ll do the same. As usual, see the changelog for details. Subscribe to the newsletter, the RSS feed, or follow me on Mastodon »

FatturaElettronica for .NET v3.4.10

Fattura Elettronica for .NET v3.4.10 was released on NuGet today. The Fattura Elettronica project allows for the validation and de/serialization of electronic invoices following the Italian Revenue Agency standards. This release adds a missing validation point. See the changelog for details (Italian). Subscribe to the newsletter, the RSS feed, or follow me on Mastodon »

Events 0.5 released

Today I released Events 0.5. Thanks to Cailean Parker’s contribution, we added support for the __getitem__ dunder (aka Python magic method.) This allows the calling of events from strings, thus enabling dynamic events. For instance: events = Events(tuple(f"on_{i}" for i in range(5))) for i in range(5): events[f"on_{i}"](i) The C# language provides a handy way to declare, subscribe to and fire events. In C#, an event is a “slot” to which callback functions (event handlers) can be attached - a process referred to as subscribing to an event. »

FatturaElettronica for .NET v3.4.8

Fattura Elettronica for .NET v3.4.8 was released on NuGet today. The Fattura Elettronica project allows for the validation and de/serialization of electronic invoices following the Italian Revenue Agency standards. As with the previous one, this release also addresses a small undocumented behavior in validating the invoice. See the relevant ticket for the details. Subscribe to the newsletter, the RSS feed, or follow me on Mastodon »

FatturaElettronica for .NET v3.4.7

Fattura Elettronica for .NET v3.4.7 was released on NuGet today. The Fattura Elettronica project allows for the validation and de/serialization of electronic invoices adhering to the canon defined by the Italian Revenue Agency. This release refines how the one-cent tolerance is accounted for in validation checks of types 00421 and 00423. As is often the case, there are subtle differences between the theoretical implementation defined in the official specs and the actual validation implemented by the same Agency that released said specs. »

Eve 2.1.0 has just been released

Today I released Eve v2.1, which comes with official Flask 2.2+ support and the ability to modify the pagination limit on a per-resource basis thanks to the new pagination_limit setting. You can find the release on PyPI, while the changelog is available here—special thanks to Pieter De Clercq and smeng9 for the help with this release. Subscribe to the newsletter, the RSS feed, or follow me on Mastodon »

Eve 2.0.4 released

I just released Eve 2.0.4, the REST API framework for #python. It’s available on PyPI and includes a relevant security fix so you might want to update ASAP. Package info Docs Subscribe to the newsletter, the RSS feed, or follow @nicolaiarocci on Twitter »

Eve 2.0.2 released

Eve 2.0.2 was just released today. It fixes a problem introduced with v2.0 in which ETag generation failed if uuidRepresentation was not set in MONGO_OPTIONS. See issue #1486 for details. Many thanks @tgm for reporting and then contributing the fix. Subscribe to the newsletter, the RSS feed, or follow @nicolaiarocci on Twitter »

FatturaElettronica v3.4 released

Today I released v3.4 of FatturaElettronica, a .NET open source project that allows validation and de/serialization of electronic invoices adhering to the standard defined by the Italian “Agenzia delle Entrate”. It’s doing very well for such a niche project, with downloads now well beyond the one hundred thousand mark. Be aware that this release anticipates support for v1.7.1 of the specification going into effect on October 1, 2022. For more information, see the appropriate ticket and the changelog. »

The Docker Event Monitor

I added a new tool to my amateurish DevOps toolbox. Developed in the open by Tom Williams, the Docker Event Monitor is a “tiny container that monitors the local Docker event system in real-time and sends notifications to various integrations for event types that match the configuration. For example, you can trigger an alert when a container is stopped, killed, runs out of memory or health status change.” At its core sits a simple python script that monitors the docker. »

Eve 2.0.1 released

Today I released Eve 2.0.1, which contains an essential fix if you’re using MONGO_URI to connect to your MongoDB instance. See the relevant ticket for details. I’ve also pinned Flask dependency to v2.1, as v2.2 brings some breaking changes that, you guessed it, break our CI runs. If you think you can help wiht that, please do so. The complete changelog is available here. Subscribe to the newsletter, the RSS feed, or follow @nicolaiarocci on Twitter »

How I stopped Spotify from draining both my RAM and CPU

A few days ago, I was browsing my Twitter feed when a suggestion from my friend @flaper87 caught my attention: On my “comfortably old” MacBook Pro1, Spotify has been an absolute hog. The simple act of opening it will require three hundred MBs. That’s a remarkable amount of memory for staying idle and doing nothing useful. Let it play for a few hours, and have fun glancing at CPU and RAM usage ramping up like there’s no tomorrow. »

"A project you maintain has been designated as critical"

Last week, I got a mail from PyPI, the Python package index. They informed me that one of my open source projects had been designated as ‘critical,’ and I was therefore required to enable two-factor authentication. If I didn’t oblige, I would soon lose the ability to add new releases or modify the project. The project in question was Cerberus. The ‘critical’ designation happens when a project has been in the top 1% of downloads over the prior six months. »

Eve 2.0 released

It’s been a long time coming, but I’m glad to announce that Eve 2 has finally been released today. This release drops support for Python 2, Python 3.5 and Python 3.6 hence the major version bump. Other than that, expect some fixes, a new uuidRepresentation setting for MONGO_OPTIONS, and an alignment to the latest Werkzeug/PyMongo idiosyncrasies. The full changelog is available on the project website. The Eve project has been out for ten years. »

Work in progress on Eve 2.0

I’ve been back at the forge working on Eve 2.0. Version 2 will support Python 3.7+ and drop Python 2.7, 3.5 and 3.6. It will bring support for PyMongo 4+ as well, along with several other minor fixes and improvements (changelog). It would be nice if you guys and gals, users of Eve, would give it a spin before the release. I know. I recently stated that Eve was in maintenance mode. »

Is Eve still maintained?

Tonight someone opened a ticket on the Eve repository. I jotted down a quick reply and was about to hit the Comment button when I thought a more articulated reply was in order. I also want it published on my website. So the question is: Is Eve still maintained? My reply goes like this: Hello, yes, Eve is in ‘maintenance mode’, as I call it. I don’t actively develop new features anymore. »

Drama going on at the .NET Foundation

A few months after I released my first .NET open source project (a niche one targeting the Italian fintech world), I was contacted by a representative of Team Digitale, the digital innovation branch of the Italian Public Administration. He suggested joining the Developers Italia initiative and moving my project to the their organization on GitHub “to enjoy enhanced visibility and broaden the audience”. I politely refused. I did not doubt my counterpart’s good faith. »

My DotNetPodcast interview

Today I was interviewed by Mauro Servienti on the DotNetPodcast. The theme was my experience as an open-source maintainer on both the Python and C# stacks. We also discussed the ongoing evolution of the dotNET ecosystem, touching on a few tangent topics. The recording is in Italian and is available below here. Listen to “Python, Eve, open source e fattura elettronica. Con Nicola Iarocci” on Spreaker. Subscribe to the newsletter, the RSS feed, or follow @nicolaiarocci on Twitter »

Open Source: What Happens When the Free Lunch Ends?

The article I’m linking today is authored by Aaron Stannard and focuses on the drama currently going on in the .NET Open Source ecosystem. We’ve all been there. A dependency we took aeons ago goes unmaintained or changes its licensing model. Why does this happen? Because at some point, projects need to become sustainable or else they fail. […] it’s inexpensive for maintainers to support a small number of users with relatively similar demands - but once a project achieves critical mass and the demand on the maintainers exceeds their desire to supply, something will have to give. »