Hacker Newsnew | past | comments | ask | show | jobs | submit | jodleif's commentslogin

Yes, except for the odd anti-cheat that needs kernel level access

Threadripper is a good alternative. No point having a lot of dual channel ram for LLMs, too slow

In any functioning sports body testing is random and unannounced


That's the official line.

The reality is offeason testing is incredibly rare in general and people always seem to have an uncanny ability to be hopping on a plane to another country right before WADA shows up at their home.

Neil Armstrong dealt with drugs with different half lives than AAS, but he still could have been tested at times where they would still be in his system... yet how long did he get away with it? While being tested far far far more frequently than, say, an MLB player.

You'll notice more a decent chunk of the MLB players that get popped get popped for PCT drugs at the end of the offseason - ran their cycle too long, decided to PCT instead of just go cold turkey, and next thing you know, Profar is getting popped for hcg and Severino for enclo.


As long as you tune the JVM right it can be faster. But its a big if with the tune, and you need to write performant code


Java has significant overhead, that most/every object is allocated on heap, synchronized and has extra overhead of memory and performance to be GC controlled. Its very hard/not possible to tune this part.


You program differently for this niche in any language. The hot path (number crunching) thread doesn't share objects with gateway (IO) threads. Passing data between them is off heap, you avoid object creation after warm up. There is no synchronization, even volatile is something you avoid.


> Passing data between them is off heap

how exactly you are passing data? You can pass some primitives without allocating them on heap. You can use some tiny subset of Java+standard library to write high performance code, but why would you do this instead of using Rust or C++?


In some places I'm using https://github.com/aeron-io/agrona

Strangely this is one of the areas where I want to use project panama so I might re-implement some of the ring buffers constructs.

You allocate off heap memory and dump data into it. With modern Java classes like Arena, MemoryLayout, and VarHandle it's honestly a lot like C structs.

I answered "why" in another post in this thread.


> You allocate off heap memory and dump data into it. With modern Java classes like Arena, MemoryLayout, and VarHandle it's honestly a lot like C structs.

my opinion is that no, it is not, declaring and using C struct is 20x times more transparent, cost efficient and predictable. And that's we talking about C raw stucts, which has lots of additional ergonomics/safety/expression improvements in both c++ and rust on top of it.


Agreed. Also, it takes time to understand a domain properly- so the innate slowness of coding helps with letting things “simmer” in the back of the mind.


I found swift way more enjoyable than rust as a C++ alternative. It even has first class-ish interop now.


Deterministic uuids is a very standard usecase


You're talking about the hash-based UUIDv3/v5? I haven't found examples of those being used, but I'm curious.

Using MD5 or 122 bits of a SHA1 hash seems questionable now that both algorithms have known collisions. Using 122 bits of a SHA2/3 seems pretty limited too. Maybe if you've got trusted inputs?


I use these a lot. My favorite use case is templates, especially ones that were not initially planned in the architecture.

Let's say i have some entity like an "organization" that has data that spans several different tables. I want to use that organization as a "parent" in such a way where i can clone them to create new "child" organizations structured the same way they are. I also want to periodically be able to pull changes from the parent organization down into the child organization.

If the primary keys for all tables involved are UUIDs, I can accomplish this very easily by mapping all IDs in the relevant tables `id => uuid5(id, childOrgId)`. This can be done to all join tables, foreign keys, etc. The end result is a perfect "child" clone of the organization with all data relations still in place. This data can be refreshed from the parent organization any time simply by repeating the process.


I remember using them in a massive SQL query that needed to generate a GIS data set from multiple tables with an ungodly amount of JOINs and sub-queries to achieve ID stability. Don't ask :p

For those ~~curious~~ worried, no, this was not a security sensitive context.


Common one is if you want two structs deemed "equivalent" based on a few fields to get the same ID, and you're only concerned about accidental collision. There are valid use cases for that, but I've also seen it misused often.

v7 rough ordering also helps as a PK in certain sharded DBs, while others want random, or nonsharded ones usually just serial int.


Have you seen UUIDv3/v5 used there though? I've seen lots of md5 historically and sha variants recently, but not the UUID approach.


Yeah, I've seen both 3 and 5 used, not just hashes in some custom format. That way it works with Postgres uuid type etc.


The sad part is the “buddy hackathon” is kind of redundant now


I think people can do "buddy vibecodeathons" now. :)

It's nice to be able to either just body double [1], or have some other people around to vent to when Claude goes off the rails.

[1] https://health.clevelandclinic.org/body-doubling-for-adhd


For humans org-mode is good at this


I find this to be a bit “easy”. There is such a thing as bad tools. If it is difficult to determine if the tool is good or bad i’d say some of the blame has to be put on the tool.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: