home about me

ChatGPT reflected SQL injection

Can you social engineer a chatbot into an SQL injection? The answer is, it depends. Sometimes, yes.

SEO Bombing of Shopify Stores via the vendors URL

Recently a spam wave utilising the vendors search of Shopify made the rounds on Linkedin.

Automatic Transcription of WhatsApp Voice Messages

Using open source software and a free API to automatically transcribe WhatsApp voice messages.

Prevent changes to the input volume on MacOS

Many video call tools, like Google Hangouts, Microsoft Teams, Whereby, Around […] offer automatic gain control. But only some of those tools will let you disable it.

Help, my Laravel localization won't update!

Sometimes it’s just one of those days. And sometimes you spend way too much time debugging something that turns out to be a trivial issue.

Composite indexes in Laravel & MySQL

Using indexes/indices (both are correct!) are one of the most obvious ways to speed up database operations in any app using MySQL and similar databases.

Finding the position of an entry inside a paginated query (without iterating)

Sometimes you want to link to a resource inside a paginated collection by its ID and need to find the correct page, fast.

One Less Join using Laravel Pivot Tables

Laravel’s BelongsToMany relationship has a relatively unknown allRelatedIds method that might just shave off a MySQL join.

Easy Auto Sizing Textarea

Two options for creating a textarea field that grows and shrinks with user input. Easily definable minimum and maximum height. Example code for Javascript and Vue.js.

Short and useful SCSS Mixins, Part 2

Some more short and useful SCSS helpers to make development easier and cleaner.

border-radius for the content-box

As CSS border-radius will only work in the place the border is supposed to appear - between margin and padding - we need to come up with a more creative solution if we want a round edge where the content is.

Finding optimal color contrast in Shopify

Expanding on the previous post about automatic high contrast text colors, let’s take a look about how this could practically be implemented in a Shopify theme.

Short and useful SCSS Mixins

With CSS getting more and more features, SCSS has less use cases. Yet there are still a lot of areas where SCSS makes development easier.

CSS Media Queries to respect your users

You should always respect the choices your users make. There are a few media queries you can use to easily make your site or app experience more in line with what your users want.

Finding optimal color contrast

When it comes to styling text content, readability trumps everything else. But not all colors are made equal.

Change project config when git branch changes

For a legacy project that required me to deploy different branches to different endpoints, I utilized a quick git hook.

Simple workspace shortcuts

Having a few shortcuts to quickly pull up your different workspaces really makes a difference.

Better iterators with ii & jj

Using ii, jj and kk instead of i, j and k for iterator variables is preferable.

Repeat a shell command until it succeeds

Sometimes you just need to try again. And again, and again…

git pushup: a little alias for easier branching

git branches are a lovely thing to keep your work tidy and easily collaborate with other developers. But if you want to avoid those pesky upstream error messages when trying to push a freshly created branch, there are two things you can do.

Deploying Laravel to fortrabbit (Gitlab CI)

Automatic deploy of Laravel projects to fortrabbit, including built assets and database migrations, using Gitlab CI.

<marquee>: Alternatives in CSS

Remember back in the late 90’s, early 00’s? Geocities, Angelfire, Tripod, no personal website was complete without the scrolling text provided by the <marquee> tag. Now that it is officially deprecated, let’s look at implementing an alternative.

The difference between " and ' in shell aliases

Not doing clickbait: Single quotes delay command substition, double quotes do it immediately.

colornamify

A library for assigning human-readable names to colors, and an accompanying Visual Studio Code extension.