skysight-inc/HackerNews huggingface dataset:
Maybe the culture of easy to understand commits exists for a reason?

Imagine someone sending in a patch for the Linux kernel, or for git itself, only it isn't only the patch but a bunch of temporary patches that in the end forms something usable. (But don't worry because a git feature will make the log skip over it!) Would you really want to review that? Would you really want it stored in the repository for all eternity?

Crafting commits that are easy to understand and gives enough context to understand the change is the only way a large software repository can survive without collapsing under its own historical weight.
People understand software better than they under HDL designs. To most people, they're pretty comparable
Could I see some examples of this evidence?

Let's consider a really simple object graph:

A -> B
C

A holds a reference to B, C has no reference to other objects. A is responsible for Bs state. By the principles of encapsulation, B is part of As state.

What if it turns out later, that C has business with B? It cannot pass a message to A, or B. So, we do this?

A -> B <- C

Wait, no, we can't do that, because then B would be part of Cs state, and we violate the encapsulation. So, we have 2 options:

1. C -> A -> B
2. C <- X -> A -> B

Either we make C the god-object for A, or we introduce an abstract object X which holds references to A and C (but not to B, because, encapsulation). Both these implementations are problematic: in 1) A now becomes part of Cs state despite C having no business with A, and in 2) we introduce another entity in the codebase that serves no purpose other than as a mediator. And of course, A needs to be changed to accomodate passing the message through to B.

And now a new requirement comes along, and suddenly B needs to be able to pass a message back to C without a prior call from C. B has no reference to A, X or C (because then these would become part of its state). So now we need a mechanism for B to mutate its own state being observed by A, which then mutates its own state to relay the message up to X, which then passes a message to C.

And we haven't even started to talk about error handling yet.

Very quickly, such code becomes incredibly complex, so what often happens in the wild, is: People simply do this:

A -> B <-> C

And at that point, there is no more encapsulation to speak of. B, and by extension B is part of A's state, and B is part of Cs state.
If I had to pick, Single responsibility principle is #1 for me.

If each class does one thing, anyone will eventually figure out how it’s doing it. If it’s doing multiple things, all bets are off. It’s also the exact type of code that will break something unrelated when changed.

Mind you, we don’t need classes like DictionaryConstructor and StringParameterParser, but you should - in about one sentence - be able to say what each class’ purview is.
Yeah, something like that is what I've been looking for.
That's a cache miss though, the military dolphin in Johnny Mnemnonic is a big part of the plot. He even has a name, Jones!

Hard for me to forget since a friend ran a keyserver in the 90s called jones.[his-domain].net...
Same inventor of TEL additive for leaded gasoline also played a key role in developing CFC refrigerants (“Freon”) and later was killed by one of his own mechanical inventions.

https://en.m.wikipedia.org/wiki/Thomas_Midgley_Jr.
If it really is mydomain.space & not gmail.com (say), then why not use foo.bar? Not allowing `+` is all too common, but everyone allows `.`.
I can't read the article from here but attacking the supply chain isn't new. It is something that requires constant vigilance.
Not sure what you are talking about here but for example an RDS instance is simply an EC2 instance with a bunch of automation.

If you want to save some money write the scripts yourself and run them in a cron job. Took me a couple hours and I'm no sysadmin.

To me the best thing to do is move all your services into k8s and automate you DB (use open source). Then you can move to any provider when you realise the cloud pricing is shit.
Wow that's an interesting read. So anyone who holds a rubber stamp of a company can steal the whole company? That's some screwed up legal system.
> Years later, Java appears. I couldn't figure that out, either. I thought those variables were value types. Finally, I realized that they were reference types

I will resist replying to this.
> The complexity of Rust's ownership model is not added to an otherwise simple program, it is merely the compiler being extremely pedantic about your code obeying rules it had to obey anyway.

Not exactly.
I remember when I learned Rust a few years ago (so maybe things are different today), sometimes the compiler didn't let me do things that should have been perfectly fine things to do.
This forced me to write the code in a more complicated way than what should have been necessary.

I think this often happens beacuse the compiler's rules don't always match reality.
Like if I have a struct S that contains members X and Y, the compiler doesn't let me have two mutable references to that struct even if one of them only changes X and the other one Y.
In reality there is no problem but compiler thinks there is a problem so it forces me to write more complicated code.

I have had this almost exact problem in a program I was writing.
The reason I could not just pass X to one function and Y to the other is that one of those functions I had to call was from a library that could only take an S.
The solution was that I had to write a macro that extracted Y from S and call that macro every time I wanted to pass Y to a function.
25% of U.S. adults are not active enough to protect their health
No, the Stripe post was on the front page for at least an hour and half before the Bolt post was submitted. I covered this in (mind-numbing) detail here: https://news.ycombinator.com/item?id=30070287
Requesting Features
Yeah +1 for scaleway been using them for years and they are great.
Gradle.

Thankfully Groovy is not in the equation except for old Gradle files from before the Kotlin Gradle syntax existed.
Ask HN: Where are the creative, collaborative, fun corners of the internet now?
In the late 90's and early-mid 2000's, there were various public communities that thrived where people created things together, learned how to code together, traded memes (before it was cool). Do places like this still exist? or has it all been relegated to Twitter, reddit and 4chan?

It just seems hard to find a small-ish community that has it's finger on the pulse of something now.

A few that come to mind from long ago: AOL (warez rooms, etc), DeviantArt, various IRC channels, maybe some old subreddits.
I second the other commenter: this is very good form to copy — they explain the economics and getting partially superseded by new iOS features, offered a refund to recent purchasers, and gave clear expectations for the future. That’s way better than the Google-style neglect until the servers disappear or, worse, selling it to someone who’ll lard it up with ads and spyware.

For such a cheap purchase, that’s better than I’ve had with certain expensive enterprise software vendors who shall remain nameless.
AMD spun their manufacturing off as Global Foundries, so yes.

And yeah, I’m not sure this distinction the poster is making between arm as like a software company and NVIDIA like a hardware company makes much sense.

Arm makes IP (in the chip design sense). NVIDIA makes IP and combines it with IP from Arm and others, and produces some product designs based on the chip, which NVIDIA tests and writes software for. But ODMs make the products and fabs make the chips. I really don’t think calling some of this like software and some like hardware is very explanatory, at least partially because NVIDIA writes a lot of software, and because I think the person reading that description might come away with the impression that arm just produces the architecture, and not actual core designs (which NVIDIA, Denver aside, uses).
> decry the post rather than respond

Do you really think that https://news.ycombinator.com/item?id=30070287 is "decrying" rather than "responding"? and that archive.org (or hnrankings.info, for that matter, which we have no connection to) "could be easily manipulated"?
> "The War with the Newts"

Good book. I read it at a young age, and missed most of the irony and references to the real world, and still found it engrossing.
This article showing the research into lead and crime I thought is interesting

https://www.verywellhealth.com/lead-crime-hypothesis-4147074
I agree that choice in employer is relevant, but my impression is that the influence of developers is often disregarded completely. The decisions in corporation comes mostly from the top.

It is also an opportunity because it allows you to learn a lot in such an environment. Facebook management isn't stupid, they know the angles to push for developers to rationalize their work as something beneficial, how to make people feel important and peoples overconfidence blinds them to see a broader picture. Some just withdraw themselves from that and just focus on the technical side. Not a good excuse of course.

I know a lot of people expected more from classical software nerds, more from the internet and its effects. And it was something to rely on for a time. But overall user behavior was much more influential. People bought at Amazon because it is convenient. They shared their lives on Facebook to compete against each other. They did not care about the consequences either for whatever reason.

Many hate these developments too and maybe devs could search employment elsewhere, but it would not change that much as ultimately they are replaceable too.

Honestly, don't give those with animosity a noble lie. I think some devs could very well profit from having that sentiment being screamed in their faces because they can see the problem as well but believe it is what people want or they even hope for people from outside the industry to make some noise.
I love the corollary developing here called Chesterton’s cage. It’s an extension of the fence, but on four sides around you (or something of value).
This depends heavily on the context. In The Art of Computer Programming, the analysis of algorithms is done in terms of machine code. On the other hand, the proverbial centipede lost its ability to move as soon as it started wondering about how it moves.
Is indoor lead paint is still being sold anywhere in the world? Not banned doesn’t necessarily mean it is actively used.
Has Godwin’s Law, the Rule of Nazi Comparisons, Been Disproven?
This is a movie with no less than Dolph Lundgren, Ice T, and Henry Rollins, competing to chew the scenery with supporting characters.

Tough call, but Ice T's Low-Tek style is what I remember best.
> Maybe it's a safe place but playing with polite people is more enjoyable to me now than playing with insult gatlings.

You say that like having a place be safe is inherently negative. But your post is a textbook example of why people want safe places!
I remember I bought a few phones from Aliexpress once for one of my IoT projects. I was somewhat surprised they don't really hide the malware, it's preinstalled. These are not just the usual bloatware you can't install but also the main web browser already modified injecting random crap.
Yeah, I'm afraid you're definitely wrong on this. I've used Modafinil extensively at several different doses. Even at a quarter pill (50mg) you will struggle to feel even remotely tired if you take it after 9am (assuming you go to bed at a normal-ish time).
And pigeon guided bombs: https://en.m.wikipedia.org/wiki/Project_Pigeon
> narrowly targeting webdevs

That’s the impression I get as well, but it’s a shame since MacBooks are super popular among back-end engineers.

I would even speculate that by now, Mac-centric web devs are handily outnumbered by non-web devs (plus web devs doing backend stuff in Go, Rust, whatever).

I get that maybe Panic just doesn’t see that as their natural market, but I really love the polish of their apps and do wish Nova (or back in the day, Coda) met my needs.
https://instalogin.co (shameless plug) - protect your privacy by getting a new email for every website.
The Why and How of Everyday Innovation
Looking at used Teslas for sale, almost all of them I can see ~ 3-6 years old in my country are only 10-20% cheaper than new. It seems currently they're depreciating 1/5 max in that 4 years.
Well, we can always clarify things for people who don't understand HW as good as SW, but for correctness we have to call a spade a spade and not help spread misinformation just because it sounds easier to understand than the facts, for the less informed users.
Super Twos-day: 2022-2-22 next month is a Tuesday
Noticed that last week and just thought it interesting :)
> It's almost a non-topic in Europe since leaded gasoline was banned (I'm actually wondering why: no leaded paints in EU?)

Leaded paints were certainly widely used as rustproofing primer on steel constructions, as a bedding compound, and as anti-fouling paint on boats. The traditional formula is a mixture of lead oxide and linseed oil, giving it a characteristic red color.

Most of these uses are AFAIU nowadays banned, and replacements are available for practically(?) all lead paint usecases. I think it's still possible to buy it for some special usecases, though (like buildings/boats built/maintained with "traditional" methods).
Yeah, based on this, any GSuite presentation containing a logo seems like it might meet Google's criteria for getting blocked.
Is there any chemical discovery behind this post?

It is technically possible, but you must discover the correct catalyzer, and it will still be hard to build and pick the grapheme sheets.

All proposals I've read are about making bulk graphite, or some small molecule like methane and then perhaps using them to make something useful like gasoline.

(I still think that using plants to make ethanol or biodiesel is more efficient, but for some reason people want a artificial way.)
Nice, I did this too. It's brilliant as backend for my iPhone, except that they are not putting imagemagick into the docker image and so your .heic pictures have no thumbnails and you can't view them. Still looking for solution to that.

One thing, you don't have to expose that mariadb port, all services in a docker-compose file are on the same network unless otherwise specified (and you can address them by their container name, build-in DNS!) :)

Oh and you can super-power it by Using Traefik for https, you just need to add some stuff to your docker-compose.yaml file. Although OP mentions a reverse proxy already, outside of this compose file.

I wrote a bit about this too with more detail, but I'm too afraid that HN will smash my poor Corei3 server :p. I want to get all of it on GitHub at some point, and then share it.
I am an NVIDIA employee in a niche of the HPC business. This is not an NVIDIA official opinion.

HPC is nice, but when you hear Jensen getting really excited, it’s not about dominating some niche like that, it’s about a vision of the shiny sci-fi high tech future, and actually delivering the tech to make it real.

So don’t just look at HPC to understand the NVIDIA ambition. Start at edge computing; imagine a world with ubiquitous autonomous robots (cars and drones and otherwise). Think of the onboard chips driving their vision and speech recognition models: That’s a great place for ARM and NVIDIA chips together, whether as one company or two. Watch a recent keynote and see how all the rest of the tech fits into place as part of that: 5G signal processing chips, for instance, something you might gloss over if you’re not in telecom. You don’t need a roadmap to see how it is all connected in support of this world of the future.

(I certainly don’t have the roadmap, either, I just watch the keynotes and help shuffle bits.)
Hmm. Have you ever had to handle one large dog who was determined to attack you? Or watched video of this happening to someone else, preferably?

Difference being, both of those animals evolved on land.
I don't think Node does this. Maybe some test runners will do similar things to show expected vs actual in assertions?

Or maybe I'm just so numb to it and I don't recall properly.
Apple's chips implement ARM ISAs, although Apple creates their own implementations rather than licence ARM's own core designs. How much this affects them depends on the licensing agreements between ARM and Apple, which only they know about, although Apple apparently have a favourable deal. They didn't publicly seem phased by the idea of Nvidia owning ARM, anyway.
Amfora, a Terminal Gemini Browser
presumably that places a greater burden on the server?
You kind have a point ... the original title is like making three lefts to make a right. :) My sense of the underlying insight is that if,

* the org's ability to get good customer requirements

* the org's ability to have good cross functional management between biz/eng

* poor domain expertise either in the domain or realm of software

* there's plenty of smart guys/gals but the domain of work is newish and complex (e.g. transition from app dev to distributed algos) so that scope is unclear and it's hard to know A much important B less so

then it really is better iterate early, often circling back to correct/improve any of the above when possible.
The Louvre is one of the few places where I actually felt like I could get lost in a building. It simply goes on forever. The sheer amount of works, objects, and information, presented to a visitor is astounding and hypnotic. For modern paintings, I like the Musee d'Orsay slightly more; but for sheer art history the Louvre is truly one of the greatest institutions in existence and a must visit for anyone.

They will recommend that you plan on not "seeing everything" in a lot of guides. Believe that. Making some choices for things you want to see beforehand will cut down on the exhaustion that often comes over you after you end up in a room filled with dazzling tea cups from 16th century France and yet you're just desperately trying to figure out how to get out. It happens to the best of us.
First one I found was blocking of eval()

https://searchfox.org/mozilla-central/source/dom/security/ns...
None of the flaggers were YC employees or YC-funded founders. Does that answer your question?
The Turtle That carries the Globe is peeing it to the space
duh...
One of the better Columbo episodes, "Any Old Port In A Storm", features Donald Pleasence as a California winery owner with some telling descriptions of American wine culture in the 70s.
That outline is hidden at the lower left in a small box collapsed by default. It's as if VS Code doesn't want you to look at it. In the case of breadcrumbs, clicking on it with the mouse is probably faster than searching.

I've been programming professionally since 2004, have tried the minimap on various editors since Sublime invented it, never found it useful.

As to tightly coupled code, well, ha, I don't know of a compiler/linter that won't spew 100s of errors because of one syntax error in a commonly used type.

I realize it's a unique workflow, that's why I want to know more why it's prioritized in every editor these days as I don't think this uniqueness qualifies it to ever become mainstream, much less prioritized.
>Eventually you have to apply a small stimulus (incremental change) and observe the response.

In any sufficiently complex system this is probably true. Often there's a reason for some thing being there, and that reason is often enough a workaround for an issue in an external library. Then the library gets updated, but the workaround remains.

I've observed this often enough. I try to add a comment whenever I do this linking to the issue on the external repo if possible, so that later on you can check if it's still needed.

But this is not fool proof and not everyone will leave breadcrumbs. The breadcrumbs might also be eaten in the meantime by some merges and refactorings.

In the end you're often left with a useless workaround, the person that made it is not in the company anymore, and there's nothing to observe for why it's necessary.

If you don't want your system to eventually collapse under its own weight, sometimes you have to go for a risky refactoring. Doing it incrementally mitigates the risk.
I don’t think that getting #1 ranking is INCREDIBLY hard. I’ve submitted stories that made it to #1. Sure, I didn’t write them myself, but my point is that if you have something interesting to say people will upvote you. It’s not all some big freaking conspiracy.
As far as I understand it everything should still work with permission. You just need to request permission first:

> the preflight requests will request permission from target websites to send HTTP requests with the header Access-Control-Request-Private-Network: true. If permission is granted, the response will carry the header Access-Control-Allow-Private-Network: true. "This ensures that the target server understands the CORS protocol and significantly reduces the risk of CSRF attacks," said Rigoudy and Kitamura.
> the compiler doesn't let me have two mutable references to that struct even if one of them only changes X and the other one Y.

The semantics of mutable references and other interface constructs must be independent from actual implementation, to allow for changes in the latter. So Rust is behaving as expected here. If the changes to X and Y are truly independent, you can have a function that returns separate mutable references to both ("splits" the struct). But if your library function takes an S, it might rely on the whole struct and then the changes are no longer truly independent.
Durability and Redo Logging in Databases
I quit caffeine about 8 years, only having a white tea on occasions. But I love a cup of decaf every so often. One day at work, one of my coworkers swapped the decaf pot with the regular pot and I drank a 16oz mug before I realized what was going on.

I was absolutely lit up and it was an incredible experience. I felt utterly amazing. Like I could take on the world. I had a hard time focusing at work, because I just wanted to be talking to people (not an extrovert) or going for a 10 mile run.

I can't compare it to cocaine, because I've never tried it, but I'm guessing the reason for your perception of it is because of your tolerance to caffeine.
You can know what's outside and you can leave your surroundings. The point is that you should understand first why things are in the way they are before implementing any change.
Author of the blogpost. Thank you for your feedback. The problem with hardware choice, is that many selfhosters have really low-power, budget, powersaving hardware, including myself. The point of this article was for me to discover how I could move some of my data away from Google, of which this is one piece.

I had this running on a Raspberry Pi 4 in this blogpost, which functioned just fine; although only with one user and little apps installed. I might do a follow up when I have used Nextcloud more extensively and explore different hardware options.
Seems like a nice editor, I would happily pay $10 for, but its not so much better then VScode or Sublime to be worth $100.
If you're interested how it works (and how to possibly implement it by yourself), I wrote about the idea a few years ago. [1] To Postgres, recovering as a clone looks the same as if someone suddenly unplugged the computer power cable.

The shell script that implements the idea with LVM snapshots (relies on an existing Postgres physical replica) is not too long. It's used over SSH.

$ wc -l /usr/local/bin/snapshot-*
164 /usr/local/bin/snapshot-create
16 /usr/local/bin/snapshot-drop
180 total

Had this tool existed at the time, I'd have probably used it (monitoring and REST API might be handy). Still, the core idea can be implemented very easily.

[1]: https://www.sedlakovi.org/blog/2019/03/fast-postgres-snapsho...
I'm doing something similar by cloning the data directory using BTRFS snapshots for backups and testing, apart from the UI is there a reason why this tool might be worth looking at?