Skip to content

Instantly share code, notes, and snippets.

View nicolashery's full-sized avatar

Nicolas Hery nicolashery

View GitHub Profile
@nicolashery
nicolashery / 0-flowtype-playground.js
Last active October 28, 2015 17:48
Flow playground (flowtype.org)
/* @flow */
import _ from "lodash";
type UserId = string;
type UserRole =
'admin' |
'guest' |
'member';
@nicolashery
nicolashery / 01-simplest.jsx
Last active November 18, 2015 09:26
Snippets for blog post on isomorphic React + Flux
// - rendering library (like React) should be able to "pick up" where server
// left off (i.e. hook up to the existing HTML)
// server.js
var server = express();
server.use(function(req, res) {
var appHtml = React.renderToString(<App />);
var html = injectIntoHtml({app: appHtml});
res.send(html);
@nicolashery
nicolashery / markdown-cheat-sheet.md
Last active December 18, 2015 07:48
Markdown cheat sheet

Markdown cheat sheet

# Header 1

## Header 2

### Header 3

This is a paragraph.
@nicolashery
nicolashery / no-framework.md
Last active December 19, 2015 14:09
Exploring the possibility of building a web app without frameworks

Building a web app without a framework

Rough draft exploring the possibility of building a web app without a framework, picking and choosing from small & focused pieces, a la Unix.

Tools

Packages/Modules

@nicolashery
nicolashery / variable-names.js
Last active December 24, 2015 03:59
Change variable names to another naming convention in JavaScript
// Change variable names to another naming convention
//
// Thanks to Oliver Caldwell for the inspiration
// http://oli.me.uk/2013/09/25/grabbing-elements-from-the-dom/
// 'hello_world' -> 'helloWorld'
function snakeToCamelCase(name) {
return name.toLowerCase().replace(/_(\w)/ig, function (match, hump) {
return hump.toUpperCase();
});
# Sexy Bash Prompt, inspired by "Extravagant Zsh Prompt"
# Shamelessly copied from https://github.com/gf3/dotfiles
# Screenshot: http://cloud.gf3.ca/M5rG
# A big thanks to \amethyst on Freenode
if [[ $COLORTERM = gnome-* && $TERM = xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then export TERM=gnome-256color
elif [[ $TERM != dumb ]] && infocmp xterm-256color >/dev/null 2>&1; then export TERM=xterm-256color
fi
if tput setaf 1 &> /dev/null; then
@nicolashery
nicolashery / process_customers.js
Created November 29, 2013 14:32
Working with JSON using Node.js, Streams, and the Unix command line
// Usage:
// cat customers_raw.json | node process_customers > customers.json
// https://github.com/dominictarr/JSONStream
var JSONStream = require('JSONStream');
// https://github.com/rvagg/through2
var through2 = require('through2');
process.stdin
.pipe(JSONStream.parse('*'))
@nicolashery
nicolashery / ink-file-picker.js
Created December 4, 2013 10:43
Ink file picker encoded security policy and its signature with Node.js
/* Ink file picker encoded security policy and its signature with Node.js
https://www.inkfilepicker.com/
https://developers.inkfilepicker.com/docs/security/
Usage:
ink.encodePolicy({
handle: 'KW9EJhYtS6y48Whm2S6D',
expiry: 1508141504
// Exploring using "expose React component tree as data" @swannodette
// (https://www.youtube.com/watch?v=5hGHdETNteE#t=1559)
// for routing and fetching data ("react-router-mega-demo" @ryanflorence)
// (https://github.com/rackt/react-router-mega-demo/blob/master/app/utils/fetchData.js)
var appState = {
route: '/contacts',
contacts: [],
messages: []
};
$ mix deps
* fs 0.9.1 (Hex package) (rebar)
locked at 0.9.2 (fs)
ok
* gettext 0.9.0 (Hex package) (mix)
locked at 0.9.0 (gettext)
ok
* ranch 1.2.1 (Hex package) (rebar)
locked at 1.2.1 (ranch)
ok