skysight-inc/HackerNews huggingface dataset:
In the above description of optimistic locking, it is assumed that it is impossible to issue the same token to multiple clients. Nodes can agree that a given token has also never been issued before just like a monotonically increasing value. The nice property about non-monitonically-increasing tokens is that nodes may generate them without coordinating if you can make other assumptions about that system. A good example is when nodes use an ID they were assigned beforehand as part of the token generation, guaranteeing that the leasing tokens they mint will not conflict with other nodes' as long as node IDs are not reused.
Fascinating to imagine all the 16mm projectors hanging off the back of the consoles in order to simulate what would, many decades later, be a 1/8" thick OLED display.

I still think that was a rather prescient glimpse of the future of technology for 1968 (or earlier when art production began). Was that "common knowledge" in the sci-fi community back then? That future displays would be flat, thin, rectangular? I am thinking that the book Fahrenheit 451 had wall-sized TV screens so perhaps that was already a popular perception of the future.
You’re describing compare and swap which is a good solution. You’re pushing complexity down to the database, and remember this is distributed locking. When you have a single database it’s simple until the database crashes leaving you in state of not knowing which of your CAS writes took effect. In major systems that demand high availability and multi datacenter backups this becomings pretty complicated with scenarios that break this as well around node failure. Usually some form of paxos transaction log is used. Never assume there is an easy solution in distributed systems… it just always sucks
> I have a linux computer running a public server that has not be restarted in three and a half years. This is what I expect.

I restart my Linux desktop every few weeks, when the kernel updates.

For a reliable server, you want to exercise the restart ritual somewhat regularly, because when anything goes wrong (eg with the hardware), you might have to restart anyway, so you want to be sure that this works.
When I paid, it was with the expectation of supporting something open source. That's why I came to Bitwarden from Lastpass. This is really twisting the dagger in my back. They're probably preparing for an acquisition, since they have hit the same financial inflection point that CEO Michael Crandell was at previously when selling RightScale: https://bitwarden.com/blog/accelerating-value-for-bitwarden-...
Maybe there should be a system in place to fund that sort of thing.
I'm more skeptical than most on the current wave of AI tech innovation.

However, believe it or not, humanity can collectively work on different things at the same time. And the people putting emoji generators in phones are probably not the people I would want doing cancer research. And many many things that we rely on today were not directly created by research in those topics and were born from innovation in other unrelated areas.
So, I feel like "Docs-as-Code" has some context I'm missing, so I'm going to comment on docs in general.

I think there multiple kinds of docs for software.

* Comments explaining a specific section of code.

* API docs describing functions/classes/etc.

* Docs on how to use a library/class/etc. Usually including simple, isolated, examples.

* Tutorials on how to create simplified applications using the developed tools.

* Docs on how to deploy, configure, and maintain an application.

* Docs on how to use an application.

* Docs on how to troubleshoot an application.

* Docs on how to integrate applications.

* And likely others I'm missing.

Personally, I've been seriously frustrated by how bad most of the open source (haven't done much with proprietary code) documentation is. Case in point is Drupal and Symfony. Trying to use api.drupal.org is not fun, and Symfony's docs always cover the basics, and then there's nothing on pulling everything together into something complicated. So you try to dig into the actual code, and end up finding multiple layers of uncommented abstractions. Yes, I can eventually figure out what is going on if I put the effort in, but that's a lot of time that could be save by a few lines of comments.

I usually end up asking JetBrains AI about what I need, then use what it says after I fix the errors it makes... It's also very good at summarizing everything I'd find if I used a normal search. But that all only works if others have already asked and answered my questions.

Some things I've been trying to do to improve my own code's documentation:

* Unless the line is super obvious, even if I think it is obvious, I try to leave a comment. Yes, it seems pointless, but I have gone back to old code I remember being obvious without said comment enough times that I think it is worth it.

* Avoiding "elegance" in favor of "explicitness". For example, I use full `if` statements instead of ternary operators even when ternary operators would look better. For whatever reason the syntax of ternary operators has never sunk in for me, and the explicitness of `if` is much easier to parse. I also use very descriptive function and variable names. Basically, if I have to think about what something means, I try to change it so I don't have to.

* Split out functions into smaller functions as much as I can't. This means I can use descriptive function names. And I'm pretty sure it's just good practice.

I also have been trying to figure out ways to keep higher level docs closer to my code. I have some ideas, but haven't tried them yet. Has anyone ever written something that detects changes to a method/function, and then when you save your file it pops up asking if related docs need updating? Maybe add comments to the method pointing to where related docs live, and then your IDE/tool uses that to know what docs need updating?
Speed of light may be dependent on other constants and it will have then unpredictable effects
Here's a part from the "Respects your Freedom" page. The second paragraph explicitly excludes factory loaded and unupgradeable software from consideration.

>All the product software must be free software. The product software includes all software that the seller includes in the product, provides with the product, recommends for use in conjunction with the product, and steers users towards installation in the product.

>However, there is one exception for secondary embedded processors. The exception applies to software delivered inside auxiliary and low-level processors and FPGAs, within which software installation is not intended after the user obtains the product. This can include, for instance, microcode inside a processor, firmware built into an I/O device, or the gate pattern of an FPGA. The software in such secondary processors does not count as product software.

Source: https://ryf.fsf.org/about/criteria
"node1", "node2", and "storage" are three separate things in the distributed environment. Only storage accepts changes, and it's what verifies the incoming token matches the current token.

So node2 doesn't get to accept changes. It can only send changes to storage, which may or may not be accepted by it.
Yes, it's okay to abuse people because others are already might be abusing them.
Spline versus Pchip
I have a few personal thoughts on this but I think it ultimately comes down to the variation between people being more complex and harder to measure than it seems.

In a startup, there is some natural way to choose the 1 right person for the job, say, the Developer. They probably wouldn't be chosen unless they have a high level of ability, communication skills (hopefully) and a lot of productivity and proactivity. This could be directly related to the potential rewards of equity etc. but maybe not, maybe they are happy to be free to work at high and low level and to make educated decisions on everything. I did this job for the same money as my older job without much expectation of a large payout (never got one!)

But as soon as you hire 1 other person, things immediately change. It isn't just about their ability, although we often talk about that both in terms of testing it during interview but also measuring it using some KPI but a person is much more than ability. You can have ability and be lazy or lack ability but are a quick learner. You might be really easy to get on with but your stuff is slightly above average, or a complete a-hole but produce rock-solid code. You might be reliable, you might not, you might be motivated all the time, some of the time or none of the time. As much as we like to think we can have regular performance reviews, you can't put numbers on those things but you can put process. I can arrange a daily standup and weekly progress reviews to get slightly better at making sure you are on-track. I can try and count things like tasks completed or LoC or Stories completed or bugs in production etc. but these are also a rich tapestry and after-all, do you compare them to the 10x coder that you are?

Some people need to be told to do something properly, they need process, others will do it properly without being asked, they have passion. How can you tell? Mostly gut feel, and maybe a checklist! I think there is also a myth that if we only had tonnes of cash, we could be much more picky with hires and only get the best, that would remove a lot of bureaucracy but look at FANNG companies, they have this problem in buckets. People can fake their ability and passion to a point, they have 1000s of applications to process and they still have tonnes of meetings. Even if you hire someone with the same passion and ability as you, they will be still be different. They will be insistent on VueJS instead of C#, TDD instead of DDD, Unit Tests for everything or UI tests for some things. Each of those is OK but you still then create that Architect position to ensure consistency between teams, the Project Leader to ensure delivery times are balanced with technical perfection.

Personally, I have never believed that a company with more than, say 200 employees can ever be efficient. They can be rich but eventually they will buckle under their own red-tape or at the next culling that takes place under the "new trendy CEO who had successes at previous companies".
Titus is brilliant.

Also a good idea can be to familiarize yourself with all of the built-in apps and ones you install yourself, and explore their settings to make sure any data generated or downloaded is saved to a sensible folder hierarchy which you create on a drive other than C:. Like an external drive. A real storage drive, not OneDrive, I would uninstall that. Since C: is the volume that contains Windows itself it's good to be able to replace Windows whenever you want without fear that some of your valuable data is buried in some default folder deeply nested on your C: volume which can slow you down to a crawl picking through it.

If you really want to have all your files at your disposal without having to rely on internet connections or cloud storage.

Even if you've never professionally used a quaint old 4-drawer filing cabinet, and are even further from mastering the Windows file manager (currently named "File Explorer"), you can surely do better than the way it ends up if you leave the Microsoft defaults to work their mayhem.

You may find it ideal to end up with a separate folder hierarchy for each program you install, or each project you start, etc.

For one thing you get to do it the way you want and can more seriously consider gradual improvements from there when it makes the most sense for you. As long as it works nobody can tell you that it's wrong. And the whole time you know your valuable data is in folders & files at least one step removed from being jumbled up with all the Windows files & folders on the C: volume. Any data that builds up routinely should be intentionally directed by you to somewhere else so you can make sure that the space taken up on the C: drive is not excessive in case you want to back that up as a "system" for system recovery later. Temporary internet files can remain at default on C: just fine since they have a functional procedure for cleanup. When your valuable data is intentionally on a separate drive to begin with it's already "backed up" to an extent in case something unfortunate was to happen to your C: volume anyway. And you can unplug an external drive to reduce risk when you aren't really using it at the time.

Oh yeah, stay away from bitlocker since it can screw up your external drives. Unless you really are in the FBI or something ;)
Yes it does accept this formatting, although it's messed up. Here it is formatted https://pastebin.com/ueayaFkn
When an update comes out does that relationship get reset (does it start failing on things that used to work), or has it been a uniform upward march?

I'm thinking of how every SaaS product I ever have to use regularly breaks my workflow to make 'improvements'.
It seems like the “why” is eternally lost on us in this scenario.

If I could wave a magic wand and make all the colleagues verbalise what they’re doing, I would.

In the meantime, I’ll take the downvotes for pointing out that it’s fundamentally caused by a cultural gap, not just “those who don’t get it yet, and those who do.”
You could be held liable if it impacts someone else. A restaurant serving improperly cooked chicken that gives people E Coli is liable. Private citizens may not have that duty, I’m not sure.

You would likely also be liable if you overloaded an electrical cable, causing a fire that killed someone.

“Using it in the way it was intended” is largely circular reasoning; of course it wasn’t intended to hurt anyone, so any usage that does hurt someone was clearly unintended. People frequently harm each other by misusing items in ways they didn’t realize were misuses.

> This is untenable. Does nobody want a formally verified avionics system in their airliner, either?

Not for the price it would cost. Airbus is the pioneer here, and even they apply formal verification sparingly. Here’s a paper from a few years ago about it, and how it’s untenable to formally verify the whole thing: https://www.di.ens.fr/~delmas/papers/fm09.pdf

Software development effort generally tends to scale superlinearly with complexity. I am not an expert, but the impression I get is that formal verification grows exponentially with complexity to the point that it is untenable for most things beyond research and fairly simple problems. It is a huge pain in the ass to do something like putting time bounds around reading a config file.

IO also sucks in formal verification from what I hear, and that’s like 80% of what a plane does. Read these 300 signals, do some standard math, output new signals to controls.

These things are much easier to do with tests, but tests only check for scenarios you’ve thought of already
> just criminal liability (go to jail).

That just seems like a theoretical possibility (even if that). I don’t see how any engineer or even someone in management could go to jail unless intent or gross negligence can be proven.

> drivers carry insurance for this purpose.

The mandatory limit is extremely low in many US states.

> expected claims

That seems like the problem. It might take a while until we reach an equilibrium of some sort.

> that bad drivers can still buy

That’s still capped by the amount of coverage + total assets held by that bad driver. In Tesl’s case there is no real limit (without legislation/established precedent). Juries/courts would likely be influenced by that fact as well.
Off topic, but may I ask why you use a leading zero when writing the year? (01965 rather than 1965)

You're not the only person I've seen do it on this site, and I can't recall ever seeing it not on this site, so I'm wondering if its because you're in the habit (or wanting to be in the habit) for some technical thing you do like working on a database that needs years in that format, or if there's some reason you feel that its better to write them that way in prose?
The article is not painting Verne as a rabid colonialist, but he certainly was a product of his time, and understanding this is necessary to properly look at his works. I too have read quite a lot of his books.

Having non-European heroes be subordinate to European heroes was a common trope in colonial times. Look at Jean-Baptiste Marchand's expedition though Africa, and the statue he got as a result.
why as a consumer would you want that? sounds extremely against your interest. i doubt you're a billionaire who less regulation would benefit
Of all the P2P file transfer tools I’ve tried (Magic Wormhole, file.pizza, localsend, etc) I’ve had the best luck with croc working under various network configurations.
See e.g. the debate on colourblind casting. https://en.m.wikipedia.org/wiki/Color-blind_casting
Author here. What do you mean by depth and breadth?
SCTP is exactly how you establish a data communication link with the very modern WebRTC protocol stack (and is rebranded to "WebRTC Data Channels"). Granted, it is SCTP-over-UDP. But still.

So yes, SCTP is under the covers getting a lot more use than it seems, still today. However all WebRTC implementations usually bring their own userspace libraries to implement SCTP, so they don't depend on the one from the OS.
Git push's `--force-with-lease` option does essentially this.

(Honestly, they should rename `--force-with-lease` to just `--force`, and rename the old `--force` behaviour to `--force-with-extreme-prejudice` or something like that. Basically make the new behaviour the default `--force` behaviour.)
Do Artifacts Have Politics? (1980)
Paying someone to vote a certain way is in fact illegal though.
There's no requirement for keeping the code as implemented open source or not using proprietary extensions.
Computer programming is pretty idyllic when you're in a decent department with a good team.
Water-injected hydrogen combustion V6 doubles up power
You are responsible (Legally, contractually, morally) for supervising FSD today. If the car decided to stomp on the throttle you are expected to be ready to hit the brakes.

The whole point is that is somewhat of an unreasonable expectation but it’s what Tesla expects you to do today
No I'm offering that it's incredibly wrong to go bean counting email co2 usage when this is a dead end solution blaming end users for a problem caused by large corporations. It causes people to take environmentalism less seriously and doesn't change a thing for the greater good.

It's not letting me reply to your further comment but here's some links for you to really 'get it'

https://www.clf.org/blog/the-truth-about-carbon-footprints/

https://www.theguardian.com/commentisfree/2021/aug/23/big-oi...
But it makes perfect sense.

Microcode in ROM is fixed. Nobody - neither you nor the vendor - can alter it. You are both equal.

Microcode as a binary blob loaded at runtime means the vendor has the source and tools and can create and alter and build and distribute the modifications and FUCK YOU you can't do any of those things legally. Just copy some opaque blob unmodified - that's non-free software in a nutshell.

Solution 1: vendor gives out the source and tools for creating the blob under a free license.

Solution 2: don't buy or use that hardware. Support vendors that support solution 1.

Solution 3: the vendor, having refused to offer their firmware under free software terms (which they totally could do and the whole idea of the free software movement is to get them to do it), agrees the compromise that they cannot alter the firmware either so puts it in ROM. They'd prefer not to, of course, but if they want another option, solution 1 is right there. Free the firmware and this problem goes away.

If you think other solutions are "pragmatic", just pragmatically use non-free Windows which is full of opaque binary blobs you don't have the source for and can't recreate, let alone alter or redistribute the changes. That counts as free software, right?
Quarterly Retail E-Commerce Sales
If you're already a competent developer, I think that's a reasonable expectation of impact on productivity. I think the 'life-changing' part comes in helping someone get to the point of building things with code where before they couldn't (or believed they couldn't). It does a lot better job of turning the enthusiasts and code-curious into amateurs vs. empowering professionals.
Why is best inferred from context imo, otherwise it's a smell for a system with too much scope.
> I see you’ve never met a farmer.

More evidence that people really shouldn't trust their first, shallow reactions to things. You know nothing about me and yet have jumped to an absurdly wrong conclusion, ironically while trying to correct what you think was an incorrect conclusion of mine. For more information, see: https://news.ycombinator.com/item?id=41887807

> The exact opposite of what you claim is reality.

Please read it a little closer. I'm not claiming any such thing. I'm pointing out that it is a popular conception - and it is. That the popular conception is wrong does not mean it isn't a popular conception. That's quite the logic error. And for someone to point out a popular conception does not mean they agree with it, and even if they did, it certainly does not mean they've never met a farmer (lol). This has so many fallacies in it, it's actually funny.
The weight is set by law at least to the 10th of a gram. Couldn't find an explicitly set margin of error though
Seeing Faces in Things: A Model and Dataset for Pareidolia
> in the 1700s

It's been happening since ever.
You can talk about water in exclusively economic terms, like this article. But to compare technical solutions you need to rely on much more boring operations research and that’s not going to even make readable news.
> I absolutely hacked on the tangled source code of the program when trying to fix bugs or extend capabilities. Once I knew what I wanted to do I put it back in the literate program

Does NoWeb automate this "untangling" process in any way? I sometimes use Weave.jl [1] when I'm thinking out loud through code, and at times it would be nice to just work on the tangled code, refactor and reorganize things, and have it all untangle back into the original in some way. I have no idea how that would work though, and it would likely be pretty limited even if it existed, but I'm curious what the usual approach you take to this is.

[1] https://weavejl.mpastell.com/stable/
We also pay this price with every new human driver we train. again and again.
In the ever-evolving digital landscape, understanding your website's performance and user behavior isn't just beneficial—it's crucial for success. Web analytics serves as your compass in the vast sea of data, providing invaluable insights that can transform your site's user experience (UX) and drive remarkable results. This comprehensive guide will take you on a journey through the world of web analytics, focusing on how to track user behavior effectively and leverage that data to create a website that not only meets but exceeds user expectations.

Whether you're a seasoned digital marketer, a curious entrepreneur, or a web developer looking to enhance your skills, this in-depth exploration of web analytics will equip you with the knowledge and tools to make data-driven decisions that can significantly impact your online presence.