Skip to content

Instantly share code, notes, and snippets.

View highlight_oid.rb
def highlight_oid(oid)
str = oid.to_s
rgx = /(?<ts>\w{8})(?<machine>\w{6})(?<process>\w{4})(?<counter>\w{6})/
m = str.match(rgx)
require 'colorize'
print m[:ts].red
print m[:machine].yellow
print m[:process].light_magenta
print m[:counter].green
puts
View time_to_object_id.rb
def ts_to_oid(timestamp)
unixtime = timestamp.to_i.to_s(16)
BSON::ObjectId.from_string(unixtime + '0' * 16)
end
@stulentsev
stulentsev / count_by.rb
Created Jul 27, 2017
The missing piece of ruby enumerable api
View count_by.rb
module Enumerable
def count_by(&block)
Hash[group_by(&block).map { |key,vals| [key, vals.size] }]
end
end
@stulentsev
stulentsev / file.txt
Created Sep 27, 2017
for usage in tests
View file.txt
hello world!
View fizzbuzz_on_procs.rb
class Proc
def and(other_proc)
->(*args) { call(*args) && other_proc.call(*args) }
end
end
def word_or_number(n)
div3 = ->(x) { x.modulo(3).zero? }
div5 = ->(x) { x.modulo(5).zero? }
@stulentsev
stulentsev / gist:1366422
Last active Oct 30, 2017
Британские ученые text maker
View gist:1366422
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
View signed_jwt_example.rb
require 'openssl'
require 'jwt'
require 'awesome_print'
rsa_private = OpenSSL::PKey::RSA.generate 2048
rsa_public = rsa_private.public_key
payload = {
'data' => 'test',
'projects.quote.request' => true,
View golang_job_queue.md
@stulentsev
stulentsev / boilerplate.cpp
Last active Feb 7, 2019
hackerrank boilerplate
View boilerplate.cpp
#include <bits/stdc++.h>
using namespace std;
vector<string> split_string(string);
// Complete the sockMerchant function below.
int sockMerchant(int n, vector<int> ar) {
View keybase.md

Keybase proof

I hereby claim:

  • I am stulentsev on github.
  • I am stulentsev (https://keybase.io/stulentsev) on keybase.
  • I have a public key ASAHjuCvisMwyIgXMFulA_a6Bq9BCF8TWwp3KaPqXv3tago

To claim this, I am signing this object: