Triumph Bonneville Dolomites Ride 2021

So the motorcycle-touring season has started, albeit a little late this year because of the COVID situation, and I’ve been avidly pursuing it. On Sunday, I embarked on a 700 km trip from my place to the Dolomites and back. It’s been a glorious day. We (Antonio and I) visited many renowned Mountain Passes, enjoyed stunning views, ate great food and chatted like there’s no tomorrow. I took my GoPro along with me. I wanted to record some scenes to inspire my motorcycle club1 comrades. However, I admit I was dubious that it would be worth the hassle. Filming while driving would be difficult; editing and assembling the cuts later would be tedious. Moreover, I have almost no experience with this stuff. ...

June 16, 2021

Linus Torvalds addresses an anti-vaxxer

Linus Torvalds’ reply to an anti-vaxxer on the Linux kernel list is a must-read. Pre-2018, Linus would have destroyed the poor chump. He’s discouraging further discussion (Kernel list is not the place for that) while providing crystal clear and detailed mRNA vaccine information, all without renouncing to an opening salvo of his good-ole, grumpy style. As John Gruber affirms, this is one rant we can all get behind.

June 14, 2021

Custom default values for not existing dictionary items (and a lesson learned)

When dealing with dictionaries, a typical problem is when an operation attempts to retrieve an element using a key that does not exist in the dictionary. In .NET, a KeyNotFoundException is raised, and that’s the desired behaviour in most circumstances. Sometimes, however, you know that your program will frequently try to retrieve keys that do not exist. In such cases, it is more efficient to use the TryGetValue method: This method returns the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter is returned (source) ...

June 11, 2021

Book Review: Alpi Ribelli: Storie di montagna, resistenza e utopia

The idea behind this book is fascinating. As the subtitle suggests, the book collects stories of rebel mountaineers of all kinds. Some chose to disobey orders; others built refuges of resistance, outposts of autonomy and laboratories of social innovation. The collection is rich and varied. We go from the heretics who went with Fra Dolcino to the partisans who stopped the Nazi fascists in the mountains of Cuneo and Belluno, up to the contemporary movements against the high-speed train in the Susa Valley. Some high-profile mountain climbers are present as well. Tita Piaz, the Dolomiti Devil; the Nuovo Mattino climbers who, inspired by the revolution going in Yosemite , let go of the classic “fight with the Alp” approach to mountain climbing; the very notable (and totally unknown to me) story of Guido Rossa, worker, trade unionist, and fantastic rock climber. The Italian Alpine Club internal struggle from which the Mountain Wilderness association originated. ...

June 5, 2021

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. ...

June 4, 2021

Trade Wars 2002 and its connection to Eve Online

Trade Wars 2002 was a great 1991 online game I hosted on one of my BBSes back in the day. Not sure if it was Lorien or Phoenix BBS; it might have been the latter given the game’s release date. I totally forgot TW2002 until yesterday when I spotted this 1991: Trade Wars 2002 article on the 50 Years of Text Games newsletter. I humbly confess that, until yesterday, I never made the obvious connection between TW2002 and Eve Online. That’s quite startling considering that I’ve been a beta player first and then an avid Eve player for a few years (Eve was also the last game I seriously played on a computer.) ...

May 29, 2021

So tired of Homebrew messing up with my stuff

Pardon me while I’m venting out my frustration. I am so tired of Homebrew messing up with my stuff. It used to be the perfect tool for the right job until they decided to auto-brew-update-and-cleanup at every new install. Another day another issue, today with vim not running anymore: dyld: Library not loaded: /usr/local/opt/lua/lib/liblua.5.3.dylib Referenced from: /user/local/bin/vi Reason: image not found Lua has suddenly gone missing. Ah, but of course. I installed something with Homebrew this morning. The fix is to brew reinstall vim, which then leads to the following error: ...

May 25, 2021

On Programming and Writing

My brilliant friend Salvatore Sanfilippo (otherwise known as antirez of Redis fame) has an interesting write-up on his website. How similar is programming to prose writing? After getting his own feet wet with novel writing, he is convinced that the two activities share many common traits. One year ago I paused my programming life and started writing a novel, with the illusion that my new activity was deeply different than the previous one. A river of words later, written but more often rewritten, I’m pretty sure of the contrary: programming big systems and writing novels have many common traits and similar processes. ...

May 25, 2021

Book Review: The Voice of the Sirens. The Greeks and the art of persuasion

According to a famous and fortunate Homeric expression, words are winged, not so much like birds but rather like arrows, which cut the air quickly to go straight to the target and break through the listener’s heart. The Greeks have always known that the word is used to convince and show truth and correctness. But they also know that it has a magical force in it: it can turn into a spell, capable of dominating and dragging the listener’s soul; to bewitch like music and to heal like medicine; but, above all, to deceive and mislead. ...

May 15, 2021

Flask 2.0

Flask 2.0 has just been released. Along with it come many other major satellite releases: Werkzeug 2.0, Jinja 3.0, Click 8.0, ItsDangerous 2.0, and MarkupSafe 2.0. Across all projects, Python 3.6+ is now required, and comprehensive type annotations are supported. At a glance, I’d say that the biggest news is async views in Flask 2. Work has also been done around Werkzeug Request and Response classes to allow for better sync and async in the future (it’s not a public API yet.) Jinja, Click and ItsDangerous come with a lot of new niceties. Details are available on the Pallets website. ...

May 14, 2021