Skip to content

Instantly share code, notes, and snippets.

View justinph's full-sized avatar

Justin Heideman justinph

View GitHub Profile
@justinph
justinph / .htaccess
Created January 22, 2014 19:45
How to tell Akamai to set the expires headers downstream
# This is what Akamai will see and respect
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 5 minutes"
</IfModule>
# This is what downstream clients will see and respect
<IfModule mod_headers.c>
Header set Edge-control "downstream-ttl=365d"
</IfModule>
@justinph
justinph / index.php
Last active August 29, 2015 13:57
Very simple script to allow for cycling through of images in a directory. Useful for viewing a bunch of screenshots or mockups in a folder somewhere on a LAMP host.
<?php
// get all images in dir
$imgs = glob("*.{jpg,png,gif,jpeg,svg,mng,PNG,JPG,JPEG,GIF,SVG,MNG}", GLOB_BRACE);
sort($imgs);
if (count($imgs) > 0){
$totalImgs = count($imgs);
}
@justinph
justinph / bootstrap.php
Created May 13, 2014 20:41
How to use laravel's Illuminate\Cache with Slim Framework
$cacheConfig = array(
'config' => array(
'cache.driver' => 'memcached',
'cache.connection' => null,
'cache.memcached' => array(
array('host' => '127.0.0.1', 'port' => 11211, 'weight' => 100),
),
@justinph
justinph / center mn counties.txt
Last active August 29, 2015 14:06
Center of all MN Counties
-92.722817065150579,44.40976199131358
-92.230230530518796,44.284276871133507
-92.09015218749218,43.674021935441147
-92.460295466512846,47.58592374749955
-92.40167525467632,44.00370542918499
-96.468091179952921,46.356592270770768
-92.74187022646349,46.120383787038293
-93.293584007629505,45.945007570630324
-96.095346898032901,47.871808918108371
-96.036691444877206,48.066466411321635
@justinph
justinph / .eslintrc
Created September 29, 2015 19:11
Updated eslint config to work with 1.0+, deals with `space-after-function-name` depreciation
{
"env": {
"browser": true,
"amd": true
},
"globals": {
"magnum": true,
"define": true,
"require": true,
"Modernizr": true,
@justinph
justinph / nightmare.js
Last active March 29, 2018 17:57
Webpage performance testing with nightmare.js
let Nightmare = require('nightmare');
let harPlugin = require('nightmare-har-plugin');
let options = {
waitTimeout: 1000
};
harPlugin.install(Nightmare);
let nightmare = Nightmare(Object.assign(harPlugin.getDevtoolsOptions(), options));
@justinph
justinph / nightmare.js
Created February 3, 2017 19:37
Webpage performance testing with nightmare.js - solo
let Nightmare = require('nightmare');
let harPlugin = require('nightmare-har-plugin');
let options = {
waitTimeout: 1000
};
harPlugin.install(Nightmare);
let nightmare = Nightmare(Object.assign(harPlugin.getDevtoolsOptions(), options));
@justinph
justinph / runtest.sh
Created February 3, 2017 19:37
Webpage performance testing with nightmare.js Raw
#!/bin/bash
for run in {1..40}
do
baseline=$(node nightmare.js 'http://www.nytimes.com/2016/test-page-1.html')
secondary=$(node nightmare.js 'http://www.nytimes.com/2016/test-page-2.html')
echo $baseline, $secondary
done
@justinph
justinph / index.js
Last active January 26, 2018 17:02
set cache headers on uploaded file via cloud function
const storage = require('@google-cloud/storage')();
exports.setMeta = function (event, doneCb) {
const file = event.data;
console.log(`Examing file ${file.name}.`);
const gcsBucket = storage.bucket(file.bucket);
const gcsFile = gcsBucket.file(file.name);
if (file.metageneration === '1') {