MurphyA/hacker-news huggingface dataset:
by jszymborski | 2026-01-04 15:43:58+00:00
I remember those times, and it was a lot of fun, but there's really nothing stopping you from running a LAMP stack today, writing PHP without frameworks and with manual SQL calls.

In fact, it's a lot more fun for me to approach this today. Modern PHP is a joy. MariaSQL is very much MySQL (and switching to Postgres isn't exactly a bump in complexity). It's way easier to write code that won't get injected.

If you want to slice your designs in Photoshop (ehem, the real OGs used Fireworks) go ahead and use Dreamweaver, go ahead. That said, HTML5 makes not having to use tables for layout easy, not more complex and VS Code has all the good parts of Dreamweaver (trust me, you don't need or want the WYSIWG... if you must, just use inspect elements and move the changes over to the HTML file).

I guess all this is to say that web dev is simpler, not more complex for solo devs today. There exists more complicated tooling, but if you're solo-dev'ing something for fun, skip it!

EDIT: Also, phpMyAdmin was fun to use but also the best way to get your box popped. Today, something like DBeaver suits me just fine.
by eatonphil | 2026-01-04 15:44:19+00:00
Hey folks, we're doing the next reading in the Software Internals Book Club. This is a long book so we'll cover it in three chunks with breaks in between. There are over 2,500 members in the club mailing list overall and typically 300-800 join any given book reading. It's all asynchronous over email. Different people kick off discussion for each chapter which makes it more fun and more sustainable to run. Hope to see you there!
by fc417fc802 | 2026-01-04 15:45:04+00:00
> It doesn't require an ADT feature and does not require the programmer to specify a type for the possible error value.

I don't think that really matters? Result is "A or error" whereas optional is "A or nil".

Admittedly my wording was sloppy. It's technically a subset of the pattern when taken literally. But there's a very strong convention for the error type in C so at least personally I don't find the restriction off putting.

To me the issue is the name clash. This is most definitely not the "optional" pattern. I actually prefer C++'s "expected" over "result" as far as name clarity goes. "Maybe" would presumably also work.

At the end of the day it's all a non-issue thanks to the syntax. I might not agree with what you expressed but I also realize a name that only shows up in the docs isn't going to pose a problem in practice. Probably more than half the languages out there confuse or otherwise subtly screw up remainder, modulus, and a few closely related mathematical concepts but that doesn't get in the way of doing things.
by wavemode | 2026-01-04 15:45:15+00:00
"comments are not for extended discussion" is one of the biggest own goals of SO product development. Like, they had a feature that people were engaging with actively, and the discussions were adding value and additional context to posts, and they decided "yeah, let's kill this".

The people who run SO have some sort of control-freak complex. If there's anything I've learned from the SO saga, it is that oftentimes just letting a community do what it wants (within reasonable boundaries, of course) leads to a better and more successful product than actively trying to steer things in a certain direction.
by no_wizard | 2026-01-04 15:45:29+00:00
Anecdotally I also noticed a shift in shoe buying among my peer group (25-39 year olds) in that they take foot health and comfort more seriously and do more research on that front.

My podiatrist has seen a huge uptick in younger patients since 2022. Generally he’s surprised at the age influx is mostly younger.

He only sells 3 brands of shoe depending on fit, need, size etc. Brooks, Hoka, and New Balance. These were traditionally seen as “older persons” shoe brands, especially Brooks.

Now they’re everywhere
by lukan | 2026-01-04 15:45:47+00:00
Just curious, you advice against "what" comments?

"assume your reader has total knowledge of programming"

Because if I know my fellow programmers have like me not a total knowledge of programming, what comments before footguns seem useful to me.

Or when there was a hack that is not obvious.

To me it mostly is not a question of taste, but context. Who will read the code?
by matsemann | 2026-01-04 15:45:54+00:00
It's not about if it's "worthy of being asked", but mainly that many of us doubt the stories presented here without evidence. Time and time again examples are asked for in HN discussions about SO, but they're never presented.

One other thing often missed is that people answer these questions on their spare time to be nice. A closed question wouldn't necessarily have gotten any good answers anyways. And if you've ever taken part in moderating the review queue, you would've seen the insane amount of low-quality questions flowing in. I saw probably ten variants of "how to center my div" daily being closed as duplicates. The asker might be miffed about getting their question closed (but with a link to a solution..), but if you want to actually get answers to the high quality questions, the noise has to be filtered somehow.

Of course, SO is a bad fit for helping beginners figure out their syntax errors or how to apply a general solution to their specific issue. And you may not like SO for it, but to not want to be a site for that is their prerogative.
by defanor | 2026-01-04 15:46:13+00:00
> security under a hostile setting

Yes, but security usually includes availability, and I mentioned a setting with service blocking above. Like that by a government.

> (Centralization itself is a red herring. One may as well claim that PGP is centralized, given that there’s only one prominent keyserver still limping around the Internet.)

How is it a red herring?

> For messaging/secure communication, use Signal. It’s open source.

From my point of view, it is complicated by Signal being blocked here (and it being centralized helped to establish such blocking easily), likely the phone number verification won't work here, it is not available without a phone, and it is not available from F-Droid repositories on top of that. Currently money transfers are also complicated, so finding some foreign service that would help to circumvent phone number verification is also complicated, and not something I would normally do even without that. All this Internet blocking is a new development here, but such availability issues due to centralization were anticipated for a long time, and are a major motivation behind federated or distributed systems. Some mail servers are also being blocked, but generally mail still works, and less of a pain to use.

> For file encryption, use age. It’s open source and has multiple mature implementations by well-regarded cryptographic engineers.

> For signing, use minisign, or Sigstore, or even ssh signing. All are open source.

These I find to be okay. Having to install them in addition to GnuPG that is usually already available, but that is to be expected; they are available at least from Debian repositories, so not something to complain about when considering alternatives. Likewise with the key sharing: not getting to reuse OpenPGP's PKI, and will have to replace that somehow, but it is not like it is used widely and consistently anyway, so perhaps not much of a loss in practice. Likewise with familiarity of the users: I would expect a little more friction with such tools, compared to GnuPG, but not much more. And I don't see actual usage downsides apart from those. Though the benefits also seem a bit uncertain, but generally that sounds like a switch that makes sense to consider.
by andyjohnson0 | 2026-01-04 15:46:27+00:00
I once worked for about a decade with a body of server-side C code that was written like this. Almost every data structure was either statically allocated at startup or on the stack. I inherited the codebase and kept the original style, once I'd got my head around it.

Positives were that it made the code very easy to reason about, and my impression was that it made it reliable - ownership of data was mostly obvious, and it was hard to (for example) mistakenly use a data structure after it had been free'd. Memory usage under load was very predictable.

Downsides were that data structures (such as string buffers) had to be sized for the max use-case, and code changes had to be hammered into a basically hierarchical data model. It was also hard to incorporate third-party library code - leading to it having its own http and smtp handling, which wasn't great. Some of that might be a consequence of the choice of base language though.
by davedigerati | 2026-01-04 15:47:31+00:00
AGI via LLMs: No. The AI will need a natural understanding of the real world (the physics you and I live within) and ability to self-modify it's training (ie learn), so we're working on hybrid AI architectures which may include LLMs, but not rely on them. And imho Yes we are solidly on track to AGI <5 yrs 8)
by pixl97 | 2026-01-04 15:47:54+00:00
This isn’t security...

Don't confuse attempting to make AI misclassify an image as a security measure.

And yes, this is snake oil and the AI wins every time.

At the end of the day a human has to be able to interpret the image, and I'd add another constraint of not thinking it looks ugly. This puts a very hard floor on what a poisoner can put in an image before the human gets sick. In a rapid turn around GAN you hit that noise floor really quickly.
by jlarocco | 2026-01-04 15:48:55+00:00
I'm not switching to Wayland until my window manager supports it. It doesn't look like anybody has time to do the work, so I'll probably switch, grudgingly, to XWayland whenever X gets removed from Debian.

I feel like the biggest issue for Wayland is the long tail of people using alternative WMs. A lot of those projects don't have manpower to do what amounts to a complete rewrite.

I honestly don't have a preference between Wayland and X, but I feel very strongly about keeping my current WM. XWayland supposedly works, but I'm not in any hurry to add an extra piece of software and extra layer of configuration for something I already have working exactly the way I want. If Wayland offered some amazing advantages over X, it might be different, but I haven't seen anything to win me over.
by tetha | 2026-01-04 15:49:08+00:00
> sorry, i’ve basically done an unprompted code review. i feel like a bit of a dick now.

That's all fine.

Just note that this was one of the easiest examples I could find. For example, for reasons out of my control, the individual network configuration on a linux host is positively nuts. The decision whether to deploy routes, static DNS servers and such depends on 3-5 facts about the datacenter and the provider it's on.

In such a case, it is more maintainable to separate the facts about the provider, or the thing we are looking at (e.g. "Does this provider allow us to configure routes in their DHCP server?", from the computation/decision making ("Can the system rely on the routes from the DHCP servers?"), and all of that from the actual action based off of the decision ("Deploy routes statically if DHCP provided routes are not correct").
by no_wizard | 2026-01-04 15:50:28+00:00
It’s because business demand speed and shipping over other concerns.

We had to fight hard for proper quality controls in the face of the LLM coding assistance boom where I work. These are great tools but they have limits and can lead to poor engineering hygiene quite quickly.

It took a major issue being attributed to having too much trust in these tools before we were able to enforce better hygiene with them
by ben_w | 2026-01-04 15:50:34+00:00
> Murder, theft, robbery

Have inconsistent definitions over time. Hence my example of legalised murder in post-Norman conquest England, and cultures without personal property where theft is a nonsensical concept.

Also, just ask around left- and right-coded answers to "is taxation theft?", or in the US specifically "is abortion murder?"

"Render unto Caesar what is Caesar's"

And, pertinently to this thread, when is a military action murder vs. not murder? There's lawyers looking at the videos of Venezuelan boats being destroyed saying "the US murdered those people". Is one of the sides here, pro or con it doesn't matter which, a victim of "severe brain washing"?
by hamdingers | 2026-01-04 15:50:42+00:00
> and the other side just pointed at the book

One of the most infuriating categories of engineers to work with is the one who's always citing books in code review. It's effectively effort amplification as a defense mechanism, now instead of having a discussion with you I have to go read a book first. No thanks.

I do not give a shit that this practice is in a book written by some well respected whoever, if you can't explain why you think it applies here then I'm not going to approve your PR.
by noduerme | 2026-01-04 15:50:47+00:00
>>Starting a new project once felt insurmountable. Now, it feels realistic again.

Honestly, this does not give me confidence in anything else you said. If you can't spin up a new project on your own in a few minutes, you may not be equipped to deal with or debug whatever AI spins up for you.

>>When AI generates code, I know when it’s good and when it’s not. I’v seen the good and the bad, and I can iterate from there. Even with refinement and back-and-forth prompting, I’m easily 10x more productive

Minus a baseline, it's hard to tell what this means. 10x nothing is nothing. How am I supposed to know what 1x is for you, is there a 1x site I can look at to understand what 10x would mean? My overall feeling prior to reading this was "I should hire this guy", and after reading it was "eat a dick." Moreover, if you have skill which you feel is augmented by these tools, then you may want to lean more heavily on it if you think that the tool itself makes everyone capable of writing amazing code... it sounds like you will be unemployed soon if not already.
by amadeuspagel | 2026-01-04 15:51:15+00:00
> Germany has been on high alert for sabotage activities directed at its infrastructure, including from foreign actors such as Russia.

This sentence kind of implies that foreign actors committed the attack, but a leftist group took credit for it[1].

[1]: https://www.rbb24.de/panorama/beitrag/2026/01/berlin-suedwes...
by toss1 | 2026-01-04 15:51:22+00:00
>>Or maybe it's like driving: we don't worry about ... all you do is specify...

YES, and in motorsports where all kinds of driver-assistance have become available in recent decades, from anti-lock brakes to traction control and obviously far more now, the rulemakers work hard to distinguish exactly what constitutes a necessary safety advance to allow, and what removes too much of the component of driver skill.

Take away too many elements of driver skill and it becomes an entirely different sport, autonomous car racing, and indeed there are starting to be such races, e.g.,[0].

For the question of using AI vs skill, maybe the best analogy is lifting weights — if the goal is to lift the most iron, bring a forklift, but if the goal is to exercise your muscles to stimulate strength gain, bring your gym clothes and chalk.

Except with writing, the 'AI forklifts' often fail to lift all the iron, and if you don't watch closely, they go lift the cars in the parking lot instead, as in the article, failing to make the right connections, being confident when the author would be tentative and vice-versa, and generally failing to actually work with any real understanding.

[0] https://www.smithsonianmag.com/smart-news/worlds-first-race-...
by dzonga | 2026-01-04 15:51:24+00:00
> A small number of cities, starting with San Francisco, Paris, London, and New York, are where almost everyone working and thinking about artificial intelligence is based. Go to these cities, or the closest approximation of them available to you, not just to work on these problems but to understand what possibilities may come your way.

The problem with this - it leads to group think - you end up being forced to conform.

There's a reason Warren Buffet left NY and went to Omaha.

likewise the best things usually come from the margins - the apple pc didn't come from people working at the best MicroPC companies but hipsters tinkering.
by kstrauser | 2026-01-04 15:51:26+00:00
I’d rather go barefoot than count on Ecco. They feel so comfortable up until the sole spontaneously falls apart some random Thursday. I posted pictures of my crummy Eccos online after they refused to fix them under warranty. People started finding the pictures after googling “Ecco shoes suck” and “Ecco shoes fall apart”, and some started sending me their own pictures. It turned into a whole thing. During the 2010s, I was getting about 250,000 hits a year on my gallery of their crummy shoes.

There are better quality brands than Nike. Ecco isn’t one of them, and unless things have radically improved there, their customer service is horrid.

https://web.archive.org/web/20211208094307/https://honeypot....
by iamcalledrob | 2026-01-04 15:51:30+00:00
The reverse -- building for iOS in Kotlin -- is an interesting option that on the surface appears to be a best of both worlds.

You get (1) access to JVM APIs as normal on Android, and (2) Fairly full-featured interop with ObjC, Swift and C APIs elsewhere, and (3) A pleasant language with excellent IDE support in IntelliJ.

The `expect fun` / `actual fun` stubbing for different platforms also works in a fairly low-drama way. You can also share UI with Compose Multiplatform (less mature), or just write native views.

The downside (of course) is that non-JVM targets like iOS can't use the JVM ecosystem, and most of the Kotlin ecosystem assumes Kotlin/JVM. This is slowly changing though, and isn't a structural flaw.

Also, you're going to end up with Gradle in your toolchain, which will torture your poor soul.
by kennywinker | 2026-01-04 15:51:43+00:00
Their military budget is wayyy up due to the war, so if you’re ignoring recent giving you should also be ignoring recent spending.

In 2020 their military budget was ~21b. In 2020 the US gave 3.8b - so 21%, or 1/5. My number was based on 2024 budget and spending, which is why i said 1/4, but you’re probably right that pre-war numbers are more accurate if we’re talking about their long term spending trends.

Sources:

Israel military budget: https://data.worldbank.org/indicator/MS.MIL.XPND.CD?end=2020...

US money to israel, page 6: https://www.congress.gov/crs_external_products/RL/PDF/RL3322...
by CyMonk | 2026-01-04 15:51:58+00:00
> Casey, meanwhile, has worked on a low-level game development video series for a decade and... never actually shipped a game?

He worked with Jonathan Blow on "The Witness"[0].

As the developer of the "Bink 2" video codec[1] and the animation tool "Granny 3d"[2], his code powers thousands of games.

[0] https://store.steampowered.com/app/210970/The_Witness/,
[1] https://www.radgametools.com/bnkmain.htm,
[2] https://www.radgametools.com/granny.html
by dagmx | 2026-01-04 15:52:33+00:00
I think you’re significantly retconning what happened.

Mesa did discuss EGL but felt it wasn’t the right choice. https://mesa-dev.freedesktop.narkive.com/qq4iQ7RR/egl-stream...

In much the same way that NVIDIA may have felt that EGL was the better choice.

However none of your description of the way things are explains why NVIDIA couldn’t have made their own libgbm that matched the symbols of mesa and worked on standardizing the api by de facto.
by cman1444 | 2026-01-04 15:52:59+00:00
Maybe you're right, but I view it more as: China can now be confident that the US doesn't care much at all about the sovereignty of weaker nations or coming to the aid of allies. "Might makes right", and if China asserts itself with strength (as in a full blockade/invasion instead of a few envoys present) Trump will most likely back off.
by simianparrot | 2026-01-04 15:53:23+00:00
I’m a Norwegian, I don’t ascribe to any one political leaning. But I observe the failings of the EU and European countries from within and know where this path leads, I see it every day. Call me any <label> you prefer I don’t care and don’t identify as any. I judge events and actions individually based on my own life experience and foundational morality, which also means I am not shackled by having to like everything a leader does when I like some things.

This was a good thing. It gets Venezuela out of Russia and China’s grasp, removes a cruel dictator, and puts the country’s resources to better use for both its people and the West. And as many problems as I have with many facets of the west it sure as hell beats whatever shitholes Russia and China are cooking — they are incompatible with the things I value, and yes I have been to the latter and will never return.
by TZubiri | 2026-01-04 15:53:44+00:00
The maybe is the strongest part of this article.

In my early days I read a lot of "you should" "this is wrong". But code is an expressive medium, you can do things one way, or do it the other, you can write "amountOfEmployees" or you can write "ne" with an "#amount of employees" comment, either way is absolutely fine and you can use whichever depending on your priorities, tradeoffs or even your mood.

Also I used to obsess over code, (and there's a lot of material that obsesses about code), but after you become profficient at it, there's a cap on the returns of investing time into your codebase, and you start to focus on the product itself. There's not much difference between a good codebase and a marvelously polished codebase, so you might as well use the extra focuse on going from a bad UX to a neutral UX or whatever improvement you can make to the product.
by diedyesterday | 2026-01-04 15:53:49+00:00
You obviously seem to have no idea how mafia-style dictatorships like those of Iran, Russian and Venezuela work. No fault of you. Most people don't.

And even their own citizens come to the realization after a long time living under them; partly because they get caught in the constant propaganda campaign which is one hallmark of these regimes. They always live in the propaganda mode.
by senfiaj | 2026-01-04 15:54:06+00:00
Yes, It's called ShadowChicken, and it has negative implications for debuggability. To make debugging tolerable, JavaScriptCore added an (intentionally silly) mechanism called ShadowChicken: a shadow stack used by Web Inspector that can show a finite number of tail-deleted frames (they mention 128). It's has some tradeoff.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... .

https://webkit.org/blog/6240/ecmascript-6-proper-tail-calls-...

V8 team decided that it's not worth it, since proper stack traces (such as Error.stack) are essential for some libraries, such as Sentry (!). Removing some stack trace info can break some code. Also imagine you have missing info from the error stack trace in production code running on NodeJS, that's not good. If you need TCO, you can compile that code in WASM. V8 does TCO in WASM.
by Yokohiii | 2026-01-04 15:54:22+00:00
The article glorifies neurodiversity as an wanted trait, which is perfectly suited to build perfect software. There are no downsides, you just have to sooth neurodivergent people somehow with some dim cozy lighting and silence.

I wish some programmers would be more stubborn exploring a problem space. But being randomly obsessed about a detail can also be a distraction. Loosing track of time during an obsessed phase isn't always helpful. All this is also often a easy way to ignore responsibilities of life.

I suggest that all nerodivergent peers go on high alert if they encounter business people and wanna be hustlers that pretend to care.
by graemep | 2026-01-04 15:54:38+00:00
> it goes to show that if you have a well-known brand you can keep milking it for a long time before the market turns against you

Which means it is always more profitable in the short term to cut costs by reducing quality but keeping the high prices.

It also means it is often more profitable even taking the long term into account because you are better off getting the money sooner (and being able to reinvest it elsewhere) - "the time value of money".