4,458 karma · joined January 6, 2010
Live: Portland, OR
Work: ▲ | ex-HashiCorp Nomad Eng Lead
schmichael most places on the internet, hmuSo the scheduler serializes execution of critical sections?
> In this case, messages are passed between work that contains the data. No locks are required at the expense of memory footprint.
Are messages copied or moved? If moved is there compile time checking for ownership or runtime debugging tools?
Both are (or at least were originally) “crippled” compared to “real” languages.
Both grew immensely each eventually escaping their single-vendor origins.
Regardless the author getting 7+ years of runway out of a specific technology is hardly a waste! My average technology switching time is probably closer to 5-6 years.
I feel like the author missed a more obvious comparison between Puppetlang and HCL: vendor specific languages.
When you consider them from that perspective it’s clear that the decision is based more on which company you trust to serve your long term needs over any point in time implementation details. Is that company Puppet? HashiCorp? Pulumi? The implementation details obviously matter but if you’re investing 7+ years into an ecosystem like the author did, then there are a lot more factors than just syntax.
I’m the Nomad Eng Lead and while licensing is out of my control we have a lot of users in a similar position to you: not knowing what might someday could be construed competition. I can’t make any promises but will do whatever I can to give you confidence that Nomad is still the right tool for your job.
We’ve got to make it easier to drop privileges on Linux without raising them first.
> You’re going to see view changes when the primary crashes or is partitioned, and VSR’s telltale round robin rotation of the new primary among replicas, until a new primary is established. This is in contrast to Raft, which elects a primary at random, but then suffers from the risk of (or increased latency to mitigate) dueling leaders.
It seems like regardless of primary/leader selection mechanism used (deterministic/roundrobin vs voting), you still need a quorum of nodes to agree (and for the minority side to know they can't proceed). Surely in a round robin selection mechanism some sort of vote or liveness check must be performed before it is safe for the #2 node to promote itself to #1/primary? Otherwise if the link between #2 and #1/primary is partitioned, #2 could unilaterally assume it was the primary/leader, even if the rest of the nodes could still communicate with #1 (the original primary). I don't understand how round robin solves the agreement aspect that leader election does.
The simulation seems to only partition nodes and not links so I'm not sure it exercises asymmetric connectivity between members. Although it does mention flaky links, so perhaps they do cover this case.
Edit: I have been informed there is still a vote. :)
The most obvious and nefarious example is that the most severe and painful kinds of backward incompatibilities are superficially permissible under SemVer: behavior changes. To confuse the issue even more these behavior changes might be to fix a bug and restore the original or intended behavior of a feature! There's no single best way to communicate that to users through a version number: if libfoo v1.4.3 broke a behavior from 1.4.{0,1,2}, should the fix be in v1.4.4 or v1.5 because technically you're creating a backward incompatibility! Does the answer change if the buggy behavior has been around multiple patch releases or multiple minor releases? Does the scale of the behavior difference impact the versioning scheme chosen? Does the approximate number of users impacted impact the versioning scheme chosen? Probably!
ZeroVer is, in my opinion, a hacky but fine solution to this: no guarantees! The developers just want to develop and it's up to the consumers of the project to figure out what release they want to use. ZeroVer is when a project chooses not to try to communicate very much through version numbers. I think that's often better than some strict adherence to SemVer that falls apart under any sort of reasonable scrutiny.
I like how browsers have gone: basically give up on the traditional Major Version Number. A Chrome 2 or Firefox 2 that is a radical redesign would probably be an entirely new product with new branding and versions. So just bump the first number a lot to communicate feature releases to users, and bump the other numbers for basically internal build reasons. The minor, patch, and build numbers are free to be used and abused for a lot of complex purposes incredibly complex and popular projects like browsers (and operating systems) have.
I think a lot of projects, Nomad included, would probably be best represented by BrowserVer. Nomad is deeply committed to incremental improvements and backward compatibility, so any "Nomad 2.0" efforts are more likely to happen under a new project. Frankly Nomad 1.0 was more about marketing than any sort of meaningful feature or compatibility promise: we wanted to communicate Nomad was stable and reliable. Going from 0.x -> 1.x is an easy way to communicate that even if nothing more significant happened from 0.12 -> 1.0 than had happened from any 0.X -> 0.Y.
“No reason to dispute”? Surely the most obvious explanation for a scene about recognizing someone in a brothel and both claiming to have been “tricked” is that at least one of them is lying, and poorly at that?
It seems just as plausible to me that the brothel was very obviously marked and so the idea that anyone could be tricked into going there unaware would be a hilarious joke.
I obviously don’t know either, but I just wish historical articles wouldn’t act so certain about things they offer no proof of!
Back when I wrote Python and had to wire up event loops by hand, signalfd seemed to offer a similar experience. Sadly signalfd’s issues are well documented, and it’s really hard to handle signals in complex code bases without help from a runtime like Go’s: https://news.ycombinator.com/item?id=9564975
Monetizing content causes creators to create the content that monetizes the best.
Long thoughtful posts may be the highest “quality” across multiple dimensions, but a meme or witty joke is likely to garner a tip from more people because it’s more accessible, digestible, and can pander to baser emotions easier.
I don’t think any micro transactions based reward system for commenters will create a dynamic diverse flourishing community of communities like Reddit. It will feed on whatever gets the tips until only a certain demographic sticks around to tip each other and receive tips (aka patting each other on the back)
Reddit’s largely anonymous rewardless system means you only comment if you actually care. Money can’t buy that.
HN’s anti-aging obsession is wild.
I get zero anti-aging content from any other news source, user submitted or otherwise, and yet without fail it seems like there’s at least one anti-aging article a week on HN. Any other topic I find on HN I run into elsewhere: space, JavaScript, crypto, lisp, etc etc. Only on HN do I regularly see anti-aging “news” promoted.
The discussions are all about the same: it’s a scam! It’s worth a shot! More research is needed! Anti-aging is unnatural! Anti-aging is a biological imperative!
idk it must have fans to get so consistently upvoted, but I do not get the appeal.
However the article also states signals take 22 hours to reach the spacecraft. Do radio waves travel slower than the speed of light even in the vacuum of space? I assume the waves do not spend the extra 3.5 hours in Earth's atmosphere!
They should drop the underscore. At the time I wrote this comment "pop" appears 21 times on this page, and only 3 of those times bother to follow it with an underscore.
The brand is Pop or Pop OS. The only thing the underscore accomplishes is communicating "this is at least a little awkward" which I hope they don't intend.
Was there any evidence that they couldn't do "normal bank stuff"? AFAIK SVB still had ample avenues to raise liquidity before the bank run Thiel orchestrated. SVB's stock would have suffered immensely, but their operations and deposits would have been fine as far as I can tell.
Reasonableness is relative and use case dependent. The post itself illustrates how the cost is insignificant compared to other "wasteful" operations related to CSS handling.
If this is too much overhead for your use case, there are plenty of other approaches and languages to choose from.
If you didn't prevent preemptive context switches during your benchmarking, it's entirely possible the only thing you measured was the context switch time.
This is a fun experiment, but to get a rigorous idea of the overhead involved takes more work than what anyone in the post or comments has done.
edit: I'm not actually sure you are counting the context switch, but I still don't think estimating instruction count that way is particularly useful.
Layoffs suck. I’ve been laid off before and wouldn’t wish it on anybody, but with the right supports it can be an opportunity. I hope we see some exciting new ideas come from folks who have been given a chance to go their own way.
Nomad is one of these projects. We support a dizzying array of platforms (32bit Intel Linux?!). We have no idea how popular our Consul service mesh integration is. Are bug reports a sign of use or just failed experiments? Is anyone running on macOS in production or just ephemeral dev agents?
Surveys about this are just asking humans to do something computers can do better.
Obviously privacy and consent are paramount concerns, but not only are they solvable, in open source they’re fully auditable (and a fork could fairly easily maintain a patch that removes it outright).
I think open source largely rejecting telemetry puts it at a huge disadvantage to proprietary and SaaS software where it is the norm. I’m very excited to see someone as thoughtful and well reasoned as Russ Cox to be trying to move the status quo forward.
Their data sheet also advises calibration if used at “high elevation.”