Skip to content

Instantly share code, notes, and snippets.

View meredian's full-sized avatar
🦆
Because ducks can!

Anton Sidelnikov meredian

🦆
Because ducks can!
View GitHub Profile
module Models
module CommandRunner
def self.included(base)
base.class_eval do
@commands = []
class << self;
attr_reader :commands;
def command name, options=nil
commands.add_command name, options
end
@meredian
meredian / index.js
Created January 19, 2015 10:31
Short test for bunyan-syslog module
var bunyan = require('bunyan');
var syslog = require('bunyan-syslog');
var bunyanInstance = bunyan.createLogger({
name: 'bunyan-syslog-test',
streams: [{
level: 'trace',
type: 'raw',
stream: syslog.createBunyanStream({
type: 'sys',
@meredian
meredian / junk.js
Created April 12, 2015 04:18
molecule usage project
// DEFINITION:
// Can be used with generals functions
// x.js
module.exports = function(a, b, $container) { // If has $container property, container will be passed
$container.injectProperties(this); // Can be used list from $injectProperties to reduce constructor param list
};
exports.$require = [ // preloads modules - BEFORE init. Already accessible in $container
__dirname + '/subfolder_1'
@meredian
meredian / collections.js
Created September 21, 2015 11:03
Short example for working with async massively
var _ = require('lodash');
var async = require('async');
var db = require('../lib/mongoskin');
async.waterfall([
function(cb) { db.collections(cb); },
function(collections, cb) {
async.map(collections, function(collection, cb) {
var data = {
function asynchronousIterator(limit, f1) {
var sum = 0;
var limit = 3;
fAsync(limit, function(res) {
console.log("Intermediate result", res);
sum += res;
limit--;
if(limit === 0){
f1(sum);
@meredian
meredian / powers-02.py
Last active October 27, 2016 18:01
Решение второй задачи по информатике отборочного тура http://nti-contest.ru/wp-content/uploads/7-%D0%91%D0%94.pdf
# Константа, очень большое значение,
# будет намекать нам, что мы пока не знаем,
# как на самом деле представить какое-то число
# в виде оптимальной суммы
NONE = 1000000000
def solve(n, x):
# Создаём пустой массив чисел из X + 1 ячеек,
# так что storage[i] - сумма степеней для i
storage = [NONE] * (x + 1)
class AsyncMapState:
def __init__(self, func, items, **kwargs):
self.pool = Pool(kwargs.pop('procs', 6))
self.async_result = self.pool.map_async(func, items, 1, self.stop)
self.pool.close()
self.start_time = time.time()
self.size = len(items)
def item_status(self):
time_spent = time.time() - self.start_time
@meredian
meredian / fizz_buzz.md
Last active June 17, 2022 10:51
FizzBuzz in python

Задачка FizzBuzz

Напишите программу, которая выводит на экран числа от 1 до 100. При этом вместо чисел, кратных трем, программа должна выводить слово «Fizz», а вместо чисел, кратных пяти — слово «Buzz». Если число кратно и 3, и 5, то программа должна выводить слово «FizzBuzz»

Цитата: "Нормальный программист должен написать такую программу на бумажке за пару минут. Но вот что интересно: многие люди с профильным образованием вообще не могут справится с этой задачей. Были даже случаи, когда кандидаты, подававшие резюме на вакансию «Senior developer» тратили на эту программу больше 15 минут."

Подробнее про историю задачи и ее значимость можете прочитать по ссылке: https://habrahabr.ru/post/298134/

@meredian
meredian / browser.js
Last active March 20, 2020 05:45
First approach to sniffing detector
'use strict';
// Prerequisites: node 8+
// Install: npm install puppeteer
const puppeteer = require('puppeteer');
// const Membrane = require('es7-membrane');
function sniffDetector() {
@meredian
meredian / data-shoveler.js
Created May 28, 2019 10:16
Simple CLI tool with no dependencies. It reads given file by lines, group them in batches, and send batches to list of given HTTP services.
#!/usr/bin/env node
const fs = require('fs');
const url = require('url');
const path = require('path');
const http = require('http');
const readline = require('readline');
const EventEmitter = require('events');
const p = console.log;