Skip to content

Instantly share code, notes, and snippets.


MichailAlexakis drmalex07

  • IMIS "Athena" Research Center
  • Athens, Greece
View GitHub Profile
drmalex07 /
Created January 14, 2023 22:00
An example with DelayQueue in Java. #DelayQueue #java
import java.time.Duration;
import java.util.concurrent.Callable;
import java.util.concurrent.DelayQueue;
import java.util.concurrent.Delayed;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class DelayQueueExample
drmalex07 /
Last active April 12, 2021 21:17
Checkout subtree of a Git repository. #git #git-sparse-checkout #git-checkout

README - Checkout subtree of a Git subdirectory

See also:

Clone with a specific history depth (--depth) and start at the root of the repository (--sparse). You can also filter-out BLOB files. For example:

git clone --sparse --depth 1 --filter blob:none --branch master

Change directory into the newly-cloned repository and enable sparse-checkout mechanism (to fetch parts of the subtree in steps of increasing depth)

drmalex07 /
Last active February 14, 2023 12:36
Run flyway migration from a Docker container. #flyway

README - Run a Flyway migration from a Docker container

See also:

Prepare basic Flyway configuration (no sensitive data inside), say at config/flyway.conf:

# vim: set syntax=jproperties:
# See
flyway.schemas = foo
flyway.defaultSchema = foo
drmalex07 / read-line-with-prompt.c
Created March 12, 2021 23:31
Real lines in C without overflowing buffer. #C #fgets #read-line
View read-line-with-prompt.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const int MAX_LINE_SIZE = 10;
int main(int argc, char **argv){
char line[MAX_LINE_SIZE + 2];
drmalex07 /
Created February 6, 2021 00:52
Mimic escapism Python package in Java. #escapism
import java.util.Objects;
* Mimic escaping logic from Python {@code escapism} package.
public class Escapism
public static final String SAFE_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789";
public static final char ESCAPE_CHAR = '-';
drmalex07 / weighted-graph.hpp
Created November 14, 2020 23:15
A simple weighted graph in C++. #c++ #graph #weighted-graph #minimum-spanning-tree #MST
View weighted-graph.hpp
#include <iostream>
#include <limits>
#include <vector>
#include <set>
#include <unordered_set>
#include <queue>
#include <stdexcept>
drmalex07 /
Last active April 11, 2021 13:02
Setup nullmailer. #smtp #nullmailer

README - Setup nullmailer

1. Prepare the inventory

An example inventory hosts.yml:

    # ...
drmalex07 /
Created September 30, 2020 11:08
An oneshot systemd service for loading IPVS table. #ipvs #ipvsadm #virtual-servers #linux-virtual-servers #systemd

README - Restore IPVS table (systemd service)

Lets assume our IPVS table is saved under /usr/local/etc/ipvs-table (e.g. as the output of ipvsadm -S).

Create the service file at /etc/systemd/system/restore-ipvs-table.service:

Description=Restore IPVS table from file
drmalex07 /
Created September 19, 2020 11:22
Format a duration in Java, #java #duration
public class DurationToString
private final Duration duration;
private final TimeUnit unit;
private DurationToString(Duration d, TimeUnit u)
this.duration = d;
this.unit = u;
drmalex07 /
Last active May 13, 2020 11:24
Start a java process with enabled remote JMX connections. #java #jmx #jconsole


At server

In this example we launch an H2 server, but it doesnt matter; same for any Java process.

Create a password file at ~/.jmxremote.password using $JRE_HOME/lib/management/jmxremote.password as a template.