A pjax middleware for Laravel 5 original

by Freek Van der Herten – 1 minute read

A few days ago Jeffrey Way published an interesting lesson on how to integrate pjax with Laravel. Pjax is jquery plugin that leverages ajax to speed up the loading time of webpages. It works by only fetching specific html fragments from the server, and client-side updating only certain parts of the…

Read more

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.

Why developers hate being interrupted

Developers can appear very unproductive at times, sitting staring at the screen with our headphones on and very little in the way of keyboard clackety-tap. This however is when we are doing our thinking, when we are building up, adding to and rearranging the mental model of how our code will work. This is the biggest and hardest part of development.

Imagine how it feels to have that interrupted at random by a telephone call or somebody walking over to talk to you. It’s horrible.

http://thetomorrowlab.com/2015/01/why-developers-hate-being-interrupted/

Read more

The beginner's guide to rebasing your PR

You've successfully created a PR and it's in the queue to be merged. A maintainer looks at the code and asks you to rebase your PR so that they can merge it.

Say what?

The maintainer means that there have been other code changes on the project since you branched which means that your branch cannot be merged without conflicts and they would like to you to sort this out.

These are the steps you should take.

http://akrabat.com/the-beginners-guide-to-rebasing-your-pr/

Read more

Custom conditionals with Laravel's Blade Directives

Matt Stauffer explains when and how you can leverage custom blade directives.

One of the greatest aspects of Laravel Blade is that it's incredibly easy to handle view partials and control logic. I find myself frequently extracting the contents of a loop out to a Blade partial and then passing just a bit of data into the partial.

But sometimes the repetitive code isn't the view itself, but the conditional logic I'm running.

https://mattstauffer.co/blog/custom-conditionals-with-laravels-blade-directives

Read more

A Fractal service provider for Laravel original

by Freek Van der Herten – 1 minute read

Today I released a new package called laravel-fractal. It provides a Fractal service provider for Laravel. If you don't know what Fractal does, take a peek at their intro. Shortly said, Fractal is very useful to transform data before using it in an API. Using Fractal data can be transformed like…

Read more

How to perform a HTTP/2 Server Push with the Symfony HttpKernel

HTTP/2 has a great feature called server push. It enables the server to send multiple responses in parallel for one request. In a blogpost on the Symfony Finland blog Jani Tarvainen demonstrates how to make use of server push with the Symfony Kernel.

$app->get('/images'), function () use ($app) {
    $images = array('/images/1.jpg','/images/2.jpg','/images/3.jpg');
    $response = new JsonResponse($images);
    foreach($images as $image){
        $response->headers->set('link','<' . $image . '>; rel=preload; as=image',false);
    }
    
    return $response;

Read the entire article for some more background info.

Read more

Add a JavaScript breakpoint programmatically

When working on JavaScript code you'll probably find yourself riddling the code with console.log-statements when something is not working the way that you're expecting.

But did you know that there is a debugger statement available? It has invokes any available debugging functionality. To put it otherwise: you can programmatically set a breakpoint for your debugger. It should work in any browser.

function potentiallyBuggyCode() {
    debugger; //the debugger wil stop here
}

Here's the documentation on the debugger-statement on MDN.

Read more

I crashed the web servers of a $100M+ multi-national corporation

A great story by Derick Bailey of Watchmecode.net

The important lesson, ..., was that I owned up to the mistake, dug in and fixed it, and learned how to avoid the problem in the future. I was, in his mind, a better developer at the end of that day. I had survived a catastrophic crash of my own making and I had fixed the problem, learning some very valuable lessons in business down time and in code that day.
http://derickbailey.com/email_archive/i-crashed-the-web-servers-of-a-100m-multi-national-corporation/

Read more

Do not trust cat at the command line

In this excellent post Matthias explains why you can't put all your trust in cat when inspecting a file:

https://ma.ttias.be/terminal-escape-sequences-the-new-xss-for-linux-sysadmins/

Let's all agree to never trust anything that has been posted on the internet without very thorough inspection. And let's especially agree to never run an arbitrary command or script found on the internet, without really close inspection.

Read more

Redirect every request in a Laravel app original

by Freek Van der Herten – 1 minute read

I recently had to redirect every single request in a Laravel app. You might think that would be as easy as this: Route::get('/', function() { return redirect('https://targetdomain.com'); }); But that'll only redirect the "/" page. All other requests will return a 404.…

Read more

A middleware to check abilities on the route level original

by Freek Van der Herten – 1 minute read

Laravel's native authorization functionality allows you to define abilities a user can have. There are multiple ways to check if a user has a certain ability: via the facade, via the user model, within blade templates and within form requests. What Laravel doesn't provide out of the box is a…

Read more

Functional programming design patterns

In object-oriented development, we are all familiar with design patterns such as the Strategy pattern and Decorator pattern, and design principles such as SOLID.

The functional programming community has design patterns and principles as well.

This talk will provide an overview of some of these, and present some demonstrations of FP design in practice.

Watch it on Vimeo.

Read more

The Star Wars Holiday Special

Like most geeks out there I'm a big fan of Star Wars. Many will agree that the original trilogy is far superior to the prequel triology. Until yesterday I thought Episode II was the worst movie of the entire series. But then I found out about the holiday special.

The Star Wars Holiday Special was made in 1978, a year after the original movie. The storyline (quoted from Wikipedia) sounds quite good:

... Chewbacca and Han Solo visit Kashyyyk, Chewbacca's home world, to celebrate Life Day. They are pursued by agents of the Galactic Empire, who are searching for members of the Rebel Alliance on the planet. The special introduces three members of Chewbacca's family: his father Itchy, his wife Malla, and his son Lumpy, though these names were later explained to have been nicknames, their full names being Attichitcuk, Mallatobuck, and Lumpawaroo, respectively.

During the special, scenes also take place in outer space and in spacecraft including the Millennium Falcon and an Imperial Star Destroyer. The variety-show segments and cartoon introduce a few other locales, such as a cantina on the desert planet of Tatooine and a gooey, reddish ocean planet known as Panna.

Luke Skywalker, Han Solo, Chewbacca, Princess Leia are all in there. But their presence absolutely doesn't hide the fact that it is a terrible terrible movie. Episode II is a genius work of art compared to this pile of crap. In it's day the movie received mostly very negative reviews. George Lucas agrees. He said this about the christmas special: "If I had the time and a sledgehammer, I would track down every copy of that show and smash it."

See the special for yourself on YouTube. But I recommend you don't.

To restore your faith in Star Wars watch the trailer of episode VII . Very much looking forward to that one.

https://www.youtube.com/watch?v=wCc2v7izk8w

Read more