-
Download [jshint.vim][jshint]
-
Put it in
~/.vim/plugin/jshint.vim
-
Edit your local vimrc file (I'm on macvim with janus, so it's at
~/.gvimrc.local
) and add:au BufWritePost *.js :JSHint
-
Read the [vim docs][vim] and particularly [auto commands][auto] I'm a newb and the neckbeards are probably laughing at me for even posting this.
var Browser = require('zombie'), | |
url = require('url'), | |
fs = require('fs'), | |
$q = require('Q'), | |
saveDir = __dirname + '/_snapshots'; | |
var scriptTagRegex = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi; | |
var stripScriptTags = function(html) { |
-
Download [jshint.vim][jshint]
-
Put it in
~/.vim/plugin/jshint.vim
-
Edit your local vimrc file (I'm on macvim with janus, so it's at
~/.gvimrc.local
) and add:au BufWritePost *.js :JSHint
-
Read the [vim docs][vim] and particularly [auto commands][auto] I'm a newb and the neckbeards are probably laughing at me for even posting this.
(by @andrestaltz)
So you're curious in learning this new thing called Reactive Programming, particularly its variant comprising of Rx, Bacon.js, RAC, and others.
Learning it is hard, even harder by the lack of good material. When I started, I tried looking for tutorials. I found only a handful of practical guides, but they just scratched the surface and never tackled the challenge of building the whole architecture around it. Library documentations often don't help when you're trying to understand some function. I mean, honestly, look at this:
Rx.Observable.prototype.flatMapLatest(selector, [thisArg])
Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence.
/* | |
* Hover over an element on the page | |
*/ | |
(function() { | |
"use strict"; | |
var webdriver = require('selenium-webdriver'); | |
var driver = new webdriver.Builder().usingServer().withCapabilities({'browserName': 'chrome' }).build(); |
People
![]() :bowtie: |
๐ :smile: |
๐ :laughing: |
---|---|---|
๐ :blush: |
๐ :smiley: |
:relaxed: |
๐ :smirk: |
๐ :heart_eyes: |
๐ :kissing_heart: |
๐ :kissing_closed_eyes: |
๐ณ :flushed: |
๐ :relieved: |
๐ :satisfied: |
๐ :grin: |
๐ :wink: |
๐ :stuck_out_tongue_winking_eye: |
๐ :stuck_out_tongue_closed_eyes: |
๐ :grinning: |
๐ :kissing: |
๐ :kissing_smiling_eyes: |
๐ :stuck_out_tongue: |
FILE SPACING: | |
# double space a file | |
sed G | |
# double space a file which already has blank lines in it. Output file | |
# should contain no more than one blank line between lines of text. | |
sed '/^$/d;G' |
const print = (param, ...args) => { | |
console.log(param, ...args); | |
return param; | |
}; | |
const traceFn = (fn, context) => function () { | |
console.trace(`${fn.name} called with arguments: `, arguments); | |
return fn.apply(context || this, arguments); | |
}; |
const pipe = (...fns) => fns.reduce((f, g) => (...args) => g(f(...args))); | |
const compose = (...fns) => fns.reduce((f, g) => (...args) => f(g(...args))); | |
// Example | |
const addFoo = str => str + 'foo'; | |
const addBar = str => str + 'bar'; | |
const addFoobar = pipe(addFoo, addBar); | |
const addBarfoo = compose(addFoo, addBar); | |
addFoobar('hello ') // hello foobar | |
addBarfoo('hello ') // hello barfoo |