MurphyA/hacker-news huggingface dataset:
by marginalia_nu | 2025-08-30 14:09:57+00:00
I think it's pretty tiresome that "smart authors" are blamed for writing complex code. Smart authors generally write simpler code. It's much harder to write simple code than complex for reasons that boil down to entropy -- there are simply many more ways to write complex code than simple code, and finding one of the simple expressions of program logic requires both smarts and a modicum of experience.

If you try to do it algorithmically, you arguably won't find a simple expression. It's often glossed over how readability in one axis can drive complexities along another axis, especially when composing code into bite-size readable chunks the actual logic easily gets smeared across many (sometimes dozens) of different functions, making it very hard to figure out what it actually does, even though all the functions check all the boxes for readability, having a single responsibility, etc.

E.g. is userAuthorized(request) is true but why is it true? Well because usernamePresent(request) is true and passwordCorrect(user) is true, both of which also decompose into multiple functions and conditions. It's often a smaller cognitive load to just have all that logic in one place, even if it's not the local optimum of readability it may be the global one because needing to constantly skip between methods or modules to figure out what is happening is also incredibly taxing.
by hildolfr | 2025-08-30 14:09:57+00:00
I'm on a Windows N100 machine, 8gb ram, 1440p webview, lightweight. It runs just about anything else smoothly. It runs this page in an EndeavorOS partition in a vanilla Chrome fine.

...Which is opposite to most of my experiences, usually performance on this machine is reliant on very specific Intel windows drivers and it's a dog in linux.

also for clarity : when I say unviewable I don't mean it's gibberish -- I mean that that if I keep trying to scroll through it the FPS/load is such that Windows insists on closing the frozen window. The text looks fine.
by 2paz7x | 2025-08-30 14:09:58+00:00
>this Linux computer that you have such warm feelings about is fairly easy to pwn

It's just not. Otherwise, all servers would be running your beloved iOS, wouldn't they?

>in part because of the lack of verified boot

This does not matter. I can generate my own keys.

>easier to pwn [...] than [...]an iPhone

Lol... If anything, phones are more vulnerable because you have less access to sandboxes and VMs.

Hey, look, an Apple CVE from two days ago. https://nvd.nist.gov/vuln/detail/CVE-2025-43284

And this one's from this month. https://nvd.nist.gov/vuln/detail/CVE-2025-43300

And here's Apple's sandbox failing, last month. https://nvd.nist.gov/vuln/detail/CVE-2025-43274
by dsego | 2025-08-30 14:10:10+00:00
What's more likely to fail or cause issues? Dependencies failing and parsing errors are usually handled by the build system (type checkers and linters). In the case where they are triggered in production, it can be easily caught by monitoring services like Sentry. Ideally any changes are manually tested before releasing, and a bug in one part of the app that's being worked on is not likely to affect a different section, e.g. not necessary to retest the password reset flow if you're working on the home dashboard. Having a suit of usually flaky end-to-end tests seems like the most sloppy and cumbersome way to ensure the application runs fine, especially for a small team.
by drob518 | 2025-08-30 14:11:47+00:00
I think the R6S behavior helps with visual matching, but squanders using square brackets for something more useful (e.g. vectors), which is a shame. Another thing Clojure does is copy Arc in eliminating parentheses around the pairs of forms in let bindings and cond forms, which really aren’t needed. It just expects pairs of forms and the compiler objects if given an odd number. The programmer can use whitespace (notably newlines) to format the code so the pairings are visibly apparent. That reduces a surprising amount of needless parentheses because let binding forms are used all over (less so cond forms).
by sgbeal | 2025-08-30 14:12:09+00:00
> Too bad the notion of completed/finished/done software is very weak.

FWLIW, this simple definition suffices for me: software is complete insofar as it requires no changes to do what its maintainers would like to do with it at the current point in time.

"Complete" software frequently changes to "incomplete" as the desires of the maintainer(s) change(s), and may just as quickly revert to "complete" as changes are made.

This definition does not consider the desires of non-maintainers because there's _always_ at least one such person who wants a given pieces of software to do their one weird thing (which the maintainer(s) will not ever add).
by chrismorgan | 2025-08-30 14:12:34+00:00
There is no X11 involved here, and even on systems running an X server instead of Wayland, judging by the symptoms I’ve seen, the X server isn’t actually involved in interpreting Compose sequences—each app implements the whole lot itself, and judging by the inconsistencies, not all are using the same library for it.

Some only let Compose < - (←) work, stopping and preventing Compose < - > (↔) from working. Others, if I remember correctly, let Compose < - Enter work to get ←.

Once an Input Method is involved, it can handle the Compose key, and that’s what fcitx5 is doing for me now, so that everything’s behaving the same… but that “same” is not what I reckon it should be.
by radarsat1 | 2025-08-30 14:13:26+00:00
To be fair it would be a lot easier to iterate on ideas if a single experiment didn't cost thousands of dollars and require such massive data. Things have really gotten to the point that it's just not easy for outsiders to contribute if you're not part of a big company or university, and even then you have to justify the expenditure (risk). Paradigm shifts are hard to come by when there is so much momentum in one direction and trying something different carries significant barriers.
by glitchc | 2025-08-30 14:13:31+00:00
Capitalism works because the worker feels they deserve better and will go to the open market to get it. Some workers may choose to become their own bosses. The free market makes it possible.

Hypergrowth is an extreme, but so is a communist mentality where everyone is happy where they are and does not see any incentive to improve. There is a moderate middle ground that is best for economic mobility.
by throw10920 | 2025-08-30 14:14:17+00:00
Genuine answer: the model has been trained by companies that are required by law to censor them to conform to PRC CCP party lines, including rejection of consensus reality such as Tiananmen Square[1].

Yes, the censorship for some topics currently doesn't appear to be any good, but it does exist, will absolutely get better (both harder to subvert and more subtle), and makes the models less trustworthy than those from countries (US, EU, Sweden, whatever) that don't have that same level of state control. (note that I'm not claiming that there's no state control or picking any specific other country)

That's the downside to the user. To loop that back to your question, the upside to China is soft power (the same kind that the US has been flushing away recently). It's pretty similar to TikTok - if you have an extremely popular thing that people spend hours a day on and start to filter their life through, and you can influence it, that's a huge amount of power - even if you don't make any money off of it.

Now, to be fair to the context of your question, there isn't nearly as much soft power you can get from a model that people use primarily for coding - that I'm less concerned about.

[1] https://www.tomsguide.com/ai/i-just-outsmarted-deepseeks-cen...
Show HN: I made a library of 200+ viral TikTok ads for B2C content ideas
by Tanvir3 | 2025-08-30 14:14:34+00:00
Sharing this free resource I made for B2C SaaS founders who market using short form content.

I made this because I post TikToks to promote some SaaS apps I have (irrelevant), so I’m constantly looking for content ideas that’ll help me go viral

Like everyone else, I usually do this by saving hundreds of posts I see on Instagram/TikTok.

But that wasn’t enough since I wanted to filter by certain categories (faceless, no dialogue, industry, etc) so I can easily find what I’m looking for.

So I built this collection to make it easier to find inspiration.
by gumby271 | 2025-08-30 14:14:55+00:00
Maybe I'm wrong, but I have never seen Apple or Google suggest that someone use the parental control tools on a vulnerable adult person's phone to prevent them from hurting themselves. They have never run such a campaign for awareness or changed those tools to make them more palatable to controlling adult's phones (these tools are always sold as things to enable on a child's device). So no, I don't think we've started with that. We've started by adding some toggles and scary warning, and I agree that hasn't worked. I never suggested we stop trying, I suggested we allow the trusted owner/admin of the device to be more easily assigned to someone that person trusts, not just forcing Google into that role without consent.
by Buttons840 | 2025-08-30 14:15:23+00:00
I'm probably one of the "smart developers" with quirks. I try to build abstractions.

I'm both bothered and intrigued by the industry returning to, what I call, "pile-of-if-statements architecture". It's really easy to think it's simple, and it's really easy to think you understand, and it's really easy to close your assigned Jira tickets; so I understand why people like it.

People get assigned a task, they look around and find a few places they think are related, then add some if-statements to the pile. Then they test; if the tests fail they add a few more if-statements. Eventually they send it to QA; if QA finds a problem, another quick if-statement will solve the problem. It's released to production, and it works for a high enough percentage of cases that the failure cases don't come to your attention. There's approximately 0% chance the code is actually correct. You just add if-statements until you asymptotically approach correctness. If you accidentally leak the personal data of millions of people, you wont be held responsible, and the cognitive load is always low.

But the thing is... I'm not sure there's a better alternative.

You can create a fancy abstraction and use a fancy architecture, but I'm not sure this actually increases the odds of the code being correct.

Especially in corporate environments--you cannot build a beautiful abstraction in most corporate environments because the owners of the business logic do not treat the business logic with enough care.

"A single order ships to a single address, keep it simple, build it, oh actually, a salesman promised a big customer, so now we need to make it so a single order can ship to multiple addresses"--you've heard something like this before, haven't you?

You can't build careful bug-free abstractions in corporate environments.

So, is pile-of-if-statements the best we can do for business software?
by rdm_blackhole | 2025-08-30 14:16:47+00:00
> I can tell from Germany, maybe some will hire, because unless they can replace workers with robots, like it is happening in some supermarkets, they will get whatever they can.

No, they will do what they have done in the last 20 years which is import people from the middle-east or northern Africa to do the jobs and pay them the lowest wage possible.

My wife works in healthcare in Sweden and more than 50% of the people who work on the hospital wards/in age care these days are either newly arrived migrants or descendants of recent migrants.

Unfortunately most of these people are under-qualified, barely speak Swedish but they are cheap.

That puts a lot of pressure to keep the wages of everyone down because they keep bringing more and more people from abroad. This isn't even a fix because as soon as they get their permanent residencies or citizenship (for the ones who do not have it), these people move on to something else because the jobs are just awful with long hours on your feet and being treated like a servant by the patients/residents.
by faxmeyourcode | 2025-08-30 14:18:04+00:00
This is the first post in a series I'm hoping to write on applied AI engineering fundamentals. Heavy emphasis on the fundamentals... because to many it will be an obvious review but for others I hope it will give you the confidence to build more interesting things.

Next up is probably an article on applications of tool use and/or Anthropic's Model Context Protocol. I've also planned an article on OpenAI's real time voice APIs used in those AI call screening solutions that funnel leads down into your CRM.
by fluidcruft | 2025-08-30 14:18:08+00:00
In LaTeX (and probably smartypants which is another of those bare pre-unicode ASCII to fancy text converters that can get stacked into markdown--but I can't remember if dash handling specifically is in there), "--" is en-dash and "---" is em-dash. The single "-" gives a hypen which is handled differently than an en-dash in typesetting.

So... that's just to say that people who are exposed to the sorts of can't-unsee-it-now typesetting OCD that LaTeX and various popular extension packages within that ecosystem exposes can learn to write write "--" as en-dash.

It's sort of like being unable to return to the blissful state of not being hyperaware that Ariel and Helvetica are different.
by cratermoon | 2025-08-30 14:18:29+00:00
We had this discussion around "the simplest thing" way back in the late 90s/early 2000s when XP was getting started. One comment I remember well is, "it's do the simplest thing, not the stupidest thing". Maybe a boring relational database is the simple thing, compared to some distributed eventually consistent map-reduce system using HDFS. Or maybe a simple key-value store like Memcached is all you need.

Even in complex domains, the aphorism, "everything should be made as simple as possible, but not simpler" applies.

As for working at scale, complex systems are made of small, simple, working systems, where dependencies between them are limited and manageable. Without an effort to keep interdependencies simple, the result is a Big Ball of Mud, and we all know how well that works.
by jrochkind1 | 2025-08-30 14:19:13+00:00
THANK YOU. The discourse on this is wild, people seem to be ranting agianst the Web Bot Auth standard without understanding what it is because of their (honestly quite legitimate) fears about Cloudflare's gatekeeping near-monopology.

If there's a way that the Web Both Auth standard might make their near-monopoly more harmful, we can talk about it, but let's focus on that -- the Web Both Auth standard itself is solving a problem that we in fact need solving, and seems to be designed properly for the use case. From my point of view as a site operator, it will actually help me allow in bot agents I want to allow in, that currently I'm being forced to block by trying to block all bot actors because of their expense to my site, without exception. I want to be able to make exceptions!

The giant wave of ridiculous distributed bot traffic of the past 1-2 years is very very real.
by rikafurude21 | 2025-08-30 14:19:19+00:00
If you want to drive a car you go through driving school and have to pass the tests to get a drivers license. Theres no drivers license for the internet and not really any strict set of rules you have to follow in order to get online - most people pick up a sense for rules online by osmosis, usually about how to not get scammed or get malware - sometimes they have to learn by first hand experience. If we go by your comparison this would be like learning to drive by crashing a couple cars. I definitely believe anyone whos even a little tech savvy underestimates how complicated or confusing technology can be for the average person.
by rimeice | 2025-08-30 14:21:15+00:00
I understand the spray and pray sentiment, but I cannot recommend enough hustling connections at the companies you’re targeting. Channel your inner SDR and stalk the company, the people you’d work with and the best guess at who would be your boss. Clearly don’t be creepy, but connecting on LinkedIn, mentioning you’ve applied, generally seeing what these people are up to is 100% free and you might even spot an event they’re attending that you could “bump in to them”. It’s so hard for someone not to do some sort of follow up if you’ve met them face to face and had a pleasant conversation such as recommending the hiring manager follow up with you etc. Having a direct connection means you can also prod someone every couple of weeks if you haven’t heard anything from your initial application. Most of the time people are embarrassed their company is being slow on processing good applicants. It’s hard but it really makes you stand out from the pure spray and prayers.
by sgbeal | 2025-08-30 14:21:18+00:00
> You can run the DLL in a "shim" subprocess that proxies function calls over IPC.

That doesn't address the need of some DLLs to malloc() resources in the context of the applications linking to them.

This problem _cannot_ be solved _generically_. Any solutions are extremely API-specific and impose restrictions on their users (the linking applications) which, if violated, will lead to Undefined Behavior.

Edit: as an example of cases which must bind resources in the application's context: see the Classloading in C++ paper at <https://wanderinghorse.net/computing/papers/index.html#class...> (disclosure: i wrote that article).
by vasco | 2025-08-30 14:21:31+00:00
> So, is pile-of-if-statements the best we can do for business software?

I'm not sure if that's anywhere in the rating of quality of business software. Things that matter:

1. How fast can I or someone else change it next time to fulfill the next requirements?

2. How often does it fail?

3. How much money does the code save or generate by existing.

Good architecture can affect 1 and 2 in some circumstances but not every time and most likely not forever at the rate people are starting to produce LLM garbage code. At some point we'll just compile English directly into bytecode and so architecture will matter even less. And obviously #3 matters by far the most.

It's obviously a shame for whoever appreciates the actual art / craft of building software, but that isn't really a thing that matters in business software anyway, at least for the people paying our salaries (or to the users of the software).
by Der_Einzige | 2025-08-30 14:21:49+00:00
I have never met anyone who’s ever actually read Nietzsche’s books except hardcore philosophy majors.

Any 14 year old who’s even opened up the first few pages and read them is way ahead of the average person complaining about nietzsche on the internet. You almost certainly would use radically incorrect terms to describe him, like calling him a “Nihilist”
by 9rx | 2025-08-30 14:21:53+00:00
> eventually the code you're writing is probably going to change

Ideally your units/integrations will never change. If they do change, that means the users of your code will face breakage and that's not good citizenry. Life is messy and sometimes you have little choice, but such changes should be as rare as possible.

What is actually likely to change is the little helper functions you create to support the units, like said bespoke sort function. This is where testing can quickly make code fragile and is ultimately unnecessary. If the sort function is more useful than just a helper then you will move it out into its own library and, like before, the sort function will become the entire program and thus the full integration.
by massung | 2025-08-30 14:21:55+00:00
First, this is great information in an area I know very little about.

But I’m curious - from your experience - how do you know the OP isn’t pretending in order to learn about new avenues to block or attack or to track down people who are trying to circumvent?

I don’t mean that as a “be careful”. You’re the expert compared to me and for all I know these are unblockable. Or maybe those doing the blocking would already know about them? So I’m interested in just understanding more.
by skeltoac | 2025-08-30 14:23:15+00:00
> When I started this blog – 17 years ago! – I installed WordPress’s analytics plugin

I wrote that plugin and the backend service. That wasn’t my original idea. It started as something else: a plugin for adding your blog to a traffic ranking site called Blogs of the Day. It didn’t focus on analytics for bloggers, it published lists of blogs ranked by traffic. It was meant to help readers find interesting blogs. It was good until it got gamed by low-quality content with iframes and scripts. Automattic bought it and hired me and then I wrote the Stats plugin.

I agree with the author. But this is just an attitude about personal publishing, not a fact. It’s also fine to hold the opposite attitude and to seek validation through data, and even to adapt oneself accordingly.

There is a hierarchy of informative audience reactions to a blog. A page view is an extremely weak signal carrying very little information. Likes and other emoji reactions are slightly more informative. Comments are even more. If you aren’t getting comments and likes on your personal blog, maybe the page views are enough validation for you.

I don’t know, I just don’t care for my own personal blogging anymore. When I did, I was probably seeking human connection out of loneliness. Before blog analytics existed, I made friends through blog comments.

Analytics didn’t result in social connections but it did tickle the reward function. That’s why it exists.
by sleepyguy | 2025-08-30 14:23:32+00:00
>Usually taxes are percentage of the value of the import. Where do you get those 250$

If the sending country doesn't collect customs duties for the US, then the US will place a flat fee of $250 on the item regardless of its value.

>From EU it never made sense to buy anything from small US business, with the absurd shipping costs and VAT.

Perhaps in your case, but some products are specialized or of much higher quality than can be found in the USA.
by stavros | 2025-08-30 14:23:40+00:00
I think for this one you should do absolute, rather than relative, increase. The first place went from 9 to 36 whereas second went from 1 to 59, the number of comments they wrote without ChatGPT hitting an emdash shouldn't be relevant, I think.

It does need some normalization for people who post very few comments, but it feels more fair this way.
by Swizec | 2025-08-30 14:23:45+00:00
> So, is pile-of-if-statements the best we can do for business software?

You’ll enjoy the Big Ball of Mud paper[1].

Real world systems are prone to decay. You first of all start with a big ball of mud because you’re building a system before you know what you want. Then as parts of the system grow up, you improve the design. Then things change again and the beautiful abstraction breaks down.

Production software is always changing. That’s the beauty of it. Your job is to support this with a mix of domain modeling, good enough abstraction, and constructive destruction. Like a city that grows from a village.

[1] https://laputan.org/mud/mud.html

[2] my recap (but the paper is very approachable, if long) https://swizec.com/blog/big-ball-of-mud-the-worlds-most-popu...
by Waterluvian | 2025-08-30 14:23:50+00:00
I think if we could point to a specific pivotal moment, it was when tariffs were first announced and Trudeau came on TV and discussed the difficult times ahead, the relationship as we knew it being over, and the announcement of counter tariffs and other plans. Then the Premiers announced things like removing American alcohol from shelves (Jack Daniel’s said this week that Canadian sales fell 62%), and shutting down various historical courtesies. For me at least that’s the moment it went from confusion, anger, and frustration to coordinated effort to take a defensive stance against the new aggressor nation.

The petty child-like name calling from the American president was mostly just an evocation of “I’m embarrassed for you.”