Skip to content

Instantly share code, notes, and snippets.

View GuyPaddock's full-sized avatar

Guy Elsmore-Paddock GuyPaddock

View GitHub Profile
@GuyPaddock
GuyPaddock / results.txt
Created December 30, 2019 22:02
How array_merge() compares to the + operator when working with different array types
On PHP 7.2.24-0ubuntu0.18.04.1 (cli) (built: Oct 28 2019 12:07:07) ( NTS ):
Result of combining:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
...with:
@GuyPaddock
GuyPaddock / results.txt
Last active December 18, 2019 14:57
How array_reduce() and array_map() Behave with Associative Arrays in PHP
On PHP 7.2.24-0ubuntu0.18.04.1 (cli) (built: Oct 28 2019 12:07:07) ( NTS ):
Array
(
[a] => ABC: 1
[b] => ABC: 2
)
,1,2
@GuyPaddock
GuyPaddock / results.txt
Last active December 18, 2019 14:55
How Static Variables Work with Inheritance in PHP
On PHP 7.2.24-0ubuntu0.18.04.1 (cli) (built: Oct 28 2019 12:07:07) ( NTS ):
ClassA = 1576680836
ClassA = 1576680836
ClassA = 1576680838
ClassA = 1576680838
ClassA = 1576680840
ClassA = 1576680840
ClassX = 1576680842
@GuyPaddock
GuyPaddock / resurrect.php
Last active September 18, 2019 14:45
Resurrecting an Unsaved Drupal 8 Node from the Database using Devel
<?php
// NOTE: Node previews expire after 7 days. Be sure to use this method to extract the desired data before then.
// IMPORTANT: Set this to the user ID of the person who was creating/lost the node.
$user_id = 1;
// IMPORTANT: Set this to the UUID that appeared in the node preview URL.
// This value is from a URL that looked like this:
// https://my-site/node/preview/ed4eaac0-3c32-427e-860f-6ce8fc79c3b2/full
$preview_id = 'ed4eaac0-3c32-427e-860f-6ce8fc79c3b2';
@GuyPaddock
GuyPaddock / array_contains.sh
Created July 2, 2019 03:38
Check if a value is in an array in Bash
##
# Determine if a given element exists in an array.
#
# Based on:
# https://stackoverflow.com/a/11525897/4342230
#
# @param string $1
# The value to look for (the "needle").
# @param string... $2...
# The array of values to search (the "haystack").
@GuyPaddock
GuyPaddock / instructions.md
Last active September 24, 2023 08:05
Creating default Windows Theme

Introduction

This is a brief snippet for Windows 10 admins that want to make a Windows theme the default for new users without enforcing it via Group Policy.

Instructions

  1. Download and install the desired theme from the Windows Store (or create your own).
  2. Find the theme under %USERPROFILE%\AppData\Local\Microsoft\Windows\Themes\.
  3. Move .theme file to %SystemRoot%\Resources\Themes.
  4. Move backgrounds into %SystemRoot%\Resources\Themes\THEME_NAME\DesktopBackground. Any other theme files (like sounds, etc) should be copied to appropriate folders under %SystemRoot%\Resources\Themes\THEME_NAME.
  5. Open .theme file up for editing.
  6. Remove ImagesRootPIDL setting under Slideshow section of the file.
@GuyPaddock
GuyPaddock / print-time-and-checksum.sh
Created May 3, 2019 01:59
Calculate checksum over kubectl bash without timing out
#!/usr/bin/env bash
(while true; do date; sleep 1; done) &
sha1sum * | tee checksums.txt
@GuyPaddock
GuyPaddock / split_zip.sh
Last active March 18, 2019 15:22
Split a ZIP archive for Drupal Feeds Fetcher Archive + CSV into separate archives < 100 MB each (needed for Pantheon)
#!/usr/bin/env bash
##
# @file
# Asset Zip Splitter
#
# Splits a ZIP archive containing the following file structure into separate
# archives that contain no more than 100 MB each:
# - *.csv (CSV files that reference image files)
# - images/ (a folder of images referenced by the image files)
@GuyPaddock
GuyPaddock / backup.sh
Last active December 11, 2018 19:18
Crude HP Touchpad WebOS Backup Script (run with `nohup` for best results over SSH; errors appear in errors.log)
#!/usr/bin/env sh
cd /media/cryptofs
tar -cvpjf webos-backup.tbz2 \
--exclude=/proc \
--exclude=/media/internal \
--exclude=/tmp \
--exclude=/dev \
--exclude=/sys \
--exclude=/var/run \
--exclude=/media/cryptofs/webos-backup.tbz2 \
@GuyPaddock
GuyPaddock / HOWTO.md
Last active December 23, 2020 23:46
WIP: Configure RRAS on Server 2016 when Anywhere Access VPN is Enabled

If you enable Anywhere Access VPN in WSE 2016, you will no longer be able to access RRAS admin UI. The message "Legacy mode is disabled" appears. This is because Access Anywhere configures the VPN in WS in a way that cannot be represented in the legacy UI. This makes it nearly impossible to setup other RRAS functionality like NAT or RAS, and there does not appear to be PowerSell cmdlets to address these gaps.

As a workaround, do not use Anywhere Access VPN. Instead, configure VPN manually in the RRAS admin UI. If you need to enable NAT + VPN, you will need to take special care to configure NAT first. For some reason, configuring NAT + VPN in one step leads to the NAT not functioning properly.