Skip to content

Instantly share code, notes, and snippets.

View MRGRD56's full-sized avatar
🦙

KIRILL GOLIKOV MRGRD56

🦙
View GitHub Profile
@MRGRD56
MRGRD56 / Button.h
Last active May 19, 2023 20:25
Arduino Button
#ifndef MRGRD56_BUTTON_H
#define MRGRD56_BUTTON_H
#endif //MRGRD56_BUTTON_H
#include <Arduino.h>
struct Button {
byte pin;
byte state = HIGH;
@MRGRD56
MRGRD56 / arrows.md
Last active April 25, 2023 07:37
Unicode Arrow Characters

     

@MRGRD56
MRGRD56 / Disabled.java
Created October 24, 2022 12:36
Disable Bean (Component) in Spring Boot with an annotation
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@ConditionalOnExpression("false")
public @interface Disabled {
}
@MRGRD56
MRGRD56 / source.md
Last active October 5, 2022 12:00
Get SQL native query parameter bindings in IDEA debugger
((NativeQueryImpl) sqlQuery).queryParameterBindings.parameterBindingMap.entrySet().stream().collect(Collectors.toMap(entry -> entry.getKey().getName(), entry -> entry.getValue().getBindValue()))
((NativeQueryImpl) sqlQuery).queryParameterBindings.parameterListBindingMap.entrySet().stream().collect(Collectors.toMap(entry -> entry.getKey().getName(), entry -> entry.getValue().getBindValues().stream().map(Object::toString).collect(Collectors.joining(","))))
@MRGRD56
MRGRD56 / phoneTransformer.ts
Last active October 5, 2022 11:50
Phone 8 to +7
const phoneTransformer = (value: string): string => {
return value.replace(/^8(9\d{2})(\d{3})(\d{2})(\d{2})$/, '+7($1) $2 $3 $4');
};
@MRGRD56
MRGRD56 / TaskInvoker.java
Last active November 23, 2022 08:04
TaskInvoker
package com.mrgrd56.utils.concurrent;
import java.util.*;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.stream.Collectors;
/**
@MRGRD56
MRGRD56 / screen-cheatsheet.md
Last active October 14, 2022 11:14
Linux screen - Main Commands / Cheat Sheet

Start a new screen session with session name

screen -S <name>

List running sessions/screens

screen -ls
@MRGRD56
MRGRD56 / RestTemplateProxyExample.java
Created August 18, 2022 10:54
Using proxy in RestTemplate in Spring Boot
private RestTemplate getProxiedRestTemplate(Proxy proxy, SimpleClientHttpRequestFactory requestFactory) {
if (proxy != null) {
requestFactory.setProxy(proxy);
}
return new RestTemplate(requestFactory);
}
@MRGRD56
MRGRD56 / SingleCache.java
Created August 18, 2022 10:50
Java Caffeine Single Cache (caching single value)
package com.mrgrd56.utils.cache;
import com.github.benmanes.caffeine.cache.Cache;
import org.checkerframework.checker.nullness.qual.PolyNull;
import java.util.function.Supplier;
public class SingleCache<T> {
private static final Object KEY = "KEY";
@MRGRD56
MRGRD56 / CustomCollectors.java
Last active August 8, 2022 10:50
Java Custom Utils
package com.mrgrd56.utils;
import java.util.Map;
import java.util.stream.Collector;
import java.util.stream.Collectors;
public final class CustomCollectors {
private CustomCollectors() { }
public static <K, V> Collector<? super Map.Entry<K, V>, ?, Map<K, V>> toMapFromEntries() {