You can group by anything
– twitter.com – Edit
sql tips: you can group by anything pic.twitter.com/YoJVlUyghG
— ?Julia Evans? (@b0rk) 29 september 2019
Read more [twitter.com]
– twitter.com – Edit
sql tips: you can group by anything pic.twitter.com/YoJVlUyghG
— ?Julia Evans? (@b0rk) 29 september 2019
Read more [twitter.com]
– calebporzio.com – Edit
Recently status pages were added to Oh Dear!. My colleague Sebastian took care of the live updates with a few lines of JavasScript.
In a new video on his blog Livewire creator Caleb Porzio, shows how can create the same behaviour with Livewire (and without having to write JavaScript). Impressive stuff!
This sort of thing is right up my alley, but I couldn't help but think how easy it would be in Livewire. Here's is the same functionality implemented with Livewire, in three or four little code additions. No JS!
Read more [calebporzio.com]
Join 9,500+ smart developers
Get my monthly newsletter with what I learn from running Spatie, building Oh Dear, and maintaining 300+ open source packages. Practical takes on Laravel, PHP, and AI that you can actually use.
No spam. Unsubscribe anytime. You can also follow me on X.
"As a Laravel developer, this is the one newsletter I most look forward to. Freek has a talent for distilling packages or techniques down to something immediately useful - one tip can save you hours and even weeks. It's concise and practical and highly relevant."
– ninjaparade.ca – Edit
Yaz Jallad explains how you use Mailgun's webhooks to determine click and open rates of mails.
While building ContestKit there was a feature I wanted to allow users to know if the emails that were sent to the winners were delivered successfully. Thankfully this feature is relatively easy to add because of Mailgun's amazing API. Let's create a new Laravel application and get started.
Read more [ninjaparade.ca]
Gergely Orosz argues that you should start with a simple design and try your best to keep it simple. I don't necessarily agree with everything in the post, but it's an interesting opinion nonetheless.
Software architecture best practices, enterprise architecture patterns, and formalized ways to describe systems are all tools that are useful to know of and might come in handy one day.
Read more [blog.pragmaticengineer.com]
– twitter.com – Edit
Extracting doesn’t guarantee simplicity. Sometimes extracting code into another module means I’ve smeared one “conceptual module” in my brain into two physical files. Now I can’t look at the whole thing at once, and their internal wiring is more prominent than it deserves. Oops.
— Dan Abramov (@dan_abramov) September 25, 2019
Read more [twitter.com]
Mike Veerman points out that managers that are not making decisions are lazy.
Lazy management means not choosing. It’s only paying lip service. When we put quality first, together with security and performance and everything else, we’re not doing our job. We’re postponing the inevitable in the hope the monster goes away.
Read more [www.mikeveerman.be]
Sebastian De Deyne explains how the live updating on Oh Dear status pages works.
We were originally going to use Vue for the pages, so we could make the entire view reactive so we could easily fetch and update data with AJAX or websockets. I started building the status page view, but quickly became hesitant about the decision to use Vue. It didn’t feel like the right tool for the job.
Read more [sebastiandedeyne.com]
– johnbraun.blog – Edit
John Braun wrote a good series on how to get started with Laravel package development
Read more [johnbraun.blog]
– twitter.com – Edit
? Don't use magic numbers when defining any TTL (like cache or cookies) in PHP. Use human-readable intervals instead. pic.twitter.com/ZC6S6BVMUi
— Marcel Pociot ? (@marcelpociot) September 23, 2019
Read more [twitter.com]
– stefanzweifel.io – Edit
Stefan Zweifel shared his GitHub action that can automatically fix code style issues using prettier and php-cs-fixer
One workflow is really like, is to run prettier and php-cs-fixer to automatically format my code and commit the fixed files back to the repository.
Read more [stefanzweifel.io]
An interesting opinion written by my colleague Seb.
Over the years I’ve experimented with different strategies to build user interfaces. From sprinkling JavaScript over server side templates to full-blown SPAs. My conclusion up until now: we can do better.
Read more [sebastiandedeyne.com]
by Freek Van der Herten – 5 minute read – Edit
About a year ago, we released laravel-event-projector. It focused on adding projectors, an important concept in event sourcing, to Laravel.
After the release of the package, we continually kept improving it. We added aggregates, a way to test those, a brand new section in the our documentation that explains event sourcing from scratch, and DX improvements all across the board.
We now feel confident that the package is a good starting point for getting started with event sourcing in Laravel. That's why we're renaming the package to laravel-event-sourcing.
– stefanbauer.me – Edit
I don't necessarly agree with every detail in this post, but it's very interesting to see how others structure larger projects.
In this article, I would like to show you an alternative way to organize your Laravel directory structure. I think the default structure is fine for the most projects. But when it comes down to larger projects I was looking for a different structure.
Read more [stefanbauer.me]
– ohdear.app – Edit
My buddy Mattias explains how you can use Laravel and Caddy to handle https traffic to dynamic subdomains.
We recently launched our new Status Page feature. Under the hood, it's using the Caddy proxy server and Laravel's subdomain routing to serve the right status page on the right domain. With this technology stack, we can automatically generate, configure & renewe the SSL certificates for custom domains of our clients.
Read more [ohdear.app]
– twitter.com – Edit
? In many cases avoiding `else` and using early returns will greatly improve readability of your code.
— Freek Van der Herten (@freekmurze) 17 september 2019
I wish somebody would have told me this sooner in my career.
Contrived example in the image. Real world example: https://t.co/oOsSGAJLZm#bestpractices pic.twitter.com/YgqB0kMIpg
Read more [twitter.com]
In this old, but still relevant, blog post Craig Davis explains what guard clauses are and how they can be used to clean up your code.
We’ll first explore several versions of a sample method from a hypothetical billing system. For these purposes, we’ll assume this is code in an existing system and we’ll look at refactoring it to reduce complexity and make it easier for a programmer to understand. The first example will be trivial enough to easily understand, but we’ll build on it in the final examples.
Read more [engineering.helpscout.com]
by Freek Van der Herten – 9 minute read – Edit
My buddy Mattias and I are running an uptime checker service called Oh Dear. Earlier this week, we've launched a new major feature: status pages.
In this blog post, I'd like to walk you through what status pages have to offer. We'll also dive deep in some technical details of the underlying Laravel app.
– medium.com – Edit
Roberto B wrote a good tutorial on how to test your Laravel 6 application using GitHub actions.
The scenario that I would like to explain you is: I have a Web App based on Laravel 6, every time I push some new code on master branch on the GitHub repository, I would like to execute automatically Unit tests and Feature tests.
Read more [medium.com]
by Freek Van der Herten – 3 minute read – Edit
I'm currently organizing the Full Stack Europe conference. The first edition will be on 23 - 25 October in the beautiful city of Antwerp, Belgium. I believe that the best apps or sites aren't built by programmers. They're built by teams. That's why we designed this conference for everybody and don't stick to just one aspect of programming.
– madewithlove.be – Edit
Tony Messias wrote a good post on the Madewithlove blog on how to get started using Elastichsearch in a Laravel app.
One of the most popular ways is using Elasticsearch. It is a very powerful tool and it comes with a variety of useful features and complementary tools. We are going to cover the basics here and leave you with some links for more resources if you want to dig further.
Read more [madewithlove.be]