Skip to content

Instantly share code, notes, and snippets.

Pete Hodgson moredip

Block or report user

Report or block moredip

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
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 /
Last active Jul 3, 2017


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


  • 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.


Keybase proof

I hereby claim:

  • I am moredip on github.
  • I am 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:


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 / gulpfile.js
Last active Aug 29, 2015
gulp, browserify, reactify, and sadness
View gulpfile.js
//based on
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 / 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__ )
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 / test.json
Created Nov 28, 2012
A small sample JSON file
View test.json
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::Dsl.evaluate_guardfile(:guardfile => 'Guardfile')
You can’t perform that action at this time.