Skip to content

Instantly share code, notes, and snippets.

View rdpoor's full-sized avatar

R. Dunbar Poor rdpoor

View GitHub Profile
@rdpoor
rdpoor / .block
Last active June 22, 2023 22:15 — forked from mbostock/.block
Modifying a Force Layout (with comments)
license: gpl-3.0
@rdpoor
rdpoor / association.js
Created March 22, 2020 15:21
Efficiently maintain source => target associations.
// Efficiently maintain source => target associations.
// R. Dunbar Poor - March 2020
var Association = function() {
this._links_by_source = new Map();
this._links_by_target = new Map();
}
/**
* @brief Clear all associations
@rdpoor
rdpoor / ReadMe.md
Last active August 2, 2017 05:35
Minimal, Complete (within reason) and Verifiable example for https://stackoverflow.com/q/45450583/558639

Demonstration of "p5.serialserver leaking memory"

This gist contains the files to demonstrate the problem described in p5.serialserver leaking memory.

Description

Run the Arduino code

To run this, you'll need an "Arduino-like device" with a USB port capable of generating

@rdpoor
rdpoor / gist:dc7064c15d12f03e0207a897304ab553
Last active April 14, 2016 18:39
Walk a tree with Promises
// Walk a tree using Promises, where the act of fetching a node is asynchronous.
//
// This version visits the nodes in the expected order and returns a promise that
// is resolved when the last node is visited. (If you're here from the StackOverflow
// post, the original error was a missing return statement in the call to map())
"use strict";
var family_tree = {
"pops" : { name: "pops", children: ["chuck", "george", "pete"]},
@rdpoor
rdpoor / gist:5249186
Last active December 15, 2015 10:58
compilation failure of ruby-2.0.0-p0 under Mac OS X 10.8.3
Summary: a "standard build" of ruby-2.0.0-p0 under Mac OS X 10.8.3,
fails with an abort trap while linking miniruby
Compilation environment:
MacBook Pro
OS X 10.8.3
Xcode version 4.6.1 with command line tools
gcc version 4.2.1 (Based on Apple Inc. build 5658)
Commands:
@rdpoor
rdpoor / address_sequence.rb
Created March 1, 2013 03:53
Generate a sequence of fictitious US street addresses for FactoryGirl
FactoryGirl.define do
# generate a sequence of fake US street addresses, such as:
# 1001 Birch Boulevard, Clinton AK 52574, USA
sequence :address do |n|
# NB: the length of street_name, street_type, city, state arrays
# are all chosen to be relatively prime to generate maximal
# length sequences
street_number = 1000 + n
street_name = %w(Aspen Birch Cedar Dogwood Elm Ginkgo Hickory Ironwood
@rdpoor
rdpoor / name_sequence.rb
Last active December 14, 2015 09:08
Generate a sequence of fictitious names (first_name last_name) for FactoryGirl
FactoryGirl.define do
# Generate a fake name by composing a first and last name. Names
# taken from recent US Census lists.
sequence :name do |n|
first_names = %w( Aaron Abby Abdul Abe Abel Abigail Abraham Abram
Ada Adalberto Adam Adan Addie Adela Adele Adeline Adolfo Adolph
Adrian Adriana Adrienne Agnes Agustin Ahmad Ahmed Aida Aileen
Aimee Aisha Al Alan Alana Alba Albert Alberta Alberto Alden Aldo
@rdpoor
rdpoor / greenbutton.xml
Created January 18, 2013 17:09
Benchmarking data for nokogiri's #xpath method. Test using: doc = File.open(fname) {|f| Nokogiri::XML(f) } recs = doc.xpath('//meter:IntervalBlock//meter:IntervalReading', 'meter' => "http://naesb.org/espi") After it returns, recs.size should == 8759
This file has been truncated, but you can view the full file.
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='SDGE_Greenbutton_Style.xslt'?>
<feed xmlns="http://www.w3.org/2005/Atom" xsi:schemaLocation="http://naesb.org/espi espi.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id>urn:uuid:31824390-5ab8-4a6e-89ad-bd0e55ca3e96</id>
<title>Green Button Export</title>
<updated>2013-01-09T13:51:51-08:00</updated>
<entry>
<id>urn:uuid:0dd33c0467d2d8bddbb78dc771d537d8</id>
<title>123 MAIN STREET, ANYTOWN, USA</title>
@rdpoor
rdpoor / datetime_bug results
Created June 21, 2012 17:02
Demonstration of bug in DateTime#to_formatted_s(:rfc822)
load '../sketches/datetime_bug.rb'
-- create_table(:test_records, {:force=>true})
NOTICE: CREATE TABLE will create implicit sequence "test_records_id_seq" for serial column "test_records.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "test_records_pkey" for table "test_records"
 (237.7ms) CREATE TABLE "test_records" ("id" serial primary key, "f_datetime" timestamp) 
-> 0.3416s
 (0.3ms) BEGIN
SQL (39.4ms) INSERT INTO "test_records" ("f_datetime") VALUES ($1) RETURNING "id" [["f_datetime", Wed, 14 Sep 0763 00:00:00 UTC +00:00]]
 (0.8ms) COMMIT
DateTimeBug::TestRecord Load (0.5ms) SELECT "test_records".* FROM "test_records" LIMIT 1