Skip to content

Instantly share code, notes, and snippets.

View vidul-nikolaev-petrov's full-sized avatar

Видул Петров vidul-nikolaev-petrov

View GitHub Profile
@vidul-nikolaev-petrov
vidul-nikolaev-petrov / todo_git-config-aliases
Last active February 3, 2016 00:38
Simple command-line Todo with Git commits
[alias]
# add task
a = "!f() { \
if [[ -f .dummy ]]; then \
git rm -f .dummy; \
else \
touch .dummy; \
git add .dummy; \
fi; \
@vidul-nikolaev-petrov
vidul-nikolaev-petrov / pki_aes.js
Created January 13, 2016 23:38
PKI & AES (en/de)cryption, based on the JS Forge crypto library
/**
* @author Vidul Nikolaev Petrov
* @summary helper methods for PKI / AES usage, based on the JS Forge crypto library.
*/
function s8Crypto(bits) {
var hexToBytes = forge.util.hexToBytes,
bytesToHex = forge.util.bytesToHex;
this.pki = {};
@vidul-nikolaev-petrov
vidul-nikolaev-petrov / longest_common_substring.js
Last active August 29, 2015 14:26
Longest Common Substring
/**
* Longest Common Substring in JavaScript
*
* This is the brute-force solution.
*
* @param {String} s1
* @param {String} s2
* @return {String} r1
*/
@vidul-nikolaev-petrov
vidul-nikolaev-petrov / bubble_sort.js
Last active October 11, 2016 12:37
Somewhat more concise Bubble sort
function bubbleSort(array) {
var swapped;
for (var i = 0; i < array.length - 1; i++) {
if (array[i] > array[i + 1]) {
var tmp = array[i + 1];
array[i + 1] = array[i];
array[i] = tmp;
swapped = true;
}
@vidul-nikolaev-petrov
vidul-nikolaev-petrov / soundex.js
Created June 2, 2015 11:59
Soundex in JavaScript
/**
* Soundex in JavaScript
*
* @example
* // returns 'H416'
* soundex('Heilbronn');
*
* @example
* // returns 'L222'
* soundex('Lissajous');
function insertionSort(list) {
for (var g = 0; g < list.length; g++) {
for (var i = list.length - 1; i > g; i--) {
if (list[i] < list[i - 1]) {
var tmp = list[i];
list[i] = list[i - 1];
list[i - 1] = tmp;
}
}
}
function quickSort(list) {
if (!list.length) return [];
var left = [],
right = [],
center = list[0];
for (var i = 1; i < list.length; i++) {
if (list[i] < center) {
left.push(list[i]);
@vidul-nikolaev-petrov
vidul-nikolaev-petrov / hanoi.js
Last active August 29, 2015 14:17
Tower of Hanoi
/**
* Thst is not the optimal formula, don't use it.
* This is just another solution for the algorithm
* Tower of Hanoi.
*/
if (Array.prototype.last === undefined) {
Array.prototype.last = function () {
return this.length ? this[this.length - 1] : 0;
};
/**
* Check for arbitrage bet.
*
* @class Arbitrage
*/
var Arbitrage = Arbitrage || {};
var args = [];
use strict;
use warnings;
use File::Basename;
list_direcrory(shift, 1);
sub list_direcrory {
my ($root, $c) = @_;