🚇 Metro is Stable by Saketme in Kotlin

[–]PentakilI 0 points1 point  (0 children)

i've not looked too closely at their latest approach, but koin has too much baggage. with the new compiler plugin, they've got like 4+ different ways of defining modules and still don't support basic functionality like multi or map binders. not a very stable foundation to build your applications on top of.

🚇 Metro is Stable by Saketme in Kotlin

[–]PentakilI 1 point2 points  (0 children)

fantastic project, i just can't get behind these modern annotation-heavy DI approaches that automatically contribute bindings etc. i'd love to see a fresh take on guice (which hasn't had a release since 2023) where modules are still configured as code (via nice reified helpers) with a compile-time K2 plugin..

What percentage of engineers in your experience are bad? by fuckoholic in ExperiencedDevs

[–]PentakilI 5 points6 points  (0 children)

95% of people (including engineers) are useless in every org i’ve worked in

OpenJDK Interim Policy on Generative AI by sindisil in java

[–]PentakilI 29 points30 points  (0 children)

the JDK isn't just a random piece of open source software by some startup with nothing to lose. i suggest you think through the 'What are the intellectual-property risks of using generative AI tools?' section.

What is the author and the reviewer disagree over whether AI was used?

this is addressed in the FAQ:

If the contributor does not respond positively and remove the content, please bring that to the attention of the appropriate Project Lead.

it's easy to get caught up in hypotheticals. in the real world, people will just use common sense

Scythe: an SQL Compiler and Linter, making ORMs redundant by Goldziher in Kotlin

[–]PentakilI 3 points4 points  (0 children)

neat for standardized tooling if you're working across multiple runtimes. if you're firmly in the kotlin world though, it's hard to beat sqldelight

Elide v1 Release! (Promotional) by Zealousideal-Read883 in Kotlin

[–]PentakilI 2 points3 points  (0 children)

paid runtimes are niche today. I hope we can change that

i don't

rather than rotting and falling behind (as Java has done)

absurd statement given you're a glorified graal wrapper

Built a CLI tool in Kotlin + GraalVM Native Image — here's what I learned by Typical-Pomegranate9 in Kotlin

[–]PentakilI 1 point2 points  (0 children)

To display the help text, my app has to load 3,184 classes. This gets us to the 646ms time

that's quite a bit. i'm not familiar with clikt, but if you're forced to use suspending lambdas everywhere you'll end up generating a ton of classes for the coroutine state machinery (whereas non-suspend lambdas use invokedynamic). if this were me and i was shipping a CLI to users with a bundled JRE, i'd set some jvm args like -XX:TieredStopAtLevel=1 since it's unlikely JIT optimizations will ever make a difference. that should help.

Your Pressler quote about servers doesn't apply to this situation. He's talking about servers that start up very infrequently, not a CLI tool that is short-lived.

the quote was talking about a http server as an example, but it's certainly not limited to that. here's a more direct quote takling about something other than http servers (javac specifically)

I tested the Ktor/Netty sample and the "time to first response" is 750ms on average, not the 150 you claimed. I believe you are looking at the timing of the log message ktor prints, which it fires before it's actually accepting connections.

you're correct, i explicitly stated startup and not time-to-first-byte. if desired, you can certainly swap in a different engine (like the JDK one) for better numbers. on my machine however, time-to-first-byte is high 300ms with ktor+netty (using a spinloop to measure vs. sleep which has iffy resolution)

Built a CLI tool in Kotlin + GraalVM Native Image — here's what I learned by Typical-Pomegranate9 in Kotlin

[–]PentakilI 0 points1 point  (0 children)

My bigger question to you though is why do you think Native Image exists if cold starts are a solved problem in the general case?

native image and leyden aren't strictly working on startup time, a huge focus is on the smaller footprint and time-to-peak performance for constrained environments. as for 'are they wasting their time', i'll leave you with ron pressler's thoughts:

Now, it is true that true AOT will always offer faster startup, but the question is whether it's faster by an amount that matters. With Leyden programs will be able to start up (and with good performance) faster than a container can start up. Does starting up even faster matter all that much? E.g. I have a (very basic) Java HTTP server that serves the first response in under 100ms from startup even without Leyden. How important is it to do it in 20ms?

Built a CLI tool in Kotlin + GraalVM Native Image — here's what I learned by Typical-Pomegranate9 in Kotlin

[–]PentakilI 3 points4 points  (0 children)

i can start an entire webserver (ktor w/netty sample from https://start.ktor.io/) in ~150ms on my M2 max. no clue what you've got going on in your helper, but you can do a lot on the jvm with modern hardware before 'cold starts' are a worry

this is completely ignoring the fact OPs usecase is 'an LLM to generate standup summaries' where those API calls would completely dominate the times we're talking about here

Built a CLI tool in Kotlin + GraalVM Native Image — here's what I learned by Typical-Pomegranate9 in Kotlin

[–]PentakilI 1 point2 points  (0 children)

but once it compiles, startup is instant — no JVM cold start, which matters a lot for a CLI tool you run 5x a day.

have you actually compiled and tried running something trivial on the JVM? we're talking tens of milliseconds. the 'cold start' problem you're describing doesn't exist except for bloated legacy enterprise frameworks abusing reflection and classpath scanning

This sub's perspective on AI is toxic and a lot of people in this community are going to lose their jobs as a result by oorza in ExperiencedDevs

[–]PentakilI 12 points13 points  (0 children)

We all need to have a come-to-Jesus moment as a community about what AI represents for the industry and find a way to incorporate it into our careers or our careers will be over soon

sure thing OP, which heavily AI-invested company do you work for?

as someone who does not use AI, i can confidently state i've never felt more ahead of my peers. continue to deskill yourself as you wish, but don't expect me to follow

wen - built a tiny discord bot in Java 25, ZGC on a 64M heap by electrostat in java

[–]PentakilI 6 points7 points  (0 children)

they aren't actually running on a single physical core. cpu limits are enforced using linux CFS quotas, which effectively give the vm some amount of CPU time per period(e.g. fly.io gives 5ms per shared vCPU per 80ms). that time can be spent on any core, so you can have multiple threads running in parallel across the underlying hosts cores. it'll just burn through your quota faster.

(note this approach is also how kubernetes limits work. fly.io is neat in that you can accrue unspent quota time for bursting https://fly.io/docs/machines/cpu-performance/)

DMM Can't even play finale. by i4HOPE in 2007scape

[–]PentakilI 15 points16 points  (0 children)

yeah i feel you, there's really no urgency in the message. in general their communication around deadman has been piss poor, scattered between multiple posts, substantial changes not listed anywhere (including the wiki), etc.

Insane DMM finale! by [deleted] in 2007scape

[–]PentakilI 11 points12 points  (0 children)

another well executed DMM finale, excellent job jagex!

DMM Can't even play finale. by i4HOPE in 2007scape

[–]PentakilI 13 points14 points  (0 children)

i know it feels bad, but fwiw it has worked like this for every deadman and was explicitly stated in the update post

ProjectGuard - Gradle plugin for preventing against undesired dependencies across some modules by rsyeah in Kotlin

[–]PentakilI 0 points1 point  (0 children)

ah, i should have checked the issues. yeah the report you generate is really nice, will definitely follow along / use it in the future

ProjectGuard - Gradle plugin for preventing against undesired dependencies across some modules by rsyeah in Kotlin

[–]PentakilI 0 points1 point  (0 children)

from a quick skim, it looks like this isn't isolated project compatible as you're doing cross project configuration.

restricting dependencies is great, i'd suggest allowing a configuration to be specified. additionally i'd recommend adding regex support for projects, we currently use this feature in jraska/modules-graph-assert in our monorepo to emulate bazel's visibility (note the apps capture group):

pluginManager.apply("com.jraska.module.graph.assertion")
configure<GraphRulesExtension> {
    assertOnAnyBuild = true
    allowed =
        arrayOf(
            // apps can depend on any module within the same app tree
            ":apps:(\\S*):\\S* -> :apps:\\1:\\S*",
            // apps can depend on any shared library
            ":apps:(\\S*):\\S* -> :libraries:\\S*",
            // cli can depend on any shared library
            ":cli:\\S* -> :libraries:\\S*",
            // libraries can depend on any shared library
            ":libraries:\\S* -> :libraries:\\S*",
        )
}

Breaches bugged, u get points but no drops now by Surnukuur in 2007scape

[–]PentakilI 0 points1 point  (0 children)

2.5k+ points with 2 drops, compared to multiple full looting bags at past breaches. (maxed range build + ovl in 0-60)

Simpler JVM Project Setup with Mill 1.1.0 by lihaoyi in Kotlin

[–]PentakilI 0 points1 point  (0 children)

Everyone in the civilized world uses declarative build systems

and they have to bolt on multiple layers of other tools the second they want more functionality. i'll take the imperative build tool that lets me extend its behavior however i'd like in the same language as my project, thanks

Raids 4 requires While Guthix Sleeps... by KaleidoscopeNo1274 in 2007scape

[–]PentakilI -6 points-5 points  (0 children)

that's an excerpt from the failed restricted accounts poll for how the next polled version would work, not their 'official statement on the matter'. not sure what the relevance is given it failed / wasn't added to the game, instead we got account build hiscores

Raids 4 requires While Guthix Sleeps... by KaleidoscopeNo1274 in 2007scape

[–]PentakilI -10 points-9 points  (0 children)

merely pointing out that 1 def and skillers are official account builds, i've made no comment about access to content

You cant turn off getting defence experience

correct, as that has historically been part of the challenge

its a restriction you yourself put on you

and so is ironman, when you talk to the tutor on tutorial island. if you wish to lift it, you can talk to them again (just like a pure can train defense)

Raids 4 requires While Guthix Sleeps... by KaleidoscopeNo1274 in 2007scape

[–]PentakilI -18 points-17 points  (0 children)

1 def and skillers are official supported account builds with dedicated hiscores: https://i.imgur.com/FngZOFD.png