Skip to content

Instantly share code, notes, and snippets.

@luke
luke / gate
Created January 3, 2019 11:03
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include "ets_sys.h"
#include "osapi.h"
#include "gpio16.h"
void ICACHE_FLASH_ATTRgpio16_output_conf(void){ WRITE_PERI_REG(PAD_XPD_DCDC_CONF, (READ_PERI_REG(PAD_XPD_DCDC_CONF) & 0xffffffbc) | (uint32)0x1); // mux configuration for XPD_DCDC to output rtc_gpio0
@luke
luke / staggered_rollout.js
Created October 10, 2018 08:22
quick function to help with staggered rollout of features or updates
// example staggering rollout over 24 hours, timeToStart is date timestamp ms.
// if(staggeredRollout(timeToStart,timeToStart+(1000*60*60*24), 24, customerId)){ someNewThing() }
function staggeredRollout(startAt, endAt, stages, input, now){
now = now || (new Date()).getTime();
if( now < startAt ) return false;
if( now >= endAt ) return true;
var hash = strToHashCode(input);
function onTimezoneOffsetChange(changeHandler){
function getTimezoneOffset(){
const d = new Date()
return d.getTimezoneOffset()
}
function getNextHourOffset(){
const d = new Date()
return (1000*60*60) - (((d.getMinutes()*60) + d.getSeconds()) * 1000) + d.getMilliseconds()
<html><body><iframe sandbox="allow-forms allow-scripts allow-same-origin"
src="https://apps.screen.cloud/youtube/index.html?url=M7lc1UVf-VE"></iframe></body></html>
<!DOCTYPE html>
<html>
<body>
<div id="player"></div>
<script>
// code taken from yt iframe api example
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: Mailvelope v1.2.2
Comment: https://www.mailvelope.com
xsFNBFYo5qUBEACigdbnvIeCSvWnyeX2Vea10OxWkkBk06Y8KCFWTOXRGq4O
8U9gU3/sX4ub4Fu5wkRlplPEII0xujE0ZhRBrzSheGbS79yQsn1hGelLqV3x
djJjSER830FcZyELy5iCc0gqD3VJ3bORUm12zradzCpJU2px1w2yaJIuWiaE
Jg6GQgEu9ftJkycS8tqd9sR8GSLXbSgtbiVuB/8NGlhsob5Qz7Udf6/5uI8D
3G8OSk5evorVUHwc/XOfBgyq/mG4ygBNINR2f8wGMuZBOY1EEtwHwGjmoV5o
ABqVnszOMwfZnVAAkcekP/XqEGC+Oygw+kc8uC3jsZEETJ4IvWp1avjQk7BL
// copy from node 0.12 source lib folder and add to your package.json
//
// "browser": {
// "net": "chrome-net",
// "http": "./http/http.js",
// "_http_agent": "./http/_http_agent.js",
// "_http_client": "./http/_http_client.js",
// "_http_common": "./http/_http_common.js",
// "_http_incoming": "./http/_http_incoming.js",
import math
import logging
import time
import random
from multiprocessing import Process
from redis import StrictRedis, WatchError
"""
RedisSortedSetDelayedQueue - uses zset to keep maintain a time ordered queue of items
"""
@luke
luke / redis_lua_smembers_hgetall_list.lua
Created July 3, 2014 19:21
lua script to get members of set then return hash for each key
EVAL "local members = redis.call('smembers',KEYS[1])\n local results = {}\n for index,key in ipairs(members) do results[index] = redis.call('hgetall',KEYS[1] .. '/' .. key) end \n return results" 1 accounts
@luke
luke / test_devices_list.py
Created November 20, 2013 20:38
Make list of uuids not already in provisioning profile. For copying UUIDs out of testflight and into apple.
import re
testflight_file = './testflight_devices.txt'
testflight_data = open(testflight_file).read()
apple_file = './apple_devices.txt' # copy and paste from provisioning portal
apple_data = open(apple_file).read()
apple_uuids = re.findall('[a-z0-9]{30,50}',apple_data)