MurphyA/hacker-news huggingface dataset:
by consumer451 | 2026-01-23 21:48:46+00:00
OK, I agree with both of you. I am an old who is aware of NGINX and C10k. However, my question is: what are the economic or technical difficulties that prevent one of these new web-scale crawlers from releasing og-pagerank-api.com?

Or, is that what orgs like Perplexity are doing, but with an LLM API? Meaning that the original q= SERP API concept is a dead end in the market?
by LuizSeabra | 2026-01-23 21:48:53+00:00
Using `time.sleep()` in Python automations is convenient.

It's also one of the quietest ways to make systems fragile, slow, and unpredictable.

In modern environments—CI/CD, RPA, scraping, and automated testing—fixed waits don't always fail. They fail sometimes. And that's exactly what makes them so dangerous.

In this article, I explain why `time.sleep()` is an anti-pattern in modern automation and introduce Nano-Wait, a Python library created to replace fixed waits with adaptive, observable, and deterministic waits.

1. The real problem with `time.sleep()`: assumption

`time.sleep()` assumes that after X seconds, the system will be ready.

In practice, real-time depends on:

CPU load

Memory usage

Network and disk latency

Process concurrency

Environment variation (local, CI, cloud)

None of this is considered by a fixed wait.

2. Intermittent failures and waste

This model generates flaky failures:

on fast machines → the script waits too long

on slow machines → the script fails

in CI → “random” errors

The result is well-known:

slow pipelines

rework

loss of confidence in automation

The common response is to increase the wait time — which doesn't solve the root cause, only increases waste.

3. Why explicit waits are not enough

Tools like Selenium and Playwright have introduced explicit waits, which observe the DOM. This helps, but doesn't solve everything.

If the system is experiencing CPU saturation or high concurrency, an element may be "ready" in the DOM, but the process cannot react in time.

The bottleneck is no longer the page.

It becomes the execution environment.

4. Nano-Wait: Waiting for the system, not for time

Nano-Wait replaces fixed waits with a simple idea:

Wait for what matters—and only for the necessary time.

It observes the system state (CPU, memory, latency) and dynamically adjusts the wait behavior.

It works agnostically in:

RPA

CI/CD

Backend automations

Long-running scripts

Without depending on DOM, Selenium, or Playwright.

5. Transparency, not “magic”

With Explain Mode (explain=True), each wait decision is logged:

[Nano-Wait] Decision: extended wait by 200ms
[Nano-Wait] Reason: CPU usage above 90%

This ensures predictability, auditability, and operational confidence.

6. Simple Adoption

Switching:

time.sleep(5)

to:

wait(5)

already brings real benefits. Optional profiles (profile="ci", profile="rpa") exist, but the default is already adaptive and safe.

Conclusion

time.sleep() creates fragile automation disguised as simplicity.

Nano-Wait proposes a new standard:

conscious waits

decisions based on real state

predictable and scalable automation

In modern systems, fixed time is noise.

Context is what matters.
by phil21 | 2026-01-23 21:48:56+00:00
Mom and Pop stores are basically the only places left that reliably give you a cash discount for not using a card. Sometimes advertised at checkout, sometimes you need to ask.

Especially service companies. They tend to quote out "cash" (aka check/bank transfer) price and then add another 5% or so if you want to pay via card. There of course is very often an even cheaper "actual cash" price too you need to ask for if you are so inclined.
by kaave | 2026-01-23 21:49:00+00:00
might be unrelated , but i use Bugmail , it just notifies me when something is down or something breaks in production , with user context and breadcrumbs, that way i can reach out directly.
had issues with the overwhelming dashboards w sentry and the rest so i made mine look like gmail , so its easier to triage the errors.

like i said , it might be unrelated , but you might need this tho
by ewoodrich | 2026-01-23 21:49:19+00:00
OpenCode also has an extremely fast and reliable UI compared to the other CLIs. I’ve been using Codex more lately since I’m cancelling my Claude Pro plan and it’s solid but haven’t spent nearly as much time compared to Claude Code or Gemini CLI yet.

But tbh OpenAI openly supporting OpenCode is the bigger draw for me on the plan but do want to spend more time with native Codex as a base of comparison against OpenCode when using the same model.

I’m just happy to have so many competitive options, for now at least.
by jajuuka | 2026-01-23 21:49:23+00:00
It's not super difficult if you have an Apple ID from many years ago that you bought media with and then have a different Apple ID that you use for everything. Which isn't that uncommon for anyone who used iTunes and bought music or media and then forgot their ID and just made a new one when they got a iPhone or Macbook. Was able to transfer all my purchases to my main account pretty easily.

The real downside is if you have two fully active Apple IDs. Then things like calendars, photos, email, etc are still stuck on the other account until you export it. Which can be a pain since you have to sign out of your main account, sign into the old account and export, then sign back into the main account.
by vel0city | 2026-01-23 21:49:33+00:00
> But most debit cards cannot be used with just the numbers.

Every debit card I have in my wallet right now can be used anywhere a VISA is accepted using the same kind of number as a VISA card. I can go to any website that accepts VISA as payment, type in that same 16-digit number as any other kind of credit card, expiration, and CVV and essentially empty it out in a few minutes.

This has been true across many different banks. I have had ATM-only style cards issued in the past but I haven't encountered one of those in over 20 years.
by nyrikki | 2026-01-23 21:50:07+00:00
OCI Container Runtimes like OCI's runc are "container runtimes", so the runtime spec[2]

Basically, docker started using lxc, but wanted a go native option, and wrote runc. If you look at [0] you can see how it actually instantiates the container. Here is a random blog that describes it fairly well [1]

crun is the podman related project written in c, which is more efficient than the go based runc.

You can try this even as the user nobody 65534:65534, but you may need to make some dirs, or set envs.

Here is an example pulling an image with podman to make it easier, but you could just make an OCI spec bundle and run it:

mkdir hello
cd hello
podman pull docker.io/hello-world
podman export $(podman create hello-world) > hello-world.tar
mkdir rootfs
tar -C rootfs -xf hello-world.tar
runc spec --rootless
sed -i 's;"sh";"/hello";' config.json
runc run container1

Hello from Docker!

runc doesn't support any form of constraints like a bounding set on seccomp, selinux, apparmor, etc.. but it will apply profiles you pass it.

Basically it fails open, and with the current state of apparmor and selinux it is trivial to bypass the minimal userns restrictions they place.

Historically, before rootless containers this was less of an issue, because you had to be a privileged user to launch a container. But with the holes in the LSMs, no ability to set administrative bounding sets, and the reality that none of the defaults constrain risky kernel functionality like vsock, openat2 etc... there are a million ways to break netns isolation etc...

Originally the docker project wanted to keep all the complexity of mutating LSM rules etc... in containerd. and they also fought even basic controls like letting an admin disable the `--privileged` flag at the daemon level.

Unfortunately due to momentum, opinions, and friction in general, that means that now those container runtimes have no restrictions on callers, and cannot set reasonable defaults.

Thus now we have to resort to teaching every person who launches a container to be perfect and disable everything, which they never do.

If you run a k8s cluster with nodes on VMs, try this for example, if it doesn't error out, any pod can talk to any other pod on the node, with a protocol you aren't logging, and which has limited ability to log anyway. (if your k8s nodes are running systemd v256+ and you aren't using containerd which blocked vsock, but cri-o, podman, etc... don't (at least up to a couple of weeks ago)

socat - VSOCK-LISTEN:3000

You can also play around with other af_families as IPX, Appletalk, etc... are all available by default, or see if you can use openat2 to use some file in /proc to break out.

[0] https://manpages.debian.org/testing/runc/runc-spec.8.en.html
[1] https://mkdev.me/posts/the-tool-that-really-runs-your-contai...
[2] https://github.com/opencontainers/runtime-spec/blob/main/REA...
by PlatoIsADisease | 2026-01-23 21:50:20+00:00
I would never, recommend anything from Debian-family for consumer use. Its literally outdated linux, under the marketing 'stable'.

Fedora is so significantly better.

I wouldn't confuse popularity for good. Ubuntu gave away free CDs in the 2000s and are living off old marketing.

Debian family is so bad. You will be in the terminal constantly just trying to get stuff to work. Stick to a well maintained, up to date, consumer distro, Fedora.

(reminder that Fedora is Not Arch)
by klardotsh | 2026-01-23 21:50:28+00:00
In the startup world, BYOD is/was exceedingly common. All but two jobs of my career were happy to allow me to use my own Linux laptop and eschew whatever they were otherwise going to give me.

Obviously enterprises aren’t commonly BYOD shops, but SMBs and startups certainly can be.

… whether the people who would do such BYOD things are at all likely to be Windows users who care about this Bitlocker issue, is a different debate entirely.
by ludicity | 2026-01-23 21:50:35+00:00
I thought it was harmless(ish) fun, but David Gerard put out a post stating that Yegge used Gas Town to push out a crypto project that rug pulled his supporters, while he personally walked away with something between $50K to $100K from memory.

I suppose that has little to do with the technical merits of the work, but it's such a bad look, and it makes everyone boosting this stuff seem exactly as dysregulated/unwise as they've appeared to many engineers for a while.

I caught Sean Goedecke, who uses LLMs a bunch, who are clearly serious adults, but half the folks being shoved in front of everyone are behaving totally manic and people are cheering them on. Absolutely blows my mind to watch.

https://pivot-to-ai.com/2026/01/22/steve-yegges-gas-town-vib...
by oug-t | 2026-01-23 21:50:37+00:00
Thanks all for the feedback and upvotes!

Motivated by the response, I just pushed a cleanup of the repo to make it easier to build and run locally.

I am now opening issues for the specific requests mentioned here--like adding the `e` motion, improving `w/b` logic, and preserving the board state when game over.

Thank you again, PRs are very welcome!!

Repo: https://github.com/oug-t/zsweep
by bigbadfeline | 2026-01-23 21:51:13+00:00
> I feel inclined to encourage people to research modern monetary theory.

What is there to research about banana republic finance which is the proper name of "modern" monetary theory?

> many cultural assumptions around how money works

Cultural assumption don't really matter here, what matters is what theory the Fed is using. Which begs the question why are there so many conflicting theories floating around in academia?

> intentionally wrong or the residue of outdated thinking.

That's a good description of modern monetary theory.
by robocat | 2026-01-23 21:52:09+00:00
Why do you blame askers for how you feel?

You are responsible for your feelings and setting your boundaries.

Learning how to set boundaries is something most people learn as they mature.

Do you expect others to adivinate what your personal boundaries are?

Do you get frustrated when friends or family make the wrong assumptions?

If you have arseholes in your life that actually make you feel bad, then it is even more important to learn how set boundaries with them. If they don't respect the boundaries you set, then that's a harder issue.

I struggle with conflict avoiders because they have needs however they often act passive. Yet their hidden expectations remain, and their response if you fail to meet their expectations is often poor.

Like blaming others for their poor communications.
by palata | 2026-01-23 21:52:20+00:00
> the bigger fear I have is that if such an EU alternative is successful that the US incumbents will swoop in and buy it

That's usually what happens indeed. There is a lot of great tech coming from [the rest of the world] and being bought by the US.

> the cost-to-switch is more important right now than the details

I kinda disagree there. The lack of competition is the problem today. If, instead of AWS, there were 50 services all over the world and companies were distributed amongst them, then it would be much less of a problem. The problem right now is that the US can bully entire countries because those countries 100% rely on US services.

Instead of building a European replacement for AWS, I would like to see open standards allowing companies to easily switch, and different providers competing behing those standards. Or even better: companies could even mix the services: say "I want my backups replicated between this French company and this Croatian one".
by jasondigitized | 2026-01-23 21:52:52+00:00
Na. Most successful startups don't worry about super tight code up front and hack the shit out of something and support tens of thousands of user with completely garbage code and architecture.

I know this because I am at one now making an ungodly amount of money with 50k active users a day on a complete mudball monothilic node + react + postgres app used by multiple Fortune 100 companies.
by QuantumNomad_ | 2026-01-23 21:53:06+00:00
> Neko is a cat that runs around on the screen, chasing the mouse cursor.

> It has led many lives through the history of computers.

> Neko on PC-9801
The original software based on this concept was written in the 1980's by Naoshi Watanabe (若田部 直). It was called NEKO.COM and ran on the Japanese computer NEC PC-9801 in the MS-DOS command line.

Also worth mentioning that the Japanese word “neko” literally is their word for “cat”.
by reneberlin | 2026-01-23 21:53:38+00:00
Owning such images on your computer or phone or anything brings you straight to a raid and court in Germany. I believe in the whole EU, but iam not absolutely sure, because not my concern typically. But what to do, if you have that on your timeline unwanted and this is transmitted and in your browser cache. Technically you now already violated the law.

Good luck explaining you need excemption because of Elon, you couldn't do anything about it. The law especially at this point is rigid for a reason. I don't know of any excemption for anybody. Not young people, not mums, not teachers that wanted to help in disputes between pupils. This leads directly to court if it gets known - that's what the law says.

This basically means, you can not use X without knowing you are 1 step away of breaking local laws and end up in court for browsing X.

Theoretically the prosecuters could now ask for the IP-adresses of the people that accessed the images in the EU and so forth.
by PlatoIsADisease | 2026-01-23 21:53:46+00:00
Just remember, never use or recommend Debian-family(Ubuntu/Mint) or you will be back to windows. Do not fall for the marketing term Stable, which means outdated and contains bugs that are fixed.

Fedora is my recommendation. I remind people Fedora is not Arch. Fedora is a consumer grade OS that is so good, I don't lump it in with the word Linux.
Show HN: Codex Self-Reflect Skill and CLI to run subagents on past Codex convos
by olliepro | 2026-01-23 21:54:05+00:00
This skill is useful for identifying agent friction points and brainstorming new skills, developing context of past work for a new conversation, identifying code bloat from failed solutions, etc.

It is a simple Codex meta-"skill" that uses a CLI to analyze your past Codex sessions and generate reflections. It uses headless Codex subagents running in parallel on temporary copies of conversation history. These reflections are orchestrated by the CLI and a Codex agent can synthesize them for downstream use. Reflections are cached for efficiency.

Repo: https://github.com/olliepro/Codex-Reflect-Skill
by s_dev | 2026-01-23 21:54:16+00:00
European companies operate under stricter privacy laws. GDPR is applicable world wide but has serious teeth and enforcement within Europe. Small US companies with no presence in Europe can effectively ignore it. However if an American were to choose a European service this benefit is effectively passed on to them. They can view what data any company has on them or ask them to delete it.

I can appreciate some don't care about their data especially in this world of people pouring their lives in to social media but some people do care.
by janalsncm | 2026-01-23 21:54:48+00:00
> there's no reason you couldn't detect it algorithmically

For any real world classifier there is a precision/recall tradeoff. Do you care more about false positives or false negatives? If you choose to truly minimize false positives you should simply always predict negative.

For your example “it’s not just X it’s Y” I agree it’s a red flag. But the origin of the pattern is from human text which the LLM picked up on. So some people did (and likely still do) use that construction.
by mistercheph | 2026-01-23 21:54:58+00:00
Yeah I wouldn't hope for that to be smooth/possible, others probably have stricter needs but IMO as long something indicates what github name "said" something, the most important part is preserving the context of why decisions were made rather than who said what and if it's cryptographically verifiable that some radicle identity has/had control of a github identity that said something in the past
by fmajid | 2026-01-23 21:55:05+00:00
Counting Quotient Filters (CQF) and Mixed-Counters Quotient Filters (MQF) are more efficient than Bloom Filters, and can count, making them highly suited for applications like rate-limiting at scale.

https://link.springer.com/content/pdf/10.1186/s12859-021-039...
by dutchCourage | 2026-01-23 21:55:06+00:00
Trump's attitude motivated me to finally get away from Gmail. I tried several of the providers mentioned on this website and stuck with tuta.com. After almost a year, I'm very happy, would recommend.

Interesting to know before going in:
- They encrypt the emails when storing them, so the only way to access emails is to use their own apps. I was hesitant at first but their web app, desktop app and android app are great
by californical | 2026-01-23 21:55:11+00:00
I looked pretty hard - I specifically don’t want an android OS called an mp3 player. I want a dedicated media player that has physical button controls (not touch screen), is very snappy, has a good UI, and has a purpose-built OS specific to only playing songs and podcasts, and maybe movies, which I can sync with my computer (maybe with rsync or whatever else). No apps.

The only option that I could find was an iPod classic, modded with an SD card and better battery.

If something else exists, especially brand new, I’d love to know! But I couldn’t find hardly anything that wasn’t just an Android phone with no cell service.
by ordu | 2026-01-23 21:55:49+00:00
I don't know, but I have a guess. Someone didn't want to deal with unsafety of dealing with memory allocated in C code. Serialize/deserialize makes it easy, no need for unsafe, no need to learn all the quirks of the C-library allocating the memory.

I had experience with writing safe bindings to structures created in C library, and it is a real pain. You spend a lot of times reverse engineering C code to get an idea of the intent of those who had wrote the code. You need to know which pointers can address the same memory. You need to know which pointers can be NULL or just plain invalid. You need to know which pointers you get from C code or pass to it along with ownership, and which are just borrowed. It maybe (and often is) unclear from the documentation, so you are going to read a lot of C code, trying to guess what the authors were thinking when writing it. Generating hypotheses about the library behavior (like 'library never does THIS with the pointer') and trying to prove them by finding all the code dealing with the pointer.

It can be easy in easy situations, or it can be really tricky and time consuming. So it can make sense to just insert serialization/deserialization to avoid dealing with C code.
by phil21 | 2026-01-23 21:56:02+00:00
> You can have a car without going into debt just like how you can have a credit card without debt.

Technically this is actually impossible.

You have debt the moment you swipe/dip/tap that card and make a transaction with it.

That you settle the debt before it incurs interest is absolutely not relevant to the types of folks who do not want to carry debt as a matter of principle. I was one for some time while I figured my life out, and even having $100 hanging over my head for a few days was mentally tiring.

It's exactly the same as borrowing $10 from a friend to cover lunch and stressing about remembering to pay them back next week when you see them.

Some people for various reasons simply do not do well with debt at any level. I do now use credit for day to day things and pay it off every month, but that's the only debt I carry. And it is absolutely in every sense of the word debt.
by arter45 | 2026-01-23 21:56:10+00:00
I’m not sure this would be a good idea in this kind of change.

Flapping is bad in the networking world.

Flapping BGP routes, specifically, is bad because it can stress all BGP routers involved to the point where they can “go crazy”. Routes are explicitly advertised, so if you keep changing the routes, you are tasking the router CPU to process new stuff, discard it and process new stuff. In fact, BGP route flaps are specifically the focus of an entire RFC: https://datatracker.ietf.org/doc/html/rfc2439

More in general, a flapping link (on/off/on/off) can really mess with TCP.

Flapping in the networking world is not something you want to do intentionally.
by behnamoh | 2026-01-23 21:56:33+00:00
but that's why I like Codex CLI, it's so bare bone and lightweight that I can build lots tools on top of it. persistent thinking tokens? let me have that using a separate file the AI writes to. the reasoning tokens we see aren't the actual tokens anyway; the model does a lot more behind the scenes but the API keeps them hidden (all providers do that).
by idibiks | 2026-01-23 21:56:37+00:00
No, it's literally that. It's super dangerous and the practice of performing it in any but very unusual situations is, to put it mildly, hard to justify on any actual public safety grounds. To the extent the maneuver is a "safe" version of making a car crash, it's (relatively) safe for the cop causing the crash.

A certain segment of the public, plus cops themselves (having significant overlap with that segment), love it though, because they enjoy seeing non-compliance met with life-endangering levels of force and can't understand why any of us wouldn't enjoy it unless we want more crime or something.

So a bunch of suspects who weren't, car chase aside, any imminent danger to anyone, and their possibly-unwilling passengers, end up dead or life-alteringly injured... and so do plenty of people who had nothing to do with any of it. Often over what was originally just e.g. property crime.
by autoexec | 2026-01-23 21:57:44+00:00
I could get the same thing out of "curl https://en.wikipedia.org/wiki/Corn" but curl doesn't understand what corn is anymore than Claude does. Claude doesn't even understand corn anymore than Wikipedia does. Just like with Wikipedia, everything Claude outputs about corn came from the knowledge of humans which was fed into it by other humans. It's human understanding behind all of it.