MurphyA/hacker-news huggingface dataset:
by eru | 2026-01-12 23:39:03+00:00
> A remote control should be portable, and this means battery-powered.

I don't know, I would have just have the kid get off their seat in between shows and walk up to the TV with drive attached and change disks there. Very similar to how you had to change VHS tapes.

Unless, of course, the above was just an excuse to do some tinkering, then it's fine and fun.
by juliangmp | 2026-01-12 23:40:14+00:00
I think this is cause most developers just end up using steam's APIs for these things and since steam will be most of their sales they don't bother.
I have seen games using epic's solution in their steam distribution.

i do wonder how hard it would be to integrate multiple of these APIs so that the end user could invite anyone from any platform, though i imagine you'll still need some sort of middle man / lobby server...

Either way, I'm not a fan of having to generate lobby codes every time I want to play baldurs gate 3 with my friends who have it on steam
by klibertp | 2026-01-12 23:40:29+00:00
> I would say that you are very unlucky.

> or in the context of very conservative societies in certain places (e.g. in multiple African and Asian countries).

Also in a few European ones, I can personally assure you :) It's fortunately (much) less common today than it was 25-30 years ago, but the truth is, everybody everywhere has their own hellhole, and living there could indeed be seen as unlucky. Atheism in a country where 96% of the people adhere to folk Catholicism (outside cities, that would probably be 110%...) is a hard sell.
by tony_cannistra | 2026-01-12 23:42:26+00:00
I have a PhD in Ecology and a BS in CS. I find the bifurcation portrayed here exaggerated. The best modern ecologists merge rigorous fieldwork with advanced modeling; we need to harness vast, underutilized datasets, not just generate new ones.

The 'computer scientist' quote illustrates a frustrating trend: tech-centric 'drive-bys' that lack the ecological context required for good science. On the flip side, the 'old guard' who ignore modern data assimilation are leaving massive potential on the table. The field is rightfully shifting from site-specific anecdotes to foundational, broad-scale work, but we need both skillsets to do it justice.
by vessenes | 2026-01-12 23:42:27+00:00
To quote McEnroe, commentating Wimbledon this year: "Father Time, undefeated." Djokovic is mentioned in the article and has only just ended his dominant era, and is still ranked 4th in the world at 38. So we did get some very long runs in there, and I would imagine just 3 years ago or so people would have expected some mid to late 20s/early 30s guys like Zverev or Fritz to be having their turn. Both of whom, some asterisks.

Instead we got this young duo / lightning in a bottle situation; and I expect that both Sinner and Alcaraz are likely to be playing dominantly into their mid 30s barring injury, or maybe Alcaraz buying a nightclub in Ibiza and retiring.
by estimator7292 | 2026-01-12 23:44:54+00:00
A dishwasher with a WiFi chipset is not a durable good. Nor is a fridge with a touchscreen, an oven with Bluetooth.

You know what is durable? The simple and straightforward electromechanical mechanisms we used for three centuries before integrated circuits.

One can find plentiful examples of midcentury and older appliances still in service without major maintenance. It's tough to find a modern appliance in service for more than a decade.

The inability to sprinkle magic obsolescence silicon dust over everything will only lead to an increase in quality and durability.

The mechanical timer in a 1980s washing machine will never have a firmware update blocking you from using it. A 1950s fridge runs perfectly fine essentially forever without a cloud API and a goddamn app.

This hypothetical situation is only bad because you've accepted consumerism and forced obsolescence as the norm. These situations are much worse than not being able to buy a $1600 phone every year.

You should be indignant about the unimaginable amount of resources we throw into landfills because the manufacturer decided that you should buy a new one. You should absolutely not be indignant that you can no longer buy shit to throw away.

Do you repair your appliances or do you throw them away and have a new one shipped from the other side of the planet? Do you see the problem?
by Imustaskforhelp | 2026-01-12 23:46:20+00:00
I really like the product created by fly.io's https://sprites.dev/ for AI's sandboxes effectively. I feel like its really apt here (not sponsored lmao wish I was)

Oh btw if someone wants to run servers via qemu, I highly recommend quickemu. It provides default ssh access,sshfs, vnc,spice and all such ports to just your local device of course and also allows one to install debian or any distro (out of many many distros) using quickget.

Its really intuitive for what its worth, definitely worth a try https://github.com/quickemu-project/quickemu

I personally really like zed with ssh open remote. I can always open up terminals in it and use claude code or opencode or any and they provide AI as well (I dont use much AI this way, I make simple scripts for myself so I just copy paste for free from the websites) but I can recommend zed for what its worth as well.
by crashabr | 2026-01-12 23:46:57+00:00
I'm setting up a small orchestration around zellij (I have almost no experience with tmux, so I went with the "modern" alternative), upterm and qrencode that allows me to 1) generate a claude code instance in a persistent session 2) make it controllable remotely via upterm 3) scan a qr code to copy the upterm server's ssh url on my phone so that I can paste it in termux.

I wonder if it would be more ergonomic to connect to the aoe window on my phone for when I have more then one claude code session to keep track of. I'm not against switching the zellij part to tmux.
by emaro | 2026-01-12 23:47:01+00:00
I guess they're going to keep using Threema. The clients are open source and implement E2E encryption. Apparently the headquarter will stay in Switzerland. And today after learning about the acquisition, I learned that Threema was already sold to Afinum five years ago, another private equity firm. If an acquisition is a problem, it already was one at least since 2020.
by hamdingers | 2026-01-12 23:48:24+00:00
> complaining about how your TV performs whilst stubbornly allowing it to download whatever updates it likes and stubbornly refusing to buy one additional device (like an Apple TV or a Firestick) to plug into it is kind of dumb, don't you think? Ornery even?

No, I have plenty of other devices that update and remain useable. So do you.

I would describe your attitude that way though.
by arseniibr | 2026-01-12 23:48:49+00:00
Hi guys,

I've been working with MLOps pipelines lately, and it always bothered me that torch.load() (and Pickle in general) is basically an RCE vulnerability we've all just accepted. We download gigabytes of opaque weights from Hugging Face and run them in production, often with full privileges.

I looked for existing tools, but many relied on simple regex (easy to bypass) or didn't verify if the file was tampered with in transit.

So I built Veritensor. It’s a CLI tool to gatekeep models before they hit your runtime.

How it works under the hood:
1. Pickle Emulation: Instead of grepping for os.system, it emulates the Pickle VM stack. This catches obfuscated payloads (like STACK_GLOBAL assembly) without actually executing the code.
2. Identity Check: It hashes your local file and queries the Hugging Face Hub API to ensure it matches the upstream version bit-for-bit (detects MITM or corruption).
3. License Headers: It parses metadata from Safetensors/GGUF to detect restrictive licenses (like CC-BY-NC or AGPL) so you don't accidentally ship them in a commercial product.
4. Signing: Integrates with Sigstore Cosign to sign the container if the scan passes.

It supports PyTorch, Keras (checks for Lambda layers), and GGUF. Written in Python, Apache 2.0.

I’d love to hear your feedback on the detection logic or edge cases I might have missed with the Pickle emulation.

Repo: https://github.com/ArseniiBrazhnyk/Veritensor
PyPI: pip install veritensor
by bisby | 2026-01-12 23:49:35+00:00
I agree with you. My use case doesn't call for perfect uptime. Sounds like yours doesn't either (though you've got a pretty deep pit yourself, if 240v and generator weren't part of the sump plans and the rack just got to ride along (that's how it worked for me)).

But that doesn't mean its for us to say that someone else's use case is wrong. Some people self host a nextcloud instance and offer access to it to friends and family. What if someone else is hosting something important on there and my power is out? My concerns are elsewhere, but there's might not be.

My point was simply that different people have different use cases and different needs, and it definitely can become a bottomless pit if you let it.

For me, IPMI, PiKVM, TinyPilot, any sort of remote management interface that can power on/off a device and be auto powered on when power is available, so you can reasonably always access it, and having THAT on the UPS means that you can power down the compute remotely, and also power back up remotely. Means you never have to send someone to reboot your rack while youre out of town, you dont shred your UPS battery in minutes by having the server auto boot when power is available. Eliminates reliance on other people while youre not home :tada:

But again, not quite a bottomless pit, but there are constant layers of complexity if you want to get it right.
by recursive | 2026-01-12 23:49:55+00:00
Are we talking about HTML or XHTML?

In HTML, you can add the slash, but it has no effect. The spec explicitly says that the slash does not close the element. The fact that it's "br" does. So you are allowed to add that slash. But adding it does not close the element.

> On void elements, it does not mark the start tag as self-closing but instead is unnecessary and has no effect of any kind.

https://html.spec.whatwg.org/multipage/syntax.html#start-tag...

In XHTML, normal XML rules apply, as you say. That's consistent with what I've said earlier in this thread also.
by realusername | 2026-01-12 23:50:11+00:00
> On the other hand California do have an absolutely massive air conditioning load in the summer.

Well good for them but the vast majority of the western world has the opposite load, reduced load in summer where the panels operate full capacity and massive consumption when they produce close to nothing.

> In 2025 alone China added 168 GWh of storage.

Great, and they use over 1400 GWh per day.

In 2025 alone, it means they added an astonishing 3h of electricity storage (I'm rounding it up for you as a bonus)
by sfink | 2026-01-12 23:50:49+00:00
The control interface burned into your hardware device will not have been rewritten. And it's not like you can have a flag day where everyone switches over, so the lifespan of those hardware devices isn't that relevant.

Backwards compatibility is a large part of the point of the Web.

You could version everything at whatever granularity you like, but over time that accumulates ("bug 3718938: JS gen24 code incorrectly handles Date math as if it were gen25-34", not to mention libraries that handle some versions but not others and then implicitly pass their expectations around via the objects they create so your dependency resolver has to look at the cross product of versions from all your depencies...)
by smeej | 2026-01-12 23:51:25+00:00
You say "when you're allowed choice" like there are some times when you aren't allowed choice, and I think this is where you lose me. Everything is a choice. Always. It's not a matter of "allowed/not allowed." It's just a reality of existence for me. I'm not sure if I can explain this, but I can try.

You seem to have a kind of "decision persistence" that I don't have, where having decided it once makes it still true in the actual moment of taking the action. It doesn't matter how many times I choose things in advance, in the hypothetical, for the future--and the future is always in the hypothetical. I still have to choose every moment, day in and day out, what I'm doing. Even now, it's not quite a foregone conclusion that I'm going to finish typing this and click the "reply" button. Probably will, but I won't know that for SURE until I've done it. I might decide it isn't worth it after all.

My brain simply does not consider past decisions binding on present activity. I might still decide to do the same thing I thought I would do at this time when I thought about this earlier, but I have to decide it again, because it hasn't happened yet. Every moment is a "deciding again," which means every moment needs willpower. Putting on one shoe doesn't guarantee the other shoe comes next. After a shit, pulling up my underpants doesn't guarantee the pants come next. Maybe I step out of the pants and am halfway through lunch before I realize I never pulled my pants up after the toilet and have been walking around my house without pants for 45 minutes.

"It just is" is not an experience I have. They're not excuses. The next thing just goes, right out of my head. I don't talk myself out of doing what I previously decided to do next or into something else. But there is no mechanism that makes something happen just because I decided it should earlier.

There always has to be another choice, in each moment, about what to do, and whether to keep doing it. Every one of these choices requires willpower, and there's only so much in the jar. But it's not like the jar fills up once, overnight, and I just draw from the jar until it's empty and then it's gone for the day. The jar arbitrarily loses and gains willpower ad hoc throughout the day. So I can always reach into the jar, and sometimes there's some willpower in there and I can do the thing that Planning Smeej thought would be a good idea yesterday, but sometimes there's not, and nobody knows what's going to happen until maybe there is again later.

I don't know if I've made that make any sense. I just know that you're describing a reality fundamentally different than the one I experience.
by estimator7292 | 2026-01-12 23:52:06+00:00
The API is pretty straightforward. It's mostly about resolving SteamIDs and talking to the matchmaking server. Last time I used it, once you have all the player and server data, you pretty much just send UPD packets through another Steam API call. Though I think you use SteamIDs instead of IP addresses.

Unless you've gone super deep into the Steam API, it shouldn't be too hard to plug in a different framework.
by abelanger | 2026-01-12 23:53:04+00:00
Drawing the boundary at high throughput, huge fan-out and ultra-low-latency is correct - I'd also add that MQs are often used for pub/sub and signaling.

MQs are heavily optimized for reducing E2E latency between publishers and consumers in a way that DE engines are not, since DE engines usually rely on an ACID compliant database. Under load I've seen an order of magnitude difference in enqueue times (low single-digit milliseconds for the MQ p95 vs 10ms p95 for Postgres commit times). And AMQP has a number of routing features built-in (i.e. different exchange types) that you won't see in DE engines.

Another way to think about it is that message queues usually provide an optional message durability layer alongside signaling and pub/sub. So if you need a very simple queue with retries _and_ you need pub/sub, I'd be eyeing an MQ (or a DE execution engine that supports basic pub/sub, like Hatchet).

I wrote about our perspective on this here: https://hatchet.run/blog/durable-execution

( disclaimer - I'm one of the people behind https://github.com/hatchet-dev/hatchet )
by ericmcer | 2026-01-12 23:53:15+00:00
If you research how something like Cursor works I don't think you would believe it is inevitable. The jump that would have to happen for it to replace engineers entirely is insurmountable. They can keep expanding contexts and coming up with clever ways to augment generation but I don't see it ever actually having full vision on the system, product and users.

Beyond that it is incredibly biased towards existing code & prompt content. If you wanted to build a voice chat app, and you said "should I use websockets or http?" It would say Websockets. It won't override you and say "Use neither, you should use webRTC", but an experienced engineer would spot that the prompt itself is flawed instantly. LLMs just will bias towards existing tokens in the prompt and won't surface data that would challenge the question itself.
by rcyeh | 2026-01-12 23:54:11+00:00
Agreed!

I learned Perl after trying C; and after struggling with `scanf` (not even getting to tokenization), the ease and speed of `while (<>) { @A = split;` for text-handling made it easy to fall in love. This (in the mid 90s, before Java, JavaScript, and C++ TR1) was also my first contact with associative arrays.

I was also drawn to the style of the Camel Book.

More than most other languages, Perl encouraged one-liners. When I later read PG's "Succinctness is power" essay, I thought of Perl.

https://paulgraham.com/power.html
by somat | 2026-01-12 23:54:11+00:00
True, I was trying to play starcitizen and after a bit all that was in my head was that this would be a much better game if they had simplified the graphics and instead invested that time spent into systems. Hell I think this any time I play a so called triple A game.

And even with great graphics why are they always so sterile. Where are my dynamic damage models, deformable terrain, procedural content. One tiny thing that bothered me more than it should have was Doom(2016). Great gameplay but the way the monster corpses disappear just upsets me "How can I be knee deep in the dead if there are no dead?" I mean the original doom and quake kept the corpses around. But now 20 years later they can't?.
by AndrewDavis | 2026-01-12 23:54:25+00:00
Mine is so slow to become initially responsive. It (thankfully) comes on to whatever source / channel it was on when turned off, but it takes a good 15 seconds till you can change a channel, closer to 30 seconds to change input source. And when it does accept inputs it frustratingly drops inputs for another 10 seconds or so.
by Imustaskforhelp | 2026-01-12 23:55:43+00:00
Thanks for providing additional context. I appreciate the fact that you are admitting fault where it is and that's okay because its human to make errors and I have full faith from your response that OpenCode will learn from its errors.

I might try OpenCode now once its get patched or after seeing the community for a while. Wishing the best of luck for a more secure future of opencode!
by river_otter | 2026-01-12 23:56:16+00:00
Tbh that's exactly what I'm using aoe for: termius on my phone ssh into my Mac mini and then use aoe to check in on each agent session. Just make sure you check out the readme if you do this because at least for termius there's a quirk to make tmux and TUI happy. The recommended approach is to run aoe itself inside a tmux session which then will spawn additional tmux sessions as needed.
by sfink | 2026-01-12 23:56:30+00:00
UTC is a fine default time zone, but that doesn't matter here.

A datetime with a timezone and a datetime without one are two different things, both of them useful. My birthday does not have a time zone. My deadline does.

The company deadline for getting some document returned? It might or might not, that's policy.

Poetically: we are born free of time zones. We die bound to one.
by lvl155 | 2026-01-12 23:56:50+00:00
I was not aware HN is now an investment discussion board. Even if you were to argue that point, what’s his incremental value comped to but-for world? I mean one where Steve Jobs is still alive and running Apple. I am sure Jobs would’ve sat on his behind milking iPhones and just let Google, Microsoft, Meta and Nvidia take the entire AI TAM. I am sure that’s the Steve Jobs we all knew.
by vladdoster | 2026-01-12 23:57:17+00:00
Location: Nashville, TN
Remote: true
Willing to relocate: boston || nashville
Technologies: Python, Django, IaC, Terraform, Golang, CI/CD, Azure/AWS, {ba,z}sh, Lua, Springboot,
Redis, Docker, Open Service Broker, {,non}relational & vector dbs, shared services, SOA
Email: mvdoster@gmail.com

resume: https://linkedin.vdoster.com && http://github.com/vladdoster

sr. cloud software engineer @ Mastercard (5 years)

Designed and built Platform-as-a-Service for microservice workloads running on Azure and AWS
to migrate on-prem workloads to the cloud. The platform operates globally, allowing teams to
deploy to several Azure-backed regions worldwide. Helped plan and create regional landing zones
in Azure for application teams wanting to perform globally. Designed platform components using
Terraform, Go, and Node; developed support tooling using Bash, Python, and Azure CLI. De-risk the
platform by addressing security vulnerabilities and ensuring the platform is PCI compliant.

api/devops software engineer @ Harvard Medical School (2 years)

Worked as part of the DevOps team to manage a 15k core CentOS HPC cluster. Designed and implemented
Python-based security scanning pipeline to securely deploy & run Apptainer images via SLURM.
Coordinated cross-team emergency patching eﬀorts. Collaborated with researchers and engineers across
3-letter institutions to deliver secure research infrastructure. Built CI/CD Pipelines with GitHub, Jenkins,
to automate code builds, testing, and deployments. Wrote Puppet modules to manage configuration of HPC fleet.
Wrote custom Puppet module & Python scripts to automatically remediate Tenable findings.

full-stack software engineer @ Global Prior Art (3 years)

Used Django, Celery, Selenium grid, and AWS API Gateway for IP rotation to scrape USPTO patent PDFs,
apply CV for data extraction, and generate reports with relevant claims, saving employees 4-5 hours daily.
Wrote E2E black-box/fuzzing unit tests. Automated on-premise deployment via Github Actions and Ansible.

maintainer @ Zinit (5 years)

Develop and maintain a zsh plugin manager on Github with 4k stars. Implemented unit tests,
containerization, bug fixes, and new features.
See: https://github.com/zdharma-continuum/zinit

contributor @ Open-source documentation (5 years)

Contributed hundreds of documentation corrections and enhancements to 400+ open source projects.
by tony_cannistra | 2026-01-12 23:58:13+00:00
Absolutely. There are a few excellent projects in this vein, as well - where deeper investment in data gathering, done in ways to optimize its broad use in research, is occurring.

An example is the National Science Foundation NEON project, which is a long-term ecological monitoring initiative with common field methodologies across 81 North American sites. https://www.neonscience.org/
by microtherion | 2026-01-12 23:58:27+00:00
Oh, this led me down a rabbit hole…

I was maintainer of the Chess app from the early 2000s to about 2015. We first noticed in 2004 that level 1 (which was then "Computer thinks for 1 second per move) was getting stronger with each hardware generation (and in fact stronger than myself).

So we introduced 3 new levels, with the Computer thinking 1, 2, or 3 moves ahead. This solved the problem of the engine getting stronger (though the jump from "3 moves ahead" to "1 second" got worse and worse).

A few years after I had handed off the project, somebody decided to meddle with the level setting code (I was not privy to that decision). The time based levels were entirely replaced with depth based levels (which eliminates the strength inflation problem, but unfortunately was not accompanied by UI changes). But for some reason, parsing of the depth setting was broken as well, so the engine now always plays at depth 40 (stronger than ever).

This should be an easy fix, if Apple gets around to make it (Chess was always a side project for the maintainers). I filed feedback report 21609379.

It seems that somebody else had already discovered this and fixed it in a fork of the open source project: https://github.com/aglee/Chess/commit/dfb16b3f32e5a6633d2119...