MurphyA/hacker-news huggingface dataset:
by Joeboy | 2026-01-04 13:19:46+00:00
As a long-time Linux user I've also felt an incongruity between my own experiences with Wayland and the recent rush of "year of the Linux desktop" posts. To be fair, I think the motivation is at least as much about modern Windows' unsuitability for prime time rather as Linux's suitability. I haven't used Windows for a long time so I can't say how fair that is, but I definitely see people questioning 2026 Windows' readiness for prime time.

For me, Wayland seems to work OK right now, but only since the very latest Ubuntu release. I'm hoping at this point we can stop switching to exciting new audio / graphics / init systems for a while, but I might be naive.

Edit: I guess replacing coreutils is Ubuntu's latest effort to keep things spicy, but I haven't seen any issues with that yet.
by mjlee | 2026-01-04 13:20:39+00:00
In the UK a fish and chips shop is sometimes called a "chip shop". The New York Times helpfully translated this in a recent article:

> “I’ve seen lots of students my age struggling, trying to get work and even the basic necessities,” Agastya Dhar, 17, said. Mr. Dhar has a part-time job in a French fry restaurant, but said even getting that job was tough.

French fry restaurant is now my preferred term for the local chippy. For those outside the UK chip shops normally have no seating, or maybe a couple of uncomfortable, uninviting, flourescent lit plastic benches and tables, normally bolted down, maybe sprayed clean at the end of the night.

https://www.nytimes.com/2025/11/26/world/europe/uk-budget-yo...
by thunky | 2026-01-04 13:21:30+00:00
> rendering homework ineffective

Homework isn't any more ineffective imo. The way we educate and grade is.

Imagine if people went to school to learn something rather than to "level up". And you earned a job based on what you know, or what you can do, rather than what degree you banked.

Then maybe you would want to do the homework.

If gen AI helps us flip the current system on it's head that would be a good thing.
by voodooEntity | 2026-01-04 13:21:36+00:00
So im using linux desktops for decades now, and bout 2 years ago i finally ditched my for gaming only windows install to go onto linux only setups for gaming also.

I mean, it works alot better than it did before, still i wouldn't recommend it for someone who isn't ready to tinker in order to make stuff work.

The point why i mention this is, while most normal desktop/coding stuff works okay with wayland, as soon i try any gaming its just a sh*show. From stuff that doesn't even start (but works when i run on x) to heavyly increased performance demands from games that work a lot smoother on x.

While i have no personal relation to any of both, and i couldn't technically care less which of them to use - if you are into gaming, at least in my experience, x is rn still the more stable solution.
by Tanoc | 2026-01-04 13:21:48+00:00
The administration doesn't care about whether their motives appear palatable or not. Every decision is based on an ever increasing cascade of consequences they can dam up and then release on other people so said administration can go do something else during the cleanup. Aside from one person who's a massive narcissist they don't give a damn about how they're perceived. They only cared when other people had the authority to grand them authority, but now that they are the authority they'll never give it away. And when you don't have to worry about losing your authority you don't have to care about what people think of you. This is why the weakest monarchs were the ones with debts, and the strongest ones were those with centralized militaries.
by mattacular | 2026-01-04 13:21:49+00:00
Explain "why not what" is good general advice. My further advice for comments is: even bad comments can be useful (unless they're from LLM output maybe...) therefore when in doubt, write a comment. Write it in your own words.

Had to add the last sentence for the circa 2020s developer experience. LLM comments are almost never useful since they're supposed to convey meaningful information to another human coder, anything your human brain can think of will probably be more helpful context.
by tamani_karim | 2026-01-04 13:22:20+00:00
Designing a database schema is often one of the slowest parts of starting a new backend project. You either spend time writing SQL by hand or carefully crafting Prisma models before you can even write your first endpoint.

In this article, I’ll show you a faster workflow using Prisma and StackRender that lets you go from an empty project to a working backend in minutes.
by embedding-shape | 2026-01-04 13:22:26+00:00
> Obviously they'd have to, but I'm curious about whether they'd do it on the first day, or whether they'd sort of wonder around half-understanding "is this war?"

It'll be a couple of days or weeks before actual realization happen, and it won't be because of the politicians, it'll be because of the massive demonstrations, protests and general strikes, that finally the governments will understand that something has to be done.

> I wonder how little people understand in general, whether war is so foreign to them that they can't react appropriately.

I think most of us got used to the idea that most others don't actually want war, and there is a lot of posturing going on. Wrongly, this was assumed of the current US administration too, which luckily changed really fast because of yesterday and previous actions.

Europe has a long history of devastating wars, the US not so much, and I think Europe tries much harder to avoid violent conflicts than the US (duh), so when you have an ally knocking on your door, presenting threats, Europe kind of defaults to thinking it's posturing, but if boots actually land on Greenland (outside of the existing base), I think the winds will change relatively quickly.
by charcircuit | 2026-01-04 13:22:41+00:00
>leaving aside the fact that "proprietary" has a very well defined meaning in this context

Yes, it does and it is different the the well defined meaning when talking in regards to the software itself. OpenGL is an open API, but the source code for an implementation isn't necessarily open.

>Nvidia was not willing to implement an API for their drivers

They couldn't because this API is a part of Mesa itself. As I mentioned programs link to a Mesa library directly.

>since Mesa is not an actual GPU vendor

They are a driver vendor.

>the other vendors (Intel and AMD at this point), which have already implemented GBM

Support was added to Mesa itself and not to the driver's by those companies. The proprietary, now deprecated, AMD kernel module still doesn't support GBM.

>should switch too in the name of this

I think it is beneficial for standards to be implemented by multiple vendors, so I think they should implement it at least.

>How can you call all of that a mischaracterization?

What people think as Nvidia needing to implement an API is actually an ask for Nvidia to make a Mesa API work.

From my perception essentially the ask was that Nvidia needed to open source the kernel driver like AMD did and then eventually a nvidia gbm backend would be built into Mesa for it. For obvious reasons this was never going to happen. The fact that no agreeable solution was figured out in about a decade, and then Nvidia has to code up that solution for the Mesa project is a failure on Mesa's end. A lot of user pain happened due due to them not willing to work together with proprietary software and focusing solely on supporting open source drivers.
by aspenmartin | 2026-01-04 13:22:47+00:00
Your experience mirrors mine as well. I will say since I’ve got both data science and engineering workflows, data science is where I’ve been accelerated the most because opus can do ad hoc scripts and e.g. streamlit websites and data munging very well so all of the things that take time before decisioning are much faster.

For engineering, its extremely easy to not only acquire tech debt but to basically run yourself into the ground when opus cannot do a task but doesn’t know it cannot do a task.

BUT: what I will say is to me and to others the trajectory has been really impressive over the last 1.5 years, so I don’t view the optimism of “we’re nearly there!” As being kind of wishful or magical thinking. I can definitely believe by the end of 2026 we’ll have agents that break through the walls that it still can’t climb over as of today just based on the rate of improvements we’ve seen so far and the knowledge that we still have a lot of headroom just with current stack.
by embedding-shape | 2026-01-04 13:23:38+00:00
> so likely the EU would at first think this is not their concern.

No, the EU might not contain the top-of-the-top when it comes to people aware of what's going on, but not even EU is so dimwitted to brush aside an invasion of Greenland as "not our concern".

Not to mention that Greenland is an autonomous part of Denmark, and Denmark is very much a part of the EU.
by hagbard_c | 2026-01-04 13:24:03+00:00
It is the 'democrat' looney fringe, not the MAGA looney fringe which labels everyone a nazi so I suspect that someone who labels the mentioned individuals as such is more likely to be part of the former fringe than of the latter. Had they been part of the latter the label would have been 'commie' or something along those lines.
by a_r41 | 2026-01-04 13:24:04+00:00
I've been working in the novel view synthesis domain since 2019 and I would recommend starting with "nerfstudio".
The documentation does a good job of explaining all the components involved (from dataset to final learned representation), the code is readable and it's relatively simple to set up and run. I think it's a nice place to start from before diving deeper into the latest that is going on in the 3D space.
by fauigerzigerk | 2026-01-04 13:24:15+00:00
I agree that null pointers have never been this huge problem compared to many others.

But I think it is rather convenient to formally specify which pointers can be null and which ones can not.

How do I tell the users of my library wether they can pass null into my API? How do I stop people from putting "just in case" null checks into code that doesn't need it, obscuring the logic of the program and burdening callers with yet more error handling?

In my opinion, the "modern" approach of using some sort of Maybe type is just far more productive.
by vladvasiliu | 2026-01-04 13:24:35+00:00
How do you use them?

I used to daily drive KDE up until shortly after the 4 switch, when I moved to Mac. I've moved back to Linux starting in 2018 but went with i3. I installed KDE around Christmas to try it, and while I'm mostly impressed with the general polish (except that firefox doesn't react the same way as other windows to clicking on the frame), I have a hard time figuring out what activities are and how they're different from multiple workspaces.

Speaking of workspaces, is there no way to only have it show a small rectangle per space in the taskbar instead of a big wide one (I'm using multiple screens)? That's just a useless waste of space.
by embedding-shape | 2026-01-04 13:26:04+00:00
Yet it doesn't actually solve the problem. Whatever technical implementation you can think of, can somehow be misused so you have AI pictures labeled as "Genuinely not AI".

If you do come up with a 100% fool-proof implementation of this, you'll be able to get a lot of money for it, so do give it a try! Many have tried before you, yet it always turns out to be short of impossible. But who knows, maybe there is a way...
by noduerme | 2026-01-04 13:26:13+00:00
Hhhhmm. Ok. So I invented this solution in 2009 at what you might call a "peak mental moment", by a pool in Palm Springs, CA, after about 6 hours of writing on napkins. I'm not a mathematician. I don't think I'm even a great programmer, since there are probably much better ways of solving the thing I was trying to solve. And also, I'm not sure how I even came up with the reduction; I probably was wrong or made a typo (missing the +1?), and I'm not even certain how I could come up with it again.

2^x & 2^y ...is the & a bitwise operator...???? That would produce a unique ID? That would be very interesting, is that provable?

Primes take too much time.

The thing I was trying to solve was: I had written a bitcoin poker site from scratch, and I wanted to determine whether any players were colluding with each other. There were too many combinations of players on tables to analyze all their hands versus each other rapidly, so I needed to write a nightly cron job that collated their betting patterns 1 vs 1, 1 vs 2, 1 vs 3... any time 2 or 3 or 4 players were at the same table, I wanted to have a unique signature for that combination of players, regardless of which order they sat in at the table or which order they played their hands in. All the data for each player's action was in a SQL table of hand histories, indexed by playerID and tableID, with all the other playerIDs in the hand in a separate table. At the time, at least, I needed a faster way to query that data so that I could get a unique id from a set of playerIDs that would pull just the data from this massive table where all the same players were in a hand, without having to check the primary playerID column for each one. That was the motivation behind it.

It did work. I'm glad you were curious. I think I kept it as the original algorithm, not the reduced version. But I was much smarter 15 years ago... I haven't had an epiphany like that in awhile (mostly have not needed to, unfortunately).
by aspenmartin | 2026-01-04 13:26:45+00:00
That is a pretty good setup and delivery I must say

I think really things will just start shifting as things really do start to get better and step changes of capabilities where “I’m not even going to try to get opus to do X because I know it’s going to suck” moves to “oh wow it’s actually helpful” to “I don’t really even need to be that involved”.

Places where engineering labor is the bottleneck to better output will be where talent migrates towards and places where output is capped regardless of engineering labor are going to be where talent migrates from. I don’t really see this apocalyptic view really accurate at all, I think it’s really going to be cost / output will reduce. It’ll make new markets pop up where it wouldn’t be really possible to justify engineering expense today.
by ExoticPearTree | 2026-01-04 13:27:58+00:00
The US did appoint a representative for Greenland a few weeks ago. It is not inconceiveable that at some point in the future they will let Denmark know that Greeland is a US territory and that’s that.

And realistically, if this happens, in the next 3 years there is nothing anyone can do anything about it.

We live in interesting times.
by StellarScience | 2026-01-04 13:28:03+00:00
Ignoring the git commit message strawman (those can include "what/why the change", not "what/why the code") and the Uncle Bob strawman, the final code block looks fine. But notice:

// translate will replace all instances; only need to run it once

This is a "why".

// Replace all symbols

This is a "what". It's better conveyed by improving the function name rather than by a comment:

String replaceAllSymbols() {

Ultimately this article buttresses conventional wisdom about comments.
by exceptione | 2026-01-04 13:28:21+00:00
> 'Using a LLM' because it is not akin to outsourcing (As I use it).

The things you do with an LLM are precisely what many other IT-firms do when outsourcing to India. Now you might say that this would be bonkers, but that is also why you hear so often that LLM's are the biggest threat to outsourcing instead of software development in general. The feedback cycle with an LLM is much faster.

> I don't see how this is hard for people to grasp?

I think I understand you, and I think you have/had something else in mind when hearing the term outsourcing.
by jarek83 | 2026-01-04 13:28:32+00:00
I think the benefits of either clean code (sepearate methods) and commenting "what" are of different kind:

- clean code one, for me it just reads easier, specific bits of the larger operation are not surrounded with noise coming from other bits like it is in the commenting "what" one. I can focus more on each step, and that can make it easier to spot a bug or to refactor/adjust/extend, as now I'm more like on a given page of Lego set instructions

- the commenting of "what" one - yeah, this obviously makes it quicker (but probably not easier) to see the larger picture. It has benefits, but I believe this helps more hacker/scripter kind of people than programmers
by anthk | 2026-01-04 13:29:01+00:00
GPG, as OpenSSL, are too huge and complex in order to use them on daily basis.

OpenBSD has signifiy, which works fine. But I wouldn't mind something like a cleaned up age(1) but without the mentioned issues.

GNU tends to stack features like crazy. It had sense over the limited Unix tools
in the 90's, but nowadays 'ls -F', oksh with completion and the like make them
decent enough while respecting your freedom and not being overfeatured.

LibreSSL did the same over OpenSSL.
by stared | 2026-01-04 13:29:04+00:00
Let me explain my perspective as I do vibe coding for some side projects.
AI (and even if it works correctly) is a thing filling the blanks.
Still, the value depends on how much work you put in.

For recent ones, it is a interactive visualization of StarCraft 2 (https://github.com/stared/sc2-balance-timeline).
Here I could do it myself (and spend way more time than I want to admit on refactoring, so code looks OK-ish), but unlikely I would have enough time to do so. I had the very idea a few years ago, but it was just too much work for a side project. Now I did it - my focus was high-level on WHAT I want to do and constant feedback on how it looks, tweaking it a lot.

Another recent is "a project for one" of a Doom WAD launcher (https://github.com/stared/rusted-doom-launcher). Here I wouldn't be able to do it, as I am not nearly as proficient in Rust, Tauri, WADs, etc. But I wanted to create a tool that makes it easy to to launch custom Doom maps with ease of installing a game on Steam.

In both cases the pattern is the same - I care more on the result itself that its inner workings (OK, for viz I DO care). Yes, it takes away a lot of experience of coding oneself. But it is not something entirely different - people have had the same "why use a framework instead of writing it yourself", "why use Python when you could have used C++", "why visiting StackOverflow when you could have spend 2 days finding solution yourself".

With side projects it is OUR focus on what we value. For someone it is writing low-level machine code by hand, even it it won't be that useful. For some other, making cute visual. For someone else, having an MVP that "just works" to test a business idea.
by embedding-shape | 2026-01-04 13:29:43+00:00
> 56% of Greenlanders answer that they would vote yes to Greenlandic independence if a referendum were held today, 28% would vote no, and 17% do not know what they would vote for.

Bit strong to say "Greelanders want to be independent" when it's only 56%, it's about half the ones surveyed. But more importantly:

> The results show that 85% of Greenlanders do not want to leave the Realm and become part of the United States, while 6% want to leave the Danish Realm and become part of the United States, whereas the remaining 9% are undecided.

Since a common tactic to gain a pretext for an invasion is "These people want to be independent!" I feel like it's important to point out than Greenlanders overwhelmingly don't want to be a part of the US, judging by that same survey you linked.

So if the choice were to be "Be a part of Denmark" or "Be a part of the US", the majority would stick with Denmark.

Also, the survey is from "22nd to 26th of January 2025", pretty much a year ago, with ~500 people answering, and I'm pretty sure the results would look different today, especially since yesterday.
by DarkNova6 | 2026-01-04 13:29:51+00:00
I think this is about 2 problems coming together:

- 1: In C (and relatives), you cannot rule out that any pointer is not-null. Simply due to pointer arithmetic.

- 2: Some values have no default-zero state.

On #2 I found the EG discussions on the Java mailing lists to be fascinating. Think of innocuous types such as "date", where a default value only causes problems. You end up with something like "1970:0:0" or "0:0:0" and it acts like a valid date, but its use is likely unintentional and leads to follow-up issues.

And once you have multi-threading involved, even a simple null-flag becomes a difficult technical challenge to implement under all conditions.
by BoorishBears | 2026-01-04 13:30:12+00:00
Splitting example is way too much indirection, but capturing what the code does in the code itself is a preference for me. In any high level language don't know why the middleground wasn't explored:

var hasSymbol = getSymbol(symbolName) != null
var replacementPending = !alreadyReplaced.contains(symbolName)

if(hasSymbol && replacementPending){
alreadyReplaced.add(symbolName);
stringToReplace = stringToReplace.replace("$" + symbolName, translate(symbolName));
}

Technically this performs worse because you lose short-circuiting, but in performance-sensitive contexts code styling is less a concern anyways. And I also wouldn't rely on short-cutting alone to avoid a really expensive operation or side-effect: at some point someone will fail to notice it.
by MMAFRAZ | 2026-01-04 13:30:43+00:00
Hi HN,

This started as a personal frustration.

Most marketing stacks today are fragmented — separate tools for content, visuals, SEO, landing pages, copy, analysis, and optimization. Each tool solves a narrow problem, but the overall workflow becomes slow and expensive.

So I built Vect AI as a single platform that brings 10+ core marketing tools into one place, including:

Campaign planning and positioning

Landing page analysis and improvement

Copy and content generation

Commercial visual creation

SEO and organic distribution workflows

Funnel and conversion analysis

Brand-consistent output across tools

The goal wasn’t to create another “AI helper,” but to reduce tool sprawl and make marketing execution simpler by centralizing everything into one system.

The product is live, functional, and listed for acquisition on Flippa. I’m sharing this here mainly to discuss the build, trade-offs, and what worked (and didn’t) when consolidating many marketing functions into a single product.

Happy to answer questions about:

Architecture decisions

Why consolidation matters (and where it breaks)

What users actually used vs ignored

Why I decided to list it instead of continuing solo

Flippa listing:
https://flippa.com/12205760-vect-ai-is-an-autonomous-marketi...

—

Posting in the spirit of sharing the build and lessons learned, not promotion.