I recently tweeted the following:
Should you subdivide a functional program into classes the way you would an object oriented program?Yes. You should. Because the rules don’t change just because you’...
I spent more than 6 years living and working in Switzerland and Germany, and I will share with you the particularities of the DACH startup ecosystem and explain how you can make the most of it.
From its humble beginnings as a personal project in the mid-90s, PHP has grown to become one of the most popular languages for web development, powering everything from small blogs to large enterprise...
This is yet another random side project I was working on recently, and my first attempt to reverse engineer a real world application compiled into binary. In this article, I want to talk about how I r...
What I've come to realize, though, is that anyone can write code that seems complicated. The hard thing is solving complex problems with simple code.
Read more
We've released a new package called spatie/laravel-deleted-models. When deleting a model, this package will copy over its attributes to a table called deleted_models.
You can view this package as a "R...
中文版:使用K3s部署预算友好的ARM-X86混合Kubernetes集群 – Frank’s Weblog Kubernetes were used for enterprise level services, which is heavy and expensive. Even for the least-expensive Digital Ocean, it...
Previously, I have introduced how LyricsX handled playback progress of different players, and briefly talked about how I applied its principal to web audio with a requestAnimationFrame() loop. In this...
Recently I was working on the release automation at work, and one of the requirements is to gap a specific number of hours between stages, and snap to normal business hours. While having a centralized...
Laravel 9 introduced a new way to create custom validation rules: invokable rules. It allows you to write a custom validation rule with only one method: __invoke.
Here's a simple example:
namespace A...