Skip to content

Instantly share code, notes, and snippets.

View morr's full-sized avatar
🏠
Working from home

Andrey Sidorov morr

🏠
Working from home
View GitHub Profile
@morr
morr / init.sh
Last active August 29, 2015 13:56
настройка osx для работы с rails проектом
# запустить app store
# установить xcode из апстора
# в консоли:
# homebrew
~ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
~ brew install curl
~ brew install libyaml
~ brew doctor
# исправить все проблемы, о которых сообщил brew-doctor
describe 'backbone', js: true do
it 'success auth' do
visit new_user_registration_path
click_link 'Войдите'
fill_backbone_field '#auth .sign-in #user_email', user.email
fill_backbone_field '#auth .sign-in #user_password', user.password
page.evaluate_script "$('#auth .sign-in .submit').trigger('click')"
# shows flash
page.should have_selector '.flash.success'
@morr
morr / gist:6461562
Last active December 22, 2015 10:49
config
sudo dpkg-reconfigure locales
sudo apt-get install openssl readline-common libc6-dev libssl-dev libmysql++-dev libsqlite3-dev make build-essential libssl-dev libreadline6-dev zlib1g-dev libyaml-dev
mkdir /tmp/ruby && cd /tmp/ruby
curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz
cd ruby-2.0.0-p247
./configure
make
@morr
morr / gist:dfe49324d53112d2a234
Last active December 21, 2015 20:59
Требования к вёрстке

У нас в проекте вся вёрстка из сделанного вами макета будет переводиться из html в slim (http://slim-lang.com/), а css стили в sass (http://sass-lang.com/).

Общие требования

  1. Верстать дивами, без таблиц, без css фреймворков. Таблицы использовать только в случае, если надо сверстать таблицу.
  2. Мы используем при вёрстке независимые блоки по аналогии с БЭМ. Блоки именуем с префиксом b-.

Каждый блок помещается в отдельный файл. Префиксы для дочерних классов блока, как в оригинальном БЭМ, не используем (используем вложенные классы sass).

Используем лейауты с префиксом l- для каких-то верхних элементов, которые глобально определяют композицию страницы.

.l-topics {
$total-columns: 12;
$column-width: 54px;
$gutter-width: 30px;
$grid-padding: 10px;
.page {
@include container;
aside {
@include span-columns(3 omega, $total-columns);
# encoding: utf-8
class ProxyTest
SuccessConfirmationMessage = "test_passed"
TestPage = "/proxy_test"
WhatIsMyIpPage = "/what_is_my_ip"
def initialize(app)
@app = app
class Svd < ActiveRecord::Base
Full = 'full'
Partial = 'partial'
serialize :lsa
serialize :entry_ids
serialize :user_ids
attr_accessible :scale, :kind
# encoding: utf-8
class Recommendations::Metrics::Svd < Recommendations::Metrics::MetricBase
def initialize(klass, svd)
@klass = klass
@svd = svd
end
def compare(user_id, user_rates, sampler_id, sampler_rates)
(@svd.user_ids.include?(sampler_id) ? @svd.rank(user_rates)[sampler_id] : nil) || 0
end
class Recommendations::Metrics::Pearson < Recommendations::Metrics::MetricBase
def compare(user_id, user_rates, sampler_id, sampler_rates)
return 0 unless user_rates && sampler_rates
shared_ids = user_rates.keys & sampler_rates.keys
return 0 if shared_ids.empty?# || shared_ids.size < MinimumShared
sum1 = sum2 = sum1Sq = sum2Sq = pSum = 0.0
shared_ids.each do |id|
prefs1_item = user_rates[id] || 0.0
class Recommendations::Metrics::Euclid < Recommendations::Metrics::MetricBase
def compare(user_id, user_rates, sampler_id, sampler_rates)
return 0 unless user_rates && sampler_rates
shared_ids = user_rates.keys & sampler_rates.keys
return 0 if shared_ids.empty?# || shared_ids.size < MinimumShared
# сумма квадратов разницы
sum_of_squares = shared_ids.sum do |id|
(user_rates[id] - sampler_rates[id])**2
end