Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View mattandrews's full-sized avatar

Matt Andrews mattandrews

View GitHub Profile
@mattandrews
mattandrews / hello-world.ts
Created February 22, 2024 14:54
Hello World in Typescript
let message: string = 'Hello, World!';
console.log(message);
const got = require('got'); // HTTP request client
const { CONTENT_API_URL, CONTENT_API_SANDBOX_URL } = require('./urls');
class ContentApiClient {
constructor() {
this.API_ENDPOINT = CONTENT_API_URL;
this.queryContentApi = null;
}
@mattandrews
mattandrews / averages.sql
Created July 8, 2019 11:36
Get average votes for yes, month-by-month
select DATE_FORMAT(createdAt, "%Y-%m-01") AS month, count(choice) as votesTotal,
(SELECT count(choice)
FROM survey
WHERE choice = 'no'
AND YEAR(createdAt) = YEAR(month) AND MONTH(createdAt) = MONTH(month)
) AS numNoVotes,
(SELECT 100 - numNoVotes / count(choice) * 100) AS percentageVotedYes
from survey
GROUP BY DATE_FORMAT(createdAt, "%Y-%m-01")
@mattandrews
mattandrews / assetfix.js
Created March 1, 2019 15:59
Find hardlinked assets in SQL dumps and rename them
#!/usr/bin/env node
'use strict';
const _ = require('lodash');
const mysql = require('mysql');
require('dotenv').config();
const db = mysql.createConnection({
host: 'localhost',
user: 'root',
@mattandrews
mattandrews / models.py
Created January 13, 2018 15:10
Django thumbnails for admin
def resize_images(image_field):
pathname, filename = path.split(image_field.path)
img_file = Image.open(image_field.path)
# Convert to RGB
if img_file.mode not in ('L', 'RGB'):
img_file = img_file.convert('RGB')
# Save a thumbnail file for each of the given dimensions,
# prefixed with med_, small_ etc
@mattandrews
mattandrews / on-interact.scss
Created July 24, 2017 14:54
on-interact Sass mixin
// use this where you'd otherwise use '&:hover'
// to get accessible styling for keyboard navigation too
@mixin on-interact {
&:active,
&:focus,
&:hover {
@content;
}
}
#!/usr/bin/env python
import sys
import boto
import boto.ec2
import boto.ec2.elb
import boto.rds
import pprint
import argparse
@mattandrews
mattandrews / snapchat.sh
Last active November 20, 2016 14:10
Scale, crop and trim videos for Snapchat
#!/bin/bash
# this script does four things:
#
# 1. detects any crop marks (black bars) on the source clip
# 2. uses those crop marks to trim the clip so it has no bars (semi-manual task)
# 3. scales the video up ands crops it (from the center) to snapchat size
# 4. trims the clip to 10s long (might make sense to do this step first?)
INPUT='vid.mp4'
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
function apiRequest(apiKey) {
var that = this;
var deferred = $.Deferred();
this.response = {};
function ajax() {
$.ajax({
var allStylesheets = document.styleSheets;
var classesUsed = [];
[].forEach.call(allStylesheets, function(sheet) {
for (var i = 0; i < allStylesheets.length; i++) {
try {
var sheet = allStylesheets[i];
for (var j = 0; j < sheet.cssRules.length; j++) {
classesUsed.push(sheet.cssRules[j].selectorText);
}