MurphyA/hacker-news huggingface dataset:
by mjr00 | 2025-04-14 15:32:18+00:00
The big difference is that those are centralized systems owned by corporations, and accessing them in a way which you're not supposed to, such as by changing a bank account number or exploiting a zero day, is a crime.

With DeFi it's different; the code is public and decentralized. There was no unauthorized access to anything here. From my reading of what was done, it was essentially taking advantage of the poor trading strategy of Indexed Finance.

I'm not going to pretend to be a lawyer, but I don't see a lot of parallels between this and e.g. using SQL injection to obtain unauthorized access to a system.
Show HN: Requirement Linter, an AI-powered tool to improve software requirements
by Jonverrier | 2025-04-14 15:32:33+00:00
I built Requirement Linter, an LLM-powered tool that helps improve software requirements by checking them against established industry guidelines.

Why build this: As Annie Vella pointed out in her research on collaborative AI-person software lifecycles (https://annievella.com/posts/the-sdlc-strikes-back/), AI isn't just accelerating development - it's reshaping the way we build software altogether. The reality is that we’re not writing the code by hand anymore. Instead, we’re writing specifications and prompts for AI coding assistants to generate code for us. Requirements need to be clearer. This tool addresses exactly that problem.

How it works: The linter uses an LLM to analyse requirements against guidelines from the International Council of Systems Engineering's Guide to Writing Requirements (GtWR), then suggests improvements to make them clearer, more measurable, and properly structured.

Example:

Input: ```plaintext The system should respond quickly. ```

Output: The requirement "the system should respond quickly" needs improvement based on several guidelines.

1. *Vague Terms (R7):* The term "quickly" is vague and lacks specific measurable performance targets. It should be defined with a specific response time.

2. *Active Voice (R2):* The requirement does not clearly identify the responsible entity. It should specify who or what is responsible for the action.

3. *Measurable Performance (R34):* The requirement lacks specific, measurable performance criteria that can be verified.

4. *Unambiguous (Characteristics):* The requirement is ambiguous and can be interpreted in multiple ways.

Here's a revised version: ```plaintext The system shall respond to user inputs within 2 seconds under normal operating conditions. ``` This revision addresses the issues by providing a specific response time, using active voice, and ensuring the requirement is measurable and unambiguous.

Try it online: https://nice-wave-0746ea503.6.azurestaticapps.net/index GitHub repo: https://github.com/jonverrier/RequirementLinter

Feedback welcome!
by boomlinde | 2025-04-14 15:32:41+00:00
> the hypothetical use here...

No, it's not hypothetical. I just did it, which demonstrates that it's not type safe and that the compiler won't give you an error if you write invalid code, which is what the post I responded to claimed.

> This simple example as written is actually correct

No. The official reference is clear about this: "If field_ptr does not point to the field_name field of an instance of the result type, and the result type has ill-defined layout, invokes unchecked Illegal Behavior."

Because there is no well-defined layout for plain structs in Zig, they satisfy the "ill-defined layout" requirement. Merely invoking the @fieldParentPtr on a pointer that doesn't satisfy the other requirement in that case invokes unchecked illegal behavior according to the language reference.

> I mention it because it's important to note, it can be done correctly,

Ignoring that you can't seem to get the facts straight, the claim I am responding to is that it's "type safe" and that "if you write invalid code the compiler will give you an error". This is not the case, regardless of whether my example invokes unchecked illegal behavior (which it does) or not.

I'm very clearly not saying that it can't be done correctly and I don't think you can argue for that in good faith.
by mystified5016 | 2025-04-14 15:32:47+00:00
Steam app crashes unless Play services are active. Discord doesn't deliver push notifications without play services running. A good fraction of play store apps fail to work properly unless you let play services run in the background forever, which defeats the purpose.

You do not get caller id on AT&T, and you do not get voicemail notifications until sometimes hours or days after the fact. I ran this on my pixel 8 for months. I had to actively call into my voicemail number like it's 2005.

The secondary profile stuff is just about useless. It's one step above having multiple independent devices. I did try having a Google profile, but you can't get notifications between profiles. You get a notification that there is a notification, so you then have to go through the entire 30 second process of switching profiles, which disconnects your Bluetooth headphones to check the other profile.

If you think regular users and normal people want to put up with this, you should really re-evaluate what you think an average user is. This is for hyper nerds who care more about security ideals than functionality. Graphene is not for the average person who wants caller id, voicemail, camera, and a web browser.
by alganet | 2025-04-14 15:33:11+00:00
If you really want total inclusiveness, you should make unintuitive UIs that take the edge off people who have high cognition, making it all exclusively about practice. Force the user to put hours in, no cheating with cognitive fancy symbols. Difficult for everyone.

But that's raising the bar down, isn't it?

If you make something easier, smarter people will get more mileage out of it (either by achieving the same goals with less experience or achieving unexpected goals).

Therefore, the sweet spot lies where someone can practice it enough to perform as good as a "high cognition" person.

I truly don't believe in IQ though. I think it's bullshit and anyone could be smart. To me there's somethibg about _good practice_. Not all hours of experience are the same. The difference, from my perspective, is there.
by umvi | 2025-04-14 15:33:30+00:00
Does your average consumer actually care?

I've never met a single person that had a mindset of "I need to pick up some stuff at Target... oh wait I just remembered they cancelled their internal DEI program, I'd better do some research and shop at a retailer that still has a DEI program instead"

I guess I'm just not sure how the causality was determined. How do I know foot traffic isn't decreasing because of Target's prices compared to Costco's prices?
by dogleash | 2025-04-14 15:33:31+00:00
> This is just extrapolating into trends as a thought experiment

The late 2000s and early 2010s are here to deliver their "I told you sos". This is the surveillance systems they were warning you about. And then so many people ended up taking paychecks to go build those systems that it's now cringe to care about how morally abhorrent they are.

What, you think it's only the US government and only under rulers you dislike who we should be against having surveillance data?
by ltbarcly3 | 2025-04-14 15:33:40+00:00
I see what you mean, but this just trades one thing for another. On the one hand I could write a script that goes over every host and rsync's everyone's public key to it. You could have a cron job that does this. If you want to set up access control you would have sets of keys and different sets of keys would go to different servers. If you revoke a key you just need to remove it from the set and run whatever mechanism syncs the keys (a script that runs rsync under xargs would let you manage a few thousand servers pretty easily).

Ok compare that to this solution: you still have to define sets of users or certificates. You still have to go edit the configuration on every server to put the correct list of certificates on there, so you are managing the lists just the same. If you find out something needs to be revoked you have to go do that.

What's good: You don't have to go touch the servers in a loop except when changing the ACL setup for the servers. You can avoid having anything that can access the key setup for those servers (not really, you are just pretending this is true, but kindof).

What's bad: You have to buy into their model. You have to go change how you do auth on all the servers. Users can't generate their own keys anymore, which is annoying. Some things that magically work with keys will be hard or impossible to configure with certificates, especially home grown stuff. Whenever inifiwhatever gets hacked you are in serious trouble.
by n2d4 | 2025-04-14 15:33:57+00:00
The assumption in my comment is that your entire salary is in stock — otherwise, obviously you need to adjust accordingly. But only 1/4th of the stock being exercisable makes sense if you think of vesting like a monthly salary — each month, another 1/48th becomes exercisable. Even if you technically own the rest as well, it's more appropriate to think that you don't.
by GuinansEyebrows | 2025-04-14 15:34:16+00:00
PuTTY, probably not. But if you're using Windows, the built-in Terminal supposedly supports panes: https://learn.microsoft.com/en-us/windows/terminal/panes

Combine that with the built-in ssh client, that might be good enough for you. Personally, I have to run Windows at work but I'm allowed a local linux VM, so I run that headless, ssh into it, and run tmux for pane/window support.
by Juliate | 2025-04-14 15:34:33+00:00
I agree, I'm not saying it's perfect. Far from that.

But removing the framework within which artists still have the means to control their work (however unbalanced contracts can happen to be between corps and artists - it's a complex field to navigate).

Improving/upgrading it? Certainly. With a proven, demonstrable improved replacement or path... that takes into account primarily the artists, that do want the public to have access to their work, but to be also appropriately compensated, and in control of it.

What Jack and Elon are sustaining, when you read between the lines, is not reform to sustain the actual people that actually create the stuff.

But to benefit the power structures they have and want, first and foremost by allowing them to literally suck in all the existing artworks without having to pay for it, so they can sell it back to everyone, under the guise of "democratising" "creation".

The ploy is so obvious, though, it's fascinating not more people see it.

What is often, very often lacking in these discussions within the tech/software spheres, is the perspective of people actually working with and making a living out of these (ie, professional _and_ non-pro artists).
by Kon-Peki | 2025-04-14 15:34:44+00:00
Minneapolis is in a river valley (the Mississippi River). From an airplane at cruising altitude the area will look fairly flat, but down at ground level there is a ton of 50-100 foot undulation. The elevation of your antenna is probably far more important than the quality of your antenna.

Fun: if you’ve got Apple Maps (I’m sure Android has this as well), ask for walking directions from Minneapolis to something 35-40 miles away. I chose “Elko New Market” - 36 miles from downtown. Click on the walking details and you can see the elevation change. You’re going from around 800 feet above sea level to 1100 feet above sea level, a difference of ~300 feet. But the total change over the course of the walk is nearly 4000 feet!
by cruffle_duffle | 2025-04-14 15:34:50+00:00
They are little things like “hey I want to get the LLM to fetch logs from elasticsearch” or “hey I want to create a way for the LLM to query my database in a more structured way”.

And yeah in theory openapi can do it but not nearly as token efficient or user efficient. OpenAPI doesn’t help actually “connect” the LLM to anything, it’s not a tool itself but a spec. To use an OpenAPI compliant server you’d still need to tell the LLM how to authenticate, what the server address is, what tool needs to be used to call out (curl?) and even then you’d still need an affordance for the LLM to even make that call to curl. That “afforance” is exactly what MCP defines. It provides a structured way for the LLM to make tool calls.
by ertian | 2025-04-14 15:34:52+00:00
> Maybe I am too much of a jaded asshole but anyone who writes something like this needs perspective.

This is clearly a person who loved their job, and took it seriously. They had worked hard on something and were looking forward to sharing it. That, frankly, seems healthy. It's the only way to give your everyday life worth and meaning as an employee. It's certainly something that Google cultivated and encouraged. And it's shocking to have it vanish so abruptly.

If you take a more cynical, realistic view, you could never seriously engage with your work. You realize the company doesn't care about you, and you return the sentiment. That might be a more realistic way of viewing your situation, but it's empty of meaning or satisfaction. You'd be correct but unhappy all day every day.

I was always kinda jealous of people who could drink the kool-ade. And even if there's a certain satisfaction in seeing them get a reality check, it's also a shame that somebody who thought they had found meaning and purpose in a community suddenly realize they were just a tool the whole time.
by appleorchard46 | 2025-04-14 15:34:54+00:00
It's a good thing this isn't a formal debate then, because neither I nor the paper claim equality is good nor am I debating the assertion otherwise.

Thank you for the clarification, your position makes more sense now. It sounds like you're not saying there's something inherently bad about equality, but rather that the practical cost of enforcing absolute equality top-down makes it actually a net negative in well-being for the population of a state?

(I can't help but point out that if there's someone with the power to enforce it, things are very far from equal - but I'm guessing you mean 'equality' more in a monetary / real goods sense)
by s1artibartfast | 2025-04-14 15:35:17+00:00
One thing I really struggle to understand is the economic arguments for large national debts, which seem to be a mainstay of modern nations. Is it as simple as countries really cant help themselves?

It seems so clear to me that the economically superior position is lower deficit spending, extremely low treasury yields, high investment, and high growth.

Am I severely underestimating the effectiveness of government spending at stimulating growth?

It seems that large deficit spending should be reserved emergency stimulus for correction, not a feature of healthy growing economy, and their use during "good times" diminish capacity for use in the "bad times"
Show HN: Instant QR Menu – AI turns photos of paper menus to menu sites in < 60s
by georgetsa | 2025-04-14 15:35:35+00:00
Hi HN,

For the past 5 months, I've been building "Instant QR Menu" [https://instantqrmenu.com], and I'm excited for this first public share. It aims to solve a pain point I've seen with QR menu sites for restaurants, cafes, etc.

The problem:

Too often, scanning a restaurant's QR code leads to: non-mobile-responsive sites, links to PDFs (the worst thing ever on mobile devices), outdated info, or just plain bad design. Creating a digital menu can be expensive if outsourced, but the biggest hurdle is updating/maintaining it as time goes by.

My solution:

Food & drink businesses might not have QR menu sites, but almost certainly all of them have printed menus they hand to their customers, or a chalkboard somewhere with the menu offerings.

Instant QR Menu uses AI vision to generate functional, online menu sites directly from simple photos of existing printed menus.

Here's the workflow (typically takes less than a min):

* Snap pictures with your phone of your menu pages and upload them.

* AI extracts menu categories, items, variations, descriptions, prices, etc. and generates a structured online menu draft automatically.

* Use the simple editor to make any corrections or additions (you can also upload separate photos for each menu item).

* Choose a theme, pick your OnlineMenu.ai/your-restaurant URL path, and your site is live with its own QR code that you can print/share.

The goal is zero manual data entry and an instantaneous turnaround from paper to online.

Demos:

* Example 1: [https://onlinemenu.ai/demo-menu], the photos used to generate it are: [https://instantqrmenu.com/#demo]

* Example 2: [https://onlinemenu.ai/demo-menu-2], only one low quality badly lit photo was used to generate it: [https://instantqrmenu.com/assets/images/landing/demo_site_qr...]

It supports multiple languages, and has very accurate results, even with extremely challenging menu photos.

The offer:

It's a SaaS product. After the generation, I host the generated menu site for a subscription (starting at €9/month).

Feedback:

It's not 100% ready of course, a lot of features are missing, like being able to add custom header / footer images to the generated menus, add custom logo to QR images, and many many more, but these will be added in time.

I'd love your feedback on the core concept, the landing page, the user experience (please try it!), pricing, any bugs you spot, features you think are missing, whatever.

If you want to try it, register with your email, and shoot me an email at contact@instantqrmenu.com to enable demo access, or register with your email address with the +demo (email subaddressing alias), like that:

youremail+demo@gmail.com

and I will enable it as a demo account as soon as I see it, and message you back when it's ready.

Thanks for taking a look!
by Diggsey | 2025-04-14 15:35:39+00:00
If you just mean using array indexes instead of pointers, that can work in some cases, but can run into concurrency issues when the container needs to be resized. With pointers to nodes, new nodes can be allocated and old nodes freed on a separate thread without interfering with the performance sensitive thread, whereas resizing an array requires all access to stop while the backing memory is re-allocated.

I don't think you mean this, but elaborating on why a non-intrusive linked list is not very useful, that's because it takes linear time to find an object in a non-intrusive linked list, but constant time in an intrusive linked list.

For example:

struct Node { Node* prev_by_last_update; Node* next_by_last_update; Node* prev_with_owner; Node* next_with_owner; Payload data; }

This intrusive structure allows reassigning and updating nodes, whilst being able to efficiently find eg. the next most recently updated node, or to iterate over nodes with the same owner.
by palmotea | 2025-04-14 15:35:40+00:00
> As it should be, but emotional people make emotional choices. The trusted and valued employee yesterday can turn on a dime and become malicious when they feel they have been wronged regardless of whether that is independently true.

That's pretty cold, un-empathetic logic. If you're rigorously practice that kind of thing, you'll get the same reflected back at you.

My company has layoffs (not massive, but some). In my experience, the affected employees keep their access to everything, and typically finish up their work and participate in transition activities (knowledge transfer, etc) over a couple weeks. Yeah, they're typically also slacking a lot and socializing more, but no one around here wants to be an ass to their coworkers. I think the only people who get their access cut off are those fired for cause.

> Companies generally don’t become militant about a subject unless they have experienced the other side of the equation.

There are obvious problems with designing your processes around the literal worst case (e.g. treating everyone like they're a criminal has consequences).
by evidencetamper | 2025-04-14 15:35:47+00:00
Not every form of discrimination is the holocaust.

It is very important to not be extreme when dealing with human ignorance. For mild cases of discrimination, especially those coming from fear and ignorance, engaging in full confrontation is not necessarily the most effective strategy to reduce said discrimination. It might actually increase it.

Now if faced with hate speech, that's a much higher degree. That needs a different strategy to reduce it.

But unless you are looking at actual segregation and genocide, dropping a Nazi accusation is hardly constructive.
by dimitri-vs | 2025-04-14 15:35:47+00:00
Not really, the point was contrasting sentimental labels with professionally defined titles, which seems precisely the distinction needed here. It's easy enough to look up on the agreed upon term for software engineer / developer and agree that it's more than someone that copy pastes code until it just barely runs.

EDIT: To clarify I was only talking about vibe coder = developer. In this case the LLM is more of the developer and they are the product manager.
by virtualritz | 2025-04-14 15:36:31+00:00
It's not about order of operations; there is simply no linearization of sRGB happening or mentioned in the article.

I.e. it's not ordering of operation but absence of an operation that is the issue.

> ... -> linear perceived luminance space -> ...

"Perceptual" luminance is not a concept used anywhere. Luminance is, by definition, linear [1].

When we talk about color, something can either be linear or perceptual. Not both. "Perceptual" refers to "how humans perceive something" and the human visual system is non-linear.

Relative luminance [2] (what people refer to as grayscale) and what we're dealing with in the post, is still linear. So the order of operations is:

sRGB non-linear -> sRGB linear -> grayscale -> dither

After the dithering no conversion back to sRGB is necessary for the case at hand because all pixels are black or white and the sRGB transfer function for the inputs 0 and 1 has the outputs 0 and 1.

See also [3]. You only would re-apply a sRGB linear -> sRGB non-linear transform if you didn't dither to black and white after the grayscale conversion. I.e. in the case at hand: if you dithered the 8bit grayscale to n bit grayscale with 1 < n < 8.

[1] https://en.wikipedia.org/wiki/Luminance

[2] https://en.wikipedia.org/wiki/Relative_luminance

[3] https://en.wikipedia.org/wiki/Grayscale#Colorimetric_(percep...
by alexvitkov | 2025-04-14 15:36:34+00:00
C++ for one - it has atomics with well defined memory barriers, and guarentees for what happens around them.

The real answer is obviously Assembly - pick a random instruction from any random modern CPU and I'd wager there's a 95% chance it's something you can't express in C at all. If the goal is to model hardware (it's not), it's doing a terrible job.
by Cycl0ps | 2025-04-14 15:36:46+00:00
Carbon sequestration!

I grew up in an area known for coal and logging. Ever since I heard of sequestration brought up I thought the area sounded perfect for it. Fell (maybe mulch) the trees, kiln dry to remove weight/moisture, and toss them down a mineshaft.

It always felt a bit peotic to 'reseed' a coal mine
by simonw | 2025-04-14 15:36:54+00:00
Val Town has a free tier that's easily enough to run this project: https://www.val.town/pricing

I'd use a hosted platform for this kind of thing myself, because then there's less for me to have to worry about. I have dozens of little systems running in GitHub Actions right now just to save me from having to maintain a machine with a crontab.
by andrewxdiamond | 2025-04-14 15:38:08+00:00
Target had been pandering to the LGBTQ community for a long time, they released many shirts and ads that tried to present itself as inclusive and forward thinking.

But the very second things change on the top, they flip.

Yes quite a few people are upset at this. They concretely damaged their brand, ruined trust, and pissed off a bunch of their target market. There is an intentional boycott now and it is clearly affecting their stock