MurphyA/hacker-news huggingface dataset:
by Mabusto | 2025-08-31 19:02:37+00:00
Other than putting screen timers on all my apps, I've found that physically leaving my phone in other rooms to be helpful. Also recognizing it as a problem and acknowledging "Agh, I'm doing it again" when I get caught in a doom scroll hole at least puts some counterweight to the problem.

I also keep my laptop by my couch so I reach for it vs my phone. I hate typing on my phone so I end up just clicking on a dopamine drip app rather than actual reading / work which I tend to do more readily on a laptop or desktop.

It is a behavioural problem at the end of the day. Which means it will take discipline and accepting some feelings of discomfort up front to change for the long term.
by inetknght | 2025-08-31 19:03:02+00:00
Overall, this is a fantastic dive into some of RISC-V's architecture and how to use it. But I do have some comments:

> However, in Chata's case, it needs to access a RISC-V assembler from within its C++ code. The alternative is to use some ugly C function like system() to run external software as if it were a human or script running a command in a terminal.

Have you tried LLVM's C++ API [0]?

To be fair, I do think there's merit in writing your own assembler with your own API. But you don't necessarily have to.

I'm not likely to go back to assembly unless my employer needs that extra level of optimization. But if/when I do, and the target platform is RISC-V, then I'll definitely consider Ultraseembler.

> It's not clear when exactly exceptions are slow. I had to do some research here.

There are plenty of cppcon presentations [1] about exceptions, performance, caveats, blah blah. There's also other C++ conferences that have similar presentations (or even, almost identical presentations because the presenters go to multiple conferences), though I don't have a link handy because I pretty much only attend cppcon.

[0]: https://stackoverflow.com/questions/10675661/what-exactly-is...

[1]: https://www.youtube.com/results?search_query=cppcon+exceptio...
by Refreeze5224 | 2025-08-31 19:03:04+00:00
It is refreshing to see one of the most vital elements to human survival treated as just that, rather than a mere commodity like gold, to be bought and sold with a focus on equity and profit.

This does not and has never made sense, in the same way that only buying food with an eye towards someday making a profit from it does not make sense.

It does make sense within our current economic system, which sadly does not make any distinction between the fundamental requirements of human life, and all other products or commodities. We all are worse off for not being able to see the difference and separate the two.
by bigstrat2003 | 2025-08-31 19:03:04+00:00
For music, Bandcamp and Qobuz both offer FLAC. iTunes store and Amazon both sell DRM-free downloads as well (though with lossy compression).

For video, there's never been a DRM-free store, unfortunately. Your only option there (besides hoisting the black flag) is to buy DVD/Blu-Ray releases and rip them yourself.
by benreesman | 2025-08-31 19:03:05+00:00
Nice work and good writeup. I think most of that is very sound practice.

The codegen switch with the offsets is in everything, first time I saw it was in the Rhino JS bytecode compiler in maybe 2006, written it a dozen times since. Still clever you worked it out from first principles.

There are some modern C++ libraries that do frightening things with SIMD that might give your bytestring stuff a lift on modern stupid-wide high mispredict penalty stuff. Anything by lemire, stringzilla, take a look at zpp_bits for inspiration about theoretical minimum data structure pack/unpack.

But I think you got damn close to what can be done, niiicccee work.
by bonoboTP | 2025-08-31 19:03:32+00:00
It wouldn't be any worse PR than the current one. They'd use the same argument to ban that guy's app as they use now to ban sideloading. That it's not secure and it's a protection of users to ban it.

This is "one weird trick" thinking, but there's no tech-based counter if the device manufacturer is determined enough.
by kiitos | 2025-08-31 19:04:00+00:00
database on the same machine as the application server, RPS limits enforced via

var issuedRequests = i + 1; if (issuedRequests % REQUESTS_PER_SECOND == 0 && issuedRequests < REQUESTS) { System.out.println("%s, %d/%d requests were issued, waiting 1s before sending next batch..." .formatted(LocalDateTime.now(), issuedRequests, REQUESTS)); Thread.sleep(1000); }

don't take any conclusions away from this post, friends
by convolvatron | 2025-08-31 19:04:15+00:00
in particular, the database already _has_ a cache. usually its on the other side of the evaluation, at the block layer. which means that you have a pay a cost to get to it (the network protocol, and the evaluation).

if you use materialized views, that surfaces exactly what you want in a cache, except here the views consistency with the underlying data is maintained. that's hugely important.

that leaves us with the protocol. prepared statements might help. now we really should be about the same as the bump-on-the-wire cache. that doesn't get us the same performance is the in-process cache. but we didn't have to sacrifice any performance or add any additional operational overhead to get it.
by haswell | 2025-08-31 19:04:23+00:00
> This is like saying I can fix global warming by recycling better and going vegan.

I can't agree. I don't think anyone who is diligent about recycling or making environmentally conscious food choices believes it will fix global warming. But doing the things that we can is still important for changing culture over time.

If you're a young person growing up in a home that thinks about these things responsibly, the hope is that more people reaching adult-hood will think about the world through that lens. Is it enough? No. Is it still critical? I think so.

> I've had managers who tried. None of them lasted at these companies that did not care.

I've worked at places where management did not behave in the way you describe. The point being that such places exist, and such an outcome is not so impossible.

One way to guarantee things will not change is to do nothing.
by martin-t | 2025-08-31 19:04:36+00:00
One theory I read is that historically states got bigger only up to the limit of their ability to manage the land and force people to pay taxes.

I don't know if it's right or wrong (and to what extent, most natural systems are complex with a multitude of factors influencing them) but I can easily imagine a similar principle applying to companies.

If you wanna expand by starting an office in the next town over, you need a way to communicate with it, otherwise it's just a separate business with a cash injection to start.

So you have a point.

But the core issue stands - the power hire/fire people, determine their salary and also capture their entire economic output leads to a power imbalance.
by trallnag | 2025-08-31 19:04:40+00:00
"Gott strafe England!" (translates to "May God punish England!")

Whenever the British Empire is mentioned, I involuntary have to think of this German slogan from WW1. The only military memorabilia I own carries this slogan. I came across the slogan in a meme featuring Donald Duck and found the vignette on a flea market.
by boltzmann64 | 2025-08-31 19:04:44+00:00
I am think you are misunderstanding the entire premise of git. There is no "force push to trunk breaks every other developers' working copy." There is no central repo/trunk where all the commits are pushed. You are probably thinking of svn.

In git, your repo is the canonical repo and that is where you work. You work on a new feature and when you are ready, you "git format-patch" and "git send-email" to the community via the mailing list or other developers. A discussion may happen and people may or may not decide to apply the patch to their own repositories, with "git am." This doesn't break every other developers' working copy because they decide how to apply the patches they got in their email. No central repo, no trunk, guaranteed by the d in git dvcs.
by _aavaa_ | 2025-08-31 19:04:46+00:00
That was not always the case. See older books that have legal hocus pocus written on the first page stating that you cannot resell this books without the express written consent of the publisher.

Now we have the first sale doctrine for many physical items. It’s not being applied to digital goods since we buy a license to the thing instead of a copy of the thing itself; or so the companies want to argue.
by dlcarrier | 2025-08-31 19:04:48+00:00
AGI is a collection of neural networks that can generate $100 billion in revenue.

Sue, it's an awful detention of AGI, but it's not like any of them aren't.

Whatever happened to post-singularity or strong AI or any of the other terms? It seems the more resources we throw at neutral networks, the less proportional gain we get out of them, and we keep lowering our expectations, often redefining success with new, milder terms.

Maybe if we keep developing them we'll get something that approximates thinking, but for now we still don't have large neural networks that remap themselves to train on the fly, something even the most basic living organisms can do, even without a central nervous system.
by littlestymaar | 2025-08-31 19:04:58+00:00
Every line of code is a liability, in the accounting sense of the word. That is, it's what makes the asset (software) exist.

The balance sheet is always equal, so you always have as much liability as asset in amount. Despite the negative connotation of the word, some liabilities are good (earnings[1] is the best, equity and long term debt with low interest rate are nice too), but some are bad.

And it's the same for code, spitting more code to do the same thing is akin to emitting too many shares, having brittle code that needs constant intervention to keep working is akin to high interest debt.

[1] yes, your company's earning belong to the right side of its balance sheet.
by grumbel | 2025-08-31 19:05:36+00:00
> They just don't know that decentralized platforms offer long-term solution.

The crux is that most "decentralized" platforms don't offer long-term solution either. The whole concept of Federation only works as long as everybody is nice to each other, once that stops happening or bus-factor kicks in, you are back to all the problems of centralization and lock-in, since everybody is a user on a server they don't control. It's really no different from early Twitter or Reddit days when everything was nice and open until it suddenly wasn't.

Platforms that are actually build for true decentralization, where the user owns everything and the server owns nothing (public key crypto + dumb relay servers), are still extremely rare. Nostr is one that seems to be on the right track, but that's about the only one I can think of.
by timr | 2025-08-31 19:06:06+00:00
You're quoting this like it's some kind of indictment, but...it isn't controversial. There's nothing there that's surprising, and it's why he was hired into the role. Nobody is trying to memory-hole this.

Prasad is not "anti-vaccine". He's been explicit that he thinks the Covid vaccine was approved for children without sufficient evidence [1]; he thinks that healthy children don't need it, that there's a documented side-effect that may abrogate any positive effect from vaccination [2]; that some of the vaccines on the childhood schedule are excessive [3]; and that ACIP has historically done a very poor job of reviewing vaccines.

You can have legitimate debates over any of these points, but they're not wacko "anti-science" conspiracy theories that remove a person from polite society.

[1] Because it was. It was a joke of an approval, based on extremely weak surrogate endpoints (i.e. antibody titre)

[2] Myocarditis, particularly in boys. This is just a fact.

[3] I actually don't know which ones he thinks are excessive, but you'll note that he says children should get the MMR vaccine.
by troupo | 2025-08-31 19:06:15+00:00
> You could also just test everything with manual QA. Literally pay some humans to click through your application following a defined path and asserting outcomes. Every time you make a change.

How to see if someone is arguing in bad faith? Well, they pretend that reductio ad absurdum is a valid argument

> Obviously all of these have different costs. And obviously, testing a pure function with unit tests (whether example based or property based) is going to be cheaper than testing the behaviour of that same function while incidentally testing how it integrates with its collaborators.

Let's see. A single scenario in an integration test:

- tests multiple code paths removing the need for multiple unit tests along that code path

- tests externally observable behaviour of the app/api/system is according to spec/docs

- tests that all units (that would otherwise be tested in isolation from each other) actually work together

This is obviously cheaper. Programmer (the expensive part) has to write less code, the system doesn't suddenly break because someone didn't wire units together (the insanely expensive part, 'cause everything was mocked in tests; unironically true story that hammered the final nail in the coffin of unit tests for me).

By the way, here's what Kent Beck has to say about unit tests: https://stackoverflow.com/a/153565

--- start quote ---

I get paid for code that works, not for tests, so my philosophy is to test as little as possible to reach a given level of confidence

--- end quote ---
by nromiun | 2025-08-31 19:06:17+00:00
What? But he said this on Rust:

> ‘”I have written only one Rust program, so you should take all of this with a giant grain of salt,” he said. “And I found it a — pain… I just couldn’t grok the mechanisms that were required to do memory safety, in a program where memory wasn’t even an issue!”

Also that Rust is slow. That is not nothing.
by aseipp | 2025-08-31 19:06:27+00:00
Yes. I have one repository, which is a fork of an OSS project, with a 7-way octopus merge of various patches I carry, and another 2-way merge on top of that one. Every week or two I pull the latest changes from upstream and I rebase all 9+ branches in a single command. If there are conflicts on any one of the parallel streams of work, I can trivially fix each conflict individually in any order I want.

Jujutsu does not treat merge commits any more or less special than non-merge "1-parent" commits. (We used to do this, actually, and occasionally special case merges, but most users found it very confusing.) This regularity means most commands work fine on merges. 'jj new X' is a new commit on top of X. 'jj new X Y' is a merge commit with X and Y as parents. 'jj new X Y Z...' is a 3-way merge, and so on and so forth for any number of commits. Similarly, 'jj rebase' can handle moving commits and preserving the graph structure no matter how many edges are involved in particular, and can add or remove parents from a given commit. This means that conceptually the jj commit graph is merely a simple, ordinary DAG, and operations are transformations on the DAG like you expect.

Actually, this exact workflow is beloved by many community members, and I guess I can take responsibility for popularizing it originally, the "Mega Merge" technique. Instant, easy rebase is an essential part of making this technique viable.

- https://ofcr.se/jujutsu-merge-workflow - https://v5.chriskrycho.com/journal/jujutsu-megamerges-and-jj...
Debian PPA IPv6 address ends in deb:deb
by Neywiny | 2025-08-31 19:06:42+00:00
Currently, at least:

> nslookup ftp.de.debian.org Server: 192.168.1.1 Address: 192.168.1.1#53

Non-authoritative answer: Name: ftp.de.debian.org Address: 141.76.2.4 Name: ftp.de.debian.org Address: 2a13:dd80:deb::deb

Just a nice easter egg for those of us debugging 404s on apt update...
by Telaneo | 2025-08-31 19:06:47+00:00
I'd probably still want a common repo to get software from, for the same reason we use package managers and repos on Linux. Not to mention that the app store experience is more friendly to the newbies out there. But the 'just download an apk/exe/.app and run it' should still exist as a lowest common denominator. Not to mention that the existence of that possibility will hopefully keep stores in check and not become overtly hostile, since if they do, users can just say 'fuck it' and download their software piecemeal.
by smitty1e | 2025-08-31 19:07:47+00:00
> Clearly, the company with fewer lines of code is better off.

Well, there is some dimension pertaining to how well the code is understood by the employees of Companies A & B.

The theoretical advantage of a smaller codebase is of scant practical value if that codebase cannot be maintained.

And maybe this point is captured by the "very similar companies" statement.
Show HN: Oaki–job finder and resume maker
by nour_elba | 2025-08-31 19:07:48+00:00
Hi! I built Oaki about a year ago as a side project to solve my own frustration with job applications, and it’s now helping thousands of users with their job hunt.

I had quit my previous (consulting) company when I decided to step back into the job market, and I HATED applying to jobs with a passion. Finding good jobs, sifting through all the crap, etc.etc. So I built a rough MVP and posted it on Reddit and got more paid users than I ever had with any other company/startup I was in. To top that off, I found a really awesome job (and landed many more interviews) with it, so I know from first-hand experience that it works!

Oaki’s 3-step flow: 1. Import or build a modern, eye-catching resume in under 2 minutes with Oaki 2. Set preferences (role, location, salary, and more) 3. Oaki finds best-fit jobs daily, generates a slightly tailored resume for each, designed to amplify each users' uniqueness

On that last point, we're really big on safe AI use; that means we never use it for spam or 'spray and pray' applications.

On the surface it looks pretty simple, but Oaki is powered by some really cool tech, blending ML with LLMs, orchestration, hybrid search, and much much more from finding jobs to printing high quality dynamic resumes, and even helping you apply to jobs.

While the job finder itself is free (and all accounts get a free no-credit card trial), I do have to charge people for the AI-generated resumes/applications part.

For anyone who needs it or knows someone, I hope it can help with the job search; it's reeeally bad right now. You can also use code `ICAMEFROMHN20` to get 20% off, or DM/email me at nour@oaki.io (I read everything).

Cheers! Nour
by zozbot234 | 2025-08-31 19:08:28+00:00
Meditation practitioners have been writing for thousands of years about the problem of "quieting the monkey mind" which reads just like your typical description of ADHD, only in the specific setting of a meditation retreat (which is typically an intentionally challenging, spartan, uncomfortable environment - hence one where pretty much everyone is enticed to get fidgety and hyper). It's difficult for everyone at first!
by netr0ute | 2025-08-31 19:09:33+00:00
> LLVM's C++ API

I think I read something about this but couldn't figure out how to use it because the documentation is horrible. So, I found it easier to implement my own, and as it turns out, there are a few HORRIBLE bugs in the LLVM assembler (from cross reference testing) probably because nobody is using the C++ API.

> There are plenty of cppcon presentations [1] about exceptions, performance, caveats, blah blah.

I don't have enough time to watch these kinds of presentations.
by dmfdmf | 2025-08-31 19:09:39+00:00
The best advice I got on breaking a bad habit is that you can't do it by ordering yourself "don't do X" which takes will power and teeth-gritting effort. Any success with this method will fail over time. The problem is that it is like telling yourself to not think about pink elephants which makes you think about pink elephants.

So the trick is to set the rule [don't do X, do Y instead] and immediately stop thinking about X and move on to Y. Just shut down the "do X" thought and shift to Y. "Y" can be anything even the absurd like patting the top of your head 5 times because it breaks your subconscious programming. In fact, the absurd Y's seem to be more effective BECAUSE they a silly or ridiculous. Of course, as you gain skill at this method you can start using more productive Y's like doing 10 pushups or do a quick household chore, do a small task on your to-do list, etc. Once the subconscious program is broken then thoughts to do X will fade and you can move on to X2 that you want to change.
by grues-dinner | 2025-08-31 19:10:50+00:00
> Whatever treatment sustains the health of your heart muscle will surely be equally helpful to all the other muscles in your body

I'm not sure that's a foregone conclusion. Loads of interventions put extra pressure on other body systems (often, but not always, the liver and kidneys). Sometimes to the extent that even if you may "manage" the original complaint, it comes at a substantial cost to overall health. And heart muscle is pretty special anyway, so it's quite possible it's a separate treatment to skeletal muscle problems.

And pretty much any system failing can kill you so if long term life extension comes from targeted treatments per problem, you need to hit bones and cartilage, muscles, skin, nerves, brain, GI tract, kidneys, liver, immune system, endocrine system, lungs, etc etc, but also not overstress any one with the treatments of the others and also handle almost-inevitable cancers.
by bonoboTP | 2025-08-31 19:10:55+00:00
Do you think you were in a position there to hear about any of the actual "big plans" of Google, in case such do exist? Nobody is saying that every last employee who executes on such tasks are "in" on some big secret plan.

Also the two are not in conflict. People are getting promoted for things that advance company goals. They are following rational self-interest of the company.
by DaSHacka | 2025-08-31 19:12:07+00:00
> Or, play with servers and K8s, burning your investors money, then move on to the next gig and repeat...

I mean, of the two, the PaaS route certainly burns more money, the exception being the rare shop that is so incompetent they can't even get their own infrastructure configured correctly, like in GP's situation.

There are guaranteed more shops that would be better off self-hosting and saving on their current massive cloud bills than the rare one-offs that actually save so much time using cloud services, it takes them from bankruptcy to being functional.
by pflenker | 2025-08-31 19:13:43+00:00
I have set up my projects in a way that whenever I work ok it, all the context I need is available from one single starting point. My goal is that zero friction is needed for to resume work on any project, no matter how long it was paused. My habit to keep the context for each project fresh is a at-least weekly, timestamped, append-only Captain‘s Log, which - just as its namesake - is a very brief 1-2 sentence summary of what’s going on for everyone to get back into the story after the commercial break. „No updates“ is a valid update. Since its append-only, retrieving more context is just a matter of keeping on reading after having read the latest update.
by ed_chambers | 2025-08-31 19:13:52+00:00
Disable history.

When it is disabled the yt screen will not contain any recommendations and will actually be empty. After you do this, you'll find yourself dozing off to yt on occasion and reaching a blank screen only to realize you didn't actually come to watch something specific but more as a force of habit and you'll lose the trigger. I recommended this to a couple of friends of mine and they all say it worked wonders.

I'm not sure if you only have to disable history or some other options as well, but basically you want a blank screen when you reach yt. You can still have subscriptions, but the idea is that you intentionlly look for what you want to watch instead of having the yt screen recommendations offering videos and you choosing.