Skip to content

Instantly share code, notes, and snippets.

View makaroni4's full-sized avatar

Anatoli Makarevich makaroni4

View GitHub Profile
require "ostruct"
class User
def initialize(basic_params)
@json_params = OpenStruct.new(basic_params)
end
def full_name
[
@json_params.first_name,
@makaroni4
makaroni4 / incremental_counter_config.json
Last active December 20, 2018 21:02
Config incremental counter via Firebase Realtime Database
{
"rules": {
".read": false,
".write": false,
"incremental_counter": {
".validate": "newData.isNumber() && newData.val() === data.val() + 1",
".read": true,
".write": true
}
}
@makaroni4
makaroni4 / auto_benchmark_with_ips.rb
Created December 2, 2016 00:15
Code for blog post "Benchmarking with Ruby"
require 'benchmark'
require 'benchmark/ips'
Benchmark.ips do |r|
r.report("+ ") do
42 + 42
end
r.report("* ") do
42 * 42
@makaroni4
makaroni4 / code.c
Last active October 12, 2016 12:40
Sample C program for VG
#include <stdio.h>
long long int myfunc (long long int i, long long int cache[])
{
if(cache[i]) {
return cache[i];
}
if (i <= 2) {
return i;
SELECT
age(now(), query_start) AS duration,
state,
pid,
query,
datname,
application_name,
waiting
FROM pg_stat_activity
ORDER BY duration DESC NULLS LAST;
ALTER TABLE mc_subscribers ADD COLUMN id BIGSERIAL;
UPDATE mc_subscribers SET id = nextval(pg_get_serial_sequence('mc_subscribers', 'id'));
ALTER TABLE mc_subscribers ADD PRIMARY KEY (id);
input = ["red", "green", "blue", "red", "blue"]
output = input.each_with_object(Hash.new(0)) do |word, o|
o[word] += 1
end
p output
# {"red"=>2, "green"=>1, "blue"=>2}
@makaroni4
makaroni4 / analyzer.rb
Created December 22, 2013 22:07
Simple static analyser for one-letter variable names.
require 'parser'
require 'parser/current'
module OneLetterVariableDetector
class NodeAnalyzer < Struct.new(:node, :path)
def analyze
return unless node && node.respond_to?(:type)
if node.type == :lvasgn || node.type == :lvar
if lvar_name.size == 1
train_path.each do |obj|
result << obj.obj_id
end if train_path.any?
#
# 1. Если ты вызываешь метод .each, то как минимум переменная
# должна иметь множественное число, это ведь коллекция (массив),
# т.е. это train_paths
#
# 2. Если массив пуст, то метод .each сразу вернет пустой массив
require 'active_record'
require 'csv'
ActiveRecord::Base.establish_connection(
adapter: "mysql2",
host: "localhost",
database: "36on_development",
user: "username",
password: "password",
pool: 5,