Skip to content

Instantly share code, notes, and snippets.

View mattgaspar's full-sized avatar

Matt Gaspar mattgaspar

View GitHub Profile
pg.query(
"INSERT INTO testtable (id, name) SELECT * FROM UNNEST ($1::int[], $2::text[])",
[
[1, 2, 3],
["Jack", "John", "Jill"],
]
)
Source: https://github.com/brianc/node-postgres/issues/957#issuecomment-295583050
@mattgaspar
mattgaspar / DetermineBrowserTimezoneIsDST.js
Created October 24, 2017 22:53
Browser timezone/dst detection
var date = new Date();
var jan = new Date(date.getFullYear(), 0, 1);
var jul = new Date(date.getFullYear(), 6, 1);
// Offset is in minutes
var stdTimezoneOffset = Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
// Convert to local machine timezone for date object in PST
var timezoneDiffFromPST = stdTimezoneOffset - 480;
date += timezoneDiffFromPST * 60 * 60 * 1000;
@mattgaspar
mattgaspar / index.html
Created October 11, 2017 01:13
Load image using XMLHttpRequest
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<title>Promise example</title>
<link rel="stylesheet" href="">
Sort by key
Numbers/Dates
new Map([...map].sort((a, b) => a[0] - b[0]))
Strings
new Map([...map].sort((a, b) => +(a[0] > b[0]) || +(a[0] === b[0]) - 1))
Sort by an object property value
@mattgaspar
mattgaspar / app.html
Created August 29, 2017 01:58 — forked from Thanood/app.html
Aurelia-Materialize bridge input fields focus working
<template>
<div>
<md-input md-label="put some text here" md-value.bind="textValue" md-disabled.bind="disabledValue"></md-input><br />
You entered: ${textValue}<br />
<button md-button="flat: true;" md-waves class="accent-text" click.delegate="setText()">set text to something</button>
<button md-button="flat: true;" md-waves class="accent-text" click.delegate="setDisabled()">Toggle Input Disabling</button>
<md-input view-model.ref="inputElement" md-label="readonly - bound to the field above" md-value.bind="textValue" md-readonly.bind="true"></md-input><br />
</div>
<div>
@mattgaspar
mattgaspar / app.html
Created August 19, 2017 02:38 — forked from jdanyow/app.html
Aurelia Radio Select
<template>
<require from="./radio-select"></require>
<style>
form > label {
display: block;
margin-top: 10px;
}
</style>
@mattgaspar
mattgaspar / app.html
Created December 1, 2016 18:42 — forked from jdanyow/app.html
Aurelia Gist
<template>
<h1>${message}</h1>
</template>
@mattgaspar
mattgaspar / gist:532fde7361c407636e37
Created March 11, 2016 08:49
Aurelia Filtered Bind
<select ref="mySelect" filtered.bind="sites | filter: { project: project }">
<option if.bind"mySelect.filtered.length === 0">No Sites Available</option>
<option repeat.for="site of mySelect.filtered">${site.name}</option>
</select>
@mattgaspar
mattgaspar / jSigHelper.js
Created November 12, 2015 08:15
jSignature helper - Code pulled from jSignature plugins for use in server side javascript to convert base30 to SVG
jSigHelper = (function() {
var chunkSeparator = '_'
, charmap = {} // {'1':'g','2':'h','3':'i','4':'j','5':'k','6':'l','7':'m','8':'n','9':'o','a':'p','b':'q','c':'r','d':'s','e':'t','f':'u','0':'v'}
, charmap_reverse = {} // will be filled by 'uncompress*" function
// need to split below for IE7 (possibly others), which does not understand string[position] it seems (returns undefined)
, allchars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX'.split('')
, bitness = allchars.length / 2
, minus = 'Z'
, plus = 'Y'