Skip to content

Instantly share code, notes, and snippets.

View blizzardengle's full-sized avatar

Christopher Keers blizzardengle

View GitHub Profile
@blizzardengle
blizzardengle / sqlite-debug.js
Created March 11, 2018 00:57
This is an updated copy of kripken's sql.js debug (un-minified) file found here: https://github.com/kripken/sql.js This version of the file has had the depreciated writeStringToMemory removed.
This file has been truncated, but you can view the full file.
// This prevents pollution of the global namespace
var SQL = (function () {
// The Module object: Our interface to the outside world. We import
// and export values on it. There are various ways Module can be used:
// 1. Not defined. We create it here
// 2. A function parameter, function(Module) { ..generated code.. }
// 3. pre-run appended it, var Module = {}; ..generated code..
// 4. External script tag defines var Module.
// We need to check if Module already exists (e.g. case 3 above).
// Substitution will be replaced with actual code on later stage of the build,
/**
* Used in the dev console to swap the studnets names from Last, First
* to First Last in a BYUI pictroal class list.
*/
var names = document.querySelectorAll('#classListTable tr td');
var tmp;
for( var x = 0; x < names.length; x++ ){
tmp = names[x].lastElementChild.innerHTML;
tmp = tmp.split(', ');
tmp = tmp[1] + ' ' + tmp[0];
@blizzardengle
blizzardengle / capture-table.js
Last active October 31, 2025 06:32
Capture Table
/**
* Extract data from an HTML table with flexible column selection and processing.
*
* @param {string} id - The table's HTML id attribute
* @param {string|number[]} columns - Column selection: "*" for all, "1-3" for range, "1,3,5" for specific, or array of column numbers (1-based)
* @param {Object} options - Configuration options
* @param {boolean} options.combine - Combine multiple cells into single string per row (default: false)
* @param {boolean} options.skipHeaders - Skip rows containing <th> elements (default: false)
* @param {number} options.skipRows - Number of rows to skip from the top (default: 0)
* @param {string} options.delimiter - Character(s) to separate cell data (default: '\t')
// Attempt to find the message list on this page.
var msgList = document.querySelector('#content .message-list .messages');
var scroller = document.querySelector('#content .message-list-scroller');
// If the list was found continue.
if( msgList && scroller ){
console.log('Active.')
var li = document.createElement('LI');
li.id = 'controls'
var html = '<label>Ignore last <input type="text" id="days" style="display:inline-block;"> days.</label><br>'
@blizzardengle
blizzardengle / dockcmd.sh
Last active May 12, 2020 16:57
Run common docker-compose commands from any sub-directory of a docker project.
#!/bin/bash
# Run common docker-compose commands from any sub-directory of a docker project
dockcmd(){
# Versions
local dockcmd_version="1.5.0"
local docker_version=$(docker --version | egrep -o "([0-9]{1,}\.)+[0-9]{1,}")
local dcompose_version=$(docker-compose --version | egrep -o "([0-9]{1,}\.)+[0-9]{1,}")
# Assign arguments
@blizzardengle
blizzardengle / classes.js
Last active March 26, 2022 00:23
Adds a global constant class that ES6 classes can register themselves with; useful for referencing dynamically named classes and so on.
/**
* Adds a global constant class that ES6 classes can register themselves with.
* This is useful for referencing dynamically named classes and instances
* where you may need to instantiate different extended classes.
*
* NOTE: This script should be called as soon as possible, preferably before all
* other scripts on a page.
*
* @class Classes
*/
@blizzardengle
blizzardengle / function.php
Last active January 11, 2024 07:56
Allows you to enqueue scripts as modules or import maps in WordPress using the built-in wp_enqueue_script function. You should add this code somewhere in your plugin or theme, most likely your functions.php file.
<?php
// If your PHP version is < 8
if ( ! function_exists( 'str_contains' ) ) {
/**
* Based on original work from the PHP Laravel framework.
*
* @author scm6079
* @link https://www.php.net/manual/en/function.str-contains.php#125977 Original Source
*
@blizzardengle
blizzardengle / print.js
Last active October 14, 2025 03:47
A simple logger class that allows printing console messages in color. Designed for node.js applications but usable in supported browsers as well.
/**
* Author: Christopher Keers | Caboodle Tech
* License: MIT
* Source: https://gist.github.com/blizzardengle/8147b6e7d8ffab2709ae2f79b7006b02
*/
class Print {
#enabled = true;
clear() {
@blizzardengle
blizzardengle / deep-merge.js
Created March 29, 2024 15:32
Deep merge two object together. Built this with AI and have no use for it anymore keeping around just in case.
/**
* Deep merge two objects together keeping unique keys from each object.
*
* @param {object} mergeIntoObj - The object to merge another object into.
* @param {object} mergeAndPrioritizeObj - The object to merge into mergeIntoObj. This object
* has priority when collisions occur.
* @returns
*/
const deepMerge(mergeIntoObj, mergeAndPrioritizeObj) => {
@blizzardengle
blizzardengle / win_http_serv_reconfigure.ps1
Created October 30, 2024 23:46
Windows HTTP & Print Spooler Port Conflict Resolution: This script ensures that port 80 remains open for other applications by moving the default Windows Print Service to a different port.
<#
.SYNOPSIS
Windows HTTP and Print Spooler Port Conflict Resolution Script
.DESCRIPTION
This script resolves port conflicts between Docker/Web services and the Windows Print Spooler
by reconfiguring the HTTP service to use port 5000 instead of 80. This allows both printing
and Docker to work simultaneously.
.NOTES