Skip to content

Instantly share code, notes, and snippets.

Making Luro

Dave Rupert davatron5000

Making Luro
View GitHub Profile
View southwestSort.js
var letters = ["q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m"];
function southwestSort( arr ) {
var a = arr.slice( 0, Math.floor(arr.length / 3) );
var b = arr.slice( Math.floor(arr.length / 3), Math.floor(arr.length / 3)*2 );
var c = arr.slice( Math.floor(arr.length / 3)*2, arr.length );
return a.sort().concat(b.sort()).concat(c.sort());

Every browser is the new IE (to me)

There's been a lot of talk lately about "the New IE". Heck, the Verge even tried to blame all their performance problems on it. There's also been a lot of great (and not-so great) criticism about it.

  IE/Edge Firefox Chrome Opera Safari Mobile Safari Opera Mini
<picture> X X X X
<svg><use> X X X
CORS Support for <use xlink:href> X X X X X X X
Service Worker X X X X X
davatron5000 / blur-validate.js
Created May 28, 2015
HTML5 Validation on blur()
View blur-validate.js
var inputs = document.querySelectorAll('input, textarea');
for(var i=0;i<inputs.length;i++) {
inputs[i].addEventListener('blur', function(){
if(!this.checkValidity()) {
} else {
View icon-grid.html
<div id="styleguide-icon-grid"></div>
<object data="/assets/icons.svg" id="svgembed" height=0; width=0></object>
var grid = document.querySelector('#styleguide-icon-grid');
var tmpl = '<div class="item"><svg class="icon"><use xlink:href="/assets/icons.svg#{id}"></use></svg><span>#{id}</span></div>';
function svgloaded() {
var svgEmbed = document.querySelector("#svgembed");
var svg = svgEmbed.getSVGDocument();
davatron5000 / gulpfile.js
Last active Aug 29, 2015
gulp.src ➡️ icons.json
View gulpfile.js
// I have a list SVG icons that I'm using svg-store on, but I'd also like to
// just throw out some JSON so I could loop through icons for my styleguide.
gulp.task('list-icons', function () {
// write list of matched filenames to icons.json
View gulp-svgstore.js
var cheerio = require('gulp-cheerio');
var svgmin = require('gulp-svgmin');
var svgstore = require('gulp-svgstore');
gulp.task('svgstore', function () {
return gulp
.pipe(svgstore({ fileName: 'icons.svg', prefix: 'icon-' }))
View もじれつ.swift
struct もじれつ: Printable {
let description: String
init(string: String) {
var mutableString = NSMutableString(string: string) as CFMutableString
if CFStringTransform(mutableString, nil, kCFStringTransformLatinHiragana, 0) == 1 {
self.description = mutableString as NSString
} else {
self.description = string

Things not being picked up by my critical CSS task that I have to manually update.

  • h1 - excusable, being used on another page
  • h2 - media-queries? - would need to confirm this.
  • .archive-list - maybe because only the top of the module is in-view, not the whole module?
  • @font-face included - slows the site down
  • pre - codeblocks on posts have long, unbreaking strings. This was causing first layout paint to be 1600px wide on mobile.

Some civic hack app ideas that I've been mulling around.

Map of child obesity by school district

In order to bring about continued awareness of child obesity and to bring school districts greater accountability about what they're doing to combat the epidemic, a map of each school district color coded by avg-BMI.

Fat-shaming school districts, basically.

Popular Vote App: Representative vs. Constituents

View passfail.js
var tds = document.querySelectorAll('td');
for(i=0;i<tds.length;i++) {
var td = tds[i];
var txt = td.textContent.trim();
if(txt == 'Yes') { = 'rgba(0,255,0,0.1)';
} else if(txt == 'No' ){ = 'rgba(255,0,0,0.1)';