Skip to content

Instantly share code, notes, and snippets.

View Chuckame's full-sized avatar

Chuckame Chuckame

View GitHub Profile
@Chuckame
Chuckame / AvroNullSafetyAnnotationsModule.java
Created January 22, 2024 16:12
few classes for having an avro ObjectMapper (AvroMapper, the avro format for jackson) with native nullability using NotNull annotations, and excluding discriminator field using native JsonSubTypeInfo
import com.fasterxml.jackson.core.Version;
import com.fasterxml.jackson.databind.AnnotationIntrospector;
import com.fasterxml.jackson.databind.introspect.Annotated;
import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
import com.fasterxml.jackson.databind.module.SimpleModule;
import java.lang.annotation.Annotation;
@Chuckame
Chuckame / one-liner.sh
Created January 22, 2024 10:24
One liner for getting the latest release version on a github repository
basename $(curl -Ls -o /dev/null -w %{url_effective} https://github.com/<user>/<repo>/releases/latest)
@Chuckame
Chuckame / JacksonConfluentAvroDeserializer.java
Created January 18, 2024 17:12
kafka avro serializer & deserializer using jackson-avro-module, and compatible with the confluent avro serializers, useful when we don't want to generate classes using old plugins and only rely on java classes
import com.fasterxml.jackson.databind.ObjectReader;
import com.fasterxml.jackson.dataformat.avro.AvroMapper;
import com.fasterxml.jackson.dataformat.avro.AvroSchema;
import io.confluent.kafka.serializers.AbstractKafkaAvroDeserializer;
import io.confluent.kafka.serializers.KafkaAvroDeserializerConfig;
import lombok.SneakyThrows;
import org.apache.avro.Schema;
import org.apache.kafka.common.errors.SerializationException;
import org.apache.kafka.common.serialization.Deserializer;
@Chuckame
Chuckame / CoroutineTracer.kt
Last active January 4, 2024 16:12
Convenient way to trace a method call with opentelemetry (datadog by example) with an annotation using spring-aop
import io.opentracing.log.Fields
import io.opentracing.tag.Tags
import io.opentracing.util.GlobalTracer
import org.aspectj.lang.ProceedingJoinPoint
import org.aspectj.lang.annotation.Around
import org.aspectj.lang.annotation.Aspect
import org.springframework.stereotype.Component
import reactor.core.publisher.Mono
@Chuckame
Chuckame / gist:7a9dfd7b18f9142bd90ed25717d4f4c3
Created June 11, 2023 19:10
Linux command to prevent writes to an unmounted drive
chattr +i /mountpoint # will prevent writes for /mountpoint, but not prevent mounting
@Chuckame
Chuckame / script.js
Last active April 8, 2022 20:24
Dofusbook real damage calculator including CC
// ==UserScript==
// @name Dofusbook real dmg calculator
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://www.dofusbook.net/fr/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=dofusbook.net
// @grant none
// ==/UserScript==
(function() {
@Chuckame
Chuckame / hql-to-sql.java
Created August 6, 2021 13:43
Converts an HQL to SQL
String toSQL(EntityManager em, String hql) {
SessionImplementor hibernateSession = em.unwrap(SessionImplementor.class);
HQLQueryPlan p = new HQLQueryPlan(hql, false, Map.of(), hibernateSession.getSessionFactory());
if (p.getTranslators().length > 1) {
throw new UnsupportedOperationException();
}
return p.getTranslators()[0].getSQLString();
}
@Chuckame
Chuckame / upgrade-docker-compose.sh
Created August 2, 2020 11:47
Upgrade docker-compose to last version
#!/bin/bash
compose_version=$(curl https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)
output='/usr/local/bin/docker-compose'
curl -L https://github.com/docker/compose/releases/download/$compose_version/docker-compose-$(uname -s)-$(uname -m) -o $output
chmod +x $output
echo $(docker-compose --version)
@Chuckame
Chuckame / to-ac3.sh
Last active November 1, 2019 13:51
Convert video audio to AC3 to be compatible for my Z906 speakers
# With ffmpeg installed :
for f in *.mkv ; do ffmpeg -hide_banner -i "$f" -map 0 -c:v copy -c:a ac3 -c:s copy "${f%.mkv}.AC3.mkv" ; done
# Without ffmpeg installed
for f in *.mkv ; do docker run --rm -v multimedia-series:/temp/ jrottenberg/ffmpeg:4.1-scratch -stats -hide_banner -i /temp/"$f" -map 0 -c:v copy -c:a ac3 -c:s copy /temp/"${f%.mkv}.AC3.mkv" ; done
@Chuckame
Chuckame / youtube.com.php
Created February 13, 2017 23:03 — forked from ejb1123/youtube.com.php
youtube plugin for glype
<?php
/*******************************************************************
* Glype is copyright and trademark 2007-2013 UpsideOut, Inc. d/b/a Glype
* and/or its licensors, successors and assigners. All rights reserved.
*
* Use of Glype is subject to the terms of the Software License Agreement.
* http://www.glype.com/license.php
******************************************************************/
define('high_quality', true);