MurphyA/hacker-news huggingface dataset:
by scarecrowbob | 2025-10-18 16:45:06+00:00
As a person who routinely uses XLRs to carry stereo headphone feeds with TRS converters on each end, I kind of like that there are only a few connectors that do different things. I have a pelican that's already heavy enough and adding more adapters to my kit doesn't sound great.

Once you know that just because you can fit a jack in something you can't rely on it not to have 48 volts across pins, you stop putting fingers in light sockets or hooking your laptop to XLR inputs using TS->XLR adapters.

Aren't there already a number of applications using canon connectors with digital? What's your opinion about AES/EBU using XLR? Or DMX over 3-pin xlr?
by ataru | 2025-10-18 16:46:54+00:00
The interfaces look like they wanted to be graphical, as they have windows and drop down menus, and they wanted to have multi-tasking, as they implemented the overlay tools in Borland Sidekick. They wanted those things but they were limited to staying in text mode because widespread adoption of any real graphical interface was slow.

It seems a little humorous now that professionals were stuck for several years doing their day to day word processing, spreadsheets and databases in text mode, where getting different sized text or different fonts was almost impossible. This also wasn't just in the 80s, it was still somewhat true in the early 90s, not very long before the beginning of the internet as we know it.

Still, I wonder if things are really any better now, as we're all using software interfaces built on something else that's not really appropriate for the job. HTML.
by geysersam | 2025-10-18 16:47:13+00:00
> Using != or NOT IN (...) is almost always going to be inefficient.

Why do you say that?

My understanding is that as long as the RHS of NOT IN is constant (in the sense that it doesn't depend on the row) the condition is basically a hash table lookup, which is typically efficient if the lookup table is not massive.

What's the more efficient alternative?
by RHSeeger | 2025-10-18 16:47:14+00:00
I think you're reading more into what was said than is really there

> I immediately become suspicious

All I read from that is, when DISTINCT is used, it's worth taking a look to make sure the person in question understands the data/query; and isn't just "fixing" a broken query with it. That doesn't mean it's wrong, but it's a "smell", a "flag" saying pay attention.
by paulgerhardt | 2025-10-18 16:47:46+00:00
A few ways. This particular project is doing it by hand and very tedious.

The traditional way of transplanting large trees while keeping the root system intact is with a hydrovac. A machine the size of a jet engine that liquifies the soil with water and then vacuums it up. [1]

More recent developments have tried using an AirSpade which doesn’t use water but compressed air to blow apart and then suck the soil without making a slurry which is better as the soil can be redeposited in the same hole rather than discarded[2]

[1] https://youtube.com/shorts/HinwD5-Q2xA

[2] https://youtu.be/B3XomJ6Z1I4
by btilly | 2025-10-18 16:48:02+00:00
Yet again. Preventing amyloid-beta buildup cures the mouse model that we have for Alzheimer's. We have on the order of a dozen drugs that got to stage 3 trials based on, "prevents amyloid-beta buildup, and cures mice." In every case we found that we can prevent amyloid-beta buildup in humans as well, but we failed to cure or even halt the progression of Alzheimer's.

In other news, we have shown that taking a shingles vaccine will reduce your odds of getting Alzheimer's.

I am extremely dubious that yet another treatment for amyloid-beta that works on mice, will do anything useful in humans.
by constantcrying | 2025-10-18 16:49:17+00:00
>benefit that it doesn't update on its own, changing UI and setting that I was used to.

This exact thing remains true though, you are using the exact same neovim, but instead of it being wrapped inside a totally bizarre piece legacy software, it is rendered inside a modern graphical frontend. It looks mostly the same, except it handles fonts better, it is independent of weird terminal quirks and likely faster. There is no dowside.

And again, your point about using TUI stuff because of the input method or whatever is just false. Neovide has the exact same input method, yet has a complete GUI. Using the terminal makes no sense it all, it is the worst neovim experience there is.
by kazinator | 2025-10-18 16:49:40+00:00
while there are certain simplicities and economies in a Lisp-1, it's a bad idea on the whole, and has irksome disadvantages.

Lisp-2 also has irksome disadvantages, like the verbosity in code working with functional arguments.

I want to give myself and my users the advantages of Lisp-1 and Lisp-2, as well as ways to avoid their respective disadvantages, so there is no way to get around having some kind of combination that lets us work in different styles.
by andy99 | 2025-10-18 16:49:49+00:00
The article probably could just have been that statement, but I agree.

Every experience now just seems like people (companies) fighting over who can most obnoxiously distract you.

I bought a new phone recently for the first time in 8 years, and (a) had to set everything up all at once (ad blocking, no notifications, etc) which left me briefly exposed to how bad things are but (b) had to experience all the annoyingness of a modern phone trying to suggest things and sync things and bother me with stuff I don’t want.

No product is even remotely for the consumer anymore, they’re all just minimal pretenses to try and advertise you and extract more of your attention and money.

So yeah, outside some sheltered life of luxury, it’s a constant fight to preserve focus against people wanting to steal it.
by RHSeeger | 2025-10-18 16:49:53+00:00
> Are there real-life cases where DISTINCT is the best choice by whatever metric you prioritize at the time

Indeed, along that line, I would say that DISTINCT can be used to convey intent... and doing that in code is important.

- I want to know the zipcodes we have customers in - DISTINCT

- I want to know how many customers we have in each zipcode - aggregates

Can you do the first with the second? Sure.. but the first makes it clear what your goal is.
by danparsonson | 2025-10-18 16:50:33+00:00
There were a bunch of predefined modes in the video BIOS, and with a little bit of assembler you'd issue an interrupt (a system call really) which would change the video mode. Then as the parent comment said, you could write to video memory directly and your writes would either be interpreted as ASCII character/attribute pairs in a text mode, or colour palette indices in a graphical mode.

Most games at that time used mode 13h which was 320x200 with 8-bits per pixel which therefore indexed into a 256-colour palette (which could itself be redefined on the fly via reading from and writing to a couple of special registers - allowing for easy colour-cycling effects that were popular at that time). Here's a list of the modes: https://www.minuszerodegrees.net/video/bios_video_modes.htm
by ninetyninenine | 2025-10-18 16:51:01+00:00
Except Sutton has no idea or even a clue about the internal model of a squirrel. He just uses it as a symbol for utterly stupid but still smarter than an LLM. It’s semantic manipulation in attempt to prove his point but he proves nothing.

We have no idea how much of the world a squirrel understands. We understand LLMs more than squirrels. Arguably we don’t know if LLMs are more intelligent than squirrels.

> Finally he says if you could recreate the intelligence of a squirrel you'd be most of the way toward AGI, but you can't do that with an LLM.

Again he doesn’t even have a quantitative baseline for what intelligence means for a squirrel and how intelligent a squirrel is compared to an LLM. We literally have no idea if LLMs are more intelligent or less and no direct means of comparing what is more or less an apple and an orange.
by whaleofatw2022 | 2025-10-18 16:51:08+00:00
PS2 had export limitations put on it by Japan. There were also rumors that Saddam was using them for a supercomputer.

I do have the odd anecdote, way back in the day, I was in a CompUSA in Dearborn MI and overheard a middle eastern guy at the counter asking if they had any PS2s. When they said no (this was a point where availability was low) instead he bought bought at least 5 (might have been 10?) PS1s.
by kazinator | 2025-10-18 16:51:16+00:00
It's not folder size that you measure, but a user's usage: how many blocks are occupied by files belonging to a certain user, no matter where they are.

That's what quotas are: per-user storage limits.

If Bob has a large file which is sitting in Alice's home directory, that counts toward's Bob's quota, not Alice's. If Bob could sneakily change the ownership to Alice, while leaving the permissions open so he could access the file, then the file counts toward Alice's quota.
by kibwen | 2025-10-18 16:51:48+00:00
> there's never been an energy transition in the sense of replacing one source of energy with another

We have. This is thinking too narrowly about energy as "driving a turbine" rather than doing work in general. Horses, oxen, and other beasts of burden have been almost completely marginalized in our modern economy. The same could certainly happen to steam-powered turbines (coal, gas, nuclear, etc) if the economics end up working out that way.
by Arch-TK | 2025-10-18 16:51:57+00:00
For plants, and trees too I guess, you can just grow your own, dig it up after a while, and inspect for yourself.

Today I finished picking tomatoes from my tomato plants and pulled them up to avoid them rotting in the field as the temperature goes down. It was curious to see how the root systems varied both between the two tomato varieties I had planted, the location of the plant in relation to surrounding grass, and the type of soil they ended up in.
by starkparker | 2025-10-18 16:52:07+00:00
> It will make you very rich if your product is very good - if it blocks a production or even worse destroys a recording you'll be beaten out of the market with fists.

I remember working support for a video production data storage company and it being straightforward problems most of the time (9 times out of 10 just walking PAs or AEs through documented steps for swapping a drive in a RAID) but executed under some of the wildest circumstances (a producer calling from a helicopter during a shoot, or hearing an A-list filmmaker yelling at the AE in the background, or security so tight that I'd get confirmation of each step as a photo of the server's screen taken on a phone that's then walked to a place that gets a signal).

In other industries I've worked in, most of those requests never would've made it to a rep's phone, but the table-stakes expectation was that someone was always available to ensure it was done right and to satisfaction, or you lost the client immediately.

When it really was a serious issue and we got shipped out on-site to a client, we were effectively told not to bother coming back if we couldn't diagnose and fix it.
by vebgen | 2025-10-18 16:52:18+00:00
Congrats on the launch! The embedded MCP server approach is clever.

Quick question about session handling: how do you manage auth state conflicts when multiple agents interact with the same logged-in session simultaneously? We're building an AI agent for Django development and ran into similar challenges with managing concurrent operations in a sandbox environment.

Also curious about your anti-bot detection implementation at the C++ level. Are you modifying specific Chromium fingerprinting APIs or taking a different approach?

Checking out the repo now — love that it's open source!
by TOGoS | 2025-10-18 16:53:40+00:00
`5.times` is not so outlandish, though it would seem better for that to be in a `Loop` library or something (`Loop.times(5) { do some stuff }`).

The `5.days` example that was posted somewhere else in this thread might be a better example. It is not, as far as I can tell, part of Ruby's core library, thank goodness, but it is the kind of thing the methods-as-hacks-for-syntax culture seems to encourage. My question being "why the heck should the number 5 know anything about days? What does 5.days even mean, given that there are various ways to interpret 'a day'?"

This kind of bad design has made its way all over the place. The Java mocking libraries that my coworkers like to use are full of it. Long chains of method calls that appear like they're trying to 'look like English' but make no damn sense, so you have to dig into each method call and what kind of thing it returns to understand what this chain actually means.
by FloorEgg | 2025-10-18 16:53:44+00:00
I think we are talking past each other a bit, probably because we have been exposed to different sets of information on a very complicated and diverse topic.

Have you ever explored the visual simulations of what goes on inside a cell or in protein interactions?

For example what happens inside a cell leading up to mitosis?

https://m.youtube.com/user/RCSBProteinDataBank

Is a pretty cool resource, I recommend the shorter videos of the visual simulations.

This category of perspective is critical to the point I was making. Another might be the meaning / definition of complexity, which I don't think is well understood yet and might be the crux. For me to say "the difference between life and what we call machines is just complexity" would require the same understanding of "complexity" to have shared meaning.

I'm not exactly sure what complexity is, and I'm not sure anyone does yet, but the closest I feel I've come is maybe integrated information theory, and some loose concept of functional information density.

So while it probably seemed like I was making a shallow case at a surface level, I was actually trying to convey that when one digs into science at all levels of abstraction, the differences between life and machines seem to fall more on a spectrum.
by WarOnPrivacy | 2025-10-18 16:53:46+00:00
The curious part is that for every ideological group (and Americans adore their ideological groups) that has a theoretical boogie man, 4A violations are key and core to the rise of that nemesis.

Examples are

- bulk warrantless surveillance is critical for any aspiring anti-christ - a surveillance state is the largest possible government - omnipresent surveillance ensures gov revenge for having guns/abortions

Yet adherents from each of those groups are super comfortable with sweeping, pervasive surveillance - the continual monitoring that captures them and their descendants for perpetual subjugation to govs/corps/etc.
by drumdance | 2025-10-18 16:54:12+00:00
Thanks for your input. Once we launch the the product itself we will make no mention of crypto for exactly this reason.

Lofty.ai used crypto as the back end for their fractionalized property platform, but there is no mention of crypto. I used it to sell a portion of my rental property. Here's a video I made about the process: https://www.youtube.com/watch?v=SgPLXFwhZbY&t=2s
by orangeboats | 2025-10-18 16:54:21+00:00
Do you really think your solution of "IPv4 with extra octets" will not introduce so called "broken everything"...?

Whether it's the addition of one octet or twelve octets, you are nevertheless introducing a new Internet Protocol, and therefore you are going to face the reality of introducing a new Internet Protocol.

To think otherwise is delusional and is the reason why the "Godwin's law of networking" has become sort of a meme.
by burntsushi | 2025-10-18 16:55:41+00:00
`some-command | grep pattern` and `some-command | rg pattern` both work fine. You can chain `rg` commands in a shell pipeline just like you do `grep`.

What the GP is suggesting is that their most common use case for grep is recursive search. That's what ripgrep does by default. With `grep`, you need the non-POSIX `-r` flag.

The other bit that the GP didn't mention but is critical to ripgrep's default behavior is that ripgrep will ignore files by default. Specifically, it respects gitignore files, ignores hidden files and ignores binary files. IMO, this is what most people mean by "ripgrep does the right thing by default." Because ripgrep will ignore most of the stuff you probably don't care about by default. Of course, you can disable this filtering easily: `rg -uuu`. This is also why ripgrep has never been intended to be POSIX compatible, despite people whinging about "backwards compatibility." That's a goal they are ascribing to the project that I have never professed. Indeed, I've been clear since the beginning that if you want a POSIX compatible grep, then you should just use a POSIX compatible grep. The existence of ripgrep does not prevent that.

Indeed, before I wrote ripgrep, I had a bunch of shell scripts in my ~/bin that wrapped grep for various use cases. I had one shell script for Python projects. Another for Go projects. And so on. These wrappers specifically excluded certain directories, because otherwise `grep -r` would search them. For big git repositories, this would in particular cause it to waste not only a bunch of time searching `.git`, but it would also often return irrelevant results from inside that directory.

Once I wrote ripgrep (I had never been turned on to `ack` or `ag`), all of those shell scripts disappeared. I didn't need them any more.

My understanding is that many other users have this same experience. I personally found it very freeing to get rid of all my little shell wrappers and just use the same tool everywhere. (`git grep` doesn't work nearly as well outside of git repositories for example. And it has, last I checked, some very steep performance cliffs.)

Some users don't like the default filtering. Or it surprises them so much that they are horrified by it. They can use `rg -uuu` or use one of the many other POSIX greps out there.
by habitue | 2025-10-18 16:55:41+00:00
Skills wont use less context once invoked, the point is that MCP in particular frontloads a bunch of stuff into your context on the entire api surface area. So even if it doesn't invoke the mcp, it's costing you.

That's why it's common advice to turn off MCPs for tools you dont think are relevant to the task at hand.

The idea behind skills us that they're progressively unlocked: they only take up a short description in the context, relying on the agent to expand things if it feels it's relevant.
by BuyMyBitcoins | 2025-10-18 16:56:28+00:00
I can’t watch YouTube without an adblocker. On a surface level, I hate the ads. But, the main reason is the fact that I can’t stand how YouTube is fixated on trying to make you watch something else at all times. I need something to hide all the little cards and interstitials that pop up when pausing the video, the badges, all the obnoxious thumbnails, etc..

I also hide all of the videos on the sidebar except for the one that would be recommended next, just so I can know what might play if I leave autoplay on.

It is insane to me that the product got to this place. I get Google is all about advertising, but my goodness, YouTube is just designed to make you not pay attention for more than a few seconds.
by dotnet00 | 2025-10-18 16:57:08+00:00
A popular sentiment related to this is that since we're on the only planet in the universe that we know to have the gift of life (and especially somewhat intelligent life), we have a duty to do our best to preserve it.

If we find definitive proof of extraterrestrial intelligence, I wonder how many will decide that it's okay to do anything regardless of its effect on our ability to continue existing.
by versteegen | 2025-10-18 16:57:30+00:00
If ever there was a language justified in claiming to be heavily inspired by a dozen other languages, I'm sure Julia is it.

When I first heard about Julia I understood it to be a faster alternative to Python. As I started to learn it I realised that's really not what it's about, it's trying hard to compete simultaneously with Matlab and R and Fortran and C++ (and the template metaprogramming language hiding in C++) and APL and Lisp and maybe OCaml just as much as Python (but not Rust or Java or Agda), and I can't even speak to the other languages mentioned.
by bibiver | 2025-10-18 16:57:42+00:00
I saw this and was like, what?

> have we advanced much in 30 years?

IDEs have changed a lot, specially with AI-assisted ones. The author kind of acknowledges it, but imho it's a paradigm shift. Not just "a major difference".

> The only major difference that we are starting to see might be AI-assisted coding, but this is a feature mostly provided by a remote service, not even by the installed code!

Then I realized it’s a post from 2023. IDEs have changed a lot since then. Autocompletion has evolved from merely suggesting function names to completing 20 lines of code in the blink of an eye. It's great for productivity, but it also makes you lazy, to the point where you can't live without it.

In my opinion, software engineers should “disable the autopilot” from time to time, just like airline pilots must occasionally land without it. Otherwise, you end up becoming too dependent on it.
by d4rkp4ttern | 2025-10-18 16:57:59+00:00
I like each at different times in different ways. Now I have both running in separate Tmux panes and have one talk to the other to ask/delegate/verify/validate, using my Tmux-cli tool (now a Claude skill of course):

https://github.com/pchalasani/claude-code-tools

Now my work on a project often spans multiple sessions of these agents. So I use a session-finder and resume/dump tool (also in that repo). I often ask Claude or codex to extract all useful details from a jsonl session log file so I can continue the work.
by throwup238 | 2025-10-18 16:58:10+00:00
Any problem with event sourcing can be solved with more events (said semi-sarcastically).

In this case it’s XTransactionStarted, XTransactionDepositConfirmed, and XTransactionCreditConfirmed or something along those lines. External interactions tend to follow that kind of pattern where it tracks success/failure in the domain events.

The command side of CQRS tends to be the services that guarantee ordered events either via the backing database or with master-slave topology.
by vebgen | 2025-10-18 16:58:37+00:00
This is fascinating! The "evolving playbook" approach resonates with challenges we've been tackling building an AI agent for Django development.

A few questions about your implementation:

1. How do you handle the balance between delta updates and full context rewrites when the playbook grows large? We've found that keeping detailed history helps with debugging but can bloat context quickly.

2. The Generator/Reflector/Curator separation is elegant. Did you implement these as separate LLM calls or different prompting strategies on the same model? We use a similar dual-agent pattern (planner + executor) and the coordination overhead is non-trivial.

3. Most interesting part: "natural execution feedback without labeled supervision." How do you define success/failure signals for the Reflector in ambiguous cases? For code generation, it's easy (tests pass/fail), but for other domains it seems trickier.

The +10.6% improvement on agent tasks is impressive - definitely checking out the paper. The brevity bias problem you mention is real - we've noticed agents dropping important context details when trying to "summarize efficiently."
by Sesse__ | 2025-10-18 17:01:00+00:00
I'm going to assume here that we're talking about a subquery here (SELECT * FROM t1 WHERE x NOT IN ( SELECT x FROM t2 )). If you're just talking about a static list, then the basic problem is the amount of data you get back. :-)

The biggest problem with NOT IN is that it has very surprising NULL behavior: Due to the way it's defined, if there is any NULL in the joined-on columns, then _all_ rows must pass. If the column is non-nullable, then sure, you can convert it into an antijoin and optimize it together with the rest of the join tree. If not, it usually ends up being something more complicated.

For this reason, NOT EXISTS should usually be preferred. The syntax sucks, but it's much easier to rewrite to antijoin.