[{"data":1,"prerenderedAt":297},["ShallowReactive",2],{"project-41530190":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":41,"post_text":42,"what":43,"said":77,"maker_in_thread":168,"shape":177,"grid":181,"attempts":261,"same_week":262,"maker_shows":33,"maker_hidden":290,"reader_version":291,"card":292},"41530190","FlowTracker","Track data flowing through Java programs","title","Show HN: FlowTracker – Track data flowing through Java programs","https:\u002F\u002Fgithub.com\u002Fcoekie\u002Fflowtracker","github.com","coekie",1726227208,2024,280,32,232,3515,7,"legend","dev_tools","debugging tracing","library",[24,25,26,27],"dynamic taint tracking","java agent","data flow tracing","bytecode instrumentation","loved",0.61,{"positive":31,"neutral":32,"mixed":33,"critical":34},14,5,1,0,20,{"idea":37,"design":38,"performance":40},{"positive":32,"critical":34},{"positive":39,"critical":34},3,{"positive":34,"critical":34},[34,34,34,34,34,34,34,32,32,34,32,39,32,32,39,32,34,32,39,34,32,32,32,32,39,34,34,32,39,39,32,32],"FlowTracker, a Java agent that tracks data flowing through Java programs. It helps you understand where any program got its output from, what it means, and why it wrote it.\n\nWatch the video or explore the live demo yourself, and read how it works at https:\u002F\u002Fgithub.com\u002Fcoekie\u002Fflowtracker",{"problem":44,"audience":50,"pricing":62,"motivation":62,"time_to_build":62,"stack":63,"openness":76,"stage":76,"team_size":76},{"value":45,"source":46,"evidence":47},"Understanding where a program's output data came from and why it was produced","maker",[48],{"id":49},"post",{"value":51,"source":52,"evidence":53},"Java developers exploring unfamiliar codebases or debugging","inferred",[54,58],{"id":55,"by":56,"text":57},"41530669","michaelmior","Very cool! I love the demo video and I could definitely see how this would be useful when diving into an unfamiliar codebase.",{"id":59,"by":60,"text":61},"41533120","yellow_lead","This looks really cool, I think this could have saved me some time hunting bugs when I was working with Spring in the past.",null,[64,68],{"value":65,"source":46,"evidence":66},"Java",[67],{"id":49},{"value":69,"source":70,"evidence":71},"JavaFX","commenter",[72],{"id":73,"by":74,"text":75},"41533383","udkl","This is beautiful! great job! - What was the reason you choose javafx? After you choose fx, did you look at cljfx?","unknown",{"praise":78,"objections":104,"requests":116,"questions":131,"alternatives":139},[79,95],{"value":80,"source":70,"evidence":81},"Impressive, blown away by the demo, especially HTML-to-SQL tracing",[82,86,87,91],{"id":83,"by":84,"text":85},"41530837","BoppreH","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…",{"id":55,"by":56,"text":57},{"id":88,"by":89,"text":90},"41531626","kitd","Very impressive!",{"id":92,"by":93,"text":94},"41541090","apnew","Very very impressive.",{"value":96,"source":70,"evidence":97},"Useful for debugging and understanding unfamiliar codebases",[98,99,100],{"id":55,"by":56,"text":57},{"id":59,"by":60,"text":61},{"id":101,"by":102,"text":103},"41531811","BadJo0Jo0","Thanks for this! Been trying to get this work with VSCode with a project I'm trying to make sense of. Having to take a pause on it right now, but looking forward to getting it…",[105],{"value":106,"source":70,"evidence":107},"Demo leads with the less useful HTML element example; suggests reordering or splitting into shorter demos",[108,112],{"id":109,"by":110,"text":111},"41533349","Noumenon72","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…",{"id":113,"by":114,"text":115},"41536747","noisy_boy","Or maybe split the demo into shorter demos\u002Fgifs where each highlights a specific part. Very cool project, should get more attention.",[117,124],{"value":118,"source":70,"evidence":119},"Integration with Gradle builds",[120],{"id":121,"by":122,"text":123},"41531068","larusso","Hmm would love to connect this to our gralde builds :)",{"value":125,"source":70,"evidence":126},"Support for C# or .NET",[127],{"id":128,"by":129,"text":130},"41533415","hansoolo","This is pretty cool! Do you think something similar is possible for c#, too?",[132],{"value":133,"source":70,"evidence":134},"Whether the tool is the same as a paper on dynamic SQL injection detection in Java",[135],{"id":136,"by":137,"text":138},"41532291","peterpost2","If I recall there was a paper on a similar tool that was used for finding SQL-injections dynamically in java programs. Is this the same tool?",[140,147,154,161],{"value":141,"source":70,"evidence":142},"FlowStorm (Clojure)",[143],{"id":144,"by":145,"text":146},"41530692","jpmonettas","Cool! I wrote something on the same spirit but for Clojure, called FlowStorm http:\u002F\u002Fwww.flow-storm.org\u002F For instrumentation, instead of an instrumenting agent it uses a fork of…",{"value":148,"source":70,"evidence":149},"Phosphor dynamic taint tracking",[150],{"id":151,"by":152,"text":153},"41533337","ysleepy","This is incredibly cool. I love how good the tooling is in the java\u002Fjvm ecosystem. Last time I was this blown away was with jitwatch ( https:\u002F\u002Fgithub.com\u002FAdoptOpenJDK\u002Fjitwatch )…",{"value":155,"source":70,"evidence":156},"Java Flight Recorder",[157],{"id":158,"by":159,"text":160},"41530800","exabrial","This is awesome! Reminds me of Java flight recorder!",{"value":162,"source":70,"evidence":163},".NET Aspire and EventPipe tooling",[164],{"id":165,"by":166,"text":167},"41534434","neonsunset","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:…",{"comments":169,"answered":33,"key":170},2,[171,174],{"id":172,"text":173},"41531355","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…",{"id":175,"text":176},"41532522","No, that must have been something different. It would be possible to extend what FlowTracker does to also find SQL (or other) injection vulnerabilities. So it's possible the tool…",{"commenters":178,"max_depth":32,"maker_replies":169,"first_comment_mins":179,"lifespan_hours":180},26,57,30,[182,184,188,190,192,195,197,199,201,202,204,208,210,212,215,219,222,225,229,230,232,236,238,240,242,244,246,248,252,253,257,259],[144,34,34,183,145,34],"other\u002Fneutral\u002Fidea",[185,34,34,186,187,34],"41530938","commenter\u002Fneutral\u002Fnone","jiehong",[189,34,34,186,145,34],"41531102",[191,34,34,186,187,34],"41531191",[193,34,34,194,145,34],"41531229","commenter\u002Fneutral\u002Fexecution",[73,34,34,196,74,34],"commenter\u002Fneutral\u002Fdesign",[198,34,34,196,145,34],"41534187",[151,33,32,200,152,34],"project\u002Fpositive\u002Fidea",[83,169,32,200,84,34],[172,169,34,203,11,33],"maker\u002Fneutral\u002Fexecution",[205,169,32,206,207,34],"41532153","maker\u002Fpositive\u002Fdesign","immibis",[109,169,39,209,110,34],"project\u002Fmixed\u002Fdesign",[113,169,32,211,114,34],"project\u002Fpositive\u002Fdesign",[213,169,32,200,214,34],"41531707","actionfromafar",[216,39,39,217,218,34],"41530602","project\u002Fneutral\u002Fidea","smartmic",[55,220,32,221,56,34],4,"project\u002Fpositive\u002Fnone",[223,32,34,183,224,34],"41533252","hoten",[226,227,32,200,228,34],"41533526",6,"svieira",[136,18,39,217,137,34],[175,18,34,231,11,33],"maker\u002Fneutral\u002Fidea",[233,234,32,200,235,34],"41533368",8,"SeriousM",[101,237,32,221,102,34],9,[158,239,32,221,159,34],10,[59,241,32,221,60,34],11,[128,243,39,217,129,34],12,[165,243,34,245,166,34],"other\u002Fneutral\u002Fnone",[247,243,34,186,129,34],"41538723",[249,250,32,211,251,34],"41533905",13,"KomoD",[121,31,39,217,122,34],[254,31,39,255,256,34],"41532688","project\u002Fneutral\u002Fperformance","mdaniel",[92,258,32,221,93,34],15,[88,260,32,221,89,34],16,[],[263,268,273,277,282,286],{"id":264,"name":265,"points":266,"category":267},"41521919","FixHub",928,"hardware",{"id":269,"name":270,"points":271,"category":272},"41539125","Meet.hn",768,"consumer_social",{"id":274,"name":275,"points":276,"category":20},"41517312","Konty",392,{"id":278,"name":279,"points":280,"category":281},"41544969","Wordllama",370,"ai",{"id":283,"name":284,"points":285,"category":20},"41563958","Void",347,{"id":287,"name":288,"points":289,"category":281},"41545335","Bullshit Remover",270,false,"v2",{"id":293,"name":5,"line":6,"ai":290,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":294,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":295,"url":9,"mix":296,"praise":80,"objection":106,"sub":21},41530190,[24,25,26,27],"00000005505355350530555530053355",[31,32,33,34],1793991100166]