Skip to content

Instantly share code, notes, and snippets.

stulentsev / grep_yaml.rb
Created April 4, 2014 16:36
script to search yaml files
View grep_yaml.rb
#! /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 / excel_eval.rb
Created September 26, 2015 10:15
Recursive Excel-like evaluator
View excel_eval.rb
require 'awesome_print'
require_relative 'table_evaluator.rb'
def print_test(label, expectation)
evaluator =
actual = yield(evaluator)
if actual == expectation
puts "#{label}: PASS"
stulentsev / regru.rb
Created October 22, 2012 10:37 task
View regru.rb
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:"
puts " username: test"
stulentsev / checker.rb
Created October 23, 2012 06:46
DNS resolver / speed checker for
View checker.rb
# Example output:
# Resolved IP addresses for
# Loading from took 0.370469 seconds
# Loading from took 1.037444 seconds
# Loading from took 1.38692 seconds
stulentsev / gist:4169314
Created November 29, 2012 14:09
Simple unicorn upstart script
View gist:4169314
description "start and stop unicorn"
version "1.0"
author "Sergio Tulentsev"
#expect fork
cd /srv/stats/current && /home/sergio/.rvm/bin/r193_bundle exec unicorn_rails -E production -c config/unicorn.rb
end script
stulentsev / mongotop_handller.rb
Created December 13, 2012 21:49
A small ruby script to aggregate output of mongotop MongoDB command
View mongotop_handller.rb
# 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 = + 6, w + 6,

Uploading files to TextMaster

TextMaster uses AWS S3 for storage, so s3-compatible libraries/toolkits can be used (for example, EvaporateJS). However, it is quite simple to do it with a basic HTTP client library, which is capable of doing GET/PUT requests.

The process consists of 4 steps:

  1. Obtain a file you want to upload
  2. Construct HTTP PUT request that will upload the file
  3. Obtain a signature for the upload request
  4. Send the signed request

When running this command for the first time

$ bundle exec rake db:create

you may get this error

Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "pool"=>5, "username"=>"tulenmenu", "password"=>"tulenmenu", "database"=>"tulenmenu_development"}

FATAL: role "tulenmenu" does not exist

View virgil.go
package main
import (
func main() {
View game_of_life.rb
class Cell
attr_accessor :alive
attr_accessor :coordinates
attr_accessor :neighbours
attr_accessor :live_neighbours
def initialize(live_cell_ratio)
@alive = ([true] +, false)).sample
@coordinates = []
@neighbours = []