
Today, we'll explore one of the exciting features coming with PHP 8.5—the new #[NoDiscard] attribute to indicate important return values.
I'm a developer and an architect with ~10 years of experience. My languages of choice are PHP (Symfony), C#, Go and Typescript. With a tiny bit of Java and C++ here and there. I often write open source libraries, you can find my work on my GitHub. I started this blog for 3 reasons: I've wanted to start a blog for the last 15 years but never had time, I wanted a personal place where I can share whatever's on my mind, and I wanted to create something that uses ActivityPub.
Today, we'll explore one of the exciting features coming with PHP 8.5—the new #[NoDiscard] attribute to indicate important return values.
Creating a basic Matrix bot is straightforward—generate an access token, send an HTTP request, and you're done. But posting messages to an encrypted room with verified sessions is a bit more involved. This guide will walk you step-by-step through creating your own encrypted Matrix bot using Golang.
ActivityPub is the best protocol available for interoperable federated social media—primarily because no other current federated protocols target social media, offer interoperability, and aren't deprecated.
If you’ve ever worked with both PHPStan and the official AWS SDK for PHP, you know they don’t get along particularly well. In this article, I’ll show you a package I created that addresses this exact issue.
Transpiling lets you write your package or application using the latest PHP features—even if your runtime is older. This is especially useful for libraries (where you can’t just bump the PHP version without inconveniencing your users) and can be a lifesaver when upgrading legacy apps.
I love creating configurable generic models using OpenSCAD, and this is the most complex one I've created to date—an easy-to-configure calendar using some clever algorithms to render correctly.
The Steam Deck (and SteamOS) delivers a fantastic console-like experience on a Linux system. However, its immutable filesystem means that installing packages that persist across system upgrades isn’t straightforward. Fortunately, with a little Nix magic, you can work around that limitation.
Lazy objects are a fantastic addition to the already impressive PHP 8.4 release. In this article, we'll explore how to use them.
If you're like me and feel uneasy whenever something is typed as 'any' in TypeScript, this article is for you! I'll show you a neat trick to help both the compiler and your IDE understand the exact type of data being passed to your ng-template.