Skip to content

Instantly share code, notes, and snippets.

View chrisfcarroll's full-sized avatar
🤹‍♂️
🌍...☕...🖥️...⏳...⛪...🛌🏼

Chris F Carroll chrisfcarroll

🤹‍♂️
🌍...☕...🖥️...⏳...⛪...🛌🏼
View GitHub Profile
@chrisfcarroll
chrisfcarroll / strings.cs
Last active December 11, 2021 17:59
Extended alternatives for <c>string.Join(…)</c> methods to omit null, empty, or whitespace-only items
/// <summary>Extended alternatives for <c>string.</c> methods</summary>
// ReSharper disable once InconsistentNaming
public static class strings
{
/// <summary>Joins the non-null items of <paramref name="values"/>, putting <paramref name="separator"/>
/// between each item.</summary>
/// <param name="separator">Separator is only used if <paramref name="values"/> has at least
/// 2 non-null elements.</param>
/// <param name="values">The values to join.</param>
/// <typeparam name="T"></typeparam>
@chrisfcarroll
chrisfcarroll / Install-EmptyUmbraco9.ps1
Last active July 2, 2021 20:04
Install-EmptyUmbraco9 for unattended install
#! /usr/bin/env pwsh
Param(
[string]$installerName="Installer",
[Parameter(Mandatory=$true)][string]$installerPassword,
[Parameter(Mandatory=$true)][ValidateScript(
{try{[System.Net.Mail.MailAddress]$_;return $true;}catch{return $false}})]
[string]$installerEmail,
[string]$dbServer=$env:SQLCMDSERVER,
[string]$dbDatabaseName="Umbraco",
#! /usr/bin/env pwsh
<#
.SYNOPSIS
Create a Postgres application database and roles for owner, application, and application_readonly
.DESCRIPTION
Create a Postgres application database and create roles for owner, application, and application_readonly.
- the owner role has no login. the user that runs this script will be assigned to that role
@chrisfcarroll
chrisfcarroll / scram_postgres_password.py
Last active May 15, 2021 22:43 — forked from jkatz/encrypt_password.py
Method to create password hashes for PostgreSQL 10+
#! /usr/bin/env python3
# Taken from https://blog.crunchydata.com/blog/how-to-upgrade-postgresql-passwords-to-scram
help= \
"""
Generate scram-sha-256 password hashes / verifiers for PostgreSQL 10+
Usage:
scram_postgres_password Username1 Password1 [, ... UsernameN PasswordN ]
@chrisfcarroll
chrisfcarroll / force-integrated-graphics.sh
Created December 31, 2018 18:45
force-integrated-graphics.sh for MacBook 17" 2010–2011 With Broken Radeon graphics chip
#! /bin/sh
kextoffdir="/kextoff"
loginhookscript="/Library/LoginHook/LoadDelayedAMDRadeonX3000kext.sh"
echo "---------------------------------------------------------------
Run this script twice.
First, from a Recovery Mode commandline to run csrutil disable.
Second, after rebooting to a Single user mode commandline, with / partition mounted writeable, to do all the things that must be done with csrutil status= disabled
@chrisfcarroll
chrisfcarroll / HtmlPartialSection.cs
Last active November 6, 2018 19:46
Razor sections for Partials. Html.PartialSection() and Html.RenderPartialSection() offer sections accessible to partial pages, with optional de-duplication.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
namespace Helpers
{
/// <summary>Create or Render a <see cref="Helpers.PartialSection"/>s via the current <see cref="HtmlHelper"/></summary>
@chrisfcarroll
chrisfcarroll / DeSerializeExcludingFieldsContractResolver.cs
Last active November 5, 2018 13:25
ContractResolvers for Newtonsoft.Json which can ignore fields either by predicate or by name
using System;
using System.Reflection;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
public class DeSerializeExcludingFieldsContractResolver : DefaultContractResolver
{
readonly Type type;
readonly Predicate<JsonProperty> ignoreProperty;
@chrisfcarroll
chrisfcarroll / WebClientBaseAndWrapper.cs
Last active November 15, 2018 17:31
.Net WebClientBase, WebClientWrapper and WebClientFake for a testable System.Net.WebClient
public abstract class WebClientBase : IDisposable
{
WebHeaderCollection headers = new WebHeaderCollection();
public abstract void UploadValuesAsync(Uri address, string method, NameValueCollection data);
public abstract void UploadValuesAsync(Uri address, string method, NameValueCollection data, object userToken);
public abstract byte[] UploadData(Uri address, string method, byte[] data);
public abstract byte[] UploadFile(Uri address, string method, string fileName);
public abstract byte[] UploadValues(Uri address, string method, NameValueCollection data);
@chrisfcarroll
chrisfcarroll / StringMaskedExtension.cs
Last active November 5, 2018 12:36
String.Masked() extension method
public static class StringExtensions
{
/// <summary>
/// Overwrite the right-most fraction 1/<paramref name="maskFractionOneOver"/> of <paramref name="str"/> with <paramref name="maskCharacter"/>
/// </summary>
/// <param name="str"></param>
/// <param name="maskFractionOneOver"></param>
/// <param name="maskCharacter"></param>
/// <example>"1234".Masked() => "123*"</example>
/// <returns>the masked string</returns>
@chrisfcarroll
chrisfcarroll / Uninstall-Programs-Or-Features.ps1
Last active September 28, 2022 12:09
PowerShell commandline Uninstall-Programs-Or-Features.ps1
<#
.SYNOPSIS
Uninstall one or more Windows Program or Feature, by name or regular expression.
.DESCRIPTION
Lists Programs And Features installed on the current machine which match
the -matchingName parameter and then, after force or confirmation, uninstalls them.
Examples