Skip to content

Instantly share code, notes, and snippets.

View deanhume's full-sized avatar
🎮
Gaming

Dean deanhume

🎮
Gaming
View GitHub Profile
@deanhume
deanhume / offline-ga.js
Created August 2, 2016 09:15
Offline Google Analytics
importScripts('path/to/offline-google-analytics-import.js');
goog.offlineGoogleAnalytics.initialize();
// Implement any other service worker caching strategies appropriate for your web app.
@deanhume
deanhume / offline-swer.js
Created August 2, 2016 09:14
Offline SW example
function getFilenameFromUrl(path){
path = path.substring(path.lastIndexOf("/")+ 1);
return (path.match(/[^.]+(\.[^?#]+)?/) || [])[0];
}
this.addEventListener('fetch', event => {
if (event.request.mode === 'navigate' || (event.request.method === 'GET' && event.request.headers.get('accept').includes('text/html'))) {
event.respondWith(
fetch(event.request.url).catch(error => {
@deanhume
deanhume / caching-example.js
Created August 2, 2016 09:14
SW Toolbox caching example
toolbox.router.get('/beer/css/(.*)', global.toolbox.cacheFirst, {
cache: {
name: 'beer-stylesheets',
maxEntries: 10,
maxAgeSeconds: 604800
},
// Set a timeout threshold of 2 seconds
networkTimeoutSeconds: 4
});
@deanhume
deanhume / webpagetest-script.txt
Created July 5, 2016 12:20
WebPageTest scripting
logData 0
// bring up the login screen
navigate http://webmail.aol.com
logData 1
// log in
setValue name=loginId [email protected]
setValue name=password somepassword
@deanhume
deanhume / webpagetest-spof.txt
Last active July 6, 2016 14:45
WebPageTest SPOF
cdn3.optimizely.com
a.visualrevenue.com
www.google-analytics.com
pixel.quantserve.com
budgetedbauer.com
@deanhume
deanhume / firebase-auth.js
Created May 19, 2016 08:09
Firebase authentication store data
var messagesRef = new Firebase('https://brilliant-fire-3159.firebaseio.com/users');
var userId = 0;
// For user authentication
function authHandler(error, authData) {
if (error) {
console.log('Login Failed!', error);
} else {
// Set the gravatar
document.getElementById('gravatar').src = authData.password.profileImageURL;
@deanhume
deanhume / firebase-listener.js
Created May 19, 2016 08:08
Firebase listen to updates
messagesRef.limitToLast(10).on('child_added', function (snapshot) {
var data = snapshot.val();
var message = data.text;
if (message != undefined)
{
messageResults.value += '\n' + message;
}
});
@deanhume
deanhume / firebase-savedata.js
Created May 19, 2016 08:07
Firebase save data
var messagesRef = new Firebase('https://brilliant-fire-3159.firebaseio.com');
var messageField = document.getElementById('messageInput');
// Save data to firebase
function savedata(){
var message = messageField.value;
messagesRef.push({fieldName:'messageField', text:message});
messageField.value = '';
@deanhume
deanhume / save-data-header.js
Last active April 6, 2016 17:22
Save-Data header service worker
"use strict";
this.addEventListener('fetch', event => {
// Save Data support
if(event.request.headers.get('save-data')){
//Return smaller images
if (/\.jpg$|.gif$|.png$/.test(event.request.url)) {
let saveDataUrl = event.request.url.substr(0, event.request.url.lastIndexOf(".")) + '-savedata' + event.request.url.substr(event.request.url.lastIndexOf("."), event.request.url.length - 1);
@deanhume
deanhume / binarysearchrecursive.js
Last active August 28, 2017 09:43
A recursive binary search function
function binarySearch(sortedArray, searchValue, minIndex, maxIndex) {
'use strict';
var currentIndex;
var currentElement;
while (minIndex <= maxIndex) {
// Find the value of the middle of the array
var middleIndex = (minIndex + maxIndex) / 2 | 0;
currentElement = sortedArray[middleIndex];