Using Laravel Vite with MAMP
As seen in other posts, I use MAMP quite a bit for my web development environment. I know I can run docker, or any of the other platforms out there but they use more memory and resources that I'd prefer to devote to my dev tools.
I started a new Laravel project and wanted to use MAMP but Vite was throwing errors due to the SSL not matching out of the box.
When adding
to my blade file, I'd get errors including:
I found articles saying to add --https or --host to my package json command but then I got this error:
Load MAMP Pro, add your host and generate your SSL certificates. For this example, we'll use set the host name to my-app.test, and assume you're storing the SSL keys in the default location.
Open vite.config.js and add the following 2 lines:
Then add this to defineConfig section:
You should now be able to run npm run dev and have no issues.
Sample full vite.config.js file for easy reference:
How to use Backblaze B2 with Laravel
I am working on a Laravel project and decided to use a Backblaze bucket as it's cheaper for storage when compared to AWS S3. I couldn't find a tutorial on how to get it working from scratch and I tested a bunch of Laravel B2 libraries that didn't end up working. The good news is that you don't need a special B2 plugin and instead can use the S3 package recommended by the Laravel docs.
If you haven't added the flysystem-aws-s3 package, add it to your project using composer:
Login to your B2 account and create your bucket with your required settings. Once created, you'll want to create a new application key with the permissions you need for your app. You should get a confirmation once it's generated:
Open your .env file and locate the settings for AWS. You'll need to add one key that's not there by default:
Match the settings in your .env from the application key to the values below.
Now you should be able to call the Laravel storage system like normal:
How to Clear Archive & Read-only flags on Files in Windows in Bulk
I ran into an issue where I had to move files from one system to another and was running into issues because files had been set as read-only, had the archive flag set, or both. It was causing the system to skip files which wasn't acceptable. Normally you could just use Windows to clear it in bulk, but that could potentially mess up file permissions. I needed a way to automatically just clear all flags but respect permissions.
I did some searching and didn't find a utility that would do the job and most of the solutions I found required Powershell which wasn't available on the system I was on. I ended up writing a quick console application in C# to do the trick. I've made it free and open sourced it in case anyone wants to use it.
If you need just the app, you can find the release build here with instructions. The app also prompts for input to make things a bit easier to use. There's no install, no tracking or metrics, or anything else related to privacy concerns in this app. It's a simple throwaway utility to get the job done and move on.
https://github.com/gregvarghese/clearflags/releases/tag/1.0.0
If you want to see the source code, that is available here:
https://github.com/gregvarghese/clearflags/
Please note that I did this in about 10 minutes for my own use so error handling is pretty much non-existent. I mention this because I did run into one issue where Windows was somehow seeing a folder with files in it as a file and it couldn't be deleted or renamed and the utility couldn't get past it until it was resolved. I didn't spend much time debugging and just used my Mac to rename the folder and Windows was able to recognize it after the change, so the utility was able to continue processing.
How to Generate a Page for Each Day of Month in Microsoft Word using VBA
I briefly joined my wife at her practice to help her grow the business and figure out how to make things more efficient. One of the things I learned is that my wife created a sign-in sheet for the office in Microsoft Word. Every week she would open the file and manually enter the date for each day of the week and then print out the documents. I took over the responsibility for a month and it annoyed me due to how inefficient the process was and I decided to automate the entire thing. I couldn't find a solution to the problem online so I had to roll my own and am sharing the code in case someone else can benefit from it.
The script will calculate the first day and last day of the month and then do a loop to append the date in the "Day, Month day, Year" format (i.e. Thursday July 17, 2019) to a text field.
There are a few important steps involved to get the script working as is:
Open up Word, then open up VBA, and copy and paste this snippet into a module. When you run the function, it'll create a copy for every day of the month. I also created a function to start at a specific date in case you run it in the middle of the month.
How to Extract Text from image using Laravel and Amazon Rekognition API
I'm currently working on a project that requires extracting text from images of variable quality. I'm doing quick prototypes using PHP and Laravel, but I've found the documentation for accomplishing this a bit lacking. After working on it for a bit, I figured out a really simple solution and am sharing in case it helps anyone else.
This sample will send the image to the API as a blob instead of using a URL. I had tried Base64 encoding it without any luck. I discovered that using Imagick was the easiest way to make this work so the sample relies on that.
Fire up terminal and add a requirement for aws/aws-sdk-php:
Add keys for your AWS access keys and region to your .ENV file:
Create a controller, add the snippet below, and create a route to the controller. Check the URL and you should have a dump showing the array returned from AWS with all the text, bounding boxes, and information.
How to get shape type in Visio using VBA?
I'm working with a Visio 2016 file with over 100 tabs and need to extract the data (mainly text, connector from/to, and shape) for data processing for a processing engine. I was trying to figure out how to get the shape type name in Visio using VBA. For example, in a flowchart, I'm trying to figure out how to tell if a shape is a process, decision, data, etc. The
property seems to always return 3 which appears to be visTypeShape from https://docs.microsoft.com/en-us/office/vba/api/visio.visshapetypes. After hunting through all the available properties on the Shape object, I found that the shape.Master.Name property will return the shape name, but you need to check if it's Nothing first in case it's not a shape.
I didn't do that and it kept breaking the script originally because some of the pages had text fields and the first few items on the first sheet I was working with were text boxes. Hopefully this snippet will save you the time I wasted figuring it out.
How to remove wrapping tags in PHP Storm
How often do you code something and need to delete a wrapping link or div? I was using PHPStorm and had grabbed some code from another file that had links in the tags which weren't needed in the new file. I didn't want to manually remove each link and after a quick look around PHPStorm's menus, discovered that PHPStorm has a really useful command to remove the wrapping element for you.
Select the element, then from the menu, choose Code > Unwrap/Remove... or use the keyboard shortcut, Command + Shift + Backspace and then choose the appropriate wrapping element to remove.
How to test email sending in Laravel 5.3 using artisan tinker
I'm building a Laravel app and ran into an error when trying to send mail but wasn't getting an error back since the request was posted through ajax. If you're trying to troubleshoot it, artisan tinker app is very useful to get more information on the error.
Fire up terminal/command line and run:
and then run the following snippet:
You should either see a success/null message if everything was correct, or an error with details on what went wrong.
The error I encountered required configuring 2FA in Gmail or you can choose setting the insecure app option up to send through Gmail for testing.