Skip to content

Instantly share code, notes, and snippets.

@yarax
yarax / anag.js
Last active August 29, 2015 14:22
Finding anagrams
var row = "word".split("");
// splice modifies original array
function pull (row, i) {
var arr = [];
row.forEach(function (item, j) {
if (i!=j) arr.push(item);
});
return arr;
}
@yarax
yarax / rsc.js
Last active December 17, 2015 13:48
Reactive summary comparison
var Bacon = require('baconjs');
var Rx = require('rx');
var Kefir = require('kefir');
var EE = require('events').EventEmitter;
var ee = new EE;
var sum = function (prev, cur) {return prev+cur};
Bacon.fromEvent(ee, 'event1').scan(0, sum).onValue(console.log); // 0, 4, 9
Rx.Observable.fromEvent(ee, 'event1').reduce(sum, 0).subscribe(console.log); // doesn't work
let x = 1;
let sum = (a, b) => a + b + x
sum(1, 2); // 4
x = 2;
sum(1, 2); // 5
@yarax
yarax / server-ready.js
Created July 8, 2016 08:01
server-ready.js
var schemaLoaded = kefir.fromEvents(app, 'server:schema').take(1);
var serverListening = kefir.fromEvents(app, 'server:running').take(1);
return kefir.merge([schemaLoaded, serverListening]).toPromise();
@yarax
yarax / maybe-arithmetic.js
Last active July 8, 2016 14:50
maybe-arithmetic.js
/**
* @param val {*}
* @returns {Boolean}
*/
function isNothing(val) {
return val === undefined || val === null;
}
/**
* @param val {*}
* @return {Number}
const http = require('http');
// Swagger-like API description
const api = {
'/users': {
'get': {
'parameters': {
'role': {
'in': 'query'
},
@yarax
yarax / express.js
Last active October 15, 2016 20:52
HTTP handling Express
app.post((req, res) => {
const user = db.getUserByName(req.headers.name);
const user = db.getUserByName(req.query.name);
const user = db.getUserByName(req.path.name);
const user = db.getUserByName(req.body.name);
});
@yarax
yarax / fact.hs
Created March 15, 2017 20:06
Haskell factorial
factorial 0 = 1 
factorial n = n * factorial (n — 1)
@yarax
yarax / fact.promises.js
Created March 15, 2017 20:36
factorial promises
class ZeroValue extends Error {}
class OtherValue extends Error {}
function resolveValue(val) {
  return Promise.resolve().then(() => {
  if (!val) throw new ZeroValue();
  throw new OtherValue(val);
  });
}
#!/usr/bin/env bash
TAG="kafka-brokers-demo"
sudo yum install -y jq
sudo yum install -y wget
sudo yum install -y java
cd ~
wget "http://archive.apache.org/dist/kafka/2.1.0/kafka_2.11-2.1.0.tgz"
tar -xvf kafka_2.11-2.1.0.tgz