Live data from Hacker News

Show HN: FlowTracker – Track data flowing through Java programs

github.com

21–30 of 34 posts

Re: Show HN: FlowTracker – Track data flowing through Java programs

#21
Years ago I experimented[1] with a similar concept (wanting something like JavaScript source maps, but for HTML). I didn't manage to find the time to expand on it, but I think web developer tooling would really benefit from this sort of full-stack attribution.

Integration of any solution like this into existing frameworks feels like a big challenge.

[1] HTML Source Maps - https://github.com/connorjclark/html-source-maps https://docs.google.com/document/d/19XYWiPL9h9vA6QcOrGV9Nfkr...

Re: Show HN: FlowTracker – Track data flowing through Java programs

#22
This is incredibly cool.

I love how good the tooling is in the java/jvm ecosystem. Last time I was this blown away was with jitwatch ( https://github.com/AdoptOpenJDK/jitwatch )

FlowTracker reminds me a little of taint analysis, which is used for tracking unvalidated user inputs or secrets through a program, making sure it is not leaked or used without validation.

search keywords are "dynamic taint tracking/analysis"

https://github.com/gmu-swe/phosphor

https://github.com/soot-oss/SootUp

https://github.com/feliam/klee-taint

Re: Show HN: FlowTracker – Track data flowing through Java programs

#23
post #12
post #6

Blown away by the demo tracking an HTML element back to the SQL statement that added that value to the database . I can totally see a future where tools like this are the first line of defense when troubleshooting bugs.

Thanks. As I was developing FlowTracker, a lot of the work was driven by making tracking of specific example programs work. I knew what result I was aiming for, but it was hard to predict what lower level mechanisms needed to be supported to make a specific example work. That often depended on internal implementation details of the JDK or libraries being used where the data was passing through. But the HTML element l…

I didn't make it to that element of the demo because I don't need a tool to help me find which file HTML text strings are from or that HTTP headers come from my web server. So I would recommend putting that "wow" element earlier in the demo.

Re: Show HN: FlowTracker – Track data flowing through Java programs

#25

Cool! I wrote something on the same spirit but for Clojure, called FlowStorm http://www.flow-storm.org/ For instrumentation, instead of an instrumenting agent it uses a fork of the official Clojure compiler (in Clojure you can easily swap compilers at dev) that adds extra bytecode. What is interesting about recording Clojure programs execution is that most values are immutable, so you can snapshot them by just retain…

This is beautiful! great job! - What was the reason you choose javafx? After you choose fx, did you look at cljfx?

Re: Show HN: FlowTracker – Track data flowing through Java programs

#29
post #25

Cool! I wrote something on the same spirit but for Clojure, called FlowStorm http://www.flow-storm.org/ For instrumentation, instead of an instrumenting agent it uses a fork of the official Clojure compiler (in Clojure you can easily swap compilers at dev) that adds extra bytecode. What is interesting about recording Clojure programs execution is that most values are immutable, so you can snapshot them by just retain…

This is beautiful! great job! - What was the reason you choose javafx? After you choose fx, did you look at cljfx?

Thanks! I started with cljfx and then moved to pure javafx, first because it wasn't straight forward for me to understand the performance overhead of cljfx under different scenarios (when using subscriptions and contexts), and second because I want to drag as few dependencies as possible so they don't conflict with debuggee one's.

Re: Show HN: FlowTracker – Track data flowing through Java programs

#30

This is pretty cool! Do you think something similar is possible for c#, too?

There's an event system that is integrated into all kinds of bits in the standard library and surrounding ecosystem, which plugs into all kinds of high level tools: dotnet-trace/-monitor/-counters, profiling in VS and Rider, etc. There are also telemetry hooks but I have not looked into them in closer details, supposedly that's what .NET Aspire uses.

I think a similar experience can be quickly achieved with tracing in aspire: https://devblogs.microsoft.com/dotnet/introducing-dotnet-asp...

It's a bit different but I don't know if anyone made a quick handy GUI tool to hook up to .NET's EventPipe and display its data in a nice way, but the extensive API for that is there.

Post reply on HN