ByteCode.News
Submit RSS Atom Sign in

Back to the channels

#java

  1. Ledev I have a question
  2. Swayze every jvm implementation is platform specific
  3. Swayze so perhaps pick a platform as well
  4. Swayze Ledev: we can't wait to hear it
  5. deebo any tips on tools to generate load on a rest api locally? i've used stuff like gatling in the past but need something that's way simpler and faster to get running
  6. Swayze k6 ...
  7. [twisti] deebo: i think jmeter is the gold standard for that
  8. deebo jmeter is pure satan
  9. deebo gatling is just half satan
  10. [twisti] really, my bad then
  11. [twisti] never used it myself, its just always the first thing i hear
  12. deebo unless it has changed much, it's only suggested by people that want to be paid to maintain the tests, same as with robot
  13. dreamreal jmeter IS the gold standard although tehre are others
  14. dreamreal it depends on what you're doing
  15. dreamreal jmeter's complex because it's freaking THOROUGH and you can build sequences in it, ideal for a REST application: do this, wait for that, respond using data from "this" like that... invoke these methods, etc
  16. deebo yeah our previous gatling tests did that, but they require as much upkeep as the applications themselves, should move back to server geenrated stuff for ease of loadtesting
  17. deebo guess i'll just pick production request rates from dynatrace and try to approximate the same with gatling
  18. dreamreal Understood yet the problem is that nothing is free
  19. dreamreal you could do it yourself with robot, with plenty of other tools from other languages, too, but you end up programming the load testing tool
  20. dreamreal what jmeter brings isn't "avoid programming the load testing tool" but metrics and tools to take away bits your load testing tool will have to write. You still have to write the rest of it, unless your goal is "hammer this URL with this data" over and over again, which MAY be your goal, but if that's it, what are you waiting for? ab can do it, but so can jmeter, in less time than it took to write
  21. dreamreal this comment.
  22. Tenchi back in the day there was a java-based closed-source tooll from a company in sweden called PureLoad
  23. Tenchi it was really nice
  24. dreamreal Tenchi: heh, he's complaining about OPEN SOURCE being too expensive and you offer a commercial product?!
  25. Tenchi i dunno if even exists anymore but 15 years or so ago it was what i preferred
  26. dreamreal I mean, postman can do it too
  27. Tenchi for all i know the company went out of business and they released it as opensource, i dunno
  28. dreamreal still there apparently: https://emblasoft.com/product/pureload
  29. nevet PureLoad
  30. Tenchi yep, that's them
  31. Tenchi doesn't look like they opensourced anything heh
  32. Tenchi they were really nice guys though... reminded me of the karl and magnus caliber of people
  33. Tenchi 😁
  34. dreamreal that's... uh... pretty high praise
  35. dreamreal magnus is still one of the best programmers I've ever known
  36. Tenchi well, i'm referring more to how nice they were in the swedish/scandinavian kind of way more so than their talent
  37. Tenchi i really liked the software too, it was really nice in that you could build functional tests and then use the same tests with the load generation thing
  38. dreamreal hrm, I'm not sure if I recall them being "nice" in any particular way, I thought they were efficient
  39. Tenchi it handled distributed load testing very well
  40. dreamreal deebo: /m nevet wrk
  41. dreamreal maybe /m nevet locust
  42. dreamreal https://bytecode.news/posts/2026/03/the-ai-dilemma
  43. javabot dreamreal's title: "The AI Dilemma | bytecode.news"
  44. dreamreal oh, oh. Someone's sugesting moving lombok to gradle. :D
  45. dreamreal AND cutting off support for pre-17!
  46. deebo few years ago i wrote a tool that analyzes our logs (we used to log bodies for http requests too) and just replayed the same load with the same timing to a local service, that was the bestest
  47. deebo now i just need some load that resembles real load to profile a services startup so i can see if there's something to warm up before accepting traffic
  48. dreamreal I just recoiled a lot inside
  49. dreamreal yikes
  50. dreamreal :D
  51. dreamreal deebo: if it's that simple, why not ab?
  52. deebo need random data etc to not just hit caches etc
  53. dreamreal hey, then, or wrk, or dumb ol' jmeter
  54. dreamreal heh: Sentiment for irc://libera/%23java: -1/10 | Intensity mod | Themes: load testing tools, JMeter debate, tooling complexity | Summary: Calm technical exchange about REST API load testing; mild friction over JMeter complexity vs. simplicity, but cooperative problem-solving prevails.
  55. dreamreal (from nevet, the sentiment operation)
  56. deebo in one of our services the issue was internal locking in jackson, for some rason this seems to be different, but couldn't pin point the reason with tests we have available
  57. dreamreal internal... LOCKING? Um, jackson's marshalling is pretty thread-safe, but it's also pretty normal to build mappers on the fly, they're pretty light, and jackson3 emphasizes that point
  58. kcomhnall +
  59. deebo yep, we hit locking in jackson (de)serializer creation when swapping load from x old isntances to x new instances
  60. deebo there was also some jdk bug with lock contention for ssl certificate loading or something weird
  61. dreamreal huh, interesting
  62. deebo https://github.com/openjdk/jdk/commit/9b747491de01fd011b09668a67113e80c2b7c708
  63. nevet 8276660: Scalability bottleneck in java.security.Provider.getService() · openjdk/jdk@9b74749
  64. javabot deebo's title: "8276660: Scalability bottleneck in java.security.Provider.getService() · openjdk/jdk@9b74749 · GitHub"
  65. dreamreal That'd be fascinating to work out. Have you looked at jackson3? (Not a recommendation, this is a query. That migration is not trivial and I know it.)
  66. dreamreal the security cert stuff is outside of my wheelhouse: I have NO insight there
  67. deebo we're on jersey, which doesn't do jackson3 yet
  68. dreamreal I don't understand - how would jackson locking affect you if you're using jersey?
  69. deebo that's what spring boot uses for json in jersey
  70. dreamreal oh, sorry, dang, catching up, been busy. Context switch failure on my part, you're right
  71. dreamreal I was thinking you were using an implementation of the controllers that used the JVM's apis, not a good one
  72. dreamreal which version of spring boot are you on?
  73. deebo i just added a task that goes through jersey resources, finds body and response classes and then calls .writeAsString(new ResponseType()) or .gimmeObject("{]", BodyType.class) for all non primitive/colelction etc types before accepting traffic
  74. deebo mostly latest v3 and one service on v4
  75. dreamreal hmm, that sounds like a pain. Good on you for finding a solution, at least. So it sounds like it was doing a failure looking up reflected types? That's... pretty awful to find
  76. deebo yep the (de)serializer caches internal to jackson are synchronized
  77. deebo so you get a bazillion requests for FancyObject on a cold instance and everything slows down
  78. dreamreal Yeesh, yeah, although I'd hope it was smart enough to do it cleanly once. C'est la vie.
  79. dreamreal It'd be interesting to see if jackson3 had the same problem (again, not asking you to, that's a lot for a rando on IRC to throw out.)
  80. odinsbane It's nice how helpful the new compilers are now, but a shame nobody will see the better messages.
  81. dreamreal hahaha
  82. dreamreal well, the LLMs will, and they can use the information well...
  83. dreamreal odinsbane: ++
  84. nevet odinsbane now has karma of 1.
  85. dreamreal When's the last time you SAW a compiler error message, though? When you said that I was thinking "yeah, they're... wait." I haven't used a compiler to check syntax in a LONG LONG TIME - it's the IDE showing me errors in a window, not a compiler emitting a message.
  86. odinsbane I'm trying to learn rust. So I'm doing it from the command line a bit.
  87. Para y'all need some clojure compiler exceptions in your life
  88. Para They make almost zero sense.
  89. Para Over time you learn that specific form of error means specific problem.
  90. dreamreal Para: that feels like the old C compiler error message dance :D
  91. Para (it used to be a lot worse than what it is today, but it's still ridiculously bad in comparison to everything else)
  92. dreamreal LLms are interesting: It'll be ... fascinating to see how the industry learns to work with them. One project I'm watching has like 8 *releases* a day on github... and the tests? ... what tests?
  93. odinsbane Even llm's dont like writing tests. Maybe that will be left to the users.
  94. dreamreal I'm considering asking about testing methodology but I don't want to sound snarky about it, like "hey, would this release cadence be any better if you had even one test?"
  95. dreamreal I don't care what the LLM likes to do, I demand tests and coverage is part of my acceptance criteria
  96. dreamreal When I use an LLM, it's "write a test that replicates this failure" and THEN fix the failure
  97. dreamreal tedious for everyone, yes, but it also prevents feature breakage down the road because the LLM can't just say "oh I fixed it" when it broke other stuff, and I ALSO don't allow it to remove or evade tests, a REALLY nasty habit the LLMs have
  98. dreamreal they're better about it now than they were but that might be something they've learned for ME (in my configs) becasue I hammer the point so hard
  99. odinsbane did you make a 'skill'?
  100. dreamreal no, I'm just using the agent commands so far
  101. dreamreal I'm not sure what making a skill entails, but that sounds useful
  102. dreamreal hmm, interesting
  103. dreamreal I should make some skills!
  104. dreamreal (I have yet to hit token limits for some reason, so it hasn't really come up, but I can see it.)
  105. fizzie "It's a skill issue" has an entirely new meaning in this day and age.
  106. dreamreal fizzie: ++ hahaha
  107. nevet fizzie now has karma of 1.
  108. dreamreal odinsbane: ++ thanks. I might start seeing if I can make some skills out of this - my directives are pretty decent but are probably too broad. I set up an MCP server but a skill has a different focus; I wonder if the MCP server can have an attendant "here's how to get the skill locally" as well.
  109. nevet odinsbane now has karma of 2.
  110. deebo i used my company provided github copilot tokens on opencode creating a tool for personal use i needed, just talk to it like a product manager and keep making chaneges and committing when things work
  111. deebo it's like a junior dev that can read documentation insanely fast, but some times doesn't know why stuff doesn't work and you might need to point out the bug for it to get fixed
  112. kcomhnall i'll admit - I totally forgot my password to my pro github account.
  113. dreamreal deebo: yeah, that's how I sort of use them too
  114. deebo definitely useful, hard to say about how much in real work, especially with at least my current client restricting tooling used quite a lot to at least try and minimize leaking stuff
  115. odinsbane Some of these repositories that get recommended on github sound insane. https://github.com/bytedance/deer-flow
  116. javabot odinsbane's title: "GitHub - bytedance/deer-flow: An open-source SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take mi..."
  117. nevet GitHub - bytedance/deer-flow: An open-source SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take minutes to hours.
  118. dreamreal leaking stuff is an interesting problem: the problem for me is trust, not leakage. It's not like the LLMs can go "ooo, user foobaricus just worked on code for this, i'mma integrate it into the training model, now everyone has it!" on the fly
  119. dreamreal but the vendors CAN serve as MITM vectors
  120. deebo they have to be eating the code they get as context to get an edge for future stuff, i guess copilot at least tries to promise big businesses that they wont train stuff on the contexts or something
  121. dreamreal they all do, that'd be a breaker for any sane environment
  122. odinsbane How big of a model do you need to access a codebase though? Could you just use a small local model for consuming your own api.
  123. dreamreal That question doesn't quite make sense
  124. dreamreal model sizes don't affect *access*
  125. odinsbane You could query a small model that has access to your code. Small, just because your local instance might not be up to par with a cloud based solution.
  126. dreamreal Yeah, but the model size isn't part of *access* - it only affects capabilities
  127. odinsbane I was thinking leaking meant uploading proprietary code to a hosted LLM. So a local model would prevent the host having any access to your code.
  128. odinsbane I was playing with a 0.8b model and, it was funny but didn't produce anything usable.
  129. dreamreal yeah. Small models don't have enough data. And uploading proprietary code IS an issue, but where does it GO? It's not like the LLMs store everything THERE - they don't. but MITM roles mean they CAN.
  130. deebo small models are ok, e.g. the new qwen 3.5 models, but you still need memory for the context so it's quite nontrivial to run properly at home on consumer hardware
  131. deebo i bought an intel b50 for testing this stuff and they sure don't make it easy, maybe could get something useful done with two intel b60s
  132. nimaje seems like llms store stuff whereever, read from an admin of a pastebin site that llms try to upload sensitive information there
  133. dreamreal nimaje: they normally don't
  134. dreamreal deebo: mac mini
  135. dreamreal My m1 actually does all right even on constrained models
  136. Para I kinda wish there was more about SLMs.
  137. Para Just...more. Hype, discussion, development, articles. Everyone's just riding the Large wave.
  138. dreamreal term confusion, mostly
  139. dreamreal there are models that would comply with that definition for the most part - heck, the markov data could be "an SLM"
  140. dreamreal and many SLMs would be as useful
  141. Para yes
  142. Para Like...house automation SLM, doesn't need to know how to create a TypeScript frontend but does need to understand difference oven and door.
  143. dreamreal well, that's certainly doable too: imagine an LLM that used... kotlin and java. And that's it.
  144. Para And fallback to JVM SLM which knows everything but the programming languages.
  145. dreamreal Why not include the JVM-related content?
  146. Para Mainly to discourage "You can also do this awesome trick!" type of foolery.
  147. dreamreal heh
  148. cheeser but wait there's more!
  149. dreamreal The biggest problem with java and the LLMs is the preponderance of tutorial content that avoids actually DOING THE THING. They're all "step 1: do this... step 3, profit!" and step 2 turns out to be kinda important.
  150. dreamreal that's why my books start with tests and end with tests: "here's the full thing, period."
  151. dreamreal and why anthropic is gonna owe me money soon :D
  152. Para I almost managed to coax "include a screenshot of current state" to our bug ticket DoR:s last week.
  153. deebo i want "if the 16 char long identifier is in a screenshot or an .eml attachment i can't copy paste it and the ticket is invalid"
  154. deebo also if you can't link me a definition of how it's supposed to work, it's not a bug, but a feature request :)
  155. dreamreal deebo: yeah, I piss off a lot of customers and fellow coders by doing silly things like saying "what's it actually supposed to DO, a handwave isn't good enough"
  156. dreamreal if I can't write a test that replicates the failure, and I can't write a test that validates a success, I am stamping it "done" and moving on
  157. dreamreal I get a lot of pushback like "you didn't do anything, how can you say it's done" and my response is "you can't say it's not, so it is."
  158. dreamreal This may explain why I'm so popular, eh
  159. dreamreal https://www.oracle.com/java/technologies/downloads/jvp/ what the heck
  160. javabot dreamreal's title: "Java Verified Portfolio | Oracle"
  161. nevet Download the Latest Java LTS Free
  162. Para No Netbeans though.
  163. dreamreal All four users will be very disappointed. But I mean... javafx, helidon. That's... it.
  164. DoofusCanadensis they're pulling javafx back?
  165. dreamreal I think they're saying javafx WILL be supported... whatever that means
  166. Para And we'll be happy for it?
  167. dreamreal I wouldn't know, I'm just confused what the intent is
  168. dreamreal the javafx channel on reddit's like "oh they remembered us, we're real woooooooOOOOOOOOOO" as they fly into the air like a balloon that's been punctured