skysight-inc/HackerNews huggingface dataset:
Show HN: Requirement Linter, an AI-powered tool to improve software requirements
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!
If our civilization would switch to individual wood houses, assuming that cut trees were regrown, that would allow to capture quite a sizeable chunk of carbon as well.
> 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.
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.
Ah yes, operating system kernels, famously super mainstream programs that almost everyone works on.
the majority of them.
Most image processing can be multithreaded, you just have to chunk the image and send each chunk to a thread. You might have to pad the chunk based on the processing you’re doing i.e convolution which needs the neighboring pixels per pixel to work.
Spy devices spy on everyone around them, not just the person in possession of the device.
DolphinGemma: A new LLM to help understand what dolphins are saying
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.
Microsoft needs to be investigated for aiding and abetting the defrauding of the elderly and the feeble minded by leaving password management to third party hacks instead of creating an integrated always-available solution like Apple’s keychain.
Well, it’s funny. This is essentially how I deal with many professionals in my life.

My finance guy, tax attorney, other attorneys. Send emails, get emails, occasionally a blind status update from them.

Sure, we have phone calls, sometimes get together for lunch.

But mostly it’s just emails.
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?
> 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?
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.
Six months ago on a pixel 8.

It is not usable for normal people who want to use their phone to stay in contact with others.
But also the more stoic accept the change effected by Brexit without affect.
That sounds like that does the job, thanks! I’ll try to set this up.
Dental flossing may lower risk of stroke from blood clots, irregular heartbeats
Better yet sink them in the deeper parts of the ocean. Below a certain depth wood loses its buoyancy due to the pressure levels of the water. (I think)
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.
Ha, you beat me to it - Netherlands/Belgium border has tonnes of buildings like this. I think my favourite are some bars which have different opening times depending on which side of the border they are.
Also the content did not fit my Galaxy S24's screen width when used in portrait. The author's previous work in the Chrome team is visible. "The shoemaker's children go barefoot" as they say. :)
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.
He did it more out of necessity, originally, but when I met him, yeah, it was "for fun". Among the other stories I found to be true was "I worked at KFC for $8/hr and owned a home[0]"

[0] In a lower-middle-class neighborhood.
Sometimes people want to believe in stuff so hard there's no way objetive reality will ever get to them.

Like trickle-down economics.
Relationships here might also mean professional relationships.

I think many of those can still survive a job transition, but some of them may rely on the fact that he is on the Chrome team doing Chrome things. Those relationships would now be moot (professionally).
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).
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!
Those planks and beams will still rot, burn, etc.
None of this is in any way a long term solution for anything it seems.
No mention of the obvious walmart comparison.
I read that and I couldn't believe it. THE US Secretary of Homeland Security saying things like that. Who are these people.
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.
> 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.
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)
It's too easy B)
I guess you could include intentional fraud under the phrase, "What if I get it wrong?" but that seems pretty far outside the intent of the question.
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"
I am under the impression that an oversized cap table is pretty much standard. Am I wrong?
In the long term they will decompose and return vast majority of its carbon back into atmosphere. Blame fungi and bacteria.
It scares me that people make a talking point out of it XD what an incredible event, someone got fired!
Assembly language from the hardware vendor.
From the article: "If you scoured the United States, you would be able to probably actually still count the number of skilled electronics engineers. If you go to Shenzhen, there's floor after floor after floor after floor of skilled EE's"
Lego Spike Essential or Spike Prime
Yes my family has stopped shopping at Target unless everyone else is out of stock of something we know they carry. I’ve been there once since they did this while previously we would go once a week or so.
Section hiking on long distance trails is pretty common as well. Most people aren’t in a position to just take off and do the Appalachian Trail or Pacific Crest Trail in one shot.
Show HN: Instant QR Menu – AI turns photos of paper menus to menu sites in < 60s
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!
Stay out and distance yourself from either camp? You're absolving the agency of the richest person in the world. And I get that might hard when one has got a crippling social media addiction and can't help but run their mouth. But again, let's not absolve the agency of the richest person in the world.
how to uninstall?
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.
> 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).
But in the spirit of answering the headline's question, it's because nothing else tastes quite like it!
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.
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.