Skip to content

Instantly share code, notes, and snippets.

View stereodenis's full-sized avatar

Denis Evgrafov stereodenis

View GitHub Profile
@stereodenis
stereodenis / gist:d5749a0f17b1b53b5963
Last active August 10, 2021 17:00
social meta tags helper ruby on rails 4
def social_meta_tags
title = "#{(content_for?(:title) ? (strip_tags(content_for(:title)).html_safe + ' / ') : '')}#{t('project_title')}"
description = content_for?(:description) ? content_for(:description) : ''
image = if @doc.present?
image_url(@doc.cover_photo.cover.url)
elsif @main.present?
image_url(@main.cover_photo.cover.url)
else
''
end
(function() {
alert();
})();
# It requires ACK - http://betterthangrep.com/
task :find_unused_images do
images = Dir.glob('app/assets/images/**/*')
images_to_delete = []
images.each do |image|
unless File.directory?(image)
# print "\nChecking #{image}..."
print '.'
result = `/Users/stereodenis/bin/ack -1 --type-set=mytype=.rb,.css,.scss,.haml,.coffee,.js,.erb,.en,.th,.html,.slim,.less,.sass #{File.basename(image)}`

A Capistrano Rails Guide

by Jonathan Rochkind, http://bibwild.wordpress.com

why cap?

Capistrano automates pushing out a new version of your application to a deployment location.

I've been writing and deploying Rails apps for a while, but I avoided using Capistrano until recently. I've got a pretty simple one-host deployment, and even though everyone said Capistrano was great, every time I tried to get started I just got snowed under not being able to figure out exactly what I wanted to do, and figured I wasn't having that much trouble doing it "manually".

:javascript
(function() {
if (window.pluso)if (typeof window.pluso.start == "function") return;
var d = document, s = d.createElement('script'), g = 'getElementsByTagName';
s.type = 'text/javascript'; s.charset='UTF-8'; s.async = true;
s.src = ('https:' == window.location.protocol ? 'https' : 'http') + '://share.pluso.ru/pluso-like.js';
var h=d[g]('head')[0] || d[g]('body')[0];
h.appendChild(s);
})();
@stereodenis
stereodenis / gist:4658776
Created January 28, 2013 20:38
последняя задача заочки физтеха
В некотором городе в автобусах используются компостеры, которые работают следующим образом. Пассажир вставляет в него некоторой стороной свой билет, и в этом билете пробиваются отверстия. Механизм для пробивания отверстий представляет собой прямоугольник, состоящий из (2N - 1) × (2M - 1) квадратных клеток фиксированного размера. Пусть строки этого прямоугольника нумеруются числами от 1 до 2N - 1, а столбцы — числами от 1 до 2M - 1. Некоторые клетки из тех, у которых обе координаты нечётные, представляют собой квадратные металлические выпуклости. В результате пробивания билета в нём образуются отверстия квадратной формы, расположение которых соответствует расположению этих выпуклостей на устройстве. При этом компостеры устроены таким образом, что они пробивают отверстия только тогда, когда все выпуклости полностью попадают на билет пассажира.
Для того, чтобы пассажиры не могли воспользоваться одним билетом несколько раз, в разных автобусах должны устанавливаться разные компостеры. Компостеры считаются различн
stereodenis@stereodenis-nix:~/work/yonga-shop$ gem install date-performance -v '0.4.8'
Building native extensions. This could take a while...
ERROR: Error installing date-performance:
ERROR: Failed to build gem native extension.
/home/stereodenis/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
creating Makefile
make
compiling date_performance.c
/home/stereodenis/.rvm/rubies/ruby-1.9.3-p125/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /home/stereodenis/work/seopultpro/script/rails server -b 0.0.0.0 -p 3000 -e development
=> Booting WEBrick
=> Rails 3.2.2 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[DEVISE] Devise.apply_schema is deprecated and has no effect. Please remove it.
[DEVISE] Devise.use_salt_as_remember_token is deprecated and has no effect. Please remove it.