skysight-inc/HackerNews huggingface dataset:
"Injection" in "dependency injection" simply refers to getting your dependencies from outside instead of building them yourself.

Let's take the case of an object which represents a simple CRUD web service that needs to talk to a database to get some data. Here is what it looks like without dependency injection:

func NewService(databaseHostname, databaseLoginSecret string) (WebService, error) {
databaseConn, err := databse.NewConn(databaseHostname, databaseLoginSecret)
if err != nil {
return WebService{}, fmt.Errorf("Failed to create database conn for WebService: %w", err)
}
return WebService{
databaseConn: databaseConn
}, nil
}

And here is what it looks like with dependncy injection:

func NewService(databaseConn DatabaseConn) WebService {
return WebService{
databaseConn: databaseConn
}
}

This is the only concept: don't build your own dependencies, get them from outside.

Ideally then there is a place in your application, possibly in `main()`, where all of the base services are initialized, in the required order, and references are passed between them as needed. This can include "factory" style objects if some of these need to be initialized on-demand.
Thanks, very cool
I think most of the tools on the second line are not highly applicable to a Kubernetes operator, or otherwise would just use the "Cloud Native way of doing things".

Something like JRebel would generally be a big no-no for Kubernetes, where the container image of the operator is expected be immutable (at least in terms of the code running in there). It may or may not be okay for developing an operator, but that's certainly venturing into a bit of an unknown territory.

VM agents and JMX are usually replaced by explicitly adding Open Telemetry support and/or a Prometheus endpoint. It's certainly more boilerplate and manual work, but so many more things are explicit in Go, that's just something you've got to buy into. If you're using Rust or Typescript this could be a lot more automated but that's not the case for Go.

Advanced profiling is probably something you'd have to give up, but I doubt a Spring shop would be deeply into profiling. The low hanging fruit is to just throw away spring and get an immediate 200%-400% performance boost.

But the JVM is still a more mature platform. Throughput is better on the JVM than on Go and some things are very troublesome in Go (basically anything that requires code generation).

My personal "cool tool" that I can run on the JVM but doesn't have a mature equivalent in Go is PIT[1] for mutation testing. But not everybody will be using mutation testing, just like not everybody will be using JRebel or JMX. And it doesn't mean everybody should. If you're a Spring a shop the thing you'll be probably missing most in Go would be things like Dependency Injection, Java-like ORMs, reflection magic and Spring Configuration Server.

[1] https://github.com/hcoles/pitest
That's another plus! If you ever get to the end of the fusion reactor's life (which is not very likely), it's literally end of life for you (and everyone else who might still be around) too, so no need to worry about decommissioning costs and exhausted fuel anymore...
Docker CEO swap has analysts anticipating a sale
I have to be in the USA in May. I think I can get all the way to Michigan by boat.
Small aircraft owners would happily pay a slight premium to get rid of leaded gas because doing so would eliminate the biggest avenue by which Karens complain about them.

The FAA is the big hurdle. IIRC they recently just approved some fuel as a replacement but I'm not sure if it was a "go start selling it" type of approval or if it's some sort of intermediary approval and there's further ring kissing to be done before people can actually buy it.
I was involved in writing the report so feel free to ask any questions.
> They're both becoming increasingly "extremist" in their respective viewpoints, and unwilling to move toward "the middle" even a tiny bit to allow for any productive discussion or compromise that could benefit everyone involved.

I don't see any other outcome when one side is usually supported by evidence and the other side is usually driven by hatred and hysteria generated by rage-bait media. How do you find a middle ground with a nazi?
The last time I checked, one wasn't at risk of ingesting or inhaling the lead from a car battery. Furthermore, it is simple to recycle safely.
“Well, created one nice one, and one desolate, irradiated, lifeless shit-hole! My work here is done!” Haha
A large component of the right-wing media campaign for the last, well, all of my life has also been to normalize their actions by accusing The Other Side of doing it first. "Activist judges" was the most notable one.
They look like good products, but my daughter had a really bad experience with them - she bought one, it arrived with the screen broken, and they refused to accept that was possible and said she must have broken it and refused a refund.
I was kind of hoping for cloned skin cells grown in a vat.
As a fan of Oblomov, have you tuned into Spike Milligan?

His life work has a lot of relevance to the notion of oral culture inasmuch as Spike was a superlative orator and racounteur, and I think - if you don't know of Spikes' relationship with Oblomov - you're in for a treat ... ;)

There are different ends of the 'reproducibility spectrum' that Spike will take you to, though ..
What that post describes (all work going to one/few workers) in practice doesn't really happen if you properly randomize (e.g. just use random UUID) ID of the item/task when inserting it into Kafka.

With that (and sharding based on that ID/value) - all your consumers/workers will get equal amount of messages/tasks.

Both post and seemingly general theme of comments here is trashing choice of Kafka for low volume.

Interestingly both are ignoring other valid reasons/requirements making Kafka perfectly good choice despite low volume - e.g.:

- multiple different consumers/workers consuming same messages at their own pace

- needing to rewind/replay messages

- guarantee that all messages related to specific user (think bank transactions in book example of CQRS) will be handled by one pod/consumer, and in consistent order

- needing to chain async processing

And I'm probably forgetting bunch of other use cases.

And yes, even with good sharding - if you have some tasks/work being small/quick while others being big/long can still lead to non-optimal situations where small/quick is waiting for bigger one to be done.

However - if you have other valid reasons to use Kafka, and it's
just this mix of small and big tasks that's making you hesitant... IMHO it's still worth trying Kafka.

Between using bigger buckets (so instead of 1 fetch more items/messages and handle work async/threads/etc), and Kafka automatically redistributing shards/partitions if some workers are slow ... You might be surprised it just works.

And sure - you might need to create more than one topic (e.g. light, medium, heavy) so your light work doesn't need to wait for heavier one.

Finally - I still didn't see anyone mention actual real deal breakers for Kafka.

From the top of my head I recall a big one is no guarantee of item/message being processed only once - even without you manually rewinding/reprocessing it.

It's possible/common to have situations where worker picks up a message from Kafka, processes (wrote/materialized/updated) it and when it's about to commit the kafka offset (effectively mark it as really done) it realizes Kafka already re-partitioned shards and now another pod owns particular partition.

So if you can't model items/messages or the rest of system in a way that can handle such things ... Say with versioning you might be able to just ignore/skip work if you know underlying materialized data/storage already incorporates it, or maybe whole thing is fine with INSERT ON DUPLICATE KEY UPDATE) - then Kafka is probably not the right solution.
Most of my new back-end code is actually Scala these days which I have a very love hate relationship with.

Kotlin. I don't have much experience with. I know it's fairly lightweight syntactically.

I'm unconvinced by cross-compile to web stuff so far. Scala.js looked very ugly.
Again this presupposes compliance by the executive. So far they haven't, maybe they won't. But I can all but guarantee that at some point this administration is going to start, likely with great fanfare and applause from its partisan media and the libertarian set here on HN, simply ignoring restraining orders it dislikes. And then where will we be?
The author makes this point only somewhat implicitly, but I think for a lot of people, new feature development is the fun part of software engineering. Not for everybody (do not let me tell you how to have fun), but a substantial majority. A project's maintainers might also have lots of ideas for new features they would love to work on, but if 9 out of 10 people want to spend their time adding features, and adding the feature is only 10...25% of the work, you can see there is a problem.
I don't understand why they aren't trying to use multiple linear regression to control for the effects of how old SSD vs HDD are, or to use something like survival analysis? I thought this was a largely solved problem...
That's the promise. In practice your SSD might kill itself due to a bug in the firmware and drop off the bus without warning long before the flash is worn out.
Whatever happened to the transflective lcds that were popular in carputers in the 2000s? They seem to be a perfect fit for a tablet and I have been puzzled that no one has jumped on using them in one.

from the transflective wikipedia page [1]

"A transflective liquid-crystal display is a liquid-crystal display (LCD) with an optical layer that reflects and transmits light (transflective is a portmanteau of transmissive and reflective). Under bright illumination (e.g. when exposed to daylight) the display acts mainly as a reflective display with the contrast being constant with illuminance. However, under dim and dark ambient situations the light from a backlight is transmitted through the transflective layer to provide light for the display. The transflective layer is called a transflector. It is typically made from a sheet polymer. It is similar to a one-way mirror but is not specular."

[1] https://en.wikipedia.org/wiki/Transflective_liquid-crystal_d...
There’s certainly a lot of research and a lot of philosophical thought leaning in that direction.
I can wholeheartedly recommend them. Excellent introduction to the format, at least it was for me.
The One AI to Rule Them All
Not a serious concern because they're such a concentrated source of lead that they're lucrative to recycle.
Do you suggest to use vanilla Java instead of Spring?
Between all two-panel clones of the Norton Commander [1] FAR [2] is by far the best of the bunch /rimshot.

Very keyboard-oriented, extremely capable, super fast, open source with a vast plug-in library. A console app on top of that and it looks like the original. What's not to like.

[1] https://en.wikipedia.org/wiki/Norton_Commander

[2] https://www.farmanager.com/
No, they have developed the world’s most powerful magnets based on superconducting tape which is essential for containing the plasma.
> The bill proved controversial in the country, with opponents arguing it could impede free speech and criticism of those in power. However, supporters said the tougher legislation was needed to crack down on cyberbullying and online harassment.

Age old discussion by now. I think the opponents are correct. Online insults can also never be prosecuted justly, it can only ever be done for deterrence and this will chill freedom of opinion and freedom of speech.

In Germany public officials now make use of lawfare to get some of their critics. Personally I would not vote for such people and the laws against insults do indeed stem from a time of monarchy. I don't believe it is sensible to apply them to tweets.

It sometimes is funny if you get a court order confirming that people indeed have the right to call you ugly or a warmonger because it is factual, but the internet was a better place when people ignored these type of comments. It is different for people in public or those that put themselves out there, but I guess the old rules of PR are to be followed for such cases.
Russian phishing campaigns exploit Signal's device-linking feature
Have you tried a sumatriptan as soon as the aura starts? Works for me. YMMV.
The alternative view is they got off really really lightly for wrecking wetland and sandblasting the neighbourhood.

The reason the deluge system was installed so quickly is exactly the reason you can't argue that 'they wanted to see if they could do without'. They knew a priori that it was necessary, that's why they'd basically already staged the hardware.

Installing a deluge system pre-launch would have cost them a month, a month that they wouldn't have spent afterwards, waiting for another round of sign-offs.

It was a dumb decision and posting fan-blogs like Teslarati isn't a good argument.
Point being? Workstations that are fresh on the market and which have comparable performance of the server counterparts still easily cost anywhere between $20k and $40k. At least this is according to Dell workstations last time I looked.
I don't know actually, perhaps I didn't follow context closely enough to see which team you affiliated yourself with. Either way that's okay if you aren't capable of standing by what you wrote or arguing in good faith, then my experience tells me that it's a good signal that it's not worth engaging with anyway.
More people need to read the book https://en.wikipedia.org/wiki/Science_Fictions

Then this wouldn't be a surprise to anyone.
Too many people confuse the concept of DI with a DI framework.
You don't even need a DI framework to write straightforward programs in Java. After all, Java also has interfaces!

One of the reason people needed a DI framework in Java is crazy "enterprise" configurability requirements and Java EE-based standards that required you to implement a class with a default no-argument constructor. If you're using a web framework like Jooby, Http4k, Ktor or Vert.x, you do not need a DI framework (source: we've written many modern Kotlin applications without a DI framework and we've had zero issues with that).

Of course, all of our non-toy Go applications are using dependency injection as well. Unless the code reviewer messes up, we won't let anyone configure behavior through globals and singletons.
He’s scared of them.

If he were to mess with the Fed it would impact Wall Street, particularly by making the market indices go down.

For whatever reason he cares about that in ways he doesn’t care about his approval ratings or the historical norms of the office. See how fast he reached a deal on tariffs earlier in the month when the markets reacted to them? Since then they’ve been slowly leading tariffs to get the message out so when the tariffs come the market will have priced it in.

He’ll get to the Fed. But it won’t be overnight. The administration will start messaging it and choreographing the change long enough before so it won’t spook Wall Street.
I find this very common when working with JS backends. Once you get serious, you end up replicating a lot of the complex concepts of frameworks like Spring or .NET
> but the JSON spec doesn't limit the size or precision of numbers, although it allows implementations set other limits.

This actually led to a data-loss causing bug in the AWS DynamoDB Console's editor a couple of years ago. IIRC, the temporary fix was to fail if the input-number couldn't be represented by a 64-bit float. Can't remember if it ever got a proper fix.
> Physics works perfectly well even when you replace infinite with a relatively large number

Has this actually been studied? I reckon you'd run into problems pretty quickly if you tried to impose a "maximum" allowed number (call it N). For example, you might set N equal to the number of quarks in the universe. But now you have no way to represent the number of different configurations of quarks, taking into account their possible quantum states (i.e. taking the factorial). But you also have a time dimension (which I assume you're splitting into discrete chunks to avoid infinitesimals). To decsribe the quantum state over time requires your previous estimate multiplied by the number of time points. And so on... ad infinitum!
Greg K-H: "Writing new code in Rust is a win for all of us"
Progressives are using words like Nazi and fascist, purely as a slur against a political rival, without really understanding what those words mean nor the attrocities they represent.

What the Nazi's did was horrifici, and it's incredibly insensitive, inappropriate, and, yes, juvenile, to water that down by using it for political point scoring.
It's wild how common the viewpoint by "centrists" is that the problem isn't the nazis, it's people being unreasonable about the nazis.
Basically all the boomers grew up huffing leaded car exhaust. The ones who didn't become statistical fodder for the lead crime hypothesis are running the world right now. The quality of leadership in the west will probably improve overall as the boomers and early gen X get to kicking the bucket.
The joke is on me because i still see them load in slowly about 10 at a time.
You're answering to a post I made saying that prices that were quoted from the Lazard report don't reflect all that's writen in the report.

Your answer gives a model unrelated to the figures I was discussing, with extremely agressive prices [1] set as hypotheses and zero network costs factored in. Sure, I can accept it as a minimum limit for the cost of a system, but that's not a very useful information, and you're not quoting this price as a lower limit either.

I don't see an honesty issue here, just someone believing that spherical cows are going to produce milk tomorrow.

[1]: e.g. the Lazard report quotes utility PV at $29-92/MWh, while your tool quotes it at 21.7€/MWh.
> It could be a blank screen with a "settings" sign in the upper right, where you can enable just the features you need.

That's a "feature" that makes it more annoying for your first time user, which probably puts off a decent proportion of them.

The out-of-the box experience is what most people will use - they will not dive into endless settings and config

(ignoring the insane dev cost of supporting every possible feature combination)
Job Growth Is Accelerating in These Markets
Soon uv will invlude a task runner that will take care of that use case but I get your point.
New study finds meteoric iron in early Iron Age artifacts in Poland
I think the problem can be solved easily by forcing the company behind DeepSeek to simply redirect all the data they've gathered on their user, directly unto a CIA database. Surely this will be considered a good compromise.
Search within your IDE, do a Google search, whatever suits you.

What mentality? And the cognitive load is to RTFM, so that you understand what are you doing. If that leaves any questions you can attempt to do a deep dive. It's not particularly high cognitive load to know that @GET is a get rest endpoint.

How is that different without annotations? Documentation is also your best bet at first in case of a normal library function call. Jumping into that codebase can also be quite involved, depending on what it does.
One phrase caught my attention saying "No frames now!" in a few variations. Were frames a disputed feature at one time?
Do you think that pip could be re-implemented in Python and it would result in this performance that we are observing with uv?
I think there is a need to distinguish between AGs who write such letters and party organizations (i.e., democrats) that have allowed corruption such as insider trading within their ranks. A non-complicit to oligarchy democrat party would never have allowed nancy pelosi to be a completely unchecked insider trader.
Show HN: Chiddle – Daily word game inspired by Boggle, Scrabble and Wordle
Wordle and NYT Connections are two games I've enjoyed playing daily for several years. I like how they're relaxing, simple, I can come back to them throughout the day, and they're so accessible that friends and family frequently play too and we share results. I wanted to create something in a similar vein that I'd enjoy playing daily alongside them.

Chiddle is what I came up with. It's essentially boggle, but with scrabble-style letter points, and the aim is to get the highest score you can with your five highest scoring found words. You can try to find as many words as you like but only the top five scoring are counted towards your score, which is shown primarily as a percentage of the highest possible score. When you can't find any more you can submit your score to reveal the remaining top words and share your result. Like Wordle there is a new puzzle each day.

It's written in HTML/pure JS/CSS, with puzzles generated by a .net console app. Hosted for free on cloudflare.

All words have definitions, so if you try a word but are not sure what it means, you can read the definition afterwards if it's valid. When the top words are revealed, their definitions are also laid out alongside them. I found this to be a nice way of learning some new words. I also added a hint button to aid with finding the last word(s) to get you to a 100% score (all it gives you is what letter the word starts with). I go back and forth on whether the hint system affects the challenge too much, but I often don't get to 100% even with hints; some words are just really tricky to spot!

The biggest challenge of the project is in trying to generate puzzles that are satisfying to complete. After some early testing I found the criteria that makes the best puzzles are:
1. Lots of possible words.
2. Top words that are relatively common.
3. Tops words that are not mostly similar.

For point 1 I reject generated puzzles that contain a word count below a threshold. For point 2 I collected a number of common word lists from different sources, and I use the number of lists a word appears on to determine how common it probably is. If it's possible to get a 100% with common words, then the puzzle goes to a manual review stage where I check that the words are in fact common, and that point 3 is satisfied.

I've been playing around with the game for quite a while and I'm running out of ideas on how to improve it. Any feedback or suggestions are welcome!
There is also little motivation to do the hard part of maintaining things as those positions are often paid similarly but require much more work. If you can hop to jobs that only want new features while getting comp increases, where's the motivation to actually sit still and maintain something?

However, I think the industry might be slowly moving against people who've never stayed at positions for a while and don't have this maintenance experience.
I think it's satire of the typical "well akshually" comment you see on HN wherein one dishonestly portrays some minuscule exception as though it's the rule for a few cheap virtue score points from internet nobodies.
>Heavenly metal for the commoners: Meteoritic irons from the Early Iron Age cemeteries in Częstochowa (Poland)

https://www.sciencedirect.com/science/article/abs/pii/S23524...
But for new code / drivers, writing them in Rust where these types of bugs just can't happen (or happen much much less) is a win for all of us, why wouldn't we do this? -- greg k-h
What’s the threshold before you can say it? Doing nazi salutes and mass deleting the public research / books / info pages isn’t far enough yet?