Skip to content

Instantly share code, notes, and snippets.


Derek Gray tuespetre

View GitHub Profile
View index.html
<!DOCTYPE html>
<meta charset="utf-8"/>
<script src=""></script>
<script src="./suite.js"></script>
<h1>Open the console to view the results</h1>
tuespetre / repro.html
Created Dec 7, 2016
Repro of a WebKit bug with iOS 10 Safari
View repro.html
<!DOCTYPE html>
<meta name="viewport" content="width=device-width" />
.hover-me:hover {
color: red;
tuespetre / parent-node.js
Created Oct 24, 2016
A polyfill for the ParentNode interface
View parent-node.js
(function() {
var polyfill = function(prototype)
if (!('firstElementChild' in prototype)) {
Object.defineProperty(prototype, 'firstElementChild', {
get: function() {
var nodes = this.childNodes;
var length = nodes.length;
var current;
for (var i = 0; i < length; i++) {
tuespetre / template-polyfill.js
Created Oct 21, 2016
Allows you to use templates for custom elements in IE11. Wrote this to be able to use webcomponents/shadycss
View template-polyfill.js
(function (document) {
if ('content' in document.createElement('template')) {
Object.defineProperty(HTMLUnknownElement.prototype, 'content', {
enumerable: false,
configurable: true,
get: function() {
if (this.localName !== 'template') {
tuespetre / example.sql
Last active Oct 4, 2018
An attempt at mimicking Postgresql's LISTEN/NOTIFY functionality in SQL Server, using Service Broker
View example.sql
// Worker process:
EXEC [notifications].[Listen] N'something-happened', 5000
// Some other process:
EXEC [notifications].[Notify] N'something-happened'
tuespetre / Extensions.Tasks.cs
Last active Jun 27, 2016
Extensions for background tasks inside of a .NET core web app
View Extensions.Tasks.cs
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace Microsoft.AspNetCore.Builder
public static class WebApplicationBackgroundTaskExtensions
tuespetre /
Last active Mar 2, 2016
A snippet to use for AJAX; robustness in the face of 401 and other errors

Handles 401 errors for OAuth users following the 'code flow' (redirects) and notifies the user if there is a fatal error. You wouldn't want the server giving your users 401s outright though -- only when the request is AJAX (X-Requested-With: XMLHttpRequest.)

Uses jQuery (obviously) as well as Bootstrap modals. I'm not using PJAX just yet but I will include it when I do.

In the following example, I've placed the following elements as the last children of the <body> element. Note the addition of the empty data-remote attribute on #dynamic-modal -- this prevents Bootstrap from performing a redundant load the first time the modal is used.

<div class="modal fade special" id="error-modal" tabindex="-1" role="dialog">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
tuespetre /
Last active Nov 10, 2016
Setting up powershell properly :P
  1. Install Ps-Get:

(new-object Net.WebClient).DownloadString("") | iex

  1. Install posh-git:

Install-Module posh-git

  1. Edit or create %userprofile%/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1:
tuespetre / Set-AppPoolEnvVariable.ps1
Last active Aug 9, 2018
A PowerShell cmdlet for setting environment variables for AppPoolIdentity users
View Set-AppPoolEnvVariable.ps1
function global:Set-AppPoolEnvVariable {
param (
[string]$appPool = $(Read-Host "Application Pool"),
[string]$varName = $(Read-Host "Variable name"),
[string]$varValue = $(Read-Host "Variable value")
$sec = "System.Security.Principal";
$acct = New-Object "$sec.NTAccount" -ArgumentList "IIS AppPool\$appPool";
$sid = $acct.Translate([System.Type]::GetType("$sec.SecurityIdentifier")).Value;