Skip to content

Instantly share code, notes, and snippets.

const fs = require('fs');
const path = require('path');
const PNG = require('pngjs').PNG;
const EPD = require('rpi-gpio-epaper');
function readImage(imagePath) {
return new Promise((resolve, reject) => {
fs
.createReadStream(imagePath)
.pipe(new PNG())
@dbushell
dbushell / rpi-gpio-epaper-full-picture.js
Created October 2, 2017 07:45
rpi-gpio-epaper full picture example
const fs = require('fs');
const PNG = require('pngjs').PNG;
const EPD = require('rpi-gpio-epaper');
function readImage(imagePath) {
return new Promise((resolve, reject) => {
fs
.createReadStream(imagePath)
.pipe(new PNG())
.on('parsed', function() {
@dbushell
dbushell / steps.txt
Last active November 23, 2015 10:17
WordPress local development (MAMP)
Easy steps for cloning a live WordPress site for local development with MAMP. Am I missing anything?
1. add new MAMP server
2. download all files
3. export MySQL database
4. import SQL to MAMP via command line:
/Applications/MAMP/Library/bin/mysql --host=localhost -uroot -p dbname < ~/Downloads/database.sql
5. update: wp-config.php
@dbushell
dbushell / gist:3f50c37351bffca47814
Created June 12, 2015 08:42
Proxy an Express static site and rewrite all content URLs to localhost
var http = require('http'),
cheerio = require('cheerio'),
express = require('express');
module.exports = plugin;
function plugin(grunt)
{
grunt.registerTask('dbushell_server', 'dbushell.com', function() {
@dbushell
dbushell / gist:beb25b8352ed896d85d4
Created March 23, 2015 11:38
Poll Stylesheets until they exist in document.styleSheets
var stylesheets = Array.prototype.slice.call(document.querySelectorAll('link[href*=".css"]'))
var sheets = document.styleSheets;
function pollSheets() {
var i, j, load_count = 0;
for (i = 0; i < stylesheets.length; i++) {
for (j = 0; j < sheets.length; j++) {
// check if stylesheet exists in document.styleSheets
if (sheets[j].href && sheets[j].href.indexOf( stylesheets[i].href ) > -1) {
@dbushell
dbushell / gist:fec0ba804e4f06c46d4d
Created March 16, 2015 09:16
Fake links in jQuery, useful for making whole elements clickable while the actual <a> is smaller inside.
$(document).on('click', '[data-href]', function(e)
{
var t = e.target;
if (t && t.nodeType === 1 && t.nodeName.toLowerCase() === 'a') {
return;
}
window.location.href = $(e.currentTarget).data('href');
});
<?php
add_action('ninja_forms_display_js', 'dbushell__ninja_forms_display_js');
add_action('ninja_forms_display_css', 'dbushell__ninja_forms_display_css');
function dbushell__ninja_forms_display_js()
{
if (is_admin()) {
return;
}
// http://jasonwyatt.tumblr.com/post/10481498815/how-to-correctly-debounce-a-javascript-function
function debounce(fn, debounceDuration)
{
debounceDuration = debounceDuration || 100;
return function(){
if(!fn.debouncing){
var args = Array.prototype.slice.apply(arguments);
fn.lastReturnVal = fn.apply(window, args);
fn.debouncing = true;
@dbushell
dbushell / htmlizr.js
Last active December 15, 2015 20:19
Grunt task to build HTML templates with includes (original version: https://gist.github.com/dbushell/5186122)
/*!
*
* Copyright (c) David Bushell | @dbushell | http://dbushell.com/
*
*/
var fs = require("fs"),
path = require("path");
module.exports = function(grunt)
@dbushell
dbushell / gist:5186122
Last active December 15, 2015 02:19
Grunt task to build HTML templates with includes (work in progress!)
/*!
*
* Copyright (c) David Bushell | @dbushell | http://dbushell.com/
*
*/
var fs = require("fs"),
path = require("path");
module.exports = function(grunt)