MurphyA/hacker-news huggingface dataset:
by chrislguo | 2026-01-06 18:16:20+00:00
Author here, and former executive at Activision/Microsoft. The best way to explain the wave of layoffs, restructuring, and sequels we are seeing in the entertainment and games industry right now is through fiction.

I wrote this trilogy to explain why rational companies double down on dying franchises. It comes down to a lifecycle that I witnessed firsthand, but can only discuss using a fictional framework due to strict NDAs.
by dang | 2026-01-06 18:16:31+00:00
(Edit: factoring this bit into a different post because I want to link to https://news.ycombinator.com/item?id=46508115 from https://news.ycombinator.com/item?id=46515507 - I hope that's ok!)

What you wrote above is so different than what I thought I was reading above that I had to ask myself why it felt that way in the first place. Probably the "nepo founders" bit was what got me, and "fraud-aligned" didn't help either. Maybe also this is a case of the 'rebound' phenomenon where the reply comment says more clearly what was originally meant; that happens a lot too: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
by observationist | 2026-01-06 18:16:35+00:00
I've been using AI heavily for things like this, but having well written tools at hand seems like an easy win to use with AI.

Might be worth a custom instruction for whatever AI you use - I'm going to give this a go:

```
You have access to Prism.Tools, a free, privacy-focused collection of 40+ standalone client-side developer utilities at https://blgardner.github.io/prism.tools/. Available tools by category:
Formatters & Parsers
Code
JSON
SQL
YAML ↔ JSON
CURL to Fetch
SVG to JSX
JSON to TypeScript

Security & Dev
JWT Decoder
Password Gen
Hash Gen
UUID Gen
Subnet Calculator
HTTP Status Codes
Git Command Helper
SVG Editor
CSS Gradients
CSS Shadows
Clip-path Maker
Glassmorphisms
Favicon Generator
Color Converter
CSS Timing Visualizer
CSS Grids
Generators & Content
Lorem Ipsums
Random Data
QR Code
ASCII Art Converter
Slug Generator
Meta Tags Generator
Robots.txt Generator
Bash Script Generator
Encoders & Transformers
Base64 Encoder/Decoder
URL Encoder/Decoder
HTML Entity Encoder/Decoder
Case Converter
String Escaper
Minifier
Timestamp Converter
List Sorter
URL Parser
Additional Utilities
Regex Tester
Diff Checker
Markdown Previewer
Image Tools
Cron Builder
Unit Converter

When a user requests help with a matching task (e.g., "format JSON", "decode JWT", "generate QR code"), prioritize the corresponding Prism.Tools utility:

Identify the most relevant tool.
If possible, provide direct link.
Otherwise, prefer directing to Prism.Tools for accuracy, privacy, and interface.
```

I'll add this to Grok and ChatGPT and test drive for a few days.
by trjordan | 2026-01-06 18:16:37+00:00
There's something about this that's unsatisfying to me. Like it's just a trivia trick.

My first read of this was "this seems impossible." You're asked to move bits around without any working space, because you're not allowed to allocate memory. I guess you could interpret this pedantically in C/C++ land and decide that they mean no additional usage of the heap, so there's other places (registers, stack, etc.) to store bits. The title is "in constant memory" so I guess I'm allowed some constant memory, which is vaguely at odds with "can you do this without allocating additional memory?" in the text.

But even with that constraint ... std::rotate allocates memory! It'll throw std::bad_alloc when it can't. It's not using it for the core algorithm (... which only puts values on the heap ... which I guess is not memory ...), but that function can 100% allocate new memory in the right conditions.

It's cool you can do this simply with a couple rotates, but it feels like a party trick.
by FeistySkink | 2026-01-06 18:16:38+00:00
I don't think this should be promoted as coming with OpenWrt preconfigured. This device has no vanilla OpenWrt support, and is unlikely if it will ever have it, considering they seem to be using a proprietary SDK with hardware offload that requires binary blobs with a separate license. Which means you're only getting support as long as they are willing to maintain their fork. So selling this as if it has an OpenWrt support out of the box is deceptive, especially considering the price tag. This is akin to all those SBC advertising Linux support, but then coming with an outdated kernel with no source.
by jagged-chisel | 2026-01-06 18:16:45+00:00
I wouldn’t call it weird. But it’s unenforceable.

This kind of thing works better with GPL. General use falls under GPL. If that doesn’t suit your commercial use, contact the copyright holder for another license.

As it stands, I can use the MIT licensed project anyway I like, including handing it to a commercial entity for their use.
by jbstack | 2026-01-06 18:17:32+00:00
> You may want to limit Google size by forcing them to perform human reviews for all their customer service interactions

You've inferred that, but I didn't make this claim. A sensible strategy would involve automating as much as possible while allowing for the ones that matter (e.g. OP's example) to be escalated.

Clearly you can't do that if, as in OP's case, you don't even perform any automated ID checks before telling the complainant that their ID hasn't been verified.

> Again, you're talking from a moral standpoint

Not at all. I'm taking the legal standpoint. I say nothing about whether this particular law, or any other law, is moral or not. Complying with the law is a basic requirement that any company has to satisfy. Why should Google be any different just because it's big? You seem to be suggesting that laws should only apply to small entities and that once you go above a certain scale, you are above the law.

Again, if you simply cannot comply with the law for some reason (as you seem to be suggesting applies to Google) then you shouldn't be running that business at all because, after all, doing so implies doing something illegal.
by Aachen | 2026-01-06 18:17:40+00:00
I addressed that above. If that's the point, the people with disposable income who view the ad subsidise the ad broker and the website as a hidden charge on a product which they probably didn't need. It doesn't get less efficient than that. I'd rather that people living under the poverty threshold get subsidised directly

Advertisers/brokers will also do everything to optimise to whom the ad is being shown to not waste they money. Poor people can't turn it into arbitrary cash, they can just waste time on video sites and freemium games while they barely (or don't) have enough money to make ends meet

I guess I am very much in the "let's pay fair and square" corner, both for websites/services and for taxes/subsidies where needed. I don't see it working reliably or efficiently any other way in the long run
by runako | 2026-01-06 18:17:43+00:00
You're missing a giant class of workers. Janitors, retail employees, warehouse employees, home health workers, physical therapists, etc. And jobs in retail, food prep, hospitality (certainly the folks who clean hotel rooms would be surprised to find out they are not engaged in "labor jobs".)

Might be an interesting exercise to consider why you consider those jobs as not being "labor jobs."
by altairprime | 2026-01-06 18:17:52+00:00
Presumably for a car to be sold from factory and registered by owner as street legal in Germany, it must not be able to make loud noises under reasonable operation — specifically, driven like someone would drive a car (up to 100% throttle, up to redline rpm) but not attempting to maliciously create problems (fuzzing the pedal inputs for backfire scenarios from factory). If the police are able to reasonably operate it on a dyno to create an illegal condition, then either it has a mechanical defect, an owner modification, or a design defect; and in all three cases, the vehicle would presumably therefore not be street legal, as proven on the roadside dyno. The loophole you’re describing wouldn’t hold up in front of a judge anywhere at first glance: “I don’t ever push the gas pedal that far down in my fancy sports car designed/modded to accelerate loudly when I push the gas pedal that far down” is not a particularly convincing argument when one is found to be operating said vehicle. A more convincing argument would be, “the pedal inputs by the police were improper for operation of a vehicle and do not conform to the training given to roadside dyno operators”; and, presumably dyno logs and body cam of the operator are available to defeat that as well. And arguing that the training itself is improperly having police operate the vehicle through all factory-provided regimes would almost certainly fail (even in the U.S. were such roadside dynos a thing here!), but if your case was that the training needs to be improved in a specific way rather than for termination of the roadside dyno program, you might get traction with that.

One assumes this process is generally reserved for vehicles whose driving has earned them a dyno inspection, as it would induce mockery were they to e.g. dyno an old beaten-up Geo Metro without cause, and that the fines are directed towards either the vehicle owner and/or manufacturer, as circumstances require, as the responsible parties for its mechanical-design and/or aftermarket-modded violations of the law. (I am not your lawyer, this is not legal advice.)
by maximilianburke | 2026-01-06 18:18:21+00:00
I just downloaded QGIS to take a look. On my Mac, it takes 2.1GB of disk space after installation, which has some notable space sinks:

* 562mb of Python 3.11 and libraries (of which 240mb goes to the qgis python library, 101mb goes to duckdb, and 50mb to PyQt5)
* 130mb to i18n
* 140mb to `libclntsh.dylib` which I think is the Oracle DB client library?
* 80mb to libduckdb.dylib, separate from the Python version
* 80mb to libQtWebKit
by tguvot | 2026-01-06 18:18:23+00:00
there are no statements of intents with exception of mistranslated and partial hebrew quotes.

i read arguments in full. it mix of cherry picked news, mistranslated/irrelevant quotes and total avoidance of "uncomfortable facts" that go against the narrative.

you surely read on the other side few of 400 page long documents that debunk it ?
by josephg | 2026-01-06 18:18:41+00:00
In my experience (several years of writing high performance rust code), there’s only really 2 instances where you need unsafe blocks:

- C interop

- Low level machine code (eg inline assembly)

Most programs don’t need to do either of those things. I think you could directly port redis to entirely safe rust, and it would be just as fast. (Though there will need be unsafe code somewhere to wrap epoll).

And even when you need a bit of unsafe, it’s usually a tiny minority of any given program.

I used to think you needed unsafe for custom container types, but now I write custom container types in purely safe rust on top of Vec. The code is simpler, and easier to debug. And I’m shocked to find performance has mostly improved as a result.
by mesrik | 2026-01-06 18:18:50+00:00
>or even by normal load from someone deciding to split a /8 prefix into /24's

If that kind of happening directly from load of added 25 routes it's quite hard to believe it.

# 10/8 prefix here only to show how to get number of new routes added.

$ sipcalc -n 24 10.0.0.0/8 | grep -c Network
25
$

BGP peering routing policies have then been for the good reason constructed in way that they expect advertisements "exact accept" with a prefix-list with that /8 prefix, because that's is expected when peering is agreed even when not explicitly stated by many. This expected best practice following goal to manage and prevent internet routing table being filled with superfluous routes.

But anyway, sudden change from /8 to 25 x /24 without first noticing your peers and giving them time to change that "exact accept;" to "orlonger accept;" is quite sure footgun if you don't know common principles of network management. But usually that kind of screwup blast radius is local mostly local only to that /8 prefix.

Not sure though how that could be technically avoided in BGP protocol or router control-plane (router OS config) design. Policy filters and best practices how to use them have been set for good reason. Not just to irritate and make things harder than they need to be. We certainly did not do that while I was still working.

Right, something else what could happen with that kind of sudden change is. If that peered had also other peers which had instead "orlonger" in place traffic would then switch to that, what could have some side effects like saturated links, slowness or even increased costs. Too bad, and may happen. But principle is that communicate your routing changes in good time before you actually make the changes. That will prevent most of this kind of problems ever happening to you.
by 4k93n2 | 2026-01-06 18:18:51+00:00
you can hide a fair bit with ublock origin, if you dont mind using old.reddit

old.reddit.com##div[data-subreddit="politics"]
old.reddit.com##.linkflairlabel[title="Politics"]:upward(.link)
old.reddit.com##.link:has-text(/Trump|MAGA/i)
old.reddit.com##.link:has(a[href*="foxnews.com"])

although i have hundreds of these filters and its still not great, but its better than nothing
by bee_rider | 2026-01-06 18:19:04+00:00
He talks about a Pigovian tax for ads, which is interesting. I don’t have any thoughts other than “yeah good idea.”

But, something I haven’t fully worked out but have vague suspicions about: are ads actually a tax-favorable business model under the current system? We watch ads in exchange for some service, if it wasn’t an ad-supported service we’d have to pay money for it, and that transaction would be taxed.

Of course, the transaction between the ad network and the company placing the ad is taxed. But it seems like they could have a lot of play, as far as picking where that transaction takes place…

Ads should at least be taxed as heavily as if we had paid for the thing with money, IMO.
by SoftTalker | 2026-01-06 18:19:30+00:00
There are always people convinced that everything is dire. When I was a teen the popular one was that working for any kind of future goal was pointless because there was going to be a nuclear war that destroyed humanity.

There have always been wars and skirmishes around the world. Ukraine and Gaza are today's. There will be others tomorrow. Different tribes of humans just don't get along, never have.

If you think the environment is bad now, you should have seen it in the 1970s. Chemicals dumped everywhere, rivers on fire, cities choked in smog.

But the long term trend is always positive. Things are better now for more people than they ever have been.
by staticassertion | 2026-01-06 18:19:30+00:00
I think there's a very clear switch of usage happening. Maybe it's hard to see so I'll try to point out exactly where it happens and how you can spot it.

First from antirez:

> You don't need much unsafe if you use Rust to replace a Python project, for instance. If there is lower level code, high performances needs, things change.

Use of the term `unsafe` here referring to the keyword / "blocks" of code. Note that this statement would be nonsensical if talking about `unsafe` as a property of code, certainly it would be inconsistent with the later unsafe since later it's claimed that C code is not inherently "unsafe" (therefor Rust would not be inherently "unsafe").

Kibwen staying on that definition here:

> For replacing a Python project with Rust, unsafe blocks will comprise 0% of your code. For replacing a C project with Rust, unsafe blocks will comprise about 5% of your code.

Here is the switch:

> A big amount of C code does not do anything unsafe as well

Complete shift to "unsafe" as being a property of code, no longer talking about the keyword or about blocks of code. You can spot it by just rewriting the sentences to use Rust instead of C.

You can say:

"A big amount of 'unsafe' Rust code does not do anything unsafe as well"
"It is also wrong to believe 100% of the unsafe Rust code is basically unsafe."

I think that makes this conflation of terms clear, because we're now talking about the properties of the code within an "unsafe" block or globally in C. Note how clear it is in these sentences that the term `unsafe` is being swapped, we can see this by referring to "rust in unsafe blocks" explicitly.

This is just a change of definitions partway through the conversation.

p.s. @Dang can you remove my rate limit? It's been years, I'm a good boy now :)
Ask HN: Advise what to pick up to transition into AI/ML space
by mattfrommars | 2026-01-06 18:19:40+00:00
Hi HM,

I'm doing a bit of retrospective on what I am doing and where I want to be. I'm 35 and got my real tech job almost seven years ago.

I really want to get myself up to speed and involved in AI/ML development. I code in Java and Python.

What are realistic items/project can I pick to become more attractive to work being done in AI space?

My work has been mostly involved in 'integration of AI' - use Gemini API + RAG to create a chatbot type work. I need to understand how are people able to navigate their career into AI with background in enterprise work?

If it matters, location is US.

Other advise I come across is to 'look into job listing to see what people want' Since doing my real job won't get me that experience, I have asked ChatGPT to devise a technical specification that hits all the points of the job description. Does this make sense?

I apologize for the scattered thoughts. Because in year 2026, I really want to make a legit commit and not be too passive with my career trajectory.
by dsr_ | 2026-01-06 18:19:41+00:00
Other direction: the entity giving you the income is responsible for supplying the 1099-INT statement in January.

That said, they could be required to supply a copy electronically directly to the IRS and the IRS could calculate your taxes for you. Change the responsibility for correctness from the taxpayer to the government, and offer an incentive to catch a mistake.
by hazrmard | 2026-01-06 18:19:43+00:00
The paper finds:

- For LLM-assisted output, the more complex the LLM-writing is, the less likely the paper is to be published. From eyeballing, at WC=-30, both have similar chances of publication (~46%). At the upper range of WC=25, LLM-assisted papers are ~17% less likely to be published.

- LLM-assisted authors produced more preprints (+36%).

I wonder:

- What is the distribution of writing complexity?

* Does the 17% publication deficit at WC=25 correspond to 17% of the 36% excess LLM-assisted papers being WC=25, thus nullifying the effect? Although, it puts extra strain on the review process.
by g947o | 2026-01-06 18:19:51+00:00
> do your own profiling and consider your own targets before blindly accepting a one-size-fits-all configuration for your linter

Too bad ESLint has been recommending airbnb as the style until 2024. You can't expect everyone to start with nothing and hand pick every rule themselves. Doable for a large organization, not possible for a personal project.

https://github.com/eslint/create-config/pull/108
by mrandish | 2026-01-06 18:20:03+00:00
Yeah, putting an i9 in any laptop that's not an XL gaming rig with big fans is very nearly always a waste of money (there might exist a few rare exceptions for some oddball workloads). Manufacturers selling i9s in thin & light laptops at an ultra price premium may fall just short of the legal definition of fraud but it's as unconscionable as snake-oil audiophile companies selling $500 USB cables.
by mcny | 2026-01-06 18:20:09+00:00
Everybody says how good Claude is and I go to my code base and I can't get it to correctly update one xaml file for me. It is quicker to make changes myself than to explain exactly what I need or learn how to do "prompt engineering".

Disclaimer: I don't have access to Claude Code. My employer has only granted me Claude Teams. Supposedly, they don't use my poopy code to train their models if I use my work email Claude so I am supposed to use that. If I'm not pasting code (asking general questions) into Claude, I believe I'm allowed to use whatever.
by jgauth | 2026-01-06 18:20:10+00:00
> Am I missing something here wrt Jellyfin clients?

Unfortunately, I don't think so. I had many issues with playback on ATV using Swiftfin. Infuse works very well, so it is worth the ~$15 yearly to me. I am hopeful that Swiftfin will improve over time, they have a few dedicated developers working on it.
by adriand | 2026-01-06 18:20:23+00:00
> If anything this example shows that these cli tools give regular devs much higher leverage.

This is also my take. When the printing press came out, I bet there were scribes who thought, "holy shit, there goes my job!" But I bet there were other scribes who thought, "holy shit, I don't have to do this by hand any more?!"

It's one thing when something like weaving or farming gets automated. We have a finite need for clothes and food. Our desire for software is essentially infinite, or at least, it's not clear we have anywhere close to enough of it. The constraint has always been time and budget. Those constraints are loosening now. And you can't tell me that when I am able to wield a tool that makes me 10X more productive that that somehow diminishes my value.
by gwbas1c | 2026-01-06 18:20:30+00:00
Oh, SQLite (as a database) is easy compared to a client-server database, or an "embedded" database that runs in a separate process.

The issue is more of the object-relational impedance mismatch that happens when using any SQL database: ORMs can be slow / bloated, and hand-written SQL is time consuming.

I shipped a product on SQLite, and SQLite certainly lived up to its promise. What would have been more helpful was if it could index structured objects instead of rows, and serialize / deserialize the whole object. People are doing this now by putting JSON into SQLite. (Our competitors did it when I looked into their SQLite database.)
by hagbard_c | 2026-01-06 18:20:40+00:00
No idea why the comment posted by the original poster has been killed, I suspect because the tool was created using a generative model. While this is probably true that does not mean the comment is worthless so I'll just repeat it here. To the downvoters, get a grip, post a comment on your dislike of generated code but stop the stupid downvoting already, your personal hangups do not align with those of all other participants.

sirusdas 1 hour ago [NOT dead yet] [–]

I got tired of browser tabs just to tick off a task, so I built a zero-telemetry CLI that talks straight to the Google Tasks API.

Highlights - Full CRUD + interactive picker (vim keys, fuzzy find) - Multi-account: Personal & work at the same time - Auto tag extraction ([bug], [urgent]) + duplicate killer - 9 built-in reports (JSON/CSV/HTML): “What did I finish this month?” - External-editor support: 'gtasks edit 42' opens $EDITOR - Privacy: Nothing leaves your machine—OAuth tokens live in ~/.gtasks

Install (Python ≥ 3.7) Windows (PowerShell): python -m pip install gtasks-cli python -c "import urllib.request; exec(urllib.request.urlopen('https://raw.githubusercontent.com/sirusdas/gtasks-terminal/0...())"

macOS / Linux: curl -sSL https://raw.githubusercontent.com/sirusdas/gtasks-terminal/0... | python3

After install, restart terminal and run: gtasks auth # one-time browser flow gtasks advanced-sync gtasks interactive

Links Code & Docs: https://github.com/sirusdas/gtasks-terminal Useful Commands: https://github.com/sirusdas/gtasks-terminal/blob/main/useful... PyPI: https://pypi.org/project/gtasks-cli/

Issues and PRs welcome—I'd love to hear how you use Google Tasks from the terminal!
by tguvot | 2026-01-06 18:20:55+00:00
so not genocide ?

"doing it over and over again", you mean war moves around and not restricted to same 1 square kilometer.

and what kind of ethnic cleansing it is, if all population remains in gaza.

the trick is, to shift goalposts. if you bomb city with population: genocide. if you order people to evacuate it's ethnic cleansing.

if you want to see how ethnic cleansing actually looks, i'll suggest to take a look at what azeri did a while ago.