Events and callbacks in the Python language

So last week I got an email from my friend Michael Kennedy. Michael runs the TalkPython Training website, arguably the best place where you can learn Python today. He also hosts two popular Python podcasts: TalkPython and PythonBytes, the latter co-hosted with Brian Okken. He is super active in the Python space, so much that he received the Python Software Foundation Fellow Membership back in 2018. I first met Michael back in 2014, I think, at MongoDB Headquarters in New York, where we were both invited as part of the MongoDB Masters program. We shared a C#/.NET background, which was something of note in that context, and I remember Michael being curious about me embracing Python and my first open-source release in that space. Fun times. ...

August 17, 2020

Musings on an unexpected motorcycle trip

I went on a motorcycle trip. A fellow TOMCC1 member was planning a solo trip to Campo Imperatore (“Emperor’s Fields”), the well known alpine meadow in the Apennine ridge. He called me as he was looking for some advice, and well, I ended up joining him. What sparked my interest was the destination, of course, because Campo Imperatore is a superb place to visit, especially on a motorcycle, but also Antonio’s peculiar take on the journey. By self-admission, he is old-school. His motorcycle forays, no matter how long they are, all have something in common: as little technology as possible. He also goes out of his league to avoid highways and, god forbid, toll-roads. He is keen on secondary roads and, most importantly, he does not plan any route. Antonio will write down a few waypoints on paper, just the names of maybe two or three places worth visiting, and that’s it. If the trip is going to be very long, he might take a (paper) road atlas with him. The little details, like filling the gaps between waypoints, or how one would go to reach the waypoints themselves, well, they are all left out for the adventure. ...

July 23, 2020

A trip down memory lane: FidoNet and Usenet

Creatures of Thought is a project I discovered just recently. It is about the history of science and technology, and it revolves around two primary tracks: The Switch and The Backbone. The former covers the digital switch; the latter is the story of how the world got online. Both sections are well written, researched, and curated. The latest installment of The Backbone covers Usenet’s invention, then FidoNet, and well, it sent me on a mesmerizing trip down memory lane. ...

July 9, 2020

How to Present Over Video Conference

As a non-native English speaker, presenting at conferences has always been super challenging and intimidating. It’s even worse now that we’re forced into online presenting because of the COVID19 situation. James Whittaker has a good post on the topic, with great advice: Remember, the inability to see and hear your audience is disconcerting but it doesn’t mean you should give up. There are much bigger audiences in the wide world that you will not have local access to. Getting good at video presentations means expanding your audience and increasing your influence. ...

June 23, 2020

FatturaElettronica for .NET v3.0 released

FatturaElettronica for .NET 3.0 is now available on NuGet. It brings full support for the latest technical specifications (v1.6.1) issued by the Italian Public Administration. These come with a number of relevant changes, which were originally supposed to be effective starting May 4, 2020. We were ready well in advance (v3.beta-1 package was available on March 20) but then, because of the COVID19 situation (and, I suspect, pressure from relevant “not-ready-to-deliver” software companies) the deadline was pushed forward to October 1, 2020. ...

June 6, 2020

Rumors of Windows Forms death have been greatly exaggerated

Apparently, .NET 5 brings support for Windows TaskDialog to Windows Forms, and that is relevant for several reasons. Before I dig in, let me start by addressing your inevitable question right away. In essence, yes, Windows Forms is old technology. It has been around since like 20 years ago, and yes, newer Windows UI frameworks have (or try to have) traction today, but no, that is not a good reason for Microsoft to let WinForms rest in peace. See the thing is right now, as I am writing this piece, there are millions of desktop applications running on Windows machines all around the world and rest assured, an essential portion of them is running on, you guessed it, your good old Windows Forms. ...

April 19, 2020

Eve 1.0 has been released

Seven years since the first commit, I am glad to announce that Eve v1.0 has been released. Check it out on PyPI. If you are using Eve, Cerberus, FatturaElettronica for .NET or any other one of my open source projects in a revenue-generating product, it would make business sense to sponsor my open source development. Learn how to do that at my GitHub Sponsors page. Happy holidays to all of you and have a wonderful start in the new year. ...

December 21, 2019

FatturaElettronica for .NET v2.0

Today I pushed version 2.0 of FatturaElettronica to NuGet. This release comes with full support for Fattura Semplificata, something that has been on the back-burner for a while. Special thanks to Gaetano Pizzol for single-handly contributing this feature. Now for the bad news. Since we were to add a new invoice type whereas so far we only had one, I decided to take the plunge and break backward compatibility a little bit. The relevant changes are as follows: ...

March 13, 2019

Building a RESTful WebApi with F# and NetCore

It is a common misconception that F# is just for data science, machine learning, and quantitative finance; in the .NET eco-system you turn to C# for enterprise and web development and, eventually, you’ll look at F# for serious number crunching. While it is undoubtedly true that functional languages are ideally suited for solving numerical problems, some of them - and F# in particular - are perfectly fine for tackling so many different domains other than scientific ones. F# is a cross-platform, functional-first, general purpose language. Stress on functional-first and general purpose. Line-of-business applications are almost always perfect candidates for F# development. On this topic, I recommend you take a look at Scott Wlaschin’s “Why F# is the best enterprise language” ...

February 24, 2019

NuGet Gems: DeepEqual

This handy little package does one simple thing, and it does it well. According to its description, DeepEqual is: An extensible deep comparison library for .NET. I am sure you too have come across this a few times. You have some code that shuffles around objects, and at some point, you’d like to make sure that two instances of the same class are, indeed, equal. And no, you don’t mean “equal” as in reference equality. That’s easy to achieve with .NET. Most of the time, what you want is to check for value equality. ...

January 26, 2019