How many HTTP status codes should your API use?

... it’s important to remember that API design isn’t strictly about the practical implications on client and server software. The audience for an API is the developer who is going to consume it. Per the "principle of least astonishment," developers will have an easier time learning and understanding an API if it follows the same conventions as other APIs they’re familiar with.
https://blogs.dropbox.com/developers/2015/04/how-many-http-status-codes-should-your-api-use/

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.

Creating the open world kite real-time demo in Unreal Engine 4

This tech demo of Unreal Engine 4 looks amazing. Keep in mind that it isn't pre-rendered but running in real time.

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

Everything in the open world Kite demo is running in real time in Unreal Engine 4 at 30fps. In addition to Unreal Engine 4 open world features, Kite features fully dynamic direct and indirect illumination, cinematic quality depth of field and motion blur, PBR photo modeled assets and procedural asset placement.
Here is the making of:

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

Read more

Why it's so difficult to add scalar type hints to PHP

On the internals mailing list Anthony Ferrara posted a plea for unity on scalar types. If you want to know why it's so difficult to add scalar type hints to PHP, you should read it.

Scalar types are a hard problem. Not technically, but politically, because so many people use PHP in different ways. And everyone thinks their way is "the one true way".
http://news.php.net/php.internals/84689

The RFC needs a 2/3 majority to pass. The yes-camp currently has 67%. Personally I really hope this proposal will get accepted.

Read more

A Laravel package to retrieve Google Analytics data original

by Freek Van der Herten – 1 minute read

If you need to retrieve some data from your Google Analytics account in Laravel 5, then laravel-analytics is the package for you. Assuming the analytics tracking code is installed on your site, the package allows you to determine which pages are visited the most, which browsers are used most to…

Read more

Clone your package inside the vendor directory

Dimitrios Savvopoulos, the creator of the laravel-translatable package (which I use in almost every project), shared a very nice tip on how to develop a package while it is installed as a requirement.

If you have write access to a composer package repository, you have the possibility to continue its development while it is installed as requirement in another project. Let's see how we can accomplish this.
http://dimsav.com/blog/9/git-repository-inside-composer-vendors

If you have another, possibly better, way to go about this, let me know in the comments.

Read more

Why I support the league

Excellent post by Rafael Dohms on the The League Of Extraordinary packages.

“The League of Extraordinary Packages” is what I have dubbed a collective of composer packages. Its essentially a group of developers who have gathered under a single flag (or in this case a vendor name) and set standards for the packages that live there.

...

So these are a few reasons I like this effort:

  • Imposed Quality, Curated List ...
  • Reduced author fragility ...
  • Extended reach ...
  • Reduced duplication ...
http://blog.doh.ms/2015/03/10/why-i-support-the-league/

Read more

Semantic versioning

Under this scheme, version numbers and the way they change convey meaning about the underlying code and what has been modified from one version to the next.

...

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards-compatible manner, and
  3. PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
http://semver.org/

Read more