Hacker News new | past | comments | ask | show | jobs | submit | wging's comments login

String compression was one. tl;dr: the JVM supports Unicode for strings, but uses 1-byte chars for strings where possible (previously it was UTF-16), even though it's not actually doing UTF-8.

Depending on what sort of document you're looking for, you might like either the JEP: https://openjdk.org/jeps/254

or Shipilev's slides (pdf warning): https://shipilev.net/talks/jfokus-Feb2016-lord-of-the-string...

Shipilev's website (https://shipilev.net/#lord-of-the-strings), and links from the JEP above to other JEPS, are both good places to find further reading.

(I think I saw a feature article about the implementation of the string compression feature, but I'm not sure who wrote it or where it was, or if I'm thinking about something else. Actually I think it might've been https://shipilev.net/blog/2015/black-magic-method-dispatch/, despite the title.)


Absolutely love it. Thanks a lot. A fancy hit me yesterday and I've been looking through JDK's String commit history to see little tidbits that I could grab.

Shipilev's website looks like a fascinating resource. I appreciate the pointer!



It's a joke project.

I think I first learned of that term from this 2019 article: https://cliffle.com/blog/rust-typestate/ I can't be the only one...


Typestates were also notable feature in early Rust, albeit in a very different form. I do recall them mentioned often in presentations/talks/etc at the time.

Tbh it would make interesting blog post to compare modern typestate patterns to the historical built-in typestate mechanism.

https://github.com/rust-lang/rust/issues/2178


I don't think your approach is bad, nor is it in conflict with the advice in the article, at least in spirit. You aren't (I think) describing a situation where your untested guesses end up in a released product, or in ill-founded advice to colleagues. (Both of those actually do happen.) Forming and testing hypotheses is valuable, building on unfounded assumptions is a very different thing.


There's apparently a config setting to turn all animations off, though I haven't tried it myself.

The author linked their config file from the article, and it includes this:

    // Animation settings.
    animations {
        // Uncomment to turn off all animations.
        // off
I think it's boilerplate from the default config file, which would imply that the video they showed is not the 'animations off' version, if that's not already clear from the presence of animations.


> still not catching errors when performing combinations of operations that need to be a single atomic transaction

This is so important. The idea that code is thread-safe just because it uses a thread-safe data structure, and its cousin "This is thread-safe, because I have made all these methods synchronized" are... not frequent, but I've seen them expressed more often than I'd like, which is zero times.


Shows up in other places as well, such as file systems. Trying to check if a filename exists, and if it doesn't then create the file for example. Instead one should simply try to create the file and handle the error if it already exists.


Do you want to lie to your users, or do you just want to use unconventional operators? If the latter, you could consider using something like ruby's `unless`.

(the number of times I've noticed code that does `unless !some_condition`... which is of course just the same thing as `if some_condition`)


Makes sense; I need to think about which would be better.


You see it in some treatments of abstract algebra too. (Which are not unrelated to permutations in any case.) I think at least one book used in my undergrad used postfixes for function application, but I can't remember which.


Was it perhaps 'A course on Group Theory' by John S. Rose?


Definitely not. (He may do that, I just hadn't ever heard of that book before today.) I think it was one of Isaacs, Herstein, or Artin, but I'm a bit too lazy to dig through my old books at the moment.


> Definitely not. (He may do that, I just hadn't ever heard of that book before today.) I think it was one of Isaacs, Herstein, or Artin, but I'm a bit too lazy to dig through my old books at the moment.

Herstein does it.


Ah, thanks!


Those error bars are too wide for the formula to be useful for training based on heart rate percentages.


I've already said that I have found it to be useful:

https://news.ycombinator.com/item?id=43083815

:so please explain why I haven't :-)


You are doing nothing that requires the formula to be precise. A 10bpm standard error, meaning the max is very possibly 20bm off where you think it is, means that you can't reliably distinguish between efforts that someone doing serious training would want to be distinguished.


> You are doing nothing that requires the formula to be precise.

Exactly.

My guess is that neither are most other readers and commenters here. (Any evidence to the contrary?)

Meanwhile, what do those error bars tell use about "training based on heart rate percentages." :-)

> someone doing serious training

Care to say what you mean?


Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: