27 February 2024

79 links · Tuesday

Blog Post

My new commute, as of last Monday, is seven steps door-to-door. (OK, I take big steps.)

Exploring Next.js Forms with Server Actions

How to use Forms in Next.js with React Server Components (RSC), Server Actions in Next's App Router by using useFormState and useFormStatus. Learn about form validation, form reset, form feedback (field errors and toast messages) while using progressive enhanc…

Encoding tic-tac-toe in 13 bits

The other day I happened upon a post by Chris Barrick detailing how to encode a tic-tac-toe game state in 15 bits, itself a response to an earlier post by Alejandra González detailing how to encode a tic-tac-toe state in 18 bits. In their posts, Chris and Alej…

Transformative Work as Livelihood

In December I went to the Free University of Bozen-Bolzano to teach a seminar on Transformative Work as Livelihood for the Eco-Social Design masters students. Over three days, we explored potential pathways available to socially and politically engaged designe…

Gemini server for 0ut3r.space

Another strange thing I decided to do with 0ut3r.space was to serve it via Gemini, I mean not the full copy, but a frontage only (full copy maybe if there will be someone who wants to read it in the G

Writing is hard, so I got help

I'm not a native English speaker. I make grammar mistakes, and I write convoluted sentences. This can muddy my message. I can nag colleagues and friends to proofread my prose, but I want to be mindful of their time. I decided to find a tool to help me write be…

12 Years at Meta

I've been at this company for 12 years today and it feels like a good time to reflect on all the projects I've been involved in!

"Help, I see a problem and no one is prioritizing it!"

A mentee recently mentioned a really frustrating problem that her manager seems to be ignoring. The specific problem doesn't matter, so don't focus on the technical details here.

I had a perfectly nice domain and then the Taliban ruined it

Sheesh, I’d found the perfect domain for the home for my random, yes, opinionated, writing on the internet. opinionated.af. I am opinionated.af. Get it, it’s a joke because my initials are AF, and …

Uno Platform for Figma plugin RTM!

Pixel-Perfect Multi-Platform Applications with C# and WinUI for Windows, WebAssembly, iOS, macOS, Android and Linux

Airfoil – Bartosz Ciechanowski

Interactive article explaining the physics of an airfoil and what makes airplanes fly

How to Survive a Layoff (as a developer)

How to be ready to a Layoff as a Software Developer📧 Subscribe my newsletter: https://guiferreira.me/newsletter🔗 Talent list: https://docs.google.com/sprea...

How I turned my open-source project into a business

When I started writing and publishing open-source software about 15 years ago, I was pretty radical about it. I only used permissive licenses like MIT or BSD, as all I cared about was reach. Using a copyleft license with strings attached seemed to hinder that …

async await in C#: 3 Beginner Tips You Need to Know

Dive into async await in C# with these 3 beginner tips. Learn how to write async await code, handle multiple exceptions, and avoid dreaded deadlocks!

The Effect Existence, Its Magnitude, and the Goals

If you are curious if something impacts something else, the answer is probably “yes.” Does that indicator depend on those factors? Yes, it does. If we change this thing, would it affect …? Yes, it would. If a person takes this pill, could...

Dapper - Return dynamic data

For simple data fetching scenario's, I tend to keep away from Entity Framework and go the micro-ORM approach using libraries like Dapper . ...

Lock statement patterns

A few weeks back, I wrote an article "A new lock type in .NET 9" where I showcased the new Lock type. Nothing fancy - well, at least it was more expressive. But now the dotnet team went a step further with this!

Testing exceptions

Some thoughts on testing past the happy path.

Release v0.1.0 · martincostello/dotnet-bumper

The initial preview release of ✨ .NET Bumper ✨🚀 To install the tool and upgrade a .NET 6 or later project to the latest Long Term Support (LTS) version of .NET, run the following command: dotnet to...

Package dependency hell — Rami James

Intentionally or otherwise, I've been blowing up my life since last summer. It’s been less than ideal. We'll get to why in a second, but first, let's talk about everyone's favorite awful programming language and the impact of package managers, their packages, …

Trials and tribulations of 360° video in Juno

In building Juno, a visionOS app for YouTube, a question that’s come up from users a few times is whether it supports 360° and 180° videos (for the unfamiliar, it’s an immersive video format that fully surrounds you). The short answer is no, it’s sort of a nic…

Your company doesn't have to be for everyone

Building a company is an exercise in empirically testing your beliefs. Everything your company does is essentially testing a hypothesis. Your successful product was once a hypothesis that was proven correct. Your failed pivots were hypotheses that were proven…

Language Modeling in the Limit - Matthew Francis-Landau

I think that there are many people who are surprised that Large Language Models (LLMs) that predict the next word act intelligently and are capable of solving many challenging tasks. In my opinion, the success of LLMs is not surprising. In this blog post, I wi…

My First K8s App

Journey from application to K8s implementation The other day, I was talking to a friend of mine trying to explain to him the purpose of K8s. He understo...

What if best practices were the norm?

During my second year of university I followed a course dedicated to object-oriented programming and quickly fell in love with Java. My honeymoon phase with it is long over and I've come to dislike a lot of the ceremonies and self-imposed restrictions that can…