108 karma · joined February 25, 2019
I agree with the other replies - PLEASE don't do this. Use liquibase, flyway, or any other tool. They both let you write everything in SQL if that's your preference. The initial setup time will be saved later on if the team grows.
We shouldn't tolerate the monopolies, duopolies, and _opolies of our age. The early 20th century progressives understand how harmful they were to the common man.
Sony's Mark Cerny had a fascinating talk on PS5's spatial audio implementation. Sony might even support importing a custom-measured HRTF for even greater sound placement accuracy. No idea where you'd get it measured though!
Edit: after more reading I believe the main difference is the sensors in the Airpods Pro track head movement. For instance the virtual center (dialog speaker) would always appear to be coming from the display device, even if you move or tilt your head.
Do you use Dagger for your DI needs or do you roll your own container?
I also don't get the Spring hate and what that has to do with creating "one big function and a few global variables."
The consensus from Steam forum posts is that the Director's Cut version is littered with downgrades throughout: missing gold filter, lower res textures in places, lighting differences, etc. Also there are many patched-out bugs that had regressions with the Director's Cut.
It's still a great game, and I applaud the author's efforts to restore it. I'd wager that the effort to bring this version of the game from Wii U back to PC was a merge from hell and too many things just got looked over.
Go check out the "Microsoft Patterns and Practices" frameworks from decades ago to see many examples of this.
I will also concede that under some circumstances it's too slow to bring the data to the code, and instead you have to bring the code to the data (i.e. PL/PGSQL). The sort of speedup is mostly from eliminating round trips and data marshaling, however. That's not quite a like-for-like comparison of an ORM vs a mapper.
The reason I stick to ORMs is mostly because of RAD tools that save me so much time. For instance, JHipster generates liquibase migrations and JPA entities. This gives me a relational schema very quickly. To avoid any "surprise" queries that tank performance, I do turn Hibernate's statement logging on when developing new features.
Next time if I can find some more tools to help with an SQL-only + stored procedure approach, I'll give it a deeper consideration. Maybe convince your company to open source some of tools it has developed!
Also now that we need auditing there’s a pile of work we could have have gotten mostly free with an Envers annotation.
How exactly does Guice differ in request- or session-scoped injections that makes it that much better?
Also with Typescript being adopted by most major JS projects, I wouldn't say that dynamic typing "won."
You are right that most folks with 50-65" TVs at 2-3 meters don't benefit from anything higher than 1080p.
Among the repackaged OpenJDK offerings, Zulu is at the top of my list.
There is a JHipster Kotlin blueprint that generates the backend code with Kotlin instead of Java. Can't wait to use it.
I would highly recommend JHipster to bootstrap a new Spring Boot app. It does monoliths or microservices and gives you a great scaffold to build on top of.
Cloud gaming needs a killer multiplayer game that requires massive parallel compute (thus it can't be run locally) to make a case for sticking around.
Hibernate is quite powerful and the tooling in IntelliJ (or Eclipse) catches many common mistakes at edit time. Where most folks get themselves into trouble is with all the caching setup. Not surprising, but if you want to just use Hibernate as a cache-less mapper there's always the StatelessSession interface.
I also don't get the oft-repeated notion that ORMs result in bad table design. You can map any tables you can dream up. And if you insist on doing inheritance, Hibernate has 4 different strategies for mapping to classes. Certainly one of those has the performance characteristics you're looking for.
The event loop model that Node uses is easily replicated in other programming languages. It’s not a sensible default though, blocking code is better for most domains.