Skip to content

Instantly share code, notes, and snippets.

View Justintime50's full-sized avatar

Justin Hammond Justintime50

View GitHub Profile
@Justintime50
Justintime50 / setting-up-programming-languages.md
Last active May 23, 2022 15:43
This guide will help you setup various programming languages on macOS.

Setting Up Programming Languages

Setting up programming languages can take some time and differs per language. Here are some guides on each one to get you up and running in no time. NOTE: This guide is intended for macOS development.

M1 Macs & Homebrew: You will need to add the following to your path: /opt/homebrew/bin and /opt/homebrew/sbin

CSharp

Run brew install --cask dotnet-sdk to get started. This will install the SDK along with Mono. See the C# page for more information: https://formulae.brew.sh/cask/dotnet-sdk

@Justintime50
Justintime50 / invert_dictionary.py
Created April 21, 2022 21:18
Invert a dictionaries keys and values
import json
import os
# Invert a dictionary's keys and values
# USAGE: FILE=myfile.json venv/bin/python invert_dictionary.py
FILE = os.getenv('FILE')
def main():
@Justintime50
Justintime50 / README.md
Last active September 9, 2023 19:10
Quickly setup multiple websites via Docker containers on a single server.

Multisite Docker Server via Traefik

Quickly setup multiple websites via Docker containers on a single server via Traefik.

Edit the email found in the traefik.toml file and run docker compose up -d to get started in production (LetsEncrypt will generate SSL certs for all your sites).

If you'd like to use Traefik during development, you'll want to comment out the lines that have SSL/HTTPS/443 comments/code in the docker-compose.yml file.

Hosts: You'll need to add each site url to your /etc/hosts file before it can be visited.

@Justintime50
Justintime50 / reset_mysql_replication.md
Created March 24, 2022 18:46
Reset your MySQL Replication

Resetting MySQL Replication

If you have a master/slave replication setup that comes across something similar to error 1236 where the binlogs get out of sync, you can run the following commands to get things back on track.

# On the master node
SHOW MASTER STATUS;

# On the slave node
STOP SLAVE;
@Justintime50
Justintime50 / insecure-mixed-content-laravel-prod.md
Created February 16, 2022 06:52
Fix the insecure mixed content error in a Laravel production instance.

Insecure or Mixed Content Production Laravel

Make sure your AppServiceProvider.php file has a boot function that looks like this to avoid the was not allowed to run insecure content error in production:

use Illuminate\Support\Facades\URL;

/**
 * Bootstrap any application services.
 *
@Justintime50
Justintime50 / package-non-python-assets.md
Created September 23, 2021 16:43
Learn how to package non-Python assets into your Python Package

Package non-Python Assets into your Python Package

There are times where you may need to include non-Python assets in your Python package for distribution. This may include data files or JSON assets from a submodule for example that your Python package needs to reference. By default, Python will not include these assets in the bdist/sdist. You can either include an empty __init__.py file in that submodule (even if the project isn't Python) and rely on the magic of packages=setuptools.find_packages() in setup.py or you can explicitly include those non-Python assets by using the following steps.

  1. In setup.py, include an array of locations to include. These are glob matching patterns. An example of this looks like the following:
package_data={
    'top_level_package': [
 'path/to/assets/one/*.json',
@Justintime50
Justintime50 / aws_ip_range_parser.py
Created September 1, 2021 15:45
Gets the complete list of AWS IP ranges and parses the results
import requests
# Gets the complete list of AWS IP ranges and parses the results
# Usage: venv/bin/python aws_ip_range_parser.py
AWS_IP_URL = 'https://ip-ranges.amazonaws.com/ip-ranges.json'
REGIONS_TO_FILTER = [
'us-east-2',
'us-west-2',
]
@Justintime50
Justintime50 / postal-codes.json
Created June 27, 2021 06:09 — forked from jamesbar2/postal-codes.json
Global postal codes regex formats
[{
"Note": "The first two digits (ranging from 10–43) correspond to the province, while the last two digits correspond either to the city/delivery zone (range 01–50) or to the district/delivery zone (range 51–99). Afghanistan Postal code lookup",
"Country": "Afghanistan",
"ISO": "AF",
"Format": "NNNN",
"Regex": "^\\d{4}$"
}, {
"Note": "With Finland, first two numbers are 22.",
"Country": "Åland Islands",
"ISO": "AX",
@Justintime50
Justintime50 / es5-es6-js-imports.txt
Created June 21, 2021 06:09
Examples of ES6 to ES5 Javascript Imports
import moment from "moment";
=> const moment = require("moment");
import React from "react";
=> const React = require("react");
import text from "../../helpers/text";
=> const text = require("../../helpers/text");
import Button from "../../elements/buttons/Button";
@Justintime50
Justintime50 / install-xdebug-macos.md
Created May 23, 2021 05:30
Learn how to install PHP's Xdebug on macOS.

Install Xdebug on macOS

Installing Xdebug on macOS has changed a lot through the years. The most recent workflow to accomplish this is as follows:

# Install PHP
brew install php
# brew install php@7.4

# Install GNU `sed` and `grep`, installer will fail without them