Hello 👋

I'm @carlcassar on X , Instagram and Github . I've been making websites and apps for well over ten years . This is my blog, where I write about PHP , Laravel , Javascript , AWS , and other interesting topics .

How to Check and Upgrade XZ on Mac OS

As you probably already know, a backdoor has been found in XZ Utils, a compression tool that is used for lossless compression in command line utilities. If you're looking to understand more about this vulnerability, you can find an excellent explanation on Reddit.

If you're a Mac OS and Homebrew user, there is a good chance that you have the version of XZ that everyone has been talking about installed on your machine. This article is about how to find out for sure and what to do about.

#Which versions are affected

As you probably already know, a backdoor has been found in XZ Utils, a compression tool that is used for lossless compression in command line utilities. If you're looking to understand more about this vulnerability, you can find an excellent explanation on Reddit.

If you're a Mac OS and Homebrew user, there is a good chance that you have the version of XZ that everyone has been talking about installed on your machine. This article is about how to find out for sure and what to do about.

#Which versions are affected

As you probably already know, a backdoor has been found in XZ Utils, a compression tool that is used for lossless compression in command line utilities. If you're looking to understand more about this vulnerability, you can find an excellent explanation on Reddit.

If you're a Mac OS and Homebrew user, there is a good chance that you have the version of XZ that everyone has been talking about installed on your machine. This article is about how to find out for sure and what to do about.

#Which versions are affected

Thank you for reading this article.

If you've made it this far, you might like to connect with me on 𝕏 where I post similar content and interact with like-minded people. If this article was helpful to you I'd really appreciate it if you would consider buying me a coffee.
Continue Reading

Five Useful Apple Shortcuts for Obsidian

Obsidian is a note-taking powerhouse. Unfortunately, no app can offer every feature. One thing missing from Obsidian for iOS is the ability to add widgets to the home screen. In this article I'll show you how to get that functionality back with Apple Shortcuts.

#Prerequisites

Before I continue, there is some functionality that you may need or want to add to your Obsidian setup via community plugins in order to use these shortcuts.

Obsidian is a note-taking powerhouse. Unfortunately, no app can offer every feature. One thing missing from Obsidian for iOS is the ability to add widgets to the home screen. In this article I'll show you how to get that functionality back with Apple Shortcuts.

#Prerequisites

Before I continue, there is some functionality that you may need or want to add to your Obsidian setup via community plugins in order to use these shortcuts.

Obsidian is a note-taking powerhouse. Unfortunately, no app can offer every feature. One thing missing from Obsidian for iOS is the ability to add widgets to the home screen. In this article I'll show you how to get that functionality back with Apple Shortcuts.

#Prerequisites

Before I continue, there is some functionality that you may need or want to add to your Obsidian setup via community plugins in order to use these shortcuts.

Thank you for reading this article.

If you've made it this far, you might like to connect with me on 𝕏 where I post similar content and interact with like-minded people. If this article was helpful to you I'd really appreciate it if you would consider buying me a coffee.
Continue Reading

Extracting Wikilinks for your Markdown Laravel Blog

I recently rebuilt this site so I could write my articles in Markdown. I'm used to writing in Obsidian and have come to rely heavily on wikilinks. Laravel comes with Markdown baked in. Behind the scenes, it makes use of a package called league/commonmark. Commonmark offers a large list of extensions, but as we will see, none of them work to add Wikilinks functionality.

TL;DR Create your own wikilinks custom delimiter

#What is a Wikilink?

I recently rebuilt this site so I could write my articles in Markdown. I'm used to writing in Obsidian and have come to rely heavily on wikilinks. Laravel comes with Markdown baked in. Behind the scenes, it makes use of a package called league/commonmark. Commonmark offers a large list of extensions, but as we will see, none of them work to add Wikilinks functionality.

TL;DR Create your own wikilinks custom delimiter

#What is a Wikilink?

I recently rebuilt this site so I could write my articles in Markdown. I'm used to writing in Obsidian and have come to rely heavily on wikilinks. Laravel comes with Markdown baked in. Behind the scenes, it makes use of a package called league/commonmark. Commonmark offers a large list of extensions, but as we will see, none of them work to add Wikilinks functionality.

TL;DR Create your own wikilinks custom delimiter

#What is a Wikilink?

Thank you for reading this article.

If you've made it this far, you might like to connect with me on 𝕏 where I post similar content and interact with like-minded people. If this article was helpful to you I'd really appreciate it if you would consider buying me a coffee.
Continue Reading

Evolution of My Blog: A Wayback Machine Retrospective

Today I launched a new version of this blog. It got me thinking that I've been at this for a long time and have updated the design and functionality many times. I thought it would be fun to take a look at how this site has changed over time by using the Wayback Machine at archive.org.

When you search for this site on the Wayback Machine, you will see that I've been tinkering on this domain for over thirteen years, since February 16th 2010. I've not been a hundred percent consistent over that whole period, mostly due to work and other commitments, but you can also see that I always come back to it given the chance and that web development and blogging have been my long term passion.

Way Back History

Today I launched a new version of this blog. It got me thinking that I've been at this for a long time and have updated the design and functionality many times. I thought it would be fun to take a look at how this site has changed over time by using the Wayback Machine at archive.org.

When you search for this site on the Wayback Machine, you will see that I've been tinkering on this domain for over thirteen years, since February 16th 2010. I've not been a hundred percent consistent over that whole period, mostly due to work and other commitments, but you can also see that I always come back to it given the chance and that web development and blogging have been my long term passion.

Way Back History

Today I launched a new version of this blog. It got me thinking that I've been at this for a long time and have updated the design and functionality many times. I thought it would be fun to take a look at how this site has changed over time by using the Wayback Machine at archive.org.

When you search for this site on the Wayback Machine, you will see that I've been tinkering on this domain for over thirteen years, since February 16th 2010. I've not been a hundred percent consistent over that whole period, mostly due to work and other commitments, but you can also see that I always come back to it given the chance and that web development and blogging have been my long term passion.

Way Back History

Thank you for reading this article.

If you've made it this far, you might like to connect with me on 𝕏 where I post similar content and interact with like-minded people. If this article was helpful to you I'd really appreciate it if you would consider buying me a coffee.
Continue Reading

Different ways to pass data to a Laravel View

#1. Using a magic method

First up, Laravel uses some PHP magic to make sense of fluent methods. If, for example, you have an array of people in a variable $people, then you can use a magic method withPeople on the view() helper function (or View:: facade) to pass the array to your view. In your blade file, your people array will be available via a $people variable.

Route::get('/', function () { $people = ['Bob', 'John', 'Simon']; return view('welcome')->withPeople($people); });

#1. Using a magic method

First up, Laravel uses some PHP magic to make sense of fluent methods. If, for example, you have an array of people in a variable $people, then you can use a magic method withPeople on the view() helper function (or View:: facade) to pass the array to your view. In your blade file, your people array will be available via a $people variable.

Route::get('/', function () { $people = ['Bob', 'John', 'Simon']; return view('welcome')->withPeople($people); });

#1. Using a magic method

First up, Laravel uses some PHP magic to make sense of fluent methods. If, for example, you have an array of people in a variable $people, then you can use a magic method withPeople on the view() helper function (or View:: facade) to pass the array to your view. In your blade file, your people array will be available via a $people variable.

Route::get('/', function () { $people = ['Bob', 'John', 'Simon']; return view('welcome')->withPeople($people); });

Thank you for reading this article.

If you've made it this far, you might like to connect with me on 𝕏 where I post similar content and interact with like-minded people. If this article was helpful to you I'd really appreciate it if you would consider buying me a coffee.
Continue Reading