Skip to content

Instantly share code, notes, and snippets.

View 62mkv's full-sized avatar

Kirill M 62mkv

  • Breakwater Technology
  • Tallinn, Estonia
View GitHub Profile
@62mkv
62mkv / Color_all_inversed_connectors.groovy
Last active February 4, 2025 13:02
Freeplane Scripts
// Import necessary Freeplane and Java classes
import org.freeplane.plugin.script.proxy.Proxy
import org.freeplane.plugin.script.proxy.Proxy.Node
import java.awt.Color
// Function to get all leaf nodes in natural order
def getAllLeafNodes(Node node, List<Node> leaves = []) {
if (node.children.size() == 0) {
leaves << node
} else {
@62mkv
62mkv / README.md
Created September 25, 2024 16:26
How to find a thread that opened a window (Windows 10 x64)
  • run "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\spyxx_amd64.exe"
  • click on "Find window" (Ctrl-F)
  • click "Hide Spy", click-press Finder Tool and drag him on the window you want identified
  • click "OK" -> you'll get to see "Property Inspector" for this window
  • if the window in question is not "enough" you can navigate to a "Parent" or "Next" or "Child" windows, using Windows tab in Property Inspector
  • on the window of choice, open "Process" tab
  • open Calc, choose "Programmer" mode, choose "Hex"
  • enter Process ID in Calc, it will be displayed as Dec value on the left hand
  • open Process Explorer
  • navigate to the process by ID (or by using a Find Windows Process - it also works but it only shows Process, not thread)
@62mkv
62mkv / README.md
Created November 22, 2023 15:34
Postgre recipes

Show table size in bytes with a percentage of all tables size

with t as (select * from pg_catalog.pg_tables
where schemaname = 'public'), 
sizes as (
select t.tablename, pg_total_relation_size(t.tablename::regclass) _size from t
order by 2 desc),
total as (select sum(_size) _size from sizes)
select sizes.tablename, sizes._size, to_char(sizes._size / total._size * 100.0,'999D99%') from sizes, total;
@62mkv
62mkv / README.md
Last active May 28, 2023 10:39
How to run "Zipkin2 + Elasticsearch" with Docker Desktop on Windows 10 with WSL2 backend

Problem

Turns out, Zipkin, when run "simply" with something like docker run openzipkin/zipkin:latest, dies out of OOM very soon, under any meaningful load. To prevent this from happening, one would want to run it together with a storage backend, like Elasticsearch. Unfortunately, Zipkin docs are probably hopelessly outdated, at least, I could not achieve this based on their README alone.

Solution

Create this docker-compose.yaml:

package org.example;
import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.api.trace.Span;
import io.r2dbc.proxy.core.*;
import io.r2dbc.proxy.listener.ProxyMethodExecutionListener;
import static java.util.stream.Collectors.joining;
@62mkv
62mkv / jQAssistant-Java.md
Last active May 24, 2022 13:48
Cypher samples

Some jQAssistant Java-plugin graphs related Cypher queries

Add a label to "root" JARs (relevant for Spring Boot JARs)

Explanation: graph, created with jqassistant scan -f libs/, will created a lot of :Jar entries, but most of them will be "library" JARs, located under BOOT-INF/ folder. So the only JAR that represents the actual application code, will have fileName starting with something else (e.g. /application-name.jar)

MATCH (j:Jar)
WHERE left(j.fileName, 2) &lt;&gt; '/B'

When we have source.json file with a following structure:

{
    "groupId": "bla-bla-bla",
    "members": 25,
    "topics": 25,
    "simple": false,
    "partitionAssignor": "range",
    "state": "STABLE",

How to dump H2 database contents on every Spring test class

Sometimes, you get into weird situations when test class passes when run alone, but fails, when run as part of a suite (i.e. alongside some other tests)

In order to get better visibility into what is happening, you might resort to dumping the whole H2 database content (or just selected tables)

For that, we can create a TestExecutionListener like this:

@Slf4j
/**
Can be tested quickly with Javasript REPL extension for VS Code
*//
function test_string(str) {
var par_count = 0;
for (var i = 0; i < str.length; i++) {
if (str[i] == '(') par_count++;
else if (str[i] == ')') par_count--;
@62mkv
62mkv / README.md
Last active May 5, 2021 10:21
OpenShift useful notes

Deploy an S2I-based application, based on Java 11, using custom output imagestream

Prepare "builder image"

First, we need to have a suitable (Java 11) builder image in our project

# pulling image locally
docker pull fabric8/s2i-java:latest-java11