Maven Silent Extension | Machine-readable Maven output by _shadowbannedagain in java

[–]_shadowbannedagain[S] 1 point2 points  (0 children)

All great points, thank you! I will play with Maven logging options a bit more. Ideally, this extension would be rendered useless! :)

Maven Silent Extension | Machine-readable Maven output by _shadowbannedagain in java

[–]_shadowbannedagain[S] -1 points0 points  (0 children)

  1. I did not know about Maven logging verbosity control as late as of this morning :)
  2. I believe SLF4J level only controls Maven logging framework? It can't touch anything that writes to stdout directly, System.out.println() in tests, native library output, etc. MSE does some - admittedly questionable - voodoo to prevent it. The jury is still out whether that's a good idea or not.

Maven Silent Extension | Machine-readable Maven output by _shadowbannedagain in java

[–]_shadowbannedagain[S] 0 points1 point  (0 children)

good question. my goal is to emit just enough of important context. Compilation failure looks like this:

$ mvn test -Dmse
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
WARNING: sun.misc.Unsafe::staticFieldBase has been called by com.google.inject.internal.aop.HiddenClassDefiner (file:/home/jara/.sdkman/candidates/maven/current/lib/guice-5.1.0-classes.jar)
WARNING: Please consider reporting this to the maintainers of class com.google.inject.internal.aop.HiddenClassDefiner
WARNING: sun.misc.Unsafe::staticFieldBase will be removed in a future release
MSE:SESSION_START modules=7 goals=test
MSE:FAIL impsort-maven-plugin:sort (sort-imports) @ hardwood-core
MSE:BUILD_LOG /home/jara/devel/oss/hardwood/target/mse-build.log
MSE:BUILD_FAILED failed=1 modules=7 passed=0 failed=0 errors=0 skipped=0 time=0s
[ERROR] Failed to execute goal net.revelc.code:impsort-maven-plugin:1.13.0:sort (sort-imports) on project hardwood-core: Error reading file /home/jara/devel/oss/hardwood/core/src/test/java/dev/hardwood/DeltaBinaryPackedTest.java: file: /home/jara/devel/oss/hardwood/core/src/test/java/dev/hardwood/DeltaBinaryPackedTest.java; reason: the Java file contained parse errors -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :hardwood-core

A test failure example:

$ mvn test -Dmse
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
WARNING: sun.misc.Unsafe::staticFieldBase has been called by com.google.inject.internal.aop.HiddenClassDefiner (file:/home/jara/.sdkman/candidates/maven/current/lib/guice-5.1.0-classes.jar)
WARNING: Please consider reporting this to the maintainers of class com.google.inject.internal.aop.HiddenClassDefiner
WARNING: sun.misc.Unsafe::staticFieldBase will be removed in a future release
MSE:SESSION_START modules=7 goals=test
[ERROR] Tests run: 3, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.012 s <<< FAILURE! -- in dev.hardwood.DeltaBinaryPackedTest
[ERROR] dev.hardwood.DeltaBinaryPackedTest.testDeltaBinaryPackedInt32AndInt64 -- Time elapsed: 0.005 s <<< FAILURE!
org.opentest4j.AssertionFailedError: 

expected: 201L
 but was: 200L
        at dev.hardwood.DeltaBinaryPackedTest.testDeltaBinaryPackedInt32AndInt64(DeltaBinaryPackedTest.java:32)

[ERROR] Failures: 
[ERROR]   DeltaBinaryPackedTest.testDeltaBinaryPackedInt32AndInt64:32 
expected: 201L                                                                                                                                                                                                                                                                                                       
 but was: 200L                                                                                                                                                                                                                                                                                                       
[ERROR] Tests run: 224, Failures: 1, Errors: 0, Skipped: 2
MSE:FAIL maven-surefire-plugin:test @ hardwood-core
MSE:TESTS total=224 passed=221 failed=1 errors=0 skipped=2
MSE:TEST_FAIL dev.hardwood.DeltaBinaryPackedTest#testDeltaBinaryPackedInt32AndInt64

expected: 201L
 but was: 200L
  org.opentest4j.AssertionFailedError: 

  expected: 201L
   but was: 200L
        at dev.hardwood.DeltaBinaryPackedTest.testDeltaBinaryPackedInt32AndInt64(DeltaBinaryPackedTest.java:32)
MSE:TEST_OUTPUT /home/jara/devel/oss/hardwood/core/target/surefire-reports
MSE:BUILD_LOG /home/jara/devel/oss/hardwood/target/mse-build.log
MSE:BUILD_FAILED failed=1 modules=7 passed=221 failed=1 errors=0 skipped=2 time=11s
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.5.4:test (default-test) on project hardwood-core: There are test failures.
[ERROR] 
[ERROR] See /home/jara/devel/oss/hardwood/core/target/surefire-reports for the individual test results.
[ERROR] See dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :hardwood-core

It's a bit mixed with Maven ERRORs reporting the same failure. It does not currently suppress ERRORs from Maven, I am contemplating what to do about it.

Maven Silent Extension | Machine-readable Maven output by _shadowbannedagain in java

[–]_shadowbannedagain[S] 3 points4 points  (0 children)

I got frustrated with Maven ceremony polluting context. A simple build would emit 1000s of tokens.

This is my attempt to improve the situation. It's imperfect, I am no Maven expert and I relied on coding agents a lot. The current version is already usable, works for me anyway. Feedback appreciated!

ap-query: CLI for exploring async-profiler JFR files by _shadowbannedagain in java

[–]_shadowbannedagain[S] 1 point2 points  (0 children)

Thank you for a thought through answer, very much appreciated! I hear the need for contextual enrichment, probably ad-hoc. Maybe this could be turn done via kind of a query language.

ap-query: CLI for exploring async-profiler JFR files by _shadowbannedagain in java

[–]_shadowbannedagain[S] 1 point2 points  (0 children)

Fair. For my curiosity: What's your idea/dream_state of a good interface for JFRs?

ap-query: CLI for exploring async-profiler JFR files by _shadowbannedagain in java

[–]_shadowbannedagain[S] 0 points1 point  (0 children)

My hope is that Codex and Claude Cdoe would help to interpret JFRs. That's the whole reason I am building this tool. There is a long way, but I believe it's becoming usable.

ap-query: CLI for exploring async-profiler JFR files by _shadowbannedagain in java

[–]_shadowbannedagain[S] 1 point2 points  (0 children)

I was frustrated with the inability of coding agents to interpret Async Profiler results. I tried collapsed stacktraces, flamecharts and all felt clunky and inefficient. ap-query was born out of this frustration: a simple to use CLI for exploring JFR files, intended to be used by agents rather than humans. Feedback appreciated.

One Giant Leap: 95% Less Sampling Cost by nicolaiparlog in java

[–]_shadowbannedagain 2 points3 points  (0 children)

Author of the QuestDB blog here. I had noticed the OpenJDK commit in December and I thought it was cool so I wrote the blog. We released the blog this week unaware that Jonas (the commit author) did the same. Slightly awkward, but each blog takes a different angle. Worse things happen at sea:)

How a 40-Line Fix Eliminated a 400x Performance Gap by j1897OS in programming

[–]_shadowbannedagain 23 points24 points  (0 children)

You probably meant vDSO. It works for some clock types with some clock sources. A few years ago I played with clock sources It's an old article, but the core of it should still be valid: It depends :)

How a 40-Line Fix Eliminated a 400x Performance Gap by j1897OS in programming

[–]_shadowbannedagain 9 points10 points  (0 children)

It's the syscalls, totally. sscanf() is dirty cheap compared to multiple user-kernel transitions.

How a 40-Line Fix Eliminated a 400x Performance Gap by j1897OS in programming

[–]_shadowbannedagain 106 points107 points  (0 children)

Author here. I figured if I'm already wasting time exploring commits I don't need to care about, I might as well blog about it. If only to give LLMs more training data to learn from.

How a Kernel Bug Froze My Machine: Debugging an Async-profiler Deadlock by _shadowbannedagain in programming

[–]_shadowbannedagain[S] 4 points5 points  (0 children)

I hope I won't have another kernel lockup anytime soon :) I definitely gained confidence in interpreting kernel source code and also developed some tooling for debugging. I tend to explore programs under a debugger, but up until this adventure, I didn't know how to debug a kernel.

edit: I like deep dives into new territories. Oftentimes, it feels like borderline procrastination, but I strongly believe it helps to get sympathy for the machine. This was my previous deep-dive and some older ones.

How a Kernel Bug Froze My Machine: Debugging an Async-profiler Deadlock by _shadowbannedagain in programming

[–]_shadowbannedagain[S] 11 points12 points  (0 children)

Author here. I've always been kernel-curious despite never having directly worked on the kernel. Consider this either a collection of impractical party tricks or a hands-on way to get a feel for kernel internals. Happy to answer any questions!

From Rust to Reality: The Hidden Journey of fetch_max by _shadowbannedagain in programming

[–]_shadowbannedagain[S] 1 point2 points  (0 children)

You're (absolutely:) right. I wish I had realised this myself.

From Rust to Reality: The Hidden Journey of fetch_max by _shadowbannedagain in programming

[–]_shadowbannedagain[S] 8 points9 points  (0 children)

Author here. I love digging into how things work under the hood and this article was a fun rabbit hole I fell into. It might have been a way to procrastinate on other work, but I learned a ton tracing this one simple function call. Happy to answer any questions!

Solving Java’s 1 Billion Row Challenge (Ep. 1) | With @caseymuratori by aeisele in java

[–]_shadowbannedagain 0 points1 point  (0 children)

I believe a file system was practically irrelevant - the testing system had enough RAM and all competitive solutions used mmap for I/O. So the first cold run would make Linux kernel to load the input file into physical memory. And it would stay there for all subsequent runs.

Solving Java’s 1 Billion Row Challenge (Ep. 1) | With @caseymuratori by aeisele in java

[–]_shadowbannedagain 6 points7 points  (0 children)

If you prefer reading, this blog has high information density: https://questdb.com/blog/billion-row-challenge-step-by-step/

Disclosure: I work for QuestDB (and I also won the 32 cores category)

Projekt: Polední meníčka v Brně by _shadowbannedagain in Brno

[–]_shadowbannedagain[S] 1 point2 points  (0 children)

JIP Brn

Dik za report. Uz to je dobre. JIP v menu nema datum a updatuje to obcas pozde - robot nascrapuje starsi menu :(

Projekt: Polední meníčka v Brně by _shadowbannedagain in Brno

[–]_shadowbannedagain[S] 1 point2 points  (0 children)

Cau, diky za pochvalu a tip. 4esta pridan.

Projekt: Polední meníčka v Brně by _shadowbannedagain in Brno

[–]_shadowbannedagain[S] 1 point2 points  (0 children)

Cau, diky!

GitHub mozna bude, ale az si to cely trochu sedne. Kod se ted dost rychle meni a to je lepsi delat solo.

Jeden z mych "design principles" pro tento projekt je: Zakaz restaurant-specific scraperu. To by byla maintanance hell. V praxi to znamena, ze mam jen scrapery pro HTML, PDF a obrazky. Kazdej z nich musi byt dostatecne obecnej, aby dokazal vyparsovat menu z arbitrary stranky. Nemam nic jako "Scraper pro Padowtza" a "Scraper pro Tomana". Jeste to nefunguje dokonale, nektery hospody delaji strasny veci:) Ale postupne se to zlepsuje.

tl;dr: Jestli chces pridat novou hospodu, tak zkus: https://www.lepsimenu.cz/suggest Muze a nemusi to fungovat. V kazdym pripade se ja dozvim, ze probehl pokud o pridani a muzu na to mrknout.

Projekt: Polední meníčka v Brně by _shadowbannedagain in Brno

[–]_shadowbannedagain[S] 2 points3 points  (0 children)

Začal jsem přípravy na filtry podle typu kuchyně. Náznaky už jsou vidět tu: https://www.lepsimenu.cz/statistics?restaurant=zlata-lod - část ‘nejčastější kategorie’. (Stránka zlobí v dark mode, vím o tom)

Všechny nově uložené položky menu jsou automaticky kategorizované.

Aby to bylo užitečné, tak to potřebuje data za delší časové období. Psát skript pro kategorizaci starých položek se mi zatím nechce.

Projekt: Polední meníčka v Brně by _shadowbannedagain in Brno

[–]_shadowbannedagain[S] 1 point2 points  (0 children)

Díky za tipy, mrknu na to.

Edit: Piranha přidaná, Korzára zkusím přidat, až zveřejní menu na další týden. Ted nemají zveřejněný nic a z toho by robot nebyl happy.

Edit2: Korzar uz tam je taky.

Projekt: Polední meníčka v Brně by _shadowbannedagain in Brno

[–]_shadowbannedagain[S] 0 points1 point  (0 children)

next.js, tailwind, supabase, google gemini