Skip to content

Instantly share code, notes, and snippets.

@chrisirhc
chrisirhc / rendered-dom.jsx
Created January 31, 2016 01:01
DOM diffing, DOM shape, and mouse events (Rendered DOM)
/* non-hovered */
<div className="has-tooltip"
onMouseEnter={this._setHovered}
onMouseLeave={this._setNotHovered}
></div>
/* hovered */
<div className="tooltip-region">
<div className="has-tooltip"
onMouseEnter={this._setHovered}
@chrisirhc
chrisirhc / render.js
Created January 31, 2016 00:59
DOM diffing, DOM shape, and mouse events (Hypothesis)
<div className="tooltip-region"
onMouseLeave={this._setNotHovered}
<div className="has-tooltip"
onMouseEnter={this._setHovered}></div>
<div>Hello</div>
</div>
@chrisirhc
chrisirhc / render.js
Last active January 31, 2016 00:39
DOM diffing, DOM shape, and mouse events (Best practice)
// Best practice, to maintain a similar DOM shape
render() {
const {isHovered} = this.state;
return (
<div className={classNames(isHovered && 'tooltip-region')}
onMouseEnter={this._setHovered}
onMouseLeave={this._setNotHovered}>
<div className="has-tooltip"></div>
{isHovered && <div>Hello</div>}
@chrisirhc
chrisirhc / index.js
Created October 5, 2015 04:45
rx-interdependency-experiment
var Rx = require('rx');
var clone = require('lodash.clone');
var isequal = require('lodash.isequal');
var Config = new MutableSubject({a: null});
var Options = new MutableSubject({});
function MutableSubject(name, obj) {
var behaviorSubject = new Rx.BehaviorSubject(obj);
@chrisirhc
chrisirhc / script.js
Created September 21, 2015 06:12
xwOgJX
var Container = React.createClass({
getInitialState: function () {
return {
contentComponent: ContentA,
headerProps: null
};
},
_toggleContent: function () {
@chrisirhc
chrisirhc / README.md
Last active August 29, 2015 14:20
How to convert to AngularJS' jqLite?

Seed for a blog article to convert from jQuery to jqLite. Finding all the bad usages of selectors in find and bad css calls.

@chrisirhc
chrisirhc / d3.min.js
Created February 1, 2015 03:32
Timeseries Similarity
!function(){function n(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function t(n){return null===n?0/0:+n}function e(n){return!isNaN(n)}function r(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function u(n){return n.length}function i(n){for(var t=1;n*t%1;)t*=10;return t}function o(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function a(){this._=Object.create(null)}function c(n){return(n+="")===da||n[0]===ma?ma+n:n}function l(n){return(n+="")[0]===ma?n.slice(1):n}function s(n){return c(n)in this._}function f(n){return(n=c(n))in this._&&delete this._[n]}function h(){var n=[];for(var t in this._)n.push(l(t));return n}function g(){var n=0;for(var t in this._)++n;return n}function p(){for(var n in this._)return!1;return!0}function v(){this._=Object
@chrisirhc
chrisirhc / pre-push-check-master
Last active August 29, 2015 14:13
pre-push git hook to confirm when pushing to master
#!/bin/bash
IFS=' '
while read local_ref local_sha remote_ref remote_sha
do
if [ "$remote_ref" = "refs/heads/master" ]
then
echo "Pushing to master"
read -p "You're about to push $local_ref to master, is that what you intended? [y|n] " -n 1 -r < /dev/tty
echo
@chrisirhc
chrisirhc / README.md
Last active August 29, 2015 14:11
Directive to add space after an ngRepeat element

Directive to add space after an ngRepeat element

To use:

<li ng-repeat="item in items" add-space-after>
</li>
@chrisirhc
chrisirhc / .travis.yml
Last active August 29, 2015 14:05
Release repo
script:
- cp -a src build
- ls -la build
after_success: .travis/make-release.sh