Skip to content

Instantly share code, notes, and snippets.

@ronaldronson
ronaldronson / clear-form.js
Last active January 1, 2016 08:59
Clear all form inputs
/**
* Clear form data.
*
* @param HTMLFormElement
*/
function clearForm(form) {
var l = form.elements.length, o, list = {
"checkbox": {prop: "checked", val: false},
"radio": {prop: "checked", val: false},
"select-one": {prop: "selectedIndex", val: null},
@ronaldronson
ronaldronson / fibonacci-function.js
Last active January 2, 2016 02:59
Fibonacci function
/** ES 5 */
function f (n) { return !!~[1,2].indexOf(n) ? 1 : f(n-1) + f(n-2) }
/** ES 6 */
const f = n => !!~[1,2].indexOf(n) ? 1 : f(n-1) + f(n-2)
/** more crazy */
const f = n => !!({1:1, 2:1})[n] ? 1 : f(n-1) + f(n-2)
/**
@ronaldronson
ronaldronson / bind-call-apply.js
Last active January 3, 2016 02:39
Own realization of functions bind call and apply.
/** Bind: */
Function.prototype.c_bind = function (cnt) {
var pArgs = [].slice.call(arguments, 0), fn = this;
return function () {
var args = [].slice.call(arguments, 0);
[].splice.apply(pArgs, [0, args.length].concat(args));
return fn.apply(cnt, args);
}
};
@ronaldronson
ronaldronson / fake_sendmail.sh
Created January 13, 2014 09:13
Resend all local mail # in php.ini write: # sendmail_path = /usr/bin/fake_sendmail.sh.
#!/bin/sh
prefix="/var/mail/sendmail/new"
numPath="/var/mail/sendmail"
if [ ! -f $numPath/num ]; then
echo "0" > $numPath/num
fi
num=`cat $numPath/num`
num=$(($num + 1))
echo $num > $numPath/num
@ronaldronson
ronaldronson / img_cnt.sh
Created January 13, 2014 09:18
Find and resize all images
#!/bin/sh
ALL_IMGS=`find . *.jpg -type f -name '*.jpg'`
for I in ${ALL_IMGS}
do
DEM_H=`identify -format "%h" ${I}`
DEM_W=`identify -format "%W" ${I}`
echo ${I} - ${DEM_H} x ${DEM_W}
@ronaldronson
ronaldronson / extremums.js
Created January 13, 2014 09:21
Find local extremums
function calculate(input) {
"use strict";
var len = input.length, extr, max, min, part;
extr = input
.reduce(function (pre, val, i, arr) { // find local extremums
if ((!i && (val > arr[i + 1])) // check first element
|| ((i === len - 1) && (val > arr[i - 1])) // check last element
|| ((val > arr[i - 1]) && val > arr[i + 1]) // check rest
@ronaldronson
ronaldronson / parse-float.js
Created January 13, 2014 09:26
Own parseFloat function
var parseFloat = function (val){
"use strict";
var res = NaN, i = 0, len, neg = false;
if ("number" == typeof val) {
return val;
}
if (null == val
|| "object" typeof val
@ronaldronson
ronaldronson / promise.js
Created January 13, 2014 09:39
Dummy promise
var Promise = (function () {
"use strict";
function worker(queue, val) {
return queue.reduce(function (res, obj, i) {
try {
return obj.fn(res);
} catch (ex) {
return obj.err(ex);
}
@ronaldronson
ronaldronson / switch-scope.js
Last active January 3, 2016 13:48
Switch function's scope, return new function
function switchScope(fn, params) {
var keys, values;
keys = Object.keys(params);
values = keys.map(function (val) {
return params[val];
});
@ronaldronson
ronaldronson / coffee-script.coffee
Created January 21, 2014 13:02
CoffeeScript fun
Function::some = (n) -> that = @; (a...) -> that.apply this, a.slice 0, n
# loger
log = (a...) -> console.log a.join " -> "
# math
mult = (a) -> a * a
# possition
odd = (k) -> k % 2