Skip to content

Instantly share code, notes, and snippets.

View Marthym's full-sized avatar
😎

Frédéric COMBES Marthym

😎
View GitHub Profile
@Marthym
Marthym / SshPortsForwards.java
Created August 15, 2024 09:01
java-database-connection-through-ssh
import com.machinezoo.noexception.Exceptions;
import lombok.extern.slf4j.Slf4j;
import org.apache.sshd.client.SshClient;
import org.apache.sshd.client.config.hosts.HostConfigEntry;
import org.apache.sshd.client.session.ClientSession;
import org.apache.sshd.common.config.keys.FilePasswordProvider;
import org.apache.sshd.common.util.net.SshdSocketAddress;
{
"__inputs": [
{
"name": "DS_PROMETHEUS",
"label": "Prometheus",
"description": "",
"type": "datasource",
"pluginId": "prometheus",
"pluginName": "Prometheus"
}
@Marthym
Marthym / docker-compose.yml
Last active June 11, 2023 15:33
Grafana Stack 📈 2. Collecte des métriques avec OpenTelemetry
---
version: "3.9"
services:
myapp:
image: marthym/myapp:latest
restart: unless-stopped
read_only: true
environment:
- SPRING_MAIN_BANNER-MODE
package fr.ght1pc9kc.baywatch.notify.infra;
import fr.ght1pc9kc.baywatch.notify.api.NotifyManager;
import fr.ght1pc9kc.baywatch.notify.api.model.BasicEvent;
import fr.ght1pc9kc.baywatch.notify.api.model.EventType;
import fr.ght1pc9kc.baywatch.notify.api.model.ReactiveEvent;
import fr.ght1pc9kc.baywatch.notify.api.model.ServerEventVisitor;
import fr.ght1pc9kc.baywatch.security.api.AuthenticationFacade;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
package fr.ght1pc9kc.baywatch.notify.domain;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.github.f4b6a3.ulid.UlidCreator;
import fr.ght1pc9kc.baywatch.notify.api.NotifyManager;
import fr.ght1pc9kc.baywatch.notify.api.NotifyService;
import fr.ght1pc9kc.baywatch.notify.api.model.BasicEvent;
import fr.ght1pc9kc.baywatch.notify.api.model.EventType;
import fr.ght1pc9kc.baywatch.notify.api.model.ReactiveEvent;
@Marthym
Marthym / SplitReactorFluxTest.java
Created April 21, 2021 16:59
Split Reactor Flux
package fr.ght1pc9kc.baywatch;
import lombok.AllArgsConstructor;
import lombok.Value;
import org.junit.jupiter.api.Test;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Sinks;
import reactor.test.StepVerifier;
import java.util.List;
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
#/ Usage: ./backup-dir.sh "gpg-passphrase" "backup-directory"
#/ Description: Compress, crypt and upload each directory to HubiC
#/ Examples: ./backup-dir.sh "xxxxx" "~/photos"
#/ Options:
#/ --help: Display this help message
usage() { grep '^#/' "$0" | cut -c4- ; exit 0 ; }
@Marthym
Marthym / git-repos-update-all.sh
Last active December 7, 2017 09:37
Update multiple git repositories
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
#/ Usage: git-repos-update-all.sh
#/ Version: 2.0
#/ Description: Find all git repository from `~/` and update them in multi-thread mode.
#/ Options:
#/ --help: Display this help message
function usage() { grep '^#/' "$0" | cut -c4- ; exit 0 ; }
#!/usr/bin/perl
use strict;
use warnings;
$|=1;
my %url;
# read config file
open CONF, $ARGV[0] or die "Error opening $ARGV[0]: $!";
while (<CONF>) {
@Marthym
Marthym / gist:1db21f44b7f296fcaf1f
Created April 1, 2015 14:24
Start Neo4j Impermanent Database + REST Server on random port for test
db = new TestGraphDatabaseFactory().newImpermanentDatabase();
boolean available = db.isAvailable(5000);
assert available;
int start = -1;
Random random = new Random();
while (start != 0) {
port = RANDOM_PORTS_LOWER_BOUND + random.nextInt(RANDOM_PORTS_COUNT);
try {