Hi there!
Welcome to the 154th freek.dev newsletter!
I've enjoyed a couple of nice weeks of holiday with the family. Now that the kids are a bit older, and I had the time to read, and managed to read four books.
Back at Spatie, we're in the final stretch of completing the hosted version of Mailcoach. Together with my colleague Rias, we're putting in some nice final touches such as markdown editors and code highlighting. Here's a test of the code highlighting. Hopefully it works in your email client. If not, reply back to this mail mentioning the email client and version that you are using.
foreach($myVariable as $key => $value) {
doThis();
}
Only for this edition of the newsletter, I've temporarily enabled click and open tracking, this is so we can test the tracking capabilities with a real world campaign. In the next edition, tracking will be off again. If you're considering using Mailcoach, you'll be happy to know that tracking is disabled by default. If you need it for your campaigns, you can turn it on.
Currently, a couple of close friends are already testing out Mailcoach. Next week, we'll likely invite the first people from our waiting list.
With that being said, let's get to the interesting links. Even though I was on holiday, I managed to still collect a few nice things for you to read. Enjoy!
Increase performance by using Eloquent's setRelation method
While working on the upcoming Oh Dear redesign, I noticed that list that displays all sites of a team was very slow. Here's how I solved it.
How the Laravel Login Link package works under the hood
Povilas Korop of Laravel Daily made a cool video on the internals of our spatie/laravel-login-link package.
Is COUNT slow in MySQL?
Spoiler: It is optimized to be fast, and you should use it.
Efficient Pagination Using Deferred Joins
I wonder if Laravel should use this technique by default. It seems to have a major positive impact on performance.
The Slotted Counter Pattern
A very nice technique to decrease concurrency and prevent deadlocks.
Artisan Tinker in Vim with Tinkeray
You can now use Ray in Vim. Cool stuff!
How do database indexes work?
This post will walk through how database indexes work, with a particular focus on MySQL, everyone’s (well, many people’s) favorite homegrown organic database.
Why working code is not enough? Write Better Laravel, Part 2
You'll learn the difference between "tactical" and "strategic" programming, and why choosing the right approach is important in the long run.
Writing open source source software
A nice lighting talk given by my colleague Seb at the first edition of Full Stack Europe.
Holograms, light-leaks and how to build CSS-only shaders.
Pretty cool what you can do with CSS nowadays
Writing one sentence per line
A nice writing tip by Derek Sivers
A Lot Less Node with Airdrop
Airdrop determines when you can skip building static assets, saving a LOT of time and server resources in continuous integration and deployment.
Invokable custom validation rules in Laravel
Povilas demonstrates a nice little features that was recently added to Laravel.
Stop mocking about: Event Dispatcher
It's time to replace your mocked event dispatchers with a real one.
Catching Up Laravel
If you're running a Laravel application in the 5's, have a legacy application bootstrapped inside Laravel, don't have any tests, or are staring in silent terror at just how long ago your production server's PHP version hit its end-of-life, this post is for you!
Scaling Laravel to 100M+ jobs and 30,000 requests/minute
Learn how I was able to easily scale an application to handle hundreds of millions of jobs using nothing but Laravel, Redis and MySQL
Experimentally compiling PHP code to Rust
A blog post about an experiment that converts PHP to Rust and is capable of generating native binaries.
Deprecated dynamic properties in PHP 8.2
You might be afraid of this change, but most likely this won't affect you.
The difference between Traits, Interfaces, and Abstract Classes in PHP
If you've been working with PHP regularly, chances are you've run across an Interface, Trait, or Abstract Class. At first glance, they might appear to have a few similarities between them, and it can be hard to make out their differences and use cases.
Composer 2.4 introduces two new commands: bump and audit
The best dependency manager just got a little bit better.
PHP Core Roundup #4
Here's an update on what the PHP core contributors have been doing these past few weeks.
Speed Up Your PHP HTTP Guzzle Requests With Concurrency
Guzzle can do this out of the box! This technique is also used to power some of the checks in Oh Dear.
Can PHPStan find Dead Public Methods?
Thomas Votruba explains how you can go about this.
In this section you'll find links submitted by others. Let me know if you did write or stumbled across a blog post, tutorial or video that might be interesting to appear in this section
An object oriented wrapper around PHP's built-in server. (submitted by Wyatt Castaneda)
Sending Emails in Laravel – All You Want to Know (submitted by Sofiia)
Beautifully simple database-driven job chains in Laravel (submitted by Sam Carré)
Laravel Nova Future Trends (submitted by Chrysanthos)
Setup Multiple Tailwind Configurations On One Laravel Project (submitted by Ashish Dhamala)
Using Pest to test Laravel Livewire validation rules (submitted by Chris Rhymes)
Writing an Article Using AI in under 30 Minutes (submitted by Ash Allen)
Introducing Log Viewer for Laravel (submitted by Arunas)
Old posts
Here are a couple of links from a while ago!
My Software Estimation Technique (submitted by Arunas)
Modern web apps without JavaScript bundling or transpiling (submitted by Arunas)
Building a Fancy Tile Grid with Tailwind CSS (submitted by Arunas)
How we're using static analysis to improve our codebase (submitted by Arunas)
Are you a component control freak? (submitted by Arunas)
Immutable dates in Laravel (submitted by Arunas)
Git Rebase: a love story (submitted by Arunas)
The benefits of writing tests (submitted by Arunas)
How to test middleware in Laravel (submitted by Arunas)
How we use ElasticSearch, Kibana and Filebeat to handle our logs (submitted by Arunas)
Don't use Mocking libraries (submitted by Arunas)
Laravel Seeders on Steroids (submitted by Arunas)
Introducing Iterator Functions (submitted by Arunas)
Did you like this newsletter?
I take a lot of time curating the right links for you. You could do me a favor by either spreading the word and letting others know about my newsletter.
Alternatively, you could consider picking up one of the paid products my team and I have worked on:
For each of the above you can use this coupon code to get a discount:
DISCOUNT-FOR-FREEK-DEV-READERS
If you have any questions, remarks or thoughts about this newsletter, simply hit reply!
Thank you so much for reading!
Freek
You are receiving this newsletter because you subscribed at freek.dev
Unsubscribe from this newsletter
This mail was sent using Mailcoach
|