Skip to content

Instantly share code, notes, and snippets.

View fideloper's full-sized avatar
🏠
Working from home

Chris Fidao fideloper

🏠
Working from home
View GitHub Profile
@fideloper
fideloper / certbot.sh
Last active September 27, 2023 21:52
Certbot on Ubuntu, wildcard subdomains via CloudFlare DNS challenge
View certbot.sh
# Used on Ubuntu 18.04 and 20.04
# Find instructions for other OSes here: https://certbot.eff.org/instructions
# Install Certbot via Snaps
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# Install DNS CloudFlare plugin
sudo snap set certbot trust-plugin-with-root=ok
@fideloper
fideloper / microsoft_graph_api_php_jwt.md
Last active March 29, 2023 18:40
Microsoft Graph API - oAuth apps with PHP and JWT certification authentication
View microsoft_graph_api_php_jwt.md

Microsoft Graph API - oAuth apps with PHP and JWT certification authentication

If you've ever wanted to create an oAuth style application with Microsoft, you might have felt this pain before.

In true Enterprise Microsoft Fashion™, there's a lot going on.

This will be a bit long because of that. I hope I haven't missed anything (but I'm sure I have)!

We'll be using PHP (Laravel in my case).

View twitterFollowerCuratorBot.php
<?
//
// AUTO KEYWORD-BASED FOLLOWER CURATION BOT (by @levelsio)
//
// File: twitterFollowerCuratorBot.php
//
// Created: May 2021
// License: MIT
//
@fideloper
fideloper / mount_aws_nvme_ephemeral.sh
Last active August 30, 2023 07:06
Find, format, and mount an AWS Ephemeral NVMe disk within ec2 in user data
View mount_aws_nvme_ephemeral.sh
#!/usr/bin/env bash
###
## This mounts a (single) ephemral NVMe drive in an EC2 server.
## It's meant to be run once, within user-data
## For EBS drives (non-ephemeral storage), see: https://gist.github.com/jalaziz/c22c8464cb602bc2b8d0a339b013a9c4
#
View mysql-deletes.md

Each query in MySQL is running as its own transaction, assuming you didn't change this default configuration, and unless you're starting a transaction manually and running multiple deletes in that one transaction.

Because every query is a transaction, MySQL has to save the data being deleted in case of a rollback. Large deletes means saving a TON of data for that potential case.

Additionally, deletes cause a LOT of writes to the binary log. When the delete completes, the query/results of the delete are committed to the binary log,

@fideloper
fideloper / client.hcl
Created August 5, 2020 16:40
Nomad job spec for jippi/go-metadataproxy
View client.hcl
# Nomad 0.12.0+ requires volumes to be enabled
# within the client configuration
plugin "docker" {
config {
volumes {
enabled = true
}
}
}
View chipper_box.md

The pipeline could use a selection of pre-set features.

Goals

  1. Give the pipeline more polish by allowing users to "build" their pipeline (preset items they can run)
  2. Make Chipper feel more integrated with services such as AWS, Forge, Envoyer, Vapor
  3. Make it easier to script more complex items such as conditional actions, or creating build artifacts

It might be nice to have a way to have icons for each as well - PHP, NodeJS, Composer, Dusk, Vapor, etc etc etc.

View prom.yml
groups:
- name: node_rules
rules:
- record: instance:node_cpu:avg_rate5m
expr: 100 - avg (irate(node_cpu_seconds_total{job="helpspot-cloud", mode="idle"}[5m])) by (instance) * 100
@fideloper
fideloper / coverage.php
Created April 1, 2020 13:14
php coverage
View coverage.php
#!/usr/bin/env php
<?php
// coverage-checker.php
$inputFile = $argv[1];
$percentage = min(100, max(0, (int) $argv[2]));
if (!file_exists($inputFile)) {
throw new InvalidArgumentException('Invalid input file provided');
}