Skip to content

Instantly share code, notes, and snippets.

justin j. moses justinjmoses

View GitHub Profile
@justinjmoses
justinjmoses / random-split.js
Created Dec 4, 2018
Function to split up some given number into a fixed number of parts.
View random-split.js
const random = require('random-js')();
// Splits up number into times random parts
const splitter = (number, times) => {
const ran = random.real(0, number);
if (times < 2) {
return [number];
}
const halved = times / 2;
if (times % 2 === 0) {
@justinjmoses
justinjmoses / EOS Smart Contract Development.md
Last active Nov 12, 2018
Getting started writing Smart Contracts with EOS
View EOS Smart Contract Development.md

Getting started writing Smart Contracts with EOS

This information has been extrapolated from https://developers.eos.io/eosio-home/docs

Latest version of EOS when writing: 1.4.0

Note: the Developer Portal has a number of older links inside it. Some of the URLs contain older version numbers. For example, if you use the breadcrumbs at the top, things can get confusing as the latest version shows as v1.3.0 which has different C++ syntax due to the latest changes in eosio.cdt )Contract Development Toolkit) https://developers.eos.io/eosio-cpp/v1.3.0/docs/introduction-to-smart-contracts

Environment Setup

@justinjmoses
justinjmoses / Deferred.js
Last active May 11, 2018
Migrating to jQuery 3 Promises A+
View Deferred.js
module.exports = class Deferred {
constructor() {
this._promise = new Promise((resolve, reject) => {
this._resolve = resolve;
this._reject = reject;
});
}
resolve(value) {
this._resolve(value);
@justinjmoses
justinjmoses / grecent.sh
Last active Mar 28, 2017
Git show branches with most recent commits
View grecent.sh
# via http://stackoverflow.com/a/5188364/794170
git for-each-ref --sort=committerdate refs/heads/ --format="%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))"
View index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>es6 proxy #jsbench #jsperf</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/1.0.0/benchmark.min.js"></script>
<script src="./suite.js"></script>
</head>
<body>
<h1>Open the console to view the results</h1>
@justinjmoses
justinjmoses / nodejs6-proxy.md
Last active Feb 16, 2017
Create dynamic objects in a nodejs6 REPL with Proxy
View nodejs6-proxy.md

#Create dynamic objects in a nodejs6 REPL with Proxy

Nodejs 6.x comes with ES6 Proxy support baked in. Just like Ruby's method-missing (aka ghost methods), you can intercept getters and setters on an object and, like ActiveRecord in Rails, write rich APIs that can take any method or property name you like.

They are particularly fun in a REPL, where you might want to handle undefined variables.

For example, say we started a nodejs REPL via:

@justinjmoses
justinjmoses / App.js
Last active Oct 6, 2016
Navigator in react-native
View App.js
import Start from './Start'
import NextPage from './NextPage'
const Views = { Start, NextPage }
<Navigator
initialRoute={{ view: 'Start' }}
renderScene={(route, navigator) => {
const SceneComponent = Views[route.view];
return <SceneComponent {...route.props} navigator={navigator} />;
@justinjmoses
justinjmoses / echoline.sh
Created Mar 11, 2016
Echo 5 lines before and after line in a file
View echoline.sh
#Usage echoline LINE_NUMBER FILE
function echoline() { sed -n "$(($1 - 5)),$(($1 + 5))p" $2; }
@justinjmoses
justinjmoses / gist:3987615
Created Oct 31, 2012
git remove local merged branches
View gist:3987615
git branch --merged master | grep -v 'master$' | xargs git branch -d
@justinjmoses
justinjmoses / gist:3987610
Created Oct 31, 2012
delete used remote branches
View gist:3987610
git branch -r --merged master | sed 's/ *origin\///' | grep -v 'master$' | xargs -I% git push origin :%
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.