MurphyA/hacker-news huggingface dataset:
by nonrandomstring | 2025-04-30 09:00:18+00:00
The essence of the article is a topic of concern, but is expressed rather lightly in TFA. End runs around security happen at the edges. From the bottom; by undermining hardware, or code libraries, supply chains. And we're now seeing "decapitation attacks" right at the top. Our "western" security models have a weakness, with their roots in Prussian military organisation and bureaucratic technical management, by default they trust up. The whole DOGE caper (what I would call a Dr Strangelove scenario - variation of insider-threat) exposes this as actually very vulnerable.

Cybersecurity services that operate as MSPs (the acronym variation where S is for security) hit a fundamental problem. A managed security provider becomes a bigger and juicer target since all of its clients are implied spoils. If they in turn defer-to/buy-from bigger actors up the food chain, those become juicer targets too.

This a frequent chestnut when we interview cybsersecurity company CEOs. Although it resurfaces the old "Who guards the guardians?", there is more to it. One has to actively avoid concentrating too much "power" (non-ironically a synonym of vulnerability ... heavy lies the crown) in one place, but to distribute risk by distributing responsibility for building trust relations (TFA mentions this). I expect we'll see more and more of this sort of thinking as events unfold.
by andersmurphy | 2025-04-30 09:00:24+00:00
So I actually do this (use compression to filter out bots) for my one million checkboxes Datastar demo[1]. It relies heavily on streaming the whole user view on every interaction. With brotli over SSE you can easily hit 200:1 compression ratios[2]. The problem is a malicious actor could request the stream uncompressed. As brotli is supported by 98% of browsers I don't push data to clients that don't support brotli compression. I've also found a lot of scrapers and bots don't support it so it works quite well.

[1] checkboxes demo https://checkboxes.andersmurphy.com

[2] article on brotli SSE https://andersmurphy.com/2025/04/15/why-you-should-use-brotl...
by jemmyw | 2025-04-30 09:01:31+00:00
There are a number of studies. I wouldn't call that a lot of evidence, because they don't agree on the results. And, because the methodology changes over time, it's probably just not possible to say that there is evidence of change between pre and post-90s papers.

https://www.nature.com/articles/s41585-022-00626-w.epdf

https://www.scientificamerican.com/article/are-sperm-counts-...

There need to be more studies of higher quality to actually establish what is happening. It's really not clear right now that anything is happening, and, if it is, if it's even a problem.
by rsynnott | 2025-04-30 09:02:07+00:00
Only if it's effective at writing code, which it of course is not.

Any time you see companies refusing to even vaguely define what metrics like this mean (or, for that matter, using non-standard metrics, like disclosing weekly active users but not monthly), it's generally a very strong signal that they're not interested in being transparent because the truth is, ah, not what they would like it to be.
by oytis | 2025-04-30 09:02:11+00:00
I don't think so. None of them seemed to be a tech enthusiast before, if you don't consider using social media a trait of a tech enthusiast.

I think people who are interested in how things work and AI users are two entirely different cohorts. ChatGPT from user's perspective is more like a search engine or an autotranslator rather than some sophisticated technical gizmo.
by kypro | 2025-04-30 09:02:55+00:00
I think large part of the issue here is that ChatGPT is trying to be the chat for everything while taking on a human-like tone, where as in real life the tone and approach a person will take in conversations will be very greatly on the context.

For example, the tone a doctor might take with a patient is different from that of two friends. A doctor isn't there to support or encourage someone who has decided to stop taking their meds because they didn't like how it made them feel. And while a friend might suggest they should consider their doctors advice, a friend will primary want to support and comfort for their friend in whatever way they can.

Similarly there is a tone an adult might take with a child who is asking them certain questions.

I think ChatGPT needs to decide what type of agent it wants to be or offer agents with tonal differences to account for this. As it stands it seems that ChatGPT is trying to be friendly, e.g. friend-like, but this often isn't an appropriate tone – especially when you just want it to give you what it believes to be facts regardless of your biases and preferences.

Personally, I think ChatGPT by default should be emotionally cold and focused on being maximally informative. And importantly it should never refer to itself in first person – e.g. "I think that sounds like an interesting idea!".

I think they should still offer a friendly chat bot variant, but that should be something people enable or switch to.
by jltsiren | 2025-04-30 09:03:04+00:00
The issue with soft money positions is mostly that universities insist on being shitty employers.

By default, all jobs are supposed to be open-ended. Fixed-term contracts are only allowed for legitimate reasons. Hiring someone for the expected duration of a PhD is a legitimate reason. The availability of funding is not. And even if the reason would be legitimate in isolation, multiple consecutive fixed-term contracts would be evidence that the employer has a permanent need for the employee, turning the contract automatically permanent.

When I was still in Finland, people were speculating that all postdoc positions were technically illegal, as were tenure-track positions. But it was also understood that if someone actually insisted on enforcing the law, the government would have to change it. Because rewriting the laws is much easier than making universities change their ways.
by GianFabien | 2025-04-30 09:03:37+00:00
I write web front-ends for industrial embedded systems. So my experience might differ from business WebApps.

In my experience it requires a longer learning curve for the various frameworks than to simply learn the relevant Web API. My learning is very much JIT and over time I have built up a robust class library that gets my stuff done. When I get stuck ChatGPT suggests fixes that sometimes work and spare me from losing more hair.
by protocolture | 2025-04-30 09:03:54+00:00
Its my experience with US network engineers, system administrators, cablers, DC operators, business owners and a few other bits and bobs.

Something near 100% of the US telco industry I could not find a polite word to describe. And its very common for obvious deficiencies to be laughed off as normal and acceptable.

>Work Ethic

Lets start with "Listening Ethic" and "Understanding Instructions" and maybe "Work Ethic" will become relevant.
by braiamp | 2025-04-30 09:04:33+00:00
> The problem with GDP isn't that it's a score, it's that it's a BAD score

And so it is every other score. Economist have known since a good while that looking at a single number to inform policy decisions is bad, but if we try to take our entire paraphernalia of instruments and indicators (Gini index, inflation, velocity of money, consumer sentiment, development index, etc) people would be just as confused. GDP is a bad metric, but it's not worthless. It's a bad metric if you only use it in a vacuum, if you are knowledgeable and combine it with several others you would be more effective into improving the society at large.
by alion02 | 2025-04-30 09:04:49+00:00
I recently ran down approximately the same rabbit hole when trying to figure out what to do about x86 treating addition and bitwise OR differently. There's https://llvm.org/docs/LangRef.html#id171, but it can't generally be synthesized in Rust. So I went on a short-lived quest:

- https://internals.rust-lang.org/t/expose-llvms-or-disjoint-i...

- https://github.com/rust-lang/libs-team/issues/373

- https://github.com/rust-lang/rust/pull/124601

Which ultimately culminated in an opinion that should sound familiar - https://github.com/rust-lang/rust/pull/124601#issuecomment-2....
by ionwake | 2025-04-30 09:05:04+00:00
Sorry if this is unrelated.

I still remember as a 25yr old programmer in England, attending a job in what was basically a porta-cabin in the countryside around Birmingham. Inside all the walls were covered in 1980s "Hang in there" motivational posters, only they were originals and it was unironic ( it was like a time capsule ). After shocking the boss by agreeing to a cup of water offered by the secretary which caused a massive problem as they had no glasses, the over weight boss sat me down and asked me:

"What percentage of windows is written in C++?" The position was for web development...

I guessed correctly ( it was about 40% ).

I then apparently failed the interview as he suddenly asked me if my girlfriend wanted to interview for the position ( there was no indication she was even in the field of CS ).

The moral of the story is apparently the code ratio of Microsoft products is a big deal to random middle managers in the black country. ( Thats what the region is called because the soot from coal mining would blacken the landscape - yes its what Mordor was based on by Tolkien).
by n_ary | 2025-04-30 09:05:31+00:00
I find the misbehavior of indie/boutique MacOS apps always insisting on starting at login very irritating. Unless the app needs to run some heavy background preparation steps before becoming usable, there is literally no sense it starting at login. Also when dormant, check for update(once every 24h), and nag the user if they want to update, but please do not auto download! A lot of non-tech folks use 128/256GB versions of macbook with trillions of photos already clogging their device, an app downloading new updates to add to the pain unless the user asks to do so is outright malice.
by ta1243 | 2025-04-30 09:05:36+00:00
You don't need HSR, just a normal 125mph train line.

Imagine you are born in Bakersfield, your family is from Bakersfield, perhaps they are agricultural workers, but you don't want to be a farmer, you want a job in a big city, perhaps an accountant, or a civil engineer, or a whatever. It's a typical modern desk job, for whatever reason you need to be in an office a few times a week, maybe not 5 since covid, but certainly 2-3.

You can either move a long way from your home, family, support network and live near your work, or you can maintain that community and support network but have a limited access to jobs. Or you can do both - stay living close to family so you can pop round in 10 minutes for a chat, but also have an increased choice of jobs and careers that a large city provides.

Nobody is commuting 100 miles a day for a minimum wage job sure, but there's far more jobs than cashiers - I assume LA has decent jobs somewhere between the "Holywood A-Lister" and the "$10/hour cleaner" scale, and due to its size it likely has more opportunities than Bakersfield alone.
by dcminter | 2025-04-30 09:06:05+00:00
One iterative approach; step zero, though, is to be sure you understand what the bug is:

• What happens?

• What did you expect to happen?

If they're the same then NOT A BUG, and WONTFIX :D Assuming it's a bug, the next important thing is to be able to reproduce it. Ideally with a test case. A test case allows you to:

• Rapidly test whether your fix (when you have one) has worked

• Ensure that the bug doesn't reoccur (avoid "regressions")

Sometimes it can be very hard to reproduce a bug, but of course if you can't reproduce it you will never be sure your fixes have worked.

The bug spotting process consists of iterations of:

• Gather data

• Form hypothesis

• Test hypothesis

It's basically the scientific method. Data can be all sorts of things; events occurring in logs, facts about the user's interaction, versions of databases etc. If you have no hypothesis about what's going on, gather more data until you do.

Oh and write your data, hypothesis, and test results down somewhere so you don't get into loops of trying the same thing or think you've tested things that you haven't or know things that you don't.

A hypothesis can be as simple as "maybe it's the version of the database" and the test being "change the version of the database and see if the bug disappears" ... or it could be something more complicated and convoluted ("When this thread does this thing and that one races it to do this other thing with this particular piece of input data then....")

If you were able to reproduce the problem, your hypothesis was correct and the test indicated that you had resolved it, then you're good to go. Then it comes back next week and you discover it was slightly more complicated than that ;)

It's a skill and it improves with practice. Good luck.

---

Edit: Originally I wrote "two approaches" but then realised I really just have this one, but one variant of it is "I recognise something I had at the back of my mind when I was writing the code in the first place" - but that's really just that I already have the data, form the hypothesis off the back of that, and still have to test it to be sure.

Also, before you WONTFIX ... do consider why your expectations and the reporters' expectations conflict. Is your documentation confusing? Are your expectations out of whack with what real users want? Most people aren't just idiots, so a raised bug usually indicates that something is wrong even if it's not the code.
by nvarsj | 2025-04-30 09:06:28+00:00
I think you had to use the proctoring software. Some people had a dedicated USB stick and would just boot onto that for exams specifically. TAs have to review any flagged exams.

I'm pretty sure it's required for the degree's accreditation. Unfortunately, there is always a small percentage of people who will cheat if they can get away with it.
by FranzFerdiNaN | 2025-04-30 09:07:29+00:00
> Some European languages have no word for "networking".

This seems completely made up.

> Even these ridiculous cases aside, in Europe it's very difficult to fall out of line and question the authority on every level.

What a bunch of nonsense. Exactly because we have things like worker protections we are perfectly fine telling our boss when nonsense comes out. We cant get fired on a whim like Americans, which forces Americans to sycophantic behavior so they wont lose their job and healthcare.

> It takes weeks to build trust with an American, it might take whole life to build trust with a European.

Sounds like a you problem.
by weksf54 | 2025-04-30 09:09:34+00:00
Ah! Thanks, I didn't know that. I should have RTFMD better - https://docs.oracle.com/en/java/javase/21/language/sealed-cl...

Turns out you can do this and not have the annoying inner class e.g. Vehicle.Car too:

package com.example.vehicles; public sealed interface Vehicle // The permits clause has been omitted // as its permitted classes have been // defined in the same file. { } record Truck(int loadCapacity) implements Vehicle {} record Car(int numberOfSeats, String brandName) implements Vehicle {}
by iainmerrick | 2025-04-30 09:09:48+00:00
I don't think H1-Bs are really a "social-left cause". They're something that big tech companies like because they get to cherry-pick skilled workers and keep them locked in. On the main political spectrum, I think they're pretty centrist. The right dislikes them because they're immigration in disguise, the left dislikes them because they're indentured servitude in disguise.
by n_ary | 2025-04-30 09:10:12+00:00
Here is the example of why LLMs need to replace some douchbag SWE. But then again, unless there is a nutcase product owner involved, update check every 5min and downloading automatically is pure symptom of bad engineering practices and fear driven development(if anything breaks update is 5min away and we can laugh at the user when their app is updated and they are baffled).

Good thing, this was not shopify/Duolingo/Msft, else the news would be, how AI saved us $8k by fixing a dangerous code and why AI will improve software quality.
by NHLOCAL | 2025-04-30 09:10:56+00:00
AI is moving fast. To help track it all, I built an open-source timeline that maps out every major milestone in generative AI, from GPT-4 to Gemini, from Midjourney to Claude.

It’s updated monthly and covers the key developments across models, tools, and breakthroughs in a clear, no-frills format.

MIT licensed and fully open for contributions. Ideal for staying oriented in the chaos.
by b_akbas | 2025-04-30 09:11:08+00:00
Especially during holidays or special occasions like Mother’s Day or New Year’s, there’s always pressure to share something timely on Instagram. Smartshare makes that super easy. Even the most basic seasonal content can be fully automated.

And as AI image generation tools continue to evolve, the quality just keeps improving. We’re already leveraging GPT-4’s image capabilities for text-heavy visuals—especially effective for quotes, announcements, or structured designs.

Another cool use case is using the API to automatically publish reports or updates from your own system. For example, if you have an app that predicts crypto trends, you can generate a weekly performance summary image and post it on Instagram—no manual steps needed. Just specify your statistics in the prompt and AI will create and share the image for you, that's all.
by WhyIsItAlwaysHN | 2025-04-30 09:13:31+00:00
Very often the code looks like:

fn actualLogic(param, param, param) ...

switch (some Condition) { case a: actualLogic(Foo, bar) ; case b: actualLogic(bar, Foo) ; ... }

It might be expressed with if statements, pattern matching, function calls etc., but most of the code is boilerplate.

From my experience in a C# codebase most of the code which completes correctly is this boilerplate.

O3/Sonnet/Gemini are able to write actual logic in chat/agent mode sometimes but then the problem is that they rewrite too much, which would count as AI generated code.

These two factors probably play a huge role in the 30% if it's counted in any accurate way.
by ookdatnog | 2025-04-30 09:14:30+00:00
Don't iterators necessarily "forget" the structure of the tree? I can see how you can write an iterator to, for example, compute the size of a tree, or generate the set of all variables that occur in an expression tree.

But it's not obvious to me how you'd write a generic iterator that supports something like finding all free variables in an expression tree, or even just express a tree mapping function that constructs a new tree with the same structure (for example, "make all variables in the expression uppercase"). It's been a while since I worked with iterators so correct me if I'm wrong and this is in fact easy with iterators.

With something like Haskell's recursion-schemes library [0] these operations are all just a few lines long, guaranteed to terminate, and don't need to be updated if your data structure changes (for example you add new expression nodes). I'm not aware of any non-functional programming language that can do that. See for example the freeVars function at the bottom of the linked recursion-schemes doc.

[0] https://hackage.haskell.org/package/recursion-schemes-5.2.3
by DiogenesKynikos | 2025-04-30 09:14:38+00:00
There is a ton of easily available content for learning Chinese.

In terms of government-sponsored resources, the Chinese government has created the Hanyu Shuiping Kaoshi (HSK) tests, and has written standard textbooks for them that are pretty decent. All sorts of third parties have written their own textbooks oriented towards the HSK tests as well.

> highly analytic morphology are all high barriers for any language learners

Analytic morphology is what makes spoken Chinese so easy to learn, in my opinion. There's almost none of the complexity found in Indo-European languages, like number, case, gender and tense. The main barriers to learning Chinese for Westerners are:

* It's not Indo-European, so the vocabulary is almost entirely new.

* Tonality, though this is about the same level of difficulty as memorizing noun genders in Indo-European languages.

* The writing system. Memorizing a few thousand relatively arbitrary characters is difficult.
by fvdessen | 2025-04-30 09:14:45+00:00
I recently rewrote a 40K lines application to 2K lines. Mostly by using newer tech and better design patterns. (Java to TS, Terraform to CDK, lambda soup to single app, etc.). It was a POC at work to show how things could be different. You'd think this would have made some devs rethink their approach, but no they're using AI to write even more code faster in the old approach.
by nashashmi | 2025-04-30 09:17:42+00:00
We LLMs only output the average response of humanity because we can only give results that are confirmed by multiple sources. On the contrary, many of HN’s comments are quite unique insights that run contrary to the average popular thought. If this is ever to be emulated by an LLM, we would give only gibberish answers. If we had a filter to that gibberish to only permit answers that are reasonable and sensible, our answers would be boring and still be gibberish. In order for our answers to be precise, accurate and unique, we must use something other than LLMs.
by pergadad | 2025-04-30 09:18:52+00:00
Thanks John! Looks like a smooth product and I've signed up for the waiting list. Quick points of feedback already:

* I couldn't find on the site for which OS I can use it. Only here the clarification of electron made it obvious - but might be helpful for others if you clarify it. * I use Migadu and basically create myself infinite emails to handle different contacts. I don't see any clarification if sending is by default only on the 'main email' (foo@bar.com) or I can also use custom emails for each response (ideally the same as the one on which the email was received (footala@bar.com, foospotify@bar.com, foocarquote@bar.com, etc). I'm not expecting custom filtering for this as a standard of course, just hoping for the ability to send. * Any calendar integration? Can I create/manage events e.g. using my Google calendar? If not, how do you envisage this being done? * Sweet and simple presentation overall - good luck!
by keiferski | 2025-04-30 09:19:18+00:00
I think Margin Call is my choice for a “perfect” movie. It isn’t the most exciting, or impressive, or dramatic, or ___ film, but - it has absolutely no filler, every line of dialogue is exactly the right combination of explanatory and realistic, and the casting is incredibly spot on, especially considering that it’s an ensemble cast of big name stars. That’s as close to perfection as it gets IMO.
by buzzmerchant | 2025-04-30 09:19:21+00:00
It's interesting you say this, because i've been thinking a lot about Nietzsche's slave vs. master morality, and i feel like we as a culture have to a large extent come to adopt something resembling the former. If this is true - and there are a lot of assumptions baked into this, so take it with a pinch of salt - then it stands to reason that we as a culture are inundated with shame, since the standards of a slave morality are so much higher and more proscriptive than those of a master morality. Master moralities tell you what to pursue and be; slave moralities tell you what not to do. So, yeah, in sum, if all of this is true, then it's no surprise that society at large is struggling a bit with motivation, since the slave morality is essentially etiolating everything.
by bildung | 2025-04-30 09:19:57+00:00
> Why should we send $240 million to Zambia? Is it the United States taxpayers' responsibility to treat all of the developing world's problems?

If you see someone drowning in the river, and you stand by and are a good swimmer, is it not your responsibility to help?

> There will be no aid to Zambia or any other country if we default on that debt.

US Foreign Aid was a trivial amount of money buying much soft power around the globe. China for comparison has almost double the foreign aid amount the US had, relative to GNI: https://en.wikipedia.org/wiki/List_of_development_aid_sovere...