Skip to content

Instantly share code, notes, and snippets.

View Aleksey-Danchin's full-sized avatar

Алексей Данчин Aleksey-Danchin

View GitHub Profile
// Обновление
sudo apt-get update
sudo apt-get upgrade
// Установка приложений
sudo apt-get install vim git tree traceroute
// Установка nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
@Aleksey-Danchin
Aleksey-Danchin / Randomer.js
Created April 26, 2017 09:19
Генератор рандомера по фиксированному множеству вероятностей.
function getRandomer(...chances) {
const commonLength = chances.reduce((p, c) => p + c, 0)
, chancesLength = chances.length;
return function() {
const rIndex = Math.floor(Math.random() * commonLength);
let startIndex = - 0.5, lastIndex;
for (let i = 0; i < chancesLength; i++) {
lastIndex = startIndex + chances[i];
@Aleksey-Danchin
Aleksey-Danchin / Lever.js
Last active March 27, 2017 15:49
Left Lever
!(function () {
class Lever {
constructor(data) {
const lever = this;
lever.canvas = document.getElementById(data.canvasId);
lever.context = lever.canvas.getContext('2d');
lever.canvas.width = data.width;
lever.canvas.height = data.height;
const svg = d3.select("body").append('svg')
.attr('width', 500)
.attr('height', 500);
const data = [
{cx: 10, cy: 10},
{cx: 490, cy: 50},
{cx: 50, cy: 490}
];
@Aleksey-Danchin
Aleksey-Danchin / dollar.tsv
Last active March 21, 2017 12:24
D3 experience: moveable chart of dollar course. https://codepen.io/al/full/evMmEX/
date course
2010.01.11 30,1851
2010.01.12 29,4283
2010.01.13 29,3774
2010.01.14 29,6409
2010.01.15 29,4299
2010.01.16 29,5603
2010.01.19 29,5963
2010.01.20 29,5184
2010.01.21 29,6941
@Aleksey-Danchin
Aleksey-Danchin / example9.js
Created October 21, 2016 10:34
Пример реализации цепного стиля программирования.
class Point {
constructor () {
const point = this;
point.x = 0;
point.y = 0;
point.color = 'red';
}
moveTo (x, y) {
@Aleksey-Danchin
Aleksey-Danchin / example8.js
Last active October 21, 2016 10:36
Улучшенные свойста объектов и деструктурирующее присваивание.
function showPerson1 (name, family, age) {
console.log(name, family, age);
}
function showPerson2 ({name, family, age}) {
showPerson1(name, family, age);
}
const name = 'Aleksey', family = 'Danchin', age = 24;
@Aleksey-Danchin
Aleksey-Danchin / example7.js
Created October 18, 2016 08:43
Проверка массивов на эквивалентность содержимого.
Array.isEqual = function (...arrays) {
if (arrays.length == 0) return false;
if (arrays.length == 1) return true;
const ctrl = arrays[0]
, length = ctrl.length;
for (let i = 1; i < arrays.length; i++) {
const array = arrays[i];
@Aleksey-Danchin
Aleksey-Danchin / example6.js
Last active October 17, 2016 08:56
Делаем коллекцию Map JSON-представляемой.
Object.defineProperty(Map.prototype, 'toJSON', {
enumerable: false
, configurable: true
, get: () => function () {
const obj = {};
for (const key of this.keys())
obj[key] = this.get(key);
return obj;
@Aleksey-Danchin
Aleksey-Danchin / example5.js
Created October 14, 2016 19:37
Синтаксис статического геттера.
class User {
constructor (isAdmin = false) {
const user = this;
user.isAdmin = isAdmin;
User.all.push(user);
}
static get admins () {
return User.all.filter(user => user.isAdmin);
}