- 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)
// 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 { |
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;
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.
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; |
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) <> '/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",
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--; |