Chat Logs

  1. Parajreicher: That's what "fast forwarding" means.
  2. ParaHistory linearization in general is not fun and cashmoney, especially for automation and tooling.
  3. jreicherPara: I've never heard of fast forwarding removing commits. Just not making them in the first place.
  4. ParaIt's not _removing_, it creates a different kind of commit. "Merge commit" is a bit silly name as it's really just a a commit with >1 parents.
  5. Parathere's this classic which is kinda related https://old.reddit.com/r/git/comments/1vsvgs/66way_merge_christ_thats_not_an_octopus_thats_a/
  6. jreicherI haven't yet taken the time to understand a commit with more than 2 parents
  7. ParaMaybe one day I'll actually use that (probably not)
  8. ParaI can invent a workflow for that, build features based on forks from common parent, never merge, collate releases through megamerges, leave it to someone else to figure out how to do mainline integration so that the future versions include the important stuff.
  9. jreicherActually, since we're talking about git merges, what conflictstyle do you use?
  10. ParaI haven't found the need to customize that, although I am aware there's apparently betterer ones than whatever the default is.
  11. Para9 out of 10 times IDEA's magic merge does things perfectly :P
  12. jreicherDoes IDEA show the common ancestor?
  13. ParaAny 3-way diff tool is usually enough to me tooling wise.
  14. ParaHm, I'm going to say maybe? I think it relies on the git executable doing the right thing quite heavily.
  15. jreicherThat's why I asked about conflictstyle. I don't think git will give you that unless you ask it by changing the style
  16. ParaWell, I guess I've kinda avoided that with the reliance of three-way diffs :)
  17. ParaIDEA has one, Beyond Compare is a very good standalone one.
  18. ParaYou can also run IDEA's on any two files with `idea diff filea fileb` which is very handy
  19. jreicherYeah I think most tools have good diff support. But conflict resolution is a little different. The separation between frontend and git's conflict markers surprised me when I first started looking at it.
  20. ParaI avoid commit related things through commandline, while git is otherwise excellent for cli out of the box, commit management through visual tooling benefits quite a bit from the visualizations.
  21. jreicherSame
  22. [twisti]I've never found anything as intuitive and sensible as `git add -p`, maybe discounting the terrible edit mode
  23. jreicherI've always wondered when, if ever, I would need to do something like that, but I never find myself doing an edit I don't want in the index immediately.
  24. [twisti]Wild
  25. ParaIDEA's commit view and gitx allow per-line staging/commiting, so same difference.
  26. dreamrealmorning
  27. dreamrealhttps://bytecode.news/posts/2026/04/trust-is-not-an-opinion
  28. javabotdreamreal's title: "Trust is Not An Opinion | bytecode.news"
  29. kcomhnall~jlink
  30. javabotjlink is a tool to assemble and optimize a set of modules and their dependencies into a custom runtime image. For documentation, see https://docs.oracle.com/en/java/javase/17/docs/specs/man/jlink.html for more. Also see https://maven.apache.org/plugins/maven-jlink-plugin/ and ~graalvm
  31. nevetThe jlink Command
  32. dmlloydfinally posted part 2 of this series: https://word-bits.flurg.com/posts/the-new-reflection-intermediate-method-handles/
  33. dmlloydhopefully it won't be another 18 months before part 3
  34. dmlloydI'll die of old age before I finish the last part
  35. dmlloydsorry wrong link: https://word-bits.flurg.com/posts/the-new-reflection-intermediate-use-cases/
  36. javabotdmlloyd's title: "The new reflection - Intermediate use cases - David M. Lloyd"
  37. dmlloydI'm doing great
  38. ParaI think someone missed an opportunity in naming those unreflects. Could've been e.g. deflect.
  39. dmlloyd<Sulu> shields! shields!!
  40. dreamrealdamn it dmlloyd
  41. dreamrealdmlloyd: that's a technically very interesting writeup but it desperately wants application
  42. dmlloydfair enough
  43. dmlloydI have at least three more parts planned out, so I'll try to get some better examples in there (hopefully without going too long...)
  44. dreamreallike, you obliquely refer to currying in *java*, and ... move right on past
  45. dreamrealI want to write this up for bytecode.news but I don't trust myself to synthesize the bits it needs
  46. dmlloydmaybe I'll cap the whole thing off with an explanation of how smallrye-ffm uses bytecode generation plus method handle magic plus indy to do its thing
  47. dreamrealyou need to start capping sooner rather than later
  48. dreamrealcheck the other channel?
  49. dmlloyd"no cap"
  50. dmlloydalso, six seven
  51. dmlloydgreetings fellow young people
  52. dreamrealbet
  53. ParaI saw an article that RAG's part of the AI hype might have passed now.
  54. ParaSemantic Web, moving from yet another loss to another.
  55. cheeserdreamreal: let chatgippity do it
  56. cheeserdmlloyd: that url is giving me a 404
  57. dmlloydthe second url
  58. cheeserah. missed that. tack.
  59. dmlloydI renamed it at the last minute
  60. Paragpt tell us a short summary about java methodhandles using genz language
  61. Para...or whatever it was
  62. cheeseralso, the "previous post" link it broken. :)
  63. dreamreal~gpt tell us a short summary about java methodhandles using genz language
  64. javabotJava MethodHandles in GenZ language can be seen as a powerful tool for direct method invocation. They offer a high-performance alternative to Java's reflection API, with lower overhead and better optimizations. MethodHandles support both static and non-static methods, along with constructors and field accessors. They can be combined in many ways to create complex behavior. You can find more at: https://docs.oracle.com/javase/7/docs/api/java/lang/invoke/M
  65. nevetJDK 26 Documentation - Home
  66. dreamrealsuggest https://word-bits.flurg.com/posts/the-new-reflection-intermediate-use-cases/
  67. javabotdreamreal's title: "The new reflection - Intermediate use cases - David M. Lloyd"
  68. nevetSuggested draft saved from https://word-bits.flurg.com/posts/the-new-reflection-intermediate-use-cases/.
  69. ParaThat's exactly the kind of failure ChatGPT would produce.
  70. * dreamreal giggles
  71. ParaClaude's thought prompts turned into genz but it's also having just as hard of a time parsing that
  72. Para"no cap thinking" and all that
  73. Para~gpt quack like a duck
  74. javabot"Quack like a duck" in the context of Java Virtual Machine is likely referring to the concept of "duck typing". However, Java does not support duck typing by default as it is a statically typed language. Duck typing is a concept of dynamic languages where the semantics of an object is determined by its current set of methods and properties, rather than its inheritance from a particular class or implementation of a specific interface. It's more about what
  75. javabotthe object is. In Java, you can somewhat emulate duck typing with reflection or interfaces.
  76. Para:D
  77. Para(really just wanted to see if the command actually works for us plebians)
  78. dreamrealI think nevet needs certain privilege levels, but not javabot
  79. dreamrealI'm nto even sure javabot has that concept
  80. Paraconcept of a plan^H^H^Hrivilege
  81. mawkI want to analyse a java library which is obfuscated; I gave up disassembling it and want to analyze its dynamic behavior; it communicates with a NFC tag using a reader interface I need to provide, so I can easily intercept commands and responses
  82. mawkbut it's also doing encryption, it uses BouncyCastle for it; I have to register BC as a security provider for it to work
  83. dreamrealok
  84. mawkbut all the interesting classes are final; how can I easily trace method calls in a library? like arguments and then response
  85. dreamrealthis is still on java micro profile?
  86. mawkI can also recompile BC with the right stuff inserted in the right place but it looks hard
  87. mawkno this is on PC
  88. mawkregular java 21 or something like that
  89. mawkI suppose it's not like python where I can just patch whatever I want in a library to wrap functions; that would be very useful
  90. dreamrealwell, you DO have the classpath at your disposal
  91. ParaI was thinking of byteweaving a logger.
  92. ParaWireshark on the BT traffic will also probably provide insight if that fits the setup.
  93. mawkit's NFC, I can get the commands and responses easily already, with pcsc_spy or just providing my own reader class
  94. mawkbut then it's still encrypted
  95. mawktheoretically I can provide my own crypto provider too but it's infinitely more complicated, it's a giant codebase full of runtime lookups
  96. mawkI guess the safest way is to recompile bouncycastle with my own logging inside it
  97. dmlloyd~byteman
  98. javabotdmlloyd, byteman is a tool for tracing, monitoring, and testing a Java program using AOP-ish constructs; see https://byteman.jboss.org/ for more info
  99. dmlloydor a debugger
  100. cheeserbytebuddy proxies might work.
  101. mawko nice
  102. mawkthe debugger is a bit annoying I just want to trace not to break
  103. mawkbut probably jdb can do dprintf like gdb
  104. mawkyou do like dprintf file.c:42,'%s\n',local_variable
  105. mawkand it prints according to the format string when reaching the breakpoint instead of pausing
  106. dreamrealdo not use jdb
  107. dreamrealseriously
  108. dreamrealif jdb is your last resort someone has screwed up, badly
  109. mawklol
  110. dreamreal~jdb
  111. javabotJDB is a console-based debugger for Java that's only slightly worse than gdb. Don't use it. Using it is like voluntarily rolling around naked on a floor covered with thumbtacks and about 2cm of grain alcohol, but slightly less pleasant.
  112. mawkI like gdb
  113. dreamrealCool. Do you routinely drive rail spikes into your eyes, too?
  114. dreamrealjust curious
  115. mawkthe tooling for embedded is pretty bad
  116. mawkI gave up trying to integrate eclipse and the right plugins for debugging
  117. dreamrealBut you said you're on java 21 NOT on microprofile
  118. mawkgdb has a beautiful TUI that shows the code
  119. mawkyeah I mean I like gdb because that's what I use for embedded C
  120. dreamrealgdb is better for C than jdb is for java
  121. mawkbut the java in this case is on a regular pc yeah
  122. dreamrealddd works for java too, for the record
  123. mawkthe library I'm trying to reverse engineer is the NXP SDK to talk to their cards like Mifare DESFire
  124. mawkit's java only and I don't know much about java, and it requires an online license and a connection at all times to function
  125. mawkvery unergonomic
  126. p14nd4somewhat related (to low-level debugging utilities), i just saw that strace recently added color output
  127. * dreamreal shudders at strace for java
  128. mawkand they don't give me the time of day when I ask to sign the NDA to know the commands for the cards, so I'm figuring it out myself
  129. dmlloydyou know, it would be neat to claude up a *good* console debugger for java
  130. DoofusCanadensiswould it be necessary with how good JetBrains' debugger is?