Skip to content

Instantly share code, notes, and snippets.

@ronaldronson
ronaldronson / summMod3Or5.cpp
Created December 19, 2016 19:22
Comperison of function which calculates summ of all numbers devided by 3 and 5 and less than N.
#include "stdafx.h"
#include "time.h"
unsigned long summMod3Or5_1();
unsigned long summMod3Or5_2();
void run(unsigned long (*)(), size_t);
const size_t N = 999999999999;
int main()
@ronaldronson
ronaldronson / tpl.js
Created October 31, 2016 13:07
Template fn 2[a]aa => aaa
const tpl = (str, res = str.match(/([0-9])\[([a-z]+)\]/)) =>
res ? tpl(str.replace(`${res[1]}[${res[2]}]`, res[2].repeat(res[1] | 0))) : str
// test
aaa -> aaa
3[a]aa -> aaaaa
2[a3[c]2[d]]bb -> acccddacccddbb
@ronaldronson
ronaldronson / flattens.js
Last active July 28, 2016 12:24
Flattens objects
// {x:1, y:1, z:{a:1,b:2}} flattens to {x:1, y:1, z.a:1, z.b: 2}
const walk = (obj, root = {}, prefix = '') =>
Object.keys(obj).reduce((res, key) => "object" === typeof obj[key] ? walk(obj[key], root, prefix + key + '.') : (root[prefix + key] = obj[key], res), root)
@ronaldronson
ronaldronson / echoBox.js
Created July 6, 2016 05:20
Echo script - repeats after you
var recognition = new webkitSpeechRecognition();
recognition.onresult = function(event) {
var text = event.results[0][0].transcript;
speak(text);
}
function speak(msg) {
var text = new SpeechSynthesisUtterance(msg);
speechSynthesis.speak(text);
@ronaldronson
ronaldronson / waterfall.js
Last active January 13, 2017 16:04
call async functions in parallel, execute final callback in the end
export default (list, done) => {
const acc = []
const next = data => list.length === acc.push(data) && done(acc)
list.forEach(fn => fn(next))
};
// second implementation:
export default (list, done) => {
let drop = false;
const acc = [], next = (err, data) => drop || (
class PipeModification {
constructor(input) {
this.queue = ['initial']
this.value = [input]
}
_action(fn) {
this.value.push(fn(this.value[this.value.length - 1]))
return this;
function filterObj(base, filter) {
return Object.keys(state)
.filter(name => !!~filter.indexOf(name))
.reduce((obj, name) => (obj[name] = state[name], obj), {});
}
@ronaldronson
ronaldronson / async.js
Last active August 29, 2015 14:26
Call provided set of functions, pass state from one to another
function async() {
var list = [].slice.call(arguments)
var fn = function (err, res) {
err ? list.pop()(err, res)
: list.shift()(res, fn)
}
return function (arg, fin) {
list.push(fin)
@ronaldronson
ronaldronson / to-upper-case.js
Created August 5, 2015 20:38
Check string for words, if word contains of 3 symbols - make it upper case
function toUpperCase(str) {
return ('' + str).split(' ').map(function (a) {
return 3 == a.length ? a.toUpperCase() : a
}).join(' ')
}
toUpperCase('the quick brown fox, jumps over the lazy dog.')
@ronaldronson
ronaldronson / gist:31f605d54f9c32e08ef1
Last active August 29, 2015 14:23
Transform serialize string to serialize array
function serializeStringToArray(str) {
return str.split('&').reduce(function (o, p) {
var t = p.split('=')
o.push({name: t[0], value: t[1]})
return o
}, [])
}