Skip to content

Instantly share code, notes, and snippets.

@stulentsev
stulentsev / excel_eval.rb
Created September 26, 2015 10:15
Recursive Excel-like evaluator
require 'awesome_print'
require_relative 'table_evaluator.rb'
def print_test(label, expectation)
evaluator = TableEvaluator.new
actual = yield(evaluator)
if actual == expectation
puts "#{label}: PASS"
@stulentsev
stulentsev / grep_yaml.rb
Created April 4, 2014 16:36
script to search yaml files
#! /usr/bin/env ruby
require 'yaml'
require 'colorize'
filename = ARGV[0]
pattern_text = ARGV[1]
unless filename && pattern_text
puts "Usage: grep_yaml.rb filename pattern"
@stulentsev
stulentsev / mongotop_handller.rb
Created December 13, 2012 21:49
A small ruby script to aggregate output of mongotop MongoDB command
# Usage:
# mongotop --host host --port port | ruby mongotop_handler.rb
require 'curses'
include Curses
def print_stats stats, time_elapsed
h = stats.length
w = 130
win = Window.new(h + 6, w + 6,
@stulentsev
stulentsev / gist:4169314
Created November 29, 2012 14:09
Simple unicorn upstart script
description "start and stop unicorn"
version "1.0"
author "Sergio Tulentsev"
#expect fork
script
cd /srv/stats/current && /home/sergio/.rvm/bin/r193_bundle exec unicorn_rails -E production -c config/unicorn.rb
end script
@stulentsev
stulentsev / checker.rb
Created October 23, 2012 06:46
DNS resolver / speed checker for reg.ru
# Example output:
#
# Resolved IP addresses for www.reg.ru:
#     31.31.204.42
#     31.31.204.21
#     31.31.205.41
#
# Loading from 31.31.204.42 took 0.370469 seconds
# Loading from 31.31.204.21 took 1.037444 seconds
# Loading from 31.31.205.41 took 1.38692 seconds
@stulentsev
stulentsev / regru.rb
Created October 22, 2012 10:37
reg.ru task
require 'optparse'
require 'open-uri'
require 'json'
if ARGV.length == 0
puts "Usage: ruby regru.rb --domain NAME --username USER --password PWD"
puts "Defaults: "
puts " domain: google.com"
puts " username: test"
@stulentsev
stulentsev / gist:1366422
Last active October 30, 2017 08:57
Британские ученые text maker
str = "Today we (professors + teaching assistants) proctored a midterm exam for a class of about 80 students. There was undoubtedly a 'hardest' question on the exam, since nearly the entire classroom of students asked us how to proceed with that question. To be fair, we didn't give any hints, but it was clear that one had to use a definition to be able to proceed."
res = str.gsub(/\b[[:alpha:]]+\b/) do |word|
if word.length < 4
word
else
word[0] + # first letter
word[1..-2].chars.shuffle.join('') +
word[-1] # last letter
end