Skip to content

Instantly share code, notes, and snippets.

function getMicroDataFromElement(element) {
element = element || document.body
function descendToAttribute(scope, attribute) {
return [].slice.apply(scope.children).reduce(function(props, child) {
return props.concat(
child.hasAttribute(attribute) ? [child] : descendToAttribute(child, attribute)
)
}, [])
}
1:00
one o'clock
2:05
five past two
3:10
ten past three
4:15
const express = require("express");
const cheerio = require("cheerio");
const httpism = require("httpism");
if (process.env.PORT) {
startApp({ port: process.env.PORT, fetchCities })
} else {
module.exports = startApp
}
@joshski
joshski / index.js
Created October 22, 2017 10:36
requirebin sketch
var hyperdom = require('hyperdom')
var h = hyperdom.html
class App {
render() {
return h('.container',
h('#example',
h('div.foo div', h('input[type=submit]'))
),
h.component({
@joshski
joshski / countdown-timers.js
Created March 15, 2017 08:45
countdown-timers
const assert = require('assert')
const lolex = require('lolex')
class CountdownTimerWithSetTimeout {
countdownFrom(n, element) {
element.innerText = n
setTimeout(() => {
n--
element.innerText = n
if (n > 0) {
window.grecaptcha = {
getResponse: function() {
return 'FAKE-RECAPTCHA-RESPONSE'
},
reset: function() {
console.log("FAKE-RECAPTCHA-RESET", arguments)
},
render: function() {
@joshski
joshski / stateful-promise.js
Last active September 2, 2016 09:41
stateful-promise
/*
# stateful-promise
Encapsulates a repeatable asynchronous operation, and exposes the state of the
current invocation.
```
model.documents = new StatefulPromise(() =>
http.get('/documents').then(response => response.body);
);
@joshski
joshski / index.js
Created August 9, 2016 08:01
requirebin sketch
var plastiq = require('plastiq');
var h = plastiq.html;
function render(model) {
return h('form',
renderFieldWithPlaceholder('First name', [model, 'firstName']),
renderFieldWithPlaceholder('Last name', [model, 'lastName']),
h('pre', JSON.stringify(model))
);
}
@joshski
joshski / index.js
Last active July 24, 2016 18:43
requirebin sketch
var browserMonkey = require('browser-monkey');
var builder = require('promise-builder');
function append(html) { document.body.innerHTML += '<p>' + html + '</p>'; }
append('<div id="x"><button id="A">A</button></div>');
append('<div id="y"><button id="B">B</button></div>');
append('<div id="z"><button id="C">C</button></div>');
function apiForScope(scope) {
@joshski
joshski / elastic-multi-field-with-stemming.sh
Last active July 5, 2016 11:34
Elasticsearch multi-field search with stemming
echo
echo "DELETE INDEX"
echo
curl -w "\r\n" -X DELETE http://localhost:9200/temp-index
echo
echo "CREATE MAPPINGS"
echo
curl -w "\r\n" -X POST http://localhost:9200/temp-index -d '{"mappings":{"asset":{"properties":{"name":{"type":"string","analyzer":"snowball"},"description":{"type":"string","analyzer":"snowball"}}}},"settings":{}}'