Skip to content

Instantly share code, notes, and snippets.

View StanSvec's full-sized avatar

Stan Svec StanSvec

  • Taggstar
  • Chiang Mai, Thailand
View GitHub Profile
@StanSvec
StanSvec / serio.py
Created June 22, 2024 12:38
Async SEN0395 Sensor
import asyncio
import serialio
from sensation.sen0395 import SensorAsync, PresenceHandlerAsync
class Printer:
async def __call__(self, p):
@StanSvec
StanSvec / WorkLimiter.java
Created May 23, 2024 14:19
Work limiter for Java
import java.util.concurrent.TimeUnit
import static java.util.Arrays.asList
import static java.util.concurrent.TimeUnit.MILLISECONDS
/**
* Limit amount of work according to the provided frequency limitations
*
* Note: Converted from Java
*/
@StanSvec
StanSvec / JsonBench.java
Last active March 19, 2021 03:58
Basic JSON string reading performance benchmark of JSON-P (JSR 374) vs Jackson
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.glassfish.json.JsonUtil;
import javax.json.Json;
import javax.json.JsonObject;
@StanSvec
StanSvec / redis-copy-key.txt
Created November 23, 2016 16:20
Copy Redis key to another Redis instance
redis-cli --raw dump mykey | head -c-1 > myfile
cat myfile | redis-cli -x restore mynewkey 0
@StanSvec
StanSvec / SharedInstance.java
Created June 7, 2016 10:37
Allow monitor and manage shared instance
import java.util.Optional;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Supplier;
/**
* This is a container for shared instance allowing monitoring of sharing and safe manipulation.
*
* A new instance is provided by the supplier when the container is created. Every execution of {@link Supplier#get()} must return new unique instance.
* The instance is provided to the borrowers by using {@link #share()} method. The number of borrowers is unlimited,