Skip to content

Instantly share code, notes, and snippets.

View garenyondem's full-sized avatar
:shipit:

Garen Yondem garenyondem

:shipit:
View GitHub Profile
@garenyondem
garenyondem / nonce.js
Created September 12, 2018 11:46
Create random strings for one time usage
function nonce(length) {
var text = '';
var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
for (var i = 0; i < length; i++) {
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
return text;
}
module.exports = nonce;
function randomLatLon() {
let lat = (Math.random() * 180 - 90).toFixed(8)
let lon = (Math.random() * 360 - 180).toFixed(8)
return {
lat,
lon
}
}
@garenyondem
garenyondem / hashid.js
Last active September 30, 2018 19:30 — forked from fiznool/hashid.js
Short 'hash' ID generator.
'use strict';
const ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-+';
const ALPHABET_LENGTH = ALPHABET.length;
const ID_LENGTH = 8;
const UNIQUE_RETRIES = 9999;
let HashID = {};
HashID.generate = function () {
@garenyondem
garenyondem / qrCode.js
Last active October 10, 2018 14:50 — forked from sjcotto/qrCode.js
Generate QR Code and save to mongodb
'use strict';
const qr = require('qr-image');
const mongoose = require('mongoose');
const Grid = require('gridfs');
const json = {
email: '[email protected]',
name: 'John Doe'
};
@garenyondem
garenyondem / toWesternNumerals.js
Last active October 18, 2018 14:10
Convert Arabic or Persian numerals to Western numerals
String.prototype.toWesternNumerals = function () {
return this.replace(/[\u0660-\u0669]/g, (c) => {
return c.charCodeAt(0) - 0x0660;
}).replace(/[\u06f0-\u06f9]/g, (c) => {
return c.charCodeAt(0) - 0x06f0;
});
}
@garenyondem
garenyondem / specialDaysHelper.js
Created October 18, 2018 13:42
Mother's day & father's day helper
'use strict';
function getMothersDay(year) {
// Earliest possible Mothers day
var date = new Date(year, 4, 7);
date.setDate(7 + (7 - date.getDay()));
return date;
}
function getFathersDay(year) {
// Earliest possible Fathers day
@garenyondem
garenyondem / promiseRetry.js
Last active December 23, 2021 20:23
Recursively retry promise function by given number of times and arguments
module.exports = function (func, times, ...args) {
return new Promise((resolve, reject) => {
if (times <= 0) {
return reject(new Error('Invalid input times'));
}
func.apply(this, args).then((result) => {
if (!result) {
throw new Error('Func returned no results');
}
return resolve(result);
@garenyondem
garenyondem / diff.js
Created February 21, 2019 20:25
Diff using Lodash
module.exports = function difference(object, base) {
function changes(object, base) {
let arrayIndexCounter = 0;
return _.transform(object, function (result, value, key) {
if (!_.isEqual(value, base[key])) {
let resultKey = _.isArray(base) ? arrayIndexCounter++ : key;
result[resultKey] = (_.isObject(value) && _.isObject(base[key])) ? changes(value, base[key]) : value;
console.log("Result: " + JSON.stringify(result));
}
});
#!/bin/bash
# Get ids of processes running longer than 6 hrs (21600 secs)
PIDS=$(ps eaxo etimes,bsdtime,pid,comm,cmd | grep node | grep command-line-processes | awk '{if ($1 >= 21600) print $3}')
for i in ${PIDS};
do {
PROC_FILE_PATH=$(ps eaxo pid,cmd | grep node | grep "$i"| awk '{print $3}');
SCRIPT_NAME=$(basename "$PROC_FILE_PATH");
printf "Killing $SCRIPT_NAME\n";
@garenyondem
garenyondem / RSA.js
Created January 25, 2020 13:11 — forked from fb55/index.js
RSA.js
(function(global){
var MathUtils = {
powermod: function powermod(num, exp, mod){
if(exp === 1) return num % mod;
if(exp & 1 === 1){ //odd
return (num * powermod(num, exp-1, mod)) % mod;
}
return Math.pow(powermod(num, exp/2, mod), 2) % mod;
},