MurphyA/hacker-news huggingface dataset:
by SurvivorTed | 2025-05-06 23:02:46+00:00
New GUI based serial terminal for embedded development (Linux and Windows)

Hi all, just wanted to let everyone know of my new open-source serial (and TCP/IP) terminal program aimed at embedded developers.

I wasn't happy with what was available on Linux, so I decided to write my own. The goals were to have a modern GUI (tab based, pull out panels, etc) and I wanted support for binary protocols.

It has support for ANSI escape sequences, XModem (up/down), binary blocks, hex dumps, bridging 2 open connections, and more.

Source link: https://github.com/TheBeef/WhippyTerm

This is the first release (version 1.0), and I am hoping people will have a look (and hopefully like it).
by jongjong | 2025-05-06 23:03:02+00:00
This article resonates. After coding obsessively for almost 20 years, it's muscle memory. I don't have to find bugs anymore, they find me.

I can feel their presence. Pretty much all the bugs I write now are intentional "will focus on this later" kind of thing. I know exactly what I'm neglecting, why I'm neglecting it and when is the right time to address. I can write bug-free code if appropriate though it takes longer to do and not always possible in a company environment where there are deadlines.

It is a burden to see all the issues and complexity and not being able to address it fully.
by kreelman | 2025-05-06 23:03:04+00:00
I'm reminded of "The Feeling of Power" by Isaac Asimov.

In this story, everyone relies on automation so much that they forget how to do mathematics. A lone, nerdy operator re-learns the skill of 2 digit multiplication in the process of working through automated weapons targeting issues, astounding his superiors.

The concept of forgotten arts seems like a common thread here.

This is a PDF of the text. https://ia600806.us.archive.org/20/items/TheFeelingOfPower/T...

This is the Wikipedia overview. https://en.wikipedia.org/wiki/The_Feeling_of_Power

First heard this one at school.
by dhbradshaw | 2025-05-06 23:03:14+00:00
SEEKING WORK | REMOTE | U.S. or Canada (Located in the Huntsville AL area.)

Automate business processes. Get more done, more accurately, faster, and less painfully.

PhD in laser physics / quantum optics, startup veteran, 15 years of experience in automating systems from laser control using real time video analysis to email and spreadsheet ingestion and routing.

https://github.com/dhbradshaw

Preferred tools: user interviews, systems analysis, documentation, rust, python, typescript, postgres, aws, local llms, evals and testing.

Free consultation, satisfaction guaranteed.

Reach out to dhbradshaw at gmail!
by asadotzler | 2025-05-06 23:03:47+00:00
b) Apple Pay on Stripe seems a pretty low friction experience for web purchases. My app has a "buy" button that pops up a Safari window with an Apple Pay button the user clicks. Sure, it's an extra click but I doubt it's a slam dunk that the extra click is going to consistently cut conversions by 15% (or 30% for big outfits.)
by hex4def6 | 2025-05-06 23:04:28+00:00
Sure. I guess I was pointing out in a roundabout way that one of the assumptions must be wrong. I don't think 2,300/hr feels realistic. 200 seems much more reasonable (or less). I'd be inclined to believe 1 nail per minute (sustained). If you assume $20-40/hr, now we're up $2-4/nail which seems much more reasonable.
by bhaney | 2025-05-06 23:06:25+00:00
I have a very old blog post [1] that's basically a build log of the first thermostat I built (plus some rambling). It has a link to the firmware repo and a follow-up post about the API design near the end if you just want to skip to that. I wouldn't really call it "documentation" but it should be enough to point you in the right direction.

I've changed and rebuilt it a few times since then. The version in that blog post expects the microcontroller to have external USB power (I had an outlet with a USB port right next to the thermostat mount, so I didn't care), but you can trivially wire in any voltage converter capable of 24VAC->5VDC/3.3VDC to remove that requirement. I plugged an automotive voltage converter module I had lying around into the first design at some point, and then the next design had a proper rectifier and buck converter to accomplish the same thing.

[1] https://blog.benhaney.com/2019/03/26/building-a-thermostat
by kristopolous | 2025-05-06 23:07:21+00:00
When those technologies were new people gave them all the exact same critique and from a labor perspective they were all correct. The industrial labor critique is 100% valid.

The portraiture artist industry was dramatically disrupted by the daguerreotype.

The automobile dried up the income of farrier and blacksmith along with ending the horsemanship industry.

The rise of synthesizers in the 80s greatly reduced the number of studio musicians.

And it's undeniable that the industry of commercial artists is currently being disrupted by AI.

But the decline of portraiture artist due to daguerreotypes doesn't mean, say Ansel Adams is dogshit.

We can acknowledge both the industrial ramifications and the labor and skill of the new forms without being dismissive of either. Auto repair is still a skill. Driving a car is still work even if there's no horses.

When mechanical looms replaced manual weavers during the luddite movement, it might have killed countless careers but it didn't kill fashion. Our clothing isn't simulacrum echos of the 1820s.

This is the transfer of a skill into a property. The transfer of a skill into a property changes it from something that must be rented from below to something that can be owned from above.

Property isn't a thing however, it's a chosen relationship between people about a thing. we could make different choices...
by josephg | 2025-05-06 23:08:18+00:00
Yes that’s right. The feature really wants compiler support for that reason. The simplest version wouldn’t be too hard to implement. Every function just exports a flag on whether or not it (or any callees) can panic. Then we have a nopanic keyword which emits a compiler error if the function (or any callee) panics.

It would be annoying to use - as you say, you couldn’t even add regular numbers together or index into an array in nopanic code. But there are ways to work around it (like the wrapping types).

One problem is that implicit nopanic would add a new way to break semver compatibility in APIs. Eg, imagine a public api that just happens to not be able to panic. If the code is changed subtly, it could easily start panicing again. That could break callers, so it has to be a major version bump. You’d probably have to require explicit nopanic at api boundaries. (Else assume all public functions from other crates can panic). And because of that, public APIs like std would need to be plastered with nopanic markers everywhere. It’s also not clear how that works through trait impls.
by GuB-42 | 2025-05-06 23:08:20+00:00
I am more interested about the why than on bashing AI-based code analyzers. Without checking, I am sure that AI will be able to find all sorts of vulnerabilities in my untested, unpublished week-end projects.

What in curl makes AI-based analysis completely ineffective?

The more positive take, and I think the biggest reason is that curl is just well made. But along the way, it most likely uses plenty of code analysis tools: static analysis, testing, coverage, fuzzing,... the classic. And I am sure these tools catch bugs before they are published. Is there an overlap between one of these tools and AI, can one substitute for the other?

Another possibility is that curl is "weird" enough to throw off AI-based code analysis. We won't change curl for that reason, but it may be good to know.

And yeah, it may just be that AI just sucks but only looking at one side of the equation is not very productive I think.

The article mentions spam and AI slop, it is a problem for sure, but the claim here is much stronger than "stop spamming me", it is "AI never worked". And I find it a bit surprising, because when I introduce an new category of tool on some code base I work with, AI or not, I almost always find at least a problem or two.
by siscia | 2025-05-06 23:08:23+00:00
Anyone who has tried to write formal verification will tell you that there is a WIDE gap between thinking and writing the specs.

Any tool that makes formal verification more accessible, should be welcome.

I believe the valuable part is how accessible we make thinking together with machines.

Us human are great at create innovative solutions, not so great at check and verify every single thing that can go wrong. Machines help with that.
by throw10920 | 2025-05-06 23:08:39+00:00
> You can extend the "free market ideologues" to include more groups such as those who were very concerned about free speech for exactly four years from 2021-2024.

What groups? What people? Are they on HN? Are you responding to them?

This is just sneering. You're not responding to a particular argument or person - you're you're just creating a fictional (in that they don't exist as a coherent, self-identified group, and are only a group in your own mind based solely off of these attributes) until group of people with some alleged hypocrisy and using them to dog-whistle indirectly attack a group of people based on some political ideology that you don't like (and which is largely irrelevant to the alleged hypocrisy that you're inventing). This is some of the most anti-intellectual drivel possible and the diametric opposite of what belongs on HN.
by Aachen | 2025-05-06 23:08:47+00:00
Or a deposit system: pay 2€ for a human to read this message, you'll get it back if it's not spam

What if the human marks it as spam but you're actually legit? Deposit another 2€ to have the platform (like Hackerone or whichever you're reporting via) give a second opinion, you'll get the 4€ back if you weren't spamming. What to do with the proceeds from spammers? The first X euros of spam reports go to upkeep of the platform, the rest to a good cause defined by the projects to whom the reports were submitted because they were the ones who had to deal with reading the slop so they get at least this much out of it

Raise deposit cost so long as slop volume remains unmanageable

This doesn't discriminate against people who aren't already established, but it may be a problem if you live in a low-income country and can't easily afford 20€ (assuming it ever gets to that deposit level). Perhaps it wouldn't work, but it can first be trialed at a normal cost level. Another concern is anonymity and payment. We hackers are often a paranoid lot. One can always support cash in the mail though, the sender can choose whether their privacy is worth a postage stamp
by hex4def6 | 2025-05-06 23:10:08+00:00
Sure, but that means the Roman cost would be even cheaper. If silver was cheaper in Roman times, and iron was 1/300th the cost, then the Roman nail becomes even cheaper (which doesn't make sense)

I'm not sure what the hourly rate for a day laborer would be. $20/hr?

I think the real issues with this calculation are the idea someone can crank out 2,300 nails / hour. I think 1 per minute (sustained) seems much more reasonable. That makes the labor cost 40x more. And maybe it would be a semi-skilled occupation, so $20/hr or $40/hr makes more sense. So now the labor cost is 150x more.
by simpaticoder | 2025-05-06 23:10:31+00:00
I don't get it. Isn't this a runtime problem and not a compile-time problem? buy() or sell() is going to be called with dynamic parameters at runtime, in general. That is, calls with concrete values are NOT going to be hard-coded into your program. I would write the function to assert() invariants within the function, and avoid chasing compile-time safety entirely. If parameter order was a concern, then I'd modify the function to take a struct, or similar.
by BobaFloutist | 2025-05-06 23:11:09+00:00
I think I mentally interpret "common" as "a member of a plurality category," which is to say in the same order of magnitude of commonality as the most common group at a given level of detail.

What you're describing, I think I would call "Not uncommon." Or, to put it another way, you shouldn't be surprised for any given case to exhibit it, but you shouldn't expect it either.
by ramesh31 | 2025-05-06 23:11:47+00:00
>It is inevitable for DoorDash to make tipping an even more annoying and intrusive part of Deliveroo. I can't wait to see how europeen users react to that.

On demand food delivery is a premium luxury service (though the platforms have done their best to market it as otherwise). Please tip accordingly. These people work their asses off and are generally from a very low income background. If you have problems with that, go to the grocery store.
by louthy | 2025-05-06 23:12:50+00:00
Not strictly true. In the UK, at least, a sale of a business needs to be signed off by the Cabinet Office if it is considered strategic or a security risk [1].

Unlikely, in the case of Deliveroo, but I went through this exact process and it took about a month or so to get sign off and to be allowed to sell my own company to a foreign buyer (health tech)

There’s also monopoly and competition regulation that could stop a sale.

[1] https://www.gov.uk/guidance/national-security-and-investment...
by CGamesPlay | 2025-05-06 23:13:55+00:00
I'm pretty sure it's your "more positive take". It's just a mature project which many, many competent eyeballs analyzing and securing it, and correspondingly many, many more incompetent eyeballs looking to make a quick bug bounty.

> Is there an overlap between one of these tools and AI, can one substitute for the other?

AI is a crude facsimile of any tool, which is both why it's useful and why it's ineffective. In the case linked from the post, it's hallucinating function names and likely hallucinating the entire patch. This hallucination would be an annoyance for the submitter using an AI tool to discover potential security vulnerabilities, and is both an annoyance and waste of time for the maintainer who was given the hallucination in bad faith.
by JumpCrisscross | 2025-05-06 23:13:57+00:00
> On demand food delivery is a premium luxury service, though the platforms have done their best to market it as otherwise. Please tip accordingly

I stopped automatically tipping in New York City and the Bay Area. They earn a minimum wage now [1]. If they go above and beyond, sure, I'll tip. But if they just do their job, there are now regulations that have them get paid.

[1] https://www.nyc.gov/site/dca/news/018-24/mayor-adams-first-a...
by cyberax | 2025-05-06 23:14:26+00:00
Here's a thought: Apple should NOT be able to "monetize" third-party apps. At all. They have no right to the work of other people.

Apple wants to mandate a review? That's fine. Charge developers for the reviewers' time with a reasonable profit margin, and Apple _already_ charges $100 a year for access to the AppStore.
by neonsunset | 2025-05-06 23:14:30+00:00
> Microsoft was for years actively hostile toward attempts to run .NET programs on platforms other than Windows

It's been 10 years. Even before that, no action was ever taken against Mono nor any restriction put or anything else. FWIW Swift shares a similar story, except Apple started to care only quite recently about it working anywhere else beyond their platforms.

Oh, and by the way, you need to look at these metrics: https://dotnet.microsoft.com/en-us/platform/telemetry

Maybe take off the conspiracy hat?

> There are too many other great choices with broad platform and community support

:) No, thanks, I'm good. You know why I stayed in .NET land and didn't switch to, say, Go? It's not that it's so good, it's because most alternatives are so bad in one or another area (often many at the same time).
by int_19h | 2025-05-06 23:15:38+00:00
> However, there are times where you're tapping on a familiar app whose flow you know intimately and you know exactly where Y is about to appear and you want to tap on it as fast as you can. In those cases, it is absolutely infuriating if the app simply ignores your input and forces you to tap again.

This is very true, but the app has to be explicitly designed around this e.g. by not injecting random UI elements that can affect the layout.

Unfortunately this seems to be regressing in modern app UX, and not just on mobile. For example, for a very long time, the taskbar in Windows was predictable in this sense because e.g. the Start button is always in the corner, followed by the apps that you've pinned always being in the same locations. And then Win11 comes and changes taskbar layout to be centered by default instead of left-adjusted - which means that, as new apps get launched and their icons added to taskbar, the existing icons shift around to keep the whole thing centered. Who thought this was a good idea? What metric are they using to measure how good their UX is?
by FireBeyond | 2025-05-06 23:16:12+00:00
And if Apple yoinks them out, then why should the developer respect the "no disparagement" or "no telling your customers about payment/alternatives"? Which to me was always the ultimate expression of Apple absolutely knowing they are being greedy. Not just "You can't tell your customers you can pay less elsewhere", but "You can't even tell your customers about our involvement in your pricing decisions".
Ask HN: Advice wanted – director distrusting of our team?
by golly_ned | 2025-05-06 23:17:18+00:00
Hi -- I've posted before about a director of mine, who joined a few months ago. I'm trying to get a sense of how to interpret this situation, and what (if anything) there is to do for me here.

The director has a reasonably strong background in a specialty we're hiring for. We haven't put dedicated effort into this specialty, and only two of us (me and a staff-level teammate) have a background in this specialty. This specialty is a strong focus of the director, even to the point of excluding other very important areas of work.

We've been interviewing candidates, targeting those with this specialty. My interview is dedicated to assessing candidates' facility and depth with this specialty. I'm sensing what seems like some amount of distrust from the director about me and my team's capability to hire good candidates for this specialty.

In one case, my team did an interview loop with a candidate and decided to approve. The director wanted to meet with the candidate individually after the fact to assess whether they would indeed be a good fit, rather than as a "sales" call when an offer is extended.

In another case, the director second-guessed an internal candidate whom my manager and I fully supported joining the team; in this case, the director didn't interview the internal candidate, but had expressed skepticism about their suitability for the team, despite our strong support, and background (though not especially recent) in this specialty.

This is happening again in a third case -- a candidate passes the loop, but the director wants to meet to do at least some amount of assessment.

Is the director distrusting of the team (and hence of me in particular)? I've met with him a few times, and he's insistent about some pieces of work (prematurely, I think -- there's still a good amount of fact-finding to do before deciding on what, and when, to work on different options). I get the feeling he thinks our team isn't great at this, since it hasn't been urgent and prioritized before.

Are there interpretations I could be missing here? Could this be just a matter of style, that the director (~4 teams, ~30 reports, though growing) wants to be very hands-on with hiring, even ~mid-level candidates? If the director's doing any kind of assessment of the suitability of candidates after the loop, I'd have to assume the director would find it feasible to veto a candidate, even having a full loop approving.

If the director probably is distrusting, then besides delivering on this specialty myself, any ways I can earn the director's trust? I plan on delivering wins in this area myself, though I can't guarantee I can commit enough heads-down time to this; and my director and I so far haven't really seen eye to eye on approaches to tackling this.

Thoughts, comments, experiences welcome. Thanks.
by parasense | 2025-05-06 23:17:57+00:00
You're right about the Rust static binary size.

Hello world is really large, and it's unamusing how so much of the standard library is creamed into the resulting binary, no matter how trivial...

Do you know the current status of dynamic linking? I guess the lack of ABI stability is the big blocker, right? Probably no use in formalizing the linking bits if the goal posts keep moving. So it seems like the big problem is some committee will never complete the task... Because it will never be perfect... Something like that.
by tptacek | 2025-05-06 23:18:08+00:00
We're using words like "should" have access or whatever, but my understanding of the point of these apps is that they allow users to use Signal while keeping compliance archives of messages. They're not cryptographically interesting (or really cryptographic at all). This is more like e-discovery software than secure messaging. If you're using it, cryptography is out the window.
by mmooss | 2025-05-06 23:18:25+00:00
We agree; you just seem to want to argue with a strawperson.

My point is that they could help a lot more by verifying the clients.

> Signal guarantees end-to-end encryption in transit.

They can't guarantee that unofficial clients do E2EE. For example, what if the client sent messages in a way that leaked information, including contact information of the users?

> But that is a convenience tool

It's a security tool, it's just not guaranteed.
by ninkendo | 2025-05-06 23:19:27+00:00
> Remind me again how move, copy and clone works in C++ /s

Sarcasm, but it’s worth outlining… C++ “move semantics” are (1) precisely the opposite of rust, and (2) not move semantics at all.

- Rust doesn’t let you override what happens during a move, it’s just a memcpy

- C++ has an rvalue reference (&&) constructor, which lets you override how a thing is moved

- Rust doesn’t let you use the moved-from value

- C++ absolutely has no problem letting you used a value after wrapping it in std::move (which is really just a cast to an rvalue reference)

- Rust uses moves to allow simple memcpy’ing of values that track resources (heap space, etc) by simply making sure nobody can access the source, and not calling Drop on it.

- C++ requires you to write logic in your move constructor that “pillages” the moved-from value (for instance in std::string it has to set the source string’s pointer to nullptr and its length to 0.) This has the consequence of making the moved-from value still “valid”

For copies:

- Rust’s Copy is just “memcpy, but you can still use the original value”. Basically any type that doesn’t track some resource that gets freed on Drop. Rust simply doesn’t let you implement Copy for things that track other resources, like heap pointers.

- C++’s copy happens implicitly when you pass something by value, and you get to write arbitrary code to make it work (like copying a string will malloc a new place on the heap and copy the buffer over)

- Rust has an entirely different concept, Clone, which lets you write arbitrarily code to duplicate managed resources (analogous to how you’d use a C++ copy constructor)

- C++ has nothing to help you distinguish “deep copy that makes new copies of resources” from “dumb copy that is just a memcpy”… if your type has an expensive concept of deep copying, callers will (perhaps inadvertently) use it every time they pass your type by value.

IMO C++’s “move” still letting you touch the moved-from value is what made me realize how much C++ had lost the plot when C++11 came out. Rust’s semantics here are basically what happens when you look at what C++ was trying to do, and learn from its mistakes.
by mtlynch | 2025-05-06 23:20:37+00:00
For anyone else confused, "Krebs" in this context refers to Chris Krebs[0, 1], former Director of the US Cybersecurity and Infrastructure Security Agency.

Chris Krebs is unrelated to Brian Krebs of Krebs on Security.

[0] https://en.wikipedia.org/wiki/Chris_Krebs

[1] https://www.whitehouse.gov/fact-sheets/2025/04/fact-sheet-pr...