Making the latest C# language features available in older .NET versions

In a C# library I’ve been working on, I wanted to use C# 9.0’s init keyword. Quoting the documentation: The init keyword defines an accessor method in a property or indexer. An init-only setter assigns a value to the property or the indexer element only during object construction. This enforces immutability so that once the object is initialized, it can’t be changed again. Consider the following class: public class Person { public string FirstName { get; init; } } You can initialize it like this: »

Flammarion engraving

I was reading iA’s grumpy writing about GPT (with which I sympathize) when my attention was captured by the image they added to their post. It was so fascinating that I had to research it. As it turns out, this is the Flammarion engraving, a famous wood engraving by an unknown artist, so named because its first documented appearance is in Camille Flammarion’s 1888 book L’atmosphère: météorologie populaire (“The Atmosphere: Popular Meteorology”). »

A quick preview of the Blazor United prototype for .NET8

Steve Sanderson, the original creator of Blazor, recently posted a quick peek at some of the new Blazor prototypes they are experimenting with for .NET 8. I think this looks great. Mixing client and server is a brilliant concept. Essentially one would be served with server-side Blazor on the first landing. While using the app, a background task would download the client-side stuff, ready to be consumed at any subsequent access. »

The days are long but years are short

Source Above all, I liked the affection and serenity that shines, through all stages, between father and son. A depiction of the circle of life I gladly subscribe to. Subscribe to the newsletter, the RSS feed, or follow me on Mastodon »

Author image Nicola Iarocci on #links,

Barnes & Noble's surprising turnaround

According to the always-interesting Ted Gioia, the recent turnaround of Barnes & Noble is to be attributed to the company’s new CEO and his love of books. Quite astonishingly James Daunt, who took the helm of B&N in late 2019, refused to take promotional money from publishers: Daunt refused to play this game. He wanted to put the best books in the window. He wanted to display the most exciting books by the front door. »

This is Water by David Foster Wallace

Slow Sunday morning, while surfing the YouTube ocean, I stumbled upon the audio recording of David Foster Wallace’s This is Water speech. Any DFW fan knows about the commencement speech he famously gave at Kenyon College in 2005, and I’m probably one of the few who hadn’t yet listened to it. So this morning, I hit the play button and was blown away by it. Unsurprisingly, I guess, as the speech was met with universal acclaim. »

Book Review: Uomini, boschi e api

I wish everyone could listen to the song of the partridges as the sun rises, see the deer on pastures in spring, the larch trees reddened by autumn on the edges of rocks, the darting of fish among the clear waters of streams, and the bees gathering nectar from the flowering cherry trees. In these stories, I write about village places. These natural environments are still livable, about the beautiful social insects that are bees, but also about ancient jobs that are slowly and inexorably disappearing. »

Why give up drinking in your early twenties

On New Years Day of 2022, I stumbled out of bed and immediately lost my vision, fell to the floor, and had to get my then-partner to help me back into bed. This wasn’t the first time this had happened, and I knew what it was straight away - I was having a migraine. In the previous decade I’d had countless migraines, and they always followed the same pattern. I’d wake up after a night out, attempt to get to the bathroom, lose my vision, and most likely end up on the floor vomiting from the pain that I can only describe as feeling like someone trying to hammer a nail into my skull. »

My favorite books of 2022

I only read 17 books in 2022, confirming the slowdown of the last few years. The total number of pages decreased too, albeit not too much compared to the previous year. In 2021, though, there was a significant drop, as in 2020, I read 28 books or 8073 pages. Stats have been going down since 2015, which is interesting. Like last year, I’m not sure why I’m reading less. More tired? »

Author image Nicola Iarocci on #books,

Book Review: Stoner

I tend to shy away from publishing cases, so Stoner has been resting on my yeah-maybe-one-day list for years. Over time I stumbled on notable mentions that kept the book on the fringe of my attention zone. Then one day, I read a brief and intriguing review in Giovanni Zagni’s excellent newsletter, Incertezze. Like me, Zagni suffers from the stay-away-from-editorial-cases idiosyncrasy, but he finally gave in, read the thing, reread it, and finally tagged it a modern classic. »

On implementing the ASP.NET Core 7 rate-limiting middleware

Today, my last self-assigned duty before the Christmas break was to migrate our in-house rate-limiting implementation (based on the AspNetCoreRateLimiting third-party package) to the new, shiny rate-limiting middleware introduced by ASP.NET Core 7. While the process was relatively straightforward, I stumbled upon a few quirks I want to annotate here. Our use case is simple. We use what the ASP.NET Core 7 documentation defines as a “fixed window limiter.” It uses a specified time window to limit requests. »

Latewood

And we must remind ourselves that growth occurs in intervals: there are times of growth, and there are times of non-growth. The latter isn’t a failure so much as a necessary period of rest. Dormancy isn’t stagnant; it’s potentiating. It’s patient. If you’ve grown a lot in the past however many months or years and now feel that growth coming to a close, don’t fret right away. Wait. Reflect on what you’ve learned. »

Author image Nicola Iarocci on #links,

Book Review: Candide

This short novel was a genuine surprise. I certainly didn’t expect Voltaire to be this accessible, witty, sarcastic, and also outrageous for the era (1759). Below the surface of a seemingly entertaining and often absurd sequence of improbable events is a constant philosophical struggle. Quoting from the back cover: Candide is the story of a gentle man who, though pummeled and slapped in every direction by fate, clings desperately to the belief that he lives in “the best of all possible worlds. »

What was Dracula really like?

It’s mind-blowing that today scientists can “extract genetic material from the letters written [in 1475] by Vlad Dracula […] and, from that, build up a picture of not only the physical makeup of the Wallachian warlord who became known as Vlad the Impaler but also the environmental conditions in which he lived.” Also, I’m not surprised that similar investigations revealed that Mikhail Bulgakov was under morphine when he wrote his masterpiece, The Master and Margarita (one of my all-time favorite books). »

First impressions on JetBrains Rider 2022.3 update

Today I upgraded to JetBrains’ Rider 2022.3. Startup speed has been enhanced, and full .NET 7 and C# 11 support is included. So far, my favorite feature is the conversion of regular and verbatim strings into their raw counterparts (it’s often the small, simple things.) My second best is the fulls upport for WSL2 remote development. This one took a good while to come out of the trenches, but better late than never, I’d say. »

Book Review: When We Cease to Understand the World

When We Cease to Understand the World, by Benjamin Labatut, is a strange narrative object. It mixes fact and fiction in imaginative ways, sometimes making it hard for the reader to distinguish between them, which is probably a testimonial to the experiment’s success. As I was reading, Wu Ming’s unidentified narrative objects (UNO) came to mind. If it doesn’t qualify as UNO, it comes close enough. It certainly fits the ‘faction’ (fact+fiction) genre, if such a thing exists. »

Writing is Magic

I find, more often than not, that I understand something much less well when I sit down to write about it than when I’m thinking about it in the shower. In fact, I find that I change my own mind on things a lot when I try write them down. It really is a powerful tool for finding clarity in your own mind. Once you have clarity in your own mind, you’re much more able to explain it to others. »

JetBrains has left Russia

While it has been a very challenging and difficult time for the company, it cannot even remotely be compared with the horrendous situation that the people of Ukraine are facing on a daily basis, caused by the war. Once again, we condemn this aggression, and have and will continue to stand by the people of Ukraine, including our colleagues and their families.  More here. I’m using JetBrains products when I’m not in (neo)vim. »

The Making of Dune II

Despite its name suggesting otherwise, Dune II was a first – a real-time strategy game that sprang out of the box with almost every gameplay attribute and control system seen in every RTS since. In direct lineage, it was the father of the globally successful Command & Conquer franchise, in that its code was used as a basis of the first game of the series. Yet in terms of wider influence, the battles first fought out on the vibrant sands of Arrakis continue to echo through modern videogaming. »

My Top 7 New Features in .NET 7

The other day we did a .NET 7 Spotlight event at this month’s DevRomagna meetup. The speakers were Ugo Lattanzi and me. In my session, I chose to talk about my top 7 new features in .NET 7 (pun intended.) What follows is a mix of my preparation notes and what I ended up really saying1. 1. Performance Since the initial release of “new dotnet” (.NET Core), performance has always been a critical goal for the . »