Skip to content

Instantly share code, notes, and snippets.

View dmitriy-kiriyenko's full-sized avatar

Dmitriy Kiriyenko dmitriy-kiriyenko

View GitHub Profile

Прикольные глаза:

Сокетов будет не хватать, надо будет думать, может, даже кольцо без камня зайдёт.

@dmitriy-kiriyenko
dmitriy-kiriyenko / Auth0.md
Last active May 21, 2018 13:19 — forked from bibikovilya/Auth0.md
Находки из текущего проекта: Auth0

Предлагаю сабж из заголовка: у каждого из нас может найтись, чем поделиться. Обычно это пишут в блог, но я тут подумал, что тут у меня аудитория существенно больше, чем среднегодовое количество посетителей блога и существенно выше шанс получения комментария. А статью в блог можно произвести уже после получения ваших ответов – это сильно повысит качество материала.

Итак, auth0. Давно хотел это попробовать, и, получив новый проект, не смог удержаться.

Это third-party сервис, предназначенный для разработчиков, и он реализует в вашем приложении аутентификацию.

Что сразу хорошо, так это практически нулевой лаг при старте работы. Подключаешь по инструкции и сразу есть форма входа/регистрации и пара социальных сетей. Пара потому, что третья уже за деньги. В бесплатный пакет входит семь тысяч активных пользователей и два social network identity провайдера.

Даже приложение создавать не надо на фейсбуке! Подключение осуществляется по учётным данным самого auth0. Но вы всегда можете посоздавать

require 'benchmark/ips'
require 'set'
array = ('a'..'z').map(&:to_sym)
hash = Hash[array.map {|x| [x, 1]}]
set = Set.new(array)
Benchmark.ips do |x|
x.report('array') { array.include?(:a) }
x.report('hash') { hash.key?(:a) }
@dmitriy-kiriyenko
dmitriy-kiriyenko / GIF-Screencast-OSX.md
Created December 7, 2017 11:08 — forked from dergachev/GIF-Screencast-OSX.md
OS X Screencast to animated GIF

OS X Screencast to animated GIF

This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.

Screencapture GIF

Instructions

To capture the video (filesize: 19MB), using the free "QuickTime Player" application:

Ruby

def f(a, b, c)
  a < b && a < c ? b*b + c*c : f(b, c, a)
end

JS

@dmitriy-kiriyenko
dmitriy-kiriyenko / array_validator.rb
Created November 22, 2017 15:11
Array validator
class ArrayValidator < ActiveModel::EachValidator
def validate_each(record, attribute, values)
[values].flatten.each do |value|
options.each do |key, args|
validator_options = { attributes: attribute }
validator_options.merge!(args) if args.is_a?(Hash)
next if value.nil? && validator_options[:allow_nil]
next if value.blank? && validator_options[:allow_blank]
class Array
def odd_values
e = [false, true].cycle
select { e.next }
end
def even_values
e = [true, false].cycle
select { e.next }
end
def nested_present?(duck)
if duck.respond_to(:values)
nested_present?(duck.values)
elsif duck.respond_to? :any?
duck.any? { |duckling| nested_present? duckling }
else
duck.present?
end
end
@dmitriy-kiriyenko
dmitriy-kiriyenko / 00_task.rb
Last active October 12, 2017 08:52
Nested hash for nested group by
def base_for_nested_group_by(x)
end
# f(0)
Hash.new # or ArgumentError
# f(1)
Hash.new {|h1, k1| h1[k1] = []}
# f(2)
@dmitriy-kiriyenko
dmitriy-kiriyenko / aaa.html.erb
Created September 28, 2017 05:20
Capybara etc tip
<%# http://www.venombytes.com/2013/03/11/faster-browser-specs %>
<% if Rails.env.test? -%>
<style type="text/css">
.notransition * {
/*CSS transitions*/
-webkit-transition: none !important;
-moz-transition: none !important;
-o-transition: none !important;
-ms-transition: none !important;