Category: Software

4 ways to deal with complexity in your eloquent models

I think everyone loves to work on completely greenfield applications. You get to plan your own course, chose your current favourite technologies, structures, and patterns to follow. There is no legacy code, no technical debt, nothing that stands in your way. You can do whatever you want and building features is a breeze. But you […]

Displaying validation errors with InertiaJS and Laravel

The easiest way to get yourself accustomed with how inertia works is to stop thinking about inertia visits as being XHR requests where you *do something* when the request it’s completed, and think of your project more as traditional server-side application where everything that happens next is dictated by the server. The same is true […]

Paginating Laravel API resources in InertiaJS applications

Later edit: Laravel API resource pagination works now as Reinink added support for Responsable props. If you’re a Laravel developer working with InertiaJS, there’s a good chance you played around with PingCRM, the application Jonathan build to illustrate how InertiaJS works. If not, I encourage you to have a look over it as it helps […]

Ionic menu not closing

Ionic – close menu on navigation

I’m working on an Ionic app and I stumbled upon this problem where the side menu does not close whenever I tap the menu item. It navigates to the page, but the menu stays open.

Laravel not nullable timestamp without a default value

I ran into the following question today: Is there no way to create a timestamp as not null with no default using #laravel migrations? I could get it to work making `shown_at` nullable, which… ok… but why? I’m OK w/ `created_at` using current but `shown_at` should always have a value. [1] For MySQL there is […]

People using your website are there on a mission

When people visit your website, they are there on a mission. They are there to get something done. Your job is to understand what that something is and provide the easiest route that will help them achieve just that. Anything else is just a distraction. As straightforward as it sounds, it’s hard. It’s hard because we […]

Chrome to start speed shaming websites

In a recent post, Google announced their intention to badge websites based on their speed and “in the future”, based on “high-quality experience, which may include signals beyond just speed”. Their motivation – “to help users understand when a site may load slow, while rewarding sites delivering fast experiences” is shady at best. Because, well, […]

Electron tray app windows taskbar

Positioning Electron Tray apps on Windows taskbar

One challenge when building an Electron Tray app is window positioning – assuming you want the app to act as a tooltip (eg: Google Drive app). If you’re here just for the resulting code, scroll down and grab it, otherwise I highly recommend using a pen and paper to draw the screen, taskbar and tray […]

VIN validation – Laravel custom validation rule

Working on a project involving dealerships and cars, I needed a way to validate car VIN (Vehicle Identification Number) so I came up with a custom Laravel validation rule.

Laravel fillable vs guarded

Laravel: Why I gave up on $fillable

Mass-assignment is when you use an array to create/update eloquent models. The $fillable and $guarded model properties are part of Laravel’s solution to avoid mass-assigning unwanted attributes when someone passes an unexpected HTTP parameter through a request and ends up changing a column in your database you did not expect.