Skip to content

Instantly share code, notes, and snippets.

Dmitry Manannikov slonoed

Block or report user

Report or block slonoed

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@slonoed
slonoed / rules
Last active May 5, 2019
ls_adb_2019_05_03
View rules
# Blocklist for use with Little Snitch
#
# For more information about this list, see: https://pgl.yoyo.org/adservers/
# ----
# last updated: Fri, 03 May 2019 16:04:09 GMT
# entries: 2964
# format: littlesnitch (littlesnitch -- for use with Little Snitch)
# credits: Peter Lowe - pgl@yoyo.org - https://pgl.yoyo.org/ - https://twitter.com/pgl
# this URL: http://pgl.yoyo.org/adservers/serverlist.php?hostformat=littlesnitch;showintro=0
# Patreon: https://patreon.com/blocklist
@slonoed
slonoed / eslint-local-rules.js
Created Mar 6, 2019
eslint rule to prevent await in expressions
View eslint-local-rules.js
/*
Should be used with "eslint-plugin-local-rules" plugin
*/
'use strict'
module.exports = {
'no-await-in-expressions': {
meta: {
type: 'problem',
@slonoed
slonoed / fuzzy_history.sh
Created May 26, 2018
Fuzzy find and execute command from history
View fuzzy_history.sh
# Fuzzy history
hist() {
local cmd
cmd=$(history | sed -E 's/[0-9]+\ \ //g' | sort -u | grep '^[^\ ]' | fzf --no-multi) &&
echo "\$ $cmd" &&
command $cmd
}
@slonoed
slonoed / ClientRender.js
Created May 16, 2018
React component to handle client-server render inconsistency
View ClientRender.js
/*
* ClientRender helps to avoid server-client render inconsistency.
*
* I.E. client render depends on data from LocalStorage
*
* Usage:
*
* r(ClientRender, {server: 'Rendered on server'}, 'Rendered on client')
*/
import {Component} from 'react'
@slonoed
slonoed / btc.sh
Created Feb 23, 2018
Create public key from private
View btc.sh
#!/bin/bash
# Various bash bitcoin tools
#
# requires dc, the unix desktop calculator (which should be included in the
# 'bc' package)
#
# This script requires bash version 4 or above.
#
# This script uses GNU tools. It is therefore not guaranted to work on a POSIX
# system.
@slonoed
slonoed / cache.js
Last active Feb 15, 2018
Simple memory cache
View cache.js
/*
* Simple implementation of memory cache
*
* Is use async API in case we replace it with redis.
*
* Keys should be symbols.
*/
const DEFAULT_TTL = 5 * 60 * 1000
const CLEAN_INTERVAL = DEFAULT_TTL * 1.5
@slonoed
slonoed / withPropsChanged.js
Created Oct 18, 2017
HOC call callback when props changed
View withPropsChanged.js
const withPropsChanged = (arePropsChagned, callback) => BaseComponent => {
const factory = React.createFactory(BaseComponent)
return class Watcher extends React.Component {
componentWillReceiveProps(nextProps) {
if (arePropsChagned(this.props, nextProps)) {
callback(nextProps)
}
}
render() {
return factory(this.props)
@slonoed
slonoed / domain.sh
Created Oct 1, 2017
Tool to create domain with cert (nginx + letsencrypt)
View domain.sh
#!/bin/sh
# Tool to create domain with cert
# ./domain.sh test.example.com 1234
# where 1234 - upstream port
# Input params
DOMAIN=$1
UPSTREAM_PORT=$2
@slonoed
slonoed / colorMaker.js
Created Sep 26, 2017
Make nice colors
View colorMaker.js
// Return "infinite" sequence of HSL colors
function* colorMaker({distance = 1, saturation, luminosity, shift = 0}) {
let colorIndex = 0
while (true) {
const hue = (colorIndex * distance + shift) % 359
yield `hsl(${hue}, ${saturation}%, ${luminosity}%)`
colorIndex++
}
}
View testEpic.js
async function retry(foo, count = 1, delay) {
let error;
while (count--) {
try {
return foo()
} catch (e) {
error = e
await timeout(delay)
}
You can’t perform that action at this time.