Skip to content

Instantly share code, notes, and snippets.

@GordPavel
GordPavel / code.java
Created January 30, 2025 16:39
Сравнение StringBuilder и String concatenation
package test;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
import static org.openjdk.jmh.annotations.Mode.AverageTime;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Measurement;
import org.openjdk.jmh.annotations.OutputTimeUnit;
@GordPavel
GordPavel / update_kafka_consumer.kt
Created November 12, 2024 09:46
Как налету обновлять KafkaConsumer
init {
with(containerFactory) {
setAutoStartup(false)
setContainerCustomizer { container: AbstractMessageListenerContainer<*, *> ->
containerHolder = container
}
factoryHolder = consumerFactory
}
}
@GordPavel
GordPavel / benchmark.kt
Created March 18, 2024 14:09
Use or not String.intern
package ru.tinkoff.sme.tariffs.cucumber.test
import org.openjdk.jmh.annotations.Benchmark
import org.openjdk.jmh.annotations.BenchmarkMode
import org.openjdk.jmh.annotations.Fork
import org.openjdk.jmh.annotations.Measurement
import org.openjdk.jmh.annotations.Mode.AverageTime
import org.openjdk.jmh.annotations.Mode.Throughput
import org.openjdk.jmh.annotations.OutputTimeUnit
import org.openjdk.jmh.annotations.Scope.Thread
FROM openjdk:17.0.1-jdk-slim
WORKDIR /opt/app
COPY target/*.jar tictactoebot.jar
ENTRYPOINT ["java","-jar","tictactoebot.jar"]
import static java.util.stream.Collectors.toList;
import java.time.Duration;
import java.util.Collections;
import java.util.List;
import java.util.stream.IntStream;
class Scratch {
public static void main(String[] args) {
// package my.code.cache.dao
public class CacheEntity {
String id;
String jsonData;
}
public interface CacheEntityRepository {
Optional<CacheEntity> findById(String id);
CREATE TABLE stats (
app varchar,
event_timestamp timestamp
additional_props jsonb
);
@GordPavel
GordPavel / RateLimiters.java
Created July 27, 2023 21:14
Comparison of rate limiters
class Scratch {
public static void main(String[] args) {
System.out.println("Counter based rate limiter");
testLimiter(new CounterBasedSlidingWindowRateLimiter(
3L,
60L
));
System.out.println("==============================");
System.out.println("Queue based rate limiter");
@GordPavel
GordPavel / rest_kitty_split_contract.yml
Created June 19, 2023 10:07
Описание контракта REST API для проекта Kitty split
openapi: '3.0.3'
info:
title: Rest kitty split
version: 0.0.2
tags:
- name: parties
description: Методы для работы с коллекциями трат, объединенных в parties
- name: participants
description: Методы для работы с участниками
- name: spendings
package com.example;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import com.sun.net.httpserver.HttpExchange;