Skip to content

Instantly share code, notes, and snippets.

/**
* A type safe wrapper for comparable IDs
**/
import java.util.UUID
abstract class RefId<T : Comparable<T>> : Comparable<RefId<T>> {
abstract val value: T
override fun compareTo(other: RefId<T>) = value.compareTo(other.value)
class TimingLogger(
private val step: Long,
private val timeUnit: TimeUnit,
private val template: String,
private val counterScaler: Long = 1,
private val log: (String) -> Unit
) {
private var tickCounter: Long = 0L
private var timeMark = System.nanoTime()
@sorokod
sorokod / KotlinFavorite.kt
Last active January 26, 2022 14:40
Kotlin - favorite
/**
* List literals and List.get extensions
*/
object L {
// L[1,2,3,4]
inline operator fun <T> get(vararg a:T): List<T> = listOf(*a)
}
// aList[0..3]
@sorokod
sorokod / new_gist_file_1.js
Last active August 31, 2016 14:54
Custom Elastisearch analiyzer [es] [wtr]
DELETE /test
GET /test/_analyze
{ "field": "categories", "text": "123=Foxes"}
PUT /test
{
"settings": {
"analysis": {
"char_filter": {
@sorokod
sorokod / ReentrantLockVsSynchronized.java
Created February 18, 2016 13:04
A JMH benchmark comparing the throughput of synchronized vs ReentrantLock
package concurrent;
/**
* java -jar target\benchmarks.jar concurrent -t N -wi 10 -i 20 -rf csv -tu ms -si true
*/
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Param;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.State;
@samuelleach
samuelleach / reserve_install.R
Last active May 23, 2021 13:01
Install Rserve on Mac
pkg_url <- "http://cran.r-project.org/bin/macosx/mavericks/contrib/3.1/Rserve_1.7-3.tgz"
install.packages(pkg_url, repos = NULL)
library(Rserve)
Rserve(args="--vanilla")
@sorokod
sorokod / Java 8 Map idioms.java
Last active August 27, 2016 11:56
Java 8 Map idioms
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
import static java.util.Arrays.stream;
import static java.util.Map.Entry.comparingByValue;
import static java.util.function.Function.identity;
import static java.util.stream.Collectors.*;
@sorokod
sorokod / StringHashCollisions
Last active August 29, 2015 14:22
Code for generating collisions in String.hashCode
public class StringHashCollisions {
public static String padByZeroes(String original, int numberOfExtraZeroes) {
int length = original.length();
char[] chars = new char[length + numberOfExtraZeroes];
for (int i = 0; i < length; i++) {
chars[i + numberOfExtraZeroes] = original.charAt(i);
}
return new String(chars);
}
@sorokod
sorokod / StubsAndSpiesTest
Created March 5, 2015 11:28
A Mockito cheat sheet / Junit test - subs and spies
import org.junit.Before;
import org.junit.Test;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import java.util.LinkedList;
import java.util.List;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;