Skip to content

Instantly share code, notes, and snippets.

@kirillsulim
kirillsulim / resume.json
Last active November 20, 2023 10:00
Update
{
"basics": {
"name": "Kirill Sulim",
"label": "Senior Java Developer",
"phone": "+7-912-66-123-16",
"url": "https://kirillsulim.github.io/",
"summary": "I am senior java developer with 8+ years of experience. I've successfully created and developed projects in many companies, including Yandex an VK. My main goal in development is to create long-term project with good code quality and infrastructure.\n In my free time I'm developing several small open-source development tools written in Python.\n",
"profiles": [
{
"network": "Telegram",
@kirillsulim
kirillsulim / Top 10 mistakes on Oracle to Postgres migration.md
Last active June 7, 2021 09:29
10 частых ошибок при миграции Oracle -> Postgres
trap "exit 1" TERM
export TOP_PID=$$
function error() {
echo "Error: $1"
kill -s TERM $TOP_PID
} >&2
HDIR='${HOME}'
HHDIR='${HDIR}'
  • Example of telegram badge: Chat on Telegram
import subprocess
import os
class VirtualenvAdapter():
def __init__(self, dir, venv_dir_name='.venv'):
self.dir = dir
self.venv_dir = os.path.join(dir, venv_dir_name)
def enabled(self):
from typing import List
import subprocess
import sys
def call_and_get_out(command: List[str]):
with subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) as p:
try:
out, err = p.communicate()
code = p.poll()
@kirillsulim
kirillsulim / SlidingWindowCounter.java
Created December 27, 2018 07:26
(draft) MT now exactly right lock-free sliding window
package some;
import java.time.Clock;
import java.util.Objects;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.BinaryOperator;
/**
* SlidingWindowCounter
@kirillsulim
kirillsulim / a.js
Created December 10, 2018 18:35
Random step problem
l = (N) => {
sum = 0, iter = 1000000;
for (let i = 1; i < iter; i++) {
var s = 0,
j = 0;
while (s < N) {
s += Math.random();
j++;
}
sum += j;
public static <T> Validator<T extends Comparable<T>> positiveValidator(T zeroValue) {
return value -> {
if (zeroValue.compareTo(value) < 0) {
return Optional.empty()
}
else {
rerurn Optional.of(String.format("Value must be positive but was '%s'", value));
};
}
@kirillsulim
kirillsulim / Fsm.java
Created October 4, 2018 14:02
Thread-safe FSM realization draft
package io.su0.universum.util.fsm;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;