Great article!
Will the new metric be exposed in JFR recordings as well?
HN user
Great article!
Will the new metric be exposed in JFR recordings as well?
Perhaps also of interest is the storage format that Fedora 6/7 uses.
I recently wrote an extremely basic Rust web service using Axum. It had 10 direct dependencies for a total of 121 resolved dependencies. I later rewrote the service in Java using Jetty. It had 3 direct dependencies for a total of 7 resolved dependencies. Absolutely nuts.
Yeah, currently you have to be really careful about what you do in virtual threads. However, they are actively working on a solution to the issue with synchronized blocks. Once that's been solved, they should be a lot easier to use. Unfortunately, many of us will be stuck on 21 for some time now, and will need to continue to worry about synchronized blocks.
The article makes it sound like the feature set has been finalized, but is that really the case? I'm struggling to find evidence for this, and the official page does not seem to indicate this at all: https://openjdk.org/projects/jdk/23/
The comments about this feature are always so tiresome. Please just scroll down and read the "Alternatives" section at the bottom. They're not idiots. They're working within backwards compatibility constraints. They can't just do it like other languages.
The company I interned at back in '08 had multiple Tichu games going daily over lunch. It's where I learned to love the game. Sadly, they had a hiring freeze when I graduated in '09, and I had to move on. I still play, but I will always look back fondly on those daily games over lunch.
When I do play Tichu these days, it's actually with the designer of Haggis, Sean Ross. He's been putting out a lot of traditionally inspired games over the past few years. He just published a game called Bacon which is a climbing game based on the traditional climbing game Guan Dan (https://www.pagat.com/climbing/guan_dan.html). I'd recommend checking out both games! The hand size in Guan Dan is 27 cards, and that's not even the most in a traditional climbing game!
An updated version of Haggis will also be coming out later this year, and it will support playing up to 6 players. The 4-player partnership version is particularly good. The reprint will also include some updated rules for the 3-player game, which I like a lot too.
(I'd give you some BGG links, but it looks like it's currently down for maintenance.)
That aside, Pagat is truly a gem. One of the best sites on the internet. I have spent hours and hours there learning and trying obscure card games. Thank you, John McLeod.
Agreed. Obra Dinn is a weird example here as there's nothing else like it.
> How do you ship a Java library that uses native code? Python/Node/Ruby worlds know, but OpenJDK ignores the question.
It doesn't. jmod files and the jmod tool were added in JDK 9 precisely for that (and other things, too).
I have never seen a lib package native dependencies using jmod. It's not even clear to me how this would be done. Everyone I'm familiar with bundles binaries inside the jar. Can you point to an example? I would love to learn a better way of doing this.
Having to use streams in order to use map, etc., is noisy. Why weren't these APIs retrofitted to collections?
Sure, methods along the lines of the following could have been added:
public <R> List<R> map(Function<? super E, ? extends R> mapper) {
return stream().map(mapper).toList();
}
Yes, having them would make Java less verbose in the case where you only want to do a single map, filter, whatever operation on a collection, but I'm personally glad that they weren't because they produce extremely inefficient behavior when chained. So, it would add a performance footgun to save ~18 characters.It's one thing to say, "very little has been added between Java 8 and Java 21," and something else entirely to say, "newer features are often criticized as not being as good as they could be [to maintain backwards compatibility]."
I actually feel like very little has been added between Java 8 and Java 21.
var, records, sealed types, and pattern matching make a huge difference in how Java is written. A lot has changed since 8.
I think this perfectly demonstrates my point. Thanks for sharing. Java was perceived as "enterprisey and non-open-source-friendly".
It's also interesting to hear that a Java deployment was thought to be more difficult than a Python deployment. My baised opinion is the exact opposite. Java services are generally incredibly simple to run, especially if you make a fat jar executable.
My fear is that Java is now only popular in a professional setting, and is no longer of interest in the broader community. This is sad to me because I personally love the features that you all have been delivering in recent releases, and am very excited about the ones coming down the pike.
A few circumstantial examples. If you look at the Matrix SDKs and implementations (https://matrix.org/docs/projects/try-matrix-now/), Java's presence is sorely lacking. The initial server implementation was written in Python of all things and the rewrite in Go. This is baffling as a Java implementation seems like a no-brainer to me.
In addition to working for a variety of corporations, I have also done some work for academic institutions, specifically in the library space. They have a lot of old tools from the 2000-2010ish range that are predominantly in Java. However, now, these institutions are primarily using Python and Javascript, and are even struggling to find Java developers to maintain their old infrastructure.
https://www.redhat.com/sysadmin/podman-docker-compose
Podman listens on the docker socket, and the official docker-compose just works
When did you last use it? It _does_ support docker compose. Has for a while now actually.
I love it on Linux. The Mac version is not as smooth yet, but, for my use case, still works a hell of a lot better than docker desktop. There is something deeply wrong with docker desktop's networking, and I literally have to restart it almost every time I make a change to one of our services. Not an issue with podman.
I really don't like that ActivityPub does not support encryption. I wanted to setup an instance of one of these platforms for friends and family to use, but hated the thought of having to tell them that, by the way I can read all of your messages. I wouldn't, but I hate that that's even possible. So, instead I'm trying to twist Matrix to work more like a social media platform. It's janky, but totally workable, so long as you're not looking for global engagement.
A few months ago I started playing with using Matrix as a janky social media replacement. The idea was to setup a space with rooms that I post in. One room might be a public, unencrypted room that anyone can read (ala Twitter/Mastadon/etc), and another might be just for close friends, etc. Then, I just post to them like you would on any other platform.
It's great because it's the only platform like this where you have the ability to encrypt if you want to, but it is of course missing some features. The biggest being the ability to share posts and have a meta feed. There are also smaller annoyances that would not scale well, such as the fact that people cannot make personal room name aliases.
I still totally recommend it.
Thank you for the recommendations. I will check them out. To be fair, it's been a couple years since I last looked, and at that time it wasn't that there were _no_ other light themes, but there were very few and they were not nearly as good as Solarized, which I guess is a personal preference. But, I really do appreciate the recommendations, and look forward to trying some new colors.
It's odd to me that there's essentially no competition to Solarized Light when it comes to light color schemes, and all of the focus is on dark. Personally, I don't like dark themes and find them way harder to read. I love Solarized Light, but I do sometimes wish there were a few more options available for light users.
Funnily enough, I lived next to Ethan for a few years in Seattle, and was not a solarized user prior to meeting him. Thanks Ethan!
I think I saw that Chris Remo doesn't even work at Valve anymore
I did an "epistemic spot check" of the section on Against the Grain, which caught my eye because I just finished reading the chapter on state formation in The Dawn of Everything. Result: It was indeed legible but was oddly false.
I could not find the "well accepted definition" of the state they sourced from Wikipedia [1]. They give the impression that there is an overwhelming consensus as to what the definition is, whereas the Wikipedia page actually states throughout "there is no undisputed definition of a state", "there is no academic consensus on the definition of the state", and provides multiple different definitions. I have not read Against the Grain, but it seems entirely reasonable for the author to offer their own definition, though it sounds like they could have been more forth coming with it.
I think there is some truth in what stevage said. Usually when we come home the cats get up and are unsettled due to the change in routine. I try to get them settled on the guest bed again before going to bed myself, but this doesn't always work if they're really amped up. If I am able to get them settled, he won't sleep with us (the other cat isn't as interested in sleeping with us), but, if I can't, he'll likely show up in our bed later.
So, it is likely just a matter of getting him comfortable sleeping somewhere warm so that he isn't interested in moving to our bed.
Edit: Having said that, before I started this routine, he _would_ come up to bed if he was sleeping somewhere else already on a normal night in. So, I don't know.
I do the opposite for my cat. He's a very affectionate boy. He likes to sleep with us, but we'd prefer he didn't because we have a small bed and it makes our sleep worse. So, my solution was to snuggle with him on our guest bed a half hour or so before we go to bed. Then, when I get up, he stays on the guest bed and sleeps the rest of the night.
You might think that he might just do this out of habit now, but if we go out in the evening and come back late enough that he doesn't get his snuggle time, he almost always shows up on our bed after we've gone to sleep.
I discovered a Dave Gahan fan site [1] last year that looked like it was a holdover from "the old internet". I loved it and was even more delighted when I discovered it was created in 2021 [2]:
I realize that static websites like this were more popular in the internet's early days, long before the rise of social media and the emergence of user-created Wikis, and have now somewhat fallen out of fashion. However, there were a lot of static websites like this dedicated to Dave Gahan and Depeche Mode back then that had a level of quality that I just don't see nowadays. Sadly, many of them have disappeared or have been abandoned. There is something to be missed about websites like those, though, with their eye-catching graphics and pile of links that took you on a journey as if you were walking through a museum, and I want to bring that experience back through this website, as outdated as that experience may very well be.
Beautiful. Bring back the old internet.
This is not correct. You're thinking Spring Data JPA [1]. Spring Data JDBC [2] does not use any Hibernate nonsense.
[1] https://docs.spring.io/spring-data/jpa/docs/current/referenc...
Spring is certainly a divisive topic, and I think it's hard for people on different sides to fully understand each other's experiences.
I have used Spring for years. Yes, there are some things I don't like about it, for instances Spring Boots overeager auto configuration, but it provides an unparalleled level of flexibility and productivity. I have never encountered a behavior in Spring that I have not been able to read the source and figure out what's going on and then change the behavior to be what I want. Spring is absurdly flexible and you only need to use the parts that you want.
A few years ago, I decided to try an alternative and wrote an app in Vert.x with no Spring. It worked fine, but it was a hell of a lot more work than leveraging the Spring ecosystem. I later rewrote it using Boot, and it works better, is easier to understand, and uses less code.
Have you seen Spring Data JDBC? It's such a good idea that saves so much boilerplate and I'm not aware of anything else like it. It threads the needle between rolling your own SQL and descending into the hell of a full on ORM.
Anyway, the closets I can come to understanding why people hate Spring so much is to consider my own opinion of Rails. I don't like Ruby and I don't like Rails. I hate all of the magic and I don't want to learn it. But, I'm sure, like Spring, it's enormously productive if you do understand what it's doing and how to use it.
The best tool for this is something called "loving detachment." I'd recommend you read about it, and about the concept of co-dependency in general
Do you have any resources that you'd care to recommend? I've found it challenging to find good resources. I find recommendations like the one in this article, "just listen", to be profoundly unhelpful.
Interesting. I'm surprised to hear that you've been so successful with that technique. My statement was slightly inaccurate. I have no idea how difficult it is to extract the content from the page once you're able to get it. What is more immediately challenging was to get FB to serve you the page at all. See https://github.com/RSS-Bridge/rss-bridge/issues/2047
There were a handful of pages on Facebook that I used to keep tabs on that would have had to have been public as I do not have an account, but now I can't get FB to let me see some of them without a login (for example https://www.facebook.com/MadisonAudubon). I have no idea if my IP as been flagged, which they appear to do aggressively, or the pages were made private or FB introduced some addition settings and the pages are now configured or what.
Unfortunately, the Facebook bridge is very broken and no longer maintained. From the public pages I've tried, it only intermittently works on at most half of them.
I don't blame them for not maintaining it though. I grabbed the code to see if I could get it working and realized Facebook has made their newer pages fiendishly difficult to scrape. Assuming one does put in the effort to make it work, how long will it last till it's broken again?
I wish there was a viable alternative platform for organizations where "public" content is actually accessible publicly.