jreicherI haven't yet taken the time to understand a commit with more than 2 parents
ParaMaybe one day I'll actually use that (probably not)
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.
jreicherActually, since we're talking about git merges, what conflictstyle do you use?
ParaI haven't found the need to customize that, although I am aware there's apparently betterer ones than whatever the default is.
Para9 out of 10 times IDEA's magic merge does things perfectly :P
jreicherDoes IDEA show the common ancestor?
ParaAny 3-way diff tool is usually enough to me tooling wise.
ParaHm, I'm going to say maybe? I think it relies on the git executable doing the right thing quite heavily.
jreicherThat's why I asked about conflictstyle. I don't think git will give you that unless you ask it by changing the style
ParaWell, I guess I've kinda avoided that with the reliance of three-way diffs :)
ParaIDEA has one, Beyond Compare is a very good standalone one.
ParaYou can also run IDEA's on any two files with `idea diff filea fileb` which is very handy
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.
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.
jreicherSame
* kathadris joined #java
* agnivn joined #java
* acidsys joined #java
[twisti]I've never found anything as intuitive and sensible as `git add -p`, maybe discounting the terrible edit mode
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.
* MikeBux joined #java
[twisti]Wild
ParaIDEA's commit view and gitx allow per-line staging/commiting, so same difference.
javabotdmlloyd's title: "The new reflection - Intermediate use cases - David M. Lloyd"
dmlloydI'm doing great
* B_fd joined #java
ParaI think someone missed an opportunity in naming those unreflects. Could've been e.g. deflect.
dmlloyd<Sulu> shields! shields!!
* kento2 joined #java
* agnivn joined #java
dreamrealdamn it dmlloyd
dreamrealdmlloyd: that's a technically very interesting writeup but it desperately wants application
dmlloydfair enough
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...)
dreamreallike, you obliquely refer to currying in *java*, and ... move right on past
dreamrealI want to write this up for bytecode.news but I don't trust myself to synthesize the bits it needs
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
dreamrealyou need to start capping sooner rather than later
dreamrealcheck the other channel?
dmlloyd"no cap"
dmlloydalso, six seven
dmlloydgreetings fellow young people
dreamrealbet
ParaI saw an article that RAG's part of the AI hype might have passed now.
ParaSemantic Web, moving from yet another loss to another.
* Demi left #java (Closing Window)
cheeserdreamreal: let chatgippity do it
cheeserdmlloyd: that url is giving me a 404
dmlloydthe second url
cheeserah. missed that. tack.
dmlloydI renamed it at the last minute
Paragpt tell us a short summary about java methodhandles using genz language
Para...or whatever it was
cheeseralso, the "previous post" link it broken. :)
dreamreal~gpt tell us a short summary about java methodhandles using genz language
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
ParaThat's exactly the kind of failure ChatGPT would produce.
* dreamreal giggles
ParaClaude's thought prompts turned into genz but it's also having just as hard of a time parsing that
Para"no cap thinking" and all that
Para~gpt quack like a duck
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
javabotthe object is. In Java, you can somewhat emulate duck typing with reflection or interfaces.
Para:D
Para(really just wanted to see if the command actually works for us plebians)
dreamrealI think nevet needs certain privilege levels, but not javabot
dreamrealI'm nto even sure javabot has that concept
Paraconcept of a plan^H^H^Hrivilege
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
mawkbut it's also doing encryption, it uses BouncyCastle for it; I have to register BC as a security provider for it to work
dreamrealok
mawkbut all the interesting classes are final; how can I easily trace method calls in a library? like arguments and then response
dreamrealthis is still on java micro profile?
mawkI can also recompile BC with the right stuff inserted in the right place but it looks hard
mawkno this is on PC
mawkregular java 21 or something like that
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
dreamrealwell, you DO have the classpath at your disposal
* Betal joined #java
ParaI was thinking of byteweaving a logger.
ParaWireshark on the BT traffic will also probably provide insight if that fits the setup.
mawkit's NFC, I can get the commands and responses easily already, with pcsc_spy or just providing my own reader class
mawkbut then it's still encrypted
mawktheoretically I can provide my own crypto provider too but it's infinitely more complicated, it's a giant codebase full of runtime lookups
mawkI guess the safest way is to recompile bouncycastle with my own logging inside it
dmlloyd~byteman
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
dmlloydor a debugger
* rvalue joined #java
cheeserbytebuddy proxies might work.
* kathadris joined #java
* johnjay joined #java
mawko nice
mawkthe debugger is a bit annoying I just want to trace not to break
mawkbut probably jdb can do dprintf like gdb
mawkyou do like dprintf file.c:42,'%s\n',local_variable
mawkand it prints according to the format string when reaching the breakpoint instead of pausing
dreamrealdo not use jdb
dreamrealseriously
dreamrealif jdb is your last resort someone has screwed up, badly
mawklol
dreamreal~jdb
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.
mawkI like gdb
dreamrealCool. Do you routinely drive rail spikes into your eyes, too?
dreamrealjust curious
mawkthe tooling for embedded is pretty bad
mawkI gave up trying to integrate eclipse and the right plugins for debugging
dreamrealBut you said you're on java 21 NOT on microprofile
mawkgdb has a beautiful TUI that shows the code
mawkyeah I mean I like gdb because that's what I use for embedded C
dreamrealgdb is better for C than jdb is for java
mawkbut the java in this case is on a regular pc yeah
dreamrealddd works for java too, for the record
mawkthe library I'm trying to reverse engineer is the NXP SDK to talk to their cards like Mifare DESFire
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
mawkvery unergonomic
p14nd4somewhat related (to low-level debugging utilities), i just saw that strace recently added color output
* Drixtan joined #java
* dreamreal shudders at strace for java
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
* agnivn joined #java
* agnivn joined #java
* stfstfm_ joined #java
* szkl joined #java
* domicron joined #java
* johnjay joined #java
* agnivn joined #java
* stfstfm joined #java
* B_fd joined #java
dmlloydyou know, it would be neat to claude up a *good* console debugger for java
DoofusCanadensiswould it be necessary with how good JetBrains' debugger is?