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 / MarsRovers.java
Created May 16, 2010 19:02
The solution of Mars Rovers problem. Description is below, in first comment.
package dim.mars.rovers;
import java.io.BufferedReader;
import java.io.FileReader;
public class MarsRovers {
static final String dirs = "NESW";
static final int[][] dirShifts = { { 0, 1 }, { 1, 0 }, { 0, -1 }, { -1, 0 } };
static final int dirCount = dirs.length();
static int xMin = 0, yMin = 0, xMax, yMax;
@dmitriy-kiriyenko
dmitriy-kiriyenko / active_record_3.rb
Created October 15, 2010 11:19
ActiveRecord 3 query interface for ActiveRecord 2
class ActiveRecord::Base
class << self
[:conditions, :order, :group, :having, :limit, :offset, :joins, :include, :select, :from, :readonly, :lock].each do |m|
send(:define_method, m) do |arg|
scoped(m => arg)
end
end
alias_method :where, :conditions
alias_method :start, :offset
@dmitriy-kiriyenko
dmitriy-kiriyenko / console
Created May 16, 2011 12:51
Init.d to start/stop xvfb. Put it into /etc/init.d and chmod it to 755
apt-get install xvfb
apt-get install firefox
@dmitriy-kiriyenko
dmitriy-kiriyenko / shell
Created May 17, 2011 14:30
Some cool git strings
git log --format="%an" | sort | uniq -c | sort -nr
@dmitriy-kiriyenko
dmitriy-kiriyenko / paypal_recurring_gateway.rb
Created July 1, 2011 08:22
Paypal Recurring Gateway, based on ActiveMerchant
class PaypalRecurringGateway < ActiveMerchant::Billing::PaypalGateway
NS2 = 'n2:'
self.default_currency = 'USD'
def create_recurring(money, credit_card, options = {})
request = create_recurring_request(money, credit_card, options)
commit("CreateRecurringPaymentsProfile", request)
end
def update_recurring(money, profile_id, options = {})
@dmitriy-kiriyenko
dmitriy-kiriyenko / rover.rb
Created July 8, 2011 13:25
Mars rovers from Slava
class Rover
MOVE = {
'N' => lambda{ |position| position[:y] += 1 },
'E' => lambda{ |position| position[:x] += 1 },
'S' => lambda{ |position| position[:y] -= 1 },
'W' => lambda{ |position| position[:x] -= 1 }
}.freeze
ROTATE = {
@dmitriy-kiriyenko
dmitriy-kiriyenko / gist:1131872
Created August 8, 2011 14:39
Redtape Gemfile
source :rubygems
gem 'rails', '3.0.9'
gem 'mysql2', '0.2.10'
gem 'devise'
gem 'devise_invitable'
gem 'validation_reflection'
gem 'paperclip'
gem 'sass'
gem 'activemerchant', :require => 'active_merchant'
@dmitriy-kiriyenko
dmitriy-kiriyenko / date_support.js
Created September 30, 2011 11:39
Some useful date functions for Javascript
Date.today = function() {
return (new Date()).beginningOfDay();
}
Date.prototype.beginningOfDay = function() {
var result = new Date(this);
result.setHours(0);
result.setMinutes(0);
result.setSeconds(0);
result.setMilliseconds(0);
@dmitriy-kiriyenko
dmitriy-kiriyenko / gist:1433316
Created December 5, 2011 11:35
MySQL - install and remove
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*
sudo rm /etc/my.cnf
sudo vi /etc/hostconfig and delete string MYSQLCOM=-YES-
Download from http://dev.mysql.com/downloads/mysql/5.1.html#downloads
@dmitriy-kiriyenko
dmitriy-kiriyenko / active_model_lint.rb
Created February 23, 2012 13:37
ActiveModel lint tests for rspec
# put the file into spec/support
shared_examples_for "ActiveModel" do
include ActiveModel::Lint::Tests
# to_s is to support ruby-1.9
ActiveModel::Lint::Tests.public_instance_methods.map{|m| m.to_s}.grep(/^test/).each do |m|
example m.gsub('_',' ') do
send m
end
end