Skip to content

Instantly share code, notes, and snippets.

View dirv's full-sized avatar

Daniel Irvine dirv

View GitHub Profile
@dirv
dirv / svelteTestHarness.js
Last active October 20, 2021 13:30
Svelte testing harness
import { JSDOM } from "jsdom";
import { bind, binding_callbacks } from "svelte/internal";
export const setDomDocument = () => {
const dom = new JSDOM(
"<html><body></body></html>",
{ url: "https://localhost" });
global.document = dom.window.document;
global.window = { ...global.window, ...dom.window };
global.navigator = dom.window.navigator;

Keybase proof

I hereby claim:

  • I am dirv on github.
  • I am d_ir (https://keybase.io/d_ir) on keybase.
  • I have a public key ASCvgaJi7mZEb_GPKApzZuvQnD9eW17Nr5Mpgai8JR533go

To claim this, I am signing this object:

@dirv
dirv / non-gendered-names.txt
Created December 3, 2018 09:21
List of non-gendered names
Aalijah
Aaren
Aarin
Aaryn
Abrar
Abriel
Adair
Adama
Addis
Adel
@dirv
dirv / find-non-gendered-names.clj
Created December 3, 2018 09:17
Figure out the most popular non-gendered names from https://www.ssa.gov/oact/babynames/limits.html
(def current-dir (clojure.java.io/file "."))
(defn- read-csv-entry [line]
(let [[first-name gender number] (clojure.string/split line #",")]
{first-name {gender (Integer. number)}}))
(defn read-file [lines]
(map read-csv-entry (filter #(not= % "") (clojure.string/split lines #"\r\n"))))
(defn merge-val [val-a val-b]
@dirv
dirv / specHelper.js
Created January 18, 2018 08:46
Standard Jasmine/jsdom spec helper
import { JSDOM } from 'jsdom'
resetDom()
export function resetDom(windowUrl) {
global.window = new JSDOM('', {url: windowUrl}).window
global.document = global.window.document
global.window.opener = windowOpenerDummy()
global.navigator = global.window.navigator
window.fetch = () => {json: () => ''}
@dirv
dirv / anonymize.sh
Created February 3, 2017 15:35
Anonymize Git repos and pull them into our own
#!/bin/sh
# $1 - new identifier to use
# $2 - repo to clone
IDENTIFIER=$1
SOURCE_REPO=$2
DEST_DIR=`pwd`
# Step 1 - Make temporary directory
@dirv
dirv / coinChangerWithDict.elm
Created January 14, 2017 16:35
Coin Changer in Elm, half-way converted to Dict
import Dict
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (onInput)
import String
main =
beginnerProgram { model = model, view = view, update = update }
@dirv
dirv / coinChangerWithDict.elm
Created January 14, 2017 16:35
Coin Changer in Elm, half-way converted to Dict
import Dict
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (onInput)
import String
main =
beginnerProgram { model = model, view = view, update = update }
@dirv
dirv / coinChangerWithArrays.elm
Last active January 14, 2017 16:34
Coin changer in Elm
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (onInput)
import String
main =
beginnerProgram { model = model, view = view, update = update }
-- MODEL
@dirv
dirv / life.rb
Created May 27, 2015 16:09
Drawing faces on a screen as example of how GoL could look
require 'curses'
Curses.init_screen
Curses.curs_set 0
cells = []
total = Curses.lines * Curses.cols - 1
(0..total).each do |cell|
rand = Random.new.rand(0..2)