Retrospective 2023
| | 7 minutes | 1426 wordsIt’s been a while since I last took the time to write here. 2023 has proven to be a particularly interesting year, filled with numerous projects and a wealth of learning opportunities. Throughout the year, I’ve contributed to 38 open-source projects, resulting in 357 merged pull requests.
I am quite pleased with the volume of contributions I’ve made. There’s been a significant increase in merged PRs since I began contributing to NixOS, a Linux distribution I strongly recommend exploring if you haven’t already.
One of my most notable achievements in 2023 was the introduction of a new PHP builder for the Nix package manager (NixOS/nixpkgs#225401) after a couple of months of work. Initiated on the 9th of April and merged on the 14th of September, this builder aims to simplify the deployment and distribution of PHP applications in Nix, it a reproducible way. Moreover, it allows for the construction of applications with specific PHP versions, extensions, and dependencies, paving the way for a more reliable method of delivering PHP applications in Nix. To accomplish this, I delved deeply into Nix, learning about its language and internals. A custom Composer plugin was developed, available at nix-community/composer-local-repo-plugin. Admittedly, I had hoped for a more straightforward solution, but this plugin currently stands as the best approach I’ve discovered.
Another significant result of my efforts was a one-line patch in Composer (the PHP package manager) that ensures
stable and deterministic outputs. As a result, executing the command composer install
twice will now produce identical
vendor
directories. The pull request for this change is available at
composer/composer#11663. This work not only enhances overall PHP
support but also aims to raise awareness within the PHP community about the critical importance of reproducibility and
determinism, aspects often neglected by many developers.
In pursuit of this, I’ve contacted maintainers of popular PHP projects to include a composer.lock
file in their
repositories. This file, generated by Composer, specifies the exact version of dependencies used by a project. Composer
uses it to ensure consistent dependency versions during installations, and the new Nix builder employs it to guarantee
identical builds. Here are some of the projects where I’ve requested the addition of a composer.lock
file:
- sebastianbergmann/phpunit#5576
- phpro/grumphp-shim#23
- bobthecow/psysh#767
- PHP-CS-Fixer/PHP-CS-Fixer#7590
- vimeo/psalm#10446
Note
If you appreciate my open-source contributions and influence, I warmly invite you to consider sponsoring my work, this would greatly help me.
During this year, I’ve been invited to gave a talk at the International PHP conference in Munich. The talk focused on the integration of Nix in the PHP ecosystem (Find the slides here).
Overall, 2023 has been filled with positive experiences. I’ve had the pleasure of meeting for the first time wonderful people at SymfonyCon Brussels, as these photos attest.
Finally meeting people I’ve interacted with through GitHub issues and pull requests was a highlight. The relational aspect of the conference was incredibly engaging, perhaps even more so than the talks themselves.
2023 was also a year of significant change for me. Alongside reducing my digital footprint by leaving Twitter and Reddit, I’ve quietly reevaluated the circles I engage with in real life. I’ve grown fond of using Lemmy and Mastodon, which I find to be excellent platforms.
In addition to my numerous projects and contributions, a noteworthy highlight of 2023 was my discovery of Typst. Typst is a tool that has completely transformed my document creation process. I’ve long been a user of LaTeX for its precision and control. However, Typst emerged as a game-changer, offering an intuitive, efficient, and flexible alternative. Its streamlined syntax and powerful features quickly made it my go-to tool, entirely replacing LaTeX for my needs. This shift not only sped up my workflow but also opened up new possibilities for creativity and efficiency in my document creation. Its adoption is a testament to the continual evolution of my tools and practices, always seeking the best solutions to enhance productivity and quality.
Unfortunately, the year didn’t conclude as positively as I had hoped. It is with profound sadness that I share my beloved furry and pointy friend Izumi is nearing the end of his journey here on Earth.
Cats has been part of my life since my childhood, when I was living with my parents, we had 2 or 3 cats living around, mostly house cats, we were in love with Siamese and their very distinctive character. When I moved in the first time, I was living alone, I was missing the presence of a cat, so I wanted to adopt one, but since the house didn’t had a garden, I didn’t do it. Then I moved into an appartement, still no garden. However, in 2014, a twist of fate led me to an advertisement for an Havana Brown. I visited the breeder out of mere curiosity, with no intention of bringing home a cat. The house was lively with dogs, cats and children. Amidst the chaos, I noticed a small, furry creature majestically lying on a cushion right in front of the fireplace, observing its surroundings in total indifference. When the owner placed the little one in my arms, Izumi gazed up at me, and in that moment, I knew I wouldn’t be returning home alone.
Izumi was no ordinary cat. He was profoundly attached to me, following me everywhere, talking with me, sharing my bed (at least when I was single), and eagerly awaiting my return home, the bond between us was strong. He enjoyed car rides and could recognize familiar destinations. He was more than a pet. He was my shadow, my friend, my confident. He was always there in the most difficult moments of my life, his contagious wisdom was something I’ll never forget. Time has passed, I moved in and out and since then I moved into a house with a garden and what would be a house with a garden without at least two cats? So, I adopted Nakano, a friend for Izumi. After a week of grimacing, they became totally inseparable.
In mid-December, Izumi began to show signs of illness and lost weight drastically. I promptly took him to the vet, only to receive the heart-wrenching news that his kidneys were irreparably damaged. The shock and devastation hit me suddenly… everything unfolded so quickly. The vet’s prognosis was grim, indicating that he wouldn’t see the new year. I was totally unprepared. Unprepared to see him in pain, unprepared to say goodbye. We were and still are devastated.
He underwent treatment at the vet for three days, connected to a drip, but his condition showed no signs of improvement. With a heavy heart, I decided to bring him home, to spend his last days in a familiar and loving environment. The uncertainty of how much time he has left weighs on me, it’s unfair, but I am committed to ensuring his remaining time is as comfortable and serene as possible.
As I navigate the difficult waters of grief, I am reminded that the bond we shared with Izumi was one of life’s true gifts. He was not just cherished from the very beginning but also a profound source of wisdom, joy, and an immeasurable amount of love. His affection was a constant, comforting presence, weaving through each day, enriching every moment we spent together. While the future is uncertain and the pain of loss cuts deep, I carry forward the love he so freely gave. As this year closes, I brace for a season less bright without his light, yet I hold onto the hope and resilience that his love instilled in me. Here’s to the journey we shared, to the love that will forever remain, and to the paths yet to be discovered in the new year. Maybe, just maybe, they’ll be a little kinder, a little gentler, with the memory of Izumi’s unwavering love lighting the way, as a shinning star.
On the afternoon of the last day of the year, Izumi gently passed away in my arms, purring peacefully while looking at me just like the very first time…
Rest in peace, gentle companion of my way,
In Elysian fields, where surely you stray.
Your spirit remains with me, never does it flee,
Izumi, my friend, in my heart eternally.
And in a realm where all spirits are free,
I hold onto the hope, we will meet again, just wait and see.