MurphyA/hacker-news huggingface dataset:
by Timon3 | 2025-04-21 16:14:05+00:00
Sorry, but do just not want to understand what I'm talking about? Your example doesn't show what you're saying it does.

In Python you can do this:

bar = "hello world" template = t"<something foo={bar} />" string = html(template)

This is simply not possible in JS, because the template literal always must have the tag attached. You can't split them apart. If you try:

const bar = "hello world" const template = `<something foo=${bar} />`

you already have a string in the `template` variable. There's no access to the individual values anymore. It's already done. It's a string. No template. You can't pull apart the literal declaration and the tagging.

Are we now done with this ridiculous game of deliberate misunderstandings?
by ctoth | 2025-04-21 16:14:33+00:00
> It's optimal for beings that have general purpose inteligence [Sic].

Hi. I'm blind. I would like to think I have general-purpose intelligence thanks.

And I can state that interfacing with vision would, in fact, be suboptimal for me. The visual cortex is literally unformed. Yet somehow I can perform symbolic manipulations. Converse with people. Write code. Get frustrated with strangers on the Internet. Perhaps there are other "optimal" ways that "intelligent" systems can use to interface with computers? I don't know, maybe the accessibility APIs we have built? Maybe MCP? Maybe any number of things? Data structures specifically optimized for the purpose and exchanged directly between vastly-more-complex intelligences than ourselves? Do you really think that clicking buttons through a GUI is the one true optimal way to use a computer?
by tstrimple | 2025-04-21 16:14:45+00:00
This is one of the reasons I'm really happy that my daughter found show choir. Choir sucks. My kids hated it. I hated going to watch it. Bunch of terrible old songs that no one knows. Now she's singing and dancing to pop songs and show tunes on the stage and it's far more engaging for her. I do think it also helps that show choir is a tryout based program so the floor for interest and talent is far higher than with the regular choir.
by kllrnohj | 2025-04-21 16:14:46+00:00
Yes but you only make those types of decisions on library boundaries, which is a relatively small amount of code. Meanwhile checked exceptions make all of the code harder to deal with in non-trivial ways (eg, the ubiquitous "Runnable" cannot throw a checked exception). And it's that everywhere-else where "laziness" won and checked exceptions died.
by ndriscoll | 2025-04-21 16:15:04+00:00
Math doesn't start on hard mode. Students spend years studying how numbers behave before doing symbolic math. That said, trying to cover the topics symbolic math does with a more verbose language would just make it into impossible mode. It'd be like trying to replace sheet music with words.

In fact the analogy to music notation is I think a fairly strong one. People's complaints always sound to me like asking why we don't write "C3 sixteenth note" for music instead of using dots and lines. After all, how are we meant to know what the dots mean and remember the difference between an eighth and sixteenth, or what flats/sharps do? And then the key signature can modify all of it!

The notation just isn't a barrier. Once you learn to read it, it's there because it's a clearer way to write the ideas. The hard part for people is they don't understand the ideas, and don't have the frameworks like key signatures, chord progressions, and meter to place them within. Longer words for variables won't help people understand e.g. inner and outer regular measures, or the open cover definition of compactness. That comes from a lot of work to understand what you're trying to say, the pitfalls of saying it wrong, and precisely how your slightly different way of saying it avoids those pitfalls (or selects the best set of pitfalls if you must pick some kind of degenerate behavior).
by exe34 | 2025-04-21 16:15:19+00:00
same, the amount of work I have to put into thinking of what to say to the llm is the same or more work than just telling the compiler or interpreter what I want (in a language I'm familiar with), and the actual coding is the trivial part. in fact I get instant feedback with the code, which helps change my thinking. with the llm, there's an awkward translating for the llm, getting the code, checking that it might do what I want, and then still having to run it and find the bugs.

the balance only shifts with a language/framework I'm not familiar with.
by strict9 | 2025-04-21 16:15:47+00:00
A lot of good points here which I agree with.

Another way to think about it is SWE agents. About a year ago Devin was billed as a dev replacement, with the now common reaction that it's over for SWEs and it's no longer a useful to learn software engineering.

A year later there have been large amounts of layoffs that impacted sw devs. There have also been a lot of fluff statements attributing layoffs to increased efficiency as a result of AI adoption. But is there a link? I have my doubts and think it's more related to interest rates and the business cycle.

I've also yet to see any AI solutions that negate the need for developers. Only promises from CEOs and investors. However, I have seen how powerful it can be in the hands of people that know how to leverage it.

I guess time will tell. In my experience the current trajectory is LLMs making tasks easier and more efficient for people.

And hypefluencers, investors, CEOs, and others will continue promising that just around the corner is a future in which human software developers are obsolete.
by abeppu | 2025-04-21 16:15:49+00:00
I don't think I care about what brain activation happens while I'm writing per se -- though I may care about behavioral/performance differences. Do you think more deeply or remember better when taking notes by hand? Are you more likely to catch errors?

Here's one study that looked at unrelated word recall tasks, and didn't see convincing evidence of a difference between handwriting and typing. However, they leave open whether there are differences that arise in more complex learning environments. https://www.jowr.org/jowr/article/view/963/930

I think the higher-level, more realistic experiment I'd like to see someone do is: for a single college-level psychology class, split students into handwriting vs typing groups, and assure them that they'll all be graded on a curve within their assigned group, and see if top-level performance between the two groups differs over a term.
by sanderjd | 2025-04-21 16:16:17+00:00
I really think you're misunderstanding the feature. If a method has a signature like:

class DB: def execute(query: Template): ...

It would be weird for the implementation to just concatenate everything in the template together into a string without doing any processing of the template parameters. If you wanted an unprocessed string, you would just have the parameter be a string.
by runjake | 2025-04-21 16:16:18+00:00
If SilverBullet were into acquiring more users (they may not be), they could use some major help with their site design.

When I visit the SilverBullet link, I get a wall of text. And at the very top is a warning about versions and a link to migrating your data between versions, which leads to another extensive wall of text with various code and configuration examples.

Many people, even busy tech savvy people, are going to shy away from this.

To be honest, it looks kind of interesting to my inner nerd, but I think I'll stick with my "directory of plaintext Markdown files" that I've moved between apps as they've come and gone.
by mounir9912 | 2025-04-21 16:16:23+00:00
I feel like I'm still missing something when they're saying this about the example(s):

"Neither of these examples is possible with f-strings. By providing a mechanism to intercept and transform interpolated values, template strings enable a wide range of string processing use cases."

As far as I can see, anything you do with the template, you could do before building the f-string or inline as in my intial example.
by toomuchtodo | 2025-04-21 16:16:31+00:00
Both actually, as I think there is a lot of overlap between the use cases. Someone mentioned to me that they recently "graduated" from using the Mac ChatGPT app to something more robust, for example, due to how many prompts they were managing and the systems they were submitting them to. I would also be interested in your perspective why these are vastly different (user prompts vs system prompts), as I might be missing context.
by jpc0 | 2025-04-21 16:17:15+00:00
Here the legal limit is approximately 2 440ml cans or a draft of beer.

If you are drinking more than that across an evening I would argue it's a bit more than socialising. Maybe where you are from people are heavy drinkers and are not responsible enough to not slow down a fee hours before you know you will be driving but I feel like the quarter a million annually is quite overrepresented by heavy drinkers.
by gagik_co | 2025-04-21 16:17:34+00:00
Hi all,

tetr has been my solo passion project for more than 2 years now ever since I got a craving to expand something like the Note to Self feature I have been using on Signal to an entire ecosystem. It’s not just a barebones chat but a customizable chat UI-based productivity system (at least that is the end goal) with advanced features like scheduling routine messages to be sent to you at a specific interval.

I recently went through a multi-month rewrite moving from Realm to SQLite to prepare for end to end encrypted sync (sadly not ready yet) and adding a handful of quality of life improvements like biweekly routine reminders.

Let me know what you think; it’s only on iOS, iPadOS and Mac (though as a universal app) but I’m looking to expand to Web and Desktop platforms soon and eventually Android so hopefully that’d let more people to test it out!
by iugtmkbdfil834 | 2025-04-21 16:18:11+00:00
I don't think bicycle analogy is adequate. It seems that they are more like cars. And if we follow that analogy, it suggests that the direction of the evolution will depend on whether we make our society dependent on being able to drive cars and grow fat from lack of activity or use them in a more mindful 'for purpose intended' way.
by wgd | 2025-04-21 16:18:20+00:00
I'm skeptical that disposable software of the "single use" variety will ever become a big thing simply because figuring out your requirements well enough to build a throwaway app is often more work than just doing the task manually in a text editor or spreadsheet, especially for non-programmers.

I suspect what we'll see a lot more of is software which is unapologetically written for a single person to suit their workflow.

As a personal example, I decided that setting up OpenWebUI seemed unnecessarily complicated and built my own LLM chat frontend. It has a bunch of quirks (only supports OpenRouter as a backend, uses a Dropbox app folder for syncing between my phone and desktop, absurdly inefficient representation of chat history), but it suits my needs for now and only took a weekend to build, and that's good enough.
by optymizer | 2025-04-21 16:18:27+00:00
You can "do whatever you want with this code", but there's a catch: you have to give credit to the original author. You might not care about the credit, but lots of people care.

You can't just cherrypick the things you like about a license. All of the conditions of the license apply.

You're thinking about what people can do with the code, like copying, editing, and distributing. This is not it. We're talking about giving credit to the original author, as per the license.
Running WebAssembly with containerd, crun, and WasmEdge on Kubernetes
by sonichigo | 2025-04-21 16:18:29+00:00
I recently wrote a blog walking through how to run WebAssembly (WASM) containers using containerd, crun, and WasmEdge inside a local Kubernetes cluster. It includes setup instructions, differences between using shim vs crun vs youki, and even a live HTTP server demo. If you're curious about WASM in cloud-native stacks or experimenting with ultra-light workloads in k8s, this might be helpful.

Check it out here: https://blog.sonichigo.com/running-webassembly-with-containe...

Would love to hear your thoughts or feedback!
by fwip | 2025-04-21 16:18:31+00:00
Yes, but blue doesn't have a "Definitions of Blue" Wikipedia page.

There are nuances to definitions of common words "what is blue, what is a bicycle, what is a dollar, really?", but the magnitude of variance in definition is not shared with something like "knowledge" or "intelligence."

With these high-level concepts, most people are operating only on a "I know it when I see it" test (to reference the Supreme Court case on obscenity).
by bunderbunder | 2025-04-21 16:18:46+00:00
Zig has a completely different feature, partial evaluation/specialization, which, none the less, is enough to cover most of use-cases for dynamic code generation.

These kinds of insights are what I love about Zig. Andrew Kelley just might be the patron saint of the KISS principle.

A long time ago I had an enlightenment experience where I was doing something clever with macros in F#, and it wasn't until I had more-or-less finished the whole thing that I realized I could implement it in a lot less (and more readable) code by doing some really basic stuff with partial application and higher order functions. And it would still be performant because the compiler would take care of the clever bits for me.

Not too long after that, macros largely disappeared from my Lisp code, too.
by sbarre | 2025-04-21 16:19:37+00:00
> The OSS philosophy was conceived to help end users, not for-profit corporations

Citation needed here, if you're going to make such a bold claim.

The open source movement began as a counter to proprietary closed-source software, and nothing more. It has never been about "fairness" (however you define that) or about preventing anyone from profiting from OSS.

Now that said, fairness matters and I agree that some of what transpires today in the open source world doesn't feel fair.

But that's what new or difference licenses can accomplish, depending on the wants of the authors.

And that's different from the philosophy behind Open Source Software. We should be clear about that.
Show HN: 3D black hole animation for your new tabs
by ylj | 2025-04-21 16:20:05+00:00
After watching a video about recent black hole research, I learned that the “bright line” often seen above a black hole is actually light from the back of the disk, bent toward us by gravity. Amazing, right? I wanted to capture that sense of wonder every time I opened a tab, so I built this minimal extension based on sagarambade's animation work.

Chrome Web Store: https://chromewebstore.google.com/detail/gravitab/jihnknnhie... Firefox Add-ons: https://addons.mozilla.org/en-US/firefox/addon/gravitab/

GraviTab is a tiny browser extension that replaces your default new tab page with a WebGL animation of a spinning black hole. Each reload generates new parameters, so I get to enjoy a slightly different black hole every time.
by antirez | 2025-04-21 16:20:12+00:00
I agree that AI powered programming can give you a boost, and the points made in the post I would agree with if they were not made about Claude Code or other "agentic" coding tools. The human-LLM boosting interaction exists particularly when you use the LLM in its chat form, where you inspect and reshape with both editing the code and explaining with words what the LLM produced, and where (this is my golden rule) you can only move code from the LLM environment to your environment after inspecting and manually cut & pasting stuff. Claude Code and other similar systems have a different goal: to allow somebody to create a project without much coding at all, and the direction is to mostly observe more the result itself of the code, that how it is written and the design decisions. This is fine with me, I don't tell people what to do, and many people can't code, and with systems like that they can build a certain degree of systems. But: I believe that tody, 21 April 2025 (tomorrow it may change) the human+LLM strict collaboration on the code, where the LLM is mostly a tool, is what produces the best results possible, assuming the human is a good coder.

So I would say there are three categories of programmers:

1. Programmers that just want to prompt, using AI agents to write the code.

2. Programmers, like me, that use LLM as tools, writing code by hand, letting the LLM write some code too, inspecting it, incorporating what makes sense, using the LLM to explore the frontier of programming and math topics that are relevant to the task at hand, to write better code.

3. Programmers that refuse to use AI.

I believe that today category "2" is what has a real advantage over the other two.

If you are interested in this perspective, a longer form of this comment is contained in this video in my YouTube channel. Enable the English subtitles if you can't understand Italian.

https://www.youtube.com/watch?v=N5pX2T72-hM
Show HN: Pad.ws – Whiteboard IDE is now open-source
by cyclotruc | 2025-04-21 16:20:23+00:00
Pad.ws is an infinite canvas that runs Linux, you can draw, write, open terminals or vscode to your very own ubuntu workspace.

This uses Excalidraw for the canvas part while Coder manages the dev environments.

We have a Public hosted instance at https://pad.ws if you want to try it out

Disclaimer: this project is still very early, your feedback helps us shape it, so please let us hear your ideas!
by corytheboyd | 2025-04-21 16:21:08+00:00
I’ve grown weary of people repeating absolutisms they hear online, too.

As is usually the truth in practice, it’s a mess, which is why I’ve seen combinations of upfront planning and code spiking work the best.

An upfront plan ensures you can at least talk about it with words, and maybe you’ll find obvious flaws or great insights when you share your plan with others. Please, for the love of god, don’t ruin it with word vomit. Don’t clutter it with long descriptions of what a load balancer is. Get to the point. Be honest about weaknesses, defend strengths.

Because enterprise corporate code is a minefield of trash, you just have to suck it up and go figure out where the mines are. I’ve heard so many complaints “but this isn’t right! It’s bad code! How am I supposed to design around BAD code!” I’ll tell you how, you find the bad parts, and deal with them like a professional. It’s annoying and slow and awful, but it needs doing, and you know it.

By not doing the planning, you run the risk of building a whole thing, only to be told “well, this is nice, but you could have just done X in half the time.” By not doing the coding, you risk blowing up your timeline on some obvious unknown that could have been found in five minutes.
Proposal: Cookie Consent Should Be Browser-Native, Not Website-Native
by zak-mandhro | 2025-04-21 16:21:20+00:00
TL;DR: Cookie consent shouldn’t be a popup war on every website. Browsers should handle it natively — just like location or notifications — based on user-set privacy preferences. We can fix the web with one header, a little browser enforcement, and a lot less nonsense.

The current system for cookie consent is a mess. Every website throws a popup in your face, asking you to accept tracking you neither want nor need. The irony? It’s not technically necessary. We can solve it at the browser level — cleanly, universally, and in a user-respecting way.

Here’s how:

1. Browser-Level Privacy Preferences Browsers should allow users to set global consent preferences, just like setting a default language or search engine.

Example:

* Essential cookies: Always allow

* Analytics cookies: Ask or Block

* Marketing cookies: Ask or Block

* Third-party cookies: Ask or Block

Set once. Apply everywhere. No more popups.

2. New HTTP Header: Set-Cookie-Category Websites would categorize cookies when setting them, like:

Set-Cookie: sessionId=abc123; Category=Essential Set-Cookie: trackUser=true; Category=Marketing

Standardized categories: Essential, Analytics, Marketing, Personalization, Other. No trickery. No ambiguity.

3. Browser Enforcement When a site tries to set a cookie:

* Browser checks the declared category.

* Browser checks the user's privacy preferences.

* If no consent: cookie is silently blocked.

If consent is "Ask," the browser shows a small permission prompt (similar to location or notifications). No more hijacking the page UI.

1. Optional Website Messaging Websites could optionally trigger a browser-native dialog to explain their cookie use — but no walls of legalese blocking access.

2. Bonus: Easier Compliance Audits Browsers could expose APIs for compliance tools to automatically verify if a site respects consent preferences.

Why hasn’t this happened yet?

* Ad-tech companies make too much money off friction and dark patterns.

* Browser vendors (especially Chrome) profit from the status quo.

* Regulators targeted websites, not browsers, in GDPR/CCPA drafts.

But it’s not too late. Safari, Firefox, Brave, Arc — even Chrome (if enough pressure builds) — could easily implement this.

Users deserve better. The web deserves better.

If you think this should be built, upvotes help visibility.
by mysteria | 2025-04-21 16:21:48+00:00
But for what it is worth, when I was shooting a lot of high school soccer, better action shots came from “skating to where the puck is going.” And turning off spray and pray because there’s only one best moment to click the shutter and mechanical sympathy is the best way to get close.

I unfortunately don't have a source but I remember hearing about some action photographers trying out 4K60 cameras set to a high shutter speed and basically shooting video clips instead of stills. They would emphasize proper framing, exposure, and focus instead of worrying about timing the shutter.

Later the photographer would review the video clips and choose the best frames for publication. For web and newswire distribution 4K resolution was good enough for them, and they indicated that it was very unlikely that the perfect shot would fall outside of each 1/60 second frame.
by Magma7404 | 2025-04-21 16:22:23+00:00
Not only collaboration but separating notes between my home and my work. Even with the expensive plan, I cannot have 2 accounts linked to the same setup but where the work account would have a access restricted to the work notes. I still use the cheapest plan for personal sync, but I can't use Joplin for work and it saddens me.
by scsibug | 2025-04-21 16:22:28+00:00
It is extremely disingenuous to suggest a public PoC was not available. It was part of the patch as a test case, and GPT/Cursor merely consumed it and rewrote it to Python. There is even a screenshot that points it out as a "smoking gun".

The patch for the vulnerable code itself contained an extremely clear description of what is going on. Even without the test case, there was zero effort made to hide anything, so the vuln, commented explanation, and PoC were all handed in-context on a silver platter.
by marcosdumay | 2025-04-21 16:22:42+00:00
The party loosened its grip and began liberalizing because the block was collapsing, not the other way around.

That one is also common on places with violent governments. The people organize themselves, fight for survival and get some victories; the government makes concessions; the people say "too little, too late" and keep fighting for more until they get meaningful change. If you look, the English Revolution also got the most impressive results way after the kind had loosened his rules.