MurphyA/hacker-news huggingface dataset:
by eru | 2025-07-21 06:46:06+00:00
Well, cached recursion is a bit too generic. Almost anything can be done with both caches and recursion.

We had a different characterisation in one of our mathematical optimisation classes: dynamic programming is basically every problem that isomorphic to finding the longest path in a graph, with suitable 'overloading' of 'maximum' (for picking among multiple alternative paths) and 'addition' (for combining multiple sub-paths).

First, to illustrate what I mean by this overloading: matrix multiplication usually has multiplication () and addition (+). However, in the min-plus-algebra you overload (+) with minimum and () with plus, and then multiplying matrices becomes equivalent to hopping two paths in the adjacency matrix of a graph. (Sorry, if this is a bit confusing.) Specifically, taking an adjacency matrix A and calculating A* := 1 + A + AA + AAA + ... is equivalent to taking the transitive closure of edge hopping in your graph, ie the shortest paths between all pairs of vertices.

If you overload (+) with maximum and () with plus instead, you can find longest paths. For that to make sense, you should not have cycles in your graph.

Now let's go back to dynamic programming: the shared optimal sub-structure property of dynamic programming is exactly the same as what you have in finding longest paths.

The structure might sound overly restrictive, but you'll find that it works for all (most?) examples of dynamic programming.

P.S. My recollection was a bit vague, so I asked ChatGPT for some help, and apparently I wasn't completely wrong: https://chatgpt.com/share/687de24c-c674-8009-9984-0fda56d1c1...

P.P.S. Despite everything I said above, I agree that 'cached recursion' is still a better name than dynamic programming.
by lelanthran | 2025-07-21 06:46:42+00:00
> Do they? I certainly don't. I don't know if it's my memory deficiency, but I frequently hit my "context window" when solving problems of sufficient complexity.

Human context windows are not linear. They have "holes" in them which are quickly filled with extrapolation that is frequently correct.

It's why you can give a human an entire novel, say "Christine" by Stephen King, then ask them questions about some other novel until their "context window" is filled, then switch to questions about "Christine" and they'll "remember" that they read the book (even if they get some of the details wrong).

> Can you provide some examples of problems where humans have such large context windows?

See above.

The reason is because humans don't just have a "context window", they have a working memory that is also their primary source of information.

IOW, if we change LLMs so that each query modifies the weights (i.e. each query is also another training data-point), then you wouldn't need a context window.

With humans, each new problem effectively retrains the weights to incorporate the new information. With current LLMs the architecture does not allow this.
by fabian2k | 2025-07-21 06:48:34+00:00
I admit, I was confused a bit as well about the io_ring security reputation. Though I didn't really follow the topic, so the clarification that this was mostly about an older design on Android is quite helpful.

The potential performance benefits are quite compelling, e.g. in Postgres 18 you reportedly can get a 3x speedup over the old sync behaviour in simple read queries.
by k4runa | 2025-07-21 06:49:28+00:00
Looks great, but I find the solid line under the navbar that sticks to your mouse a bit annoying... as it covers and crosses out the logo when you want to press it, you could also get rid of the sticky nav because the page isn't too long. The extra bold black line kind of clashes with the otherwise light and airy design you have around the rest of the website (but looks great in the footer) so I would say use it in moderation. Good luck!
by eru | 2025-07-21 06:50:11+00:00
There's also dynamic scoping; as opposed to lexical scoping a.k.a. static scoping.

You can find defenders of dynamic typing, but dynamic scope is now widely seen as a mistake. Or at least dynamic scope by default; it has specialised uses--and in Haskell the Reader Monad is basically isomorphic to dynamic scoping and no one complains about it.
by WJW | 2025-07-21 06:50:18+00:00
It's with so many things! Some evergreens just from last week here on HN:

- Rails is horribly slow!

- Python is still stuck migrating to Python 3!

- MySQL doesn't scale!

- Haskell tooling sucks!

- io_uring is insecure!

- ... and dozens more just in the programming world. These are just off the top of my head. Probably hundreds more in the wider engineering world.
How are you using Perplexity in your daily workflow
by satyampsoni | 2025-07-21 06:51:05+00:00
I've recently started exploring Perplexity and found it helpful for quick research and summarizing technical topics.

I'm curious how others in the HN community are using it—whether for programming, learning, productivity, or even something niche.

Are there any specific prompts, habits, or use-cases where Perplexity shines for you?
by concerned_user | 2025-07-21 06:52:00+00:00
This is only true if people stick to a version of a language and don't upgrade.

If you upgrade then, for example, you can't run all of your PHP 5 code in PHP 8, most of it you can but you will have to change the parts that are broken, which are the areas that are repaired in PHP 8.

Same goes for other languages like C# or Python
by JimDabell | 2025-07-21 06:52:29+00:00
> There should be a way to filter what you don't want to see, that's your choice. But we shouldn't try to stamp out people saying what they want

The point of choosing abusive usernames and posting abusive things is to hurt people who don’t want to see that stuff. The two cannot coexist in the same space. There’s no reason to legitimise this kind of thing while they are looking for ways to hurt people.
by p_v_doom | 2025-07-21 06:53:00+00:00
Completely agree on software engineering. Not sure if it shouldve been callled engineering ever, but calling it applied philosophy sounds even more pretentious, and while we try to pretend to be rigorous and structured, software engineering really shares a lot more with writing than with building bridges.

That said, I think we sometimes tend to overestimate how structured projects like bridges are, and that almost everything we have discovered about software projects applies there too, just to a less extend - delays, changing requirements, unrealistic planning, last moment extra requests etc. etc.
by oblio | 2025-07-21 06:53:04+00:00
Or, you know, you could just... say nothing? Downvote and move on.

It's not like OP is Sam Altman and one of the actual AI bros. This thing will happen or not happen regardless of what OP wants.

Amusingly, you've committed the same basic mistake as LLMs, which just don't know when to shut up :-p
by zdragnar | 2025-07-21 06:53:20+00:00
I personally witnessed DEI done wrong at the last company I worked at. We had a new HR lady who was all in on the hype and decided that our team was too white.

After that, we didn't have a white person to interview for quite awhile. The racial makeup of interviews had changed- quite radically- and the quality of interviewees had gone down quite a bit as well. I'm certain one submitted a fake resume, and possibly a second.

Bear in mind, our team was not entirely white, and we had people working with us from around the world as far away as Pakistan.

Eventually, our manager got her taken out of the loop, and we took back control of hiring, including several (albeit not exclusively) non-white people.

> I work in a european liberal art school

There have been several prominent academia scandals in the US around the DEI space. Some of the studies that triggered a lot of the companies to hop on the bandwagon (and either Air Force or the DoD, I forget which) ended up being full of basic statistical fudging to fit conclusions.
by conradfr | 2025-07-21 06:55:07+00:00
As a counterpoint, being primarily a web developer (although I did Windows desktop apps with Delphi in the 90s) I hard time doing UI with JUCE.

It never really clicked with me and I had a hard time really aligning things, with their Flexbox thing etc, how you set graphic values outside vs inside component classes, being sometimes confused how paint() vs resized() affect things etc.

Probably operator error but in the end I was happy to ditch it for the new WebView option in JUCE 8.
by senko | 2025-07-21 06:58:14+00:00
There are a few: Greptile, Ellipsis, GH Copilot (integrated with GH)

I feel many also try "review and fix automatically", as it's tempting to "just" pass the generated comments to a second agent to apply them.

But that opens a whole other can of worms and pretty soon you're just another code assistant service.
by jancsika | 2025-07-21 06:58:19+00:00
> nor in the exaggerated cartoony manner of other comedic anti-heroes

I'm not sure I understand the focus on realism here.

I mean, there's absolutely nothing in any scene of The Thick of It that looks at all realistic to me. But it captures the essence of incompetence, corruption, and opportunism so completely that reading actual news stories inescapably brings to mind scenes from that series.
by hakfoo | 2025-07-21 06:58:27+00:00
Existing veggie burgers were sort of trapped by trying to present themselves as "close enough to beef". You will be lapped by a more accurate replacement. It makes me think of Boca Burgers-- I used to enjoy one occasionally as a carnivore, but I wonder if they're still around with Beyond Meat and Impossible on the chain menus.

If you're not going to emulate beef exactly, own that and sell a different experience. I'd love to see something more like "stuffing fritters"-- strongly seasoned meatless patties with different tastes and textures. Nobody would be fooled they're burgers, but nobody is claiming they are either.

I could even see expanding the market beyond vegetarians by presenting them as a supplement for conventional burgers and chicken-patty sandwiches as a topping to add more flavour.

That was always another problem with meatless products-- they didn't get a great anchor with the mass market (who wasn't looking for explicitly vegetarian) so they remained expensive, narrow-distribution specialty products. If the regular burger is $5.50 and the Beyond Meat is $7.50, it's an even harder sell to the mainstream consumer outside of buying one as a novelty once.
by umangsehgal93 | 2025-07-21 06:58:34+00:00
In the emerging era of AI agents and tool-using models, a new kind of product strategy is taking shape. Products are no longer just competing for user attention—they’re competing to be the default tool a model chooses to invoke.

I wrote a deep dive on how Model Context Protocols (MCPs) are reshaping product thinking. It covers:

- Why agents (not humans) are becoming primary users - How discoverability, callability, and context readability become critical - Why a product’s success may soon depend on whether it's “Agent-Native” - What metrics PMs should track to win in this new invocation-first world

Would love feedback and discussion—especially from folks building in the AI infra or agent tooling space.
by tgma | 2025-07-21 06:58:52+00:00
I actually think overly focusing on the memoized recursion undermines the core conception of dynamic programming. Remember, as noted in the post, the term programming refers to a tabular method of planning, i.e. specifically, the bottom-up calculation to solve a problem. The emphasis here is on a predetermined order on how to tabulate the plan to get to the desired result which will be the solution to the broader problem.

The memoized recursive function is an implementation methodology on a digital computer that specifically side-steps the question of in which order one should do the tabulation. I would argue that recursive memoization is a possible solution technique to dynamic programming problems (defined as the universe of problems that admit a dynamic programming solution,) but strictly speaking, in and of itself, is not dynamic programming.
by danpalmer | 2025-07-21 06:58:59+00:00
This is a reasonable first pass answer, but there's more nuance to this...

> What it does not do is separate this information

Logging at scale should really be structured, which means that you can trivially differentiate between different types of log message. You also get more dimensions all represented in that structure.

> limits the type of metrics which can be reported to be those expressible in a message text field

This is another example, logging shouldn't be text based ideally. You might have a summary human readable field, but metrics can easily be attributes on the log message.

The more I work in this area the more I'm realising that logs and metrics are pretty interchangeable. There are trade-offs for each absolutely, but you can convert logs into metrics easily (Datadog does this), and with a bit more effort you could turn a metric into logs if you wanted to (querying metrics as rows in a SQL database is handy!).

Metrics collection is also not necessarily orthogonal to logging, it depends on your system. From a server, you might have logs pushed to an external source and metrics pulled from the server by Prometheus, but that's just implementation details. You can also have logs pulled from log files, and metrics pushed to a statsd endpoint.

I've worked on mobile apps where metrics get aggregated locally and then pushed as log events to the server with one log event per metric and dimension set, only for the server to then typically turn them back into metrics.

It's good to understand the tradeoffs, the technology, whether you're using push or pull, where data is spooled or aggregated, data costs, etc. But this stuff is all pretty malleable and there's often no clearly right answer.
by yjftsjthsd-h | 2025-07-21 06:59:36+00:00
> How to handle people dismissing io_uring as insecure?

It is, in the general case, hard to prove something secure (because it's hard to prove a negative). It might help to show CVEs per month/year/whatever related to it vs anything else, preferably with a clear downward trend. For example, you could look at https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=io_uring ... although I struggle to read that as supporting the case you want to make.

> I have had to deal with handful of these people from different sectors as well. Since I am actively working on project based on io_uring, I have had people saying all kinds of hmm... "crap", its so baseless! Can't even talk to them with actual facts.

So what are those facts? Because all this thread has is people handwaving that it used to have a worse design, and everything has bugs and this isn't different, and implying that it's better. If it's better, show that.
by jpc0 | 2025-07-21 07:00:16+00:00
> Not having to call into ffi/c libraries to modify files is the normal use case.

A “systems” language designed by some smart people that is mostly targeted at the most deployed os in the world “cough not windows”, definitely does not need to make windows the default.

> If it was intuitive you wouldn’t be able to “hold it wrong

No unintuitive means if you understand the domain and idioms yet the interface still does not make sense. Returning multiple values when reading and passing context around (even in a wrapper) is normal intuitive golang.

So is allocating complex object instead of simply instantiating them, sure this point is slowly moving out of idiomatic golang but at the same time the history is important.

Not understanding CSP and not liking explicit return values does not mean it is unintuitive.
by yjftsjthsd-h | 2025-07-21 07:00:46+00:00
I like how someone helpfully added

> Although initial async offload design in io_uring could be problematic, later kernels changed the thread model. After such improvements, there were no known inherent problems with it and its development is very careful with new features. Considering that a performant async framework with a user facing API is complex, it was to be expected that issues would be found initially. After initial issues have been addressed, it is not any less secure than anything else in the kernel and io_uring acceptance quickly grew in production. Some of its criticism are also based on wrong or outdated assumptions.[14]

...but the only citation is a link to this GH thread, which doesn't support the claims made.
Show HN: A Hard SF Novel About Consciousness and Quantum Neural Interfaces
by minkowsky | 2025-07-21 07:00:46+00:00
I've just completed the first book in a hard science fiction trilogy that explores the technical feasibility of consciousness transfer using cutting-edge semiconductor physics and quantum computing.

The Core Technology Stack:

The novel centers around a startup developing consciousness preservation through:

• 2D Semiconductor Fabrication: Low-temperature MOCVD (Metal-Organic Chemical Vapor Deposition) producing atomically precise tungsten diselenide and molybdenum disulfide layers for quantum processing

• 3D Monolithic AI GPUs: Vertically stacked 2D materials with high-density via interconnects, achieving >1 trillion transistors per cubic centimeter

• Non-invasive Brain-Computer Interface: IR phase array sensors using focused infrared light with beat radio frequency triggered nuclear magnetic resonance for cellular-level neural mapping

• Quantum Consciousness Bridge: Bidirectional data transfer between biological neural networks and quantum processing arrays, enabling permanent cognitive enhancement

• Light Field AR Displays: Self-emitting pixel arrays on 2D semiconductor substrates creating direct retinal stimulation with 6+ orders of magnitude bandwidth increase over biological sensory channels

The Physics:

The story explores the consciousness equation: Consciousness ∝ Dimension × ln(Energy), suggesting that consciousness evolution requires exponential energy consumption to access higher-dimensional awareness. The climax involves a fusion-powered gamma ray laser using a toroidal ring resonator design that achieves dimensional barrier penetration through bosonic gamma ray compression

I've tried to ground every speculative element in real physics. The gamma ray laser design, for instance, leverages the fact that gamma rays are bosons (unlike electrons) and can theoretically be compressed to unlimited energy densities without Pauli exclusion limitations.

The consciousness transfer protocol addresses the hard problem of consciousness by treating awareness as a quantum field phenomenon rather than classical computation—essentially implementing Penrose-Hameroff orchestrated objective reduction at technological scale.

For the HN Community:

If you're working on:

Quantum computing hardware Advanced semiconductor fabrication Brain-computer interfaces AR/VR display technology Consciousness research Fusion energy You'll recognize many cutting-edge concepts pushed to their logical conclusions.

The book asks: If consciousness can survive death through technology, what happens to human society? If we can enhance cognition through quantum-biological interfaces, who gets access? If we can create digital gods, should we?

Would love feedback from the technically-minded HN community on the scientific plausibility and implications.

What do you think? Too optimistic about near-term consciousness transfer, or are we closer than we think?
by 317070 | 2025-07-21 07:01:07+00:00
I think "cached recursion" is too broad. I tend to go with "Minimal Memory Memoization".

1) the recursion solution is often too slow, but uses little memory.

2) the memoization solution can make the algorithms from 1 a lot faster, but blows up memory use.

3) the dynamic programming solution only keeps the previous partial solutions in memory that will be needed for future partial solutions. Therefore it is the "Minimal Memory Memoized" solution. It often requires a smart ordering of partial solutions that allows for the earliest cache eviction.

Your "cached recursion" sounds like number 2 to me, and the crux about dynamic programming is to figure out when to remove an entry from your cache.
by mroche | 2025-07-21 07:01:14+00:00
Nearly every widely-used commercial or in-house tool in the VFX and Animation sector of M&E are Qt based. The main difference compared to tradition desktop developers is the general attitude of design; the industry takes the stance of providing the same application experience across platforms, rather than trying to adhere to each platforms' UI/UX guidelines.

Examples: Autodesk Maya, 3DS Max, Mudbox Foundry Nuke, Mari, Katana SideFX Houdini Substance Painter, Designer
by asyx | 2025-07-21 07:01:16+00:00
Because it has no calories. Xylitol is nicer but gets metabolized. Erythritol is one of the few sweeteners that are reasonable to use at home (like, you can dose it like sugar unlike aspartame), tastes reasonable on its own (you don’t need the blend you have in coke zero for example) and will not spike glucose levels so diabetics can actually use it.

Like, I can bake a cheese cake just like any other cheese cake as long as I replace the flour for the bottom with almond flour and the sugar with erythritol.
by nominallyfree | 2025-07-21 07:04:01+00:00
Us FORTH and LISP hackers will be doing free range code forever.

We can use cheap hardware that can be fixed with soldering irons and oscilloscopes.

People said for decades our projects just become weird DSLs. And now whatever little thing I want to do in any mainstream language involves learning some weird library DSL.

And now people be needing 24h GPU farm access to handle code.

In 50 years my grandkids that wish to will be able to build, repair and program computers with a garage workbench and old wrinkled books. I know most of the software economy will end up in the hands of major corporations capable of paying through the nose for black box low code solutions.

Doesn't matter. Knowledge will set you free if you know where to look.
by sgentle | 2025-07-21 07:04:03+00:00
My bad. Looks like that changed in 2017 and I had out of date information. I will say that "may eliminate or shorten this 60-day period as a matter of discretion" means the scenario is still just as plausible:

https://natlawreview.com/article/notices-appear-ntas-being-i...
by Saline9515 | 2025-07-21 07:05:22+00:00
- The division doing the change wasn't doing anything critical, mostly yearly statistical analysis reports, and cost estimates for new laws. The move could have been done over a year or two. Most public workers aren't overwhelmed with work, to put it mildly.

- SAS language is horrendous, the IDE is stuck in the 2000´s, and everyone was doing SQL queries inside it as a result. SAS is obsolete compared to what R or Python can do. Career-wise, it's a dead end for workers who use it.

- The French state is heavily indebted, so any cost-saving measure is welcome to reduce the burden on the taxpayer.
by mjd | 2025-07-21 07:05:37+00:00
I've been writing scripts in Bourne shell since the 1980s and in Bash since whenever it came along, and I feel like the most important thing I've learned about it is: don't. Sure, it can be done, and even done well, but why? There are better languages.

Every time I write a shell script that grows to more than about 20 lines I curse myself for not having written it in Python. The longer I have waited before throwing it away and redoing it, the more I curse.

This article says nothing to change my mind. I could build logging and stack traces in Bash. I admire the author's ingenuity. But again, why?