MurphyA/hacker-news huggingface dataset:
by quantadev | 2025-04-22 15:53:05+00:00
Nostr has 1) Identity as a PublicKey, 2) Posts represented as hashes. That's all we need. The mechanism for pushing those chunks of data around the web is almost irrelevant. Nostr uses relays. IPFS uses a DHT. The possibilities are endless, but Nostr is special because it has [mostly] exactly what we need at it's core, and makes every other feature optional. I invented something identical to Nostr several months before Fiatjaf did, and I think he may have actually gotten many ideas from me, just like I contributed very heavily towards the Blue Sky effort, and got them to accept most of my ideas. The "Personal Repository" concept was mine for example. I invented that.
by e-topy | 2025-04-22 15:53:15+00:00
As I said in my other reply, it was more research focused, and went on to be implemented in.NET.

> From what I've read (https://joeduffyblog.com/2015/11/03/blogging-about-midori/), Midori was a research project, and not a replacement. They started with .NET and C# because they own it, but then departed to custom languages. Their research included stuff like language safety (most of it now in Rust, and it seems they implemented some of it into C++ and C#). Also cool concepts like capabilities instead of permissions (2. post), programs that are multiple separate processes (like Smalltalk's; the lessons learned are now in C#'s await keyword), etc. The articles are a nice read.
by spacemadness | 2025-04-22 15:53:40+00:00
My anxiety for where this is all going is as follows. Using AI for all your coding is a wet dream for CEOs because the goal is to fire all their engineering staff except for a handful of maintainers. However, it reminds me of trying to explain to your stakeholders why you need time to work on tech debt before it becomes a problem. There is no metric now that says there is a problem that’s easily measured but engineers are grinding their teeth trying to work within a system that is slowly degrading and is showing signs.

“Who cares, ship it, also we need this new feature next week. What do you mean it will take longer this time? Ridiculous, why didn’t you say something before?”

Likewise, the brainrot and lost knowledge, as well as possible new tech debt that fewer engineers working in their codebase understand, will eventually cause issues down the line. The same pressures will ensue causing stakeholders to ignore all the signs of degradation.
by MyPasswordSucks | 2025-04-22 15:54:00+00:00
> Current interfaces are generally a lot more simpler than those ones though?

Unless and until you need to do something that isn't one of the three or four basic functions.

> Are you saying those elaborate 90s style window menus are somehow simpler than iPad interfaces?

A perfectly-designed window menu is going to be simpler than a perfectly-designed iPad interface. There's only so much you can really have access to in iPad/Android-land, and any functionality that can't be encompassed with tap/long-tap/tap-and-drag is going to require a drastic break from the ordinary functionality. With window-menus, since you're already using window-menus for lots of stuff, it's not as drastic a break from the routine.

Now, I was careful to say "perfectly-designed" for each, because around the edges it can absolutely be a bit of a pain (my favorite go-to example is finding a "preferences" menu, which in Windows software can be in any of File > Preferences, Edit > Preferences, Tools > Preferences, or Options > Preferences - among many other options; and sometimes there's even a separate "Settings" menu with different options buried somewhere else), but even so, more often than not, window-menus still win by virtue of flexibility.
by duxup | 2025-04-22 15:54:26+00:00
"Manufacturing" is almost too general a term IMO. Do you want manufacturing? or manufacturing? There can be vast differences as this article notes:

>It is important to recognize that not all manufacturing jobs are middle- and high-wage jobs. Indeed, the “wage premium” associated with manufacturing work has declined since the 1960s. By 2019, workers without a four-year degree in manufacturing careers earned a median wage that was comparable to the wage they could have earned in non-manufacturing industries. However, the quality of manufacturing jobs varies significantly across the United States (in general, these jobs still offer a weekly earnings premium). Map 5 shows how the wage premium for manufacturing remains high in states with strong upward mobility and growth in the middle of the labor market.

When it comes to policy like blanket tariffs, do you want people in the US making mass quantities of cheap shoes? Does anyone want to work in a shoes factory?
by kaladin_1 | 2025-04-22 15:54:45+00:00
Congrats team!

I was a speaker in a local Supabase event just few weeks ago, https://shorturl.at/JwWMk. We had a local event in Abuja, Nigeria. There we promoted their Launch Week 14 series, highlighting new features from Supabase. In reality, it became an event to show people how to bootstrap a quick backend for their SME business in a weekend.
by IlikeKitties | 2025-04-22 15:55:45+00:00
There's at least some evidence that people have very different affinities to different drugs and their effects and addiction potential are just as individual.

Anecdotally, I can tell you with absolute certainty I could never become an alcoholic, I have no interest in drinking on any two consecutive days and it's usually several month between any alcohol consumption. Yet there have been alcoholics in my family. But when it comes to weed I will be continually stoned out of my mind as long as any weed is available.

It's a terrible side effect of the legal status of most drugs that we have neglected to study most of them to the extend that would be necessary to actually make progress (with the notable exception of tobacco)
by jerf | 2025-04-22 15:56:07+00:00
This is the setting of one of my favorite short stories, A Pail Full of Air.

Which I am delighted to note, since the last time I referenced it, appears to have fallen out of copyright, so I can link straight to it on Project Gutenberg: https://www.gutenberg.org/cache/epub/51461/pg51461.txt
Show HN: Brandflows – Connecting indie brands and stores through offline popups
by Alex_xuzj | 2025-04-22 15:56:17+00:00
Hi HN!

I'm Alex, the founder of Brandflows.

Brandflows is a platform connecting independent brands with creative stores for real-world collaborations like pop-ups, co-branding, and in-store activations.

Brands can showcase themselves and find retail spaces to collaborate with.

Stores can discover unique brands to host pop-ups and fresh activations.

I just launched the MVP (built with Bubble) and am looking for early feedback!

No signup needed to browse the public showcases — feel free to take a look and let me know what you think!

https://brandflows.co/

Thanks so much for checking it out!
by mattmaroon | 2025-04-22 15:56:44+00:00
I would probably just go about this by heating/cooling the thermostat itself rather than messing around with radio signals. Put a little box around it and something that could control the temp in the box, like a little peltier element. When you want the heat to run, cool the inside of the box. When you want it to stop, warm it up. Etc.

But then I build thermal control devices for fun so maybe it just seems like a much easier method to me.
by luqtas | 2025-04-22 15:56:44+00:00
actually i meant "geocentrism" but it was too late to edit but you are right, middle age didn't thought Earth was flat

now if you are defending this absurd commentary that Amazonia was a grassland 10,000 years ago and turned out to be what's because humans, i think you both are on the level of flat earth 21° century people
by madcaptenor | 2025-04-22 15:56:45+00:00
This reminds me of previous work showing where you should aim in darts (https://www.stat.cmu.edu/~ryantibs/darts/). Basically, if you're very accurate you should aim at the 20, but next to it are 1 and 5, so if you're less accurate there are more forgiving spots on the board.
by quantadev | 2025-04-22 15:56:55+00:00
Yeah Blue Sky is run by people (like Jay Graber, a hard-core leftist) who secretly want to keep Blue Sky centralized, and only pretend it's Federated, to get the ActivityPub devs to jump ship and to go ATProto. You're right. They got corrupted by power and politics. Nostr is much better and simpler, although it's lead developer is quite childish and I found him quite intolerable as a human.
by sebastiennight | 2025-04-22 15:57:23+00:00
To keep my prompts organized as an end-user, I use an open-source desktop frontend called AnythingLLM [0]. I have a different workspace per use case, and I fork existing threads to continue from prevous prompts.

To keep prompts organized as a software startup is a completely different use-case, as we need: - a way to dynamically fill the prompts (we use Mustache) - a way to store the prompts that enable versioning (so they are on git like the rest of our code) - a way to allow non-technical users (eg. Product team) to revise a prompt, so they are stored as JSON objects.

So our prompts are basically an object that encapsulates the OpenAI-style parameters, plus additional in-house parameters such as fallback model, risk profile, etc.

[0]: https://anythingllm.com/desktop
by breadwinner | 2025-04-22 15:57:32+00:00
NeXTSTEP was widely regarded as visually striking and innovative for its time, particularly for its clean, minimalist design and advanced graphical capabilities. Key elements contributing to its perceived beauty included:

3D chiseled widgets: Beveled buttons and controls with subtle shading created a dimensional, tactile appearance.

Full-color icons: Large, detailed icons (uncommon in late 1980s GUIs) enhanced visual clarity.

Consistent typography: System-wide use of Display PostScript enabled professional-quality fonts and anti-aliasing.

Transparency and compositing: Advanced graphics handling allowed overlapping windows and semi-transparent elements.

Current discussions still praise NeXTSTEP's design as better looking and more usable than Windows 11 and macOS.
Show HN: CodeAnt AI – AI Code Reviewer, that understand code and dependencies
by Amartya_jha | 2025-04-22 15:57:35+00:00
Over the last year, we’ve been building CodeAnt AI, working closely with engineering teams struggling with code review quality and speed.

Manual code reviews are slow and repetitive. Reviews today mostly look at what changed — not what the change actually impacts. With more AI-written code, it's getting worse: bigger PRs, faster cycles, less team context.

We wanted to rethink how code reviews are done: → Build structured knowledge of the codebase → Understand infra and dependency changes → Analyze blast radius automatically at PR time

What CodeAnt AI Does (Technical Overview)

Repository Indexing and Graph Building:

When a repo is added, we index the entire codebase and build Abstract Syntax Trees (ASTs).

We map upstream and downstream dependencies across files, functions, types, and modules.

We run custom lightweight language servers for multiple languages to support:

go_to_definition to find symbol declarations

find_all_references to locate usage points

fetch_signatures and fetch_types for richer semantic context

Pull Request Analysis:

When a PR is created:

We detect the diff.

We pull relevant upstream/downstream context for any changed symbols.

We gather connected function definitions, usage sites, interfaces, and infra files touched.

The LLM invokes the language servers (almost like a developer navigating manually) to reason over this structured context, not just the raw diff.

Code Quality Analysis:

Along with AI reasoning, we layer traditional static checks inside PRs:

Detecting duplicate code patterns

Finding dead, unused code blocks

Flagging overly complex functions

Goal: Make linting + AI suggestions seamless, without needing separate tools.

Security and Infrastructure Context:

We maintain an internal curated database of application security issues, mapped to OWASP and CWE.

We run Infrastructure-as-Code (IaC) security checks across:

Terraform, Kubernetes, Docker, CloudFormation, Ansible

You can optionally connect cloud accounts (AWS, GCP, Azure):

We scan your live cloud infra for misconfigurations

We pull cloud resource context into PRs (e.g., when a Terraform PR changes a live VPC rule, we show the potential blast radius).

We monitor End-of-Life (EOL) libraries and third-party package vulnerabilities by scanning the National Vulnerability Database (NVD) every 20 minutes and flagging at PR time.

In short: We try to automate how an experienced developer would actually review a change: → Understand the code structure → Understand where it’s used → Understand how infra/cloud gets affected → Catch quality, security, and complexity issues before merge — without needing extra dashboards or tools.

Teams using CodeAnt AI have reported 50%+ faster code reviews while finding deeper and more actionable problems earlier.

Would love feedback from the HN community — both technical and critical are welcome.

Thanks for checking it out!
by alooPotato | 2025-04-22 15:57:45+00:00
This is a confusion that comes up often - 100% agree with chat-in-the-loop style interfaces. That slows me down way too much and its too hard to fix when it inevitably gets something wrong.

I'm mostly talking about Cursor Tab - the souped up autocomplete. I think its the perfect interface, it monitors what I type and guesses my intention (multiline autocomplete, and guessing which line I'm going to next).

It lets me easily parse if the LLM is heading in the right direction, in which case pressing tab speeds up the tedium. If its wrong, I just keep typing till it understands what I'm trying to do. It works really really well for me.

I went back to using a non-LLM editor for a bit and I was shocked at how much I had become dependent on it. It was like having an editor that didn't understand types and didn't autocomplete function names. I guess if you're a purist and never used any IDE functionality, then this also wouldn't be for you. But for me, its so much better of an experience.
by dragonwriter | 2025-04-22 15:57:46+00:00
> Don't get me started about teaching beginners which datatypes are pass by reference and which are pass by value.

If they are beginners to programming, you wouldn't teach them those terms in the context of Python, because neither of those terms map to Python argument passing; Python has one form of argument passing, and it doesn't map closely to the intuition that experienced programmers in languages that have pass by reference and pass by value have about those things. Likewise, the only thing you'd teach someone new to Python that is experienced in languages where those terms are useful is that that distinction is irrelevant in Python, which is pass by assignment (sometimes also called pass by object reference, but pass by assignment is a much more useful description IMO, because argument passing works exactly like assignment to a new variable name.)

> try explaining to an elementary school student why

def foo(a): a = a + 1

> doesn't change the caller's variable but

def bar(a): a.append(1)

> does.

But, that's easy, if you've first taught them how variables, assignment, and mutation work in Python without getting function calls in the way, because it is exactly the same as this

a = 1 b = a b = a + 1 print(f"{a=}, {b=}")

vs.

a = [1] b = a b.append[1] print(f"{a=}, {b=}")

Argument passing is just assignment to a new variable that exists in the scope of the function. Methods which mutate an object affect the object no matter what variable you access it from, assignment operations affect only the variable they assign to. That's exactly the same behavior in one scope as it is between the function and caller scopes.

And this distinction has nothing to do with data types, but only with the operations performed (the only connection to data types is that immutable types have no mutation operations in the first place.) You can tell its not about data types because you can use the same types as the second excerpt, and the operations of the first, and get the same results as the first (which shares operations) and not the second (which shares datatypes):

a = [1] b = a b = b + [1] print(f"{a=}, {b=}")

If you understand how assignment and mutation works in one scope, you understand how argument passing works. Trying to teach a distinction that exists between how different operations affect variables that initially reference the same object as a distinction about how datatypes are passed as arguments is confusing, because you as a teacher are presenting the source of the difference in behavior as originating in a completely different place than where it actually comes from. That's not a problem with Python being complex, it is a problem with you taking a very simple thing and making it complex by ascribing it to a source that is completely irrelevant to what is actually going on.
by sokoloff | 2025-04-22 15:57:52+00:00
Baseboard heaters are often sized such that very high temps are needed (because that's what cheapest/lowest labor/least space used), but they don't have to be sized that way. In the attic bedroom, we have baseboards around the entire perimeter on two walls and same in the bath. I run the attic zone on the same water temp (outdoor reset controlled to be quite low) as the rest of the house (mostly large cast iron rads, one cast iron convector). Good insulation and air sealing in the attic means that the attic zone calls way less than the downstairs.
by alabastervlog | 2025-04-22 15:57:53+00:00
> Getting rid of income tax will require legislation from congress. If we're in the midst of a tariff induced recession, what are the chances his party keeps congress in '26?

Their chances will maybe be higher, if they cut income taxes.

All it'll cost is moving our already-nigh-inevitable debt crisis a few decades closer to today.

> Also, remember when the British government tried to pass a massive tax cut funded with debt?

Both Republican administrations this millennium have done exactly that. I see no reason to expect they won't do it again.
by kstrauser | 2025-04-22 15:58:25+00:00
The former. They say it’s the latter but almost no one else in the space makes those goofy claims. If I buy an SSD that's too slow, that's on me. And if I deliberately buy a slower one because the cost:performance ratio is better for my needs, then that's my choice. There’s no technical reason why their rebranded devices should capable of doing things the competition can't, other than low-level things like installing firmware updates.
by magicalist | 2025-04-22 15:59:19+00:00
> standards they write themselves that everyone ignores

CSS, WAI-ARIA, SVG, WebGPU, WebAuthn...and a large number of APIs that are referenced as part of the HTML spec but developed and standardized by different W3C groups.

> standards they copy from the WHATWG

Not for six years now: https://www.w3.org/blog/2019/w3c-and-whatwg-to-work-together...

Lots of hn people need to update their priors about modern web standardization work.
by bloomingeek | 2025-04-22 16:00:24+00:00
I think you're only half right. Most people are woefully undereducated or unwilling to gain knowledge for the sake of understanding things in the modern world. A fatal flaw, because then they rely on smart sounding people, dressed in nice clothing, to tell them how to think.

> I've honestly never understood the point of the tariffs.> At the risk of sounding rude, why the hell don't you understand the point of tariffs?!? Look up as many source as you can on the internet and learn something! You could also read some books.
by 999900000999 | 2025-04-22 16:00:40+00:00
>Supabase is currently used by two million developers who manage more than 3.5 million databases. The startup supports Postgres, the most popular developer database system that’s an alternative to Google’s Firebase. Supabase’s goal: To be a one-stop backend for developers and "vibe coders."

How many of those users are paid. You can sign up for free without a credit card.

It's cool, for certain use cases. I ended up trying it for a few months before switching to Django.

If you ONLY need to store data behind some authentication, and handle everything else on the frontend, it's great. Once you need to try some serverside logic it gets weird. I'm open to being wrong, but I found firebase phenomenally more polished and easier to work with particularly when you get to firebase functions compared to edge functions.

Self hosting requires magical tricks, it's clearly not a focus for them right now.

I hope they keep the free tier intact. While it's not perfect, if your in a situation where you can spend absolutely no money you can easily use it learning ( or for portfolio piece).
by elia_42 | 2025-04-22 16:01:00+00:00
Really interesting and I agree with everything. With my team we always try to improve our programming skills without AI, even though we all recognize its great utility.

Today every type of problem and every type of solution seems to have to be solved with AI, when there are more creative, original and artisanal ways to solve them (even if, sometimes, they need more time and patience)
by mmh0000 | 2025-04-22 16:01:29+00:00
Because Debian is very (overly, to many) committed to free software[1]

This is great from a copyright and freedom point of view. But, if you're an end-user who just wants to get stuff done and have things work. Pure Debian gets in the way; that's not to say you can't work around it, but it is more work.

Ubuntu, Mint, Pop!_OS, etc. take Debian, add a layer of polish and make the system much more user-friendly.

[1] https://www.debian.org/social_contract
by Arrowmaster | 2025-04-22 16:01:45+00:00
My rough understanding is an SMR drive has a small section that's CMR and where the data goes when you do a write. Then when the drive is idle it moves the data to SMR because SMR writes are slow. If you fill up the small CMR section it starts writing directly to SMR and you see a huge performance loss. Without adaptation for SMR drives a lot of systems recognized this slowdown as a failure and would hault a restore. Even with that corrected for now you are looking at 10x the rebuild time of a CMR drive which increases the odds of another drive failing during the rebuild.
by gengstrand | 2025-04-22 16:01:55+00:00
I really appreciate the overall gist of this blog and find value in the mech suit vs human replacement analogy. The "near zero time" observation is not consistent with my own findings which I have blogged about at https://glennengstrand.info/software/llm/migration/java/type... and covers a more specific use case of service migration. Using LLMs did cut the heads down coding time by two thirds but certainly not to zero.
by zozbot234 | 2025-04-22 16:02:23+00:00
Touch-screen interfaces today are anything but "perfectly designed". The most effective and most easily controlled UX action on a touch-screen is a swipe, so if complex interactions are a priority you should pick something like pie-menus throughout. The basic idea is that what takes multiple clicks on a mouse should ideally take only a single swipe motion (with confirmation for destructive actions) on a touchscreen.
by nine_k | 2025-04-22 16:03:17+00:00
Concurrent, not parallel.

That is, iterators' execution flow is interspersed, with the `yield` statement explicitly giving control to another coroutine, and then continuing the current coroutine at another yield point, like the call to next(). This is very similar to JS coroutines implemented via promises, with `await` yielding control.

Even though there is only one thread of execution, the parts of the pipeline execute together in lockstep, not sequentially, so there's no need for a previous part to completely compute a large list before the following part can start iterating over it.