Skip to content

Instantly share code, notes, and snippets.

Pete Hodgson moredip

View GitHub Profile
@moredip
moredip / part-app.js
Last active Jul 13, 2017
Introduce Partial Application
View part-app.js
const priceByCommodityAndCountry = {
'MANGO': [
{
origin: 'US',
price: 101
},
{
origin: 'BR',
price: 120
@moredip
moredip / -README.md
Last active Jul 3, 2017
functionally-stateful
View -README.md

stateful()

A helper function that lets us write stateful React components in the same functional style as stateless components.

Why?

  • sidesteps the need to introduce class and this-binding confusion into your codebase.
  • slightly terser, slightly more declarative
  • opinionated - doesn't expose the more dangerous features of class-based Components (e.g. lifecycle callbacks)

When you have a team working on a larger React codebase it is hard for everyone to understand which patterns are preferable vs. those which are a necessary compromise.

View keybase.md

Keybase proof

I hereby claim:

  • I am moredip on github.
  • I am petehodgson (https://keybase.io/petehodgson) on keybase.
  • I have a public key whose fingerprint is C102 5F19 DE0B 2154 8873 6DBB 53A8 A903 4518 61FF

To claim this, I am signing this object:

View README.md

This simple force-directed graph shows character co-occurence in Les Misérables. A physical simulation of charged particles and springs places related characters in closer proximity, while unrelated characters are farther apart. Layout algorithm inspired by Tim Dwyer and Thomas Jakobsen. Data based on character coappearence in Victor Hugo's Les Misérables, compiled by Donald Knuth.

Compare this display to a force layout with curved links, a force layout with fisheye distortion and a matrix diagram.

@moredip
moredip / gulpfile.js
Last active Aug 29, 2015
gulp, browserify, reactify, and sadness
View gulpfile.js
//based on https://medium.com/@sogko/gulp-browserify-the-gulp-y-way-bb359b3f9623
var gulp = require('gulp');
var browserify = require('browserify');
var transform = require('vinyl-transform');
var reactify = require('reactify');
gulp.task('browserify', function () {
var browserified = transform(function(filename) {
var b = browserify(filename);
return b.bundle();
@moredip
moredip / env.rb
Created Apr 3, 2014
How to point capybara to custom phantom or chromedriver executable
View env.rb
if RUBY_PLATFORM =~ /darwin/
require 'selenium/webdriver'
Selenium::WebDriver::PhantomJS.path = File.expand_path( "../../../tools/phantomjs-osx", __FILE__ )
Selenium::WebDriver::Chrome::Service.executable_path = File.expand_path( "../../../tools/chromedriver-osx", __FILE__ )
end
@moredip
moredip / gist:7557707
Last active Dec 28, 2015
exporting a bunch of public keys
View gist:7557707
for i in pete rosalie jack charlton pam coleman badri sophie elise jess; do gpg --armor --export $i > $i.signed.gpg; done
View what I have.m
+ (void)prepRoutes{
[self handlePostTo:@"/record" with:^{
return [[LPRecordRoute new] autorelease];
}];
[self handlePostTo:@"/play" with:^{
return [[LPAsyncPlaybackRoute new] autorelease];
}];
@moredip
moredip / test.json
Created Nov 28, 2012
A small sample JSON file
View test.json
{
"test":"json"
}
@moredip
moredip / build.rb
Created Aug 19, 2012
A very hacky build script using Guard
View build.rb
require 'fileutils'
def run_guard
Signal.trap("HUP") { exit }
require 'guard'
Guard.setup
Guard::Dsl.evaluate_guardfile(:guardfile => 'Guardfile')
Guard.start
end
You can’t perform that action at this time.