MurphyA/hacker-news huggingface dataset:
by danielbln | 2025-11-15 08:34:29+00:00
I would maybe argue that there is a sweet spot of how much you feed in (with some variability depending on task). I tend to keep my initial instructions succinct, then build them up iteratively. Others write small novels of instructions before they start, which personally don't like as much. I don't always know what I don't know, so speccing ahead in great detail can sometimes be detrimental.
by Tor3 | 2025-11-15 08:35:09+00:00
They almost certainly do via the web interface, as I do (and lots of others). It works in general, though for some reason Teams via a web browser will often have problems seeing the microphone, or getting sound, even though every other web page using mic/speaker will work. And some other issues, like not showing a shared screen without first going to chats and then re-expanding the shared screen. When aware of all this it generally works ok.

The actual MS client for Linux is, as far as I know, non-existing now. Or at least not updated. It was anyway always completely useless for several reasons, in particular that it always stayed at 100% CPU.
by berkes | 2025-11-15 08:38:41+00:00
I already do this via docker desktop MCPs in which I run a.o. Playwright¹.

Zed and VS code can now drive a browser. E.g. to perform tasks like "run the site on a local server and verify that you see the counter increase when you click this new plus-button"

¹https://hub.docker.com/mcp/server/playwright/overview
by solatic | 2025-11-15 08:39:18+00:00
The project where I looked at Mimir was a 500+ million timeseries project, with the desire to support scaling to the ten-figure level of timeseries (working for a BigCo supporting hundreds of product development teams).

All of these systems that store metrics in object storage - you have to remember that object storage is not file storage. Generally speaking (stuff like S3 One Zone being a relatively recent exception) you cannot append to object files. Metrics queries are resolved by querying historical metrics in object storage plus a stateful service hosting the latest 2 hours of data before it can be compressed and uploaded to object storage as a single block. At a certain scale, you simply need to choose which is more important - being able to answer queries or being able to insert more timeseries. And if you don't prioritize insertion, it just results in the backlog getting bigger and bigger, which especially in the eventual case (Murphy's Law guarantees it) of a sudden flood of metrics to ingest will cause several hour ingestion delays during which you are blind. And if you do prioritize insertion, well the component simply won't respond to queries, which makes you blind anyway. Lose-lose.

Mimir built in Kafka because it's quite literally necessary at scale. You need the stateful query component (with the latest 2 hours) to prioritize queries, then pull from the Kafka topic on a lower priority thread, when there's spare time to do so. Kafka soaks up the sudden ingestion floods so that they don't result in the stateful query component getting DoS'd.

I took a quick look at VictoriaMetrics - no Kafka or Kafka-like component to soak up ingestion floods? DOA.

Again, most companies are not BigCos. If you're a startup/scaleup with one VP supervising several development teams, you likely don't need that scale, probably VictoriaMetrics is just fine, you're not the first person I've heard recommend it. But I would say 80% of companies are small enough to be served with a simple Prometheus or Thanos Query over HA Prometheus setup, 17% of companies will get a lot of value out of Victoria Metrics, the last 3% really need Mimir's scalability.
by Zagorath | 2025-11-15 08:39:48+00:00
There are many times a service like that might not be fraud. For example, if you never explicitly said it was an AI, and if every detail of the service remains the same, from the customer's perspective.

The privacy implications alone make the difference between a human sitting in on your meeting and an actual AI enough to call this fraud. Giving it a fancy name doesn't change that.
by podgorniy | 2025-11-15 08:39:48+00:00
Agree. I don't use term "spec" as it was with "spec-based development" before llms. There details were required to be defined upfront. With LLMs you can start with vague spec, missing some sections and clarify it with iterations.

Sweet spot will be a moving target. LLMs build-in assumptions, ways to expand concepts will be chaning with LLMs development. So best practices will change with change of the LLMs capabilities. The same set of instructions, not too detailed, were so much better handled by sonnet 4 than sonnet 3 in my experience. Sonnet 3.5 was for me a breaking point which showed that context-based llm development is a feasible strategy.
by culebron21 | 2025-11-15 08:39:57+00:00
To me, Go is like Rust oversimplified beyond reason. It edits your code when you don't ask, removing things you just started; it lacks iterators -- every time you must write a big cycle instead. It lacks simple things like check if a key exists in a map.

Proponents say it has nothing under the hood. I see under-the-hood-magic happen every time.

1) The arrays append is one example. Try removing an element from an array - you must rely on some magic and awkward syntax, and there's no clear explanation what actually happens under the hood (all docs just show you that a slice is a pointer to a piece of vector).

2) enums creation is just nonsense

3) To make matters worse, at work we have a linter that forbids merging a branch if you a) don't do if err != nil for every case b) have >20 for & if/else clauses. This makes you split functions in many pieces, turning your code into enterprise Java.

It feels like, to implement same things, Go is 2x slower than in Rust.

On the positive side,

* interfaces are simpler, without some stricter Rust's limitations; the only problem with them is that in the using code, you can't tell one from a struct

* it's really fast to pick up, I needed just couple of days to see examples and start coding stuff.

I think Go would have been great with

* proper enums (I'll be fine if they have no wrapped data)

* sensible arrays & slices, without any magic and awkward syntax

* iterators

* result unwrapping shorthands
by cyphar | 2025-11-15 08:40:01+00:00
I forked Incus from LXD, and I would not describe LXD as Incus's upstream at all. In fact LXD, tends to take patches from Incus these days -- on the other hand, we can't take patches or even look at patches from LXD because they're all AGPLv3 now.

Most of the maintainers and contributors to LXD have moved to maintaining and contributing to Incus instead because it is community-oriented. Incus also has a lot of features LXD doesn't have (list is too long to enumerate, but one notable one is support for OCI images is Incus-exclusive).

Stephane was arguably the primary maintainer of LXD before the split and how now exclusively works on Incus. AFAIK the only LXD-related thing that is still shipped by Zabbly is the LXD web-ui (which I get the impression Stephane doesn't feel is worth maintaining separately since it's easy to just swap out the branding -- which is what he does). Ultimately an optional web-ui is not a particularly large part of the project...

(To be honest, I only learned about the web-ui when someone asked I package it for openSUSE a few months ago. Maybe I would've forked it too back when I forked Incus if I knew about it, though I'm not a web dev.)
by bsder | 2025-11-15 08:40:11+00:00
The whole point of running a business is that I deliver a particular good for a price we agree on but then how I deliver it is up to me within fairly wide latitude.

If, for example, I have found some way to make some equivalent part cheaper, it is NOT incumbent upon me to disclose how I did it to you or my competitors. In order to protect trade secrets that may give away the answer or process to a competitor, I may lie straight to your face to misdirect you or possibly to throw a competitor down the wrong trail. As long as I'm not causing you harm and am delivering to spec, I consider myself to have a lot of latitude.

In any AI implementation, the company principals would have access to the data anyway so security wasn't compromised. In fact, because of the fallibility of human memory, security is probably better than running the audio through possibly compromised systems running an AI in a data center god knows where. So, data security and provenance was not harmed.

Sure, if you specified not to use indentured labor and I subcontract it to Bangladeshi orphans, you have a right to be upset as the bad PR could harm you. That didn't happen in this instance--the labor was company principals.

I see lots of posturing, but nobody pointing to what violations occurred other than not using <jazz hands> "AI". At no point has anyone in this thread demonstrated any harm to the end user beyond some very vague insinuations of "wrongdoing".

Instead, what I see is a bunch of people getting upset that they used "Disgusting Pixie Dust (direct employee labor)" instead of "Delicious Pixie Dust (AI)". If I'm being snide, I would point out that when the direction of substitution is reversed (AI instead of labor)--the HN legions would be celebrating the cleverness. If I'm being particularly snide, I would chalk the anger up to the fact that it nicely demonstrated that the AI Emperor isn't wearing any clothes and is making a bunch of people angry whose paychecks depend upon the emperor remaining naked.

Now, if they were pitching their "Custom AI" to investors while hand transcribing, that is a very, very different kettle of fish.
by tapirl | 2025-11-15 08:40:29+00:00
> Go stands by its compatibility promise—the old way will continue to work in perpetuity ...

It is so weird that they still claim this after they have made the the semantic change for 3-clause for-loop in Go 1.22.

When a Go module is upgraded from 1.21- to 1.22+, there are some potential breaking cases which are hard to detect in time. https://go101.org/blog/2024-03-01-for-loop-semantic-changes-...

Go toolchain 1.22 broke compatibility for sure. Even the core team admit it. https://go101.org/bugs/go-build-directive-not-work.html
by 0ld | 2025-11-15 08:40:50+00:00
I’ve been using teams for years in a browser (on my FreeBSD desktop), and I find it good enough for doing my job - chats work, calls work, presentations work, screen sharing works. or should I say mostly work… sure, it’s as glitchy as it ever was and may fail for any reason at any time, but you don’t really need an app to experience all that
by Twisol | 2025-11-15 08:43:55+00:00
As far as I'm aware, sure you can. TCP packets and UDP datagrams are wrapped in IP datagrams, and it's the job of an IP network to ship your data from point A (sender) to point B (receiver). Nodes along the way might do so-called "deep packet inspection" to snoop on the payload of your IP datagrams (for various reasons, not all nefarious), but they don't need to do that to do the basic job of routing. From a semantic standpoint, the information in the TCP and UDP headers (as part of the IP payload) is only there to govern interactions between the two endpoint parties. (For instance, the "port" of a TCP or UDP packet is a node-local identifier for one of many services that might exist at the IP address the packet was routed to, allowing many services to coexist at the same node.)
by InMice | 2025-11-15 08:44:40+00:00
Of course, what if I use an SSH tunnel instead as that normally suffices a lot easier for me. It's basically the same underlying libraries? They would have to regulate the use of libssl, libcrypto, etc. This makes no sense lol.

Am I going to find myself in jail one day for "Unregulated use of a private/public key pair?"
by Youden | 2025-11-15 08:45:06+00:00
That doesn't make a lot of sense. A modern gas-fired plant is ~50% efficient and heat pumps typically have a COP of ~3 for hot water, so if you take natural gas, burn it to convert it to electricity, then feed that electricity to a heat pump, you'll get ~1.5x the energy you'd get if you just burned the natural gas.
by procaryote | 2025-11-15 08:45:15+00:00
I think you should probably start by asking yourself if you should design a new language. Most new languages fall in the bucket of low value innovation that is instant tech debt for anyone who tries to use it for real

Even the successful ones are often pointless variations on a theme. Ruby, perl & python don't all need to exist for example, as they essentially do the same thing, about as poorly. Now python has won we should just drop the others
by jillesvangurp | 2025-11-15 08:45:17+00:00
A point I like to make in discussions like this is that software and hardware specifications are very different. We think of software as the thing we're building. But it's really just a spec that gets turned into the thing we actually run. It's just that the building process is fully automated. What we do when we create software is creating a specification in source code form.

Compared to what an architect does when they create a blueprint for a building, creating blueprints for software source code is not a thing.

What in waterfall is considered the design phase is the equivalent of an architect doing sketches, prototypes, and other stuff very early in the project. It's not creating the actual blue print. The building blue print is the equivalent of source code here. It's a complete plan for actually constructing the building down to every nut and bolt.

The big difference here is that building construction is not automated, costly, and risky. So architects try to get their blueprint to a level where they can minimize all of that cost and risk. And you only build the bridge once. So iterating is not really a thing either.

Software is very different; compiling and deploying is relatively cheap and risk free. And typically fully automated. All the effort and risk is contained in the specification process itself. Which is why iteration works.

Architects abandon their sketches and drafts after they've served their purpose. The same is true in waterfall development. The early designs (whiteboard, napking, UML, brainfart on a wiki, etc.) don't matter once the development kicks off. As iterations happen, they fall behind and they just don't matter. Many projects don't have a design phase at all.

The fallacy that software is imperfect as an engineering discipline because we are sloppy with our designs doesn't hold up once you realize that essentially all the effort goes into creating hyper detailed specifications, i.e. the source code.

Having design specifications for your specifications just isn't a thing. Not for buildings, not for software.
by locallost | 2025-11-15 08:48:19+00:00
In the case of his example (the basketball player), I've followed his story a bit, and what definitely helped was that his first coach fell in love with him and his skill set and gave him a chance. He also famously accidentally made it to the NBA early because his move to a European powerhouse fell through since he had a terrible game when they were watching.

My point is the following: almost everyone needs a chance and an environment in which they succeed. Yet especially in tech we talk in absolutes - this person is awesome, this person sucks. This is especially prevalent in young people, which typically consist a large portion of tech, so maybe there's a connection there.

Sometimes things don't work out because the people and the organization are a bad fit, sometimes it's just chance. If you want to look at sports analogies, look at coaches. You have coaches that have been successful for a long time, but then in another job they're not successful anymore. Things happen. It doesn't say anything about their person as much as it simply did not work out.
by ilkkao | 2025-11-15 08:48:50+00:00
You can definitely craft an IP packet by hand and send it. If it's IPv4, you need to put a number between 0 and 255 to the protocol field from this list: https://www.iana.org/assignments/protocol-numbers/protocol-n...

Core routers don't inspect that field, NAT/ISP boxes can. I believe that with two suitable dedicated linux servers it is very possible to send and receive single custom IP packet between them even using 253 or 254 (= Use for experimentation and testing [RFC3692]) as the protocol number
by suchoudh | 2025-11-15 08:49:02+00:00
Never thought about this difference before. It has given me a lot of new ground to explore. Thanks for the effort.

Found the post to be Shockingly true.

"You have to live it to understand it, but I wouldn’t wish it on anyone, its a tarpit and getting out of it without someone handing you a branch (and if you no longer have the strength to pull yourself out) then you’ll be stuck in it forever. "

In India there is a concept of "Langar" at Sikh temples where you get free hygienic vegeterian food.

The weather is also a lot forgiving ( as of this year you will not die of cold or a heatstroke in summers - but this situation is changing with extremes weathers due to climate change)

I do not have a solution .. but am looking on this problem of poverty due to job losses since a long time.

If you know of some good pointers to look at pls share.
by armitron | 2025-11-15 08:49:16+00:00
> Computer science would have progressed much further and faster if all of the time and effort that has been spent maintaining and nurturing Unix had been spent on a sounder operating system. We hope that one day Unix will be relingquished to the history books and museums of computer science as an interesting, albeit costly, footnote.

UHH is obviously sound but doesn't go far enough in criticizing the unix disaster.
by gsliepen | 2025-11-15 08:50:49+00:00
If you start with the problem of how to create a reliable stream of data on top of an unreliable datagram layer, then the solution that comes out will look virtually identical to TCP. It just is the right solution for the job.

The three drawbacks of the original TCP algorithm were the window size (the maximum value is just too small for today's speeds), poor handling of missing packets (addressed by extensions such as selective-ACK), and the fact that it only manages one stream at a time, and some applications want multiple streams that don't block each other. You could use multiple TCP connections, but that adds its own overhead, so SCTP and QUIC were designed to address those issues.

The congestion control algorithm is not part of the on-the-wire protocol, it's just some code on each side of the connection that decides when to (re)send packets to make the best use of the available bandwidth. Anything that implements a reliable stream on top of datagrams needs to implement such an algorithm. The original ones (Reno, Vegas, etc) were very simple but already did a good job, although back then network equipment didn't have large buffers. A lot of research is going into making better algorithms that handle large buffers, large roundtrip times, varying bandwidth needs and also being fair when multiple connections share the same bandwidth.
by kbrkbr | 2025-11-15 08:51:43+00:00
I do have a bit of experience with managing WAFs for large online gaming providers and I can tell you it's not a solved problem. Netflix would also love to hear how I guess.

Even if you somehow manage to enumerate the Nordvpn IPs - a thing of which Nordvpn probably thought in their threat model - then you still have thousands of other providers.
by twothreeone | 2025-11-15 08:51:49+00:00
Particularly the numerous variations of 2 have found widespread success when explaining to the poor the reasons for why they are poor:

2.a) the foreigners / jews / muslims invading and pillaging our glorious, Christian home country are stealing their jobs

2.b) the socialists / communists / antifa bureaucrats are stealing their wages

This can be tailored and highly specific towards the target audience (e.g., Facebook Ads, Twitter Bots, in a small town with abandoned industry), alternatively keeping it broad and widely accessible (for Podcasts, banners, or national TV). What really matters for explaining this with impact though is the tone. It is imperative to be loud and angry, ideally you are yelling at your audience. Repeat yourself often and use the most limited vocabulary possible. You need to empathize with the anger of the poor for the clear and obvious injustice that has happened to them. Leaning into that emotion will make anyone happily abandon any remains of rationality and critical thinking, which they have experienced as being completely futile in advancing their own quality of life, or improving their family's living situation. Which is of course the reason why Conservatives would like to have as many poor people as possible amongst their constituencies, and are fighting hard to actively push more people into poverty. They know those people will be their most faithful voters.
by alain_gilbert | 2025-11-15 08:52:25+00:00
I worked on a toy programming language (that compile down to golang), which is a fork of the go lexer/parser, but it changes how functions can only return one value allowing the use of Result[T]/Option[T] and error propagation operators `!` and `?`.

It has enums (sum type), tuple, built-in Set[T], and good Iterator methods. It has very nice type inferred lambda function (heavily inspired by the swift syntax)... lots of good stuff!

https://github.com/alaingilbert/agl
by berkes | 2025-11-15 08:52:26+00:00
Not literally. But in spirit.

I don't want my web browser to be a mediocre PDF reader. I want my good and perfected PDF reader to be a PDF reader. I don't want my web browser to be a Web development IDE. I want a specialised (version of) a browser with all the developer tools and one that lacks all these features is lighter, safer and simpler for browsing. I don't want an FTP client in my web browser (I don't want one anywere lol). Firefox was extracted from Mozilla back in the days exactly because Mozilla had become a browser that was bloated and crammed full of features that were unpolished or just subpar. Firefox saved Mozilla and fought back by being lean, fast, and terribly focused at doing one thing and doing talhat well.

I want a browser that's good and forever improving in letting me browse the web and run and use web-apps.
by hnlmorg | 2025-11-15 08:52:30+00:00
Terrible advice.

Different languages excel at different things. There shouldn’t be a “one size fits all” otherwise we’d be writing software in FORTRAN and assembly.

And designing a language is a good exercise if purely from an academic perspective. Eg you learn how to write parsers, and a bunch of PL theory that we take for granted when just being a consumer of a programming language.

Not everything needs to be done with global domination in mind.
by pqtyw | 2025-11-15 08:52:54+00:00
> literally anything where the kids will clean their plates then

Feeding kids sugar and hen nudging them to eat slightly less sugar while still providing inherently unhealthy meals seems suboptimal. Them cleaning their plates is not an inherently a good thing. Rather the opposite.

> making sure they eat the "right" things.

Certainly better than feeding them the wrong things? though.

It's not like starvation or malnourishment is the main issue when a significant proportion of children are overweight. Them eating crap is...
by hereme888 | 2025-11-15 08:53:20+00:00
I think I've seen enough of a trend: all these LLM ideas eventually get absorbed by the LLM provider and integrated. The OSS projects or companies with products eventually become irrelevant.

So they're more like 3rd party innovations to lobby LLM providers to integrate functionalities.

X prompting method/coding behaviors? Integrated. Media? Integrated. RAG? Integrated. Coding environment? Integrated. Agents? Integrated. Spec-driven development? It's definitely present, perhaps not as formal yet.