Skip to content

Instantly share code, notes, and snippets.

View johan's full-sized avatar

Johan Sundström johan

View GitHub Profile
@johan
johan / index.md
Created January 2, 2017 12:18
opower PG&E csv file cleanup

Usage

sh opower-csv-to-csv < pge_*.csv

Purpose

Take your PG&E csv data export (pge_electric_interval_data_NNNNNNNNNN_YY-MM-DD_to_YYYY-MM-DD.csv) for the date range you want,

@johan
johan / events.es5.js
Last active February 4, 2017 08:36
HAI 2017 events, as of 2016-12-22
'use strict';var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"])_i["return"]();}finally{if(_d)throw _e;}}return _arr;}return function(arr,i){if(Array.isArray(arr)){return arr;}else if(Symbol.iterator in Object(arr)){return sliceIterator(arr,i);}else{throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++){arr2[i]=arr[i];}return arr2;}else{return Array.from(arr);}}var deQuery=function deQuery(){var q=argu
@johan
johan / srt.js
Created December 21, 2016 07:17
A little subtitle file tweaking class
class SRT {
constructor(s) { this.setSubs(typeof s === 'string' ? SRT.decode(s) : s); }
toString() { return SRT.encode(this.subs); }
timeShift(dt) {
return new SRT(this.subs.map(s => Object.assign({}, s, {t: s.t + dt})));
}
getSubs() { return this.subs.map(o => Object.assign({}, o)); }
setSubs(subs) { this.subs = subs; return this; }
@johan
johan / controlfreak.js
Last active December 16, 2016 03:22
Convenience lib for the chrome extension "Control Freak", a light-weight Greasemonkey.
const scrape = (scraper) => {
let spec = 'dom' in scraper ? scraper : { dom: scraper };
on(spec).then((scraped) => {
console.info('on.dom scraped:', {scraper, scraped});
exportToPage({scraper, scraped, on});
evalInPage('on');
});
};
const exportToPage = (obj) => {
@johan
johan / cancelAll.js
Created December 11, 2016 20:31
A browser functionality fill-in I ended up writing and sharing on http://stackoverflow.com/questions/3141064/how-to-stop-all-timeouts-and-intervals-using-javascript to batch cancel javascript's basic deferred execution functions.
(function(deferFunctions) {
for (var setter in deferFunctions) (function(setter, clearer) {
var ids = [];
var startFn = window[setter];
var clearFn = window[clearer];
function clear(id) {
var index = ids.indexOf(id);
if (index !== -1) ids.splice(index, 1);
return clearFn.apply(window, arguments);
@johan
johan / alert.js
Created November 22, 2016 06:46
Somewhat improved version of Fake News Alert extension 0.1.2 from https://chrome.google.com/webstore/detail/fake-news-alert/aickfmgnhocegpdbfnpfnedpeionfkbh/related – to mark links directly at Facebook before you even click through them.
// alert.js
const stripes = document.createElement('div');
stripes.style.cssText = `
height: 20px;
width: 100%;
position: fixed;
z-index: 99999;
opacity: 0.7;
pointer-events: none;
// ==UserScript==
// @name Clear Facebook Notifications Once
// @description If you have multiple Facebook tabs open
// @match https://*.facebook.com/*
// @namespace https://github.com/johan/
// ==/UserScript==
const onStorageChange, onNotificationClick;
window.addEventListener('storage', onStorageChange = (e) => {
@johan
johan / README.md
Last active October 5, 2016 02:13
A pleasant chime ring tone
@johan
johan / .block
Created July 20, 2016 11:52 — forked from mbostock/.block
Sleep Cycles
license: gpl-3.0
@johan
johan / README.md
Last active February 22, 2025 00:29
RFC 5545 compliant (US) Facebook holiday iCal calendar Raw

Facebook US' recognized holidays are:

  • New Year’s Day
  • Martin Luther King Day
  • Presidents Day
  • Memorial Day
  • Independence Day
  • Labor Day
  • Thanksgiving Day
  • day after Thanksgiving